]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/37991 (excessive memory consumption - possible hang)
[gcc.git] / gcc / ChangeLog
CommitLineData
8495c94f
RG
12008-11-02 Richard Guenther <rguenther@suse.de>
2
3 PR tree-optimization/37991
4 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
5 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
6 (set_ssa_val_to): Print if the value changed.
7 (simplify_binary_expression): Strip useless conversions.
8
aa05ad86
HPN
92008-11-01 Hans-Peter Nilsson <hp@axis.com>
10
11 PR target/37939
12 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
13 operand.
14
002bd9f0
RG
152008-11-01 Richard Guenther <rguenther@suse.de>
16
17 PR middle-end/37976
18 * builtins.c (fold_builtin_strspn): Return a size_t.
19 (fold_builtin_strcspn): Likewise.
20
f9fd1e77
NF
212008-10-31 Nathan Froyd <froydnj@codesourcery.com>
22
23 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
24 attribute for struct return convention.
25
a57b73a7
NF
262008-10-31 Nathan Froyd <froydnj@codesourcery.com>
27
28 * config/rs6000/crtsavres.asm: Really, really delete.
29
19ce6731
NF
302008-10-31 Nathan Froyd <froydnj@codesourcery.com>
31
32 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
33 problem.
34 (rs6000_emit_prologue): Invert logic.
35 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
36 (reg:P 11) instead of match_operand.
37 (*save_fpregs_<mode>): Likewise.
38 (*restore_gpregs_<mode>): Likewise.
39 (*return_and_restore_gpregs_<mode>): Likewise.
40 (*return_and_restore_fpregs_<mode>): Likewise.
41 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
42 (reg:P 11) insted of match_operand.
43 (*restore_gpregs_spe): Likewise.
44 (*return_and_restore_gpregs_spe): Likewise.
45
7c8fbd3f
LM
462008-10-28 Luis Machado <luisgpm@br.ibm.com>
47
48 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
49 list of word switches that take args.
50
723a7ced
JJ
512008-10-30 Jakub Jelinek <jakub@redhat.com>
52
dbc0f593
JJ
53 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
54 (s390_output_pool_entry): Call it through for_each_rtx.
55
723a7ced
JJ
56 PR middle-end/37730
57 * expr.c (store_constructor): For vectors, if target is a MEM, use
58 target's MEM_ALIAS_SET instead of elttype alias set.
59
77253e56
KK
602008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
61
62 PR target/37909
63 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
64 no address.
65
2665ab87
DE
662008-10-29 David Edelsohn <edelsohn@gnu.org>
67
68 PR target/37878
69 * config/rs6000/predicates.md (word_offset_memref_operand):
70 Restructure code and look inside auto-inc/dec addresses.
71
81a39e89
SE
722008-10-29 Steve Ellcey <sje@cup.hp.com>
73
74 PR target/32277
75 * libgcov.c ( __gcov_indirect_call_profiler): Check
76 TARGET_VTABLE_USES_DESCRIPTORS.
77
7310a2da
SSF
782008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
79
80 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
81 (INITIAL_FRAME_POINTER_OFFSET): Remove.
82 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
83 offset if eliminating soft frame pointer.
84 * config/spu/spu.md (stack_protect_set, stack_protect_test)
85 (stack_protect_test_si): Add initial machine description
86 for Stack Smashing Protector
87
cdd6a337
MLI
882008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
89
90 PR 11492
91 * c-common.c (min_precision): Move to...
92 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
93 * tree.h (tree_int_cst_min_precision): Declare.
94 * c-common.h (min_precision): Delete declaration.
95 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
96 multiplication of non-negative integer constants.
97 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
98 tree_int_cst_min_precision.
99 (finish_enum): Likewise.
100
20ded7a6
JM
1012008-10-29 Joseph Myers <joseph@codesourcery.com>
102
103 PR middle-end/36578
104 * convert.c (convert_to_real): Do not optimize conversions of
105 binary arithmetic operations between binary and decimal
106 floating-point types. Consider mode of target type in determining
107 decimal type for arithmetic. Unless
108 flag_unsafe_math_optimizations, do not optimize binary conversions
109 where this may change rounding behavior.
110 * real.c (real_can_shorten_arithmetic): New.
111 * real.h (real_can_shorten_arithmetic): Declare.
112
669eeb28
BS
1132008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
114
115 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
116 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
117 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
118 appropriate.
119 (must_save_p): For some workarounds, interrupts need to clobber a
120 P register.
121 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
122 and LC1 for WA_05000257.
123 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
124 WA_05000283 and WA_05000315.
125 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
126 (movbi): Add alternative to set CC to 1; improve code for setting
127 CC to 0.
128 (dummy_load): New pattern.
129
4d731f17
JJ
1302008-10-29 Jakub Jelinek <jakub@redhat.com>
131
7d293b58
JJ
132 PR middle-end/37870
133 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
134 BLKmode for non-memory, convert using a wider MODE_INT mode
135 or through memory.
136
4d731f17
JJ
137 PR middle-end/37913
138 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
139 that haven't been removed yet.
140
a848cf52
BS
1412008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
142
143 * config/bfin/bfin.c (struct machine_function): New member
144 has_loopreg_clobber.
145 (bfin_expand_movmem): Set it when generating memcpy insns.
146 (n_regs_saved_by_prologue, expand_prologue_reg_save,
147 expand_epilogue_reg_restore): If we have hardware loops,
148 memcpy insns (indicated by has_loopreg_clobber) or function
149 calls, we need to save the loop registers.
150
a31b4ecf
L
1512008-10-28 H.J. Lu <hongjiu.lu@intel.com>
152
153 * config/i386/i386.c (core2_cost): Fix typos in comments.
154
261639a2
JJ
1552008-10-28 Jakub Jelinek <jakub@redhat.com>
156
157 PR c/37924
158 * combine.c (make_compound_operation): Don't call make_extraction with
159 non-positive length.
160 (simplify_shift_const_1): Canonicalize count even if complement_p.
161
938d35bd
JM
1622008-10-28 Joseph Myers <joseph@codesourcery.com>
163
164 * convert.c (strip_float_extensions): Do not remove or introduce
165 conversions between binary and decimal floating-point types.
166
5229689d
JJ
1672008-10-28 Jakub Jelinek <jakub@redhat.com>
168
169 PR middle-end/37931
170 * fold-const.c (distribute_bit_expr): Convert common, left and
171 right arguments to type.
172
9d54866d
NC
1732008-10-28 Nick Clifton <nickc@redhat.com>
174
175 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
176 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
177 call_really_used_regs array rather than the call_used_regs array.
178 (mn10300_get_live_callee_saved_regs, expand_prologue,
179 expand_epilogue, output_tst): Likewise.
180
6a16e934
JJ
1812008-10-27 Jakub Jelinek <jakub@redhat.com>
182
60d52d0d
JJ
183 PR target/37378
184 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
185 (df_get_entry_block_def_set): Neither here.
186 (df_get_regular_block_artificial_uses): Add EH_USES registers.
187
6a16e934
JJ
188 PR tree-optimization/37879
189 * predict.c (tree_estimate_probability): Check if last_stmt is
190 non-NULL before dereferencing it.
191
cb1ca6ac
VM
1922008-10-27 Vladimir Makarov <vmakarov@redhat.com>
193
194 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
195 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
196 (ira_fast_allocation): Remove the prototype.
197
198 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
199 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
200 (color_pass): Modify the updated costs.
201 (ira_color): Rename to color. Make it static.
202 (ira_fast_allocation): Rename to fast_allocation. Make it static.
203 (ira_color): New function.
204
205 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
206 change.
207
208 * ira-lives.c (last_call_num, allocno_saved_at_call): New
209 variables.
210 (set_allocno_live, clear_allocno_live, mark_ref_live,
211 mark_ref_dead): Invalidate corresponding element of
212 allocno_saved_at_call.
213 (process_bb_node_lives): Increment last_call_num. Setup
214 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
215 allocno was already saved.
216 (ira_create_allocno_live_ranges): Initiate last_call_num and
217 allocno_saved_at_call.
218
219 * ira-build.c (ira_create_allocno): Initiate
220 ALLOCNO_UPDATED_COVER_CLASS_COST.
221 (create_cap_allocno, propagate_allocno_info,
222 remove_unnecessary_allocnos): Remove setting updated costs.
223 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
224
225 * ira.c (ira): Don't call ira_fast_allocation.
226
227 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
228 updated costs.
229
c0683a82
VM
2302008-10-27 Vladimir Makarov <vmakarov@redhat.com>
231
232 PR middle-end/37813
233 * ira-conflicts.c (process_regs_for_copy): Remove class subset
234 check.
235
236 * ira-int.h (ira_hard_regno_cover_class): New.
237
238 * ira-lives.c (mark_reg_live, mark_reg_dead,
239 process_bb_node_lives): Use ira_hard_regno_cover_class.
240
241 * ira.c (reg_class ira_hard_regno_cover_class): New global
242 variable.
243 (setup_hard_regno_cover_class): New function.
244 (ira_init): Call setup_hard_regno_cover_class.
245
246 * ira-costs.c (cost_class_nums): Add comment.
247 (find_allocno_class_costs): Initiate cost_class_nums.
248 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
249
801f03e3
VM
2502008-10-27 Vladimir Makarov <vmakarov@redhat.com>
251
252 PR middle-end/37884
253 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
254 Rename to copy_info_to_removed_store_destinations. Propagate
255 conflict hard regs and register stack attribute.
256
c3e39a47
JDA
2572008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
258
259 PR middle-end/37316
260 * pa.c (function_arg_padding): Pad complex and vector types upward in
261 64-bit runtime.
262 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
263
793c44bd
MK
2642008-10-26 Matthias Klose <doko@ubuntu.com>
265
266 * doc/install.texi: Document requirements on antlr.
267
59dbe1d9
RS
2682008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
269
270 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
271 first.
272
099590dc
MM
2732008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
274
275 PR target/37841
276 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
277 is defined, use it to modify the constant offset.
278
279 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
280
281 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
282 and short arguments to the correct location as mandated by the
283 ABI.
284
d3a5ecb5
KK
2852008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
286
287 PR rtl-optimization/37769
288 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
289
397979fa
KK
2902008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
291
292 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
293 unwind-dw2-Os-4-200.o.
294
6b4ef5c1
JM
2952008-10-24 Joseph Myers <joseph@codesourcery.com>
296
297 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
298 (convert_for_assignment): Remove ic_argpass_nonproto cases.
299
1a00e5f7
JJ
3002008-10-24 Jakub Jelinek <jakub@redhat.com>
301
302 PR tree-optimization/36038
303 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
304 add sizetype IV with initial value zero instead of pointer type.
305
e49cf927 3062008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
100d537d
MLI
307
308 PR c/7543
309 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
310 around bit operation.
311 * profile.c (is_edge_inconsistent): Likewise.
312 * fold-const.c (truth_value_p): Move from here...
313 * tree.h (truth_value_p): ... to here.
314 * c-tree.h (c_expr): Update description of original_code.
315 * c-typeck.c (parser_build_unary_op): Set original_code.
316 (parser_build_binary_op): Update call to warn_about_parentheses.
317 * c-common.c (warn_about_parentheses): Take two additional
318 arguments of the operands. Use a switch. Quote operators
319 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
320 Add warning about !x | y and !x & y.
321 * c-common.h (warn_about_parentheses): Update declaration.
322
7134e605
JJ
3232008-10-24 Jakub Jelinek <jakub@redhat.com>
324
325 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
326 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
327 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
328 New variables.
329 (check-subtargets, check-%-subtargets, check-parallel-%): New
330 targets.
331 (check-%): For test targets listed in lang_checks_parallelized
332 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
333 run the testing in multiple make goals, possibly parallel, and
334 afterwards run dg-extract-results.sh to merge the sum and log files.
335
aea8cb37
RS
3362008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
337
338 * config/mips/mips.c (mips_canonicalize_move_class): New function.
339 (mips_move_to_gpr_cost): Likewise.
340 (mips_move_from_gpr_cost): Likewise.
341 (mips_register_move_cost): Make more fine-grained.
342
20ed8b32
TG
3432008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
344
345 * graphite.c (graphite_apply_transformations): Check for
346 -fgraphite-identity.
347 * toplev.c (process_options): Add graphite_identity.
348 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
349
23cf1526
BS
3502008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
351
2aca912d
BS
352 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
353 mulhisihl and mulhisihh builtins.
354
23cf1526
BS
355 From Jie Zhang <jie.zhang@analog.com>
356 * config/bfin/bfin.md (composev2hi): Put operands into vector
357 with correct order.
358
a166140f
CF
3592008-10-22 Chao-ying Fu <fu@mips.com>
360
361 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
362
318b3009
BS
3632008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
364
365 From Mike Frysinger <michael.frysinger@analog.com>
366 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
367 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
368 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
369 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
370 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
371 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
372 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
373 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
374 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
375 __ADSPBF51x__ for all of them.
376 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
377 -mcpu bf512, bf514, bf516, and bf518.
378 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
379 bf512-none, bf514-none, bf516-none, and bf518-none.
380 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
381 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
382 * doc/invoke.texi (Blackfin Options): Document that
383 -mcpu now accepts bf512, bf514, bf516, and bf518.
384
972afb58
JJ
3852008-10-22 Jakub Jelinek <jakub@redhat.com>
386
387 PR middle-end/37882
388 * fold-const.c (build_range_type): For 1 .. signed_max
389 range call build_nonstandard_inter_type if signed_type_for
390 returned a type with bigger precision.
391
51c869ca
RG
3922008-10-22 Richard Guenther <rguenther@suse.de>
393
394 * tree.def (COMPLEX_TYPE): Constrain element type.
395 * tree.c (build_complex_type): Assert that.
396 * tree-ssa-structalias.c (could_have_pointers): Complex types
397 cannot have pointers.
398
e49cf927 3992008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
a7da8b42
MLI
400
401 PR c/30949
402 * c-typeck.c (convert_for_assignment): Do not give declaration's
403 location for builtins. Spell out which type was expected and which
404 was given.
405
b8a19ec4
NC
4062008-10-22 Nick Clifton <nickc@redhat.com>
407
408 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
409 the fdpic register to be a target when running in fdpic mode.
410
a291ed6d
RAE
4112008-10-22 Rafael Espindola <espindola@google.com>
412
413 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
414 newly created statements.
415
347146a4
KK
4162008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
417
418 PR target/37633
419 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
420 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
421 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
422
e58d5f65
JJ
4232008-10-22 Jakub Jelinek <jakub@redhat.com>
424
425 PR target/37880
426 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
427 Adjust -mcmodel=medium description for 2005-07-31 changes.
428
cb7c15f8
JH
4292008-10-22 Jan Hubicka <jh@suse.cz>
430 Jakub Jelinek <jakub@redhat.com>
431
432 PR middle-end/35853
433 * doc/invoke.texi: Remove references to obsoleted -d dumps.
434
3d7e23f6
RH
4352008-10-21 Richard Henderson <rth@redhat.com>
436
437 PR 37815
438 * emit-rtl.c (get_spill_slot_decl): Export.
439 * emit-rtl.h (get_spill_slot_decl): Declare.
440 * var-tracking.c (vt_add_function_parameters): Relax assertion
441 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
442
7d407433
BW
4432008-10-21 Bob Wilson <bob.wilson@acm.org>
444
445 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
446 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
447 of from insn.
448
d9cc481a
AN
4492008-10-21 Adam Nemet <anemet@caviumnetworks.com>
450
451 PR middle-end/37669
452 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
453 processed by get_maxval_strlen.
454
3b8031bb
DE
4552008-10-21 David Edelsohn <edelsohn@gnu.org>
456
457 PR target/35485
458 * tree.c (get_file_function_name): Copy first_global_object_name.
459 Centralize call to clean_symbol_name.
460
3027350e
SL
4612008-10-21 Sandra Loosemore <sandra@codesourcery.com>
462
463 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
464 * config/svr4.h (SVR4_ASM_SPEC): New.
465 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
466 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
467
468 * doc/invoke.texi (Option Summary): Add -T to linker options.
469 (Link Options): Document -T.
470
8df67f4f
JJ
4712008-10-21 Jakub Jelinek <jakub@redhat.com>
472
658344f2
JJ
473 * tree-inline.c (tree_inlinable_function_p): Remove tuples
474 debugging hack.
475
8df67f4f
JJ
476 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
477 INTEGER_CSTs.
478
500b9ca1
JJ
479 PR debug/37020
480 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
481
15d5fe33
DB
4822008-10-20 Daniel Berlin <dberlin@dberlin.org>
483
484 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
485 part of expression.
486
e49cf927 4872008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
c02c7cb1
TS
488
489 * doc/install.texi: Fix typos in previous patch.
490
e49cf927 4912008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
641afcff
TS
492
493 * doc/install.texi: Document in-tree building of gcc and mpfr.
494
a15138a4
RG
4952008-10-19 Richard Guenther <rguenther@suse.de>
496
497 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
498
e49cf927 4992008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
a7e72022
MLI
500
501 PR c/30260
502 * c-decl.c (finish_enum): Convert non-integer enumerators to enum
503 type.
504 (build_enumerator): Convert enumerators that fit in integer to
505 integer type.
506
3cdf0c62
UB
5072008-10-18 Uros Bizjak <ubizjak@gmail.com>
508
509 * config/i386/i386.md (unnamed peephole2): Do not force memory
510 operands of arith or logical instructions into registers for
511 non-TARGET_READ_MODIFY targets.
512
513 (ffs_cmove): Change operand 0 predicate to register_operand.
514 Change operand 1 predicate to nonimmediate_operand.
515 (ffsdi2): Ditto.
516 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
517
73a5f199
RG
5182008-10-18 Richard Guenther <rguenther@suse.de>
519
520 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
521 VIEW_CONVERT_EXPR case against invalid gimple.
522
1f6d0c60
AK
5232008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
524
525 * c-parser.c (c_parser_binary_expression): Silence the
526 uninitialized variable warning emitted for binary_loc.
527
de278246
DB
5282008-10-16 Daniel Berlin <dberlin@dberlin.org>
529
530 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
531 translation cache.
532
bbe67e7c
JM
5332008-10-16 Joseph Myers <joseph@codesourcery.com>
534
535 PR c/33192
536 * c-typeck.c (build_unary_op): Use omit_one_operand for
537 IMAGPART_EXPR of real argument.
538
a39562d9
JJ
5392008-10-16 Jakub Jelinek <jakub@redhat.com>
540
541 PR tree-optimization/37664
542 * fold-const.c (fold_binary): When optimizing comparison with
543 highest or lowest type's value, don't consider TREE_OVERFLOW.
544
5773a50f
DE
5452008-10-16 David Edelsohn <edelsohn@gnu.org>
546
547 PR target/35483
548 * Makefile.in (coverage.o): Depend on $(TM_P_H).
549 * coverage.c: Include tm_p.h.
550 * config/rs6000/x-aix (jc1): Override LDFLAGS.
551 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
552 dollar signs from PREFIX.
553 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
554 instead of manual strip_name_encoding.
555
bd4a51ab
RB
5562008-10-16 Richard Guenther <rguenther@suse.de>
557
558 PR middle-end/37418
559 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
560 volatile qualified functions or methods as relevant.
561
5b429886
JJ
5622008-10-16 Jakub Jelinek <jakub@redhat.com>
563
564 PR tree-optimization/37525
565 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
566 sizetype unsigned constants, both in the case of C and bounds.
567
c39a4ad7
JH
5682008-10-15 Jan Hubicka <jh@suse.cz>
569
570 * ira-emit.c (change_regs): Return false when replacing reg by
571 itself.
572
aac375dd
VM
5732008-10-14 Vladimir Makarov <vmakarov@redhat.com>
574
575 PR target/37633
576 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
577 HARD_REGNO_CALL_PART_CLOBBERED.
578
22c02455
VM
5792008-10-15 Vladimir Makarov <vmakarov@redhat.com>
580
581 PR middle-end/37535
582 * ira-lives.c (mark_early_clobbers): Remove.
583 (make_pseudo_conflict, check_and_make_def_use_conflicts,
584 check_and_make_def_conflicts,
585 make_early_clobber_and_input_conflicts,
586 mark_hard_reg_early_clobbers): New functions.
587 (process_bb_node_lives): Call
588 make_early_clobber_and_input_conflicts and
3cdf0c62 589 mark_hard_reg_early_clobbers. Make hard register inputs live again.
22c02455
VM
590
591 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
592 early clobbers of pseudo-registers.
593
0ca9fa56
VM
5942008-10-15 Vladimir Makarov <vmakarov@redhat.com>
595
596 PR middle-end/37674
597 * ira-build.c (ira_flattening): Recalculate
598 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
599 from the scratch instead of the propagation.
600
bf520698
RS
6012008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
602
603 * doc/rtl.texi (const_double): Remove the "addr" operand.
604 Describe CONST_DOUBLE_* macros under const_double rather
605 than const_vector.
606 (const_fixed): Fix the operand description.
607 (const): Add an @findex directive.
608 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
609 after the constant rtl table.
610 (fix): Combine floating-point and fixed-point descriptions.
611 Fix hyphenation.
612 * sched-deps.c (sched_analyze_2): Remove reference to
613 CONST_DOUBLE_CHAIN.
614
d4e2d7d2
RS
6152008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
616
617 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
618 UNSPEC_GOTSYM_OFFs.
619 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
620 for UNSPEC_GOTSYM_OFFs.
621 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
622 (add_GOT_to_pic_reg): Use it.
623 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
624
2c7a7f46 6252008-10-15 Jan Sjodin <jan.sjodin@amd.com>
3cdf0c62 626 Harsha Jagasia <harsha.jagasia@amd.com>
2c7a7f46
SP
627
628 PR tree-optimization/37485
629 * graphite.c (gmp_cst_to_tree): Moved.
630 (iv_stack_entry_is_constant): New.
631 (iv_stack_entry_is_iv): New.
632 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
633 (loop_iv_stack_insert_constant): New.
634 (loop_iv_stack_pop): Use new datatpype.
635 (loop_iv_stack_get_iv): Same.
636 (loop_iv_stack_get_iv_from_name): Same.
637 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
638 (loop_iv_stack_patch_for_consts): New.
639 (loop_iv_stack_remove_constants): New.
640 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
641 (translate_clast): Call loop_iv_stack_patch_for_consts and
642 loop_iv_stack_remove_constants.
643 (gloog): Use new datatype. Redirect construction edge to end
644 block to avoid accidental deletion.
645 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
646 iv stack entry.
647 (union iv_stack_entry_data): New. Data in iv stack entry.
648 (struct iv_stack_entry): New. Datatype for iv stack entries.
649
6502008-10-15 Sebastian Pop <sebastian.pop@amd.com>
651
652 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
653 * graphite.c (free_scop): Same.
654 (build_scops): Same.
655 (free_scattering): New.
656 (build_cloog_prog): Call free_scattering.
657 (patch_phis_for_virtual_defs): Fix memleak.
658 (graphite_trans_bb_strip_mine): Same.
659 (limit_scops): Same.
660
575da9be 6612008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3cdf0c62 662 Harsha Jagasia <harsha.jagasia@amd.com>
575da9be
SP
663
664 PR tree-optimization/37828
665 * graphite.c (graphite_trans_loop_block): Do not loop block
666 single nested loops.
667
36174c82
SP
6682008-10-15 Sebastian Pop <sebastian.pop@amd.com>
669
670 PR tree-optimization/37686
671 * tree-loop-linear.c (linear_transform_loops): Build a
672 loop nest vector. Pass it to lambda_compute_access_matrices.
673 * tree-data-ref.h (struct access_matrix): Store the loop nest
674 relative to which it encodes the information.
675 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
676 (am_vector_index_for_loop): Reimplemented: iterate over the
677 loop nest for finding the loop index in the access matrix.
678 (lambda_compute_access_matrices): Update declaration.
679 * lambda-code.c (build_access_matrix): Pass the loop nest and
680 record it.
681 (lambda_compute_access_matrices): Same.
682
fb068247
AK
6832008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
684
685 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
686 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
687 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
688 already implies hard float. Also fix several insn condition
689 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
690
9fb59895
DE
6912008-10-15 David Edelsohn <edelsohn@gnu.org>
692
693 PR target/35483
694 Based on patches by Laurent Vivier.
695 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
696 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
697 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
698 dollar sign to underscore.
699 (ASM_OUTPUT_EXTERNAL): Same.
700 (ASM_OUTPUT_LABELREF): New.
701 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
702
703 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
704 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
705 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
706 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
707
f6e6e990
JJ
7082008-10-15 Jakub Jelinek <jakub@redhat.com>
709
710 PR tree-optimization/36881
711 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
712 that each value doesn't need runtime relocations, for !flag_pic
713 check that each value is just a valid initializer constant.
714
5c0a2e3a
RS
7152008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
716
717 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
718 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
719 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
720 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
721 GR_AND_ACC_REGS.
722 (REG_CLASS_NAMES): Update accordingly.
723 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
724 rather than an unpredictable descriptive string.
725 * config/mips/mips.c (mips_register_move_cost): Remove comment.
726 (mips_register_move_cost): Check for specific COP*_REGS classes,
727 instead of ALL_COP_AND_GR_REGS.
728 (mips_ira_cover_classes): New function.
729 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
730 (TARGET_IRA_COVER_CLASSES): Define.
731
9c880618
DG
7322008-10-14 Douglas Gregor <doug.gregor@gmail.com>
733
3cdf0c62
UB
734 PR c++/37553
735 * tree.c (build_type_attribute_qual_variant): Hash on the
736 unqualified type, and don't overwrite an existing
737 (type_hash_eq): Make the TYPE_NAME of the types significant, to
738 allow distinguishing between wchar_t and its underlying type. This
739 also means that we'll retain a little more typedef information.
9c880618 740
388092d5
AB
7412008-10-14 Andrey Belevantsev <abel@ispras.ru>
742 Dmitry Melnik <dm@ispras.ru>
743 Dmitry Zhurikhin <zhur@ispras.ru>
744 Alexander Monakov <amonakov@ispras.ru>
745 Maxim Kuvyrkov <maxim@codesourcery.com>
746
747 * target.h (struct gcc_target): Update prototypes of needs_block_p
748 and gen_spec_check.
749 * haifa-sched.c (create_check_block_twin): Update calls to the above.
750 * sel-sched.c (create_speculation_check): Likewise.
751 * doc/tm.texi: Provide documentation for new target hooks.
752
753 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
754 (ia64_gen_spec_insn): Removed.
755 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
756 ia64_gen_spec_check): New static functions.
3cdf0c62
UB
757 (ia64_alloc_sched_context, ia64_init_sched_context,
758 ia64_set_sched_context, ia64_clear_sched_context,
759 ia64_free_sched_context, ia64_get_insn_spec_ds,
388092d5
AB
760 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
761 (ia64_needs_block_p): Change prototype.
762 (ia64_gen_check): Rename to ia64_gen_spec_check.
3cdf0c62 763 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
388092d5
AB
764 into declaration, add special memory dependencies handling.
765 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
766 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
767 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3cdf0c62 768 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
388092d5
AB
769 Define new target hooks.
770 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3cdf0c62 771 (ia64_optimization_options): Turn on selective scheduling with -O3,
388092d5
AB
772 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
773 with selective scheduling.
3cdf0c62
UB
774 (ia64_override_options): Initialize align_loops and align_functions
775 to 32 and 64, respectively. Set global selective scheduling flags
388092d5
AB
776 according to target-dependent flags.
777 (rtx_needs_barrier): Support UNSPEC_LDS_A.
3cdf0c62 778 (group_barrier_needed): Use new mstop-bit-before-check flag.
388092d5
AB
779 Add heuristic.
780 (dfa_state_size): Make global.
781 (spec_check_no, max_uid): Remove.
3cdf0c62 782 (mem_ops_in_group, current_cycle): New variables.
388092d5 783 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3cdf0c62
UB
784 Initialize new variables.
785 (is_load_p, record_memory_reference): New functions.
786 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
787 reached.
788 (ia64_variable_issue): Change use of current_sched_info to
388092d5 789 sched_deps_info. Update comment. Note if a load or a store is issued.
3cdf0c62
UB
790 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
791 advance if maximal number of loads or stores was issued on current
792 cycle.
388092d5 793 (scheduled_good_insn): New static helper function.
3cdf0c62
UB
794 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
795 a group barrier is needed. Fix vertical spacing. Guard the code
796 doing state transition with last_scheduled_insn check.
797 Mark that a stop bit should be before current insn if there was a
798 cycle advance. Update current_cycle and mem_ops_in_group.
388092d5 799 (ia64_h_i_d_extended): Change use of current_sched_info to
3cdf0c62 800 sched_deps_info. Reallocate stops_p by larger chunks.
388092d5
AB
801 (struct _ia64_sched_context): New structure.
802 (ia64_sched_context_t): New typedef.
3cdf0c62 803 (ia64_alloc_sched_context, ia64_init_sched_context,
388092d5
AB
804 ia64_set_sched_context, ia64_clear_sched_context,
805 ia64_free_sched_context): New static functions.
806 (gen_func_t): New typedef.
807 (get_spec_load_gen_function): New function.
808 (SPEC_GEN_EXTEND_OFFSET): Declare.
809 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3cdf0c62 810 (get_mode_no_for_insn): Change the condition that prevents use of
388092d5
AB
811 special hardware registers so it can now handle pseudos.
812 (get_spec_unspec_code): New function.
813 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
814 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
815 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
816 during selective scheduling.
3cdf0c62 817 (ia64_speculate_insn): Use ds_get_speculation_types when
388092d5
AB
818 determining whether we need to change the pattern.
819 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
820 (ia64_spec_check_src_p): Support new speculation/check codes.
821 (struct bundle_state): New field.
822 (issue_nops_and_insn): Initialize it.
823 (insert_bundle_state): Minimize mid-bundle stop bits.
824 (important_for_bundling_p): New function.
825 (get_next_important_insn): Use important_for_bundling_p.
3cdf0c62
UB
826 (bundling): When shifting TImode from unimportant insns, ignore
827 also group barriers. Assert that best state is found before
828 the backward bundling pass. Print number of mid-bundle stop bits.
829 Minimize mid-bundle stop bits. Check correct calculation of
388092d5
AB
830 mid-bundle stop bits.
831 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
832 (final_emit_insn_group_barriers): Emit stop bits before insns starting
833 a new cycle.
834 (sel2_run): New variable.
3cdf0c62
UB
835 (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
836 scheduling pass instead of schedule_ebbs.
388092d5
AB
837
838 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
839 (UNSPEC_LDS_A): New UNSPEC.
3cdf0c62
UB
840 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
841 movti_internal, movsf_internal, movdf_internal,
388092d5
AB
842 movxf_internal): Make visible. Add speculable* attributes.
843 (output_c_nc): New mode attribute.
844 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3cdf0c62 845 mov<mode>_nc, zero_extend<mode>di2_nc,
388092d5
AB
846 advanced_load_check_nc_<mode>): New insns.
847 (zero_extend*): Add speculable* attributes.
848
849 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
850 (msched-stop-bits-after-every-cycle): Likewise.
3cdf0c62
UB
851 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
852 Likewise.
388092d5
AB
853 (msched-spec-verbose): Remove.
854 (msched-prefer-non-data-spec-insns,
3cdf0c62
UB
855 msched-prefer-non-control-spec-insns,
856 msched-count-spec-in-critical-path,
857 msel-sched-dont-check-control-spec): Use Target Report Var
858 instead of Common Report Var.
388092d5
AB
859
860 * config/ia64/itanium2.md: Remove incorrect bypass.
861
862 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
863
847e6346
JJ
8642008-10-14 Jakub Jelinek <jakub@redhat.com>
865
866 PR middle-end/37805
867 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
868 and -fhelp=separate.
869
f8f49aea
BE
8702008-10-14 Ben Elliston <bje@au.ibm.com>
871
872 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
873
f27017d1
JM
8742008-10-13 Joseph Myers <joseph@codesourcery.com>
875
876 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
877 non-integer modes.
878
bca60f4c
MK
8792008-10-13 Matthias Klose <doko@ubuntu.com>
880
847e6346 881 * config/pa/linux-atomic.c: Work around missing header file
bca60f4c
MK
882 for hppa64-linux-gnu targets.
883
c921bad8 8842008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
3cdf0c62
UB
885 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
886 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
887 Grace Cao <grace_cao@playstation.sony.com>
c921bad8
AP
888
889 * doc/invoke.texi (-mgen-cell-microcode): Document.
890 (-mwarn-cell-microcode): Document.
891 * cfglayout.c (locator_location): Export.
892 * rtl.h (locator_location): Define prototype.
3cdf0c62
UB
893 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
894 New predicate.
c921bad8
AP
895 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
896 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
897 (mwarn-cell-microcode): New option.
898 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
899 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
900 cell and not already set.
901 Turn off string instructions if not generating cell microcode.
902 (rs6000_final_prescan_insn): New function that warns about microcoded
903 instructions.
904 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
905 * config/rs6000/rs6000.md
906 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3cdf0c62
UB
907 the instruction would have been microcoded on the Cell. Set cell_micro
908 to always on unnamed patterns for the string instructions.
909 (cell_micro): Update definition, remove load/store conditional
910 microcoded.
c921bad8
AP
911 (sign_extend:DI): Define new pattern for non microcoded version.
912 (sign_extend:SI): Likewise.
913 (compare (div:P)): Set cell_micro to not.
914 (andsi3): Define as an expand.
915 (andsi3_mc): New pattern.
916 (andsi3_nomc): New pattern.
917 (andsi3_internal0_nomc): New pattern.
918 (andsi3_internal2): Rename to ...
919 (andsi3_internal2_mc): this and enable iff generating microcode.
920 (andsi3_internal3): Rename to ...
921 (andsi3_internal3_mc): this and enable iff generating microcode.
922 (andsi3_internal4): Enable iif generating microcode.
923 (andsi3_internal5): Rename to ..
924 (andsi3_internal5_mc): this and enable iff generating microcode.
925 (andsi3_internal5_nomc): New pattern.
926 (extzvdi_internal1): Enable iff generating microcode.
927 (extzvdi_internal2): Likewise.
928 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
929 (anddi3): Change to expand.
930 (anddi3_mc): Rename from anddi3.
931 (anddi3_no_mc): New pattern.
932 (anddi3_internal2): Rename to ..
933 (anddi3_internal2_mc): this and enable iff generating microcode.
934 (anddi3_internal2_nomc): New pattern.
935 (anddi3_internal3): Rename to ..
936 (anddi3_internal3_mc): this and enable iff generating microcode.
937 (anddi3_internal3_nomc): New pattern.
938 (movti_string): Set cell_micro to always if TARGET_STRING.
939 (stmsi8): Set cell_micro to always.
940 (stmsi7): Likewise.
941 (stmsi6): Likewise.
942 (stmsi5): Likewise.
943 (stmsi4): Likewise.
944 (stmsi3): Likewise.
945 (stmsi8_power): Likewise.
946 (stmsi7_power): Likewise.
947 (stmsi6_power): Likewise.
948 (stmsi5_power): Likewise.
949 (stmsi4_power): Likewise.
950 (stmsi3_power): Likewise.
951 (movsi_update2): Enable iff generating microcode.
952 (movhi_update3): Likewise.
953 (lmw): Set cell_micro to always.
954
dc66391d
RS
9552008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
956
957 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
958 * config/s390/s390.c (machine_function): Remove
959 decomposed_literal_pool_addresses_ok_p.
960 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
961 the difference of two labels.
962 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
963 (s390_pool_offset): New function.
964 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
965 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
966
1590a115
NF
9672008-10-13 Nathan Froyd <froydnj@codesourcery.com>
968
969 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
970 (powerpc*-*-linux-gnu*): Describe.
971 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
972 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
973 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
974 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
975 config/rs6000/e500crtres32gpr.asm,
976 config/rs6000/e500crtres64gpr.asm,
977 config/rs6000/e500crtres64gprctr.asm,
978 config/rs6000/e500crtrest32gpr.asm,
979 config/rs6000/e500crtrest64gpr.asm,
980 config/rs6000/e500crtresx32gpr.asm,
981 config/rs6000/e500crtresx64gpr.asm,
982 config/rs6000/e500crtsav32gpr.asm,
983 config/rs6000/e500crtsav64gpr.asm,
984 config/rs6000/e500crtsav64gprctr.asm,
985 config/rs6000/e500crtsavg32gpr.asm,
986 config/rs6000/e500crtsavg64gpr.asm,
987 config/rs6000/e500crtsavg64gprctr.asm: Use it.
988 * config/rs6000/crtsavres.asm: Really remove.
989
94564826
KT
9902008-10-13 Kai Tietz <kai.tietz@onevision.com>
991
992 Fix PR/25502
993 * c-format.c (convert_format_name_to_system_name): Use
994 TARGET_OVERRIDES_FORMAT_INIT.
995 * config.gcc (extra_options): Add for mingw targets mingw.opt.
996 * config/i386/mingw.opt: New.
997 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
998 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
999 (ms_printf_length_specs): Removed const specifier.
1000 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
1001 * doc/invoke.texi (Wno-pedantic-ms-format): New.
1002
36c713e0
KG
10032008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1004
1005 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
1006 * doc/install.texi: Bump recommended MPFR to 2.3.2.
1007
5288f999
KZ
10082008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
1009
1010 PR middle-end/37808
1011 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
1012 sure that ref has valid bb.
1013
f6129d66
RH
10142008-10-12 Richard Henderson <rth@redhat.com>
1015
1016 PR middle-end/37447
1017 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
1018 * alias.c (value_addr_p, stack_addr_p): Remove.
1019 (nonoverlapping_memrefs_p): Remove IRA special case.
1020 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
1021 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
1022 * reload1.c (alter_reg): Use it.
1023
dc8bd8d9
UB
10242008-10-12 Uros Bizjak <ubizjak@gmail.com>
1025
1026 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
1027 of registers instead of eax, ebx, ecx and edx. Use for loop
1028 and check register for non-zero value before the call
1029 to decode_caches_intel.
1030
57512f53
KZ
10312008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1032
1033 PR rtl-optimization/37448
1034 * df.h: (df_ref_class): New enum.
1035 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
1036 (struct df_ref): Replaced with union df_ref_d.
1037 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
1038 New members of df_ref_d union.
1039 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
1040 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
1041 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
1042 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
1043 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3cdf0c62
UB
1044 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
1045 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
57512f53
KZ
1046 (df_scan_bb_info, df_bb_regno_first_def_find,
1047 df_bb_regno_last_def_find, df_find_def, df_find_use,
1048 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1049 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
1050 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
1051 df_get_artificial_defs, df_get_artificial_uses, union_defs)
1052 Replaced struct df_ref * with df_ref.
1053 * df-scan.c (df_collection_rec, df_null_ref_rec,
1054 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
1055 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
1056 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
1057 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
1058 df_reorganize_refs_by_reg_by_reg,
1059 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
1060 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
1061 df_sort_and_compress_refs, df_install_ref, df_install_refs,
1062 df_ref_record, df_get_conditional_uses, df_get_call_refs,
1063 df_bb_refs_record, df_exit_block_uses_collect,
1064 df_record_exit_block_uses, df_reg_chain_mark,
1065 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
1066 df_ref * with df_ref.
1067 (df_ref_record, df_uses_record, df_ref_create_structure): Added
1068 df_ref_class parameter.
3cdf0c62 1069 (df_scan_problem_data): Added new pools for different types of refs.
57512f53
KZ
1070 (df_scan_free_internal, df_scan_alloc, df_free_ref,
1071 df_ref_create_structure): Processed new ref pools.
1072 (df_scan_start_dump): Added counts of refs and insns.
1073 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
1074 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1075 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
1076 code to pass df_ref_class down to ref creation functions.
1077 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
1078 df_reg_chain_mark): Use macros to hide references to df_refs.
1079 (df_ref_chain_change_bb): Removed.
1080 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
1081 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1082 Enhanced to understand df_ref union structure.
1083 * fwprop.c (local_ref_killed_between_p, use_killed_between,
1084 all_uses_available_at, update_df, try_fwprop_subst,
1085 forward_propagate_subreg, forward_propagate_and_simplify,
1086 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
1087 df_ref * with df_ref.
1088 (use_killed_between, all_uses_available_at): Use macros to hide
1089 references to df_refs.
1090 * regstat.c (regstat_bb_compute_ri,
1091 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
1092 df_ref.
1093 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
1094 see_handle_relevant_refs, see_analyze_one_def,
1095 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
1096 struct df_ref * with df_ref.
1097 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
1098 global_conflicts): Replaced struct df_ref * with df_ref.
1099 * ddg.c (create_ddg_dep_from_intra_loop_link,
1100 add_cross_iteration_register_deps, build_inter_loop_deps):
1101 Replaced struct df_ref * with df_ref.
1102 (create_ddg_dep_from_intra_loop_link,
1103 add_cross_iteration_register_deps): Use macros to hide references
1104 to df_refs.
1105 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1106 df_ref * with df_ref.
1107 * df-core.c (df_bb_regno_first_def_find,
1108 df_bb_regno_last_def_find, df_find_def, df_find_use,
1109 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1110 debug_df_ref): Replaced struct df_ref * with df_ref.
dc8bd8d9 1111 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
57512f53
KZ
1112 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1113 df_ref.
1114 * web.c (union_defs, entry_register, replace_ref, web_main):
1115 Replaced struct df_ref * with df_ref.
dc8bd8d9 1116 (union_defs, replace_ref): Use macros to hide references to df_refs.
57512f53
KZ
1117 * global.c (compute_regs_asm_clobbered, build_insn_chain):
1118 Replaced struct df_ref * with df_ref.
dc8bd8d9 1119 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
57512f53
KZ
1120 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1121 Replaced struct df_ref * with df_ref.
1122 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1123 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1124 with df_ref.
dc8bd8d9 1125 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
57512f53
KZ
1126 * df-byte-scan.c (df_compute_accessed_bytes_extract,
1127 df_compute_accessed_bytes_strict_low_part,
1128 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1129 Replaced struct df_ref * with df_ref.
dc8bd8d9 1130 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
57512f53
KZ
1131 * init-regs.c (initialize_uninitialized_regs): Replaced struct
1132 df_ref * with df_ref.
1133 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1134 check_dependency, check_dependencies, record_uses): Replaced
1135 struct df_ref * with df_ref.
1136 (invariant_for_use, check_dependency): Use macros to hide
1137 references to df_refs.
1138 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1139 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1140 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1141 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1142 references to df_refs.
dc8bd8d9
UB
1143 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1144 with df_ref.
57512f53
KZ
1145 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1146 * df-problems.c (df_rd_bb_local_compute_process_def,
1147 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1148 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1149 df_chain_remove_problem, df_chain_create_bb_process_use,
1150 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1151 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1152 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1153 df_byte_lr_simulate_artificial_refs_at_top,
1154 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1155 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1156 df_simulate_uses, df_simulate_artificial_refs_at_end,
dc8bd8d9
UB
1157 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1158 df_ref.
1159 (df_chain_dump): Use macros to hide references to df_refs.
57512f53
KZ
1160 * config/mips/mips.c (r10k_simplify_address): Replaced struct
1161 df_ref * with df_ref.
1162 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1163 mark_artificial_uses, mark_reg_dependencies,
1164 byte_dce_process_block): Replaced struct df_ref * with df_ref.
1165
9f7ccf69
EB
11662008-10-11 Eric Botcazou <ebotcazou@adacore.com>
1167
1168 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1169 head comment.
1170 (array_ref_element_size): Likewise.
1171 (array_ref_low_bound): Likewise.
1172 (array_ref_up_bound): Likewise.
1173 * expr.c (contains_packed_reference): Likewise.
1174 (array_ref_element_size): Likewise.
1175 (array_ref_low_bound): Likewise.
1176 (array_ref_up_bound): Likewise.
1177 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1178 with ARRAY_RANGE_REF.
1179 (idx_find_step): Likewise.
1180 (idx_record_use): Likewise.
1181 (strip_offset_1): Likewise.
1182 (idx_remove_ssa_names): Likewise.
1183
cb0dee88
UB
11842008-10-11 Uros Bizjak <ubizjak@gmail.com>
1185 Andi Kleen <ak@linux.intel.com>
1186
1187 * config/i386/cpuid.h (__cpuid_count): New defines.
1188 * config/i386/driver-i386.c (struct cache_desc): New structure.
1189 (describe_cache): Use struct cache_desc to pass cache descriptions.
1190 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1191 (detect_caches_amd): Use struct cache_desc to describe caches.
1192 (decode_caches_intel): Use struct cache_desc to pass cache
1193 descriptions. Update descriptions to match latest (rev -032,
1194 December 2007) CPUID documentation. Do not check valid bit here.
1195 Check for Xeon MP value 0x49 problems.
1196 (detect_caches_cpuid2): New function, split from detect_caches_intel.
1197 Check valid bit before calling decode_caches_intel. Detect number
1198 of times to repeat CPUID instruction.
1199 (detect_caches_cpuid4): New function.
1200 (detect_caches_intel): Depending on max_level, call
1201 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
1202 only when other methods fail to provide valid L2 cache description.
1203
e40375e0
JDA
12042008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1205
1206 PR middle-end/37608
1207 * pa.md (call, call_value): Generate an rtx for register r4 and pass
1208 it to PIC call patterns.
1209 (call_symref_pic): Revise pattern to expose PIC register save. Remove
1210 code generation and attributes from pattern. Change peephole2 to split
1211 for noreturn case. Revise split pattern for non noreturn case.
1212 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1213 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1214 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
1215 asserts.
1216
e47911ce
DE
12172008-10-11 David Edelsohn <edelsohn@gnu.org>
1218
cb0dee88
UB
1219 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1220 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1221 and fp_type.
1222 (divdf3): Reformat long line.
e47911ce 1223
0bb7b92e
ME
12242008-10-11 Michael J. Eager <eager@eagercon.com>
1225
1226 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1227 -mfpu options.
1228 (rs6000_handle_option): Process -mfpu options.
1229 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1230 (enum fpu_type_t): New.
cb0dee88 1231 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
0bb7b92e
ME
1232 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1233 fp_type.
1234 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1235 (floatdidf2): Add TARGET_SINGLE_FPU condition.
1236 * config/rs6000/rs6000.opt (-mfpu): New.
1237 (-mxilinx-fpu): New.
1238 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1239 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1240 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1241 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1242 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1243
506a7bc8
JJ
12442008-10-11 Jakub Jelinek <jakub@redhat.com>
1245
1246 PR target/35760
1247 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1248 LO_SUM on Darwin if mode has just one unit.
1249
35bb4945
L
12502008-10-10 H.J. Lu <hongjiu.lu@intel.com>
1251
1252 PR debug/37002
1253 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1254 has been optimized out.
1255
dc3ba671
RS
12562008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
1257
1258 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1259 instead of PIC_DIRECT_ADDR_P.
1260 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1261 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1262 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1263 (PIC_OFFSET_P): Rename to...
1264 (PCREL_SYMOFF_P): ...this.
1265 (PIC_DIRECT_ADDR_P): Delete.
1266 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1267 PIC_OFFSET_P.
1268 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1269 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1270 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1271 * config/sh/sh.c (print_operand): Remove CONST handling.
1272 (unspec_caller_rtx_p): Rewrite to use split_const and check
1273 the operands of UNSPEC bases.
1274 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1275 with (unspec [A B] UNSPEC_SYMOFF).
1276 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1277 UNSPEC_PCREL_SYMOFF.
1278 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1279 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1280 (UNSPEC_EXTRACT_U16): Likewise.
1281 (UNSPEC_SYMOFF): Likewise.
1282 (UNSPEC_PCREL_SYMOFF): Likewise.
1283 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1284 of constants.
1285 (movsi_const_16bit): Likewise.
1286 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1287 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1288 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1289 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1290 with (unspec [A B] UNSPEC_SYMOFF).
1291 (symPLT_label2reg): Replace (minus A (minus B pc)) with
1292 (unspec [A B] PCREL_UNSPEC_SYMOFF).
1293 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1294 (Csu): Likewise UNSPEC_EXTRACT_U16.
1295 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1296 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1297
e14165f4
SK
12982008-10-10 Stepan Kasal <skasal@redhat.com>
1299
1300 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1301 for loop strip mining and loop blocking.
1302
09775c40
AO
13032008-10-10 Alexandre Oliva <aoliva@redhat.com>
1304
1305 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1306 vary types depending on debug info.
1307
fd9fffd1
AO
13082008-10-10 Alexandre Oliva <aoliva@redhat.com>
1309
1310 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1311 before ensuring it's already computed.
1312
cc2a64dd
JJ
13132008-10-09 Jakub Jelinek <jakub@redhat.com>
1314
1692ae7e
JJ
1315 * rtl.h (locator_eq): New decl.
1316 * cfglayout.c (locator_scope): New function.
1317 (insn_scope): Use it.
1318 (locator_eq): New function.
1319 (fixup_reorder_chain): Search for last insn in src bb
1320 that has locator set or first insn in dest bb. Use
1321 locator_eq instead of == to compare locators.
1322 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1323 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1324 == to compare locators.
1325
cc2a64dd
JJ
1326 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1327 as used.
1328 * gimple-low.c (lower_function_body, lower_gimple_return,
1329 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1330 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1331 goto_block on edges if goto_locus is known.
1332
df96b059
JJ
1333 PR middle-end/37774
1334 * tree.h (get_object_alignment): Declare.
1335 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1336 get_object_alignment if needed.
1337 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
1338 to ...
1339 (get_object_alignment): ... here. New function. Try harder to
1340 determine alignment from get_inner_reference returned offset.
1341
7787b4aa
JJ
13422008-10-08 Jakub Jelinek <jakub@redhat.com>
1343
88b98d1a
JJ
1344 * graphite.c (gloog): Don't call find_unreachable_blocks
1345 before delte_unreachable_blocks.
1346
7787b4aa
JJ
1347 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1348 goto_locus of true_edge into RTL locator.
1349
b7f58d5d
UB
13502008-10-08 Uros Bizjak <ubizjak@gmail.com>
1351
1352 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1353 (*jcc_btdi_mask_rex64): Ditto.
1354 (*jcc_btsi): Ditto.
1355 (*jcc_btsi_mask): Ditto.
1356 (*jcc_btsi_1): Ditto.
1357 (*jcc_btsi_mask_1): Ditto.
1358
a7e8c652
PB
13592008-10-08 Paul Brook <paul@codesourcery.com>
1360
1361 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1362 compatible profiler (__gnu_mcount_nc).
1363 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1364
54723b46
L
13652008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1366
1367 * config/i386/i386.c (initial_ix86_tune_features): Add
1368 X86_TUNE_USE_VECTOR_FP_CONVERTS.
1369 * config/i386/i386.h (ix86_tune_indices): Likewise.
1370 (TARGET_USE_VECTOR_FP_CONVERTS): New.
1371
1372 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1373 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1374 for FP to FP splitters.
1375
ddd5eeb1
L
13762008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1377
1378 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1379 splitter.
1380
31e9ebaf
JJ
13812008-10-08 Jakub Jelinek <jakub@redhat.com>
1382
1383 PR target/36635
1384 PR target/37290
1385 PR rtl-optimization/37341
1386 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1387 to ORIG_BB, pass through ORIG_BB recursively.
1388 (cse_condition_code_reg): Adjust caller.
1389
a4a4f775
KT
13902008-10-08 Kai Tietz <kai.tietz@onevision.com>
1391
1392 * sdbout.c (sdbout_one_type): Treat the value type
1393 CONST_DECL for enumerals.
1394
1ffcdc02
L
13952008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1396
1397 * config/i386/i386.md: Remove trailing white spaces.
1398
beb0c9cc
KZ
13992008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1400
1401 PR rtl-optimization/37448
b7f58d5d
UB
1402 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1403 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1404 Make unsigned long.
1405 (struct output_info) [count]: Renamed total_created and made
1406 unsigned long.
1407 (struct output_info) [size]: Renamed total_allocated and made
1408 unsigned long.
1409 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1410 Properly keep track of desc->size.
beb0c9cc
KZ
1411 (print_statistics, dump_alloc_pool_statistics): Enhance the
1412 printing of statistics to print the number of elements and to use
1413 unsigned longs.
1414
a1fd13d0
JJ
14152008-10-07 Jakub Jelinek <jakub@redhat.com>
1416
1417 PR middle-end/37576
1418 * opts.h (CL_SAVE): Move up to flags range.
1419 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1420 CL_COMMON): Renumber.
1421 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1422 * opts.c (common_handle_option): Revert last change.
1423
7ab91c5f
L
14242008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1425
1426 * config/i386/i386-protos.h (ix86_schedule): New.
1427
1428 * config/i386/i386.c (ix86_schedule): New.
1429 (override_options): Add schedule to processor_alias_table. Set
1430 ix86_schedule from the schedule field in processor_alias_table.
1431 (ix86_function_specific_save): Save ix86_schedule.
1432 (ix86_function_specific_restore): Restore ix86_schedule.
1433
1434 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1435 ix86_tune. Add none and remove i386, i486, pentium4, nocona
1436 and generic32.
1437
1438 * config/i386/i386.opt: Add schedule.
1439
1440 * config/i386/ppro.md: Remove generic32.
1441
16d5ffec
SM
14422008-10-07 Simon Martin <simartin@users.sourceforge.net>
1443
1444 PR c/35437
1445 * expr.c (count_type_elements): Handle ERROR_MARK.
1446
7241571e
JJ
14472008-10-07 Jakub Jelinek <jakub@redhat.com>
1448
1449 PR debug/29609
1450 PR debug/36690
1451 PR debug/37616
1452 * basic-block.h (struct edge_def): Add goto_block field.
1453 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1454 one insn with locus corresponding to edge's goto_locus if !optimize.
1455 * profile.c (branch_prob): Copy edge's goto_block.
1456 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1457 emitted jumps.
1458 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1459 locator in between the merged basic blocks if !optimize and needed.
1460 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1461 goto_locus into RTL locator. For unconditional jump use that
1462 locator for the jump insn.
1463 (expand_gimple_cond): Convert goto_block and goto_locus into
1464 RTL locator for all remaining edges. For unconditional jump
1465 use that locator for the jump insn.
1466 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1467 there is more than one edge or insn locator along the forwarding
1468 edges and !optimize. If there is just one, set e->goto_locus.
1469 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1470 edge's goto_block.
1471 (move_block_to_fn): Adjust edge's goto_block.
1472
aee857a2
L
14732008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1474
1475 PR middle-end/37731
1476 * expmed.c (expand_mult): Properly check DImode constant in
1477 CONST_DOUBLE.
1478
a107f086
JJ
14792008-10-07 Jakub Jelinek <jakub@redhat.com>
1480
1481 PR debug/37738
1482 * dwarf2out.c (common_block_die_table): New variable.
1483 (common_block_die_table_hash, common_block_die_table_eq): New
1484 functions.
1485 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1486 COMMON block in the current scope rather than globally. Optimize
1487 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1488 DW_OP_addr SYMBOL_REF+off.
1489
cf9322ca
EB
14902008-10-07 Eric Botcazou <ebotcazou@adacore.com>
1491
1492 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1493 Return true for non-addressable GIMPLE operands.
1494
23cb97b7
L
14952008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1496
1497 PR target/24765
1498 * config/i386/i386.c (initial_ix86_tune_features): Remove
1499 X86_TUNE_USE_BIT_TEST.
1500 * config/i386/i386.h (ix86_tune_indices): Likewise.
1501 (TARGET_USE_BIT_TEST): Removed.
1502
ebca2d91
BRF
15032008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1504
1505 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1506
4c6f9770
AN
15072008-10-06 Adam Nemet <anemet@caviumnetworks.com>
1508
1509 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1510 (mul<mode>3_mul3): ... into this new template.
1511
1282697f
AH
15122008-10-06 Aldy Hernandez <aldyh@redhat.com>
1513
1514 * gimplify.c (gimplify_arg): Add location argument. Use it.
1515 (gimplify_call_expr): Pass location to gimplify_arg.
1516 (gimplify_modify_expr_to_memcpy): Same.
1517 (gimplify_modify_expr_to_memset): Same.
1518
ecbeb53b
AP
15192008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1520
1521 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1522 Update calls to build_unary_op and build_indirect_ref for location
1523 changes.
1524
c9f9eb5d
AH
15252008-10-06 Aldy Hernandez <aldyh@redhat.com>
1526
1527 build_modify_expr.
1528 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1529 * c-typeck.c (array_to_pointer_conversion): Pass location to
1530 build_unary_op.
1531 (function_to_pointer_conversion): Use error_at and warning_at.
1532 (build_indirect_ref): Same.
1533 (build_array_ref): Pass location to build_binary_op.
1534 (parser_build_unary_op): Do not set location after calling
1535 build_unary_op.
1536 (build_unary_op): Add location argument. Use it throughout. Set
1537 EXPR_LOCATION before returning new tree.
1538 (build_modify_expr): Same.
1539 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
1540 returning node.
1541 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1542 build_indirect_ref, build_modify_expr.
1543 (c_finish_omp_for): Same. Use error_at instead of error.
1544 * c-common.c (c_common_truthvalue_conversion): Pass location to
1545 build_unary_op.
1546 (warn_for_div_by_zero): Add location argument.
1547 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1548 build_unary_op, warn_for_div_by_zero.
1549 * c-parser.c (c_parser_typeof_specifier): Use
1550 protected_set_expr_location.
1551 (c_parser_statement_after_labels): Same.
1552 (c_parser_condition): Same.
1553 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1554 (c_parser_conditional_expression): Use protected_set_expr_location.
1555 (c_parser_unary_expression): Pass location to build_indirect_ref.
1556 (c_parser_postfix_expression_after_primary): Pass location to
1557 build_indirect_ref, build_unary_op.
1558 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1559
7a3446ec
JK
15602008-10-06 Joshua Kinard <kumba@gentoo.org>
1561
1562 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1563 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1564 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1565 r14000 and r16000.
1566 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1567 (mips_issue_rate): Handle PROCESSOR_R10000.
1568 * config/mips/mips.md (cpu): Add r10000.
1569 Include r10000.md.
1570 * config/mips/10000.md: New file.
1571
944258eb
RS
15722008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1573
1574 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1575 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1576 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1577
08a6a74b
RS
15782008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1579
1580 * config/darwin-protos.h (machopic_function_base_name): Delete.
1581 (machopic_function_base_sym): Likewise.
1582 (machopic_gen_offset): Declare.
1583 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1584 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1585 * config/darwin.c (machopic_function_base_name): Delete.
1586 (machopic_function_base_sym): Likewise.
1587 (gen_pic_offset): Rename to...
1588 (machopic_gen_offset): ...this and remove the pic_base argument.
1589 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1590 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1591 crtl->uses_pic_offset_table.
1592 (machopic_indirect_data_reference): Use new machopic_gen_offset
1593 interface.
1594 (machopic_legitimize_pic_address): Likewise.
1595 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1596
1597 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1598 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1599 * config/i386/i386.c (output_set_got): Likewise.
1600 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1601 instead of a MINUS.
1602 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1603 (legitimate_address_p): Likewise.
1604 (output_pic_addr_const): Likewise.
1605 (output_addr_const_extra): Likewise.
1606 (ix86_delegitimize_address): Expect darwin_local_data_pic to
1607 match an UNSPEC rather than a MINUS.
1608 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1609 (builtin_setjmp_receiver): Use machopic_gen_offset.
1610 * config/i386/predicates.md (pic_symbolic_operand): Handle
1611 UNSPEC_MACHOPIC_OFFSET.
1612
1613 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1614 Use machopic_gen_offset and machopic_operand_p.
1615 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1616 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1617 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1618 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1619 Set crtl->uses_pic_offset_table.
1620
2e4316da
RS
16212008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1622
1623 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1624 Declare.
1625 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1626 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1627 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1628 (constant_pool_expr_p): Use split_const and check the base.
1629 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1630 instead of a MINUS.
1631 (legitimate_constant_pool_address_p): Check toc_relative_p
1632 instead of constant_pool_expr_p.
1633 (print_operand_address): Always use output_addr_const for
1634 constant pool addresses.
1635 (rs6000_output_addr_const_extra): New function.
b7f58d5d 1636 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
2e4316da 1637
3517d3a0
VM
16382008-10-06 Vladimir Makarov <vmakarov@redhat.com>
1639
1640 PR middle-end/37535
1641
1642 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1643 (mark_ref_live, mark_ref_dead): Use them.
1644 (def_conflicts_with_inputs_p): Remove.
1645 (mark_early_clobbers): New function.
1646 (process_bb_node_lives): Call preprocess_constraints and
1647 mark_early_clobbers.
1648
1649 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1650
de27a12c
DS
16512008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
1652
1653 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1654 lib with -mthread switch.
1655
d19c0f4b
DS
16562008-10-05 Dodji Seketeli <dodji@redhat.com>
1657
1658 PR c++/37410
1659 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1660 function in two, making it call a new and reusable
1661 dwarf2out_imported_module_or_decl() that takes the containing
1662 BLOCK of the declaration in argument.
1663 (dwarf2out_imported_module_or_decl_real): New function.
1664 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1665 IMPORTED_DECL in account.
1666 * tree.def: Added IMPORTED_DECL node type.
1667 * tree.h: Added accessors for IMPORTED_DECL nodes.
1668 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1669
1d72ff1a
RW
16702008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1671
1672 * doc/gimple.texi: Fix some typos, wrap some long lines,
1673 fix some broken wraps with continuations.
1674 * tree-ssa-reassoc.c: Fix comment typos.
1675
0b076fea
JDA
16762000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1677
1678 PR target/37603
1679 * pa.c (legitimize_pic_address): Force function labels to memory in
1680 word mode.
1681
a3cb4b82
AB
16822008-10-04 Anton Blanchard <anton@samba.org>
1683
1684 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1685 (rs6000_split_atomic_op): Same.
1686 (rs6000_split_compare_and_swap): Same.
1687 (rs6000_split_compare_and_swapqhi): Same.
1688
63a14fa3
RG
16892008-10-04 Richard Guenther <rguenther@suse.de>
1690
1691 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1692 instead of pointer equality.
1693 (vn_nary_op_eq): Likewise.
1694
3a86d13b
AP
16952008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1696
1697 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
1698 condition.
1699 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1700 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1701
12df9508
DS
17022008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
1703
1704 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1705 Revert previous change.
1706
d1f43464
TT
17072008-10-03 Tom Tromey <tromey@redhat.com>
1708
1709 * stringpool.c (ggc_alloc_string): Terminate string.
1710
524d9a45
JJ
17112008-10-03 Jakub Jelinek <jakub@redhat.com>
1712
32001f69
JJ
1713 * gimplify.c (gimplify_function_tree): For -finstrument-functions
1714 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1715 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1716
524d9a45
JJ
1717 PR debug/37726
1718 * gimplify.c (declare_vars): Use gimple_bind_block instead of
1719 gimple_block.
1720
2f07423c
PO
17212008-10-03 Pascal Obry <obry@adacore.com>
1722
1723 * gcov.c (create_file_names): Properly handle UNIX and DOS
1724 directory separators.
1725 (make_gcov_file_name): Likewise + convert the ':' DOS drive
1726 separator to '~' to ensure clean filenames on Windows.
1727
12df9508
DS
17282008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1729
1730 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1731 Add a null terminator to the stripped name.
1732
56f4cc04
DE
17332008-10-02 David Edelsohn <edelsohn@gnu.org>
1734
1735 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1736 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1737 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
b7f58d5d
UB
1738 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
1739 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
56f4cc04
DE
1740 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1741 TARGET_SINGLE_FLOAT.
1742
17372f8c
DJ
17432008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
1744
1745 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1746
0d17b70a
RG
17472008-10-02 Richard Guenther <rguenther@suse.de>
1748
1749 PR middle-end/37713
1750 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1751 and VECTOR_TYPE recurse with useless_type_conversion_p which
1752 properly handles void pointer conversion.
1753
068450d0
DS
17542008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1755
1756 PR target/37528
1757 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1758 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
1759
266b4890
AP
17602008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1761
1762 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1763 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1764 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1765 they translate to non builtins.
1766 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1767 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
1768 __builtin_vec_promote, __builtin_vec_extract, and
1769 __builtin_vec_insert.
1770 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1771 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1772 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1773 * config/rs6000/altivec.h (vec_extract): Define
1774 (vec_insert): Define.
1775 (vec_splats): Define.
1776 (vec_promote): Define.
1777
0b61703c 17782008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
b7f58d5d
UB
1779 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
1780 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
0b61703c
AP
1781
1782 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1783 Altivec intrinsics.
1784 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1785 prototype. Add new parameter, blk.
1786 Use BLKmode for the MEM if blk is true.
1787 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1788 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1789 ALTIVEC_BUILTIN_STVRXL.
1790 Update usage of altivec_expand_lv_builtin.
1791 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1792 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1793 (altivec_init_builtins): If compiling for the Cell, also define the
1794 cell VMX builtins.
1795 * config/rs6000/rs6000.h (rs6000_builtins): Define
1796 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1797 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1798 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1799 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1800 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1801 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1802 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1803 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1804 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1805 UNSPEC_STVRX, and UNSPEC_STVRXL.
1806 (altivec_lvlx): New pattern.
1807 (altivec_lvlxl): New pattern.
1808 (altivec_lvrx): New pattern.
1809 (altivec_lvrxl): New pattern.
1810 (altivec_stvlx): New pattern.
1811 (altivec_stvlxl): New pattern.
1812 (altivec_stvrx): New pattern.
1813 (altivec_stvrxl): New pattern.
1814 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1815 (vec_lvlxl): Likewise.
1816 (vec_lvrx): Define if PPU is defined.
1817 (vec_lvrxl): Likewise.
1818 (vec_stvlx): Define if PPU is defined.
1819 (vec_stvlxl): Likewise.
1820 (vec_stvrx): Define if PPU is defined.
1821 (vec_stvrxl): Likewise.
1822
522aa637
GB
18232008-10-01 Geert Bosch <bosch@adacore.com>
1824
1825 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1826
c8ce33fa
RG
18272008-10-01 Richard Guenther <rguenther@suse.de>
1828
1829 PR tree-optimization/37617
1830 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1831 do not add to the NEW_SETS.
1832
256f88c6
RG
18332008-10-01 Richard Guenther <rguenther@suse.de>
1834
0b61703c
AP
1835 PR middle-end/37285
1836 * tree-vrp.c (execute_vrp): If we optimized away the default
1837 case make sure to promote the label that got in place of it
1838 to a default case label.
256f88c6 1839
35a45bd4
RH
18402008-10-01 Richard Henderson <rth@redhat.com>
1841
1842 PR tree-opt/35737
1843 * tree-complex.c (set_component_ssa_name): Don't optimize
1844 is_gimple_min_invariant values with ssa_names in abnormal phis.
1845
001003c2
PB
18462008-09-30 Paolo Bonzini <bonzini@gnu.org>
1847
1848 PR tree-optimization/37662
1849 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1850 commutative binary operation if they are in the wrong order and
1851 fold_build2 produces non-GIMPLE.
1852
61b70fcb
JJ
18532008-09-30 Jakub Jelinek <jakub@redhat.com>
1854
1855 PR tree-optimization/37662
1856 PR tree-optimization/37663
1857 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1858 get_value_range with non-SSA_NAME. Don't assert operands have been
1859 folded, instead just bail out.
1860
1847ea4d
AP
18612008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
1862
1863 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1864
516c743f
RG
18652008-09-30 Richard Guenther <rguenther@suse.de>
1866
1867 PR middle-end/37491
1868 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1869 build restrict-qualified pointers.
1870 (vectorizable_store): Move alias check later.
1871 (vectorizable_load): Likewise.
1872
626c34b5
PB
18732008-09-30 Paolo Bonzini <bonzini@gnu.org>
1874
1875 * c-common.c (empty_if_body_warning): Remove.
1876 * c-common.h (empty_if_body_warning): Remove.
1877 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1878 here the -Wempty-body warning for `if' and `else' statements.
1879 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1880
bd459cb6
L
18812008-09-29 H.J. Lu <hongjiu.lu@intel.com>
1882
1883 * config/i386/i386.opt: Add msse2avx.
1884
1885 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
1886 * config/i386/linux64.h (ASM_SPEC): Likewise.
1887
1888 * doc/invoke.texi: Document -msse2avx.
1889
2eb20e13
EB
18902008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1891
1892 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1893
567075ed
JM
18942008-09-29 Joseph Myers <joseph@codesourcery.com>
1895
1896 * ifcvt.c (noce_emit_store_flag): If using condition from original
1897 jump, reverse it if if_info->cond was reversed.
1898
ae00112b
EB
18992008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1900
1901 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1902 non-constant memory if it cannot be forced to constant memory.
1903 Overhaul surrounding code and factor out common condition.
1904
19052008-09-29 Jeff Law <law@redhat.com>
6b5676ce
JL
1906
1907 * reload1.c (alter_reg): Add missing curly braces.
1908
696e45ba
ME
19092008-09-29 Michael J. Eager <eager@eagercon.com>
1910
1911 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1912 are easy.
1913 * config/rs6000/rs6000.c (rs6000_override_options): Move
1914 rs6000_init_hard_regno_mode_ok after all options changed.
1915 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1916 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1917 -msimple-fpu flags. Add warning messages if single FP not configured.
1918 (rs6000_file_start): Output gnu_attribute for single-float.
1919 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1920 (rs6000_legitimize_address): Likewise.
1921 (rs6000_legitimize_reload_address): Likewise.
1922 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1923 TARGET_SINGLE_FLOAT.
1924 (function_arg_advance): Likewise (partial conversion).
1925 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1926 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1927 TARGET_SINGLE_FLOAT.
1928 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1929 (rs6000_emit_prologue): Likewise.
1930 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1931 TARGET_SINGLE_FLOAT.
1932 (rs6000_libcall_value): Likewise.
1933 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1934 (TARGET_DOUBLE_FLOAT): New default to 1
1935 (TARGET_SIMPLE_FPU): New default to 0
1936 (TARGET_SINGLE_FPU): New default to 0
1937 (TARGET_SINGLE_FLOAT_MODE): New.
1938 (TARGET_DOUBLE_FLOAT_MODE): New.
1939 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1940 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1941 UNITS_PER_FP_WORD
1942 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1943 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1944 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1945 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1946 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1947 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1948 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1949 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1950 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1951 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1952 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1953 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1954 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1955 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1956 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1957 cmptf_internal1, *cmptf_internal2): Condition on
1958 TARGET_DOUBLE_FLOAT.
1959 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1960 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1961 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1962 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1963 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1964 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1965 TARGET_SINGLE_FLOAT.
1966 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1967 * config/rs6000/rs6000.opt (-msingle-float): New.
1968 (-mdouble-float): New.
1969 (-msimple-fpu): New.
1970 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1971 -msingle-float, -mdouble-float, -msimple-fpu options.
1972 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1973 _SOFT_DOUBLE for -msingle-float.
1974 * config.gcc: New config for target=powerpc-xilinx-eabi.
1975
a61e3d2a
TG
19762008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
1977
4e5821d3
UB
1978 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
1979 have exit and entry.
a61e3d2a
TG
1980 (new_scop): Take entry and exit edge to define new SCoP.
1981 (sd_region_p): New structure used during SCoP detection.
1982 (move_scops): Delete.
1983 (move_sd_regions): New.
1984 (scopdet_info): Change the definition from edges back to basic_blocks.
1985 (scopdet_edge_info): Work on basic_blocks and rename to
1986 scopdet_basic_block_info.
1987 (split_difficult_bb): At the moment removed. We should later
1988 add it at another place.
1989 (build_scops_1): Work on basic_blocks.
1990 (bb_in_sd_region): New.
1991 (find_single_entry_edge): New.
1992 (find_single_exit_edge): New.
1993 (create_single_entry_edge): New.
1994 (sd_region_without_exit): New.
1995 (create_single_exit_edge): New.
1996 (unmark_exit_edges): New.
1997 (mark_exit_edges): New.
1998 (create_sese_edges): New.
1999 (build_graphite_scops): New.
2000 (build_scops): Make SCoPs SESE.
2001 (limit_scops): Use the new functions.
2002
e53c2677
HPN
20032008-09-29 Hans-Peter Nilsson <hp@axis.com>
2004
2005 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
2006
4b49d9ce
AP
20072008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2008
2009 PR target/37640
2010 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
2011 address to a register before taking the lower part.
2012
30deaaf3
KK
20132008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
2014
2015 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
2016 for SHmedia.
2017
f50d67f6 20182008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4e5821d3 2019 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
f50d67f6
AP
2020
2021 PR tree-opt/36891
2022 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
2023 the newly created variable.
2024 Create a VECTOR_CST of all 1s for vector types.
2025
58760a81
EB
20262008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2027
2028 PR middle-end/36575
ccad7589 2029 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
58760a81 2030
86cfb27a
EB
20312008-09-28 Eric Botcazou <ebotcazou@adacore.com>
2032
2033 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
2034 order to convert between modes.
2035 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
2036
f2a945b1
KK
20372008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
2038
2039 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
2040 if needed.
2041
f98c983a
VM
20422008-09-26 Vladimir Makarov <vmakarov@redhat.com>
2043
2044 Revert:
0b61703c 2045 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
f98c983a
VM
2046 * ira-lives.c:...
2047 * doc/rtl.texi:...
2048
aa5409e7
AN
20492008-09-26 Adam Nemet <anemet@caviumnetworks.com>
2050
2051 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
2052 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
2053 them to yield false with MIPS16.
2054
71142814
JJ
20552008-09-26 Jakub Jelinek <jakub@redhat.com>
2056
9c2b3df1
JJ
2057 PR middle-end/37275
2058 * dwarf2out.c (tls_mem_loc_descriptor): New function.
2059 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
2060 mem_loc_descriptor failed. Accept UNSPEC.
2061 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
2062 fail if one of the loc_descriptor calls for pieces failed.
2063 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
2064 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
2065 if loc_descriptor_from_tree_1 on offset failed.
2066
71142814
JJ
2067 PR middle-end/37576
2068 * opts.c (common_handle_option): Don't call print_specific_help with
2069 CL_SAVE as first argument.
2070
5d47bb02 20712008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
4e5821d3 2072 Steve Ellcey <sje@cup.hp.com>
5d47bb02
PG
2073
2074 * configure: Regenerate for new libtool.
2075 * aclocal.m4: Ditto.
2076
16044a80
PH
20772008-09-26 Pat Haugen <pthaugen@us.ibm.com>
2078
2079 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
2080 alias set on MEM when saving stack pointer.
2081 * config/rs6000/rs6000.md (allocate_stack): Likewise
2082
4ee279f2
DN
20832008-09-26 Dorit Nuzman <dorit@il.ibm.com>
2084
2085 PR tree-optimization/37574
2086 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
2087 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
2088 instead of vector_type for constants. Take computation out of loop.
2089 (vect_get_vec_def_for_operand): Use only vectype for constant case,
2090 and use only vector_type for invariant case.
2091 (get_initial_def_for_reduction): Use vectype instead of vector_type.
2092
e7b012c0
JJ
20932008-09-25 Jakub Jelinek <jakub@redhat.com>
2094
2095 PR c/37645
2096 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
2097 the decl is a VAR_DECL or FUNCTION_DECL.
2098
83d48fad
VM
20992008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2100
2101 PR middle-end/37535
83d48fad
VM
2102 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2103 (mark_ref_live, mark_ref_dead): Use them.
2104 (def_conflicts_with_inputs_p): Remove.
2105 (mark_early_clobbers): New function.
2106 (process_bb_node_lives): Call preprocess_constraints and
2107 mark_early_clobbers.
2108
2109 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2110
b15a7ae6
VM
21112008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2112
2113 PR middle-end/37448
b15a7ae6
VM
2114 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2115 (ira_compress_allocno_live_ranges): New prototype.
2116
2117 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2118 (coalesced_allocnos_living_at_program_points): New.
2119 (coalesced_allocnos_live_at_points_p,
2120 set_coalesced_allocnos_live_points): New functions.
2121 (coalesce_spill_slots): Rewrite.
2122
2123 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2124 ira_compress_allocno_live_ranges): New functions.
2125
2126 * ira-build.c (ira_flattening): Call
2127 ira_compress_allocno_live_ranges.
2128 (ira_build): Ditto.
2129
6396547e
L
21302008-09-25 H.J. Lu <hongjiu.lu@intel.com>
2131
2132 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2133 optimization.
2134
6ffef2ad
RS
21352008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
2136
2137 * combine.c (make_compound_operation): Handle the 'E' format.
2138 (count_rtxs): Likewise.
2139 (update_table_tick): Likewise.
2140 (get_last_value_validate): Likewise.
2141
116612b9
EB
21422008-09-25 Eric Botcazou <ebotcazou@adacore.com>
2143
2144 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2145
e76314a7
SD
21462008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2147
6396547e 2148 * matrix-reorg.c (transform_allocation_sites): Initializers
e76314a7
SD
2149 added to avoid the warning.
2150
2fb16412
MJ
21512008-09-25 Martin Jambor <mjambor@suse.cz>
2152
2153 * cgraph.c (free_nodes): New variable.
2154 (NEXT_FREE_NODE): New macro.
2155 (cgraph_create_node): Reuse nodes from the free list. Do not
2156 update uid if doing so.
2157 (cgraph_remove_node): Add the node to the free list.
2158
0c327f09
GP
21592008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
2160
2161 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2162
b5e9dce1
RH
21632008-09-24 Richard Henderson <rth@redhat.com>
2164
2165 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2166 * unwind-dw2.c (execute_stack_op): Handle it.
2167
cf8e1455
DE
21682008-09-24 David Edelsohn <edelsohn@gnu.org>
2169
2170 Revert:
2171 2008-09-24 Michael J. Eager <eager@eagercon.com>
2172
3ba09659
AH
21732008-09-24 Aldy Hernandez <aldyh@redhat.com>
2174
2175 * c-common.c (fname_decl): New location argument.
2176 * c-common.h (fname_decl): Same.
2177 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2178 {warning,error}.
2179 (c_parser_typeof_specifier): Same.
2180 (c_parser_parms_list_declarator): Same.
2181 (c_parser_asm_string_literal): Same.
2182 (c_parser_compound_statement_nostart): Same.
2183 (c_parser_label): Same.
2184 (c_parser_do_statement): Same.
2185 (c_parser_asm_statement): Same.
2186 (c_parser_unary_expression): Same.
2187 (c_parser_sizeof_expression): Same.
2188 (c_parser_postfix_expression): Same.
2189 (c_parser_pragma): Same.
2190 (c_parser_omp_clause_collapse): Same.
2191 (c_parser_omp_clause_num_threads): Same.
2192 (c_parser_omp_clause_schedule): Same.
2193 (c_parser_omp_all_clauses): Same.
2194 (c_parser_omp_sections_scope): Same.
2195 (c_parser_omp_for_loop): Same. Pass condition's location to
2196 c_objc_common_truthvalue_conversion.
2197 (c_parser_enum_specifier): Remove comment.
2198
2a013f05
ME
21992008-09-24 Michael J. Eager <eager@eagercon.com>
2200
2201 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2202 are easy.
2203 * config/rs6000/rs6000.c (rs6000_override_options): Move
2204 rs6000_init_hard_regno_mode_ok after all options changed.
2205 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2206 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2207 -msimple-fpu flags. Add warning messages if single FP not configured.
2208 (rs6000_file_start): Output gnu_attribute for single-float.
2209 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2210 (rs6000_legitimize_address): Likewise.
2211 (rs6000_legitimize_reload_address): Likewise.
2212 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2213 TARGET_SINGLE_FLOAT.
2214 (function_arg_advance): Likewise.
2215 (function_arg): Likewise.
2216 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2217 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2218 TARGET_SINGLE_FLOAT.
2219 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2220 (rs6000_emit_prologue): Likewise.
2221 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2222 TARGET_SINGLE_FLOAT.
2223 (rs6000_libcall_value): Likewise.
2224 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2225 (TARGET_DOUBLE_FLOAT): New default to 1
2226 (TARGET_SIMPLE_FPU): New default to 0
2227 (TARGET_SINGLE_FPU): New default to 0
2228 (TARGET_SINGLE_FLOAT_MODE): New.
2229 (TARGET_DOUBLE_FLOAT_MODE): New.
2230 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2231 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2232 UNITS_PER_FP_WORD
2233 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2234 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2235 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2236 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2237 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2238 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2239 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2240 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2241 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2242 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2243 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2244 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2245 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2246 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2247 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2248 cmptf_internal1, *cmptf_internal2): Condition on
2249 TARGET_DOUBLE_FLOAT.
2250 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2251 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2252 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2253 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2254 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2255 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2256 TARGET_SINGLE_FLOAT.
2257 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2258 * config/rs6000/rs6000.opt (-msingle-float): New.
2259 (-mdouble-float): New.
2260 (-msimple-fpu): New.
2261 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2262 -msingle-float, -mdouble-float, -msimple-fpu options.
2263 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2264 _SOFT_DOUBLE for -msingle-float.
2265 * config.gcc: New config for target=powerpc-xilinx-eabi.
2266
157891a3
EB
22672008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2268
2269 * config/sparc/constraints.md: New file.
2270 * config/sparc/sparc.md: Include it.
2271 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2272 (sparc_extra_constraint_check): Delete.
2273 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2274 (memory_ok_for_ldd): New predicate.
2275 (sparc_extra_constraint_check): Delete.
2276 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2277 (CONST_OK_FOR_LETTER_P): Likewise.
2278 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2279 (EXTRA_CONSTRAINT): Likewise.
2280
b41310e2
SE
22812008-08-23 Steve Ellcey <sje@cup.hp.com>
2282
2283 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2284
53451050
RS
22852008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2286
2287 * alias.c (find_base_value): Use FIND_BASE_TERM.
2288 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2289
411e138a
RS
22902008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2291
2292 * config/i386/i386.c: Include cselib.h.
2293 (ix86_pic_register_p): New function.
2294 (ix86_delegitimize_address): Use it to check for the PIC register.
2295
a9e6fc5a
RS
22962008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2297
2298 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2299 * config/i386/i386.c (ix86_find_base_term): Don't check for
2300 SYMBOL_REF and LABEL_REF.
2301
5213f1a6
RS
23022008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2303
2304 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2305 constant PLUS in a CONST.
2306
37e27d01
KT
23072008-09-23 Kai Tietz <kai.tietz@onevision.com>
2308
70d1a750 2309 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
37e27d01
KT
2310 check for sibcall support for w64.
2311
c9891b70
EB
23122008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2313
2314 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2315
ba47d38d
AH
23162008-09-23 Aldy Hernandez <aldyh@redhat.com>
2317
2318 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2319 parser_build_binary_op.
2320 * c-decl.c (build_enumerator): Pass location to build_binary_op.
2321 * c-typeck.c (build_array_ref): Same.
2322 (parser_build_unary_op): New location argument.
2323 (pointer_diff): Pass location to build_binary_op,
2324 c_objc_common_truthvalue_conversion.
2325 (build_modify_expr): Same.
2326 (build_unary_op): New location argument.
2327 (build_binary_op): New location argument.
2328 (c_objc_common_truthvalue_conversion): Pass location to
2329 c_*common_truthvalue_conversion.
2330 * c-convert.c (convert): Same.
2331 * c-common.c (binary_op_error): New location argument.
2332 (pointer_int_sum): Pass location to build_binary_op.
2333 (c_common_truthvalue_conversion): New location argument.
2334 (warn_for_sign_compare): Same.
2335 * c-common.h: Add location argument to c_common_truthvalue_conversion,
2336 binary_op_error, build_binary_op, warn_for_sign_compare.
2337 * c-parser.c (c_parser_condition): Pass location to
2338 c_*common_truthvalue_conversion.
2339 (c_parser_conditional_expression): Save condition's location and pass
2340 it on down.
2341 (c_parser_binary_expression): Same, but for the binary operator's
2342 location.
2343 (c_parser_omp_for_loop): Pass location to
2344 c_objc_common_truthvalue_conversion.
2345
5c0466b5
MJ
23462008-09-23 Martin Jambor <mjambor@suse.cz>
2347
2348 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2349 (cgraph_node_remove_callees): New temporary f. Hold the next item
2350 in f when looping.
2351 (cgraph_node_remove_callers): Likewise.
2352
2353 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2354 (ipa_node_removal_hook): Likewise.
2355
2356 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2357 gimple_call_copy_skip_args and moved to the gimple_call section.
2358 * gimple.c (gimple_copy_call_skip_args): Renamed to
2359 gimple_call_copy_skip_args. Changed al users.
2360
1ae64b0f
VM
23612008-09-22 Vladimir Makarov <vmakarov@redhat.com>
2362
2363 * ira-color.c (start_allocno_priorities): Rename to
2364 setup_allocno_priorities. Use costs and
2365 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2366 range lengths. Get rid off doubles.
2367 (ira_fast_allocations): Call start_allocno_priorities.
2368
61debb78
DD
23692008-09-22 David Daney <ddaney@avtrex.com>
2370
2371 PR target/37593
2372 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2373 register if TARGET_LONG_CALLS.
2374
ecb4e37b
RG
23752008-09-22 Richard Guenther <rguenther@suse.de>
2376
2377 PR tree-optimization/37145
2378 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2379 value-numbering union accesses with their offset and size only.
2380 (visit_reference_op_load): Fix simplification of inserted conversions.
2381 * tree-ssa-pre.c (find_or_generate_expression): Do not
2382 recursively generate expressions if running FRE.
2383
7846e5f9
AN
23842008-09-22 Adam Nemet <anemet@caviumnetworks.com>
2385
2386 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
b7f58d5d
UB
2387 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2388 New patterns.
7846e5f9 2389
47af7a5c
RG
23902008-09-22 Richard Guenther <rguenther@suse.de>
2391
2392 PR tree-optimization/37145
2393 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2394 (phi_translate_1): Constant fold references.
2395
5e038cad
IR
23962008-09-22 Ira Rosen <irar@il.ibm.com>
2397
2398 PR tree-optimization/37482
2399 * tree-vectorizer.h (struct _slp_instance): Add new field.
2400 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2401 (get_earlier_stmt): New function.
2402 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2403 function.
2404 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2405 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2406 asserts that GSI points to the scalar statement being vectorized.
2407 Set new statement location according to GSI.
2408 (vect_schedule_slp_instance): Use GSI of
2409 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2410
c801c273
JH
24112008-09-21 Jan Hubicka <jh@suse.cz>
2412
2413 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2414 (ipcp_insert_stage): Update dead_nodes bitmap.
2415
d59e481e
DS
24162008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
2417
2418 PR target/37528
2419 * config/i386/t-cygming (SHLIB_LC): Remove.
2420 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
b7f58d5d 2421 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
d59e481e 2422
c70d0414
HPN
24232008-09-22 Hans-Peter Nilsson <hp@axis.com>
2424
2425 PR middle-end/37170
2426 PR middle-end/37280
2427 * final.c (mark_symbol_ref_as_used): New helper function.
2428 (output_operand): Instead of just looking inside MEMs for
2429 SYMBOL_REFs, use new helper function and for_each_rtx.
2430 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2431 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
2432 Make head comment more general.
2433 * config/darwin.c (machopic_output_indirection): Handle weak
2434 references here, like in assemble_external.
2435
19047e4a
EB
24362008-09-21 Eric Botcazou <ebotcazou@adacore.com>
2437
2438 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2439 (sparc_emit_float_lib_cmp): Change return type.
2440 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2441 (gen_compare_operator): New function.
2442 (sparc_emit_float_lib_cmp): Return the new operator to be used in
2443 the comparison sequence. Minor tweaks.
2444 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2445 that the final operator and the result of sparc_emit_float_lib_cmp
2446 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2447 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2448 buneq, bunge, bunle, bltgt): Assert that the final operator and the
2449 result of sparc_emit_float_lib_cmp match for software TFmode.
2450 (movqicc, movhicc, movsicc, movdicc): Merge into...
2451 (mov<I:mode>cc): ...this.
2452 (movsfcc, movdfcc, movtfcc): Merge into...
2453 (mov<F:mode>cc): ...this.
2454 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2455 into...
2456 (mov<I:mode>_cc_v9): ...this.
2457 (movdi_cc_sp64_trunc): Delete.
2458 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2459 movdi_cc_reg_sp64): Merge into...
2460 (mov<I:mode>_cc_reg_sp64): ...this.
2461 (movsf_cc_sp64): Rename into...
2462 (movsf_cc_v9): ...this.
2463 (movdf_cc_sp64): Rename into...
2464 (movdf_cc_v9): ...this.
2465 (movtf_cc_hq_sp64): Rename into...
2466 (movtf_cc_hq_v9): ...this.
2467 (movtf_cc_sp64): Rename into...
2468 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
2469
e6c99067
DN
24702008-09-21 Diego Novillo <dnovillo@google.com>
2471
2472 * doc/gccint.texi: Include generic.texi and gimple.texi.
2473 Re-order index.
2474 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2475 (GIMPLE): Move to gimple.texi.
2476 (Annotations): Remove references to to stmt_ann_t and
2477 ssa_name_ann_t.
2478 (SSA Operands): Rename from 'Statement Operands'.
2479 * doc/generic.texi: New.
2480 * doc/gimple.texi: New.
b7f58d5d 2481 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
e6c99067
DN
2482 * Makefile.in (TEXI_GCCINT_FILES):
2483 * gimple.c (gimple_copy_call_skip_args): Rename from
2484 giple_copy_call_skip_args. Update all users.
2485 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2486
5abf3860
IR
24872008-09-21 Ira Rosen <irar@il.ibm.com>
2488
2489 PR tree-optimization/37539
2490 * tree-vect-transform.c (vect_transform_strided_load): Save vector
2491 statement in related statement field only for the first load of the
2492 group of loads with the same data reference.
2493
ce00be9e
AN
24942008-09-20 Adam Nemet <anemet@caviumnetworks.com>
2495
2496 * config/mips/mips.h (TUNE_OCTEON): New macro.
2497 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2498 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2499 * config/mips/octeon.md: New file.
2500 * config/mips/mips.md: Include octeon.md. Restore
2501 semi-alphabetical order of include files.
2502
5a73c476
L
25032008-09-20 H.J. Lu <hongjiu.lu@intel.com>
2504
2505 PR target/37571
2506 * config/i386/i386.md (*jcc_fused_1): Removed.
2507 (*jcc_fused_2): Likewise.
2508 (*jcc_fused_3): Likewise.
2509 (*jcc_fused_4): Likewise.
2510
76e68dca
RS
25112008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
2512
2513 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2514 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2515 * target.h (gcc_target): Add ira_cover_classes.
2516 * ira.c: Remove IRA_COVER_CLASSES guards.
2517 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2518 instead of IRA_COVER_CLASSES.
2519 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2520 (setup_class_translate): Likewise.
2521 (setup_reg_class_intersect_union): Likewise.
2522 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2523 test of targetm.ira_cover_classes.
2524 * opts.c (decode_options): Use targetm.ira_cover_classes instead
2525 of IRA_COVER_CLASSES.
2526 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2527 (TARGET_INITIALIZER): Include it.
2528 * targhooks.h (default_ira_cover_classes): Declare.
2529 * targhooks.c (default_ira_cover_classes): New function.
2530
398857e4
BW
25312008-09-19 Bob Wilson <bob.wilson@acm.org>
2532
2533 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2534
acafbcde
ILT
25352008-09-19 Ian Lance Taylor <iant@google.com>
2536
2537 * varasm.c (narrowing_initializer_constant_valid_p): Return
2538 NULL_TREE if ENDTYPE is not an integer.
2539
f22b7039
AP
25402008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2541
2542 PR tree-opt/30930
2543 * tree-ssa.c (execute_update_addresses_taken): Also update
2544 DECL_GIMPLE_REG_P for vector and complex types.
2545
60ffe2fe
AM
25462008-09-19 Andrew MacLeod <amacleod@redhat.com>
2547 Jan Hubicka <jh@suse.cz>
2548
2549 PR middle-end/37567
2550 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2551 empty before freeing them.
2552 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2553
6a7a462c
BW
25542008-09-18 Bob Wilson <bob.wilson@acm.org>
2555
2556 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2557 * config/xtensa/predicates.md (tls_symbol_operand): New.
2558 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2559 (TARGET_CANNOT_FORCE_MEM): Define.
2560 (xtensa_tls_symbol_p): New.
2561 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2562 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2563 (xtensa_tls_module_base): New.
2564 (xtensa_call_tls_desc): New.
2565 (xtensa_legitimize_tls_address): New.
2566 (xtensa_legitimize_address): Handle TLS symbols.
2567 (xtensa_tls_referenced_p_1): New.
2568 (xtensa_tls_referenced_p): New.
4e5821d3
UB
2569 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2570 UNSPEC_DTPOFF.
6a7a462c
BW
2571 (XTENSA_BUILTIN_THREAD_POINTER): New.
2572 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
4e5821d3
UB
2573 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2574 builtin. Add declarations for __builtin_thread_pointer and
6a7a462c
BW
2575 __builtin_set_thread_pointer.
2576 (xtensa_fold_builtin): Recognize new builtins.
2577 (xtensa_expand_builtin): Expand new builtins.
2578 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2579 (TARGET_THREADPTR): Define.
2580 (HAVE_AS_TLS): Define default value.
2581 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2582 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2583 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2584 (UNSPECV_SET_TP): New.
2585 (sym_TPOFF, sym_DTPOFF): New.
2586 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2587 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2588 * configure: Regenerated.
2589
faae4ae7
L
25902008-09-18 H.J. Lu <hongjiu.lu@intel.com>
2591
2592 PR target/37394
2593 * config/ia64/ia64.c (ia64_optimization_options): Move
2594 checking and setting flag_schedule_insns_after_reload and
2595 ia64_flag_schedule_insns2 back to ...
2596 (ia64_override_options): Here.
2597
b2a38b1d
AP
25982008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
2599
2600 PR rtl-opt/37451
2601 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2602 zero extend count after the correction to it is done.
2603 (doloop_optimize): Update call to doloop_modify, don't zero extend
2604 count before call.
2605
be95e2b9
MJ
26062008-09-18 Martin Jambor <mjambor@suse.cz>
2607
2608 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2609
2610 * ipa-prop.c: Correct comments.
2611 * ipa-prop.h: Likewise.
2612
e2c9111c
JH
26132008-09-18 Jan Hubicka <jh@suse.cz>
2614
2615 PR middle-end/37448
2616 * ipa-reference.c (ipa_reference_local_vars_info_d,
2617 ipa_reference_global_vars_info_d,
2618 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2619 ipa_reference_vars_info_t): Move here from ipa-reference.h
2620 (node_duplication_hook_holder, node_removal_hook_holder): New.
2621 (get_reference_vars_info_from_cgraph): Rename to ...
2622 (get_reference_vars_info): ... this one, use cgraph uids.
2623 (get_local_reference_vars_info, get_global_reference_vars_info):
2624 Use cgraph instead of decl.
4e5821d3
UB
2625 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2626 Remove.
e2c9111c 2627 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
4e5821d3
UB
2628 ipa_reference_get_written_global,
2629 ipa_reference_get_not_written_global): Use cgraph argument.
e2c9111c
JH
2630 (check_call): Simplify avail check.
2631 (scan_stmt_for_static_refs): Update.
2632 (propagate_bits): Update.
2633 (merge_callee_local_info): Remove.
2634 (init_function_info): Use cgraph nodes.
2635 (clean_function_local_data): Break out from ...
2636 (clean_function): ... here.
2637 (copy_local_bitmap, copy_global_bitmap): New functions.
2638 (duplicate_node_data, remove_node_data): New functions.
2639 (generate_summary): Register hooks; use visibility instead of
2640 master clones.
2641 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2642 * ipa-reference.h (ipa_reference_local_vars_info_d,
2643 ipa_reference_global_vars_info_d,
2644 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2645 ipa_reference_vars_info_t): Move to ipa-reference.c
2646 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2647 Remove.
2648 (ipa_reference_get_read_global, ipa_reference_get_written_global,
4e5821d3
UB
2649 ipa_reference_get_not_read_global,
2650 ipa_reference_get_not_written_global): Update prototype.
e2c9111c
JH
2651 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2652 (init_state): Remove.
2653 (node_duplication_hook_holder, node_removal_hook_holder): New.
2654 (get_function_state, set_function_state): Use VECtor.
2655 (analyze_function): Check body availability.
2656 (add_new_function): Likewise.
2657 (duplicate_node_data, remove_node_data): New.
2658 (generate_summary): Register hooks; do not care about clones.
4e5821d3
UB
2659 (propafate): Do not care about clones; recursive functions are
2660 not looping.
e2c9111c
JH
2661 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2662 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2663 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2664 static.
2665 * tree-flow.h (function_ann_d): Remove reference_vars_info.
4e5821d3
UB
2666 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2667 Update call of ipa-reference accesors.
e2c9111c 2668
c047ce93
SB
26692008-09-18 Simon Baldwin <simonb@google.com>
2670
2671 * c-opts.c (c_common_handle_option): Add handling for
2672 -Wbuiltin-macro-redefined command line option.
2673 * c.opt: Added builtin-macro-redefined option.
2674 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2675 documentation.
2676
1d295886
RG
26772008-09-18 Richard Guenther <rguenther@suse.de>
2678
2679 PR tree-optimization/37258
2680 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2681 and signedness for integral types.
2682 (vn_phi_eq): Require compatible types.
2683
802e9f8e
JJ
26842008-09-18 Jakub Jelinek <jakub@redhat.com>
2685
2686 PR debug/34037
2687 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2688 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2689 VAR_DECL.
2690 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2691 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2692 ggc_free other TREE_LIST nodes from that chain.
2693 * function.c (instantiate_decls): Instantiate also DECL_RTL
2694 of vars in cfun->local_decls, free that list afterwards.
2695
a2cd689a
EB
26962008-09-18 Eric Botcazou <ebotcazou@adacore.com>
2697
2698 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2699 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2700
4b756989
AM
27012008-09-18 Andrew MacLeod <amacleod@redhat.com>
2702
802e9f8e 2703 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
4b756989
AM
2704 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2705
ffd327a7
AM
27062008-09-18 Andrew MacLeod <amacleod@redhat.com>
2707
2708 PR tree-optimization/37102
a38df783
AM
2709 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2710 from a node. Check to see if another PHI is dead.
2711 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
2712 remove real PHIs which have no uses.
ffd327a7
AM
2713 (rewrite_out_of_ssa): Call eliminate_useless_phis.
2714
3d9fbb9a
RG
27152008-09-18 Richard Guenther <rguenther@suse.de>
2716
2717 PR middle-end/37284
2718 * tree-cfg.c (remove_useless_stmts_1): Remove
2719 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2720
35f2d8ef
NC
27212008-09-18 Nick Clifton <nickc@redhat.com>
2722
2723 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2724 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2725 to frv_secondary_reload_class.
2726 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2727 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2728 (frv_secondary_reload_class): Omit unused parameter.
2729 (frv_secondary_reload): New function. Handle the case when
2730 secondary_reload_class() is called before the reload_(in|out)
2731 _optabs have been initialised.
2732 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2733 unused parameter.
2734 * config/frv/frv.md: Define an exclusion set between fr550_m0
2735 and fr550_f0.
2736
e7089ecf
RG
27372008-09-18 Richard Guenther <rguenther@suse.de>
2738
2739 PR tree-optimization/37456
2740 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2741 want to insert after ends a BB insert on the single fallthru
2742 outgoing edge.
2743
59a1bff3
AK
27442008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
2745
2746 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2747 Mention -march=z9-109, z9-ec and z10.
2748
02bb8bce
UB
27492008-09-18 Uros Bizjak <ubizjak@gmail.com>
2750
2751 PR rtl-optimization/37544
2752 * regrename.c (maybe_mode_change): Exit early when copy_mode
2753 is narrower than orig_mode and narrower than new_mode.
2754
d9e74dfc
AM
27552008-09-18 Alexander Monakov <amonakov@ispras.ru>
2756
2757 PR middle-end/37499
b7f58d5d 2758 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
d9e74dfc
AM
2759
2760 * sched-rgn.c (ref_counts): Remove.
2761 (insn_referenced): New static variable.
2762 (INSN_REF_COUNT): Remove.
2763 (sched_run_compute_dependencies): Use insn_referenced instead of
2764 INSN_REF_COUNT.
2765 (add_branch_dependences): Likewise. Delete dead assignment.
2766
078a70a1
AN
27672008-09-17 Adam Nemet <anemet@caviumnetworks.com>
2768
2769 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2770 consumer is an asm. Add comment why this is important.
2771 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
b7f58d5d 2772 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
078a70a1 2773
38c4df0b
JM
27742008-09-17 Joseph Myers <joseph@codesourcery.com>
2775
2776 * expr.c (emit_group_store): Do not shift before moving via a
2777 stack slot.
2778
1a8c909e
EB
27792008-09-17 Eric Botcazou <ebotcazou@adacore.com>
2780
2781 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2782 from aggregate to non-aggregate type if the bit pattern is not fully
2783 preserved afterwards.
2784
9f509004
RG
27852008-09-17 Richard Guenther <rguenther@suse.de>
2786
2787 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2788 (verify_gimple_assign): ... this. Split into ...
2789 (verify_gimple_assign_unary): ... this,
2790 (verify_gimple_assign_binary): ... that,
2791 (verify_gimple_assign_single): ... and this.
2792 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2793 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2794 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2795 (verify_types_in_gimple_reference): Be forgiving with
2796 VIEW_CONVERT_EXPRs.
2797 (verify_gimple_phi): Deal with virtual operands.
2798
2799 * tree.def (PREDICT_EXPR): Change to tcc_expression.
2800
2700cb86
AP
28012008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2802
2803 * tree.c (get_callee_fndecl): Don't call the language hook.
2804 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2805 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2806 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2807
6847a754
JJ
28082008-09-17 Jakub Jelinek <jakub@redhat.com>
2809
2810 * tree.c (protected_set_expr_location): Don't unnecessarily
2811 check for error_mark_node.
2812
71b10713
AH
28132008-09-17 Art Haas <ahaas@impactweather.com>
2814
2815 * ipa-reference.c (analyze_function): Declare step only if
2816 ENABLE_CHECKING is defined.
2817
0494626a
JH
28182008-09-17 Jan Hubicka <jh@suse.cz>
2819
2820 PR c++/18071
2821 * tree.h (DECL_INLINE): remove.
2822 (DECL_DECLARED_INLINE_P): Update docs.
2823 (DECL_NO_INLINE_WARNING_P): new.
2824 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2825 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2826
1c1b0507
JJ
28272008-09-17 Jakub Jelinek <jakub@redhat.com>
2828 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2829
2830 PR bootstrap/37441
2831 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2832 false.
2833
ebcf9dc8
JH
28342008-09-17 Jan Hubicka <jh@suse.cz>
2835
2836 * ipa-reference.c (ipa_obstack): Remove.
2837 (local_info_obstack, global_info_obstack): New.
2838 (add_static_var): We now handle variables only.
2839 (mark_address_taken, mark_load, mark_store): New functions based on ...
2840 (check_operand): ... remove.
2841 (get_asm_stmt_operands): Rename to ...
2842 (check_asm_memory_clobber): ... this. Look only for memory clobber.
2843 (scan_stmt_for_static_refs): Rewrite.
2844 (scan_op_for_static_refs): Rename to ...
2845 (scan_initializer_for_static_refs): do not look for VAR_DECL
2846 initializers; stop recursion on types and decls.
2847 (ipa_init): Use proper obstacks.
2848 (analyze_variable): Use scan_initializer_for_static_refs.
2849 (init_function_info): Use local obstack.
2850 (analyze_function): Simplify.
2851 (add_new_function): We don't need visited_nodes obstack.
2852 (generate_summary): Use proper obstacks; cleanup after propagation.
2853
791f1714
RG
28542008-09-17 Richard Guenther <rguenther@suse.de>
2855
2856 PR middle-end/37385
2857 PR tree-optimization/37491
2858 * alias.c (get_alias_set): Use the canonical type.
2859 * tree-vect-transform.c (vectorizable_store): Use the type of
2860 the lhs for the vector type. Adjust checking.
2861 (vectorizable_load): Adjust checking.
2862
b5fb36ee
JJ
28632008-09-16 Jakub Jelinek <jakub@redhat.com>
2864 Adam Nemet <anemet@caviumnetworks.com>
2865
2866 PR rtl-optimization/37483
2867 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2868 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2869 Rearrange code to better match the original comment. Check
2870 t_unconditional first. Improve comment.
2871
cc8b343d
JJ
28722008-09-16 Jakub Jelinek <jakub@redhat.com>
2873
8c50b495
JJ
2874 PR c/37529
2875 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2876 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2877
cc8b343d
JJ
2878 PR c++/37530
2879 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2880 GIMPLE_TRY if cleanup sequence is empty.
2881
b9ff6079
AP
28822008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
2883
2884 PR middle-end/37263
2885 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2886 eliminate IV if the cost are the same.
2887
d573123d
RG
28882008-09-16 Richard Guenther <rguenther@suse.de>
2889
2890 PR middle-end/37380
2891 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2892 if not necessary.
2893
9cb57027
RG
28942008-09-16 Richard Guenther <rguenther@suse.de>
2895
2896 PR tree-optimization/37508
2897 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2898
9705d817
KK
28992008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
2900
2901 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2902
f369bbb1
AP
29032008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2904
2905 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2906 use gen_floatdidf2 directly.
2907 (floatunssidf2): Likewise.
2908 (floatsidf_ppc64_mfpgpr): Remove.
2909 (floatsidf_ppc64): Remove.
2910 (floatunssidf_ppc64): Remove.
2911
8586aeeb
JJ
29122008-09-15 Jakub Jelinek <jakub@redhat.com>
2913
0eeb2240
JJ
2914 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2915 rather than update_cost_queue.
2916
1fdeb82f
JJ
2917 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2918 in every call starting with the second one, instead of only when
2919 alias_bitmap_obstack.elements != NULL.
2920
2921 * tree-predcom.c (filter_suitable_components): Free all refs in
2922 act->refs vector before calling release_component.
2923 (add_ref_to_chain): Free ref if not adding it to chain->refs.
2924
2925 * tree-data-ref.c (free_subscripts): Free all subscript objects.
2926
2927 * tree-loop-linear.c (linear_transform_loops): Initialize
2928 lambda_obstack only after calling perfect_loop_nest_depth.
2929 Goto free_and_continue instead of just continue for later failures.
2930
8f57ac5a
JJ
2931 PR middle-end/37479
2932 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2933
8586aeeb
JJ
2934 PR libmudflap/36397
2935 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2936
ea8bce02
AS
29372008-09-14 Andreas Schwab <schwab@suse.de>
2938
2939 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2940
6a78eaa3
JH
29412008-09-14 Jan Hubicka <jh@suse.cz>
2942
2943 * invoke.texi (-fconserve-stack): Document.
2944 * opts.c (decode_options): Handle conserve_stack.
2945 * common.opt (fconvserve_stack): New.
2946
138b9ed9
DE
29472008-09-14 David Edelsohn <edelsohn@gnu.org>
2948
2949 * config.host: Add x-aix to host_xmake_file.
2950 * config/rs6000/t-aix52: Do not override LDFLAGS.
2951 * config/rs6000/x-aix: New file.
2952
9215065f
AH
29532008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
2954
2955 PR target/19636
2956 PR target/24894
2957 PR target/31644
2958 PR target/31786
2959 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2960 is not recognized as a valid register usage. Allow REG_X to be used
2961 as a base pointer.
2962 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2963 forces a reload when using a base register.
2964
78a1f201
DS
29652008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
2966
2967 * config/i386/cygming-crtend.c (register_frame_ctor): If
2968 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
2969 directly with atexit.
2970 (deregister_frame_ctor): Rename to ...
2971 (deregister_frame_dtor): Use to call __gcc_deregister_frame
2972 if !DEFAULT_USE_CXA_ATEXIT.
2973
a63f2942
JH
29742008-09-13 Jan Hubicka <jh@suse.cz>
2975
2976 * cgraph.c: Include value-prof.h
2977 * Makefile.in (cgraph.o): Add value-prof.h dependency.
2978
71ba42fa
JH
29792008-09-13 Jan Hubicka <jh@suse.cz>
2980
2981 PR middle-end/32581
2982 * tree-profile.c (add_abnormal_goto_call_edges): New function.
2983 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2984 tree_gen_one_value_profiler, tree_gen_average_profiler,
2985 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
2986
80cab2f0
JH
29872008-09-13 Jan Hubicka <jh@suse.cz>
2988
02bb8bce
UB
2989 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2990 too many bytes on misalligned blocks.
80cab2f0 2991
d1facce0
RW
29922008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2993
2994 * doc/cfg.texi: Fix some typos.
2995 * doc/extend.texi: Likewise.
2996 * doc/install.texi: Likewise.
2997 * doc/invoke.texi: Likewise.
2998 * doc/rtl.texi: Likewise.
2999 * doc/tree-ssa.texi: Likewise.
3000
42ea03fb
RG
30012008-09-13 Richard Guenther <rguenther@suse.de>
3002
3003 PR middle-end/30141
3004 * tree-nested.c (finalize_nesting_tree_1): Generate valid
3005 gimple stores for memory rhs.
3006
9e6a14a4
L
30072008-09-13 H.J. Lu <hongjiu.lu@intel.com>
3008
3009 PR rtl-optimization/37489
3010 * cse.c (fold_rtx): Don't return const_true_rtx for float
3011 compare if FLOAT_STORE_FLAG_VALUE is undefined.
3012
5a6e26b7
JH
30132008-09-13 Jan Hubicka <jh@suse.cz>
3014
3015 PR tree-optimization/37392
3016 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
3017
934cb78a
MJ
30182008-09-13 Martin Jambor <mjambor@suse.cz>
3019 Jan Hubicka <jh@suse.cz>
3020
3021 * cgraph.c (free_edges): New variable.
3022 (NEXT_FREE_EDGE): New macro.
3023 (cgraph_free_edge): New function.
3024 (cgraph_remove_edge): Call cgraph_remove_edge_1.
3025 (cgraph_node_remove_callees): Likewise.
3026 (cgraph_node_remove_callers): Likewise.
3027 (cgraph_create_edge): Reuse edges from the free list. Do not
3028 update uid if doing so.
3029 (cgraph_remove_*_hook): Add free call.
3030
f754734f
RS
30312008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
3032
3033 * ira-color.c (conflict_allocno_vec): Delete.
3034 (update_cost_queue_elem): New structure.
3035 (update_cost_queue): New variable.
3036 (update_cost_queue_tail): Likewise.
3037 (update_cost_queue_elems): Likewise.
3038 (allocno_update_cost_check): Delete.
3039 (initiate_cost_update): Allocate update_cost_queue_elems
3040 instead of allocno_update_cost_check.
3041 (finish_cost_update): Update the free()s accordingly.
3042 (start_update_cost): New function.
3043 (queue_update_cost): Likewise.
3044 (get_next_update_cost): Likewise.
3045 (update_copy_costs_1): Inline into...
3046 (update_copy_costs): ...here. Use a queue instead of recursive calls.
3047 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
3048 once we've established they are equal. Don't allocate update
3049 costs if there is nothing to add to them.
3050 (update_conflict_hard_regno_costs): Remove ALLOCNO and
3051 DIVISOR arguments. Use a queue instead of recursive calls;
3052 process all the allocnos in the initial queue, rather than
3053 a single allocno.
3054 (assign_hard_reg): Use queue_update_cost instead of
3055 conflict_allocno_vec. Queue coalesced allocnos instead
3056 of calling update_conflict_hard_regno_costs for each one.
3057 Just call update_conflict_hard_regno_costs once for the
3058 entire queue.
3059 (ira_color): Remove conflict_allocno_vec handling.
3060
02ae05bd
SP
30612008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3062
3063 PR tree-optimization/37484
3064 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
3065 (save_var_name): Same.
3066 (initialize_cloog_names): Same.
3067 (initialize_cloog_names): Same.
3068
0bfdfbf6
SP
30692008-09-12 Sebastian Pop <sebastian.pop@amd.com>
3070
02bb8bce
UB
3071 * tree-scalar-evolution.c (set_instantiated_value): Set
3072 instantiated_below.
0bfdfbf6 3073
82b33628
VM
30742008-09-12 Vladimir Makarov <vmakarov@redhat.com>
3075
3076 PR rtl-opt/37377
ea8bce02 3077
82b33628
VM
3078 * ira-build.c (common_loop_tree_node_dominator): Remove.
3079 (copy_live_ranges_to_removed_store_destinations): New function.
3080 (regno_top_level_allocno_map): Move to top level from ...
3081 (ira_flattening): ... here. Use
3082 copy_live_ranges_to_removed_store_destinations.
3083
3084 * ira-emit.c (generate_edge_moves): Fix a comment.
ea8bce02 3085
6ff5d1e4
AS
30862008-09-12 Anatoly Sokolov <aesok@post.ru>
3087
3088 PR target/37466
3089 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
3090 scratch register after 'set' pattern.
3091
0a317111
UW
30922008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3093
3094 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
3095 information passed to mark_reg_pointer.
3096 * explow.c (force_reg): Likewise.
3097
59dbe4fe
UW
30982008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3099
3100 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
3101 when building for the celledp architecture.
3102
29442589
RG
31032008-09-12 Richard Guenther <rguenther@suse.de>
3104
3105 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
3106
004a6ce8
EB
31072008-09-12 Eric Botcazou <ebotcazou@adacore.com>
3108
3109 PR rtl-optimization/37424
3110 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
3111 the regnos instead of the addresses.
3112
7ecb6f5b
JJ
31132008-09-11 Janis Johnson <janis187@us.ibm.com>
3114
3115 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
3116
e49a540c
RG
31172008-09-11 Richard Guenther <rguenther@suse.de>
3118
3119 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
3120 entering the weaker equivalence recording.
3121
3122 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
3123
13d7e8af
JL
31242008-09-11 Jeff Law <law@redhat.com>
3125
3126 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
3127 by assign_stack_local on the IRA path for stack slot sharing
3128 as well as the non-IRA path.
3129
4ae8027b
UB
31302008-09-11 Uros Bizjak <ubizjak@gmail.com>
3131
3132 * config/i386/i386.h: Fix whitespace issues.
3133
f8e2a1ed
MJ
31342008-09-11 Martin Jambor <mjambor@suse.cz>
3135
3136 * ipa-prop.h (struct ipa_param_flags): Removed.
3137 (struct ipa_param_descriptor): New structure.
3138 (struct ipa_node_params): ipcp_lattices, param_decls and
3139 param_flags moved to ipa_param_description.
3140 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
3141 descriptors. Renamed all users.
3142 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
3143 changed to access descriptors. Renamed all users.
3144 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
3145 to access descriptors. Renamed all users.
3146 * ipa-cp.c (ipcp_init_cloned_node): Call
3147 ipa_initialize_node_params instead of ipa_count_formal_params and
3148 ipa_create_param_decls_array.
3149 (ipcp_analyze_node): Likewise.
3150 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
3151 descriptors. Renamed all users.
3152 (ipcp_initialize_node_lattices): Remove allocation.
3153 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3154 ipa_initialize_node_params instead of ipa_count_formal_params and
3155 ipa_create_param_decls_array.
3156 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
3157 ipa_populate_param_decls, made static, added parameter info,
3158 renamed mt to node, removed allocation, changed to use
3159 descriptors.
3160 (ipa_count_formal_params): Made static, added parameter info,
3161 renamed mt to node.
3162 (ipa_initialize_node_params): New function.
3163 (ipa_check_stmt_modifications): Changed to use descriptors.
3164 (ipa_detect_param_modifications): Removed allocation, changed to
3165 use descriptors.
3166 (ipa_note_param_call): Changed to use descriptors.
3167 (ipa_analyze_params_uses): Removed allocation.
3168 (ipa_free_node_params_substructures): Changed to use descriptors.
3169 (ipa_edge_duplication_hook): Use the unused attribute.
3170 (ipa_node_duplication_hook): Use the unused attribute, changed to
3171 use descriptors, changed to duplicate descriptors.
3172
3173 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3174 changed all callers. Call ipa_propagate_indirect_call_infos if doing
3175 indirect inlining. Made static.
4ae8027b 3176 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
f8e2a1ed
MJ
3177 functions called only once.
3178 (cgraph_decide_recursive_inlining): Don't call
3179 ipa_propagate_indirect_call_infos, pass new_edges to
3180 cgraph_mark_inline_edge instead.
3181 (cgraph_decide_inlining_of_small_functions): Don't call
3182 ipa_propagate_indirect_call_infos, pass new_edges to
3183 cgraph_mark_inline_edge instead.
3184 (cgraph_decide_inlining): Don't call
3185 ipa_propagate_indirect_call_infos.
3186 * ipa-prop.c: Check that vectors are allocated.
3187
3188 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
3189 iff a new cgraph edges have been created.
3190 (cgraph_decide_inlining): New variable redo_always_inline.
3191 Flattening and always_inlining loop until callgraph stabilizes.
3192 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
3193 true iff new cgraph edges have been created.
3194 (propagate_info_to_inlined_callees): Likewise.
3195 (ipa_propagate_indirect_call_infos): Likewise.
3196
420da8ca
RG
31972008-09-11 Richard Guenther <rguenther@suse.de>
3198
3199 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
3200 (set_prologue_iterations): Likewise.
3201 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3202 Likewise.
3203 (vect_update_init_of_dr): Likewise.
3204 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
3205 type verification.
3206 * fold-const.c (fold_unary): Do not generate calculations
3207 in sub-types.
3208
30821654
PB
32092008-09-11 Paolo Bonzini <bonzini@gnu.org>
3210
3211 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
3212 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
3213 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
3214
02bb8bce
UB
3215 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
3216 a bool.
30821654
PB
3217 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
3218 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
3219 before finalizing the changes.
3220 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
3221 for BIT_IOR_EXPR.
3222 (simplify_truth_ops_using_ranges): New.
3223 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
3224 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
3225 whether a simplification was made.
3226 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
3227 use a switch statement and also call simplify_truth_ops_using_ranges.
3228
cf975747
JH
32292008-09-11 Jan Hubicka <jh@suse.cz>
3230
3231 * ggc-common.c (loc_array): Make static.
3232 * dce.c (rest_of_handle_ud_dce): Free worklist.
3233
936fc9ba
JH
32342008-09-11 Jan Hubicka <jh@suse.cz>
3235
3236 * cgraph.c (cgraph_release_function_body): Plug memory leak on
02bb8bce
UB
3237 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
3238 function so we are sure we do not dangle it forever.
936fc9ba
JH
3239 * function.c (outer_function_chain, find_function_data): Remove.
3240 (function_context_stack): New.
3241 (push_function_context, pop_function_context): Update.
3242 * function.h (struct function): Remove pointer outer.
3243 (outer_function_chain, find_function_data): Remove.
3244 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
3245
b1d0a338
JH
32462008-09-11 Jan Hubicka <jh@suse.cz>
3247
3248 PR middle-end/37448
3249 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
3250
9e504cda
JH
32512008-09-11 Jan Hubicka <jh@suse.cz>
3252
3253 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
3254
a97a7ae9
JH
32552008-09-11 Jan Hubicka <jh@suse.cz>
3256
3257 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
3258 (free_var_map_entry): New function.
3259 (redirect_edge_var_map_destroy): Use it.
3260
4a283090
JH
32612008-09-11 Jan Hubicka <jh@suse.cz>
3262
3263 PR middle-end/37448
3264 * tree-inline.c (add_lexical_block): Replace with ...
3265 (prepend_lexical_block): ... prepend at begginig.
3266 (remap_blocks): Use it and reverse later.
3267 (expand_call_inline): Use prepend_lexical_block.
3268
a856e96f
JH
32692008-09-11 Jan Hubicka <jh@suse.cz>
3270
3271 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
3272
825b2fe7
JH
32732008-09-11 Jan Hubicka <jh@suse.cz>
3274
3275 * function.c (free_after_compilation): Call insn_locators_free.
3276 * cfglayout.c (insn_locators_free): New function.
3277 * rtl.h (insn_locators_free): Declare.
3278
11e0edad
JH
32792008-09-11 Jan Hubicka <jh@suse.cz>
3280
4ae8027b
UB
3281 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
3282 vector pointer.
11e0edad
JH
3283 (cond_move_process_if_block): Update call.
3284
d3492572
JH
32852008-09-11 Jan Hubicka <jh@suse.cz>
3286
3287 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
3288 * vec.c: Include hashtab.h
3289 (vec_descriptor, ptr_hash_entry): New structures.
3290 (vec_desc_hash, vec_ptr_map): New static variables.
3291 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
3292 register_overhead, free_overhead, vec_heap_free): New functions.
3293 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
3294 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
02bb8bce
UB
3295 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
3296 New functions.
d3492572 3297
3c9dbe18
IR
32982008-09-11 Ira Rosen <irar@il.ibm.com>
3299
3300 PR tree-optimization/37474
3301 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
3302 length of load permutation.
3303
5e9bd142
AS
33042008-09-11 Andreas Schwab <schwab@suse.de>
3305
3306 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
3307
d898d29b
JJ
33082008-09-11 Jakub Jelinek <jakub@redhat.com>
3309
3310 PR target/37382
3311 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
3312 * dse.c (find_shift_sequence): Use extract_low_bits instead of
3313 simplify_gen_subreg.
3314
5993860d
IR
33152008-09-11 Ira Rosen <irar@il.ibm.com>
3316
3317 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
3318 for alias check.
3319
a76ddc7b
JJ
33202008-09-10 Jakub Jelinek <jakub@redhat.com>
3321
0b056e4e
JJ
3322 PR middle-end/37338
3323 * gimplify.c (gimplify_body): Call default_rtl_profile.
3324
a76ddc7b
JJ
3325 PR target/36904
3326 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
3327 instead of tok->val.node if not expanding to something else. Handle
3328 intervening CPP_PADDING tokens.
3329 (altivec_categorize_keyword): Remove unneeded comparisons.
3330
b5d76df4
RG
33312008-09-10 Richard Guenther <rguenther@suse.de>
3332
3333 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
3334
bfb0b886
RG
33352008-09-10 Richard Guenther <rguenther@suse.de>
3336
3337 PR middle-end/37432
3338 * tree-inline.c (insert_init_stmt): Make sure to not
3339 insert invalid gimple stores.
3340
b70e9775
SP
33412008-09-10 Sebastian Pop <sebastian.pop@amd.com>
3342
3343 PR tree-optimization/37388
3344 * toplev.c (process_options): Fail and warn when graphite
3345 flags are used, but the compiler has not been configured
3346 with graphite libraries.
3347 * graphite.c (graphite_transform_loops): Remove printfs
3348 to dump_file for the case when graphite is not available.
3349
8199c8a8
L
33502008-09-10 H.J. Lu <hongjiu.lu@intel.com>
3351
3352 PR target/37434:
3353 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3354 the even element into register.
3355 (ix86_expand_vector_init_general): Don't use
3356 ix86_expand_vector_init_interleave on V16QImode and V8HImode
3357 if we can't move from GPR to SSE register directly.
3358
90cbba02
BS
33592008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
3360
3361 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3362 not lose track of the number of NOPs needed. Number of NOPs needed
3363 for sync vs. loads workaround was switched; corrected. Run second
3364 pass for all workarounds. No NOPs needed after call insns. Change
3365 second pass to use find_next_insn_start and find_load helpers in order
3366 to properly detect parallel insns.
3367 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3368
99e395c7
JH
33692008-09-10 Jan Hubicka <jh@suse.cz>
3370
3371 * value-prof.c (gimple_ic): Fix tuplification bug.
4ae8027b
UB
3372 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3373 var warning.
99e395c7 3374
6b672a29
JJ
33752008-09-10 Jakub Jelinek <jakub@redhat.com>
3376
3377 PR tree-optimization/37353
3378 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3379 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3380 calls instead of cond_dead_built_in_calls.
3381 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3382 initalize the vector only before adding first entry. Use VEC_safe_push
3383 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
3384 shrink_wrap_conditional_dead_built_in_calls call.
3385
5392e447
IR
33862008-09-10 Ira Rosen <irar@il.ibm.com>
3387
3388 PR tree-optimization/37385
4e5821d3
UB
3389 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3390 argument, and use it as a vector type if not NULL.
ea8bce02 3391 (vectorizable_store): Call vect_create_data_ref_ptr with the type of
5392e447 3392 vectorized rhs.
4e5821d3
UB
3393 (vect_setup_realignment): Call vect_create_data_ref_ptr with
3394 additional argument.
5392e447
IR
3395 (vectorizable_load): Likewise.
3396
4e7f50e5
JJ
33972008-09-10 Jakub Jelinek <jakub@redhat.com>
3398
3399 * config/i386/i386.md (SWI32): New mode iterator.
3400 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
3401 of SWI.
3402
c3c96e68
L
34032008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3404
3405 PR rtl-optimization/37435
3406 * caller-save.c (insert_restore, insert_save): Check the mode by
3407 reg_save_code.
3408
a2649528
JDA
34092008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3410
3411 PR other/37265
3412 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3413 splay tree lookup.
3414 (dw2_output_indirect_constant_1): Use unstripped name in symbol
3415 reference.
3416
26cd0fcc
SL
34172008-09-09 Sandra Loosemore <sandra@codesourcery.com>
3418
ea8bce02 3419 * doc/invoke.texi (ARM Options): Correct errors in discussion
26cd0fcc
SL
3420 of -mfloat-abi, -mhard-float, and -msoft-float.
3421
c2a4718a
JJ
34222008-09-09 Jakub Jelinek <jakub@redhat.com>
3423 Jan Hubicka <jh@suse.cz>
3424
3425 PR middle-end/37356
3426 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3427 calling gimple_regimplify_operands on it. Iterate over all newly
3428 added statements, not just the last one.
3429 (insert_init_stmt): Insert stmt into seq first, then call
3430 gimple_regimplify_operands on it. Don't create new gimplification
3431 context, nor find referenced vars.
3432
fd0a8853
JJ
34332008-09-09 Jakub Jelinek <jakub@redhat.com>
3434
e56f5f3e
JJ
3435 PR other/37419
3436 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3437 to pointer to vector pointer.
3438 * ipa-prop.c (ipa_propagate_indirect_call_infos,
3439 propagate_info_to_inlined_callees): Likewise.
3440 (update_call_notes_after_inlining): Likewise. Push new indirect edge
3441 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
3442 ipa_check_create_edge_args.
4e5821d3
UB
3443 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3444 argument to pointer to vector pointer.
e56f5f3e
JJ
3445 (cgraph_decide_inlining_of_small_function): Adjust
3446 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3447 calls.
3448
71aaa2ff 3449 PR target/37438
02bb8bce
UB
3450 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3451 optimizing for size, not speed.
71aaa2ff 3452
fd0a8853
JJ
3453 PR rtl-optimization/37408
3454 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3455 if parm is promoted.
3456
a213b219
SP
34572008-09-09 Sebastian Pop <sebastian.pop@amd.com>
3458
3459 PR tree-optimization/37375
02bb8bce
UB
3460 * tree-scalar-evolution.c (scev_info_str): Add field
3461 instantiated_below.
a213b219
SP
3462 (new_scev_info_str, eq_scev_info, find_var_scev_info,
3463 set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3464 set_instantiated_value): Pass instantiated_below.
02bb8bce
UB
3465 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3466 to above functions.
4ae8027b
UB
3467 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3468 the definitions are not instantiated.
a213b219
SP
3469
3470 * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3471 (block_before_loop): New.
02bb8bce
UB
3472 * tree-data-ref.c (dr_analyze_indices): Update uses of
3473 instantiate_scev.
a213b219 3474 * graphite.c (block_before_scop): New.
ea8bce02 3475 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
a213b219
SP
3476 basic block, not a loop for determining the parameters.
3477 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3478 scop.
3479 (idx_record_params, find_params_in_bb, find_scop_parameters,
ea8bce02 3480 build_loop_iteration_domains, add_conditions_to_domain): Update calls
a213b219
SP
3481 to instantiate_scev.
3482
3483 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3484
854bd721
VM
34852008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3486
3487 PR rtl-opt/37333
ea8bce02 3488
854bd721
VM
3489 * ira-build.c (ira_create_allocno): Setup frequency to 0.
3490
3491 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3492 Check zero freq and increase if necessary.
3493
496071ca
VM
34942008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3495
3496 * ira-conflicts.c (process_regs_for_copy): Check that the hard
3497 regno is in the right range. Add comments.
3498
1f57487c
RO
34992008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3500
3501 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3502 warnings.
3503 * mips-tfile.c (copy_object): Cast alloca result to int *.
3504 * mips-tdump.c (print_symbol): Cast xmalloc return values to
3505 proper types.
3506 Rename class to sclass.
3507 (read_tfile): Cast read_seek return values to proper types.
3508 Cast xcalloc return value to proper type.
3509
00efcc2b
RO
35102008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3511
3512 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3513 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3514 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3515
0b576703
JH
35162008-09-09 Jan Hubicka <jh@suse.cz>
3517
4ae8027b
UB
3518 * profile.c (is_edge_inconsistent): Add debug output; ignore
3519 negative count on fake edges.
0b576703
JH
3520 (is_inconsistent): Add debug output.
3521
9c575182
AB
35222008-09-09 Andrey Belevantsev <abel@ispras.ru>
3523
3524 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3525 dump message.
3526 (choose_ready): When first insn is chosen from the ready list, also
3527 dump it.
3528
bff5a22d
AB
35292008-09-09 Andrey Belevantsev <abel@ispras.ru>
3530
8199c8a8 3531 PR rtl-optimization/37360
bff5a22d
AB
3532 * haifa-sched.c (max_issue): Do not assert that we never issue more
3533 insns than issue_rate. Add comment.
ea8bce02 3534
b59d3976
RG
35352008-09-09 Richard Guenther <rguenther@suse.de>
3536
3537 * tree-cfg.c (verify_types_in_gimple_op): Remove.
3538 (verify_types_in_gimple_call): Rename to ...
3539 (verify_gimple_call): ... this. Enhance.
3540 (verify_types_in_gimple_cond): Remove.
3541 (verify_gimple_comparison): New function ...
3542 (verify_types_in_gimple_assign): ... split out from here.
3543 (verify_types_in_gimple_return): Rename to ...
3544 (verify_gimple_return): ... this. Enhance.
3545 (verify_types_in_gimple_switch): Rename to ...
3546 (verify_gimple_switch): ... this. Enhance.
3547 (verify_gimple_goto): New function.
3548 (verify_types_in_gimple_phi): Rename to ...
3549 (verify_gimple_phi): ... this. Enhance.
3550 (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3551 Fold in single-statement cases from verify_types_in_gimple_seq_2.
3552 (verify_types_in_gimple_seq_2): Remove cases handled in
3553 verify_types_in_gimple_stmt.
3554
22fb24d5
BS
35552008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
3556
3557 * config/bfin/bfin.c (n_regs_to_save): New static variable.
3558 (push_multiple_operation, pop_multiple_operation): Set it.
3559 (workaround_rts_anomaly): New function.
3560 (workaround_speculation): New function, broken out of bfin_reorg.
3561 (bfin_reorg): Call the new functions.
3562
8b17cc05
RG
35632008-09-09 Richard Guenther <rguenther@suse.de>
3564
3565 PR middle-end/37354
3566 PR middle-end/30165
3567 * gimplify.c (gimplify_conversion): Change conversions of
3568 non-register type to VIEW_CONVERT_EXPRs.
3569 (gimplify_addr_expr): If we need to make the operand
3570 addressable make sure to use a properly initialized
3571 temporary for that so it gets a valid gimple store.
3572
1751ecd6
AH
35732008-09-09 Aldy Hernandez <aldyh@redhat.com>
3574
3575 * function.h (struct function): Add function_start_locus.
3576 * cfgexpand.c (gimple_expand_cfg): Use it.
3577 * c-parser.c (c_parser_declaration_or_fndef): Set it.
3578
a135b1c4
RG
35792008-09-09 Richard Guenther <rguenther@suse.de>
3580
3581 PR tree-optimization/37433
3582 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3583 function calls.
3584
6e548df5
RG
35852008-09-09 Richard Guenther <rguenther@suse.de>
3586
3587 PR tree-optimization/37387
3588 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3589 and bits to a common type.
3590
108faf87
NC
35912008-09-09 Nick Clifton <nickc@redhat.com>
3592
3593 * config/v850/v850.md (return): Restore frame size restriction.
3594
0c03f46f
PB
35952008-09-09 Paolo Bonzini <bonzini@gnu.org>
3596
3597 * c-common.c (c_expand_decl): Remove.
3598 * c-common.h (anon_aggr_type_p): Remove prototype.
3599 (DECL_ANON_UNION_ELEMS): Remove.
3600 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3601 * c-decl.c (anon_aggr_type_p): Remove.
3602 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3603 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3604 * langhooks.h (struct lang_hooks): Remove expand_decl.
3605 * langhooks.c (lhd_expand_decl): Remove.
3606 * stmt.c (expand_anon_union_decl): Remove.
3607 * tree.h (expand_anon_union_decl): Remove prototype.
3608
3d709466
AH
36092008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
3610
3611 PR target/36609
3612 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3613 zero.
3614 * config/avr/avr.md (QISI) : Define mode iterator.
3615 (negated_tst<mode>) : Redefine as split using mode macro.
3616 (reversed_tstqi): Define insn as reversed compare with zero.
3617 (reversed_tsthi): Ditto.
3618 (reversed_tstsi): Ditto.
3619
7f4b6d20
JJ
36202008-09-08 Jakub Jelinek <jakub@redhat.com>
3621
9cfa22be
JJ
3622 PR middle-end/37393
3623 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3624 call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3625
7f4b6d20
JJ
3626 PR middle-end/37414
3627 * predict.c (optimize_function_for_size_p): Don't segfault if
3628 FUN is NULL.
3629 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3630 tree_swap_operands_p): Don't test cfun != NULL before calling
3631 optimize_function_for_s*_p.
3632
99b96649
EB
36332008-09-08 Eric Botcazou <ebotcazou@adacore.com>
3634
3635 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3636 end of the search.
3637
37022b7c
SR
36382008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3639
3640 * crx/crx.h (IRA_COVER_CLASSES): Define.
3641
c5cac099
JJ
36422008-09-08 Jakub Jelinek <jakub@redhat.com>
3643
3644 PR middle-end/37337
3645 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3646 even when a stmt has been gimple_modified_p, but after fold_stmt is
3647 not any longer. Remove unneeded may_have_exposed_new_symbols
3648 initializations.
3649
7220ca2b
RG
36502008-09-08 Richard Guenther <rguenther@suse.de>
3651
3652 PR tree-optimization/37421
3653 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3654 valueize the RHS.
3655
37aaba15
JJ
36562008-09-08 Jakub Jelinek <jakub@redhat.com>
3657
3658 PR middle-end/37415
3659 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3660
d9de9cad
JDA
36612008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3662
3663 PR driver/37409
3664 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3665 * pa-hpux10.h (LINK_SPEC): Likewise.
3666 * pa-hpux11.h (LINK_SPEC): Likewise.
bcb455ba 3667
be2f06ed
JDA
36682008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3669
3670 * pa32-regs.h (IRA_COVER_CLASSES): Define.
3671 * pa64-regs.h (IRA_COVER_CLASSES): Define.
3672
d6ab7b03
HD
36732008-09-07 Helge Deller <deller@gmx.de>
3674
8199c8a8 3675 * pa/linux-atomic.c: New file.
d6ab7b03
HD
3676 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3677 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3678
73356a7d 36792008-09-07 Richard Guenther <rguenther@suse.de>
8199c8a8 3680 Ira Rosen <irar@il.ibm.com>
73356a7d
RG
3681
3682 PR tree-optimization/36630
3683 * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3684 Call STRIP_NOPS before calling evolution_part_in_loop_num.
3685
cc54af20 36862008-09-07 Dorit Nuzman <dorit@il.ibm.com>
8199c8a8 3687 Ira Rosen <irar@il.ibm.com>
cc54af20
DN
3688
3689 PR tree-optimization/35642
3690 * config/rs6000/altivec.md (mulv8hi3): Implement.
3691
f8505a36
JL
36922008-09-06 Jeff Law <law@redhat.com>
3693
37022b7c 3694 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
f8505a36 3695
b91bc349
JH
36962008-09-06 Jan Hubicka <jh@suse.cz>
3697
3698 PR tree-optimization/14703
4ae8027b
UB
3699 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3700 declarations.
b91bc349
JH
3701 * passes.c (init_optimization_passes): Recompute inline parameters.
3702
cf900097
RS
37032008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3704
3705 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3706 DECL being null.
3707
4d210b07
RS
37082008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
3709 Peter Fuerst <post@pfrst.de>
3710
3711 * doc/invoke.texi: Document -mr10k-cache-barrier=.
3712 * doc/extend.texi: Document __builtin_mips_cache.
3713 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3714 * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3715 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3716 __GCC_HAVE_BUILTIN_MIPS_CACHE.
3717 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3718 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3719 (set_push_mips_isas): New variable.
3720 (mips_r10k_cache_barrier): New variable.
3721 (cache): New availability predicate.
3722 (mips_builtins): Add an entry for __builtin_mips_cache.
3723 (mips_build_cvpointer_type): New function.
3724 (MIPS_ATYPE_CVPOINTER): New macro.
3725 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3726 mode is VOIDmode.
3727 (r10k_simplified_address_p, r10k_simplify_address)
3728 (r10k_uncached_address_p, r10k_safe_address_p)
3729 (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3730 (r10k_needs_protection_p_call, r10k_needs_protection_p)
3731 (r10k_insert_cache_barriers): New functions.
3732 (mips_reorg_process_insns): Delete cache barriers after a
3733 branch-likely instruction.
3734 (mips_reorg): Call r10k_insert_cache_barriers.
3735 (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3736 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3737 (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3738 (mips_cache, r10k_cache_barrier): New define_insns.
3739
4f341ea0
RS
37402008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3741
3742 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3743 * ira-color.c (setup_allocno_left_conflicts_num): Use
3744 hard_reg_set_equal_p instead of a comparison with
3745 ira_zero_hard_reg_set.
3746 * ira.c (setup_reg_subclasses): Likewise.
3747 (setup_cover_and_important_classes): Likewise.
3748 (setup_class_translate): Likewise.
3749 (setup_reg_class_intersect_union): Likewise.
3750 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3751 (ira_init_once): Don't initialize them.
3752
af9253a1
VM
37532008-09-05 Vladimir Makarov <vmakarov@redhat.com>
3754
3755 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3756
37572008-09-05 Vladimir Makarov <vmakarov@redhat.com>
6b8d9676 3758
4ae8027b
UB
3759 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3760
9dcc2e87
TS
37612008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3762
3763 Improved branch hints, safe hints, and scheduling.
3764
3765 * haifa-sched.c (sched_emit_insn) : Define.
3766 * sched-int.h (sched_emit_insn) : Add prototype.
3767 * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3768 -mhint-max-distance -msafe-hints) : Document.
3769 * config/spu/spu.c (spu_flag_var_tracking): New.
3770 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
3771 TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
3772 TARGET_ASM_FILE_START): Define.
3773 (TARGET_SCHED_ADJUST_PRIORITY): Remove.
3774 (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
3775 (spu_emit_branch_hint): Add blocks argument.
3776 (insert_branch_hints, insert_nops): Remove.
3777 (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
3778 uses_ls_unit, spu_sched_init_global, spu_sched_init,
3779 spu_sched_reorder, asm_file_start): New functions.
3780 (clock_var, spu_sched_length, pipe0_clock,
3781 pipe1_clock, prev_clock_var, prev_priority,
3782 spu_ls_first, prev_ls_clock): New static variables.
3783 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
3784 * config/spu.md (iprefetch): Add operand, make it clobber MEM.
3785 (nopn_nv): Add a non-volatile version of nop.
3786 * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
3787 -mhint-max-distance, -msafe-hints): New options.
3788
93a4f5e0
JJ
37892008-09-05 Janis Johnson <janis187@us.ibm.com>
3790 Samuel Tardieu <sam@rfc1149.net>
3791
5ffebee7
JJ
3792 * opts.c (decode_options): Combine nested if statements.
3793
93a4f5e0
JJ
3794 PR target/37283
3795 * opts.c (decode_options): Handle more relationships among
3796 unit-at-a-time, toplevel-reorder, and section-anchors.
3797
c07cd2c7
DD
37982008-09-05 David Daney <ddaney@avtrex.com>
3799
3800 * doc/install.texi (--enable-reduced-reflection): Document new option.
3801
37fbe8a3
BW
38022008-09-05 Bob Wilson <bob.wilson@acm.org>
3803
3804 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
3805 constantpool_mem_p.
3806 (constantpool_operand): New.
3807 (move_operand): Disallow sub-word modes for the constant pool.
3808 * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
3809 (xtensa_secondary_reload_class): Replace with....
ea8bce02 3810 (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
37fbe8a3
BW
3811 Set icode for sub-word reloads from the constant pool.
3812 * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
3813 (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3814 * config/xtensa/xtensa.md (reload<mode>_literal): New.
3815 * config/xtensa/xtensa-protos.h: Update prototypes.
ea8bce02 3816
7314c7dd
JM
38172008-09-05 Joseph Myers <joseph@codesourcery.com>
3818
3819 * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
3820 (REG_CLASS_NAMES): Update.
3821 (REG_CLASS_CONTENTS): Update.
3822 * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
3823 of ALL_REGS for regs 77 and 78.
3824 * function.c (instantiate_virtual_regs_in_insn): Assert that
3825 return value of simplify_gen_subreg is not NULL.
3826
80379f51
PB
38272008-09-05 Paolo Bonzini <bonzini@gnu.org>
3828
3829 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
3830 (gen_rtvec_v): Fix coding standards.
3831
0cf9dcf8
JH
38322008-09-04 Jan Hubicka <jh@suse.cz>
3833
3834 * i386.c (decide_alg): Be more conservative about optimizing for size.
3835
84320b0b
ILT
38362008-09-04 Ian Lance Taylor <iant@google.com>
3837
3838 * varasm.c (narrowing_initializer_constant_valid_p): New
3839 static function.
3840 (initializer_constant_valid_p): Call it.
3841
54193313
JL
38422008-09-04 Jeff Law <law@redhat.com>
3843
3844 * fold-const.c (native_encode_real): Fix computation of WORDS.
3845 (native_interpret_real): Likewise.
3846
7fab7e16
JJ
38472008-09-04 Janis Johnson <janis187@us.ibm.com>
3848
3849 * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
3850
4cda38d5
VM
38512008-09-04 Vladimir Makarov <vmakarov@redhat.com>
3852
3853 * ira-conflicts.c (process_regs_for_copy): Check insn to check
3854 that the cost is already taken into account in ira-costs.c
3855
3856 * ira-int.h (ira_debug_copy, ira_debug_copies): New.
3857
3858 * ira-build.c (print_copy, print_copies, ira_debug_copy,
3859 ira_debug_copies): New.
3860 (ira_bulid): Call print_copies.
ea8bce02 3861
4cda38d5 3862 * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
ea8bce02 3863
2f3b0d4a
ST
38642008-09-04 Samuel Tardieu <sam@rfc1149.net>
3865
3866 PR target/32783
3867 * config/rs6000/rs6000.c (optimization_options): Remove check of
3868 flag_toplevel_order.
3869
5299815b
AN
38702008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3871
3872 * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
3873 * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
3874 second operand is a reg_imm10_operand.
3875 * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
3876 *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
3877 (*seq_<GPR:mode><GPR2:mode>): Rename to
3878 *seq_zero_<GPR:mode><GPR2:mode>. Don't match if
3879 ISA_HAS_SEQ_SNE.
3880 (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
3881 *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
3882 ISA_HAS_SEQ_SNE.
3883 (*sne_<GPR:mode><GPR2:mode>): Rename to
3884 *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
3885 ISA_HAS_SEQ_SNE.
3886
c8424132
AN
38872008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3888
3889 * config/mips/mips.h (ISA_HAS_EXTS): New macro.
3890 * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
3891 combining an arithmetic right shift by more than 31 and a
3892 trunction. Don't match for out-of-range shift amounts. Set
3893 attribute mode to <MODE>.
3894 (*lshr32_trunc<mode>): Name the pattern combining a logical right
3895 shift by 32 and and a truncation. Set attribute mode to <MODE>.
3896 (*<optab>_trunc<mode>_exts): New pattern for truncated right
3897 shifts by less than 32.
3898 (extv): Change predicate on first operand to accept registers.
3899 Change predicate of the other operands from immediate_operand to
3900 const_int_operand. Expand exts when source is a register.
3901 (extzv): Change predicate of the constant operands from
3902 immediate_operand to const_int_operand.
3903 (extzv<mode>): Change predicate of the constant operands from
3904 immediate_operand to const_int_operand and no constraint. Also
3905 remove mode.
3906 (*extzv_trunc<mode>_exts): New pattern.
3907
49912bcd
AN
39082008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3909
3910 * config/mips/mips.h (ISA_HAS_CINS): New macro.
3911 * config/mips/mips-protos.h (mask_low_and_shift_p,
3912 mask_low_and_shift_len): Declare.
3913 * config/mips/mips.c (mask_low_and_shift_p,
3914 mask_low_and_shift_len): New functions.
3915 (mips_print_operand): Handle new operand prefix "m".
3916 * config/mips/mips.md (*cins<mode>): New pattern.
3917
a524985e
BS
39182008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
3919
3920 * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
3921 optimizing for size.
3922
1d489435
RS
39232008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
3924
3925 * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
3926 regardless of epilogue_completed.
3927
5feec5c1
VM
39282008-09-04 Vladimir Makarov <vmakarov@redhat.com>
3929
3930 PR middle-end/37359
3931 * ira-lives.c (process_bb_node_lives): Check setjmp.
3932
acb37d29
RS
39332008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
3934
3935 PR middle-end/37243
3936 * ira-build.c (form_loop_tree): Reverse BB walk.
3937 (create_bb_allocnos): Likewise.
3938 * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
3939 (mark_reg_store): Rename to...
3940 (mark_ref_live): ...this and take a df_ref argument instead of
3941 note_stores arguments. Assert that we have a register.
3942 (mark_reg_clobber): Delete.
3943 (def_conflicts_with_inputs_p): New function.
3944 (mark_reg_conflicts): Delete.
3945 (mark_reg_death): Rename to...
3946 (mark_ref_dead): ...this and take a df_ref argument instead of
3947 a register. Assert that we have a register.
3948 (process_bb_node_lives): Hoist frequency calculation out of
3949 instruction walk. Convert from a forwards scan to a backwards scan.
3950 Use DF_REF_USES and DF_REF_DEFS instead of register notes and
3951 note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling.
3952 (create_allocno_live_ranges): Don't create regs_set.
3953
e0c68ce9
ILT
39542008-09-04 Ian Lance Taylor <iant@google.com>
3955
3956 * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
3957 or REG_LABEL_TARGET.
3958 * calls.c (emit_library_call_value_1): Use MEM_P rather than
3959 comparing MODE with MEM.
3960 * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
3961 comparing with GF_PREDICT_TAKEN.
3962 (gimple_get_lhs): Change code to enum gimple_code.
3963 (gimple_set_lhs): Likewise.
3964 * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
3965 * omp-low.c (find_omp_clause): Change kind parameter to enum
3966 omp_clause_code.
3967 * tree-flow.h (find_omp_clause): Update declaration.
3968 * regrename.c (clear_dead_regs): Change kind parameter to enum
3969 reg_note.
3970 * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
3971 GET_MODE.
3972 * see.c (see_get_extension_data): Change return type to enum
3973 entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
3974 SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
3975 (see_gen_normalized_extension): Change extension_code parameter to
3976 enum entry_type.
3977 (see_seek_pre_extension_expr): Change extension_code to enum
3978 entry_type.
3979 (see_merge_one_def_extension): Likewise.
3980 (see_handle_relevant_defs): Likewise.
3981 (see_handle_relevant_uses): Likewise.
3982 (see_analyze_one_def): Likewise.
3983 * tree-cfg.c (need_fake_edge_p): Compare gimple code with
3984 GIMPLE_ASM rather than ASM_EXPR.
3985 * tree-ssa-alias.c (is_escape_site): Compare gimple code with
3986 GIMPLE_RETURN rather than RETURN_EXPR.
3987 * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
3988 (evaluate_stmt): Likewise.
3989 * tree-vect-analyze.c (vect_analyze_operations): Change relevance
3990 to enum vect_relevant.
3991 (vect_mark_stmts_to_be_vectorized): Change assertion to not
3992 compare gimple codes with tree codes.
3993
71062f1e
PB
39942008-09-04 Paul Brook <paul@codesourcery.com>
3995
3996 * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
3997
d8612738
BS
39982008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
3999
4000 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
4001 pointer check lost in the recent no-unit-at-a-time patch.
ea8bce02 4002
d7f2fbf6
JH
40032008-09-04 Jan Hubicka <jh@suse.cz>
4004
4005 PR middle-end/37343
4006 * tree-switch-conversion.c (check_final_bb): Accept only IP
4007 invariants.
4008
6b99f156
JH
40092008-09-04 Jan Hubicka <jh@suse.cz>
4010
4011 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
4012 Break out from ...
4013 (vrp_evaluate_conditional_warnv_with_ops): ... this one. Add
4014 using_ranges argument.
4015 (vrp_evaluate_conditional): Avoid bogus warning for type range.
4016 (vrp_visit_cond_stmt): Update call of
4017 vrp_evaluate_conditional_warnv_with_ops
4018
4db15d75
JH
40192008-09-04 Jan Hubicka <jh@suse.cz>
4020
4021 PR tree-optimization/37345
4022 PR tree-optimization/37358
4023 PR tree-optimization/37357
4024 * tree.c (build_function_type_skip_args): Build distinct type copy;
4025 set TYPE_CONTEXT.
4026 (build_function_decl_skip_args): Set type of new decl not orig decl;
4027 clear DECL_VINDEX for methods turned into functions.
4028
28e6bb13
NC
40292008-09-04 Nick Clifton <nickc@redhat.com>
4030
4ae8027b 4031 * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
28e6bb13
NC
4032 * configure: Regenerate.
4033 * config.in: Regenerate.
4034 * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
4035 alignment field, if it is supported.
4036
48253184
KT
40372008-09-04 Kai Tietz <kai.tietz@onevision.com>
4038
4039 * config/i386/t-mingw32 (SHLIB_LC): Change order of import
4040 libraries.
4041
0783d48d
DE
40422008-09-03 David Edelsohn <edelsohn@gnu.org>
4043
4044 * config/rs6000/rs6000.c (processor_target_table): Do not
4045 enable VMX for POWER6.
4046
40472008-09-03 Anton Blanchard <anton@samba.org>
4048
4049 * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
4050 emit memory barrier before operation.
4051
d1fe519c
JDA
40522008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca>
4053
4054 PR testsuite/37325
4055 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
4056 default_elf_asm_output_external.
4057
bc9b880c
JL
40582008-09-03 Jeff Law <law@redhat.com>
4059
4060 * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
4061
27738602
RH
40622008-09-03 Richard Henderson <rth@redhat.com>
4063
4064 * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
4065 memory barrier to below the test-and-set.
4066 (alpha_split_lock_test_and_set_12): Likewise.
4067
49d988e7
VM
40682008-09-03 Vladimir Makarov <vmakarov@redhat.com>
4069
4070 PR rtl-opt/37243
4071
4072 * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
4073 all_allocnos.
4074
4075 * ira-color.c (print_loop_title): Use all_allocnos.
4076 (color_pass): Ditto. Don't add border_allocnos. Check that
4077 subloop allocno in the correspdoning bitmap all_allocnos.
4078
4079 * ira-emit.c (change_loop): Use all_allocnos.
4080
b7f58d5d
UB
4081 * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
4082 (ira_create_allocno): Set up all_allocnos bit for the created allocno.
49d988e7
VM
4083 (create_cap_allocno): Remove setting mentioned_allocnos.
4084 (create_insn_allocnos): Ditto.
4085 (remove_unnecessary_allocnos): Use all_allocnos.
4086 (check_allocno_creation): Check that allocnos are in the
4087 corresponding bitmap all_allocnos.
ea8bce02 4088
a7f32992
VM
40892008-09-03 Vladimir Makarov <vmakarov@redhat.com>
4090
4091 PR rtl-opt/37243
ea8bce02 4092
a7f32992
VM
4093 * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
4094 (process_regs_for_copy): Process subregs. Refine check when cost
4095 is taken into account in ira-costs.c.
4096 (process_reg_shuffles): Use REG_SUBREG_P.
4097 (add_insn_allocno_copies): Ditto. Ignore modes.
4098
4099 * ira-color.c (conflict_allocno_vec): New.
4100 (COST_HOP_DIVISOR): New macro.
4101 (update_copy_costs_1): Use it.
4102 (update_conflict_hard_regno_costs): New function.
4103 (assign_hard_reg): Use it.
4104 (ira_color): Allocate and free conflict_allocno_vec.
ea8bce02 4105
204853a7
VM
41062008-09-03 Vladimir Makarov <vmakarov@redhat.com>
4107
4108 PR rtl-opt/37296
4109
4110 * ira-int.h (ira_sort_insn_chain): Remove.
4111
4112 * ira.c (basic_block_order_nums, chain_insn_order,
4113 chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
4114 (ira): Don't call ira_sort_insn_chain.
4115
4116 * reload1.c (reload): Don't call ira_sort_insn_chain.
4117
c0ab1df3
AP
41182008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
4119
4120 PR middle-end/37293
4121 * cgraphunit.c (update_call_expr): Remove eh regions from statements
4122 which become non throw.
4123 (cgraph_function_versioning): Also clear DECL_WEAK. Call
4124 update_call_expr after updating the flags on the decl.
4125
39ecc018
JH
41262008-09-03 Jan Hubicka <jh@suse.cz>
4127
4128 PR tree-optimization/37315
4129 * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
4130 * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
4131 (cgraph_analyze_functions): Use node->analyzed
4132 (cgraph_mark_functions_to_output): Likewise.
4133 (cgraph_expand_function): All functions can be released after
4134 expanding.
4135 (cgraph_optimize): Use gimple_has_body_p.
4136 * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
4137 (cgraph_decide_inlining_incrementally): Likewise.
4138 (inline_transform): Inline transform.
4139 * tree-inline.c (initialize_cfun): Do now shallow copy structure;
4140 copy fields needed.
4141 (inlinable_function_p): Drop gimple_body check.
4142 (expand_call_inline): Use gimple_has_body_p.
4143 * gimple.c (gimple_has_body_p): New.
4144 * gimple.h (gimple_has_body_p): Add prototype.
4145 * tree-cfg.c (execute_build_cfg): Remove gimple_body.
4146 (dump_function_to_file): Use gimple_has_body_p check.
4147
05a26161
JJ
41482008-09-03 Jakub Jelinek <jakub@redhat.com>
4149
169e477d 4150 PR c++/37346
05a26161
JJ
4151 * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
4152 substatements.
4153 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
4154
a6340be1
BS
41552008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
4156
4157 From Michael Frysinger <michael.frysinger@analog.com>
4158 * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
4159 bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549. Add 0.2
4160 for bf538.
4161
358da97e
HS
41622008-09-03 Hari Sandanagobalane <hariharan@picochip.com>
4163
4164 Add picoChip port.
4165 * doc/extend.texi: Document picoChip builtin functions.
4166 * doc/invoke.texi: Document picoChip options.
4167 * doc/contrib.texi: Add picoChip contribution.
4168 * doc/md.texi: Document picoChip constraints.
4169 * config.gcc: Add picochip-*-*.
4170 * config/picochip/: Add new port.
4171
44299c96
RG
41722008-09-03 Richard Guenther <rguenther@suse.de>
4173
4174 PR tree-optimization/37328
4175 * tree-sra.c (sra_build_assignment): Gimplify properly.
4176 (generate_copy_inout): Take the correct stmt as definition,
4177 remove bogus assert.
4178
3b62f0e1
BS
41792008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
4180
4181 * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
4182 attributes.
4183
829dbae5
BS
4184 From Michael Frysinger <michael.frysinger@analog.com>
4185 * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
4186
fea16f81
DS
41872008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
4188
4ae8027b 4189 * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
fea16f81 4190 (__gthread_setspecific): Revert 2008-08-31 change to
4ae8027b 4191 __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case.
fea16f81 4192
a63068b6
AH
41932008-09-02 Aldy Hernandez <aldyh@redhat.com>
4194
4195 * diagnostic.c (error_at): New.
4196 * toplev.h (error_at): New prototype.
4197 * c-typeck.c (build_array_ref): Call error_at instead of error.
4198 Pass location to pedwarn.
4199
a20d7130
AN
42002008-09-02 Adam Nemet <anemet@caviumnetworks.com>
4201
13eaee4a 4202 * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
a20d7130 4203
dd4bf866
JJ
42042008-09-02 Jakub Jelinek <jakub@redhat.com>
4205
4206 * dwarf2out.c (tree_add_const_value_attribute): Only handle
4207 VAR_DECL and CONST_DECL.
4208
4aab97f9
L
42092008-09-02 H.J. Lu <hongjiu.lu@intel.com>
4210 Jakub Jelinek <jakub@redhat.com>
4211
4212 * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
4213 (setup_incoming_varargs_64): Assume cum != NULL. Set/check
4214 ix86_varargs_gpr_size and ix86_varargs_fpr_size. Use
4215 ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
4216 Don't set ix86_save_varrargs_registers.
4217 (ix86_setup_incoming_varargs): Assume cum != NULL.
4218 (ix86_va_start): Check ix86_varargs_gpr_size and
4219 ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
4220 cfun->va_list_fpr_size, respectively. Subtract 8*X86_64_REGPARM_MAX
4221 from frame pointer if ix86_varargs_gpr_size == 0.
4222 (ix86_compute_frame_layout): Updated.
4223 * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
4224 (ix86_varargs_gpr_size): Define.
4225 (ix86_varargs_fpr_size): Likewise.
4226 (machine_function): Remove save_varrargs_registers.
4227 Add varargs_gpr_size and varargs_fpr_size.
4228
c83c7e7e
JJ
42292008-09-02 Jakub Jelinek <jakub@redhat.com>
4230
777b1fbe
JJ
4231 * config/alpha/alpha.c (va_list_skip_additions,
4232 alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
4233 (alpha_gimplify_va_arg): Call unshare_expr on second use of
4234 offset_field.
4235
833ee764
JJ
4236 PR tree-optimization/36766
4237 * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
4238 for already removed basic blocks.
4239
c83c7e7e
JJ
4240 PR target/36332
4241 * real.c (real_maxval): Clear a lower bit to make real_maxval
4242 match get_max_float for IBM long double format.
4243
75c9cbe3
AS
42442008-09-02 Andreas Schwab <schwab@suse.de>
4245
4246 * configure.ac: Use m4_quote to quote the expansion of m4_do.
4247 * configure: Regenerate.
4248
dd59ef13
RS
42492008-09-02 Richard Sandiford <rdsandiford@googlemail.com>
4250
4251 * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
4252 SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
4253 checking for a non-VOID CONSTANT_P.
4254
0d77cc6c
JH
42552008-09-02 Jan Hubicka <jh@suse.cz>
4256
edcfeaee 4257 * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
4ae8027b
UB
4258 * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
4259 sdiv_pow2_cheap
0d77cc6c 4260
e0978eba
L
42612008-09-02 H.J. Lu <hongjiu.lu@intel.com>
4262
4263 * expr.c (emit_group_store): Don't assert stack temp mode size.
4264
b328f3af
SP
42652008-09-02 Sebastian Pop <sebastian.pop@amd.com>
4266 Tobias Grosser <grosser@fim.uni-passau.de>
4267 Jan Sjodin <jan.sjodin@amd.com>
4268 Harsha Jagasia <harsha.jagasia@amd.com>
4269 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
4270 Konrad Trifunovic <konrad.trifunovic@inria.fr>
4271 Adrien Eliche <aeliche@isty.uvsq.fr>
4272
4273 Merge from graphite branch.
4274 * graphite.c: New.
4275 * graphite.h: New.
4276 * tree-loop-linear.c (perfect_loop_nest_depth): Export.
4277 * doc/invoke.texi (-floop-block, -floop-interchange,
4278 -floop-strip-mine): Document new flags.
4279 * tree-into-ssa.c (gimple_vec): Moved...
4280 * tree-loop-distribution.c (rdg_component): Moved...
4281 * cfgloopmanip.c: Include tree-flow.h.
4282 (update_dominators_in_loop): New.
4283 (create_empty_if_region_on_edge): New.
4284 (create_empty_loop_on_edge): New.
4285 (loopify): Use update_dominators_in_loop.
4286 * tree-pass.h (pass_graphite_transforms): Declared.
4287 * configure: Regenerate.
4288 * tree-phinodes.c (make_phi_node): Export.
4289 (add_phi_node_to_bb): New, split from create_phi_node.
4290 * tree-chrec.c (for_each_scev_op): New.
4291 * tree-chrec.h (for_each_scev_op): Declared.
4292 * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
4293 (remove_statement): Call get_phi_with_result.
4294 * config.in (HAVE_cloog): Undef.
4295 * gdbinit.in (pgg): New.
4296 * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
4297 * tree-ssa-loop.c (graphite_transforms): New.
4298 (gate_graphite_transforms): New.
4299 (pass_graphite_transforms): New.
4300 * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
4301 HAVE_cloog): Defined.
4302 * tree-vectorizer.c (rename_variables_in_bb): Export.
4303 * tree-data-ref.c (dr_may_alias_p): Export.
4304 (stmt_simple_memref_p): New.
4305 (find_data_references_in_stmt): Export.
4306 (find_data_references_in_loop): Export.
4307 (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
4308 (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
4309 (create_rdg_vertices): Export.
4310 (build_empty_rdg): New.
4311 (build_rdg): Call build_empty_rdg. Free dependence_relations.
4312 * tree-data-ref.h (rdg_component): ... here.
4313 (scop_p): New.
4314 (struct data_reference): Add a field scop.
4315 (DR_SCOP): New.
4316 (find_data_references_in_loop): Declared.
4317 (find_data_references_in_stmt): Declared.
4318 (create_rdg_vertices): Declared.
4319 (dr_may_alias_p): Declared.
4320 (stmt_simple_memref_p): Declared.
4321 (struct rdg_edge): Add a field ddr_p relation.
4322 (build_empty_rdg): Declared.
4323 * lambda.h (lambda_matrix): Declare a VEC of.
4324 (find_induction_var_from_exit_cond): Declared.
4325 (lambda_vector_compare): New.
4326 * common.opt (fgraphite, floop-strip-mine,
4327 floop-interchange, floop-block): New flags.
4328 * lambda-code.c (find_induction_var_from_exit_cond): Export.
4329 * cfgloop.c (is_loop_exit): New.
4330 * cfgloop.h (is_loop_exit): Declared.
4331 (create_empty_if_region_on_edge): Declared.
4332 (create_empty_loop_on_edge): Declared.
4333 * tree-flow.h (add_phi_node_to_bb): Declared.
4334 (make_phi_node): Declared.
4335 (rename_variables_in_bb): Declared.
4336 (perfect_loop_nest_depth): Declared.
4337 (graphite_transform_loops): Declared.
4338 * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
4339 (graphite.o-warn): Add -Wno-error.
4340 (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
4341 (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
4342 (INCLUDES): Add PPLINC, CLOOGINC.
4343 (OBJS-common): Add graphite.o.
4344 (graphite.o): Add rule.
4345 * gimple.h (gimple_vec): ... here.
4346 * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
ea8bce02 4347 * passes.c (init_optimization_passes): Schedule
b328f3af
SP
4348 pass_graphite_transforms.
4349
57b08d04
ST
43502008-09-02 Samuel Tardieu <sam@rfc1149.net>
4351
4352 PR target/37283
4353 * opts.c (decode_options): Move processing of -fno-unit-at-a-time
4354 and -fno-toplevel-reorder after handle_options.
4355
7612f14d
PB
43562008-09-02 Paul Brook <paul@codesourcery.com>
4357
4358 * config/arm/arm.c (arm_tune_cortex_a9): Define.
4359 (arm_override_options): Set arm_tune_cortex_a9.
4360 (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
4361 (arm_issue_rate): Handle cortexa9.
4362 * config/arm/arm.h (arm_tune_cortex_a9): Declare.
4363 * config/arm/arm-cores.def: Add cortex-a9.
4364 * config/arm/arm-tune.md: Regenerate.
4365 * config/arm/arm.md: Include cortex-a9.md.
4366 (generic_sched, generic_vfp): Add cortexa9.
4367 * config/arm/cortex-a9.md: New file.
4368
a1b969a0
RG
43692008-09-02 Richard Guenther <rguenther@suse.de>
4370
4371 PR tree-optimization/37327
4372 * tree-vrp.c (register_new_assert_for): Make sure to not have
4373 TREE_OVERFLOW set on the bound.
4374
7ab5df48
AB
43752008-09-02 Alexander Monakov <amonakov@ispras.ru>
4376
4377 Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
75c9cbe3 4378
7ab5df48
AB
4379 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
4380 * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
4381 spec_info->mask.
4382
f6d5e84a
VK
43832008-09-02 Victor Kaplansky <victork@il.ibm.com>
4384
4385 * gcc/config/spu/spu.md (divdf3): Removed.
f6d5e84a 4386
1aeaf0f7
JJ
43872008-09-02 Jakub Jelinek <jakub@redhat.com>
4388
4389 PR tree-optimization/37095
4390 * cgraph.c (cgraph_node): When creating new cgraph node after
4391 assembler_name_hash has been populated, record it in the hash
4392 table.
4393
571191af
PB
43942008-09-01 Paul Brook <paul@codesourcery.com>
4395
4396 * doc/invoke.texi: Document -mword-relocations.
4397 * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4398 * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4399 * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4400 * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
4401 (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
4402 (arm_emit_movpair): New function.
4403 (arm_print_operand <c>): Handle sybolic addresses.
4404 * config/arm/arm.h (TARGET_USE_MOVT): Define.
4405 (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4406 * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
4407 * config/arm/arm.opt: Add -mword-relocations.
4408 * config/arm/arm.md (movsi): Use arm_emit_movpair.
4409 (arm_movt, arm_movw): New.
4410
26272ba2
PB
44112008-09-01 Paul Brook <paul@codesourcery.com>
4412
4413 * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
4414 Allow Interworking on ARMv4 EABI based targets.
4415 * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
4416 (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
4417
48c23a6c
PB
44182008-09-01 Paul Brook <paul@codesourcery.com>
4419
4420 * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
4421 optimized LT0 test. Remove optimization for GT.
4422
89ceba31
JDA
44232008-09-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4424
4b738718
JDA
4425 * pa64-hpux.h (LIB_SPEC): Link against librt when building static
4426 openmp applications.
4427 * pa-hpux11.h (LIB_SPEC): Likewise.
4428
02bb8bce
UB
4429 * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
4430 is defined.
89ceba31 4431
ba623ced
JH
44322008-09-01 Jan Hubicka <jh@suse.cz>
4433
4434 * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
4435 present, use only counts; when guessed use only frequencies.
4436 (estimate_bb_frequencies): Use function_frequency.
4437 * profile.c (compute_branch_probabilities): Exit early when
4438 profile reading failed. Set profile_status.
4439 (branch_prob): Do not set profile_status.
4440
6a3799eb
AH
44412008-09-01 Aldy Hernandez <aldyh@redhat.com>
4442
4443 * tree.c (protected_set_expr_location): New.
4444 * tree.h (protected_set_expr_location): New prototype.
4445 * c-tree.h (build_array_ref): Add argument.
4446 (parser_build_unary_op): Same.
4447 * c-typeck.c (build_indirect_ref): Handle new location argument.
4448 (build_array_ref): Same.
4449 (parser_build_unary_op): Same.
4450 * gimplify.c (gimplify_asm_expr): Set input_location before calling
4451 error.
4452 * c-omp.c (c_finish_omp_atomic): Pass location when calling
4453 build_indirect_ref.
4ae8027b 4454 * c-common.c (finish_label_address_expr): Handle new location argument.
6a3799eb
AH
4455 * c-common.h (build_indirect_ref): Add argument.
4456 (finish_label_address_expr): Same.
4457 * c-parser.c (c_parser_unary_expression): Pass location to build
4458 functions.
4459 (c_parser_postfix_expression): Same.
4460
51c69ddb
PB
44612008-09-01 Paul Brook <paul@codesourcery.com>
4462
4463 * config/arm/arm.md: Include cortex-r4f.md.
4464 (attr fpu): Update type list.
4465 (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
75c9cbe3 4466 fconstd, fcmps and fcmpd.
51c69ddb
PB
4467 (attr tune_cortexr4): Define.
4468 (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
4469 * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
4470 fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns.
4471 * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
4ae8027b 4472 * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
51c69ddb
PB
4473 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
4474 cortex_a8_vfp_farith: Ditto.
4475 * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
4476 * config/arm/cortex-r4.md: Use tune_cortexr4.
4477 * config/arm/cortex-r4f.md: New file.
4478
ff8b183b
RG
44792008-09-01 Richard Guenther <rguenther@suse.de>
4480
4481 PR tree-optimization/37305
4482 * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
4483 the result of constant conversions.
4484 (fold_gimple_assign): Likewise.
4485
68ad446f
AB
44862008-09-01 Andrey Belevantsev <abel@ispras.ru>
4487
75c9cbe3
AS
4488 * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
4489 #ifdef ENABLE_CHECKING.
68ad446f 4490
dfb0e60d 44912008-09-01 Andrey Belevantsev <abel@ispras.ru>
75c9cbe3 4492
dfb0e60d
AB
4493 * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
4494 * sched-int.h (print_insn, print_pattern, print_value): Declare also
4495 when !INSN_SCHEDULING.
75c9cbe3 4496
8a88c276
AS
44972008-09-01 Andreas Schwab <schwab@suse.de>
4498
4499 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
4500
756f763b
PB
45012008-09-01 Paul Brook <paul@codesourcery.com>
4502
4503 * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
4504
7ab5df48 45052008-09-01 Jan Hubicka <jh@suse.cz>
e04ad03d 4506
f69bbb46
JH
4507 * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
4508
4ae8027b
UB
4509 * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
4510 Pass speed operand.
e04ad03d
JH
4511 * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
4512 * gimplify.c (gimplify_init_constructor): Add speed operand.
4513 * tree-sra.c (decide_block_copy): Likewise.
4514 * tree-inline.c (estimate_move_cost): Likewise.
4515 * config/alpha/alpha.h (MOVE_RATIO): Update.
4516 * config/frv/frv.c (MOVE_RATIO): Update.
4517 * config/spu/spu.h (MOVE_RATIO): Update.
4518 * config/sparc/sparc.h (MOVE_RATIO): Update.
4519 * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
4520 * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
4521 * config/cris/cris.h (MOVE_RATIO): Update.
4522 * config/mn10300/mn10300.h (MOVE_RATIO): Update.
4523 * config/arm/arm.h (MOVE_RATIO): Update.
4524 * config/pa/pa.md: Update uses of MOVE_RATIO
4525 * config/pa/pa.h (MOVE_RATIO): Update.
4ae8027b
UB
4526 * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
4527 CLEAR_RATIO, SET_RATIO): Update.
e04ad03d
JH
4528 * config/h8300/h8300.h (MOVE_RATIO): Update.
4529 * config/v850/v850.h (MOVE_RATIO): Update.
4530 * config/bfin/bfin.h (MOVE_RATIO): Update.
4531
e855c69d 45322008-08-31 Andrey Belevantsev <abel@ispras.ru>
4ae8027b
UB
4533 Dmitry Melnik <dm@ispras.ru>
4534 Dmitry Zhurikhin <zhur@ispras.ru>
4535 Alexander Monakov <amonakov@ispras.ru>
4536 Maxim Kuvyrkov <maxim@codesourcery.com>
e855c69d
AB
4537
4538 * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
4539 sel-sched-dump.c, sel-sched-ir.c: New files.
02bb8bce 4540 * Makefile.in (OBJS-common): Add selective scheduling object files.
e855c69d
AB
4541 (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
4542 (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
4543 (sched-vis.o): Add dependency on $(INSN_ATTR_H).
4544 * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
4545 * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
4546 (make_forwarder_block): Update loop latch if we have redirected
4547 the loop latch edge.
4548 * cfgloop.c (get_loop_body_in_custom_order): New function.
4549 * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
4550 (CP_FALLTHRU_PREHEADERS): Likewise.
4551 (get_loop_body_in_custom_order): Declare.
4552 * cfgloopmanip.c (has_preds_from_loop): New.
4553 (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
4554 Assert that the preheader edge will be fall thru when it is set.
4555 * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
4556 fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
4557 fsel-sched-substitution, fselective-scheduling): New flags.
4ae8027b 4558 * cse.c (hash_rtx_cb): New.
e855c69d
AB
4559 (hash_rtx): Use it.
4560 * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
8a88c276 4561 sel_sched_insn_cnt): New counters.
4ae8027b
UB
4562 * final.c (compute_alignments): Export. Free dominance
4563 info after loop_optimizer_finalize.
e855c69d 4564 * genattr.c (main): Output maximal_insn_latency prototype.
4ae8027b
UB
4565 * genautomata.c (output_default_latencies): New.
4566 Factor its code from ...
e855c69d
AB
4567 (output_internal_insn_latency_func): ... here.
4568 (output_internal_maximal_insn_latency_func): New.
4569 (output_maximal_insn_latency_func): New.
4570 * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
4571 (struct hard_reg_set_iterator): New.
4572 (hard_reg_set_iter_init, hard_reg_set_iter_set,
4573 hard_reg_set_iter_next): New functions.
4574 (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
4575 * lists.c (remove_free_INSN_LIST_node,
4576 remove_free_EXPR_LIST_node): New functions.
4ae8027b
UB
4577 * loop-init.c (loop_optimizer_init): When
4578 LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
4579 calling create_preheaders.
e855c69d
AB
4580 (loop_optimizer_finalize): Do not verify flow info after reload.
4581 * recog.c (validate_replace_rtx_1): New parameter simplify.
4582 Default it to true. Update all uses. Factor out simplifying
4583 code to ...
4584 (simplify_while_replacing): ... this new function.
4585 (validate_replace_rtx_part,
4586 validate_replace_rtx_part_nosimplify): New.
4587 * recog.h (validate_replace_rtx_part,
4588 validate_replace_rtx_part_nosimplify): Declare.
4589 * rtl.c (rtx_equal_p_cb): New.
4590 (rtx_equal_p): Use it.
4591 * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
4592 (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
4593 debug_bb_n_slim, debug_bb_slim, print_rtl_slim): Likewise.
8a88c276 4594 * vecprim.h: Add a vector type for unsigned int.
e855c69d
AB
4595 * haifa-sched.c: Include vecprim.h and cfgloop.h.
4596 (issue_rate, sched_verbose_param, note_list, dfa_state_size,
4597 ready_try, cycle_issued_insns, spec_info): Make global.
4598 (readyp): Initialize.
4599 (dfa_lookahead): New global variable.
4600 (old_max_uid, old_last_basic_block): Remove.
4601 (h_i_d): Make it a vector.
4602 (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
4603 through HID macro.
4604 (after_recovery, adding_bb_to_current_region_p):
4605 New variables to handle correct insertion of the recovery code.
4606 (struct ready_list): Move declaration to sched-int.h.
4607 (rgn_n_insns): Removed.
4608 (rtx_vec_t): Move to sched-int.h.
4609 (find_insn_reg_weight): Remove.
4610 (find_insn_reg_weight1): Rename to find_insn_reg_weight.
4611 (haifa_init_h_i_d, haifa_finish_h_i_d):
4612 New functions to initialize / finalize haifa instruction data.
4613 (extend_h_i_d, init_h_i_d): Rewrite.
4614 (unlink_other_notes): Move logic to add_to_note_list. Handle
4615 selective scheduler.
4616 (ready_lastpos, ready_element, ready_sort, reemit_notes,
4617 find_fallthru_edge): Make global, remove static prototypes.
4618 (max_issue): Make global. Add privileged_n and state parameters. Use
8a88c276 4619 them.
e855c69d
AB
4620 (extend_global, extend_all): Removed.
4621 (init_before_recovery): Add new param. Fix the handling of the case
4622 when we insert a recovery code before the EXIT which has a predecessor
4623 with a fallthrough edge to it.
4624 (create_recovery_block): Make global. Rename to
4625 sched_create_recovery_block. Update.
4626 (change_pattern): Rename to sched_change_pattern. Make global.
4627 (speculate_insn): Rename to sched_speculate_insn. Make global.
4628 Split haifa-specific functionality into ...
4629 (haifa_change_pattern): New static function.
4630 (sched_extend_bb): New static function.
4631 (sched_init_bbs): New function.
4632 (current_sched_info): Change type to struct haifa_sched_info.
4633 (insn_cost): Adjust for selective scheduling.
4634 (dep_cost_1): New function. Move logic from ...
4635 (dep_cost): ... here.
4636 (dep_cost): Use dep_cost_1.
4637 (contributes_to_priority_p): Use sched_deps_info instead of
4638 current_sched_info.
4639 (priority): Adjust to work with selective scheduling. Process the
4640 corner case when all dependencies don't contribute to priority.
4641 (rank_for_schedule): Use ds_weak instead of dep_weak.
4642 (advance_state): New function. Move logic from ...
4643 (advance_one_cycle): ... here.
4644 (add_to_note_list, concat_note_lists): New functions.
4645 (rm_other_notes): Make static. Adjust for selective scheduling.
4646 (remove_notes, restore_other_notes): New functions.
4647 (move_insn): Add two arguments. Update assert. Don't call
4648 reemit_notes.
4649 (choose_ready): Remove lookahead variable, use dfa_lookahead.
4650 Remove more_issue, max_points. Move the code to initialize
4651 max_lookahead_tries to max_issue.
4652 (schedule_block): Remove rgn_n_insns1 parameter. Don't allocate
4653 ready. Adjust use of move_insn. Call restore_other_notes.
4654 (luid): Remove.
4655 (sched_init, sched_finish): Move Haifa-specific initialization/
4656 finalization to ...
4657 (haifa_sched_init, haifa_sched_finish): ... respectively.
4658 New functions.
4659 (setup_sched_dump): New function.
4660 (haifa_init_only_bb): New static function.
4661 (haifa_speculate_insn): New static function.
02bb8bce 4662 (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
e855c69d
AB
4663 (extend_ready, extend_all): Remove.
4664 (sched_extend_ready_list, sched_finish_ready_list): New functions.
4665 (create_check_block_twin, add_to_speculative_block): Use
4666 haifa_insns_init instead of extend_global. Update to use new
4667 initialization functions. Change parameter. Factor out code from
4668 create_check_block_twin to ...
4669 (sched_create_recovery_edges) ... this new function.
4670 (add_block): Remove.
4671 (sched_scan_info): New.
4672 (extend_bb): Use sched_scan_info.
4673 (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
4674 static functions for walking through scheduling region.
4675 (sched_luids): New vector variable to replace uid_to_luid.
4676 (luids_extend_insn): New function.
4677 (sched_max_luid): New variable.
4678 (luids_init_insn): New function.
4679 (sched_init_luids, sched_finish_luids): New functions.
4680 (insn_luid): New debug function.
4681 (sched_extend_target): New function.
4682 (haifa_init_insn): New static function.
4683 (sched_init_only_bb): New hook.
4684 (sched_split_block): New hook.
4685 (sched_split_block_1): New function.
4686 (sched_create_empty_bb): New hook.
8a88c276 4687 (sched_create_empty_bb_1): New function.
e855c69d
AB
4688 (common_sched_info, ready): New global variables.
4689 (current_sched_info_var): Remove.
8a88c276
AS
4690 (move_block_after_check): Use common_sched_info.
4691 (haifa_luid_for_non_insn): New static function.
02bb8bce 4692 (init_before_recovery): Use haifa_init_only_bb instead of add_block.
e855c69d
AB
4693 (increase_insn_priority): New.
4694 * modulo-sched.c: (issue_rate): Remove static declaration.
4695 (sms_sched_info): Change type to haifa_sched_info.
4696 (sms_sched_deps_info, sms_common_sched_info): New variables.
4697 (setup_sched_infos): New.
4698 (sms_schedule): Initialize them. Call haifa_sched_init/finish.
4699 Do not call regstat_free_calls_crossed.
4700 (sms_print_insn): Use const_rtx.
4701 * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
4702 PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
4703 PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
4704 PARAM_SCHED_MEM_TRUE_DEP_COST): New.
4705 * sched-deps.c (sched_deps_info): New. Update all relevant uses of
4706 current_sched_info to use it.
4707 (enum reg_pending_barrier_mode): Move to sched-int.h.
4708 (h_d_i_d): New variable. Initialize to NULL.
4709 ({true, output, anti, spec, forward}_dependency_cache): Initialize
4710 to NULL.
4711 (estimate_dep_weak): Remove static declaration.
4712 (sched_has_condition_p): New function. Adjust users of
4713 sched_get_condition to use it instead.
4714 (conditions_mutex_p): Add arguments indicating which conditions are
4715 reversed. Use them.
4716 (sched_get_condition_with_rev): Rename from sched_get_condition. Add
4717 argument to indicate whether returned condition is reversed. Do not
4718 generate new rtx when condition should be reversed; indicate it by
4719 setting new argument instead.
4720 (add_dependence_list_and_free): Add deps parameter.
4721 Update all users. Do not free dependence list when
4722 deps context is readonly.
4723 (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
4724 contexts.
4725 (remove_from_dependence_list, remove_from_both_dependence_lists): New.
8a88c276 4726 (remove_from_deps): New. Use the above functions.
e855c69d
AB
4727 (cur_insn, can_start_lhs_rhs_p): New static variables.
4728 (add_or_update_back_dep_1): Initialize present_dep_type.
4729 (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
4730 haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
4731 haifa_note_dep): New functions implementing dependence hooks for
4732 the Haifa scheduler.
4733 (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
4734 note_dep): New functions.
4735 (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
4736 functions.
4737 (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
4738 (free_deps): Initialize deps->reg_last.
4739 (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
4740 sched_analyze_insn): Update to use dependency hooks infrastructure
4741 and readonly contexts.
4742 (deps_analyze_insn): New function. Move part of logic from ...
4743 (sched_analyze): ... here. Also move some logic to ...
4744 (deps_start_bb): ... here. New function.
4745 (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
4746 sel_sched_p.
4747 (sched_deps_init): New function. Move code from ...
4748 (init_dependency_caches): ... here. Remove.
4749 (init_deps_data_vector): New.
4750 (sched_deps_finish): New function. Move code from ...
4751 (free_dependency_caches): ... here. Remove.
4752 (init_deps_global, finish_deps_global): Adjust for use with
4753 selective scheduling.
4754 (get_dep_weak): Move logic to ...
4755 (get_dep_weak_1): New function.
4756 (ds_merge): Move logic to ...
4757 (ds_merge_1): New static function.
4758 (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
4759 (ds_get_max_dep_weak): New function.
4760 * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
4761 (n_insns): Rename to rgn_n_insns.
4762 (debug_ebb_dependencies): New function.
4763 (init_ready_list): Use it.
4764 (begin_schedule_ready): Use sched_init_only_bb.
4765 (ebb_print_insn): Indicate when an insn starts a new cycle.
4766 (contributes_to_priority, compute_jump_reg_dependencies,
4767 add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
4768 (add_block1): Remove to ebb_add_block.
4769 (ebb_sched_deps_info, ebb_common_sched_info): New variables.
4770 (schedule_ebb): Initialize them. Use remove_notes instead of
4771 rm_other_notes. Use haifa_local_init/finish.
4772 (schedule_ebbs): Use haifa_sched_init/finish.
4773 * sched-int.h: Include vecprim.h, remove rtl.h.
4774 (struct ready_list): Delete declaration.
4775 (sched_verbose_param, enum sched_pass_id_t,
4776 bb_vec_t, insn_vec_t, rtx_vec_t): New.
4777 (struct sched_scan_info_def): New structure.
4778 (sched_scan_info, sched_scan, sched_init_bbs,
4779 sched_init_luids, sched_finish_luids, sched_extend_target,
4780 haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
4781 (struct common_sched_info_def): New.
4782 (common_sched_info, haifa_common_sched_info,
4783 sched_emulate_haifa_p): Declare.
4784 (sel_sched_p): New.
4785 (sched_luids): Declare.
4786 (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
4787 (sched_max_luid, insn_luid): Declare.
4788 (note_list, remove_notes, restore_other_notes, bb_note): Declare.
4789 (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
4790 print_insn, print_pattern, print_value, haifa_classify_insn,
4791 sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
4792 setup_sched_dump, sched_init, sched_finish,
4793 sel_insn_is_speculation_check): Export.
4794 (struct ready_list): Move from haifa-sched.c.
4795 (ready_try, ready, max_issue): Export.
4796 (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
4797 sched_init_only_bb, sched_split_block, sched_split_block_1,
4798 sched_create_empty_bb, sched_create_empty_bb_1,
4799 sched_create_recovery_block, sched_create_recovery_edges): Export.
4800 (enum reg_pending_barrier_mode): Export.
4801 (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
4802 (deps_t): New.
4803 (struct sched_info): Rename to haifa_sched_info. Use const_rtx for
4804 print_insn field. Move add_block and fix_recovery_cfg to
4ae8027b
UB
4805 common_sched_info_def. Move compute_jump_reg_dependencies,
4806 use_cselib ...
e855c69d
AB
4807 (struct sched_deps_info_def): ... this new structure.
4808 (sched_deps_info): Declare.
4809 (struct spec_info_def): Remove weakness_cutoff, add
4810 data_weakness_cutoff and control_weakness_cutoff.
4811 (spec_info): Declare.
4812 (struct _haifa_deps_insn_data): Split from haifa_insn_data. Add
4813 dep_count field.
4814 (struct haifa_insn_data): Rename to struct _haifa_insn_data.
4815 (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
4816 (current_sched_info): Change type to struct haifa_sched_info.
4817 (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
4818 (h_d_i_d): New variable.
4819 (HDID): New accessor macro.
4820 (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
4821 (HID): New accessor macro. Rewrite h_i_d accessor macros through HID
4822 and HDID.
4823 (IS_SPECULATION_CHECK_P): Update for selective scheduler.
4824 (enum SCHED_FLAGS): Update for selective scheduler.
4825 (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
4826 (init_dependency_caches, free_dependency_caches): Delete declarations.
4827 (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
4828 estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
4829 ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
4830 sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
4831 haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
4832 ds_to_dt): Export.
4833 (rm_other_notes): Delete declaration.
4834 (schedule_block): Remove one argument.
4835 (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
4836 ready_element, ready_lastpos, sched_extend_ready_list,
4837 sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
4838 concat_note_lists): Export.
4839 (struct region): Move from sched-rgn.h.
4840 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4841 RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4842 BLOCK_TO_BB, CONTAINING_RGN): Export.
4843 (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
4844 (current_nr_blocks, current_blocks, target_bb): Likewise.
4845 (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
4846 sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
4847 sched_rgn_local_init, extend_regions,
4848 rgn_make_new_region_out_of_new_block, compute_priorities,
4849 debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
4850 extend_rgns, deps_join rgn_setup_common_sched_info,
4851 rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
4852 dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
8a88c276 4853 (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
e855c69d
AB
4854 increase_insn_priority): Likewise.
4855 * sched-rgn.c: Include sel-sched.h.
4856 (ref_counts): New static variable. Use it ...
4857 (INSN_REF_COUNT): ... here. Rewrite and move closer to uses.
4858 (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
4859 (sched_is_disabled_for_current_region_p): Delete static declaration.
4860 (struct region): Move to sched-int.h.
4861 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4862 ebb_head): Define and initialize.
4863 (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4864 BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
4865 BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
4866 sched-int.h.
4867 (find_single_block_region): Add new argument to indicate that EBB
4868 regions should be constructed.
4869 (debug_live): Delete declaration.
4ae8027b
UB
4870 (current_nr_blocks, current_blocks, target_bb):
4871 Remove static qualifiers.
e855c69d
AB
4872 (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
4873 declaration.
4874 (init_regions): Delete declaration.
4875 (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
4876 rgn_estimate_number_of_insns): New.
4877 (too_large): Use estimate_number_of_insns.
4878 (haifa_find_rgns): New. Move the code from ...
4879 (find_rgns): ... here. Call either sel_find_rgns or haifa_find_rgns.
4880 (free_trg_info): New.
4881 (compute_trg_info): Allocate candidate tables here instead of ...
4882 (init_ready_list): ... here.
4883 (rgn_print_insn): Use const_rtx.
4884 (contributes_to_priority, extend_regions): Delete static declaration.
4885 (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
4886 (add_block1): Rename to rgn_add_block.
4887 (debug_rgn_dependencies): Delete static qualifier.
4888 (new_ready): Use sched_deps_info. Simplify.
4889 (rgn_common_sched_info, rgn_const_sched_deps_info,
4ae8027b
UB
4890 rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
4891 New.
e855c69d
AB
4892 (region_sched_info): Rename to rgn_const_sched_info.
4893 (deps_join): New, extracted from ...
4894 (propagate_deps): ... here.
4895 (compute_block_dependences, debug_dependencies): Update for selective
4896 scheduling.
4897 (free_rgn_deps, compute_priorities): New functions.
4898 (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
4899 sched_rgn_compute_dependencies): New functions.
4900 (schedule_region): Use them.
4901 (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
4902 rgn_setup_common_sched_info, rgn_setup_sched_infos):
4903 New functions.
4904 (schedule_insns): Call new functions that were split out.
4905 (rgn_make_new_region_out_of_new_block): New.
4906 (get_rgn_sched_max_insns_priority): New.
4907 (rest_of_handle_sched, rest_of_handle_sched2): Call selective
4908 scheduling when appropriate.
4909 * sched-vis.c: Include insn-attr.h.
4910 (print_value, print_pattern): Make global.
4911 (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
4912 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
4913 TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
4914 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
4915 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
4916 TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
4917 hooks. Initialize them to 0.
4918 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
4919 * target.h (struct gcc_target): Add them. Rename gen_check field to
4920 gen_spec_check.
4921 * flags.h (sel_sched_switch_set): Declare.
4922 * opts.c (sel_sched_switch_set): New variable.
4923 (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
4924 pipelining is disabled from command line.
4925 (common_handle_option): Record whether selective scheduling is
4926 requested from command line.
4927 * doc/invoke.texi: Document new flags and parameters.
4928 * doc/tm.texi: Document new target hooks.
4ae8027b
UB
4929 * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
4930 ia64_gen_check.
e855c69d
AB
4931 (dfa_state_size): Do not declare locally.
4932 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
4933 * config/rs6000/rs6000.c (rs6000_init_sched_context,
4934 rs6000_alloc_sched_context, rs6000_set_sched_context,
4935 rs6000_free_sched_context): New functions.
4936 (struct _rs6000_sched_context): New.
4937 (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
4938 scheduling.
8a88c276 4939 (rs6000_sched_finish): Do not run for selective scheduling.
e855c69d 4940
899cc0f4
JH
49412008-08-31 Jan Hubicka <jh@suse.cz>
4942
4943 * frv.c (frv_rtx_costs): Update forward declaration.
4944 * spu.c (spu_rtx_costs): Likewise.
4945 * pdp11.c: Include df.h
4946 (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
4947 * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
4948 (m68hc11_rtx_costs_1): Fix call of rtx_cost.
4949 * iq2000.c (iq2000_address_cost): Add speed argument.
4950 (iq2000_rtx_costs): Likewise.
4951 * mn10300.c (mn10300_address_cost_1): Remove speed argument;
4952 update call of mn10300_address_cost.
4953 * mcore.c: Include df.h
4954 (mcore_rtx_costs): Update prototype.
4955 * score3.c: Include df.h
4956 (score3_rtx_costs): Remove speed argument.
4957 * score7.c: Include df.h
4958 (score7_address_cost): Remove speed argument.
4959 * score-protos.h (score_address_cost): Update prototype.
4960 * score.c: Include df.h
4961 (score_rtx_costs): Update call of costs functions.
4962 * v850.c (v850_rtx_costs): Add bool argument.
4963
cd6b7bc6
HPN
49642008-08-31 Hans-Peter Nilsson <hp@axis.com>
4965
4966 * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
4967
9e2af376
AL
49682008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
4969
4970 * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
4971 * config/i386/gthr-win32.c (__gthread_setspecific): Same.
4972
d89f0ad6
AL
49732008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
4974
4975 * mkmap-flat.awk: Add option pe_dll.
4976 * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
4977 * config/i386/t-cygwin (SHLIB_LC): Add.
4978 * config/i386/t-mingw32 (SHLIB_LC): Add.
4979 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
4980 (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
4981 (LINK_SPEC): Support libgcc_s.
4982 (LIBGCC_SPEC): Support libgcc_s.
4983 (LIBGCC_SONAME): New.
4984
a065d52e
JH
49852008-08-31 Jan Hubicka <jh@suse.cz>
4986
3e196fa9
JH
4987 * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
4988 mistakely had old version of patch.
4989
a065d52e
JH
4990 * ipa-cp.c (ipcp_need_original_clone_p): Remove.
4991 (ipcp_estimate_growth): New.
4992 (ipcp_insert_stage): Use ipcp_estimate_growth.
4993 * profile.c (branch_prob): When reading failed, do not consider
4994 profile as read.
4995
079990a2
JH
49962008-08-31 Jan Hubicka <jh@suse.cz>
4997
4998 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
4999 loop is optimized for speed.
5000
2b2587f5
RG
50012008-08-31 Richard Guenther <rguenther@suse.de>
5002
5003 PR middle-end/37289
5004 * fold-const.c (fold_binary): Retain conversions in folding
5005 ~A + 1 to -A.
5006
fb2fed03
JH
50072008-08-31 Jan Hubicka <jh@suse.cz>
5008
4ae8027b
UB
5009 * postreload-gcse.c (eliminate_partially_redundant_loads):
5010 Use optimize_bb_for_size_p.
fb2fed03
JH
5011 * predict.c (maybe_hot_frequency_p): Make inline.
5012 (maybe_hot_count_p): Break out from ...
5013 (maybe_hot_bb_p): ... this one.
5014 (maybe_hot_edge_p): Simplify.
5015 * basic-block.h (probably_cold_bb_p): Remove.
5016
847535b6
JJ
50172008-08-31 Jakub Jelinek <jakub@redhat.com>
5018
5019 PR target/37168
5020 * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
5021 prototype.
5022 * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
5023 * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
5024 Also split V4SFmode.
5025 * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
5026 vector float modes.
5027
277b4867
JH
50282008-08-31 Jan Hubicka <jh@suse.cz>
5029
5030 * predict.c (PROB_VERY_LIKELY): Make small enough so things
5031 become cold.
5032 * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
5033
08ab58b3
JJ
50342008-08-31 Jakub Jelinek <jakub@redhat.com>
5035
8518c095
JJ
5036 PR debug/37287
5037 * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
5038 add source coords.
5039
08ab58b3
JJ
5040 * dwarf2out.c (native_encode_initializer): Subtract min_index for
5041 non-range array index. Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
5042
1f494b6d
JH
50432008-08-31 Jan Hubicka <jh@suse.cz>
5044
5045 * sparc.h (BRANCH_COST): Fix macro definition.
5046 * avr.c (avr_operand_rtx_cost): Add speed argument.
5047 (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
5048
f5e85907
RG
50492008-08-31 Richard Guenther <rguenther@suse.de>
5050
5051 * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
5052 types instead of operands. Re-instantiate verifying of
5053 binary expression operands.
5054
f40751dd
JH
50552008-08-30 Jan Hubicka <jh@suse.cz>
5056
5057 * fwprop.c (should_replace_address): Add speed attribute.
5058 (PR_OPTIMIZE_FOR_SPEED): New flag.
5059 (propagate_rtx_1): Use it.
5060 (propagate_rtx): Set it.
5061 (try_fwprop_subst): Update call of rtx_costs.
5062 (forward_propagate_and_simplify): LIkewise.
5063 * hooks.c (hook_int_rtx_bool_0): New
5064 (hook_bool_rtx_int_int_intp_false): Replace by ...
5065 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
5066 * hooks.h (hook_int_rtx_bool_0): New
5067 (hook_bool_rtx_int_int_intp_false): Replace by ...
5068 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
5069 * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
5070 (prepare_cmp_insn): UPdate call of rtx_cost.
5071 * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
5072 (reload_cse_simplify_operands): Update call of rtx_cost.
5073 (reload_cse_move2add): call of rtx_cost.
5074 * target.h (struct gcc_target): Update rtx_costs and address_costs.
5075 * rtlanal.c (rtx_cost): Add speed argument.
5076 (address_cost): Add speed argument
5077 (default_address_cost): Likewise.
5078 (insn_rtx_cost): Likewise.
5079 * cfgloopanal.c (seq_cost): Add speed argument.
5080 (target_reg_cost, target_spill_cost): Turn to array.
5081 (init_set_costs): Update for speed.
5082 (estimate_reg_pressure_cost): Add speed argument.
5083 * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
5084 * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
5085 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
5086 (seq_cost): Add speed argument.
5087 (computation_cost): Add speed arugment.
5088 (add_cost, multiply_by_const, get_address_cost): add speed argument.
5089 (force_expr_to_var_cost): Update for profile info.
5090 (force_var_cost): Likewise.
5091 (split_address_cost): Likewise.
5092 (ptr_difference_cost): Likewise.
5093 (difference_cost): Likewise.
5094 (get_computation_cost_at): Likewise.
5095 (determine_iv_cost): Likewise.
5096 (ivopts_global_cost_for_size): Likewise.
5097 (rewrite_use_address): Likewise.
5098 (tree_ssa_iv_optimize_loop): Initialize speed field.
5099 * cse.c (optimize_this_for_speed_p): New static var.
5100 (notreg_cost): Update call of rtx_cost.
5101 (cse_extended_basic_block): set optimize_this_for_speed_p.
5102 * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
5103 (noce_try_cmove_arith): Likewise.
5104 (noce_try_sign_mask): LIkewise.
5105 * expr.c (compress_float_constant): Update rtx_cost calls.
02bb8bce
UB
5106 * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
5107 argument.
f40751dd
JH
5108 (addr_to_parts): Likewise.
5109 (create_mem_ref): Likewise.
5110 * dse.c (find_shift_sequence): Add speed argument.
5111 (replace_read): Update call.
5112 * calls.c (precompute_register_parameters): Update call of rtx_cost.
5113 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
5114 * neg_cost, shift_cost, shiftadd_cost,
5115 shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
5116 mul_highpart_cost): Increase dimension.
5117 (init_expmed): Initialize for both size and speed.
5118 (expand_shift): Use profile.
5119 (synth_mult): Use profile.
5120 (choose_mult_variant): Use profile.
5121 (expand_mult): Use profile.
5122 (expand_mult_highpart_optab): Use profile.
5123 (expand_mult_highpart): Use profile.
5124 (expand_smod_pow2): Use profile.
5125 (expand_divmod): Use profile.
02bb8bce
UB
5126 * simplify-rtx.c (simplify_binary_operation_1): Update call of
5127 rtx_cost.
f40751dd
JH
5128 * loop-invariant.c (create_new_invariant): Use profile.
5129 (gain_for_invariant): Add speed parameter.
5130 (best_gain_for_invariant): Likewise.
5131 (find_invariants_to_move): Likewise.
5132 (move_single_loop_invariants): Set it.
5133 * target-def.h (TARGET_RTX_COSTS): Use hook.
5134 * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
5135 (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
5136 * output.h (default_address_cost): Update prototype.
5137 * combine.c (optimize_this_for_speed_p): New static var.
5138 (combine_validate_cost): Update call of rtx_cost.
5139 (combine_instructions): Set optimize_this_for_speed_p.
5140 (expand_compound_operation): Update call of rtx_cost.
5141 (make_extraction):Update call of rtx_cost.
5142 (force_to_mode):Update call of rtx_cost.
5143 (distribute_and_simplify_rtx):Update call of rtx_cost.
5144 * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
5145 (estimate_reg_pressure_cost): Update prototype.
5146 * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
5147 * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
5148 Remove.
5149 * config/alpha/alpha.c (alpha_rtx_costs): Update.
5150 (alpha_rtx_costs): Update.
5151 * config/frv/frv.c (frv_rtx_costs): Update.
5152 * config/s390/s390.c (s390_rtx_costs): Update.
5153 * config/m32c/m32c.c (m32c_memory_move_cost): Update.
5154 (m32c_rtx_costs): Update.
5155 * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
5156 (spu_rtx_costs): Update.
5157 * config/sparc/sparc.c (sparc_rtx_costs): Update.
5158 * config/m32r/m32r.c (m32r_rtx_costs): Update.
5159 * config/i386/i386.c (:ix86_address_cost): Update.
5160 (ix86_rtx_costs): Update.
5161 * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
5162 * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
5163 * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
5164 * config/crx/crx.c (crx_address_cost): Update.
5165 * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
5166 * config/stormy16/stormy16.c
5167 (xstormy16_address_cost, xstormy16_rtx_costs): Update.
5168 * config/m68hc11/m68hc11.c
5169 (m68hc11_address_cost, m68hc11_rtx_costs): Update.
5170 * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
4ae8027b
UB
5171 * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
5172 Update.
5173 * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
5174 Update
f40751dd
JH
5175 * config/ia64/ia64.c (ia64_rtx_costs): Update.
5176 * config/m68k/m68k.c (m68k_rtx_costs): Update.
5177 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
5178 * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
5179 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
5180 (mcore_rtx_costs): update.
5181 * config/score/score3.c (score3_rtx_costs): Update.
5182 * config/score/score7.c (score7_rtx_costs): Update.
5183 * config/score/score3.h (score3_rtx_costs):Update.
5184 * config/score/score7.h (score7_rtx_costs): Update.
5185 * config/score/score.c (score_rtx_costs): Update.
5186 * config/arm/arm.c (arm_address_cost): Update.
5187 (arm_rtx_costs_1): Update.
5188 (arm_rtx_costs_1): Update.
5189 (arm_size_rtx_costs): Update.
5190 (arm_size_rtx_costs): Update.
5191 (arm_size_rtx_costs): Update.
5192 (arm_xscale_rtx_costs): Update.
5193 (arm_thumb_address_cost): Update.
5194 * config/pa/pa.c (hppa_address_cost): Update.
5195 * config/mips/mips.c (mips_rtx_costs): Update.
5196 * config/vax/vax.c (vax_address_cost): Update.
5197 * config/h8300/h8300.c (h8300_shift_costs): Update.
5198 (h8300_rtx_costs): Update.
5199 * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
5200 (v850_rtx_costs): Update.
5201 * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
5202 * config/bfin/bfin.c
5203 (bfin_address_cost): Update.
5204 (bfin_rtx_costs): Update.
5205 * stmt.c (lshift_cheap_p): Update.
5206
6aebac53
AP
52072008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
5208
5209 PR middle-end/36444
5210 * expmed.c (extract_bit_field_1): Check the mode size to make
5211 sure the vector modes have the same size.
5212
a4cbe62d
MM
52132008-08-29 Michael Meissner <gnu@the-meissners.org>
5214
5215 * dojump.c (top level): Include basic-block.h to declare
5216 optimize_insn_for_speed_p
5217
5218 * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
5219
5779e713
MM
5220 * opts.h (CL_SAVE): New option class for marking options that are
5221 target specific options usable in the target attribute.
5222 (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
5223
5224 * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
5225 can easily find the target specific options that are safe to use
5226 in the attribute or pragma.
5227
5228 * attribs.c (decl_attributes): Change #pragma GCC option to
5229 #pragma GCC target, and attribute((option(...))) to
5230 attribute((target(...))).
5231
5232 * doc/extend.texi (target attribute): Change from option
5233 attribute. Delete push/pop/reset.
5234 (#pragma GCC target): Change from #pragma GCC option. Delete
5235 push/pop/reset.
5236 (#pragma GCC push_options): Document new pragma.
5237 (#pragma GCC pop_options): Document new pragma.
5238 (#pragma GCC reset_options): Document new pragma.
5239
5240 * targhooks.c (default_target_option_valid_attribute_p): Add
5241 warning about port not supporting target attributes.
5242 (default_target_option_pragma_parse): New function, warn about
5243 #pragma GCC target not being supported.
5244
5245 * targhooks.h (default_target_option_pragma_parse): Add
5246 declaration.
5247
5248 * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
5249 TI_CURRENT_OPTION_PRAGMA.
5250 (current_target_pragma): Rename from current_option_pragma.
5251
5252 * target.h: (struct target_option): Delete booleans for changing
5253 the optimization level on hot/cold functions. Change signature of
5254 pragma_parse hook to take a second tree.
5255
5256 * c-tree.h (c_builtin_function_ext_scope): Add declaration.
5257
5258 * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
5259 that the declaration is done at global scope.
5260
5261 * langhooks.c (add_builtin_function_common): Move most of the code
5262 from add_builtin_function here, calling the hook passed in.
5263 (add_builtin_function): Call add_builtin_function_common with
5264 standard builtin hook.
5265 (add_builtin_function_ext_scope): New function to add builtins to
5266 global scope.
5267
5268 * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
5269 hook.
5270 (add_builtin_function_ext_scope): Add declaration.
5271
5272 * c-pragma.c (handle_pragma_target): Rename from
5273 handle_pragma_option, #pragma GCC option is now #pragma GCC
5274 target. Move warning about port not supporting target options to
5275 default pragma parse hook. Remove push/pop/reset from this
5276 pragma.
5277 (handle_pragma_optimize): Remove push/pop/reset from this pragma.
5278 (option_stack): Delete static variable.
5279 (optimize_stack): Ditto.
5280 (optons_stack): New stack of saved target and optimization
5281 options.
5282 (handle_pragma_push_options): New function to handle pushing both
5283 target and optimization options.
5284 (handle_pragma_pop_options): New function to handle popping both
5285 target and optimization options.
5286 (handle_pragma_reset_options): New function to handle resetting
5287 both target and optimization options to their initial state.
5288 (init_pragma): Rename handle_pragma_option to
5289 handle_pragma_target. Add support for push_options, pop_options,
5290 and reset_options pragmas.
5291
5292 * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
5293 default_target_option_pragma_parse.
5294 (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
5295 default_target_option_valid_attribute_p.
5296 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5297 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5298 (TARGET_OPTION_HOOKS): Delete the fields for whether to change
5299 optimization level on hot/cold functions.
5300
5301 * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
5302 if the caller and callee have different optimization levels.
5303
5304 * c-common.c (handle_target_attribute): Rename from
5305 handle_option_attribute, attribute((option(...))) is now
5306 attribute((target(...))). Move warning if the port does not
5307 support target attributes to the default hook.
5308 (handle_hot_attribute): Delete code to change the optimization
5309 level of hot functions.
5310 (handle_cold_attribute): Ditto.
5311
5312 * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
5313 argument that is the binary tree options to use if there are no
5314 arguments. Call ix86_valid_target_attribute_tree instead of
5315 ix86_valid_option_attribute_tree.
5316 (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
5317 (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
5318 ix86_pragma_option_parse.
5319
5320 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
5321 Rename from ix86_valid_option_attribute_tree.
5322
5323 * config/i386/i386.c (ix86_add_new_builtins): New function to add
5324 new builtins when the ISA changes.
5325 (ix86_valid_target_attribute_tree): Rename from
5326 ix86_valid_option_attribute_tree. Change callers. If the
5327 function specified optimization options, use those as the starting
5328 point before setting up the target attributes. If the
5329 optimization options were changed in the course of setting the
5330 target attributes, record the new optimization options.
5331 (ix86_valid_target_attribute_tree_inner_p): Rename from
5332 ix86_valid_option_attribute_tree_inner_p. Change callers. Call
5333 ix86_add_new_builtins if the ISA changed.
5334 (ix86_valid_target_attribute_p): Rename from
5335 ix86_valid_option_attribute_p. Change callers.
5336 (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
5337 __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
5338 as delayed builtin functions.
5339 (struct builtin_isa): New structure to record builtin functions
5340 that should be delayed until the ISA for that function is used.
5341 (ix86_builtins_isa): Change from int to struct to track builtin
5342 functions we want to declare at some point.
5343 (def_builtin): If the front end can delay defining the builtin
5344 functions, don't create builtins for ISAs not part of the default
5345 options.
5346 (def_builtin_const): Ditto.
5347 (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
5348 __builtin_ia32_pcmov_v2di to be different builtin functions.
5349 (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
5350 a structure instead of an int.
5351 (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
5352 ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
5353 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5354 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5355
5356 * config/ia64/ia64.h
5357 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5358 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5359
5360 * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
5361 hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
5362 (LANG_HOOKS_INITIALIZER): Add
5363 LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
5364
06b322fa
KK
53652008-08-30 Kaz Kojima <kkojima@gcc.gnu.org>
5366
5367 PR target/37270
5368 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
5369 the reload address with the index register for SFmode
5370 access with a displacement.
5371
3a4fd356
JH
53722008-08-30 Jan Hubicka <jh@suse.cz>
5373
5374 * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
5375 * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
5376 * dojump.c (do_jump): Likewise.
5377 * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
5378 (note-if_info): Add BRANCH_COST.
4ae8027b
UB
5379 (noce_try_store_flag_constants, noce_try_addcc,
5380 noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
5381 noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
5382 find_if_case_2): Use computed branch cost.
3a4fd356
JH
5383 * expr.h (BRANCH_COST): Update default.
5384 * predict.c (predictable_edge_p): New function.
5385 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
5386 Update BRANCH_COST call.
5387 * basic-block.h (predictable_edge_p): Declare.
5388 * config/alpha/alpha.h (BRANCH_COST): Update.
5389 * config/frv/frv.h (BRANCH_COST): Update.
5390 * config/s390/s390.h (BRANCH_COST): Update.
5391 * config/spu/spu.h (BRANCH_COST): Update.
5392 * config/sparc/sparc.h (BRANCH_COST): Update.
5393 * config/m32r/m32r.h (BRANCH_COST): Update.
5394 * config/i386/i386.h (BRANCH_COST): Update.
02bb8bce
UB
5395 * config/i386/i386.c (ix86_expand_int_movcc): Update use of
5396 BRANCH_COST.
3a4fd356
JH
5397 * config/sh/sh.h (BRANCH_COST): Update.
5398 * config/pdp11/pdp11.h (BRANCH_COST): Update.
5399 * config/avr/avr.h (BRANCH_COST): Update.
5400 * config/crx/crx.h (BRANCH_COST): Update.
5401 * config/xtensa/xtensa.h (BRANCH_COST): Update.
5402 * config/stormy16/stormy16.h (BRANCH_COST): Update.
5403 * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
5404 * config/iq2000/iq2000.h (BRANCH_COST): Update.
5405 * config/ia64/ia64.h (BRANCH_COST): Update.
5406 * config/rs6000/rs6000.h (BRANCH_COST): Update.
5407 * config/arc/arc.h (BRANCH_COST): Update.
5408 * config/score/score.h (BRANCH_COST): Update.
5409 * config/arm/arm.h (BRANCH_COST): Update.
5410 * config/pa/pa.h (BRANCH_COST): Update.
5411 * config/mips/mips.h (BRANCH_COST): Update.
5412 * config/vax/vax.h (BRANCH_COST): Update.
5413 * config/h8300/h8300.h (BRANCH_COST): Update.
5414 * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
5415 * doc/invoke.texi (predictable-branch-cost-outcome): Document.
5416 * doc/tm.texi (BRANCH_COST): Update.
5417
b1bdaf40
ST
54182008-08-30 Samuel Tardieu <sam@rfc1149.net>
5419
5420 PR target/37283
5421 * config/arm/arm.c (arm_optimization_options): Set
5422 flag_section_anchors to 2 instead of 1 to distinguish it from
5423 -fsection-anchors given explicitely on the command line.
5424
a2a92083
RS
54252008-08-30 Richard Sandiford <rdsandiford@googlemail.com>
5426
5427 * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
5428 final insn of a split.
5429
8bcf15f6
JH
54302008-08-30 Jan Hubicka <jh@suse.cz>
5431
5432 * postreload-gcse.c (gate_handle_gcse2): Disable for functions
5433 optimized for speed.
5434 * final.c (compute_alignments): Use optimize_bb_for_size_p.
5435 * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
5436 * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
5437 flag_gcse_after_reload_set): New static vars.
5438 (common_handle_option): Enable those flags for profile-use.
5439 (decode_options): Remove optimize_size flags that are handled
5440 on higher granuality.
5441 * tree-vectorizer.c (vectorize_loops): Use
5442 optimize_loop_nest_for_speed_p.
5443 * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
5444 * tree-predcom.c (tree_predictive_commoning): Use
5445 optimize_loop_for_speed_p.
02bb8bce
UB
5446 * varasm.c (assemble_start_function): Use
5447 optimize_function_for_speed_p.
8bcf15f6
JH
5448 * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
5449 * predict.c (optimize_loop_for_speed_p): Fix walk.
5450
76718c16
JH
54512008-08-30 Jan Hubicka <jh@suse.cz>
5452
5453 * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
5454 functions.
5455 (cgraph_decide_inlining_of_small_function): Use edge->count to detect
5456 profile presence locally.
5457
109e637b
JM
54582008-08-29 Joseph Myers <joseph@codesourcery.com>
5459
5460 PR bootstrap/37086
5461 * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
5462 versions before 4.0.
5463
e7119705
JH
54642008-08-29 Jan Hubicka <jh@suse.cz>
5465
5466 * tree-inline.c (insert_init_stmt): Insert sequence even when
5467 not in SSA form.
5468
6528281d
JL
54692008-08-29 Jeff Law <law@redhat.com>
5470
5471 * mn10300.c (mn10300_secondary_reload_class): We need secondary
5472 reloads for AM33-2 if IN is a pseudo with an equivalent memory
5473 location and class is an FP register.
5474
041f300d
JH
54752008-08-29 Jan Hubicka <jh@suse.cz>
5476
6528281d
JL
5477 * see.c (see_merge_one_def_extension): Silence used uninitialized
5478 warning.
041f300d
JH
5479 * matrix-reorg.c (check_allocation_function): Likewise.
5480 * config/i386/driver-i386.c (detect_caches_amd): Likewise.
5481
a64f5186
JJ
54822008-08-29 Jakub Jelinek <jakub@redhat.com>
5483
bf09f0e0
JJ
5484 PR c/37261
5485 * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
5486 compute new & and | in type rather than TREE_TYPE (arg0).
5487
98c0cbd3
JJ
5488 * dwarf2out.c (fortran_common): Update comment.
5489 (gen_variable_die): Swap com_die and var_die variables in Fortran
5490 COMMON block handling code.
5491
de870512
JJ
5492 * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
5493
bd11e37d
JJ
5494 * dwarf2out.c (gen_const_die): New function.
5495 (size_of_die, value_format, output_die): Output larger
5496 dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
5497 (native_encode_initializer): New function.
5498 (tree_add_const_value_attribute): Call it.
5499 (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
5500
f51d8f1a
JJ
5501 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
5502 DECL_BY_REFERENCE decls don't pass TREE_READONLY and
5503 TREE_THIS_VOLATILE to add_type_attribute.
5504
b6b904bd
JJ
5505 * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
5506 types.
5507 (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
5508 types.
5509
2599ed92
JJ
5510 * dwarf2out.c (loc_by_reference): New function.
5511 (add_location_or_const_value_attribute): Use it.
5512
04e74e02
JJ
5513 PR fortran/23057
5514 * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
5515 as DW_TAG_variable children of DW_TAG_common_block rather than
5516 DW_TAG_member children. Put DW_AT_external to individual
5517 DW_TAG_variable DIEs, not to DW_TAG_common_block.
5518
25c29c56
JJ
5519 * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
5520 loc_descriptor_from_tree_1.
5521
a64f5186
JJ
5522 PR fortran/29635
5523 PR fortran/23057
5524 * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
5525 arguments to imported_module_or_decl.
5526 (debug_nothing_tree_tree): Removed.
5527 (debug_nothing_tree_tree_tree_bool): New prototype.
5528 * debug.c (do_nothing_debug_hooks): Adjust.
5529 (debug_nothing_tree_tree): Removed.
5530 (debug_nothing_tree_tree_tree_bool): New function.
5531 * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
5532 (gen_variable_die): Put all common vars for the
5533 same COMMON block under one DW_TAG_common_block.
5534 (declare_in_namespace): Return new context_die, for Fortran
5535 return the module DIE instead of adding extra declarations into
5536 the namespace.
5537 (gen_type_die_with_usage): Adjust declare_in_namespace caller.
5538 (gen_namespace_die): If is_fortran (), generate DW_TAG_module
5539 instead of DW_TAG_namespace. If DECL_EXTERNAL is set, add
5540 DW_AT_declaration.
5541 (dwarf2out_global_decl): Don't skip Fortran global vars.
5542 (gen_decl_die): Likewise. Adjust declare_in_namespace callers.
5543 (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
5544 If NAME is non-NULL, add DW_AT_name. If CHILD is non-NULL, put
5545 DW_TAG_imported_declaration as child of previous
5546 DW_TAG_imported_module.
5547 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
5548 * sdbout.c (sdb_debug_hooks): Likewise.
5549 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5550
ca30a539
JH
55512008-08-29 Jan Hubicka <jh@suse.cz>
5552
5553 * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
5554
5555 * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
5556 * ipa-cp.c (n_cloning_candidates): New static variable.
5557 (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
5558 (ipcp_print_all_lattices): Improve debug output.
5559 (ipcp_cloning_candidate_p): New function.
5560 (ipcp_initialize_node_lattices): Use it.
5561 (ipcp_init_stage): Do only analyzis here; prettier debug output.
5562 (ipcp_propagate_stage): Prettier debug output.
5563 (ipcp_iterate_stage): Initialize latices here; prettier debug output.
5564 (ipcp_print_all_structures): Remove.
5565 (ipcp_need_redirect_p): Test !n_cloning_candidates.
5566 (ipcp_insert_stage): Prettier debug output; call
5567 cgraph_remove_unreachable_nodes before propagating.
5568 (pass_ipa_cp): Schedule function removal pass.
5569 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
5570 debug output.
5571 (cgraph_maybe_hot_edge_p): Move to ...
5572 * predict.c (cgraph_maybe_hot_edge_p) ... here.
5573 * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
5574 (common_handle_option): Set them; enable ipa-cp when profiling.
5575 * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
5576 (ipa_print_all_jump_functions): Likewise.
5577 (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
5578 (ipa_print_node_params, ipa_print_all_params): New.
5579 * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
5580 ipa_print_all_param_flags): Remove.
5581 (ipa_print_node_params, ipa_print_all_params): New.
5582
a1f626ad
BW
55832008-08-29 Bob Wilson <bob.wilson@acm.org>
5584
5585 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
5586 change from 2008-04-03.
5587 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
5588
d7f2c74e
VM
55892008-08-29 Vladimir Makarov <vmakarov@redhat.com>
5590
5591 PR rtl-opt/37251
d7f2c74e
VM
5592 * ira-color.c (push_allocnos_to_stack): Truncate
5593 removed_splay_allocno_vec.
5594
03dd10d8
VM
55952008-08-29 Vladimir Makarov <vmakarov@redhat.com>
5596
5597 PR rtl-opt/37243
5598 * ira-color (ira_fast_allocation): Don't assign hard registers to
5599 global allocnos.
5600
c16eb95f
JH
56012008-08-29 Jan Hubicka <jh@suse.cz>
5602
5603 PR middle-end/37278
5604 * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
5605 for cold internal loops.
5606
13c6bff4
RG
56072008-08-29 Richard Guenther <rguenther@suse.de>
5608
5609 * tree-ssa-structalias.c (create_variable_info_for): Do not
5610 create fields for heap vars or vars with a noalias state.
5611 For NO_ALIAS_ANYTHING variables add a self-constraint, not one
5612 from ESCAPED.
5613
dce2b2f6
RG
56142008-08-29 Richard Guenther <rguenther@suse.de>
5615
5616 * common.opt (ftree-store-ccp): Mark as preserved for
5617 backward compatibility.
5618 * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
5619 * tree-pass.h (pass_store_ccp): Remove.
5620 * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
5621 (first_vdef): Remove declaration.
5622 (get_value_loaded_by): Likewise.
5623 * tree-ssa-ccp.c (do_store_ccp): Remove.
5624 (get_default_value): Simplify as do_store_ccp is always false
5625 now. Do not initialize mem_ref.
5626 (set_value_varying): Likewise.
5627 (canonicalize_float_value): Likewise.
5628 (set_lattice_value): Likewise.
5629 (likely_value): Likewise.
5630 (surely_varying_stmt_p): Likewise.
5631 (ccp_initialize): Likewise.
5632 (ccp_lattice_meet): Likewise.
5633 (ccp_visit_phi_node): Likewise.
5634 (ccp_fold): Likewise.
5635 (evaluate_stmt): Likewise.
5636 (visit_assignment): Likewise.
5637 (ccp_visit_stmt): Likewise.
5638 (execute_ssa_ccp): Fold into ...
5639 (do_ssa_ccp): ... this.
5640 (do_ssa_store_ccp): Remove.
5641 (gate_store_ccp): Likewise.
5642 (pass_store_ccp): Likewise.
5643 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
5644 initialize mem_ref.
5645 * tree-ssa-propagate.c (first_vdef): Remove.
5646 (get_value_loaded_by): Likewise.
5647 (replace_vuses_in): Likewise.
5648 (substitute_and_fold): Do not call replace_vuses_in.
5649 * opts.c (decode_options): Do not set flag_tree_store_ccp.
5650
443aa7d5
RG
56512008-08-29 Richard Guenther <rguenther@suse.de>
5652
5653 PR middle-end/37236
5654 * tree-ssa-structalias.c (intra_create_variable_infos): Mark
5655 PARAM_NOALIAS tags with is_heapvar.
5656 * tree-ssa-operands.c (access_can_touch_variable): Offset
5657 based tests do not apply for heapvars. Fix offset test.
5658
fcbe056b
JH
56592008-08-29 Jan Hubicka <jh@suse.cz>
5660
5661 * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
5662 (-fipa-cp-clone): Enabled by default at -O3.
5663 * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
5664 make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
5665
c6f7cfc1
JH
56662008-08-29 Jan Hubicka <jh@suse.cz>
5667
02bb8bce
UB
5668 * tree.c (build_function_type_skip_args,
5669 build_function_decl_skip_args): New functions.
5670 * tree.h (build_function_type_skip_args,
5671 build_function_decl_skip_args): Declare.
c6f7cfc1
JH
5672 * gimple.c (giple_copy_call_skip_args): New function.
5673 (giple_copy_call_skip_args): Declare.
5674
5675 * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
5676 * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
02bb8bce
UB
5677 (ipcp_node_modifiable_p): ... this one; use
5678 tree_versionable_function_p.
c6f7cfc1
JH
5679 (ipcp_create_replace_map): Improve debug output.
5680 (ipcp_need_redirect_p): Return false when not clonning.
5681 (ipcp_update_callgraph): Skip args.
5682 (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
5683 skip args.
5684 * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
5685 (save_inline_function_body): Update call of tree_function_versioning.
5686 * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
02bb8bce
UB
5687 * tree-inline.c (copy_arguments_for_versioning): Add skip_args
5688 argument.
c6f7cfc1
JH
5689 (tree_function_versioning): Likewise.
5690 * tree-inline.h (tree_function_versioning): Update prototype.
5691
efd8f750
JH
56922008-08-29 Jan Hubicka <jh@suse.cz>
5693
02bb8bce
UB
5694 * loop-unswitch.c (unswitch_single_loop): Use
5695 optimize_loop_for_speed_p.
4ae8027b
UB
5696 * tree-ssa-threadupdate.c (mark_threaded_blocks):
5697 Use optimize_function_for_size_p.
efd8f750 5698 * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
4ae8027b
UB
5699 * postreload-gcse.c (eliminate_partially_redundant_load):
5700 Use optimize_bb_for_size_p.
efd8f750
JH
5701 * value-prof.c (gimple_divmod_fixed_value_transform,
5702 gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
5703 gimple_stringops_transform): Use optimize_bb_for_size_p.
5704 * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
5705 * final.c (compute_alignments): Use optimize_function_for_size_p.
5706 * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
5707 (fold_builtin_strcpy, fold_builtin_fputs): Use
5708 optimize_function_for_size_p.
02bb8bce
UB
5709 * fold-const.c (tree_swap_operands_p): Use
5710 optimize_function_for_size_p.
efd8f750 5711 * recog.c (relax_delay_slots): Likewise.
4ae8027b
UB
5712 * tree-ssa-math-opts.c (replace_reciprocal):
5713 Use optimize_bb_for_speed_p.
efd8f750
JH
5714 (execute_cse_reciprocals): Use optimize_bb_for_size_p.
5715 * ipa-inline.c (cgraph_decide_recursive_inlining): Use
5716 optimize_function_for_size_p.
5717 (cgraph_decide_inlining_of_small_function): Use
5718 optimize_function_for_size_p.
5719 * global.c (find_reg): Use optimize_function_for_size_p.
4ae8027b
UB
5720 * opts.c (decode_options): Do not clear flag_tree_ch,
5721 flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
5722 flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
5723 work it out from profile.
efd8f750
JH
5724 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
5725 optimize_loop_for_speed_p.
02bb8bce
UB
5726 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5727 Constify argument.
efd8f750
JH
5728 (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
5729 * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
02bb8bce
UB
5730 * tree-eh.c (decide_copy_try_finally): Use
5731 optimize_function_for_size_p.
efd8f750
JH
5732 * local-alloc.c (block_alloc): Pass BB pointer.
5733 (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
5734 * gcse.c (gcse_main): Use optimize_function_for_size_p.
4ae8027b
UB
5735 * loop-unroll.c (decide_unrolling_and_peeling):
5736 Use optimize_loop_for_size_p.
efd8f750
JH
5737 (decide_peel_completely): Likewise.
5738 * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
5739 optimize_loop_for_size_p.
5740 (vect_enhance_data_refs_alignment): Likewise.
5741 * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
4ae8027b
UB
5742 (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
5743 Update call.
efd8f750
JH
5744 * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
5745 (try_crossjump_bb): Use optimize_bb_for_size_p.
5746 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
5747 optimize_loop_for_speed_p.
5748 * bb-reorder.c (find_traces_1_round): Likewise.
5749 (copy_bb): Use optimize_bb_for_speed_p.
5750 (duplicate_computed_gotos): Likewise.
5751 * basic-block.h (optimize_loop_nest_for_size_p,
5752 optimize_loop_nest_for_speed_p): New.
5753 * stmt.c (expand_case): Use optimize_insn_for_size_p.
5754
e3536b82
TG
57552008-08-29 Tristan Gingold <gingold@adacore.com>
5756
5757 * gcov.c (main): Call expandargv.
5758
cc870036
JH
57592008-08-29 Jan Hubicka <jh@suse.cz>
5760
5761 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
5762 is not cold.
5763 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5764 Constify arguments.
5765 (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
5766 * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5767 Constify.
5768 (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
5769
7299cb99
JH
57702008-08-29 Jan Hubicka <jh@suse.cz>
5771
5772 * tree-pass.h (pass_strip_predict_hints): Declare.
5773 * predict.c (strip_builtin_expect): Rename to ...
5774 (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
5775 (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
5776 (tree_estimate_probability): Do not strip builtin_expect.
5777 (pass_strip_predict_hints): New pass.
4ae8027b
UB
5778 * tree-inline.c (expand_call_inline): When inlining cold function,
5779 predict it as unlikely.
7299cb99
JH
5780 * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
5781
a4b93060
RG
57822008-08-29 Richard Guenther <rguenther@suse.de>
5783
5784 PR tree-optimization/37207
5785 * tree-vrp.c (extract_range_from_binary_expr): Also try
5786 to constant fold if only one of the operands is a constant.
5787
a0491ba7
NC
57882008-08-29 Nick Clifton <nickc@redhat.com>
5789
5790 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
5791 the same way as SYMBOL_REFs.
5792
1d29a58d
BW
57932008-08-28 Bob Wilson <bob.wilson@acm.org>
5794
5795 * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
5796
95f6fc60
AN
57972008-08-28 Adam Nemet <anemet@caviumnetworks.com>
5798
5799 * config/mips/mips.h (ISA_HAS_BBIT): New macro.
5800 * config/mips/mips.md (branch_likely): Remove const. Fix
5801 comment formatting.
5802 (define_delay for type "branch"): Change to only apply for branch
5803 with likely variant.
5804 (define_delay for type "branch" and "branch_likely" no). New delay
5805 definition.
5806 (equality_op): New code iterator.
5807 (bbv, bbinv): New code attributes.
5808 (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
5809 patterns.
5810
528c22f4 58112008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8a88c276 5812 Andrew Pinski <pinskia@gcc.gnu.org>
528c22f4
MLI
5813
5814 PR 18050
5815 * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
5816
1cd8b853
PC
58172008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
5818
5819 * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
5820 rule that a symbolic constant must be defined and >= 0 for the
5821 corresponding facility to be present at compile-time.
5822 * gthr-posix.c: Likewise.
5823
d6d3e623
AN
58242008-08-28 Adam Nemet <anemet@caviumnetworks.com>
5825
5826 * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
5827 * config/mips/mips.md (D): New mode attribute.
5828 (mulsi3, muldi3): Merge it into ...
4ae8027b 5829 (mul<mode>3): ... new template. Use _mul3 ending for 3-op patterns.
d6d3e623
AN
5830 (muldi3_mul3): New pattern.
5831 (mulsi3_mult3): Rename to mulsi3_mul3.
5832
3debdc1e
JH
58332008-08-28 Jan Hubicka <jh@suse.cz>
5834
d6d3e623
AN
5835 * expmed.c (store_bit_field_1): Be prepared for movstrict expander
5836 to fail.
3debdc1e
JH
5837 * predict.c (always_optimize_for_size_p): Rename to ...
5838 (optimize_function_for_size): ... this one; make extern.
5839 (optimize_function_for_speed_p): New.
5840 (optimize_bb_for_size_p, optimize_bb_for_size_p,
5841 optimize_edge_for_size_p,optimize_edge_for_size_p,
5842 optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
5843 * basic-block.h (optimize_function_for_size_p,
5844 optimize_function_for_speed_p): Declare.
d6d3e623
AN
5845 * i386.md (optimize_size checks): Replace them by appropriate
5846 predicate.
3debdc1e
JH
5847 (standard_80387_constant_p, ix86_compute_frame_layout,
5848 ix86_expand_epilogue, ix86_decompose_address,
5849 print_operand, emit_i387_cw_initialization,
5850 inline_memory_move_cost, ix86_pad_returns,
5851 ix86_reorg): Replace optimize_size checks.
5852
eef302d2
RS
58532008-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5854
5855 * rtl.h (simplify_subreg_regno): Declare.
5856 * rtlanal.c (simplify_subreg_regno): New function, split out from...
5857 * simplify-rtx.c (simplify_subreg): ...here.
5858 * reload.c (find_reloads): Use simplify_subreg_regno instead of
5859 subreg_offset_representable_p.
5860
1e053dfe
MLI
58612008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5862
5863 PR c/30949
5864 * c-typeck.c (convert_for_assignment): Give a note describing what
5865 was passed and what was expected.
5866
31cb596a
JY
58672008-08-28 Joey Ye <joey.ye@intel.com>
5868
5869 * doc/extend.texi: Document AVX built-in functions.
5870 * doc/invoke.texi: Document -mavx.
5871
95879c72
L
58722008-08-28 H.J. Lu <hongjiu.lu@intel.com>
5873 Joey Ye <joey.ye@intel.com>
5874 Xuepeng Guo <xuepeng.guo@intel.com>
5875
5876 * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
5877
5878 * config/i386/cpuid.h (bit_FMA): New.
5879 (bit_XSAVE): Likewise.
5880 (bit_OSXSAVE): Likewise.
5881 (bit_AVX): Likewise.
5882
5883 * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
5884 define. Use ASM_OUTPUT_AVX_PREFIX.
5885
5886 * config/i386/gmmintrin.h: New.
5887
5888 * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
5889 (OPTION_MASK_ISA_AVX_SET): New.
5890 (OPTION_MASK_ISA_FMA_SET): Likewise.
5891 (OPTION_MASK_ISA_AVX_UNSET): Likewise.
5892 (OPTION_MASK_ISA_FMA_SET): Likewise.
5893 (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
5894 (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
5895 (pta_flags): Add PTA_AVX and PTA_FMA.
5896 (override_options): Handle PTA_AVX and PTA_FMA.
5897 (init_cumulative_args): Handle warn_avx.
5898 (classify_argument): Return 0 for COImode and OImode. Return
5899 1 and X86_64_AVX_CLASS for 256bit vector types.
5900 (examine_argument): Handle X86_64_AVX_CLASS.
5901 (construct_container): Likewise.
5902 (function_arg_advance_32): Pass OImode and 256bit vector types
5903 in AVX register.
5904 (function_arg_advance_64): Take a new argument to indicate if a
5905 parameter is named. Handle 256bit vector types. Return
5906 immediately for unnamed 256bit vector mode parameters.
5907 (function_arg_advance): Updated.
5908 (function_arg_32): Add comments for TImode. Handle OImode
5909 and 256bit vector types.
5910 (function_arg_64): Take a new argument to indicate if a
5911 parameter is named. Handle 256bit vector types. Return NULL
5912 for unnamed 256bit vector mode parameters.
5913 (function_arg): Updated.
5914 (setup_incoming_varargs_64): Support
5915 AVX encoding for *sse_prologue_save_insn.
5916 (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
5917 (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
5918 enabled. For all 1s in 256bit vector modes, return 3 if AVX is
5919 enabled, otherwise return -3.
5920 (standard_sse_constant_opcode): Handle AVX and 256bit vector
5921 modes.
5922 (print_reg): Support AVX registers. Handle 'x' and 't'.
5923 Handle 'd' to duplicate the operand.
5924 (print_operand): Likewise. Also support AVX vector compare
5925 instructions.
5926 (output_387_binary_op): Support AVX.
5927 (output_fp_compare): Likewise.
5928 (ix86_expand_vector_move_misalign): Likewise.
5929 (ix86_attr_length_vex_default): New.
5930 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
5931 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
5932 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
5933 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
5934 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
5935 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
5936 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
5937 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
5938 IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
5939 IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
5940 IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
5941 IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
5942 IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
5943 IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
5944 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
5945 IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
5946 IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
5947 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
5948 IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
5949 IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
5950 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
5951 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
5952 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
5953 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
5954 IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
5955 IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
5956 IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
5957 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
5958 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
5959 IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
5960 IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
5961 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
5962 IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
5963 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
5964 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
5965 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
5966 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
5967 IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
5968 IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
5969 IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
5970 IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
5971 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
5972 IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
5973 IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
5974 IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
5975 IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
5976 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
5977 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
5978 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
5979 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
5980 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
5981 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
5982 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
5983 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
5984 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
5985 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
5986 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
5987 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
5988 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
5989 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
5990 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
5991 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
5992 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
5993 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
5994 and IX86_BUILTIN_MOVMSKPS256,
5995 (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
5996 V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
5997 V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
5998 V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
5999 V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
6000 VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
6001 VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
6002 VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
6003 (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
6004 INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
6005 INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
6006 INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
6007 V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
6008 V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
6009 V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
6010 V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
6011 V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
6012 V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
6013 V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
6014 V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
6015 V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
6016 V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
6017 V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
6018 V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
6019 V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
6020 V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
6021 (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
6022 IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
6023 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
6024 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
6025 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
6026 IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
6027 IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
6028 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
6029 IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
6030 IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
6031 IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
6032 IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
6033 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
6034 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
6035 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
6036 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
6037 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
6038 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
6039 IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
6040 IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
6041 IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
6042 IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
6043 IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
6044 IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
6045 IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
6046 IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
6047 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
6048 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
6049 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
6050 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
6051 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
6052 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
6053 IX86_BUILTIN_CMPPS,
6054 IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
6055 IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
6056 IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
6057 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
6058 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
6059 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
6060 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
6061 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
6062 IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
6063 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
6064 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
6065 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
6066 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
6067 IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
6068 IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
6069 IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
6070 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
6071 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
6072 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
6073 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
6074 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
6075 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
6076 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
6077 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
6078 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
6079 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
6080 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
6081 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
6082 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
6083 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
6084 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
6085 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
6086 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
6087 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
6088 IX86_BUILTIN_MOVMSKPS256.
6089 (ix86_init_mmx_sse_builtins): Support AVX builtins.
6090 (ix86_expand_args_builtin): Likewise.
6091 (ix86_expand_special_args_builtin): Likewise.
6092 (ix86_hard_regno_mode_ok): Handle AVX modes.
6093 (ix86_expand_vector_init_duplicate): Likewise.
6094 (ix86_expand_vector_init_one_nonzero): Likewise.
6095 (ix86_expand_vector_init_one_var): Likewise.
6096 (ix86_expand_vector_init_concat): Likewise.
6097 (ix86_expand_vector_init_general): Likewise.
6098 (ix86_expand_vector_set): Likewise.
6099 (ix86_vector_mode_supported_p): Likewise.
6100 (x86_extended_reg_mentioned_p): Check INSN_P before using
6101 PATTERN.
6102
6103 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6104 OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
6105
6106 * config/i386/i386.h (TARGET_AVX): New.
6107 (TARGET_FMA): Likewise.
6108 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
6109 (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
6110 (VALID_AVX256_REG_MODE): New.
6111 (AVX256_VEC_FLOAT_MODE_P): Likewise.
6112 (AVX_FLOAT_MODE_P): Likewise.
6113 (AVX128_VEC_FLOAT_MODE_P): Likewise.
6114 (AVX256_VEC_FLOAT_MODE_P): Likewise.
6115 (AVX_VEC_FLOAT_MODE_P): Likewise.
6116 (ASM_OUTPUT_AVX_PREFIX): Likewise.
6117 (ASM_OUTPUT_OPCODE): Likewise.
6118 (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
6119 support.
6120 (SSE_REG_MODE_P): Allow 256bit vector modes.
6121 (ix86_args): Add a warn_avx field.
6122
6123 * config/i386/i386.md (UNSPEC_PCMP): New.
6124 (UNSPEC_VPERMIL): Likewise.
6125 (UNSPEC_VPERMIL2): Likewise.
6126 (UNSPEC_VPERMIL2F128): Likewise.
6127 (UNSPEC_MASKLOAD): Likewise.
6128 (UNSPEC_MASKSTORE): Likewise.
6129 (UNSPEC_CAST): Likewise.
6130 (UNSPEC_VTESTP): Likewise.
6131 (UNSPECV_VZEROALL): Likewise.
6132 (UNSPECV_VZEROUPPER): Likewise.
6133 (XMM0_REG): Likewise.
6134 (XMM1_REG): Likewise.
6135 (XMM2_REG): Likewise.
6136 (XMM3_REG): Likewise.
6137 (XMM4_REG): Likewise.
6138 (XMM5_REG): Likewise.
6139 (XMM6_REG): Likewise.
6140 (XMM8_REG): Likewise.
6141 (XMM9_REG): Likewise.
6142 (XMM10_REG): Likewise.
6143 (XMM11_REG): Likewise.
6144 (XMM12_REG): Likewise.
6145 (XMM13_REG): Likewise.
6146 (XMM14_REG): Likewise.
6147 (XMM15_REG): Likewise.
6148 (prefix): Likewise.
6149 (prefix_vex_imm8): Likewise.
6150 (prefix_vex_w): Likewise.
6151 (length_vex): Likewise.
6152 (maxmin): Likewise.
6153 (movoi): Likewise.
6154 (*avx_ashlti3): Likewise.
6155 (*avx_lshrti3): Likewise.
6156 (*avx_setcc<mode>): Likewise.
6157 (*fop_<mode>_comm_mixed_avx): Likewise.
6158 (*fop_<mode>_comm_avx): Likewise.
6159 (*fop_<mode>_1_mixed_avx): Likewise.
6160 (*fop_<mode>_1_avx): Likewise.
6161 (*avx_<code><mode>3): Likewise.
6162 (*avx_ieee_smin<mode>3): Likewise.
6163 (*avx_ieee_smax<mode>3): Likewise.
6164 (mode): Add OI, V8SF and V4DF.
6165 (length): Support VEX prefix.
6166 (*cmpfp_i_mixed): Set prefix attribute.
6167 (*cmpfp_i_sse): Likewise.
6168 (*cmpfp_iu_mixed): Likewise.
6169 (*cmpfp_iu_sse): Likewise.
6170 (*movsi_1): Support AVX.
6171 (*movdi_2): Likewise.
6172 (*movdi_1_rex64): Likewise.
6173 (*movti_internal): Likewise.
6174 (*movti_rex64): Likewise.
6175 (*movsf_1): Likewise.
6176 (*movdf_nointeger): Likewise.
6177 (*movdf_integer_rex64): Likewise.
6178 (*movtf_internal): Likewise.
6179 (zero_extendsidi2_32): Likewise.
6180 (zero_extendsidi2_rex64): Likewise.
6181 (*extendsfdf2_mixed): Likewise.
6182 (*extendsfdf2_sse): Likewise.
6183 (*truncdfsf_fast_mixed): Likewise.
6184 (*truncdfsf_fast_sse): Likewise.
6185 (*truncdfsf_mixed): Likewise.
6186 (fix_trunc<mode>di_sse): Likewise.
6187 (fix_trunc<mode>si_sse): Likewise.
6188 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6189 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6190 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6191 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6192 (*rcpsf2_sse): Likewise.
6193 (*rsqrtsf2_sse): Likewise.
6194 (*sqrt<mode>2_sse): Likewise.
6195 (sse4_1_round<mode>2): Likewise.
6196 (*sse_prologue_save_insn): Disallow REX prefix for AVX.
6197 Support AVX. Set length attribute properly for AVX.
6198
6199 * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
6200 (VECTOR_MODES (FLOAT, 32)): Likewise.
6201 (VECTOR_MODE (INT, DI, 8)): Likewise.
6202 (VECTOR_MODE (INT, HI, 32)): Likewise.
6203 (VECTOR_MODE (INT, QI, 64)): Likewise.
6204 (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
6205 (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
6206 (VECTOR_MODE (INT, DI, 4)): Removed.
6207 (VECTOR_MODE (INT, SI, 8)): Likewise.
6208 (VECTOR_MODE (INT, HI, 16)): Likewise.
6209 (VECTOR_MODE (INT, QI, 32)): Likewise.
6210 (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
6211 (INT_MODE (OI, 32)): Likewise.
6212
6213 * config/i386/i386.opt (mavx): New.
6214 (mfma): Likewise.
6215
6216 * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
6217
6218 * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
6219 (*mov<mode>_internal_avx): New.
6220 (*movv2sf_internal_rex64_avx): Likewise.
6221 (*movv2sf_internal_avx): Likewise.
6222
6223 * config/i386/predicates.md (const_4_to_5_operand): New.
6224 (const_6_to_7_operand): Likewise.
6225 (const_8_to_11_operand): Likewise.
6226 (const_12_to_15_operand): Likewise.
6227 (avx_comparison_float_operator): Likewise.
6228
6229 * config/i386/sse.md (AVX256MODEI): New.
6230 (AVX256MODE): Likewise.
6231 (AVXMODEQI): Likewise.
6232 (AVXMODE): Likewise.
6233 (AVX256MODEF2P): Likewise.
6234 (AVX256MODE2P): Likewise.
6235 (AVX256MODE4P): Likewise.
6236 (AVX256MODE8P): Likewise.
6237 (AVXMODEF2P): Likewise.
6238 (AVXMODEF4P): Likewise.
6239 (AVXMODEDCVTDQ2PS): Likewise.
6240 (AVXMODEDCVTPS2DQ): Likewise.
6241 (avxvecmode): Likewise.
6242 (avxvecpsmode): Likewise.
6243 (avxhalfvecmode): Likewise.
6244 (avxscalarmode): Likewise.
6245 (avxcvtvecmode): Likewise.
6246 (avxpermvecmode): Likewise.
6247 (avxmodesuffixf2c): Likewise.
6248 (avxmodesuffixp): Likewise.
6249 (avxmodesuffixs): Likewise.
6250 (avxmodesuffix): Likewise.
6251 (vpermilbits): Likewise.
6252 (pinsrbits): Likewise.
6253 (mov<mode>): Likewise.
6254 (*mov<mode>_internal): Likewise.
6255 (push<mode>1): Likewise.
6256 (movmisalign<mode>): Likewise.
6257 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6258 (avx_movdqu<avxmodesuffix>): Likewise.
6259 (avx_lddqu<avxmodesuffix>): Likewise.
6260 (<plusminus_insn><mode>3): Likewise.
6261 (*avx_<plusminus_insn><mode>3): Likewise.
6262 (*avx_vm<plusminus_insn><mode>3): Likewise.
6263 (mul<mode>3): Likewise.
6264 (*avx_mul<mode>3): Likewise.
6265 (*avx_vmmul<mode>3): Likewise.
6266 (divv8sf3): Likewise.
6267 (divv4df3): Likewise.
6268 (avx_div<mode>3): Likewise.
6269 (*avx_div<mode>3): Likewise.
6270 (*avx_vmdiv<mode>3): Likewise.
6271 (avx_rcpv8sf2): Likewise.
6272 (*avx_vmrcpv4sf2): Likewise.
6273 (sqrtv8sf2): Likewise.
6274 (avx_sqrtv8sf2): Likewise.
6275 (*avx_vmsqrt<mode>2): Likewise.
6276 (rsqrtv8sf2): Likewise.
6277 (avx_rsqrtv8sf2): Likewise.
6278 (*avx_vmrsqrtv4sf2): Likewise.
6279 (<code><mode>3): Likewise.
6280 (*avx_<code><mode>3_finite): Likewise.
6281 (*avx_<code><mode>3): Likewise.
6282 (*avx_vm<code><mode>3): Likewise.
6283 (*avx_ieee_smin<mode>3): Likewise.
6284 (*avx_ieee_smax<mode>3): Likewise.
6285 (avx_addsubv8sf3): Likewise.
6286 (avx_addsubv4df3): Likewise.
6287 (*avx_addsubv4sf3): Likewise.
6288 (*avx_addsubv2df3): Likewise.
6289 (avx_h<plusminus_insn>v4df3): Likewise.
6290 (avx_h<plusminus_insn>v8sf3): Likewise.
6291 (*avx_h<plusminus_insn>v4sf3): Likewise.
6292 (*avx_h<plusminus_insn>v2df3): Likewise.
6293 (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
6294 (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
6295 (*avx_maskcmp<mode>3): Likewise.
6296 (avx_nand<mode>3): Likewise.
6297 (*avx_<code><mode>3): Likewise.
6298 (*avx_nand<mode>3): Likewise.
6299 (*avx_<code><mode>3): Likewise.
6300 (*avx_cvtsi2ss): Likewise.
6301 (*avx_cvtsi2ssq): Likewise.
6302 (*avx_cvtsi2sd): Likewise.
6303 (*avx_cvtsi2sdq): Likewise.
6304 (*avx_cvtsd2ss): Likewise.
6305 (avx_cvtss2sd): Likewise.
6306 (avx_cvtdq2ps<avxmodesuffix>): Likewise.
6307 (avx_cvtps2dq<avxmodesuffix>): Likewise.
6308 (avx_cvttps2dq<avxmodesuffix>): Likewise.
6309 (*avx_cvtsi2sd): Likewise.
6310 (*avx_cvtsi2sdq): Likewise.
6311 (avx_cvtdq2pd256): Likewise.
6312 (avx_cvtpd2dq256): Likewise.
6313 (avx_cvttpd2dq256): Likewise.
6314 (*avx_cvtsd2ss): Likewise.
6315 (*avx_cvtss2sd): Likewise.
6316 (avx_cvtpd2ps256): Likewise.
6317 (avx_cvtps2pd256): Likewise.
6318 (*avx_movhlps): Likewise.
6319 (*avx_movlhps): Likewise.
6320 (avx_unpckhps256): Likewise.
6321 (*avx_unpckhps): Likewise.
6322 (avx_unpcklps256): Likewise.
6323 (*avx_unpcklps): Likewise.
6324 (avx_movshdup256): Likewise.
6325 (avx_movsldup256): Likewise.
6326 (avx_shufps256): Likewise.
6327 (avx_shufps256_1): Likewise.
6328 (*avx_shufps_<mode>): Likewise.
6329 (*avx_loadhps): Likewise.
6330 (*avx_storelps): Likewise.
6331 (*avx_loadlps): Likewise.
6332 (*avx_movss): Likewise.
6333 (*vec_dupv4sf_avx): Likewise.
6334 (*vec_concatv2sf_avx): Likewise.
6335 (*vec_concatv4sf_avx): Likewise.
6336 (*vec_setv4sf_0_avx): Likewise.
6337 (*vec_setv4sf_avx): Likewise.
6338 (*avx_insertps): Likewise.
6339 (avx_vextractf128<mode>): Likewise.
6340 (vec_extract_lo_<mode>): Likewise.
6341 (vec_extract_hi_<mode>): Likewise.
6342 (vec_extract_lo_<mode>): Likewise.
6343 (vec_extract_hi_<mode>): Likewise.
6344 (vec_extract_lo_v16hi): Likewise.
6345 (vec_extract_hi_v16hi): Likewise.
6346 (vec_extract_lo_v32qi): Likewise.
6347 (vec_extract_hi_v32qi): Likewise.
6348 (avx_unpckhpd256): Likewise.
6349 (*avx_unpckhpd): Likewise.
6350 (avx_movddup256): Likewise.
6351 (*avx_movddup): Likewise.
6352 (avx_unpcklpd256): Likewise.
6353 (*avx_unpcklpd): Likewise.
6354 (avx_shufpd256): Likewise.
6355 (avx_shufpd256_1): Likewise.
6356 (*avx_punpckhqdq): Likewise.
6357 (*avx_punpcklqdq): Likewise.
6358 (*avx_shufpd_<mode>): Likewise.
6359 (*avx_storehpd): Likewise.
6360 (*avx_loadhpd): Likewise.
6361 (*avx_loadlpd): Likewise.
6362 (*avx_movsd): Likewise.
6363 (*vec_concatv2df_avx): Likewise.
6364 (*avx_<plusminus_insn><mode>3): Likewise.
6365 (*avx_<plusminus_insn><mode>3): Likewise.
6366 (*avx_mulv8hi3): Likewise.
6367 (*avxv8hi3_highpart): Likewise.
6368 (*avx_umulv8hi3_highpart): Likewise.
6369 (*avx_umulv2siv2di3): Likewise.
6370 (*avx_mulv2siv2di3): Likewise.
6371 (*avx_pmaddwd): Likewise.
6372 (*avx_mulv4si3): Likewise.
6373 (*avx_ashr<mode>3): Likewise.
6374 (*avx_lshr<mode>3): Likewise.
6375 (*avx_ashl<mode>3): Likewise.
6376 (*avx_<code><mode>3): Likewise.
6377 (*avx_eq<mode>3): Likewise.
6378 (*avx_gt<mode>3): Likewise.
6379 (*avx_nand<mode>3): Likewise.
6380 (*avx_nand<mode>3): Likewise.
6381 (*avx_<code><mode>3): Likewise.
6382 (*avx_<code><mode>3): Likewise.
6383 (*avx_packsswb): Likewise.
6384 (*avx_packssdw): Likewise.
6385 (*avx_packuswb): Likewise.
6386 (*avx_punpckhbw): Likewise.
6387 (*avx_punpcklbw): Likewise.
6388 (*avx_punpckhwd): Likewise.
6389 (*avx_punpcklwd): Likewise.
6390 (*avx_punpckhdq): Likewise.
6391 (*avx_punpckldq): Likewise.
6392 (*avx_pinsr<avxmodesuffixs>): Likewise.
6393 (*avx_pinsrq): Likewise.
6394 (*avx_loadld): Likewise.
6395 (*vec_extractv2di_1_rex64_avx): Likewise.
6396 (*vec_extractv2di_1_avx): Likewise.
6397 (*vec_dupv2di_avx): Likewise.
6398 (*vec_concatv2si_avx): Likewise.
6399 (*vec_concatv4si_1_avx): Likewise.
6400 (*vec_concatv2di_avx): Likewise.
6401 (*vec_concatv2di_rex64_avx): Likewise.
6402 (*avx_uavgv16qi3): Likewise.
6403 (*avx_uavgv8hi3): Likewise.
6404 (*avx_psadbw): Likewise.
6405 (avx_movmskp<avxmodesuffixf2c>256): Likewise.
6406 (*avx_phaddwv8hi3): Likewise.
6407 (*avx_phadddv4si3): Likewise.
6408 (*avx_phaddswv8hi3): Likewise.
6409 (*avx_phsubwv8hi3): Likewise.
6410 (*avx_phsubdv4si3): Likewise.
6411 (*avx_phsubswv8hi3): Likewise.
6412 (*avx_pmaddubsw128): Likewise.
6413 (*avx_pmulhrswv8hi3): Likewise.
6414 (*avx_pshufbv16qi3): Likewise.
6415 (*avx_psign<mode>3): Likewise.
6416 (*avx_palignrti): Likewise.
6417 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6418 (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6419 (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6420 (*avx_mpsadbw): Likewise.
6421 (*avx_packusdw): Likewise.
6422 (*avx_pblendvb): Likewise.
6423 (*avx_pblendw): Likewise.
6424 (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6425 (avx_ptest256): Likewise.
6426 (avx_roundp<avxmodesuffixf2c>256): Likewise.
6427 (*avx_rounds<ssemodesuffixf2c>): Likewise.
6428 (*avx_aesenc): Likewise.
6429 (*avx_aesenclast): Likewise.
6430 (*avx_aesdec): Likewise.
6431 (*avx_aesdeclast): Likewise.
6432 (avx_vzeroupper): Likewise.
6433 (avx_vzeroupper_rex64): Likewise.
6434 (avx_vpermil<mode>): Likewise.
6435 (avx_vpermilvar<mode>3): Likewise.
6436 (avx_vpermil2<mode>3): Likewise.
6437 (avx_vperm2f128<mode>3): Likewise.
6438 (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6439 (avx_vbroadcastss256): Likewise.
6440 (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
6441 (avx_vinsertf128<mode>): Likewise.
6442 (vec_set_lo_<mode>): Likewise.
6443 (vec_set_hi_<mode>): Likewise.
6444 (vec_set_lo_<mode>): Likewise.
6445 (vec_set_hi_<mode>): Likewise.
6446 (vec_set_lo_v16hi): Likewise.
6447 (vec_set_hi_v16hi): Likewise.
6448 (vec_set_lo_v32qi): Likewise.
6449 (vec_set_hi_v32qi): Likewise.
6450 (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6451 (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6452 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
6453 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
6454 (vec_init<mode>): Likewise.
6455 (*vec_concat<mode>_avx): Likewise.
6456 (blendbits): Support V8SF and V4DF.
6457 (sse2_movq128): Support AVX.
6458 (<sse>_movnt<mode>): Likewise.
6459 (sse2_movntv2di): Likewise.
6460 (sse_rcpv4sf2): Likewise.
6461 (sse_sqrtv4sf2): Likewise.
6462 (sse_rsqrtv4sf2): Likewise.
6463 (<sse>_comi): Likewise.
6464 (<sse>_ucomi): Likewise.
6465 (sse_cvtss2si): Likewise.
6466 (sse_cvtss2si_2): Likewise.
6467 (sse_cvtss2siq): Likewise.
6468 (sse_cvtss2siq_2): Likewise.
6469 (sse_cvttss2si): Likewise.
6470 (sse_cvttss2siq): Likewise.
6471 (sse2_cvtsd2si): Likewise.
6472 (sse2_cvtsd2si_2): Likewise.
6473 (sse2_cvtsd2siq): Likewise.
6474 (sse2_cvtsd2siq_2): Likewise.
6475 (sse2_cvttsd2si): Likewise.
6476 (sse2_cvttsd2siq): Likewise.
6477 (sse2_cvtdq2pd): Likewise.
6478 (*sse2_cvtpd2dq): Likewise.
6479 (*sse2_cvttpd2dq): Likewise.
6480 (*sse2_cvtpd2ps): Likewise.
6481 (sse2_cvtps2pd): Likewise.
6482 (sse3_movshdup): Likewise.
6483 (sse3_movsldup): Likewise.
6484 (sse_storehps): Likewise.
6485 (*sse4_1_extractps): Likewise.
6486 (sse2_storelpd): Likewise.
6487 (vec_dupv2df_sse3): Likewise.
6488 (*vec_concatv2df_sse3): Likewise.
6489 (*sse4_1_pextrb): Likewise.
6490 (*sse4_1_pextrb_memory): Likewise.
6491 (*sse2_pextrw): Likewise.
6492 (*sse4_1_pextrw_memory): Likewise.
6493 (*sse4_1_pextrd): Likewise.
6494 (*sse4_1_pextrq): Likewise.
6495 (sse2_pshufd_1): Likewise.
6496 (sse2_pshuflw_1): Likewise.
6497 (sse2_pshufhw_1): Likewise.
6498 (*sse2_storeq_rex64): Likewise.
6499 (*vec_dupv4si): Likewise.
6500 (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
6501 (sse2_pmovmskb): Likewise.
6502 (*sse2_maskmovdqu): Likewise.
6503 (*sse2_maskmovdqu_rex64): Likewise.
6504 (sse_ldmxcsr): Likewise.
6505 (sse_stmxcsr): Likewise.
6506 (abs<mode>2): Likewise.
6507 (sse4_1_movntdqa): Likewise.
6508 (sse4_1_phminposuw): Likewise.
6509 (sse4_1_extendv8qiv8hi2): Likewise.
6510 (*sse4_1_extendv8qiv8hi2): Likewise.
6511 (sse4_1_extendv4qiv4si2): Likewise.
6512 (*sse4_1_extendv4qiv4si2): Likewise.
6513 (sse4_1_extendv2qiv2di2): Likewise.
6514 (*sse4_1_extendv2qiv2di2): Likewise.
6515 (sse4_1_extendv4hiv4si2): Likewise.
6516 (*sse4_1_extendv4hiv4si2): Likewise.
6517 (sse4_1_extendv2hiv2di2): Likewise.
6518 (*sse4_1_extendv2hiv2di2): Likewise.
6519 (sse4_1_extendv2siv2di2): Likewise.
6520 (*sse4_1_extendv2siv2di2): Likewise.
6521 (sse4_1_zero_extendv8qiv8hi2): Likewise.
6522 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
6523 (sse4_1_zero_extendv4qiv4si2): Likewise.
6524 (*sse4_1_zero_extendv4qiv4si2): Likewise.
6525 (sse4_1_zero_extendv2qiv2di2): Likewise.
6526 (*sse4_1_zero_extendv2qiv2di2): Likewise.
6527 (sse4_1_zero_extendv4hiv4si2): Likewise.
6528 (*sse4_1_zero_extendv4hiv4si2): Likewise.
6529 (sse4_1_zero_extendv2hiv2di2): Likewise.
6530 (*sse4_1_zero_extendv2hiv2di2): Likewise.
6531 (sse4_1_zero_extendv2siv2di2): Likewise.
6532 (*sse4_1_zero_extendv2siv2di2): Likewise.
6533 (sse4_1_ptest): Likewise.
6534 (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
6535 (sse4_2_pcmpestri): Likewise.
6536 (sse4_2_pcmpestrm): Likewise.
6537 (sse4_2_pcmpistri): Likewise.
6538 (sse4_2_pcmpistrm): Likewise.
6539 (aesimc): Likewise.
6540 (aeskeygenassist): Likewise.
6541
65422008-08-28 Uros Bizjak <ubizjak@gmail.com>
6543
6544 * config/i386/predicates.md (vzeroall_operation): New.
6545
6546 * config/i386/sse.md (avx_vzeroall): New.
6547 (*avx_vzeroall): Likewise.
6548
f67358da 65492008-08-28 Paul Brook <paul@codesourcery.com>
95879c72
L
6550 Mark Shinwell <shinwell@codesourcery.com>
6551 Richard Earnshaw <richard.earnshaw@arm.com>
f67358da
PB
6552
6553 * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
6554 (TARGET_MIN_ANCHOR_OFFSET): New.
6555 (arm_override_options): Set correct anchor ranges for Thumb-1
6556 and Thumb-2 if required.
6557 (legitimize_pic_address): Handle case involving a TLS symbol
6558 reference with an addend.
6559 (arm_optimization_options): Enable section anchors at -O1 and
6560 above.
6561 * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
6562 * config/arm/arm-protos.h (arm_optimization_options): New.
6563
728a0142
NC
65642008-08-28 Nick Clifton <nickc@redhat.com>
6565
cf7442bb
NC
6566 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
6567 * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
6568 attribute.
6569
724df8d2 6570 * config/v850/v850.h (IRA_COVER_CLASSES): Define.
8a88c276 6571 * config/v850/v850.md (return): Remove frame size restriction.
724df8d2 6572
d43b42f9
NC
6573 * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
6574
888142a6
NC
6575 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
6576
b34126ed
NC
6577 * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
6578
728a0142
NC
6579 * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
6580
874101ec
PB
65812008-08-28 Paul Brook <paul@codesourcery.com>
6582
6583 * config/arm/vfp11.md: Update license notice.
6584 * config/arm/cortex-r4.md: Ditto.
6585
99781d25
RG
65862008-08-28 Richard Guenther <rguenther@suse.de>
6587
6588 PR tree-optimization/37207
6589 * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
6590 tuplification bug.
6591
5bdc1946
DS
65922008-08-28 Dodji Seketeli <dodji@redhat.com>
6593
6594 PR c++/36741
6595 * tree.c (int_fits_type_p): Don't forget unsigned integers
6596 of type sizetype which higher end word equals -1.
6597
0fca40f5
IR
65982008-08-28 Ira Rosen <irar@il.ibm.com>
6599
6600 * target.h (struct vectorize): Add new target builtin.
8a88c276 6601 * tree-vectorizer.c (destroy_loop_vec_info): Call
0fca40f5
IR
6602 vect_free_slp_instance instead of vect_free_slp_node.
6603 * tree-vectorizer.h (enum slp_load_perm_type): New.
6604 (struct _slp_instance): Add new fields.
6605 (SLP_INSTANCE_LOAD_PERMUTATION): New.
6606 (SLP_INSTANCE_LOADS): New.
6607 (vect_free_slp_tree): Remove.
8a88c276 6608 (vect_free_slp_instance): Declare.
0fca40f5
IR
6609 (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
6610 (vectorizable_load): Add argument.
6611 (vect_transform_slp_perm_load): New.
8a88c276 6612 * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
0fca40f5
IR
6613 vectorizable_load.
6614 (vect_get_place_in_interleaving_chain): New function.
6615 (vect_free_slp_tree): Make static.
6616 (vect_free_slp_instance): New function.
8a88c276 6617 (vect_build_slp_tree): Add new arguments. Allow load permutations and
0fca40f5
IR
6618 collect the load location in the interleaving chain.
6619 (vect_supported_slp_permutation_p): New function.
6620 (vect_supported_load_permutation_p): Likewise.
6621 (vect_analyze_slp_instance): In case of loads permutation, call
8a88c276 6622 vect_supported_load_permutation_p to check that the permutation is
0fca40f5
IR
6623 supported.
6624 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
6625 * tree-vect-transform.c (vect_transform_stmt): Add new argument.
6626 (vect_create_mask_and_perm): New function.
6627 (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
8a88c276
AS
6628 (vectorizable_load): Add an argument. Don't keep the created vectors
6629 statements in the node if permutation is required. Call
0fca40f5 6630 vect_transform_slp_perm_load to generate the permutation.
8a88c276 6631 (vect_transform_stmt): Add new argument. Call vectorizable_load with
0fca40f5 6632 additional argument.
8a88c276
AS
6633 (vect_schedule_slp_instance): In case of loads permutation, allocate
6634 vectorized statements structure for all the related SLP nodes. Call
0fca40f5 6635 vect_transform_stmt with addditional argument.
8a88c276
AS
6636 (vect_transform_loop): Call vect_transform_stmt with correct arguments.
6637 * config/spu/spu.c (spu_builtin_vec_perm): New.
0fca40f5
IR
6638 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
6639 * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
6640 * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
6641 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
6642
a75150ae
CF
66432008-08-28 Chris Fairles <chris.fairles@gmail.com>
6644
95879c72 6645 * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach,
a75150ae
CF
6646 __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
6647 __gthread_cond_signal, __gthread_cond_timedwait,
6648 __gthread_cond_timedwait_recursive): New functions.
6649 * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
6650 Likewise.
6651 * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
6652 thread interfaces.
6653
0b45fd7a
RG
66542008-08-28 Richard Guenther <rguenther@suse.de>
6655
6656 PR middle-end/37005
6657 * fold-const.c (maybe_canonicalize_comparison_1): Require
6658 undefined overflow only for canonicalizing A +- CST cmp CST.
6659 Make sure to not generate new constants that are not inside
6660 their TYPE_MIN/MAX_VALUE range.
6661 (maybe_canonicalize_comparison): Remove undefined overflow
6662 checking from here.
6663 (fold_binary): Remove now duplicate folding.
6664
fd990e64
PC
66652008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
6666
6667 * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
6668 use not updated in the last change.
6669
d4d46566
KK
66702008-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
6671
6672 * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
6673 (IRA_COVER_CLASSES): Add FPUL_REGS.
6674
1bfb8f51
MLI
66752008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6676
6677 PR 37217
843724f7 6678 * c-common.c (conversion_warning): Check for null operands.
1bfb8f51 6679
e9527cfd
MLI
66802008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6681
6682 PR c/31673
6683 * c-decl.c (check_for_loop_decls): Improve error message. Give
6684 hint.
6685
4ccd12e5
MLI
66862008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6687
6688 PR c/37186
6689 * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
6690 (convert_for_assignment): Pass corrent OPT_W* parameter to
6691 WARN_FOR_ASSIGNMENT.
6692
8d5f60ac
PC
66932008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
6694
6695 PR c++/35321
6696 * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
6697
a8221440
PB
66982008-08-27 Paul Brook <paul@codesourcery.com>
6699
6700 * config.gcc: Loosen checks for arm uclinux eabi targets.
6701
f5d09f36
PB
67022008-08-27 Paul Brook <paul@codesourcery.com>
6703
6704 * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
6705 _clzsi2.
6706 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
6707
7cf1a11c
DG
67082008-08-26 Douglas Gregor <doug.gregor@gmail.com>
6709
6710 * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
6711 the enumerators of an ENUMERAL_TYPE.
6712 * dbxout.c (dbxout_type): Ditto.
6713
24713e85
AP
67142008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
6715
6716 PR rtl-opt/37219
6717 * fwprop.c (fwprop): Check that the loop_father is the outer loop.
6718 (fwprop_addr): Check that the loop_father is not the outer loop.
6719
67202008-08-26 Paul Brook <paul@codesourcery.com>
a8e17e9e
PB
6721
6722 * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
6723 Remove documentation entry for fmul type.
6724 Use fmuls to annotate single-precision multiplication patterns,
6725 fmuld to annotate double-precision multiplication patterns,
6726 fmacs to annotate single-precision multiply-accumulate patterns
6727 and fmacd to annotate double-precision multiply-accumulate patterns.
6728 * config/arm/vfp11.md: Update reservations accordingly.
6729 * config/arm/arm.md: Note that certain values of the "type"
6730 attribute are documented in vfp.md.
6731 * config/arm/arm1020e.md: Remove out of date duplicate comment.
6732 (v10_cvt): Use new fmul types.
6733
4ae8027b 67342008-08-26 Paul Brook <paul@codesourcery.com>
f08d75a9
PB
6735
6736 * config/arm/vfp.md: Move pipeline description for VFP11 to...
6737 * config/arm/vfp11.md: ...here. New.
6738 * config/arm/arm.md: Include vfp11.md.
6739
69abac81
HPN
67402008-08-26 Hans-Peter Nilsson <hp@axis.com>
6741
6742 * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
6743 parameter to inform call.
6744
5d2b84f8
JL
67452008-08-26 Jeff Law <law@redhat.com>
6746
6747 * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
6748 avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
6749 preferred class when copying a constant into a partial word register.
6750
4e9b57fa
BE
67512008-08-26 Ben Elliston <bje@au.ibm.com>
6752
6753 * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
6754 * cp/typeck.c: Likewise.
6755 * cp/tree.c: Likewise.
6756 * gimple-low.c: Likewise.
6757 * jump.c: Likewise.
6758
058e97ec
VM
67592008-08-26 Vladimir Makarov <vmakarov@redhat.com>
6760
6761 * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
6762 ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
6763
6764 * doc/passes.texi: Describe IRA.
6765
6766 * doc/tm.texi (IRA_COVER_CLASSES,
6767 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
6768
6769 * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
6770 (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
6771 -fira-propagate-cost, -fno-ira-share-save-slots,
6772 -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
6773
6774 * flags.h (ira_algorithm): New enumeration.
6775 (flag_ira_algorithm, flag_ira_verbose): New external variable
6776 declarations.
6777
6778 * postreload.c (gate_handle_postreload): Don't do post reload
6779 optimizations unless the reload is completed.
6780
6781 * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
6782 IRA.
6783
6784 * tree-pass.h (pass_ira): New external variable declaration.
6785
6786 * reload.h: Add 2008 to the Copyright.
8a88c276 6787
058e97ec
VM
6788 * cfgloopanal.c: Include params.h.
6789 (estimate_reg_pressure_cost): Decrease cost for IRA optimization
6790 mode.
8a88c276 6791
058e97ec
VM
6792 * params.h (IRA_MAX_LOOPS_NUM): New macro.
6793
6794 * toplev.c (ira.h): New include.
6795 (flag_ira_algorithm, flag_ira_verbose): New external variables.
6796 (backend_init_target): Call ira_init.
6797 (backend_init): Call ira_init_once.
6798 (finalize): Call finish_ira_once.
6799
6800 * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
6801 flag_ira_share_save_slots, flag_ira_share_spill_slots): New
6802 external variables.
6803
6804 * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
6805 may_move_out_cost): New external variable declarations.
6806 (move_table): New typedef.
8a88c276 6807
058e97ec
VM
6808 * caller-save.c: Include headers output.h and ira.h.
6809 (no_caller_save_reg_set): New global variable.
6810 (save_slots_num, save_slots): New variables.
6811 (reg_save_code, reg_restore_code, add_stored_regs): Add
6812 prototypes.
6813 (init_caller_save): Set up no_caller_save_reg_set.
6814 (init_save_areas): Reset save_slots_num.
6815 (saved_hard_reg): New structure.
6816 (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
6817 (initiate_saved_hard_regs, new_saved_hard_reg,
6818 finish_saved_hard_regs, saved_hard_reg_compare_func): New
6819 functions.
6820 (setup_save_areas): Add code for sharing stack slots.
6821 (all_blocks): New variable.
6822 (save_call_clobbered_regs): Process pseudo-register too.
6823 (mark_set_regs): Process pseudo-register too.
6824 (insert_one_insn): Put the insn after bb note in a empty basic
6825 block. Add insn check.
8a88c276 6826
058e97ec
VM
6827 * global.c (eliminable_regset): Make it external.
6828 (mark_elimination): Use DF_LR_IN for IRA.
6829 (pseudo_for_reload_consideration_p): New.
6830 (build_insn_chain): Make it external. Don't ignore spilled
6831 pseudos for IRA. Use pseudo_for_reload_consideration_p.
6832 (gate_handle_global_alloc): New function.
6833 (pass_global_alloc): Add the gate function.
6834
6835 * opts.c (decode_options): Set up flag_ira. Print the warning for
6836 -fira.
6837 (common_handle_option): Process -fira-algorithm and -fira-verbose.
6838
6839 * timevar.def (TV_IRA, TV_RELOAD): New passes.
6840
6841 * regmove.c (regmove_optimize): Don't do replacement of output for
6842 IRA.
6843
6844 * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
6845 New external variable declarations.
6846
6847 * local-alloc.c (update_equiv_regs): Make it external. Return
6848 true if jump label rebuilding should be done. Rescan new_insn for
6849 notes.
6850 (gate_handle_local_alloc): New function.
6851 (pass_local_alloc): Add the gate function.
6852
6853 * alias.c (value_addr_p, stack_addr_p): New functions.
6854 (nonoverlapping_memrefs_p): Use them for IRA.
6855
6856 * common.opt (fira, fira-algorithm, fira-coalesce,
6857 fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
6858 fira-verbose): New options.
6859
6860 * regclass.c (reg_class_subclasses, contains_reg_of_mode,
6861 move_cost, may_move_in_cost, may_move_out_cost): Make the
6862 variables external.
6863 (move_table): Remove typedef.
6864 (init_move_cost): Make it external.
6865 (allocate_reg_info, resize_reg_info, setup_reg_classes): New
6866 functions.
6867
6868 * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
6869 setup_reg_classes): New function prototypes.
6870 (eliminable_regset): New external variable declaration.
6871 (build_insn_chain, update_equiv_regs): New function prototypes.
8a88c276 6872
058e97ec
VM
6873 * Makefile.in (IRA_INT_H): New definition.
6874 (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
6875 ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
6876 (reload1.o, toplev.o): Add dependence on ira.h.
6877 (cfgloopanal.o): Add PARAMS_H.
6878 (caller-save.o): Add dependence on output.h and ira.h.
6879 (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
6880 ira-emit.o, ira-lives.o): New entries.
6881
6882 * passes.c (pass_ira): New pass.
6883
6884 * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
6885
6886 * reload1.c (ira.h): Include the header.
6887 (changed_allocation_pseudos): New bitmap.
6888 (init_reload): Initiate the bitmap.
6889 (compute_use_by_pseudos): Permits spilled registers in FROM.
6890 (temp_pseudo_reg_arr): New variable.
6891 (reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
6892 IRA. Call alter_reg with the additional parameter. Don't clear
6893 spilled_pseudos for IRA. Restore original insn chain for IRA.
6894 Clear changed_allocation_pseudos at the end of reload.
6895 (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
6896 (hard_regno_to_pseudo_regno): New variable.
6897 (count_pseudo): Check spilled pseudos. Set up
6898 hard_regno_to_pseudo_regno.
6899 (count_spilled_pseudo): Check spilled pseudos. Update
6900 hard_regno_to_pseudo_regno.
6901 (find_reg): Use better_spill_reload_regno_p. Check
6902 hard_regno_to_pseudo_regno.
6903 (alter_reg): Set up spilled_pseudos. Add a new parameter. Add
6904 code for IRA.
6905 (eliminate_regs_1): Use additional parameter for alter_reg.
6906 (finish_spills): Set up pseudo_previous_regs only for spilled
6907 pseudos. Call reassign_pseudos once for all spilled pseudos, pass
6908 more arguments. Don't clear live_throughout and dead_or_set for
6909 spilled pseudos. Use additional parameter for alter_reg. Call
6910 mark_allocation_change. Set up changed_allocation_pseudos.
6911 Remove sanity check.
6912 (emit_input_reload_insns, delete_output_reload): Use additional
6913 parameter for alter_reg. Call mark_allocation_change.
6914 (substitute, gen_reload_chain_without_interm_reg_p): New
6915 functions.
6916 (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
8a88c276 6917
058e97ec 6918 * testsuite/gcc.dg/20080410-1.c: New file.
8a88c276 6919
058e97ec
VM
6920 * config/s390/s390.h (IRA_COVER_CLASSES,
6921 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
6922
6923 * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
6924
6925 * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
6926
6927 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
6928
6929 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
6930
6931 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8a88c276 6932
058e97ec 6933 * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
8a88c276 6934
058e97ec
VM
6935 2008-08-24 Jeff Law <law@redhat.com>
6936 * ira.c (setup_reg_class_intersect_union): Prefer smallest class
6937 when ignoring unavailable registers.
6938
6939 2008-08-24 Jeff Law <law@redhat.com>
6940 * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
6941 FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
6942 * ira.c (setup_eliminable_regset): Check stack_realign_needed.
6943 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
6944
6945 2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
6946 * ira-build.c (allocno_range_compare_func): Stabilize sort.
6947
6948 2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
6949 * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
6950 * reload1.c (find_reg): Process registers in register allocation order.
6951
6952 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
6953 * toplev.c (backend_init_target): Move ira_init call from
6954 here...
6955 (lang_dependent_init_target): ...to here.
6956
6957 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
6958 * ira.c (setup_class_subset_and_memory_move_costs): Don't
6959 calculate memory move costs for NO_REGS.
6960
6961 2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
6962 * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
6963 STACK_REGS is defined.
6964
6965 2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
6966 * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
6967
6968 2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
6969 * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
6970
6971 2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
6972 * config/sh/sh.h (IRA_COVER_CLASSES): Define.
6973 * config/sh/sh.md (movsicc_true+3): Check if emit returns a
6974 barrier.
6975
8ff27c24
VK
69762008-08-26 Victor Kaplansky <victork@il.ibm.com>
6977 Dorit Nuzman <dorit@il.ibm.com>
6978
6979 * gcc/config/spu/spu.md (vec_extract_evenv4si,
6980 vec_extract_evenv4sf, vec_extract_evenv8hi,
6981 vec_extract_evenv16qi, vec_extract_oddv4si,
6982 vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
6983 vec_interleave_highv4sf, vec_interleave_lowv4sf,
6984 vec_interleave_highv4si, vec_interleave_lowv4si,
6985 vec_interleave_highv8hi, vec_interleave_lowv8hi,
6986 vec_interleave_highv16qi, vec_interleave_lowv16qi,
6987 vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
6988
e57903b8
JJ
69892008-08-25 Janis Johnson <janis187@us.ibm.com>
6990
6991 PR target/36756
6992 * config/rs6000/rs6000.c (optimization_options): Don't default to
6993 section anchors without toplevel reorder.
6994
b704f034
UW
69952008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6996
6997 * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
6998 (mfc_end_critical_section): Likewise.
6999
4f538d42
UW
70002008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7001
7002 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
7003 all type qualifiers from element type to vector type.
7004
7cede643
DD
70052008-08-25 David Daney <ddaney@avtrex.com>
7006
7007 * config/mips/mips.md (immediate_insn): Move up in file, fix
7008 comment typo, reformat.
7009 (fetchop_bit, atomic_hiqi_op memory_barrier,
7010 sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
7011 sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
7012 sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
7013 sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
7014 sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
7015 sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
7016 sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
7017 sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
7018 sync_old_nand<mode>, sync_new_nand<mode>,
7019 sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
7020 test_and_set_12): Moved to sync.md.
7021 (sync.md): Include.
7022 * config/mips/sync.md: New file.
7023
e02aa5ec
RH
70242008-08-25 Richard Henderson <rth@redhat.com>
7025
7026 * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
7027 (regsave): Likewise.
7028 (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
7029 (output_cfi_directive): Likewise.
7030 (div_data_align): New.
7031 (output_cfi): Use it.
7032
d97e6aca
AN
70332008-08-24 Adam Nemet <anemet@caviumnetworks.com>
7034
7035 * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
7036 * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
7037 (TARGET_OCTEON): New macro.
7038 (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
7039 (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
7040 (ISA_HAS_POP): New macro.
7041 * config/mips/driver-native.c (host_detect_local_cpu): Handle
7042 Octeon.
7043 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
7044 Handle Octeon.
7045 * config/mips/mips.md (cpu): Add octeon.
7046 (type): Add pop attribute value.
7047 (popcount<mode>2): New pattern.
7048 * doc/invoke.texi (-march=@var{arch}): Add octeon.
7049
5e45130d
JH
70502008-08-24 Jan Hubicka <jh@suse.cz>
7051
7052 * doc/invoke.texi (-fipa-cp-clone): New option.
7053 (-fipa-cp): Update docs.
7054 (--param ipcp-unit-growth):New.
7055 * ipa-cp.c: Include fibheap.h, params.h
7056 (ipcp_initialize_node_lattices): When not cloning, all externally
7057 visible functions are bottom.
7058 (ipcp_need_redirect_p): Accept clones.
7059 (ipcp_insert_stage): Use cost driven heuristics.
7060 (max_count, dead_nodes): New static vars.
7061 (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
7062 ipcp_const_param_count): New functions.
7063 * common.opt (ipa-cp-clone): New command line option.
7064 * params.def (ipcp-unit-growth): New.
7065
657c0925
JH
70662008-08-24 Jan Hubicka <jh@suse.cz>
7067
7068 * tree-inline.c (tree_function_versioning): Look harder
7069 for referenced vars.
7070
692daa90
RL
70712008-08-24 Razya Ladelsky <razya@il.ibm.com>
7072
95879c72
L
7073 PR tree-optimization/37185
7074 * matrix-reorg.c (transform_access_sites): Update changed stmt.
692daa90 7075
0dbca537
JH
70762008-08-23 Jan Hubicka <jh@suse.cz>
7077
7078 * ipa-cp.c (ipcp_analyze_node): New function.
7079 (ipcp_update_cloned_node): Use it.
7080 (ipcp_init_stage): Likewise.
7081 * ipa-inline.c (function_insertion_hook_holder): New static var.
7082 (analyze_function): Break out from ....
7083 (inline_generate_summary): Here; register insertion hook.
7084 (cgraph_decide_inlining): Remove hook.
7085 (add_new_function): New function.
7086
5c69a0df
JH
70872008-08-23 Jan Hubicka <jh@suse.cz>
7088
7089 * opts.c (decode_options): Revert accidental change enabling ipa-cp.
7090
0f1961a2
JH
70912008-08-23 Jan Hubicka <jh@suse.cz>
7092
7093 * ipa-cp.c (constant_val_insert): Remove.
7094 (ipcp_propagate_one_const): Remove.
7095 (ipcp_create_replace_map): Always insert replacements to the map.
7096 (ipcp_insert_stage): Do not try to insert statements by hand.
7097 * tree-inline.c (insert_init_stmt): Break out from ...
7098 (setup_one_parameter): ... here; allow NULL BB pointer.
7099 (tree_function_versioning): Use setup_one_parameter to process
7100 replacement map.
7101
00fc2333
JH
71022008-08-23 Jan Hubicka <jh@suse.cz>
7103
7104 * tree.c (decl_address_ip_invariant_p): New function.
7105 * tree.h (decl_address_ip_invariant_p): Declare.
7106 * gimple.c (strip_invariant_refs): Break out from ...
7107 (is_gimple_invariant_address): ... here
7108 (is_gimple_ip_invariant_address): New function.
7109 (is_gimple_ip_invariant): New function.
7110 * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
7111 Declare.
7112
7113 * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
7114 (ipcp_lat_is_insertable): All constants are insertable.
7115 (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
7116 IPA_CONST_VALUE_REF.
7117 (ipcp_initialize_node_lattices): Propagate all types of operands.
7118 (build_const_val): Do not handle IPA_CONST_VALUE_REF.
7119 (ipcp_create_replace_map): Reformat.
7120 (ipcp_need_redirect_p): Simplify.
7121 (ipcp_insert_stage): Check that argument is used before clonning.
4ae8027b
UB
7122 * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
7123 IPA_CONST_REF.
00fc2333
JH
7124 (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
7125 (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
7126 (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
7127 * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
7128 (jump_func_type): Remove IPA_CONST_VALUE_REF.
02bb8bce
UB
7129 * tree-inline.c (tree_function_versioning): Add variables referenced
7130 by replacing trees.
00fc2333 7131
98e146ab
JH
71322008-08-23 Jan Hubicka <jh@suse.cz>
7133
7134 PR target/37094
7135 * i386.c (standard_80387_constant_p): Use optimize_size.
7136
8b7b9d66
IR
71372008-08-23 Ira Rosen <irar@il.ibm.com>
7138
7139 PR tree-optimization/37161
7140 * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
7141 * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
7142 (vect_determine_vectorization_factor): Move the scalar type
7143 retrieval to vect_get_smallest_scalar_type.
7144 (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
7145 scalar type. Remove redundant computation.
7146 * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
7147 (vect_get_slp_defs): Take the type of RHS into account if
7148 necessary by calling vect_get_smallest_scalar_type. Call
7149 vect_get_constant_vectors with additional argument.
7150
f4185118
MLI
71512008-08-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7152
7153 PR 35648
7154 * doc/invoke.texi (Wwrite-strings): Clarify description.
8a88c276 7155
f5d3c7e1
IR
71562008-08-23 Ira Rosen <irar@il.ibm.com>
7157
7158 PR tree-optimization/37174
7159 * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
7160 def stmt is a part of the loop before accessing its stmt_vec_info.
7161
d3dd4dbd
AS
71622008-08-22 Anatoly Sokolov <aesok@post.ru>
7163
7164 PR target/11259
7165 * config/avr/avr.md (UNSPEC_SWAP): New constants.
7166 (*swap): New insn pattern.
7167 (*ashlqi3): Rename from ashlqi3 insn pattern.
7168 (ashlqi3): New expanders.
7169 (*lshrqi3): Rename from lshrqi3 insn pattern.
8a88c276 7170 (lshrqi3): New expanders.
d3dd4dbd
AS
7171 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
7172 lshrqi3_const5, lshrqi3_const6): New splitters.
7173 (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
7174 lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
7175 peephole2 patterns.
7176
36159cf8
RG
71772008-08-22 Richard Guenther <rguenther@suse.de>
7178
7179 PR tree-optimization/37078
7180 * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
7181 [+INF, +INF] ranges.
7182
d3cbd7de
RG
71832008-08-22 Richard Guenther <rguenther@suse.de>
7184
7185 PR tree-optimization/37143
7186 * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
7187 a conversion statement instead of a copy.
7188
a3d4a22b
UB
71892008-08-22 Uros Bizjak <ubizjak@gmail.com>
7190
7191 PR target/37184
7192 * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
7193 CCCmode, CCOmode and CCSmode destination modes.
7194
7195 PR target/37191
7196 * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
7197 from different units in a single alternative.
7198 (*vec_extractv2sf_1): Ditto.
7199 (*vec_extractv2si_0): Ditto.
7200 (*vec_extractv2si_1): Ditto.
7201 * config/i386/sse.md (sse2_storehpd): Ditto.
7202 (sse2_storelpd): Ditto.
7203 (sse2_loadhpd): Ditto.
7204 (sse2_loadlpd): Ditto.
7205
7206 PR target/37197
7207 * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
7208 (popcountsi2): Ditto.
7209 (clzdi2_abm): Ditto.
7210 (popcountdi2): Ditto.
7211 (clzhi2_abm): Ditto.
7212 (popcounthi2): Ditto.
7213
beeab17c
RG
72142008-08-22 Richard Guenther <rguenther@suse.de>
7215
7216 PR middle-end/36548
7217 PR middle-end/37125
7218 * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
7219 if the multiplication does not overflow.
7220
1a456b49
NS
72212008-08-21 Nathan Sidwell <nathan@codesourcery.com>
7222
7223 * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
7224
042628f9
RH
72252008-08-21 Richard Henderson <rth@redhat.com>
7226
7227 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
7228 spurrious comma from test.
7229 * configure: Rebuild.
7230
2985f531
MLI
72312008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7232
7233 PR 30457
7234 * builtins.c (fold_builtin_next_arg): Add warning about undefined
7235 behaviour.
8a88c276 7236
3d10ed6c
AH
72372008-08-21 Aldy Hernandez <aldyh@redhat.com>
7238
7239 * c-tree.h (grokfield): New argument.
7240 * c-decl.c (grokfield): Handle new location argument.
4ae8027b 7241 * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
3d10ed6c 7242
c76a1f18
RG
72432008-08-21 Richard Guenther <rguenther@suse.de>
7244
7245 * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
7246
129a37fc
JH
72472008-08-21 Jan Hubicka <jh@suse.cz>
7248
7249 * cgraph.c (first_cgraph_function_insertion_hook): New variable.
a3d4a22b
UB
7250 (cgraph_add_function_insertion_hook,
7251 cgraph_remove_function_insertion_hook,
129a37fc 7252 cgraph_call_function_insertion_hooks): New functions.
a3d4a22b
UB
7253 * cgraph.h (cgraph_add_function_insertion_hook,
7254 cgraph_remove_function_insertion_hook,
129a37fc
JH
7255 cgraph_call_function_insertion_hooks): Declare.
7256 * ipa-reference.c (function_insertion_hook_holder): New variable.
7257 (check_operand, look_for_address_of): When checking late, do not care
7258 about module bitmaps.
7259 (add_new_function): New function.
7260 (generate_summary): Register hooks; zero module bitmaps.
7261 (propagate): Unregister hooks.
7262 * ipa-pure-const.c (function_insertion_hook_holder): New variable.
7263 (add_new_function): New function.
7264 (generate_summary): Register hook.
7265 (propagate): Remove hook.
7266
7267 * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
7268
7269 * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
7270 * ipa-cp.c (ipcp_update_cloned_node): New function.
7271 (build_const_val): Handle functions correctly; bring type logic
7272 into sync with tree-inline.c
7273 (ipcp_init_stage): Take care of computing stuff needed by
7274 indirect inlining; update clones.
7275 (ipcp_generate_summary): Break out of ipcp_driver.
7276 (ipcp_driver): Do only execution and transformation.
7277 (pass_ipa_cp): Make IPA_PASS.
7278 * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
7279 offset to address.
7280 * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
7281 ipcp, some info is already available.
7282 * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
7283 * tree-inline.c (remap_ssa_name): Unshare expression.
7284
1e52075c
RG
72852008-08-21 Richard Guenther <rguenther@suse.de>
7286
7287 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
7288 a PHI ask VN if it is already available.
7289 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
7290 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
7291
729edaa1
RG
72922008-08-21 Richard Guenther <rguenther@suse.de>
7293
7294 PR middle-end/36817
7295 * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
7296 makes sure to produce a result of the correct type.
7297
812dbce5
JH
72982008-08-21 Jan Hubicka <jh@suse.cz>
7299 Backport from LTO branch:
7300
7301 2008-05-05 Kenneth Zadeck <zadeck@naturalbridge.com>
7302 Jan Hubicka <jh@suse.cz>
8a88c276 7303
812dbce5
JH
7304 * ipa-pure-const.c
7305 (init_state, finish_state, set_function_state, generate_summary):
7306 New functions.
7307 (scan_stmt): Renamed from scan_function. Changed to keep state in
7308 local static vars rather than cgraph aux field.
7309 (propagate): Renamed from static_execute. Changed to keep state in
7310 local static vars rather than cgraph aux field.
7311 (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
7312 * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
7313
7314 2008-07-15 Kenneth Zadeck <zadeck@naturalbridge.com>
7315
7316 * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
8a88c276 7317 * ipa-reference.c (init_function_info, generate_summary,
812dbce5
JH
7318 propagate): New functions.
7319 (analyze_function): Call init_function_info.
7320 (static_execute): Stripped into generate_summary and propagate.
7321 (pass_ipa_reference): Made into ipa_opt_pass.
7322
08298a8c
RG
73232008-08-21 Richard Guenther <rguenther@suse.de>
7324
7325 PR tree-optimization/37181
7326 * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
7327 folding result.
7328 (extract_range_from_unary_expr): Likewise.
7329
509c9d60
MLI
73302008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7331
7332 * diagnostic.c (pedwarn_at): Rename as pedwarn.
7333 (pedwarn): Delete.
7334 * toplev.h (pedwarn_at): Likewise.
7335 * builtins.c: Update all calls to pedwarn.
7336 * c-lex.c: Likewise.
7337 * toplev.c: Likewise.
7338 * c-tree.h: Likewise.
7339 * c-decl.c: Likewise.
7340 * c-errors.c: Likewise.
7341 * c-typeck.c: Likewise.
7342 * c-common.c: Likewise.
7343 * c-parser.c: Likewise.
7344
0dd8c9bc
JM
73452008-08-20 Joseph Myers <joseph@codesourcery.com>
7346
7347 PR target/31070
7348 * config/sparc/sparc.c (function_arg_slotno): Handle structure
7349 with MODE_VECTOR_INT mode.
7350
87fe2bd0
MLI
73512008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7352
7353 PR middle-end/179
7354 * tree-ssa.c (warn_uninit): Do not warn for variables that can be
7355 initialized outside the current module.
7356 (warn_uninitialized_var): Ignore left-hand side when walking the
7357 trees. Ignore address expressions. Examine VUSE operands in gimple
7358 statements with a variable declaration on the right-hand side.
7359
05cee290
RS
73602008-08-20 Richard Sandiford <rdsandiford@googlemail.com>
7361
7735154d 7362 PR bootstrap/37155
05cee290
RS
7363 * rtlanal.c (subreg_offset_representable_p): Revert last change.
7364
9c591bd0
MLI
73652008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7366
7367 PR 35701
7368 * c-common.c (conversion_warning): Do not warn if applying bit-and
7369 operator to unsigned constant that fits in the target type.
7370
0011dedb
MLI
73712008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7372
7373 PR c++/35602
7374 * c-common.c (conversion_warning): Do not warn for artificial
7375 expressions.
7376
73019a42
RG
73772008-08-20 Richard Guenther <rguenther@suse.de>
7378
7379 * tree-vrp.c (op_with_constant_singleton_value_range): New function.
7380 (extract_range_from_binary_expr): Fall back to constant propagation.
7381 (extract_range_from_unary_expr): Likewise.
7382
e2104f59
RG
73832008-08-20 Richard Guenther <rguenther@suse.de>
7384
7385 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
7386 with TREE_THIS_VOLATILE on shared nodes.
7387 (fold_stmt_r): Likewise.
7388
5dc4a7f4
JJ
73892008-08-20 Jakub Jelinek <jakub@redhat.com>
7390
7391 PR c/37171
7392 * c-parser.c (c_parser_attributes): For keywords use canonical
7393 spelling for attr_name.
7394
d3d28d26
MLI
73952008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7396
7397 * value-prof.c (check_counter): Revert wrong call to error.
8a88c276 7398
5b6148c5
MLI
73992008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7400
7401 * profile.c: Update calls to inform.
7402 * value-prof.c: Update calls to inform.
8a88c276 7403
1f5b3869
MLI
74042008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7405
7406 * diagnostic.c (inform): Add an explicit location_t parameter.
7407 * toplev.h (inform): Update declaration.
7408 * builtins.c: Update all calls to inform.
7409 * c-common.c: Likewise.
7410 * c-decl.c: Likewise.
7411 * c-opts.c: Likewise.
7412 * c-pch.c: Likewise.
7413 * c-pragma.c: Likewise.
7414 * c-typeck.c: Likewise.
7415 * coverage.c: Likewise.
7416 * opts.c: Likewise.
7417 * toplev.c: Likewise.
7418 * tree-cfg.c: Likewise.
7419 * tree-ssa.c: Likewise.
7420
89da39ee
L
74212008-08-20 H.J. Lu <hongjiu.lu@intel.com>
7422
7423 PR target/37169
7424 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
7425 V2DI mode, for SSE4.1, use movq instead of vector set if the
7426 second element is zero and inter-unit moves are OK.
7427
4fedf870
RG
74282008-08-20 Richard Guenther <rguenther@suse.de>
7429
7430 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
7431 properly handle conversion/copy chains after tuplification.
7432
e2081a1d
RG
74332008-08-20 Richard Guenther <rguenther@suse.de>
7434
7435 * passes.c (init_optimization_passes): Move the second
7436 forwprop pass before alias computation. Remove the second
7437 DCE pass. Remove the first dominator and phi copy/const
7438 prop passes.
7439
6e60703f
NC
74402008-08-20 Nick Clifton <nickc@redhat.com>
7441
7442 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
7443 support of this feature. Do not assume that a sufficiently new
7444 assembler will support the feature regardless of the target type.
7445 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
89da39ee 7446 * configure: Regenerate.
6e60703f 7447
c4ab2baa
RG
74482008-08-20 Richard Guenther <rguenther@suse.de>
7449
7450 * tree-vrp.c (found_in_subgraph): Remove.
7451 (live): New global static.
7452 (live_on_edge): New function.
7453 (blocks_visited): Remove.
7454 (register_edge_assert_for_2): Use live_on_edge.
7455 (find_conditional_asserts): Remove code dealing with
7456 found_in_subgraph. Do not walk the CFG.
7457 (find_switch_asserts): Likewise.
7458 (find_assert_locations_1): Renamed from find_assert_locations.
7459 Move finding assert locations for conditional and switch
7460 statements first. Update live bitmap. Do not walk the CFG.
7461 (find_assert_locations): New function.
7462 (insert_range_assertions): Remove entry of CFG walk.
7463 Adjust call to find_assert_locations.
7464 * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
7465 that only can appear because of fake exit edges but assert we
7466 never try to insert on those.
7467 (fini_pre): Do not remove fake exit edges here...
7468 (execute_pre): ...but here, before committing edge inserts.
7469
a4b8a65f
RG
74702008-08-19 Richard Guenther <rguenther@suse.de>
7471
7472 * passes.c (init_optimization_passes): Exchange store-ccp
7473 with a ccp pass.
7474
e49cf927 74752008-08-19 Rafael Espíndola <espindola@google.com>
21fe7edc 7476
a3d4a22b
UB
7477 * varasm.c (weak_decls): Move earlier in the file.
7478 (assemble_external): Add weak decls to the weak_decls list.
7479 (declare_weak): Don't add decls to the weak_decls list.
21fe7edc 7480
b8aaf506
L
74812008-08-19 H.J. Lu <hongjiu.lu@intel.com>
7482
7483 PR target/37157
7484 * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
7485 before (sse2_shufpd_<mode>).
7486
e92cbe3a
JJ
74872008-08-19 Jakub Jelinek <jakub@redhat.com>
7488
7489 PR debug/37156
7490 * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
7491 * tree.c (block_nonartificial_location): Likewise.
7492
53f3815c
RG
74932008-08-19 Richard Guenther <rguenther@suse.de>
7494
7495 PR tree-optimization/35972
7496 PR tree-optimization/23094
7497 * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
7498 parameter.
7499 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
7500 handle MISALIGNED_INDIRECT_REF.
7501 (get_ref_from_reference_ops): New helper.
7502 (vn_reference_lookup_pieces): Walk the use-def chain using the
7503 alias-oracle if requested.
7504 * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
7505 walking the use-def chain.
7506 (compute_avail): But not here.
7507 (create_component_ref_by_pieces_1): Properly handle
7508 MISALIGNED_INDIRECT_REF.
7509 (do_regular_insertion): Handle fully redundant
7510 expressions after PHI-translation also for SSA_NAME values, not
7511 only constants. Correctly use edoubleprime for that.
7512
5d593372
IR
75132008-08-19 Ira Rosen <irar@il.ibm.com>
7514
7515 * tree-vectorizer.c (supportable_widening_operation): Support
7516 multi-step conversion, return the number of steps in such conversion
7517 and the required intermediate types.
7518 (supportable_narrowing_operation): Likewise.
7519 * tree-vectorizer.h (vect_pow2): New function.
7520 (supportable_widening_operation): Change argument types.
7521 (supportable_narrowing_operation): Likewise.
7522 (vectorizable_type_promotion): Add an argument.
7523 (vectorizable_type_demotion): Likewise.
8a88c276 7524 * tree-vect-analyze.c (vect_analyze_operations): Call
5d593372
IR
7525 vectorizable_type_promotion and vectorizable_type_demotion with
7526 additional argument.
7527 (vect_get_and_check_slp_defs): Detect patterns.
7528 (vect_build_slp_tree): Add an argument, don't fail in case of multiple
8a88c276 7529 types.
02bb8bce
UB
7530 (vect_analyze_slp_instance): Don't fail in case of multiple types.
7531 Call vect_build_slp_tree with correct arguments. Calculate unrolling
7532 factor according to the smallest type in the loop.
5d593372 7533 (vect_detect_hybrid_slp_stmts): Include statements from patterns.
8a88c276
AS
7534 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
7535 supportable_widening_operation with correct arguments.
7536 * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
5d593372
IR
7537 operands lists according to the number of vector statements in left
7538 or right node, if exists.
7539 (vect_gen_widened_results_half): Remove unused argument.
8a88c276 7540 (vectorizable_conversion): Call supportable_widening_operation,
5d593372 7541 supportable_narrowing_operation, and vect_gen_widened_results_half
8a88c276 7542 with correct arguments.
5d593372 7543 (vectorizable_assignment): Change documentation, support multiple
8a88c276 7544 types in SLP.
5d593372
IR
7545 (vectorizable_operation): Likewise.
7546 (vect_get_loop_based_defs): New function.
7547 (vect_create_vectorized_demotion_stmts): Likewise.
7548 (vectorizable_type_demotion): Support loop-aware SLP and general
7549 multi-step conversion. Call vect_get_loop_based_defs and
7550 vect_create_vectorized_demotion_stmts for transformation.
7551 (vect_create_vectorized_promotion_stmts): New function.
7552 (vectorizable_type_promotion): Support loop-aware SLP and general
7553 multi-step conversion. Call vect_create_vectorized_promotion_stmts
8a88c276 7554 for transformation.
5d593372 7555 (vectorizable_store): Change documentation, support multiple
8a88c276 7556 types in SLP.
5d593372 7557 (vectorizable_load): Likewise.
8a88c276 7558 (vect_transform_stmt): Pass SLP_NODE to
5d593372
IR
7559 vectorizable_type_promotion and vectorizable_type_demotion.
7560 (vect_schedule_slp_instance): Move here the calculation of number
7561 of vectorized statements for each node from...
7562 (vect_schedule_slp): ... here.
7563 (vect_transform_loop): Call vect_schedule_slp without the last
7564 argument.
7565
45ea82c1
DN
75662008-08-19 Dorit Nuzman <dorit@il.ibm.com>
7567
7568 PR bootstrap/37152
8a88c276 7569 * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
45ea82c1
DN
7570 to == in assert statement.
7571 (vectorizable_reduction): Fix typo.
7572
c3a4ca03
L
75732008-08-18 H.J. Lu <hongjiu.lu@intel.com>
7574
7575 PR bootstrap/37153
7576 * value-prof.c (check_counter): Dereference pointer to overall
7577 count when printing it.
7578
3aa71f9d
L
75792008-08-18 H.J. Lu <hongjiu.lu@intel.com>
7580
7581 * profile.h: Really add it.
7582
f7bc085c
L
75832008-08-18 H.J. Lu <hongjiu.lu@intel.com>
7584
7585 * mcf.c: Really add it.
7586
52c76998
PY
75872008-08-18 Paul Yuan <yingbo.com@gmail.com>
7588 Vinodha Ramasamy <vinodha@google.com>
7589
7590 * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
7591 count_scale.
7592 * value-prof.c (check_counter): Fix the counter if
7593 flag_profile_correction is true.
7594 (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
7595 tree_mod_subtract_transform):
7596 Follow check_counter parameter change.
7597 * common.opt (fprofile-correction): New option.
7598 * mcf.c: New file.
3aa71f9d 7599 * profile.h: Likewise.
52c76998
PY
7600 * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
7601 (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
7602 is_inconsistent, set_bb_counts, read_profile_edge_counts): New
7603 functions.
7604 (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
7605 flag_profile_correction is set.
7606
808cc417
RS
76072008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
7608
7609 * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
7610
1a87cf0c
TB
76112008-08-18 Tomas Bily <tbily@suse.cz>
7612
7613 * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
7614 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
7615 CONVERT_EXPR_P.
7616 * tree-data-ref.c (split_constant_offset_1): Likewise.
7617 * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
7618 * tree-sra.c (sra_walk_expr): Likewise.
7619 * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
7620 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
7621 * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
7622 * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
7623 Likewise.
7624 * gimple.c (gimple_assign_unary_nop_p): Likewise.
7625 * tree-vect-transform.c (vectorizable_type_demotion)
7626 (vectorizable_type_promotion): Likewise.
8a88c276 7627 * tree-inline.c (expand_call_inline):
1a87cf0c
TB
7628 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
7629 (forward_propagate_addr_expr_1, forward_propagate_comparison)
7630 (tree_ssa_forward_propagate_single_use_vars): Likewise.
7631 * expr.c (expand_expr_real_1): Likewise.
7632 * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
7633 (gimple_assign_unary_useless_conversion_p): Likewise.
7634 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
7635 * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
7636 * fold-const.c (fold_unary): Likewise.
7637 * tree.h (CONVERT_EXPR_P): Likewise.
7638 * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
7639 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
8a88c276 7640 * tree-vrp.c:
1a87cf0c
TB
7641 (register_edge_assert_for_2, extract_range_from_unary_expr)
7642 (register_edge_assert_for_1): Likewise.
8a88c276 7643
9c02cf68
MLI
76442008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7645
7646 * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
7647 dconst_third_ptr, dconst_sqrt2_ptr): Declare.
7648 (enum real_value_const): Delete.
7649 (get_real_const): Delete.
7650 * real.c (get_real_const): Delete.
7651 (dconst_e_ptr): Define.
7652 (dconst_third_ptr): Define.
7653 (dconst_sqrt2_ptr): Define.
7654 * builtins.c: Update all callers.
7655
e4658728
RG
76562008-08-18 Richard Guenther <rguenther@suse.de>
7657
7658 * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
7659 statement iterator after statement removal.
7660
3b7abfda
AT
76612008-08-18 Andreas Tobler <a.tobler@schweiz.org>
7662
7663 * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
7664 (detect_processor_freebsd): Likewise.
7665 (host_detect_local_cpu): Call newly added functions for FreeBSD.
7666
2f9864e6
RG
76672008-08-18 Richard Guenther <rguenther@suse.de>
7668
7669 * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
7670 and loads have the correct types.
7671
d2e796ad
MLI
76722008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7673
7674 PR cpp/7263
7675 * c-opts.c (cpp_opts): Remove static.
7676 * c-parser.c (cpp_opts): Declare it extern.
7677 (disable_extension_diagnostics): Handle cpp options.
7678 (enable_extension_diagnostics): Likewise.
7679
cbe5f3b3
MLI
76802008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7681
7682 * diagnostics.c (permerror_at): Rename as permerror.
7683 (permerror): Delete.
7684 * toplev.h: Likewise.
7685
11b08ee9
RG
76862008-08-18 Richard Guenther <rguenther@suse.de>
7687
7688 * passes.c (init_optimization_passes): Remove cleanup_cfg1,
7689 sdse1 and addressables2 passes. Replace dce1 with cddce1.
7690 Move call_cdce before build_alias. Move copyrename2,
7691 cunrolli and ccp2 beafore build_alias. Re-add addressable2
7692 right after final inlining.
7693 * tree-cfg.c (build_gimple_cfg): Do not dump function here.
7694 (pass_build_cfg): But instead via TODO_dump_func.
7695
400196f1
RG
76962008-08-18 Richard Guenther <rguenther@suse.de>
7697
7698 * tree-sra.c (generate_element_init_1): Deal with NULL constructor
7699 element index.
7700 (scalarize_init): If we failed to generate some initializers
7701 do not generate zeros for not instantiated members. Instead
7702 rely on the copy out.
7703 * tree-ssa-operands.c (get_addr_dereference_operands): Warn
7704 about missing flow-sensitive alias info only if we have
7705 aliases computed.
7706
0859c412
NC
77072008-08-17 Nick Clifton <nickc@redhat.com>
7708
7709 * doc/extend.texi (Function Attributes): Fix typo in description
7710 if hot function attribute.
7711
e21d5757
DJ
77122008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
7713 Richard Sandiford <rdsandiford@googlemail.com>
7714
7715 * doc/install.texi (--with-mips-plt): Document.
7716 * doc/invoke.texi (-mplt, -mno-plt): Document.
7717 * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
7718 and handle ${with_mips_plt}.
7719 * config/mips/mips.opt (mplt): New option.
7720 * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
7721 (TARGET_ABICALLS_PIC2): Likewise.
7722 (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
7723 (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
7724 (ASM_SPEC): Use !mabi=* instead of !mabi*.
7725 (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
7726 to decide whether to output ".option picX" directives.
7727 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
7728 Pass -call_nonpic rather than -KPIC for -mplt.
7729 (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
7730 on the command line. Also remove it when -mabi=64 is used without
7731 -msym32.
7732 * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
7733 * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
7734 TARGET_ABICALLS_PIC0.
7735 (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
7736 TARGET_ABICALLS.
7737 (mips16_build_function_stub): Only output ".option pic" directives
7738 and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
7739 (mips16_build_call_stub): Fix comment and remove redundant
7740 ".set at"/"set .noat" directives.
7741 (mips_function_rodata_section): Use the default behaviour for
7742 TARGET_ABSOLUTE_ABICALLS.
7743 (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
7744 (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
7745 (mips_restore_gp): Do nothing if the current function doesn't use
7746 a global pointer.
7747 (mips_expand_prologue): Only save $gp if the current function uses it.
7748 Use a normal move for TARGET_ABICALLS_PIC0.
7749 (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
7750
4817c43b
RS
77512008-08-17 Richard Sandiford <rdsandiford@googlemail.com>
7752
7753 * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
7754 of function when handling GLOBAL_POINTER_REGNUM.
7755
b38f3813
EB
77562008-08-16 Eric Botcazou <ebotcazou@adacore.com>
7757
7758 PR ada/20548
7759 * common.opt (-fstack-check): Do not declare the variable here.
7760 (-fstack-check=): New option variant.
7761 * doc/invoke.texi (Code Gen Options): Document it.
7762 * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
7763 (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
7764 (STACK_CHECK_STATIC_BUILTIN): New macro.
7765 * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
7766 * opts.c: Include expr.h.
7767 (common_handle_option) <OPT_fold_stack_check_>: New case.
7768 <OPT_fstack_check>: Likewise.
7769 * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
7770 consistently in the test for variable-sized types. Adjust for
7771 new behaviour of flag_stack_check.
7772 * explow.c: Include except.h.
7773 (allocate_dynamic_stack_space): Do not take into account
7774 STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
7775 * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
7776 for variable-sized parameters. Treat all parameters whose size is
7777 greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
7778 stack checking is enabled.
7779 * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
7780 size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
7781 if generic stack checking is enabled.
7782 (expand_function_end): Adjust for new behaviour of flag_stack_check.
7783 * reload1.c (reload): Likewise.
7784 * stmt.c (expand_decl): Assert that all automatic variables have
7785 fixed size at this point and remove dead code.
7786 * flags.h (stack_check_type): New enumeration type.
7787 (flag_stack_check): Declare.
7788 * toplev.c (flag_stack_check): New global variable.
7789 * Makefile.in (opts.o): Add dependency on EXPR_H.
7790 (explow.o): Add dependency on except.h.
7791
3898bf50
AH
77922008-08-16 Andy Hutchinson <hutchinsonandy@aim.com>
7793
8a88c276 7794 * config/avr/avr.c (avr_override_options): Reduce value of
3898bf50
AH
7795 PARAM_INLINE_CALL_COST.
7796
e675826d
EB
77972008-08-15 Eric Botcazou <ebotcazou@adacore.com>
7798
7799 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
7800 to BLKmode, try to fetch an inner memory reference. Use 'mode' in
7801 lieu of TYPE_MODE (type) throughout.
7802
853ff9e2
JM
78032008-08-15 Joseph Myers <joseph@codesourcery.com>
7804
7805 * config/arm/arm.c (add_minipool_backward_ref): Check for
7806 8-byte-aligned entries in second case of forcing insertion after a
7807 particular entry. Change third case to avoid inserting
7808 non-8-byte-aligned entries before 8-byte-aligned ones.
7809
a214f4d6
RG
78102008-08-15 Richard Guenther <rguenther@suse.de>
7811
7812 * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
7813 strip components for unknown size accesses.
7814
9381e3f1
WG
78152008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com>
7816
7817 * config/s390/2097.md New file.
7818 * config/s390/s390.md ("z10prop" attribute): Define none,
89da39ee
L
7819 z10_super, z10_super_E1, z10_super_A1, z10_super_c,
7820 z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
7821 z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
7822 possible values and apply them to insns as appropriate.
7823 ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
7824 ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
7825 fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
4ae8027b 7826 fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
9381e3f1
WG
7827 ("bfp" mode attribute): Removed. Every occurence replaced
7828 with <mode>.
7829 * config/s390/s390.c (struct "z10_cost"): Updated entries.
7830 * config/s390/2084.md (insn_reservation "x_itof"): Updated
4ae8027b 7831 type attribute.
9381e3f1 7832
4265559a
MLI
78332008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7834
89da39ee 7835 PR c/28152
4265559a
MLI
7836 * c-parser.c (c_lex_one_token): Do not store the canonical spelling
7837 for keywords.
8a88c276 7838
32ff1243
DN
78392008-08-14 Dorit Nuzman <dorit@il.ibm.com>
7840
7841 * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
7842 additional argument. Support reduction when duplication is needed due
7843 to data-types of different sizes in the loop.
7844 (get_initial_def_for_induction): Fix printout.
7845 (vect_get_vec_def_for_stmt_copy): Support case where the
7846 vec_stmt_for_operand is a phi node.
8a88c276 7847 (vectorizable_reduction): Support reduction when duplication is needed
32ff1243 7848 due to data-types of different sizes in the loop.
8a88c276 7849 (vectorizable_call): Remove restriction to not vectorize in case we
32ff1243
DN
7850 have data-types of different sizes in the loop.
7851 (vectorizable_conversion): Likewise.
7852 (vectorizable_operation): Likewise.
7853 (vectorizable_type_demotion): Likewise.
7854 (vectorizable_type_promotion): Likewise.
8a88c276 7855 (vectorizable_induction): Add restriction to not vectorize in case
32ff1243
DN
7856 we have data-types of different sizes in the loop.
7857
ed6fa129
UB
78582008-08-14 Christophe Saout <christophe@saout.de>
7859 Uros Bizjak <ubizjak@gmail.com>
7860
7861 PR target/37101
7862 * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
7863 (*vec_concatv2di_rex64_sse4_1): Ditto.
7864 (*vec_concatv2di_rex64_sse): Ditto.
7865
2e1d2474
JJ
78662008-08-14 Jakub Jelinek <jakub@redhat.com>
7867
7868 PR middle-end/37103
7869 * fold-const.c (fold_widened_comparison): Do not allow
7870 sign changes that change the result even if shorter type
7871 is wider than arg1_unw's type.
7872
e026fa18
KH
78732008-08-13 Kazu Hirata <kazu@codesourcery.com>
7874
7875 * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
7876 Skip if the multilib testing specifies -march that does not
7877 agree with the one specified in the testcase.
7878
92693034
JM
78792008-08-13 Joseph Myers <joseph@codesourcery.com>
7880
7881 * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
7882 zero extend SImode values being converted to TFmode before passing
7883 to libcalls.
7884
9f3c9256
UW
78852008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7886
7887 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
7888 __PPU__ when targeting the Cell/B.E. PPU processor.
7889
7aec7a38
EB
78902008-08-13 Eric Botcazou <ebotcazou@adacore.com>
7891
7892 * gimple.h (gimple_call_set_chain): Accept SSA variables.
7893 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
7894 Rematerialize the static chain, if any.
7895 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
7896 static chain.
7897
70a1c2f9
L
78982008-08-13 H.J. Lu <hongjiu.lu@intel.com>
7899
7900 * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
7901 (new_loc_descr): Likewise.
7902 (add_loc_descr): Likewise.
7903 (size_of_loc_descr): Likewise.
7904 (size_of_locs): Likewise.
7905 (output_loc_operands): Likewise.
7906 (output_loc_sequence): Likewise.
7907 (new_reg_loc_descr): New.
7908 (build_cfa_loc): Use it.
7909 (build_cfa_aligned_loc): Likewise.
7910 (one_reg_loc_descriptor): Likewise.
7911 (based_loc_descr): Likewise.
7912
4003301d
MLI
79132008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7914
7915 PR 30551
7916 * doc/invoke.texi (Wmain): Update.
7917 * c-decl.c (start_decl): warn_main is only 0 or 1.
7918 (start_function): Likewise. Fix formatting.
7919 (finish_function): Delete redundant warning.
7920 * c.opt (Wmain): Add Var(warn_main) and Init(-1).
7921 * c-opts (c_common_handle_option): -Wall only has effect if
7922 warn_main is uninitialized. OPT_Wmain is automatically
7923 handled. -pedantic also enables Wmain.
7924 (c_common_post_options): Handle all logic for Wmain here.
7925 * c-common.c (warn_main): Delete.
4ae8027b 7926 (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
4003301d
MLI
7927 * c-common.h (warn_main): Delete.
7928
6cd7942d
L
79292008-08-13 H.J. Lu <hongjiu.lu@intel.com>
7930
7931 PR middle-end/36701
7932 * expr.c (emit_group_store): Allocate stack temp with the
7933 largest alignment when copying from register to stack.
7934
99f536cc
RG
79352008-08-13 Richard Guenther <rguenther@suse.de>
7936
7937 * tree.h (maybe_fold_offset_to_address): Declare.
7938 * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
7939 (ccp_fold): Handle pointer conversions the same as fold_stmt.
7940 Likewise for POINTER_PLUS_EXPR.
7941 (maybe_fold_offset_to_reference): Enable disabled code.
7942 (maybe_fold_offset_to_address): New function.
7943 (fold_stmt_r): Use it.
7944 (fold_gimple_assign): Likewise.
7945 * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
7946 (gimplify_expr): Likewise.
7947
e3f05c4e
MLI
79482008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7949
7950 * toplev.h (pedwarn_at): Fix declaration.
8a88c276 7951
c71cfaaf
JM
79522008-08-13 Joseph Myers <joseph@codesourcery.com>
7953
7954 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
7955 LINK_SPEC): Use %R in -Y P argument.
7956
85790e66
MLI
79572008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7958
7959 PR c/15236
7960 * diagnostic.c (pedwarn_at): New.
7961 * toplev.h (pedwarn_at): Declare.
7962 * c-tree.h (build_enumerator): Update declaration.
7963 * c-decl.c (finish_enum): Update comment.
7964 (build_enumerator): Take a location parameter. Give a pedwarn but do
7965 not perform any conversion.
7966 * c-parser.c (c_parser_enum_specifier): Set correct location for
7967 enumerator.
7968
374035cb
MLI
79692008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7970
7971 PR 35635
7972 * c-common.c (conversion_warning): Use a switch. Ignore boolean
7973 expressions except for conversions to signed:1 bitfields. Handle
7974 COND_EXPR with constant operands.
8a88c276 7975
25c6036a
RG
79762008-08-13 Richard Guenther <rguenther@suse.de>
7977
7978 PR tree-optimization/15255
7979 * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
7980 (struct oecount_s): New struct and VEC types.
7981 (cvec): New global.
7982 (oecount_hash): New function.
7983 (oecount_eq): Likewise.
7984 (oecount_cmp): Likewise.
7985 (zero_one_operation): New function.
7986 (build_and_add_sum): Likewise.
7987 (undistribute_ops_list): Perform un-distribution of multiplication
7988 and division on the chain of summands.
7989 (should_break_up_subtract): Also break up subtracts for factors.
7990 (reassociate_bb): Delete dead visited statements.
7991 Call undistribute_ops_list. Re-sort and optimize if it did something.
7992 * passes.c (init_optimization_passes): Move DSE before
7993 reassociation.
7994 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
7995 PHI nodes.
7996
e1765251
JJ
79972008-08-12 Janis Johnson <janis187@us.ibm.com>
7998
db79b0cd
JJ
7999 * doc/invoke.texi (-fipa-pta): Say the option is experimental.
8000
e1765251
JJ
8001 * doc/invoke.texi: Revert unintended checkin.
8002
4d2b059d
NF
80032008-08-12 Nathan Froyd <froydnj@codesourcery.com>
8004
8005 PR libgomp/26165
4d2b059d
NF
8006 * gcc.c (include_spec_function): Tweak call to find_a_file.
8007
4c29307d
JJ
80082008-08-12 Jakub Jelinek <jakub@redhat.com>
8009
c0285905
JJ
8010 PR middle-end/37014
8011 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
8012 and TRUTH_ORIF_EXPR.
8013 * dojump.c (do_jump): Likewise.
8014
4c29307d
JJ
8015 PR tree-optimization/37084
8016 * tree-inline.c (copy_bb): Call gimple_regimplify_operands
8017 if id->regimplify, don't assume stmt is a cast assignment.
8018
bad4f40b
AS
80192008-08-12 Anatoly Sokolov <aesok@post.ru>
8020
ed6fa129 8021 * final.c (final_scan_insn): Use app_enable/app_disable functions.
bad4f40b 8022
905cd1b9
UW
80232008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8024
8025 PR bootstrap/37097
8026 * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
8027 by last change.
8028
b8972354
UW
80292008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8030
8031 * defaults.h (TARGET_FLOAT_FORMAT): Remove.
8032 (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
8033
8034 * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
8035 * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
8036 * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
8037 * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
8038 * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
8039
8040 * doc/tm.texi (Storage Layout): Remove documentation for
8041 TARGET_FLOAT_FORMAT.
8042
8043 * simplify-rtx.c (simplify_binary_operation_1): Replace
8044 TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
8045
4099e2c2
UW
80462008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8047
8048 * real.h (struct real_format): New member has_sign_dependent_rounding.
8049 * real.c (ieee_single_format, mips_single_format, motorola_single_format,
8050 spu_single_format, ieee_double_format, mips_double_format,
8051 motorola_double_format, ieee_extended_motorola_format,
8052 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
8053 ieee_extended_intel_96_round_53_format, ibm_extended_format,
8054 mips_extended_format, ieee_quad_format, mips_quad_format,
8055 vax_f_format, vax_d_format, vax_g_format): Initialize it.
8056 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
8057
8058 * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
8059 MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
8060 * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
8061 MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
8062 (ROUND_TOWARDS_ZERO): Likewise.
8063
8064 * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
8065 (FLOAT_MODE_FORMAT): New macro.
8066 (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
8067 (MODE_COMPOSITE_P): ... this new macro.
8068 (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
8069 MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
8070 * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
8071
8072 * flags.h: Include "real.h".
8073
8074 * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
8075 REAL_MODE_FORMAT_COMPOSITE_P.
8076 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
8077
8078 * doc/tm.texi (Storage Layout): Remove documentation of
8079 MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
8080 MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of
8081 ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
8082 they only apply to libgcc2.a.
8083
e0bddf10
UW
80842008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8085
8086 * config/spu/float_disf.c: New file.
8087 * config/spu/float_unsdisf.c: New file.
8088 * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
8089 (LIB2FUNCS_EXCLUDE): Define.
8090
3e479de3
UW
80912008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8092 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
8093
8094 * real.h (struct real_format): New member round_towards_zero.
8095 * real.c (round_for_format): Respect fmt->round_towards_zero.
8096 (ieee_single_format, mips_single_format, motorola_single_format,
8097 spu_single_format, ieee_double_format, mips_double_format,
8098 motorola_double_format, ieee_extended_motorola_format,
8099 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
8100 ieee_extended_intel_96_round_53_format, ibm_extended_format,
8101 mips_extended_format, ieee_quad_format, mips_quad_format,
8102 vax_f_format, vax_d_format, vax_g_format): Initialize it.
8103 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
8104
8105 * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
8106 real_format to choose rounding mode when calling MPFR functions.
8107 (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
8108 (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
8109
8110 * real.h (real_to_decimal_for_mode): Add prototype.
8111 * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
8112 Respect target rounding mode when generating decimal representation.
8113 (real_to_decimal): New stub for backwards compatibility.
8114 * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
8115 real_to_decimal_for_mode instead of real_to_decimal.
8116
8117 * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
8118
88f091f5
UW
81192008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8120 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
8121
8122 * real.c (spu_single_format): New variable.
8123 * real.h (spu_single_format): Declare.
8124
8125 * config/spu/spu.c (spu_override_options): Install SFmode format.
8126 (spu_split_immediate): Use integer mode to operate on pieces of
8127 floating-point values in all cases.
8128
8129 * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
8130 ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
8131 ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
8132
4230d0fe
UW
81332008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8134
8135 * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
8136
359e19d5
UW
81372008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8138
8139 * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
8140
2d7231a3
JJ
81412008-08-12 Jakub Jelinek <jakub@redhat.com>
8142
8143 PR c++/36688
8144 * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
8145 on the VAR_DECL instead of TYPE_READONLY on its type.
8146
ad2dd72a
IR
81472008-08-12 Ira Rosen <irar@il.ibm.com>
8148
8149 * tree-vectorizer.c: Depend on langhooks.h.
8150 (supportable_widening_operation): Add two arguments. Support double
8151 type conversions.
8152 (supportable_narrowing_operation): Likewise.
8a88c276 8153 * tree-vectorizer.h (supportable_widening_operation): Add two
ad2dd72a
IR
8154 arguments.
8155 (supportable_narrowing_operation): Likewise.
8156 * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
8157 supportable_widening_operation with correct arguments.
8158 * tree-vect-transform.c (vectorizable_conversion): Likewise.
8159 (vectorizable_type_demotion): Support double type conversions.
8160 (vectorizable_type_promotion): Likewise.
8161 * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
8162
7edfb083
MM
81632008-08-11 Michael Matz <matz@suse.de>
8164
8165 * i386/i386.c (override_options): Move initialisation from
8166 flag_schedule_insns_after_reload to here from ...
8167 (optimization_options): ... here.
8168
6f21ff3e
JJ
81692008-08-11 Jakub Jelinek <jakub@redhat.com>
8170
8171 PR rtl-optimization/36998
8172 * dwarf2out.c (compute_barrier_args_size_1,
8173 compute_barrier_args_size): Temporarily remove assertions.
8174
de9a4397
MLI
81752008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8176
8177 PR middle-end/20644
8178 * tree-ssa.c (struct walk_data): Add new flag
8179 warn_possibly_uninitialized.
8180 (warn_uninitialized_var): Use it.
8181 (warn_uninitialized_vars): New.
8182 (execute_early_warn_uninitialized): Call it.
8183 (execute_late_warn_uninitialized): Likewise.
8184
d47c3b4e
AP
81852008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
8186
8187 PR middle-end/36238
8188 * reload1.c (gen_reload): Guard calls to get_secondary_mem
8189 for memory subregs.
8190
5e04ef8f
JH
81912008-08-09 Jan Hubicka <jh@suse.cz>
8192
8193 PR target/37055
8194 * optabs.c (maybe_emit_unop_insn): Remove produced code if
8195 expansion failed.
8196 (expand_fix): Be prepared for expansion to fail.
8197 (expand_sfix_optab): Remove instructions if expansion failed.
8198
708fa3b5
AS
81992008-08-09 Anatoly Sokolov <aesok@post.ru>
8200
8201 * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
8202 avr31 architecture.
8203 * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
8204 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8205
08d0963a
RS
82062008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8207
8208 * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
8209 mips/t-libgcc-mips16 to tmake_file.
8210 * config/mips/mips-protos.h (mips_call_type): New enum.
8211 (mips_pic_base_register, mips_got_load): Declare.
8212 (mips_restore_gp): Take an rtx argument.
8213 (mips_use_pic_fn_addr_reg_p): Declare.
8214 (mips_expand_call): Replace the sibcall_p argument with
8215 a mips_call_type argument. Add a lazy_p parameter.
8216 (mips_split_call): Declare.
8217 * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
8218 (MIPS16_PIC_TEMP): Likewise.
8219 (reg_class): Delete M16_NA_REGS.
8220 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
8221 (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
8222 (mips_split_hi_p): Declare.
8223 * config/mips/mips.c (mips_split_hi_p): New array.
8224 (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
8225 (mips_got_symbol_type_p): New function.
8226 (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
8227 (mips16_stub_function_p): New function.
8228 (mips16_local_function_p): Likewise.
8229 (mips_use_pic_fn_addr_reg_p): Likewise.
8230 (mips_cannot_force_const_mem): Return false for HIGHs.
8231 Extend CONST_INT and symbolic handling to MIPS16, using
8232 mips_symbol_insns to check that the base symbol type is a
8233 legitimate constant. Reject GOT-based constants if
8234 TARGET_MIPS16_PCREL_LOADS.
8235 (mips_const_insns): Check targetm.cannot_force_const_mem when
8236 decomposing a symbolic base and a large offset.
8237 (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
8238 When calling a function that needs $25 from MIPS16 code,
8239 move the target address into $25 separately and add a USE
8240 to the call insn.
8241 (mips16_gp_pseudo_reg): Insert the initializer immediately
8242 before the first real insn.
8243 (mips_pic_base_register, mips_got_load): New functions.
8244 (mips_split_symbol): Generalize the name of the LO_SUM_OUT
8245 parameter to LOW_OUT. Say that it can be any valid SET_SRC
8246 when splitting a load-address operation. Split SYMBOL_GOT_DISP
8247 constants and highs of SYMBOL_GOT_PAGE_OFST constants.
8248 (mips_call_tls_get_addr): Update the call to mips_expand_call,
8249 also passing NULL_RTX rather than const0_rtx as the aux argument.
8250 (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
8251 instead of TARGET_EXPLICIT_RELOCS.
8252 (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
8253 (mips_load_call_address): Replace the sibcall_p argument with
8254 a mips_call_type argument. Use mips_got_load.
8255 (mips16_local_alias): New structure.
8256 (mips16_local_aliases): New variable.
8257 (mips16_local_aliases_hash): New function.
8258 (mips16_local_aliases_eq): Likewise.
8259 (mips16_local_alias): Likewise.
8260 (mips16_stub_function): Likewise.
8261 (mips16_build_function_stub): Create a local alias for the target
8262 function. Handle TARGET_ABICALLS. For PIC abicalls, emit a
8263 .cpload directive and an R_MIPS_NONE relocation for the target
8264 function, then load the alias rather than the function itself.
8265 Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
8266 (mips16_copy_fpr_return_value): Use mips16_stub_function and
8267 mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol.
8268 (mips16_build_call_stub): Replace the FN parameter with an
8269 FN_PTR parameter. Force the address into a register if it
8270 isn't a call_insn_operand; don't rely on the caller to do this.
8271 If a call to a locally-defined and locally-binding MIPS16
8272 function must be made indirectly, redirect the call to the
8273 function's local alias. Use mips16_stub_function_p,
8274 mips16_stub_function, mips_expand_call and use_reg.
8275 Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
8276 Use explicit %hi and %lo accesses where possible.
8277 Use MIPS_CALL to generate the correct code form of a
8278 jal instruction. Add clobbers of $18 instead of uses.
8279 Update the call to mips_emit_call_insn.
8280 (mips_expand_call): Replace the SIBCALL_P argument with a
8281 mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
8282 Take a LAZY_P parameter. Call mips16_build_call_stub first,
8283 allowing it to modify the call address. Update the calls to
8284 mips_load_call_address and mips_emit_call_insn.
8285 (mips_split_call): New function.
8286 (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if
8287 !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of
8288 SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
8289 (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
8290 (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
8291 if TARGET_MIPS16.
8292 (mips_cprestore_slot): New function.
8293 (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16
8294 and use mips_cprestore_slot.
8295 (mips_output_function_prologue): Handle TARGET_MIPS16 for
8296 LOADGP_OLDABI.
8297 (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
8298 then use a copygp_mips16 instruction to set up $28.
8299 (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
8300 (mips16_lay_out_constants): Call split_all_insns_noflow.
8301 (mips_reorg_process_insns): Explicitly set all_noreorder_p to
8302 false if TARGET_MIPS16.
8303 (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
8304 (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the
8305 mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
8306 (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
8307 MIPS16 code. Allow MIPS16 o32 PIC.
8308 (mips_override_options): Allow MIPS16 o32 PIC.
8309 * config/mips/mips.md: Lower CONST_GP_P moves into register moves
8310 after reload if TARGET_USE_GOT.
8311 (UNSPEC_COPYGP): New constant.
8312 (length): Use a default length of 8 for MIPS16 GOT loads.
8313 (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
8314 (*got_page<mode>): Check mips_split_hi_p.
8315 (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
8316 (unspec_got<mode>, unspec_call<mode>): New expanders.
8317 (load_got<mode>, load_call<mode>): Remove the length attributes.
8318 Use a got attribute instead of a type attribute.
8319 (copygp_mips16): New insn.
8320 (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
8321 (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
8322 (sibcall, sibcall_value, call, call_value): Update the calls
8323 to mips_expand_call.
8324 (call_internal, call_value_internal): Use mips_split_call.
8325 (call_value_multiple_internal): Likewise.
8326 (call_split): Move after call_internal (the insn it is split from).
8327 (call_internal_direct, call_value_internal_direct): Turn into
8328 define_insn_and_splits. Split if TARGET_SPLIT_CALLS.
8329 (call_direct_split, call_value_direct_split): New patterns.
8330 * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
8331 and use M16_REGS instead of M16_NA_REGS.
8332 * config/mips/predicates.md (const_call_insn_operand): Replace
8333 the TARGET_ABSOLUTE_ABICALLS-based check with a more general
8334 mips_use_pic_fn_addr_reg_p check.
8335 (move_operand): Reject HIGHs if mips_split_hi_p.
8336 * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
8337 (__mips16_floatunsisf): Inline __mips16_floatsisf.
8338 (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
8339 * config/mips/libgcc-mips16.ver: New file.
8340 * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
8341 $(srcdir)/config/mips/libgcc-mips16.ver.
8342
7462a715
RS
83432008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8344
02bb8bce
UB
8345 * config/mips/mips.c (mips_unspec_address_offset): Move earlier
8346 in file.
7462a715
RS
8347 (mips_unspec_address, mips_unspec_offset_high): Likewise.
8348 (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
8349 (mips16_cfun_returns_in_fpr_p): Likewise.
8350
57972505
RS
83512008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8352
8353 * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
8354 * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
8355 rather than 4 to PC.
8356
e538e028
RS
83572008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8358
8359 * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
8360 (FUNCTION_PROFILER): Save the static chain pointer into $2
8361 beforehand and restore it aftewards.
8362 (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target
8363 address directly into $25 and call the function through $25;
8364 do not clobber $3. Pad the DImode version to cover the space
8365 left by the deleted $25 <- $3 move.
8366 (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
8367 the removal of the $25 <- $3 move.
8368 (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
8369 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
8370
b2b61607
RS
83712008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8372 Daniel Jacobowitz <dan@codesourcery.com>
8373
8374 * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
8375 * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
8376 (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
8377 * config/mips/mips.c (mips_start_function_definition): New function.
8378 (mips_end_function_definition): Likewise.
8379 (mips_output_function_prologue): Use mips_start_function_definition.
8380 (mips_output_function_epilogue): Use mips_end_function_definition.
8381 (build_mips16_function_stub): Use mips_start_function_definition
8382 and mips_end_function_definition.
8383 (build_mips16_call_stub): Likewise.
8384
7c9577be
RG
83852008-08-09 Richard Guenther <rguenther@suse.de>
8386
8387 * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
8388 * gimple.h (gimple_call_fn): Adjust comment.
8389 (gimple_call_set_fndecl): New function.
8390 (gimple_call_fndecl): Adjust for GIMPLE_CALL no
8391 longer having bare FUNCTION_DECL operand.
8392 (gimple_call_return_type): Likewise.
8393 * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
8394
8395 * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
8396 (gimple_mod_pow2): Likewise.
8397 (gimple_mod_subtract): Likewise.
8398 (gimple_ic): Likewise.
8399 (gimple_stringop_fixed_value): Likewise.
8400 (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
8401 longer having bare FUNCTION_DECL operand.
8402 * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
8403 * omp-low.c (optimize_omp_library_calls): Likewise.
8404 * cgraphunit.c (update_call_expr): Likewise.
8405 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
8406 (execute_convert_to_rsqrt): Likewise.
8407 * cfgexpand.c (gimple_to_tree): Simplify.
8408 (release_stmt_tree): Fix for GIMPLE_CALL no longer having
8409 bare FUNCTION_DECL operand.
8410 * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
8411 (convert_gimple_call): Use gimple_call_fndecl.
8412 * c-common.c (c_warn_unused_result): Likewise.
8413
ca085fd7
MLI
84142008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8415
8416 PR c/17880
8417 * c-typeck.c (digest_init): Call verify_sequence_points from here.
8418 (c_finish_return): Likewise.
8419 (c_start_case): Likewise.
4ae8027b 8420 * c-common.c (warn_for_collisions_1): Use explicit location in warning.
ca085fd7
MLI
8421 * c-parser.c (c_parser_condition): New. Call
8422 verify_sequence_points.
8423 (c_parser_paren_condition): Call c_parser_condition.
8424 (c_parser_for_statement): Call c_parser_condition.
8425
71205d17
MLI
84262008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8427
8428 PR 36901
8a88c276 8429 * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
71205d17
MLI
8430 * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
8431 Moved from diagnostic.h
8432 (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
8433 DK_PERMERROR.
8434 (emit_diagnostic): New.
8435 (warning0, pedwarn0): Delete.
8a88c276 8436 (warning, warning_at, pedwarn, permerror): Return bool.
71205d17
MLI
8437 * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
8438 Moved to diagnostic.c.
8439 (struct diagnostic_context): Use correct type for
8440 classify_diagnostic.
8441 (diagnostic_report_diagnostic): Update declaration.
8442 (emit_diagnostic): Declare.
8a88c276 8443 * errors.c (warning): Return bool.
71205d17
MLI
8444 * errors.h (warning): Update declaration.
8445 * toplev.h (warning0, pedwarn0): Delete.
8446 (warning, warning_at, pedwarn, permerror): Return bool.
8447 * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
8448 * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
8449 inform. Update all calls.
8450 (diagnose_mismatched_decls): Check return value of warning/pedwarn
8451 before giving informative note.
8a88c276
AS
8452 (implicit_decl_warning): Likewise.
8453 * c-typeck.c (build_function_call): Likewise.
8454 * tree-sssa.c (warn_uninit): Likewise.
71205d17
MLI
8455 * builtins.c (gimplify_va_arg_expr): Likewise.
8456
c73d5dd9
MLI
84572008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8458
8459 PR 7651
8460 * doc/invoke.texi (-Wextra): Move warning from here...
8461 (-Wuninitialized): ... to here.
8a88c276 8462
e73f7547
MLI
84632008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8464
8465 PR 28875
8466 * flags.h (set_Wunused): Delete
8467 * toplev.c (process_options): Handle Wunused flags here.
8468 * opts.c (maybe_warn_unused_parameter): Delete.
8469 (common_handle_option): Replace set_Wunused by warn_unused.
8470 (set_Wextra): Do not handle Wunused-parameter here.
8471 (set_Wunused): Delete.
8472 * c-opts.c (c_common_handle_option): Replace set_Wunused by
8473 warn_unused.
8474 * common.opt (Wunused): Add Var and Init.
8475 (Wunused-function): Likewise.
8476 (Wunused-label): Likewise.
8477 (Wunused-parameter): Likewise.
8478 (Wunused-value): Likewise.
8479 (Wunused-variable): Likewise.
8a88c276 8480
d40c9e33
PB
84812008-08-08 Peter Bergner <bergner@vnet.ibm.com>
8482
e73f7547
MLI
8483 * doc/invoke.texi: Add cpu_type power7.
8484 * config.in (HAVE_AS_VSX): New.
8485 * config.gcc: Add cpu_type power7.
8486 * configure.ac (HAVE_AS_VSX): Check for assembler support of the
8487 VSX instructions.
8488 * configure: Regenerate.
8489 * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
8490 power5.
8491 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
8492 (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
8493 (EXTRA_SPECS): Add asm_cpu_power7 spec string.
8494
7910ae0c
DN
84952008-08-08 Dorit Nuzman <dorit@il.ibm.com>
8496
8497 * tree-vect-transform.c (vectorizable_conversion): Pass the integral
8498 type to vectorize.builtin_conversion.
8499 (vectorizable_conversion): Likewise.
8500 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
8501 integral type as input.
8502 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
8503 FIX_TRUNC_EXPR.
8504 (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
8505 and ALTIVEC_BUILTIN_VCTSXS.
8506 (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
8a88c276 8507 formatting.
7910ae0c 8508
174ef36d
RG
85092008-08-08 Richard Guenther <rguenther@suse.de>
8510
8511 * tree-ssa-ccp.c (likely_value): Calls are not all varying.
8512 (surely_varying_stmt_p): Calls are varying only if they are
8513 non-builtin and not indirect or have no result.
8514 (ccp_fold): Re-instantiate code before the tuples merge.
8515
0f336c35
RG
85162008-08-08 Richard Guenther <rguenther@suse.de>
8517
8518 PR tree-optimization/37056
8519 * gimple.h (gimple_assign_rhs_class): New helper function.
8520 * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
8521 unary operations properly.
8522
b2077fd2
JH
85232008-08-07 Jan Hubicka <jh@suse.cz>
8524
8525 * i386.h (ix86_size_cost): Declare.
8526 (ix86_cur_cost): New function macro.
8527 * i386.md (peepholes expanding size and splitters): Predicate by
8528 optimize_insn_for_speed_p.
8529 (peepholes reduce size and splitters): Predicate by
8530 optimize_insn_for_size_p.
8531 * i386.c (ix86_size_cost): Rename from ...
8532 (size_cost): This one.
8533 (override_options): Update.
8534 (decide_alg): Likewise.
8535 (ix86_expand_clear): Use RTL profile.
8536 (ix86_pad_returns): Use RTL profile.
8537
a8ba47cb
JH
85382008-08-07 Jan Hubicka <jh@suse.cz>
8539
8540 * recog.c (split_all_insns): Set RTL profile
8541 (peephole2_optimize): Likewise.
8542 * function.c (thread_prologue_and_epilogue_insns): Likewise.
8543 * combine.c (combine_instructions): Likewise.
8544
03c3034e
KG
85452008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8546
8547 * c-common.c (c_common_reswords): Also warn about keyword "bool".
8548
b412869c 85492008-08-07 Bob Wilson <bob.wilson@acm.org>
8a88c276 8550
ed6fa129
UB
8551 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
8552 value in a6 after the set_frame_ptr insn.
8a88c276 8553
09828811
RH
85542008-08-07 Richard Henderson <rth@redhat.com>
8555
8556 PR debug/37033
8557 * gcc.c (cpp_options): Pass along -g*.
8558
874d42b9
JM
85592008-08-07 Joseph Myers <joseph@codesourcery.com>
8560
8561 * config/arm/arm.c (output_move_neon): Update comment describing
8562 big-endian vector layout.
8563 (arm_assemble_integer): Do not handle big-endian NEON vectors
8564 specially.
8565 * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
8566 neon_vget_lane<mode>_sext_internal,
8567 neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
8568 element indices for big-endian.
8569
058514b3
RH
85702008-08-07 Richard Henderson <rth@redhat.com>
8571
8572 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
8573 * configure, config.in: Rebuild.
8574 * debug.h (dwarf2out_do_cfi_asm): Declare.
8575 * c-cppbuiltin.c (c_cpp_builtins): Use it.
8576 * dwarf2out.c (dwarf2out_do_cfi_asm): New.
8577 (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
8578 dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
8579
9940eebd
JM
85802008-08-07 Joseph Myers <joseph@codesourcery.com>
8581
8582 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
8583 movv2si_internal): Combine into mov<mode>_internal.
8584 (movv2si_internal_2): Remove.
8585
bdfd2026
JH
85862008-08-07 Jan Hubicka <jh@suse.cz>
8587
8588 PR target/37048
8a88c276 8589 * i386.md (single stringop patterns): Enable unconditionally.
bdfd2026 8590
b53b23dc
L
85912008-08-07 H.J. Lu <hongjiu.lu@intel.com>
8592
8593 PR target/36992
4ae8027b 8594 * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
b53b23dc
L
8595
8596 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
8597 (bdesc_args): Add IX86_BUILTIN_MOVQ128.
8598
8599 * config/i386/sse.md (sse2_movq128): New.
8600
8601 * doc/extend.texi: Document __builtin_ia32_movq128.
8602
9aa4d3c1
RG
86032008-08-07 Richard Guenther <rguenther@suse.de>
8604
8605 PR middle-end/37042
8606 * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
8607 pointers can access anything.
8608
18bd082d
JH
86092008-08-06 Jan Hubicka <jh@suse.cz>
8610
8611 * optabs.c (emit_unop_insn): Break out to ...
8612 (maybe_emit_unop_insn): ... this one.
8613 (expand_sfix_optab): Use maybe variant.
8614 * optabs.h (maybe_emit_unop_insn): Declare.
8615
8616 * i386.md (mov0 patterns): Enable by default.
8617 (FP conversion expanders): Disable expansion of code expanding
8618 sequences when instruction should be optimized for size.
8619 (single strinop patterns): Enable when optimizing for size.
8620 (string expanders): Disable expanding of code expanding sequences
8621 when optimizning instruction for size.
8622 * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
8623 per BB basis.
8624 (ix86_fp_comparison_sahf_cost): Likewise.
8625 (ix86_expand_branch): Likewise.
8626 (ix86_expand_ashl_const): Likewise.
8627 (ix86_split_ashl): Likewise.
8628 (ix86_expand_strlen): Likewise.
8629 (ix86_emit_fp_unordered_jump): Likewie.
8630
2696a995
KG
86312008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8632
8633 * c-common.c: Fix typo.
8634 (c_common_reswords): Activate more C++ keyword warnings.
8635
8636 * matrix-reorg.c (compute_offset): Avoid C++ keywords.
8637
7e99f74b 86382008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
ed6fa129 8639
7e99f74b
MLI
8640 PR 26785
8641 * diagnostic.c (permerror_at): New.
8642 * toplev.h (permerror_at): Declare.
8a88c276 8643
4eee6569
VK
86442008-08-06 Victor Kaplansky <victork@il.ibm.com>
8645 Ira Rosen <irar@il.ibm.com>
8646
8647 * tree-vect-transform.c (vect_model_simple_cost): Return
8648 immediately if stmt is pure SLP.
8649 (vect_model_store_cost): Ditto.
8650 (vect_model_load_cost): Ditto.
8651 (vectorizable_store): Remove PURE_SLP check before call
8652 to vect_model_store_cost.
8653 (vect_model_store_cost): When checking whether stmt describe
8654 strided access, add a check that it is not slp_node.
8655
2d12797c
MLI
86562008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8657
8658 PR 8715
8659 * c-common.c (warn_for_sign_compare): New. Handle separately the
8660 case that 'constant' is zero.
8661 * c-typeck.c (build_binary_op): Move code to c-common.c
8a88c276 8662
0a2aaacc
KG
86632008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8664
8665 * config/alpha/alpha.c (alpha_preferred_reload_class,
8666 alpha_secondary_reload, alpha_emit_set_const_1, function_value,
8667 alpha_output_mi_thunk_osf): Avoid C++ keywords.
8668 * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
8669 * config/arm/arm.md: Likewise.
8670 * config/avr/avr-protos.h (preferred_reload_class,
8671 test_hard_reg_class, avr_simplify_comparison_p,
8672 out_shift_with_cnt, class_max_nregs): Likewise.
8673 * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
8674 output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
8675 preferred_reload_class, test_hard_reg_class): Likewise.
8676 * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
8677 bfin_memory_move_cost, bfin_secondary_reload,
8678 bfin_output_mi_thunk): Likewise.
8679 * config/crx/crx.c (crx_secondary_reload_class,
8680 crx_memory_move_cost): Likewise.
8681 * config/frv/frv-protos.h (frv_secondary_reload_class,
8682 frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
8683 * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
8684 frv_secondary_reload_class, frv_class_likely_spilled_p,
8685 frv_class_max_nregs): Likewise.
8686 * config/h8300/h8300.c (h8300_classify_operand,
8687 h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
8688 Likewise.
8689 * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
8690 * config/ia64/ia64.c (ia64_preferred_reload_class,
8691 ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
8692 * config/iq2000/iq2000.c (gen_int_relational): Likewise.
8693 * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
8694 Likewise.
8695 * config/m68hc11/m68hc11.c (preferred_reload_class,
8696 m68hc11_memory_move_cost): Likewise.
8697 * config/mcore/mcore.c (mcore_secondary_reload_class,
8698 mcore_reload_class): Likewise.
8699 * config/mips/mips.c (mips_hard_regno_mode_ok_p,
8700 mips_class_max_nregs, mips_cannot_change_mode_class,
8701 mips_preferred_reload_class, mips_secondary_reload_class,
8702 mips_output_mi_thunk): Likewise.
8703 * config/mmix/mmix.c (mmix_preferred_reload_class,
8704 mmix_preferred_output_reload_class, mmix_secondary_reload_class):
8705 Likewise.
8706 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8707 Likewise.
8708 * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
8709 pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
8710 * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8711 * config/rs6000/rs6000.c (paired_expand_vector_init,
8712 rs6000_secondary_reload_class, rs6000_output_mi_thunk,
8713 compare_section_name, rs6000_memory_move_cost): Likewise.
8714 * config/s390/s390.c (s390_emit_compare_and_swap,
8715 s390_preferred_reload_class, s390_secondary_reload,
8716 legitimize_pic_address, legitimize_tls_address,
8717 legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
8718 s390_class_max_nregs): Likewise.
8719 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8720 * config/s390/s390.md: Likewise.
8721 * config/score/score-protos.h (score_secondary_reload_class,
8722 score_preferred_reload_class): Likewise.
8723 * config/score/score.c (score_preferred_reload_class,
8724 score_secondary_reload_class): Likewise.
8725 * config/score/score3.c (score3_output_mi_thunk,
8726 score3_preferred_reload_class, score3_secondary_reload_class,
8727 score3_hard_regno_mode_ok): Likewise.
8728 * config/score/score3.h (score3_preferred_reload_class,
8729 score3_secondary_reload_class): Likewise.
8730 * config/score/score7.c (score7_output_mi_thunk,
8731 score7_preferred_reload_class, score7_secondary_reload_class,
8732 score7_hard_regno_mode_ok): Likewise.
8733 * config/score/score7.h (score7_preferred_reload_class,
8734 score7_secondary_reload_class): Likewise.
8735 * config/sh/sh.c (prepare_move_operands, output_far_jump,
8736 output_branchy_insn, add_constant, gen_block_redirect,
8737 sh_insn_length_adjustment, sh_cannot_change_mode_class,
4ae8027b 8738 sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
0a2aaacc
KG
8739 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
8740 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
8741 xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
8742 xstormy16_preferred_reload_class): Likewise.
8743 * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
8744 xtensa_expand_atomic, override_options,
8745 xtensa_preferred_reload_class, xtensa_secondary_reload_class):
8746 Likewise.
8747 * reorg.c (try_merge_delay_insns): Likewise.
8748 * tree.c (merge_dllimport_decl_attributes): Likewise.
8749
8750 * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
8751
1b77ee03
MM
87522008-08-06 Michael Matz <matz@suse.de>
8753
8754 * Makefile.in (write_entries_to_file): Quote words.
8755 * gengtype.c: (read_input_line): Skip over leading white-space.
8756
6d656178
MG
87572008-08-06 Marc Gauthier <marc@tensilica.com>
8758
8759 * config.gcc: Match more processor names for Xtensa.
8760 * configure.ac: Likewise.
8761 * doc/install.texi (Specific): Likewise.
8762 * configure: Regenerate.
8763
82d6e6fc
KG
87642008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8765
8766 * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
8767 * calls.c (avoid_likely_spilled_reg): Likewise.
8768 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
8769 * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
8770 * config/i386/i386.c (ix86_expand_special_args_builtin,
8771 ix86_secondary_reload): Likewise.
8772 * except.c (struct eh_region, gen_eh_region_catch,
8773 remove_unreachable_regions, duplicate_eh_regions,
8774 assign_filter_values, build_post_landing_pads,
8775 sjlj_find_directly_reachable_regions, remove_eh_handler,
8776 reachable_next_level, foreach_reachable_handler,
8777 can_throw_internal_1, can_throw_external_1,
8778 collect_one_action_chain): Likewise.
8779 * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
8780 * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
8781 * function.c (update_temp_slot_address, instantiate_new_reg,
8782 instantiate_virtual_regs_in_rtx,
8783 instantiate_virtual_regs_in_insn): Likewise.
8784 * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
8785 * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
8786 gimplify_cleanup_point_expr): Likewise.
8787 * ipa-cp.c (ipcp_lattice_changed): Likewise.
8788 * passes.c (next_pass_1): Likewise.
8789 * print-tree.c (print_node_brief, print_node): Likewise.
8790 * profile.c (branch_prob): Likewise.
8791 * tree-dump.c (dump_register): Likewise.
8792 * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
8793 Likewise.
8794 * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
8795 copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
8796 copy_edges_for_bb, copy_cfg_body, copy_tree_r,
8797 copy_arguments_for_versioning, copy_static_chain): Likewise.
8798 * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
8799 add_new_name_mapping, register_new_name_mapping): Likewise.
8800 * tree-mudflap.c (mf_xform_derefs): Likewise.
8801 * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
8802 get_init_expr, combine_chains): Likewise.
8803 * tree-pretty-print.c (dump_generic_node): Likewise.
8804 * tree-ssa-structalias.c (create_variable_info_for): Likewise.
8805 * tree-vrp.c (simplify_cond_using_ranges): Likewise.
8806 * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
8807 * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
8808
01973e26
L
88092008-08-06 H.J. Lu <hongjiu.lu@intel.com>
8810
8811 PR middle-end/37010
8812 * calls.c (expand_call): Use the biggest preferred stack
8813 boundary.
8814
46662f25
MM
88152008-08-06 Michael Matz <matz@suse.de>
8816
8817 PR target/36613
8818 * reload.c (push_reload): Merge in,out,in_reg,out_reg members
8819 for reused reload, instead of overwriting them.
8820
e94a448f
L
88212008-08-06 H.J. Lu <hongjiu.lu@intel.com>
8822
8823 PR middle-end/37009
8824 * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
8825 for incoming stack boundary.
8826
8827 * function.c (assign_parm_find_entry_rtl): Update
8828 parm_stack_boundary.
8829
8830 * function.h (rtl_data): Add parm_stack_boundary.
8831
8832 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
8833 parm_stack_boundary for incoming stack boundary.
8834
e088f04b
JM
88352008-08-06 Joseph Myers <joseph@codesourcery.com>
8836
8837 * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
8838 for unrepresentable subregs or treat them as equal to other regs
8839 or subregs with the same register number.
8840
753b34d7
AH
88412008-08-06 Aldy Hernandez <aldyh@redhat.com>
8842
8843 PR middle-end/35432
8844 * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
8845 if want_value.
8846
c3702ff9
JH
88472008-08-06 Jan Hubicka <jh@suse.cz>
8848
8849 * predict.c (maybe_hot_frequency_p): When profile is absent, all
8850 frequencies might be hot.
8851
e0a17959
AK
88522008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
8853
8854 * reload.c (find_reloads): Force constants into literal pool
8855 also if they are wrapped in a SUBREG.
8856
c275297b
MK
88572008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
8858
8859 PR target/35659
8860 * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
8861 * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
8862 Don't allow predicated instructions for data speculation.
8863 * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
8864 declaration.
8865
a0d33ff8
MK
88662008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
8867
8868 * haifa-sched.c (extend_global): Split to extend_global_data and
8869 extend_region_data. Update all uses.
8870 (extend_all): Rename to extend_block_data.
8871
07da1cfc
MK
88722008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
8873
8874 * sched-rgn.c (new_ready): Check if instruction can be
8875 speculatively scheduled before attempting speculation.
8876 (debug_rgn_dependencies): Remove wrongful assert.
8877
c7133425
BW
88782008-08-05 Bob Wilson <bob.wilson@acm.org>
8879
8880 * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
8a88c276 8881
fa1615d7 88822008-08-05 Bob Wilson <bob.wilson@acm.org>
8a88c276 8883
fa1615d7
BW
8884 * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
8885 (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
8886 va_size, and type_size.
8a88c276 8887
8bd20621
JM
88882008-08-04 Jason Merrill <jason@redhat.com>
8889
8890 PR c++/37016
8891 * tree-ssa.c (useless_type_conversion_p_1): Call langhook
8892 if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
8893
8a24bf04
RH
88942008-08-05 Richard Henderson <rth@redhat.com>
8895
8896 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
8897 * configure: Rebuild.
8898
7352e27c
AP
88992008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
8900
8901 PR tree-opt/37024
8902 * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
8903 instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
8904 is a conversion.
8905
d4ea4622
RH
89062008-08-05 Richard Henderson <rth@redhat.com>
8907
8908 * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
8909 * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
8910 * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
8911 * common.opt (fdwarf2-cfi-asm): New.
8912 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
8913 * config.in, configure: Rebuild.
8914 * dwarf2asm.c (dw2_asm_output_data_raw): New.
02bb8bce
UB
8915 (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
8916 New.
d4ea4622
RH
8917 (dw2_force_const_mem): Externalize.
8918 * dwarf2asm.h: Update.
8919 * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
8920 generate a real label.
8921 (output_cfi_directive): New.
8922 (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
8923 (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
8924 (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
8925 and .cfi_lsda.
8926 (dwarf2out_end_epilogue): Emit .cfi_endproc.
8927 (output_loc_operands_raw, output_loc_sequence_raw): New.
8928 (output_cfa_loc_raw): New.
8a88c276 8929
302c3d8e
PB
89302008-08-05 Paul Brook <paul@codesourcery.com>
8931
8932 * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
8933 * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
8934 (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
8935 (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3.
8936 * config/arm/arm.h (TARGET_VFPD32): Define.
8937 (TARGET_VFP3): Use TARGET_VFPD32.
8938 (fputype): Add FPUTYPE_VFP3D16.
8939 (LAST_VFP_REGNUM): Use TARGET_VFPD32.
8940 * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
8941 * config/arm/arm-cores.def: Add cortex-r4f.
8942 * config/arm/arm-tune.md: Regenerate.
8943
e3834d38
UW
89442008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8945
8946 * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
8947 Reword some comments throughout the file.
8948
8949 (MFC_MIN_DMA_LIST_ELEMENTS): New define.
8950 (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
02bb8bce
UB
8951 (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
8952 MFC_MIN_DMA_LIST_ELEMENTS.
8953 (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
8954 MFC_MAX_DMA_LIST_ELEMENTS.
e3834d38
UW
8955
8956 (MFC_START_ENABLE): Remove PPU-only define.
8957 (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
8958 (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
8959
8960 (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
8961 (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
8962 (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
8963 (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
8964 (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
8965 (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
8966 (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
8967
8968 (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
8969 (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
8970 (mfc_sdcrt, mfc_sdcrtst): Likewise.
8971 (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
8972
8973 (spu_read_machine_status): Fix typo.
8974
9e071d06
UW
89752008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8976
8977 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
8978 SUBREG of multi-word hard register.
8979 * config/spu/spu.c (valid_subreg): Likewise.
8980 (adjust_operand): Handle SUBREGs of multi-word hard registers.
8981
7eeef08e
RG
89822008-08-04 Richard Guenther <rguenther@suse.de>
8983
8984 * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
8985 the candidate with the stripped base if that base is different
8986 from the original base even for offset zero.
8987
8f45dcf8
RG
89882008-08-04 Richard Guenther <rguenther@suse.de>
8989
8990 PR middle-end/36691
8991 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
8992 check for no_overflow.
8993
26c86972
RG
89942008-08-04 Richard Guenther <rguenther@suse.de>
8995
8996 * tree-vect-transform.c (vectorizable_call): Fix tuplification.
8997
795dc4fc
PB
89982008-08-04 Paul Brook <paul@codesourcery.com>
8999
9000 * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
9001 (arm_order_regs_for_local_alloc): New function.
9002 * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
9003 prototype.
9004 * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
9005
6fc3c2b2
L
90062008-08-04 H.J. Lu <hongjiu.lu@intel.com>
9007
9008 PR target/37012
9009 * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
9010 instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
9011 (ix86_expand_epilogue): Likewise.
9012
5b2314f6
L
90132008-08-04 H.J. Lu <hongjiu.lu@intel.com>
9014
9015 * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
9016 in comments.
9017
b7c9c5ab
UB
90182008-08-03 Uros Bizjak <ubizjak@gmail.com>
9019
9020 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
9021 to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
9022 (*movv2sf_internal_rex64): Ditto.
9023
22660666
JH
90242008-08-03 Jan Hubicka <jh@suse.cz>
9025
9026 * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
9027 expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
9028 * expmed.c (expand_smod_pow2): Likewise.
9029
5617c135
UB
90302008-08-03 Uros Bizjak <ubizjak@gmail.com>
9031
9032 PR target/36992
9033 * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
9034 alternative 0 of operand 1.
9035 (*vec_concatv2di_rex64_sse): Ditto.
9036 (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
9037 of operand 1.
9038 (*sse2_storeq_rex64): Penalize allocation of "r" registers.
9039 * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
9040 of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
9041 (*movv2sf_internal_rex64): Ditto.
9042
ba63dfb9
RG
90432008-08-02 Richard Guenther <rguenther@suse.de>
9044
9045 PR target/35252
9046 * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
9047 (ssedoublesizemode): New mode attribute.
9048 (sse_shufps): Call gen_sse_shufps_v4sf.
9049 (sse_shufps_1): Macroize.
9050 (sse2_shufpd): Call gen_Sse_shufpd_v2df.
9051 (sse2_shufpd_1): Macroize.
9052 (vec_extract_odd, vec_extract_even): New expanders.
9053 (vec_interleave_highv4sf, vec_interleave_lowv4sf,
9054 vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
9055 * i386.c (ix86_expand_vector_init_one_nonzero): Call
9056 gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
9057 (ix86_expand_vector_set): Likewise.
9058 (ix86_expand_reduc_v4sf): Likewise.
9059
c9234c8d
DK
90602008-08-01 Doug Kwan <dougkwan@google.com>
9061
9062 * matrix-reorg.c: Re-enable all code.
9063 (struct malloc_call_data): Change CALL_STMT to gimple type.
9064 (collect_data_for_malloc_call): Tuplify.
5617c135 9065 (struct access_site_info): Change STMT to gimple type.
c9234c8d
DK
9066 (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
9067 and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
9068 (struct free_info): Change STMT to gimple type.
5617c135 9069 (struct matrix_access_phi_node): Change PHI to gimple type.
c9234c8d
DK
9070 (get_inner_of_cast_expr): Remove.
9071 (may_flatten_matrices_1): Tuplify.
9072 (may_flatten_matrices): Ditto.
9073 (mark_min_matrix_escape_level): Ditto.
5617c135 9074 (ssa_accessed_in_tree): Refactor statement RHS related code into ...
c9234c8d
DK
9075 (ssa_accessed_in_call_rhs): New
9076 (ssa_accessed_in_assign_rhs): New
9077 (record_access_alloc_site_info): Tuplify.
9078 (add_allocation_site): Ditto.
9079 (analyze_matrix_allocation_site): Ditto.
9080 (analyze_transpose): Ditto.
9081 (get_index_from_offset): Ditto.
9082 (update_type_size): Ditto.
9083 (analyze_accesses_for_call_expr): Tuplify and renamed into ...
9084 (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
9085 (analyze_accesses_for_phi_node): Tuplify.
9086 (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
9087 (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
9088 (analyze_matrix_accesses): Tuplify.
9089 (check_var_data): New call-back type for check_var_notmodified_p.
9090 (check_var_notmodified_p): Tuplify and use call-back struct to
9091 return statement found.
9092 (can_calculate_expr_before_stmt): Factor out statement related code
9093 into ...
9094 (can_calculate_stmt_before_stmt): New.
5617c135 9095 (check_allocation_function): Tuplify.
c9234c8d
DK
9096 (find_sites_in_func): Ditto.
9097 (record_all_accesses_in_func): Ditto.
9098 (transform_access_sites): Ditto.
9099 (transform_allocation_sites): Ditto.
9100 (matrix_reorg): Re-enable.
9101 (gate_matrix_reorg): Re-enable.
9102
07b11a21
JJ
91032008-08-01 Jakub Jelinek <jakub@redhat.com>
9104
9105 * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
9106 for labels for which it hasn't been set yet. If it has been set,
9107 stop walking insns and continue with next worklist item.
9108 (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
9109 if the only BARRIER is at the very end of a function.
9110
d015f7cc
L
91112008-08-01 H.J. Lu <hongjiu.lu@intel.com>
9112
9113 * cfgexpand.c (expand_stack_alignment): Assert that
9114 stack_realign_drap and drap_rtx must match.
9115
9116 * function.c (instantiate_new_reg): If DRAP is used to realign
9117 stack, replace virtual_incoming_args_rtx with internal arg
9118 pointer.
9119
678e7c65
RG
91202008-08-01 Richard Guenther <rguenther@suse.de>
9121
9122 * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
9123 loop information only if we initialized it.
9124 (execute_pre): Call fini_pre with in_fre.
9125 * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
9126 if we do not unroll because we hit max-completely-peeled-insns.
9127 Use our estimation for consistency, do allow shrinking.
9128
2568f82a
L
91292008-08-01 H.J. Lu <hongjiu.lu@intel.com>
9130
9131 * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
9132 with MIN_STACK_BOUNDARY.
9133 (ix86_update_stack_boundary): Likewise.
9134 (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
9135 STACK_BOUNDARY.
9136
9137 * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
9138 (MIN_STACK_BOUNDARY): This.
9139
df8fa700
RG
91402008-08-01 Richard Guenther <rguenther@suse.de>
9141
9142 PR middle-end/36997
9143 * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
9144
5c3554b7
RG
91452008-08-01 Richard Guenther <rguenther@suse.de>
9146
9147 PR tree-optimization/36988
9148 * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
9149 do not matter if that doesn't change volatile qualification.
9150
47ad7893
PB
91512008-08-01 Paolo Bonzini <bonzini@gnu.org>
9152
9153 * configure.ac: Do not generate libada-mk. Do not subst
9154 host_cc_for_libada.
9155 * libada-mk.in: Remove.
9156 * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
9157 * configure: Regenerate.
9158
91592008-08-01 Basile Starynkevitch <basile@starynkevitch.net>
9160
8e352cd3
BS
9161 * tree-pass.h: Added comment about not dumping passes with name
9162 starting with star in struct opt_pass.
9163 * passes.c (register_dump_files_1): Don't do dump for a pass with
9164 name starting with star.
9165 * doc/passes.texi (Pass manager): Mention pass names and special
9166 meaning of star prefix to avoid dump.
9167
f2d6ca50
AN
91682008-07-31 Adam Nemet <anemet@caviumnetworks.com>
9169
9170 * config.gcc (mipsisa64r2*-*-linux*): New configuration. Set ISA
9171 to MIPS64r2.
9172 * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
9173 (ISA_MIPS64R2): New macro.
9174 (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
9175 (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
9176 ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
9177 ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
9178 ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
9179 ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
9180 ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
9181 (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
9182 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
9183 Move up to keep list alphabetically sorted.
9184 (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
9185 * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
9186 processor.
9187 * doc/invoke.texi (MIPS Options): Add -mips64r2.
9188 (-march=@var{arch}): Add mips64r2.
9189
24f9c418
L
91902008-07-31 H.J. Lu <hongjiu.lu@intel.com>
9191
9192 * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
9193
90d245c5
SE
91942008-07-31 Steve Ellcey <sje@cup.hp.com>
9195
9196 * expr.c (expand_assignment): Check for complete type.
9197
d2d93c32
L
91982008-07-31 H.J. Lu <hongjiu.lu@intel.com>
9199
9200 PR debug/36977
9201 * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
9202
9203 * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
9204 for stack alignment.
9205
5617c135 9206 * function.h (rtl_data): Add stack_realign_tried. Update comments.
d2d93c32 9207
c983efce
KK
92082008-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
9209
9210 * config/sh/sh.c (sh_canonical_va_list_type): Remove.
5617c135 9211 (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
c983efce 9212
88e2c810
JJ
92132008-07-31 Jakub Jelinek <jakub@redhat.com>
9214
9215 PR rtl-optimization/36419
9216 * dwarf2out.c (barrier_args_size): New variable.
9217 (compute_barrier_args_size, compute_barrier_args_size_1): New
9218 functions.
9219 (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
9220 if not called yet in the current function, use barrier_args_size
9221 array to find the new args_size value.
9222 (dwarf2out_frame_debug): Free and clear barrier_args_size.
9223
fc74cbc4
L
92242008-07-31 H.J. Lu <hongjiu.lu@intel.com>
9225
9226 PR debug/36980
9227 * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
9228 rule 19.
9229
d7831fdb
L
92302008-07-31 H.J. Lu <hongjiu.lu@intel.com>
9231
9232 PR debug/36976
9233 * dwarf2out.c (dwarf2out_args_size_adjust): New.
9234 (dwarf2out_stack_adjust): Use it.
9235 (dwarf2out_frame_debug_expr): Likewise.
9236
12aea97a
RG
92372008-07-31 Richard Guenther <rguenther@suse.de>
9238
9239 PR tree-optimization/36978
9240 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
9241 the generated condition.
9242
2dc74010
RG
92432008-07-31 Richard Guenther <rguenther@suse.de>
9244
9245 * passes.c (init_optimization_passes): Always call
9246 pass_early_warn_uninitialized.
5617c135 9247 * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
2dc74010
RG
9248 * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
9249 * doc/passes.texi (Warn for uninitialized variables): Adjust.
9250
b3e200e1
JJ
92512008-07-31 Jakub Jelinek <jakub@redhat.com>
9252
f9555f40
JJ
9253 PR c/36970
9254 * builtins.c (maybe_emit_free_warning): New function.
9255 (expand_builtin): Process BUILT_IN_FREE even at -O0. Call
9256 maybe_emit_free_warning for BUILT_IN_FREE.
9257
1e1d3887
JJ
9258 PR debug/36278
9259 * dwarf2out.c (get_context_die): New function.
9260 (force_decl_die, force_type_die): Use it.
9261 (dwarf2out_imported_module_or_decl): Likewise. If base_type_die
9262 returns NULL, force generation of DW_TAG_typedef and put that into
9263 DW_AT_import.
9264
b3e200e1
JJ
9265 PR preprocessor/36649
9266 * c-pch.c (c_common_read_pch): Save and restore
9267 line_table->trace_includes across PCH restore.
9268
01ddebf2
EB
92692008-07-30 Eric Botcazou <ebotcazou@adacore.com>
9270
9271 PR ada/36554
9272 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
9273
e49cf927 92742008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
b8c71e40
RAE
9275
9276 PR 36974
b3e200e1 9277 * final.c (call_from_call_insn): Handle COND_EXEC.
b8c71e40 9278
90c700cd
L
92792008-07-30 H.J. Lu <hongjiu.lu@intel.com>
9280
9281 * builtins.c (std_gimplify_va_arg_expr): Replace
9282 PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
9283 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
9284
2e3f842f
L
92852008-07-30 Joey Ye <joey.ye@intel.com>
9286 H.J. Lu <hongjiu.lu@intel.com>
9287
9288 * builtins.c (expand_builtin_setjmp_receiver): Replace
9289 virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
9290 (expand_builtin_apply_args_1): Likewise.
9291 (expand_builtin_longjmp): Need DRAP for stack alignment.
9292 (expand_builtin_apply): Likewise.
9293
9294 * caller-save.c (setup_save_areas): Call assign_stack_local_1
9295 instead of assign_stack_local to allow alignment reduction.
9296
9297 * calls.c (emit_call_1): Need DRAP for stack alignment if
9298 return pops.
9299 (expand_call): Replace virtual_incoming_args_rtx with
9300 crtl->args.internal_arg_pointer.
9301 * stmt.c (expand_nl_goto_receiver): Likewise.
9302
9303 * cfgexpand.c (get_decl_align_unit): Estimate stack variable
9304 alignment and store to stack_alignment_estimated and
9305 max_used_stack_slot_alignment.
9306 (expand_one_var): Likewise.
9307 (expand_stack_alignment): New function.
9308 (tree_expand_cfg): Initialize max_used_stack_slot_alignment
9309 and stack_alignment_estimated fields in rtl_data. Call
9310 expand_stack_alignment at end.
9311
9312 * defaults.h (INCOMING_STACK_BOUNDARY): New.
9313 (MAX_STACK_ALIGNMENT): Likewise.
9314 (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
9315 (SUPPORTS_STACK_ALIGNMENT): Likewise.
9316
9317 * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
9318 stack alignment when generating virtual registers.
9319
9320 * function.c (assign_stack_local): Renamed to ...
9321 (assign_stack_local_1): This. Add a parameter to indicate
9322 if it is OK to reduce alignment.
9323 (assign_stack_local): Use it.
9324 (instantiate_new_reg): Instantiate virtual incoming args rtx
9325 to vDRAP if stack realignment and DRAP is needed.
9326 (assign_parms): Collect parameter/return type alignment and
9327 contribute to stack_alignment_estimated.
9328 (locate_and_pad_parm): Likewise.
9329 (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
9330 with crtl->args.internal_arg_pointer.
9331
9332 * function.h (rtl_data): Add new field drap_reg,
9333 max_used_stack_slot_alignment, stack_alignment_estimated,
9334 stack_realign_needed, need_drap, stack_realign_processed and
9335 stack_realign_finalized.
9336 (stack_realign_fp): New macro.
9337 (stack_realign_drap): Likewise.
9338
9339 * global.c (compute_regsets): Frame pointer is needed when
9340 stack is realigned. Can eliminate frame pointer when stack is
9341 realigned and dynamic realigned argument pointer isn't used.
9342
9343 * reload1.c (update_eliminables): Frame pointer is needed
9344 when stack is realigned.
9345 (init_elim_table): Can eliminate frame pointer when stack is
9346 realigned and dynamic realigned argument pointer isn't used.
9347
9348 * rtl.h (assign_stack_local_1): Declare new funtion.
9349
9350 * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
9351 (TARGET_GET_DRAP_RTX): Likewise.
9352 (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
9353 TARGET_GET_DRAP_RTX.
9354
5617c135 9355 * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
2e3f842f
L
9356
9357 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
9358 STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
9359
93602008-07-30 Xuepeng Guo <xuepeng.guo@intel.com>
9361 H.J. Lu <hongjiu.lu@intel.com>
9362
9363 * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
9364 vdrap_reg, stack_realign and drap_reg_saved.
9365 (add_cfi): Don't allow redefining CFA when DRAP is used.
9366 (reg_save): Handle stack alignment.
9367 (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
9368 alignment. Don't generate DWARF information for (set fp sp)
9369 when DRAP is used.
9370 (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
9371 to INVALID_REGNUM.
9372 (int_loc_descriptor): Move prototype forward. Also define if
9373 DWARF2_UNWIND_INFO is true.
9374 (output_cfa_loc): Handle DW_CFA_expression.
9375 (build_cfa_aligned_loc): New.
9376 (based_loc_descr): Update assert for stack realign. For local
9377 variables, use sp+offset when stack is aligned without drap and
9378 fp+offset when stack is aligned with drap. For arguments, use
9379 cfa+offset when drap is used to align stack.
9380
93812008-07-30 Joey Ye <joey.ye@intel.com>
9382 H.J. Lu <hongjiu.lu@intel.com>
9383
9384 * config/i386/i386.c (ix86_force_align_arg_pointer_string):
9385 Break long line.
9386 (ix86_gen_andsp): New.
9387 (ix86_user_incoming_stack_boundary): Likewise.
9388 (ix86_default_incoming_stack_boundary): Likewise.
9389 (ix86_incoming_stack_boundary): Likewise.
9390 (ix86_can_eliminate): Likewise.
9391 (find_drap_reg): Likewise.
9392 (ix86_update_stack_boundary): Likewise.
9393 (ix86_get_drap_rtx): Likewise.
9394 (ix86_finalize_stack_realign_flags): Likewise.
9395 (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
9396 (TARGET_GET_DRAP_RTX): Likewise.
9397 (override_options): Overide option value for new options.
9398 (ix86_function_ok_for_sibcall): Remove check for
9399 force_align_arg_pointer.
9400 (ix86_handle_cconv_attribute): Likewise.
9401 (ix86_function_regparm): Likewise.
5617c135 9402 (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
2e3f842f
L
9403 (ix86_va_start): Replace virtual_incoming_args_rtx with
9404 crtl->args.internal_arg_pointer.
9405 (ix86_select_alt_pic_regnum): Check DRAP register.
9406 (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
9407 (ix86_compute_frame_layout): Compute frame layout wrt stack
9408 realignment.
5617c135 9409 (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
2e3f842f
L
9410 (ix86_expand_prologue): Decide if stack realignment is needed
9411 and generate prologue code accordingly.
9412 (ix86_expand_epilogue): Generate epilogue code wrt stack
9413 realignment is really needed or not.
8a88c276 9414
2e3f842f
L
9415 * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
9416 (ABI_STACK_BOUNDARY): Likewise.
9417 (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
9418 (STACK_REALIGN_DEFAULT): Likewise.
9419 (INCOMING_STACK_BOUNDARY): Likewise.
9420 (MAX_STACK_ALIGNMENT): Likewise.
9421 (ix86_incoming_stack_boundary): Likewise.
9422 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
9423 (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
9424 (CAN_ELIMINATE): Defined with ix86_can_eliminate.
9425 (machine_function): Remove force_align_arg_pointer.
9426
9427 * config/i386/i386.md (BX_REG): New.
9428 (R13_REG): Likewise.
9429
9430 * config/i386/i386.opt (mforce_drap): New.
9431 (mincoming-stack-boundary): Likewise.
9432 (mstackrealign): Add Init(-1).
9433
9434 * config/i386/i386-protos.h (ix86_can_eliminate): New
9435
94362008-07-30 H.J. Lu <hongjiu.lu@intel.com>
9437
9438 * doc/extend.texi: Update force_align_arg_pointer.
9439
9440 * doc/invoke.texi: Document -mincoming-stack-boundary. Update
9441 -mstackrealign.
9442
9443 * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
9444 (INCOMING_STACK_BOUNDARY): Likewise.
9445 (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
9446 (TARGET_GET_DRAP_RTX): Likewise.
9447
22129589
AS
94482008-07-30 Andreas Schwab <schwab@suse.de>
9449
9450 PR rtl-optimization/36929
9451 * dse.c (replace_inc_dec): Use emit_insn_before instead of
9452 add_insn_before and fix argument order.
9453 (replace_inc_dec_mem): Handle NULL rtx.
9454
35596784
AJ
94552008-07-30 Andrew Jenner <andrew@codesourcery.com>
9456
9457 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
22129589 9458 function.
35596784
AJ
9459 (arm_compute_initial_elimination_offset): Use it.
9460 (arm_compute_save_reg_mask): Include static chain save slot when
9461 calculating alignment.
9462 (arm_get_frame_offsets): Ditto.
9463 (thumb1_compute_save_reg_mask): Ensure we have a low register saved
9464 that we can use to decrement the stack when the stack decrement
9465 could be too big for an immediate value in a single insn.
9466 (thumb1_expand_prologue): Avoid using r12 for stack decrement.
9467
5f8ecf45
RG
94682008-07-30 Richard Guenther <rguenther@suse.de>
9469
9470 PR tree-optimization/36967
9471 * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
9472 Release defs of statements we remove.
9473
44bfa35b
NF
94742008-07-30 Nathan Froyd <froydnj@codesourcery.com>
9475
22129589
AS
9476 * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
9477 instead of NULL_RTVEC.
44bfa35b 9478
54ce9cc2
NF
94792008-07-30 Nathan Froyd <froydnj@codesourcery.com>
9480
9481 PR target/35866
9482
9483 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
9484 vector modes.
9485
e49cf927 94862008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
f410e1b3 9487
5617c135
UB
9488 * final.c (call_from_call_insn): New.
9489 (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
f410e1b3 9490
00afcaa0
PB
94912008-07-30 Paolo Bonzini <bonzini@gnu.org>
9492
9493 * configure.ac: Substitute ADA_CFLAGS.
9494 * configure: Regenerate.
9495 * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
9496 * Makefile.in: Remove mention of X_* variables.
9497 * config/pa/x-ada-hpux10: Remove.
9498 * config/pa/x-ada: Remove.
9499
9500 * doc/fragments.texi: Update.
9501
f90354fd 95022008-07-30 Olivier Hainque <hainque@adacore.com>
c67a9338
OH
9503
9504 * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
9505 * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
9506 __dso_handle explicitly here.
9507
6715192c
MLI
95082008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9509
9510 PR 34389
9511 * c-typeck.c (build_binary_op): Encapsulate code into...
9512 * c-common.c (shorten_binary_op): ...this new function.
9513 (conversion_warning): Use the new function. Handle non-negative
9514 constant in bitwise-and.
9515 * c-common.h (shorten_binary_op): Declare.
22129589 9516
473e1062
OH
95172008-07-30 Olivier Hainque <hainque@adacore.com>
9518
9519 * scan.c (make_sstring_space): Add explicit conversions of
9520 allocator's return value.
9521 * fix-header.c (recognized_function): Likewise.
9522
70b1e376
RW
95232008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9524
9525 * doc/cpp.texi: Update to GFDL 1.2.
9526 * doc/gcc.texi: Do not list GPL as Invariant Section.
9527 * doc/gccint.texi: Likewise. Update copyright years.
9528 * doc/install.texi: Update copyright years.
9529
d161cb2d
AM
95302008-07-30 Alan Modra <amodra@bigpond.net.au>
9531
9532 PR target/36955
9533 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
9534 a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
9535
54dfd46b
JH
95362008-07-29 Jan Hubicka <jh@suse.cz>
9537
9538 * c-decl.c (merge_decls): Do not handle DECL_INLINE.
9539 (grokdeclarator): Likewise.
9540 * langhooks.c (lhd_warn_unused_global_decl): Use
9541 DECL_DECLARED_INLINE_P.
9542 * print-tree.c (print_node): Remove DECL_INLINE check.
9543
ce94d354
RG
95442008-07-29 Richard Guenther <rguenther@suse.de>
9545
9546 PR tree-optimization/36945
9547 * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
9548 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
9549 Record invariant addresses un-decomposed.
9550 (copy_reference_ops_from_call): Record reference call
9551 arguments properly. Simplify.
9552 * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
9553 helper split out from ...
9554 (create_component_ref_by_pieces): ... here. Simplify.
9555 Prepare for recursive invocation for call arguments.
9556 (create_expression_by_pieces): Adjust call to
9557 create_component_ref_by_pieces.
9558 (compute_avail): Process operand 2 of reference ops.
9559
0f3a057a
RG
95602008-07-29 Richard Guenther <rguenther@suse.de>
9561
5617c135 9562 * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
0f3a057a 9563
11cc4546
JJ
95642008-07-29 Jakub Jelinek <jakub@redhat.com>
9565
9566 * c-format.c (check_format_types): Revert unwanted checkin.
9567
e90acd93
JH
95682008-07-29 Jan Hubicka <jh@suse.cz>
9569
9570 * flags.h (flag_really_no_inline): Remove.
9571 * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
9572 * toplev.c (flag_really_no_inline): Remove.
9573 * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
9574 * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
9575 (cgraph_decide_inlining_incrementally): Likewise.
9576 (compute_inline_parameters): Likewise.
9577 * opts.c (decode_options): Simplify.
9578 * c-opts.c (c_common_post_options): Do not set flag_no_inline.
9579 * common.opt (finline): Initialize to 1.
9580 * tree-inline.c (inlinable_function_p): Check flag_no_inline.
9581
95822008-07-29 Jan Hubicka <jh@suse.cz>
bf08ebeb
JH
9583
9584 * predict.c (always_optimize_for_size_p): New function.
9585 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
9586 optimize_edge_for_size_p, optimize_edge_for_speed_p,
9587 optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
9588 functions.
9589 (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
9590 * function.c (prepare_function_start): Set default profile.
9591 * function.h (rtl_data): Add maybe_hot_insn_p.
9592 * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
9593 (construct_exit_block): Likewise.
9594 (tree_expand_cfg): Likewise.
9595 * basic-block.h
9596 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
9597 optimize_edge_for_size_p, optimize_edge_for_speed_p,
9598 optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
9599 (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
9600 Declare.
9601
e27fb29c
MLI
96022008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9603
9604 PR 34985
9605 * c-decl.c (merge_decls): Merge USED flags.
22129589 9606
8c54989a
KK
96072008-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
9608
9609 * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
9610 valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
9611 next_stack, lab_false and lab_over trees.
9612
4d2ad64c
RG
96132008-07-28 Richard Guenther <rguenther@suse.de>
9614
9615 PR tree-optimization/36957
9616 * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
9617 (useless_type_conversion_p): Remove.
9618 (types_compatible_p): Remove.
9619 * gimple.h (tree_ssa_useless_type_conversion): Declare.
9620 (useless_type_conversion_p): Declare.
9621 (types_compatible_p): Declare.
9622 (gimple_expr_type): Return the base type only if it is
9623 trivially convertible to the subtype.
9624
f6e377f8
AT
96252008-07-28 Andreas Tobler <a.tobler@schweiz.org>
9626
9627 * configure.ac: Use the m4_do macro to concatenate the warnings into
9628 one string in ACX_PROG_CC_WARNING_OPTS,
02bb8bce
UB
9629 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
9630 ACX_PROG_CC_WARNINGS_ARE_ERRORS.
f6e377f8
AT
9631 * configure: Regenerate.
9632
1961418e
RG
96332008-07-28 Richard Guenther <rguenther@suse.de>
9634
9635 * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
9636 (insert_fake_stores): Remove.
9637 (realify_fake_stores): Likewise.
9638 (execute_pre): Remove dead code.
5617c135 9639 * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
1961418e
RG
9640 (find_func_aliases): Deal with it here instead.
9641 Re-enable gcc_unreachable call.
9642
726a989a
RB
96432008-07-28 Richard Guenther <rguenther@suse.de>
9644
9645 Merge from gimple-tuples-branch.
9646
9647 * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
9648 * gimple.def: New file.
9649 * gsstruct.def: Likewise.
9650 * gimple-iterator.c: Likewise.
9651 * gimple-pretty-print.c: Likewise.
9652 * tree-gimple.c: Removed. Merged into ...
9653 * gimple.c: ... here. New file.
9654 * tree-gimple.h: Removed. Merged into ...
9655 * gimple.h: ... here. New file.
9656
9657 * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
9658 * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
9659 --enable-checking=gimple flag.
9660 * config.in: Likewise.
9661 * configure: Regenerated.
9662
9663 * tree-ssa-operands.h: Tuplified.
9664 * tree-vrp.c: Likewise.
9665 * tree-loop-linear.c: Likewise.
9666 * tree-into-ssa.c: Likewise.
9667 * tree-ssa-loop-im.c: Likewise.
9668 * tree-dump.c: Likewise.
9669 * tree-complex.c: Likewise.
9670 * cgraphbuild.c: Likewise.
9671 * tree-ssa-threadupdate.c: Likewise.
9672 * tree-ssa-loop-niter.c: Likewise.
9673 * tree-pretty-print.c: Likewise.
9674 * tracer.c: Likewise.
9675 * gengtype.c: Likewise.
9676 * tree-loop-distribution.c: Likewise.
9677 * tree-ssa-loop-unswitch.c: Likewise.
9678 * cgraph.c: Likewise.
9679 * cgraph.h: Likewise.
9680 * tree-ssa-loop-manip.c: Likewise.
9681 * value-prof.c: Likewise.
9682 * tree-ssa-loop-ch.c: Likewise.
9683 * tree-tailcall.c: Likewise.
9684 * value-prof.h: Likewise.
9685 * tree.c: Likewise.
9686 * tree.h: Likewise.
9687 * tree-pass.h: Likewise.
9688 * ipa-cp.c: Likewise.
9689 * tree-scalar-evolution.c: Likewise.
9690 * tree-scalar-evolution.h: Likewise.
9691 * target.h: Likewise.
9692 * lambda-mat.c: Likewise.
9693 * tree-phinodes.c: Likewise.
9694 * diagnostic.h: Likewise.
9695 * builtins.c: Likewise.
9696 * tree-ssa-alias-warnings.c: Likewise.
9697 * cfghooks.c: Likewise.
9698 * fold-const.c: Likewise.
9699 * cfghooks.h: Likewise.
9700 * omp-low.c: Likewise.
9701 * tree-ssa-dse.c: Likewise.
9702 * ipa-reference.c: Likewise.
9703 * tree-ssa-uncprop.c: Likewise.
9704 * toplev.c: Likewise.
9705 * tree-gimple.c: Likewise.
9706 * tree-gimple.h: Likewise.
9707 * tree-chrec.c: Likewise.
9708 * tree-chrec.h: Likewise.
9709 * tree-ssa-sccvn.c: Likewise.
9710 * tree-ssa-sccvn.h: Likewise.
9711 * cgraphunit.c: Likewise.
9712 * tree-ssa-copyrename.c: Likewise.
9713 * tree-ssa-ccp.c: Likewise.
9714 * tree-ssa-loop-ivopts.c: Likewise.
9715 * tree-nomudflap.c: Likewise.
9716 * tree-call-cdce.c: Likewise.
9717 * ipa-pure-const.c: Likewise.
9718 * c-format.c: Likewise.
9719 * tree-stdarg.c: Likewise.
9720 * tree-ssa-math-opts.c: Likewise.
9721 * tree-ssa-dom.c: Likewise.
9722 * tree-nrv.c: Likewise.
9723 * tree-ssa-propagate.c: Likewise.
9724 * ipa-utils.c: Likewise.
9725 * tree-ssa-propagate.h: Likewise.
9726 * tree-ssa-alias.c: Likewise.
9727 * gimple-low.c: Likewise.
9728 * tree-ssa-sink.c: Likewise.
9729 * ipa-inline.c: Likewise.
9730 * c-semantics.c: Likewise.
9731 * dwarf2out.c: Likewise.
9732 * expr.c: Likewise.
9733 * tree-ssa-loop-ivcanon.c: Likewise.
9734 * predict.c: Likewise.
9735 * tree-ssa-loop.c: Likewise.
9736 * tree-parloops.c: Likewise.
9737 * tree-ssa-address.c: Likewise.
9738 * tree-ssa-ifcombine.c: Likewise.
9739 * matrix-reorg.c: Likewise.
9740 * c-decl.c: Likewise.
9741 * tree-eh.c: Likewise.
9742 * c-pretty-print.c: Likewise.
9743 * lambda-trans.c: Likewise.
9744 * function.c: Likewise.
9745 * langhooks.c: Likewise.
9746 * ebitmap.h: Likewise.
9747 * tree-vectorizer.c: Likewise.
9748 * function.h: Likewise.
9749 * langhooks.h: Likewise.
9750 * tree-vectorizer.h: Likewise.
9751 * ipa-type-escape.c: Likewise.
9752 * ipa-type-escape.h: Likewise.
9753 * domwalk.c: Likewise.
9754 * tree-if-conv.c: Likewise.
9755 * profile.c: Likewise.
9756 * domwalk.h: Likewise.
9757 * tree-data-ref.c: Likewise.
9758 * tree-data-ref.h: Likewise.
9759 * tree-flow-inline.h: Likewise.
9760 * tree-affine.c: Likewise.
9761 * tree-vect-analyze.c: Likewise.
9762 * c-typeck.c: Likewise.
9763 * gimplify.c: Likewise.
9764 * coretypes.h: Likewise.
9765 * tree-ssa-phiopt.c: Likewise.
9766 * calls.c: Likewise.
9767 * tree-ssa-coalesce.c: Likewise.
9768 * tree.def: Likewise.
9769 * tree-dfa.c: Likewise.
9770 * except.c: Likewise.
9771 * except.h: Likewise.
9772 * cfgexpand.c: Likewise.
9773 * tree-cfgcleanup.c: Likewise.
9774 * tree-ssa-pre.c: Likewise.
9775 * tree-ssa-live.c: Likewise.
9776 * tree-sra.c: Likewise.
9777 * tree-ssa-live.h: Likewise.
9778 * tree-predcom.c: Likewise.
9779 * lambda.h: Likewise.
9780 * tree-mudflap.c: Likewise.
9781 * ipa-prop.c: Likewise.
9782 * print-tree.c: Likewise.
9783 * tree-ssa-copy.c: Likewise.
9784 * ipa-prop.h: Likewise.
9785 * tree-ssa-forwprop.c: Likewise.
9786 * ggc-page.c: Likewise.
9787 * c-omp.c: Likewise.
9788 * tree-ssa-dce.c: Likewise.
9789 * tree-vect-patterns.c: Likewise.
9790 * tree-ssa-ter.c: Likewise.
9791 * tree-nested.c: Likewise.
9792 * tree-ssa.c: Likewise.
9793 * lambda-code.c: Likewise.
9794 * tree-ssa-loop-prefetch.c: Likewise.
9795 * tree-inline.c: Likewise.
9796 * tree-inline.h: Likewise.
9797 * tree-iterator.c: Likewise.
9798 * tree-optimize.c: Likewise.
9799 * tree-ssa-phiprop.c: Likewise.
9800 * tree-vect-transform.c: Likewise.
9801 * tree-object-size.c: Likewise.
9802 * tree-outof-ssa.c: Likewise.
9803 * cfgloop.c: Likewise.
9804 * system.h: Likewise.
9805 * tree-profile.c: Likewise.
9806 * cfgloop.h: Likewise.
9807 * c-gimplify.c: Likewise.
9808 * c-common.c: Likewise.
9809 * tree-vect-generic.c: Likewise.
9810 * tree-flow.h: Likewise.
9811 * c-common.h: Likewise.
9812 * basic-block.h: Likewise.
9813 * tree-ssa-structalias.c: Likewise.
9814 * tree-switch-conversion.c: Likewise.
9815 * tree-ssa-structalias.h: Likewise.
9816 * tree-cfg.c: Likewise.
9817 * passes.c: Likewise.
9818 * ipa-struct-reorg.c: Likewise.
9819 * ipa-struct-reorg.h: Likewise.
9820 * tree-ssa-reassoc.c: Likewise.
9821 * cfgrtl.c: Likewise.
9822 * varpool.c: Likewise.
9823 * stmt.c: Likewise.
9824 * tree-ssanames.c: Likewise.
9825 * tree-ssa-threadedge.c: Likewise.
9826 * langhooks-def.h: Likewise.
9827 * tree-ssa-operands.c: Likewise.
9828 * config/alpha/alpha.c: Likewise.
9829 * config/frv/frv.c: Likewise.
9830 * config/s390/s390.c: Likewise.
9831 * config/m32c/m32c.c: Likewise.
9832 * config/m32c/m32c-protos.h: Likewise.
9833 * config/spu/spu.c: Likewise.
9834 * config/sparc/sparc.c: Likewise.
9835 * config/i386/i386.c: Likewise.
9836 * config/sh/sh.c: Likewise.
9837 * config/xtensa/xtensa.c: Likewise.
9838 * config/stormy16/stormy16.c: Likewise.
9839 * config/ia64/ia64.c: Likewise.
9840 * config/rs6000/rs6000.c: Likewise.
9841 * config/pa/pa.c: Likewise.
9842 * config/mips/mips.c: Likewise.
9843
0d48657d
SB
98442008-07-28 Simon Baldwin <simonb@google.com>
9845
9846 * c-pragma.c (handle_pragma_message): New function.
9847 (init_pragma): Register handle_pragma_message.
9848 * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
9849 documentation.
9850
21e6dd8f
VK
98512008-07-27 Victor Kaplansky <victork@il.ibm.com>
9852
9853 PR tree-optimization/35252
9854 * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
9855 REALPART_EXPR to be considered as same load operation.
9856
330e765e
EB
98572008-07-27 Eric Botcazou <ebotcazou@adacore.com>
9858
9859 PR tree-optimization/36830
9860 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
9861 (expressions_equal_p): Return false if only one operand is null.
9862
f0947430
GP
98632008-07-26 Gerald Pfeifer <gerald@pfeifer.com>
9864
9865 * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
9866 version requirements.
9867
4326ea40
OH
98682008-07-26 Olivier Hainque <hainque@adacore.com>
9869
9870 * collect2.c (symkind): New enum. Symbol kinds we care about.
9871 (is_ctor_dtor): Return symkind instead of int. Adjust prototype,
9872 code and head comment accordingly.
9873 (scan_prog_file): Use symkind names instead of bare integers.
22129589 9874
c37f4ba4
JH
98752008-07-25 Jan Hubicka <jh@suse.cz>
9876
5617c135
UB
9877 * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
9878 DECL_INLINE.
c37f4ba4
JH
9879 * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
9880 (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
9881 * dojump.c (clear_pending_stack_adjust): Likewise.
9882 * print-tree.c (print_node): Ignore DECL_INLINE.
9883 * tree-inline.c (inlinable_function_p): Likewise.
22129589 9884
a51fa0f4
MM
98852008-07-25 Michael Meissner <gnu@the-meissners.org>
9886
9887 * doc/extend.texi (hot attribute): Document that the hot attribute
9888 turns on -O3 for some ports.
9889 (cold attribute): Document that the cold attribute turns on -Os
9890 for some ports
9891
9892 * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
9893 reflect function specific option support.
9894
9895 * target.h (struct target_option_hooks): Add fields to say whether
9896 the cold attribute implies -Os and the hot attribute implies -O3.
9897
9898 * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
9899 By default, do not turn on -Os for cold functions.
9900 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
9901 not turn on -O3 for hot functions.
9902
9903 * c-common.c (handle_hot_attribute): Use target hook to determine
9904 if hot functions should enable -O3.
9905 (handle_cold_attribute): Use target hook to determine if cold
9906 functions should enable -Os.
9907
9908 * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
9909 (override_options): Move disable scheduling to
9910 optimization_options.
9911 (optimization_options): Disable scheduling here, not
9912 override_options.
9913 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9914 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9915
9916 * config/ia64/ia64.c (ia64_override_options): Move setting
9917 scheduling flags to ia64_optimization_options.
9918 (ia64_optimization_options): Disable scheduling options here, and
9919 not in ia64_override_options.
9920 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9921 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9922
99232008-07-25 H.J. Lu <hongjiu.lu@intel.com>
9924
9925 PR target/36936
9926 * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
9927
1fc8feb5
MJ
99282008-07-25 Martin Jambor <mjambor@suse.cz>
9929
9930 PR tree-optimization/36926
9931 * ipa-prop.c (ipa_analyze_call_uses): Call
9932 ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
9933
42dec64c
JM
99342008-07-25 Joseph Myers <joseph@codesourcery.com>
9935
9936 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
9937 movv2si_internal): Add mem = reg alternative.
9938
7a946186
AT
99392008-07-25 Andreas Tobler <a.tobler@schweiz.org>
9940
9941 PR bootstrap/36918
9942 * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
9943 DEFAULT_PCC_STRUCT_RETURN to 127.
9944
7e8b322a
JH
99452008-07-24 Jan Hubicka <jh@suse.cz>
9946
9947 * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
9948 (build_cgraph_edges): Likewise.
9949 * cgraph.c (cgraph_node): Do not update assembler hash.
9950 (cgraph_remove_node): Drop non-unit-at-a-time code.
9951 * tree-pass.h (pass_O0_always_inline): Remove.
9952 * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
9953 * toplev.c (process_options): Flag unit-at-a-time does not imply
9954 no section anchors.
9955 * cgraphunit.c: Update comments.
9956 (decide_is_function_needed): Drop non-unit-at-a-time mode.
9957 (cgraph_assemble_pending_functions): Remove.
9958 (cgraph_reset_node): Drop non-unit-at-a-time code.
9959 (cgraph_finalize_function): Likewise.
9960 (cgraph_analyze_function): Likewise.
9961 (cgraph_finalize_compilation_unit): Likewise.
9962 (cgraph_expand_function): Likewise.
9963 (cgraph_optimize): Likesise.
9964 (save_inline_function_body): Likewise.
9965 * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
9966 * tree-ssa-alias.c (maybe_be_aliased): Likewise.
9967 * ipa-inline.c: Update comments.
9968 (enum inlining_mode): remove INLINE_SPEED.
9969 (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
9970 (cgraph_mark_inline_edge): Likewise.
9971 (try_inline): Likewise.
9972 (cgraph_decide_inlining_incrementally): Likewise.
9973 (cgraph_gate_inlining): Remove.
9974 (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
9975 (cgraph_gate_early_inlining): Likewise.
9976 (gate_inline_passes): Remove.
9977 (pass_inline_parameters, pass_ipa_inline): Remove gates.
22129589 9978 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
7e8b322a
JH
9979 pass_O0_always_inline): Remove.
9980 * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
9981 * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
9982 * opts.c (no_unit_at_a_time_default): Remove.
9983 (decode_options): Remove flag_unit_at_a_time reset and warning.
9984 * opts.h (no_unit_at_a_time_default): Remove.
9985 * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
9986 early in GNU dialect.
9987 (merge_decls): Update comment; drop unit-at-a-time check.
9988 (finish_decl): Likewise.
9989 (grok_declaration): Remove flag_inline_trees code.
9990 (finish_functions): Return on function returning non-void on all
9991 statics.
9992 * ipa-tye-escape.c (gate_type_escape_vars): Remove.
9993 * cfgexpand.c (expand_one_static_var): Remove.
9994 (expand_one_var): Remove expand_one_static_var call.
9995 (expand_used_vars_for_block): Remove flag_unit_a_time check.
9996 * c-opts.c (c_common_post_options): Remove flag_inline_trees code
9997 and flag_unit_at_a-time compatibility checks.
9998 * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
9999 * tree-inline.c (flag_inline_trees): Remove.
10000 (inlinable_function_p): Don't check it.
10001 (expand_call_inline): Remove non-unit-at-a-time code.
10002 * tree-inline.h (flag_inline_trees): Remove.
10003 * tree-optimize.c (execute_early_local_optimizations): Remove
10004 unit-at-a-time checks.
10005 (tree_rest_of_compilation): Likewise.
10006 * combine.c (setup_incoming_promotions): Likewise.
10007 * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
10008 * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
10009 * passes.c (pass_inline_parameters): Update comments; remove
10010 O0_alwaysinline pass.
10011 (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
10012 (execute_one_pass): Likewise.
10013 * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
10014 (ix86_function_sseregparm): Likewise.
10015 * arm.c (arm_function_in_section_p): Likewise.
10016 * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
10017 * varpool.c: Update comments.
10018 (decide_is_variable_needed): Remove unit-at-a-time checks.
10019 (varpool_finalize_decl): Likewise.
10020
9ccd8574
KK
100212008-07-24 Kaz Kojima <kkojima@gcc.gnu.org>
10022
10023 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
10024 to 2 instead of -1.
5617c135 10025 (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
9ccd8574 10026
56b7e765
KT
100272008-07-24 Kai Tietz <kai.tietz@onevision.com>
10028
10029 * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
10030 imp symbol extension.
10031
22129589 10032 2008-07-23 Ian Lance Taylor <iant@google.com>
11522353
ILT
10033
10034 * tree-vrp.c (infer_value_range): Ignore asm statements when
10035 looking for memory accesses for -fdelete-null-pointer-checks.
10036
e816b6b5
BE
100372008-07-24 Ben Elliston <bje@au.ibm.com>
10038
10039 * config/spu/spu-c.c (__vector_keyword): New variable.
10040 (vector_keyword): Likewise.
10041 (spu_categorize_keyword): New function.
10042 (spu_macro_to_expand): Likewise.
10043 (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
10044 compiling an ISO C dialect.
10045
ce26ee21
BE
100462008-07-24 Ben Elliston <bje@au.ibm.com>
10047
10048 * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
10049 conventional usage.
10050
7326a39e
AL
100512008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
10052
10053 * configure: Regenerate.
10054 * configure.ac: Require texinfo 4.7.
10055 * doc/install.texi: Document texinfo 4.7 requirement.
10056
3e293154
MJ
100572008-07-23 Martin Jambor <mjambor@suse.cz>
10058
22129589 10059 * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
3e293154
MJ
10060 rather than for DECL_SAVED_TREE.
10061 * ipa-prop.c: Include diagnostic.h.
22129589 10062 (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
3e293154
MJ
10063 thoroughly.
10064 (ipa_detect_param_modifications): Function rewritten from scratch.
10065 (ipa_compute_jump_functions): Changed accesses to modification flags.
10066 (ipa_free_node_params_substructures): Update flags destruction.
10067 (ipa_node_duplication_hook): Update flags duplication.
10068 (ipa_print_all_params_modified): Updated flag access.
10069 * ipa-prop.h (struct ipa_param_flags): New structure.
22129589
AS
10070 (struct ipa_node_params): New field modification_analysis_done,
10071 modified_flags changed into param_flags.
10072 (ipa_is_ith_param_modified): Changed to use new flags.
3e293154
MJ
10073 * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
10074
10075 * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
10076 ipa-cp.c and split into two functions.
10077 (ipa_print_node_jump_functions): New function.
10078 (compute_scalar_jump_functions): New function.
10079 (type_like_member_ptr_p): New function.
10080 (compute_pass_through_member_ptrs): New function.
10081 (fill_member_ptr_cst_jump_function): New function.
10082 (determine_cst_member_ptr): New function.
10083 (compute_cst_member_ptr_arguments): New function.
10084 (ipa_compute_jump_functions): Complete rewrite.
10085 * ipa-prop.h (enum jump_func_type): Make explicit that we depend
10086 on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
10087 (struct ipa_member_ptr_cst): New structure.
10088 (union jump_func_value): New field member_cst.
10089 * ipa-cp.c (ipcp_lat_is_insertable): New function.
10090 (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
10091 jump function types.
10092 (ipcp_print_all_lattices): Slight fprintf rearrangement.
10093 (ipcp_print_all_structures): Call ipa_print_all_jump_functions
10094 instead of ipcp_print_all_jump_functions.
10095 (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
10096 only for replacable scalars.
10097
10098 * doc/invoke.texi (Optimize options): Add description of
10099 -findirect-inlining.
10100 * common.opt (flag_indirect_inlining): New flag.
22129589 10101 * opts.c (decode_options): Set flag_indirect_inlining when
3e293154
MJ
10102 optimize >= 3.
10103
10104 * ipa-inline.c: Include ipa-prop.h.
10105 (inline_indirect_intraprocedural_analysis): New function.
10106 (inline_generate_summary): Allocate parameter and argument info
10107 structures, call inline_indirect_intraprocedural_analysis on each
22129589 10108 node when doing indirect inlining and deallocate indirect inlining
3e293154
MJ
10109 data structures in the end.
10110 * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
10111 (free_all_ipa_structures_after_iinln): New function.
22129589 10112 (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
3e293154
MJ
10113 done.
10114 * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
10115
10116 * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
10117 (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
10118 of computing the frequency separately.
10119 (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
10120 of computing the frequency separately.
22129589 10121 * ipa-cp.c (ipcp_print_all_structures): Replace a call to
3e293154
MJ
10122 ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
10123 * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
10124 (ipa_get_stmt_member_ptr_load_param): New function.
10125 (ipa_is_ssa_with_stmt_def): New function.
10126 (ipa_note_param_call): New function.
10127 (ipa_analyze_call_uses): New function.
10128 (ipa_analyze_stmt_uses): New function.
10129 (ipa_analyze_params_uses): New function.
10130 (ipa_free_node_params_substructures): Also free the param_calls linked
10131 list.
02bb8bce
UB
10132 (ipa_node_duplication_hook): Also duplicate the param_calls
10133 linked list.
3e293154
MJ
10134 (ipa_print_node_param_flags): New function.
10135 (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
10136 (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
10137 * ipa-prop.h (struct ipa_param_flags): New field called.
10138 (struct ipa_param_call_note): New structure.
10139 (struct ipa_node_params): New fields param_calls and
10140 uses_analysis_done.
10141 (ipa_is_ith_param_called): New function.
10142 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10143 ipa_analyze_params_uses and dump parameter flags.
10144
10145 * ipa-inline.c (cgraph_decide_recursive_inlining): Call
10146 ipa_propagate_indirect_call_infos if performing indirect inlining,
10147 pass a new parameter new_edges to it.
10148 (add_new_edges_to_heap): New fucntion.
10149 (cgraph_decide_inlining_of_small_functions): New vector
10150 new_indirect_edges for newly found indirect edges , call
10151 ipa_propagate_indirect_call_infos after inlining.
10152 (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
10153 inlining if performing indirect inlining. Call
10154 free_all_ipa_structures_after_iinln when doing so too.
10155 (inline_generate_summary): Do not call
10156 free_all_ipa_structures_after_iinln here.
10157 * ipa-prop.c (update_jump_functions_after_inlining): New function.
10158 (print_edge_addition_message): New function.
10159 (update_call_notes_after_inlining): New function.
10160 (propagate_info_to_inlined_callees): New function.
10161 (ipa_propagate_indirect_call_infos): New function.
10162 * ipa-prop.h: Include cgraph.h
10163 (struct ipa_param_call_note): Fields reordered, new field processed.
10164 * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
10165 flag indirect_call.
10166 * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
10167 rediscovered call statements.
10168 * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
10169 (dump_cgraph_node): Dump also the indirect_call flag.
10170 (cgraph_clone_edge): Copy also the indirect_call flag.
10171 * tree-inline.c (copy_bb): Do not check for fndecls from call
10172 expressions, check for edge availability when moving clones.
10173 (get_indirect_callee_fndecl): New function.
10174 (expand_call_inline): If callee declaration is not apprent from
10175 the statement, try calling get_indirect_callee_fndecl. Do not
10176 issue warnings or call sorry when not inlinings an indirect edge.
10177 * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
10178
10179 * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
10180 bit more frandly to matching.
10181 * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
10182 * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
10183 * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
22129589 10184
e62fe68a
MM
101852008-07-23 Michael Meissner <gnu@the-meissners.org>
10186
10187 PR 36907
10188 * opth-gen.awk: Suppress function specific features when building
10189 target libraries.
10190 * optc-gen.awk: Ditto.
10191
fcf73884
MLI
101922008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10193
10194 PR 35058
10195 * diagnostic.c (pedwarn): Add opt parameter.
10196 (pedwarn0): New.
10197 * c-tree.h (pedwarn_init): Add opt parameter.
10198 (pedwarn_c90): Likewise.
10199 (pedwarn_c99): Likewise.
10200 * c-errors.c (pedwarn_c99): Likewise.
10201 (pedwarn_c90): Likewise.
10202 * toplev.h (pedwarn): Update declaration.
10203 (pedwarn0): Declare.
10204 * c-lex.c: All calls to pedwarn changed.
10205 * builtins.c: All calls to pedwarn changed.
10206 * toplev.c: All calls to pedwarn changed.
10207 * c-decl.c: All calls to pedwarn changed.
10208 * c-typeck.c: All calls to pedwarn changed.
10209 * c-common.c: All calls to pedwarn changed.
10210 * c-parser.c: All calls to pedwarn changed.
22129589 10211
f5ae72a9
MM
102122008-07-23 Michael Meissner <gnu@the-meissners.org>
10213 Karthik Kumar <karthikkumar@gmail.com>
10214
10215 * attribs.c (file scope): Include c-common.h.
10216 (decl_attributes): Add support for #pragma GCC optimize and
10217 #pragma GCC option.
10218
10219 * targhooks.c (default_can_inline_p): New function that is the
10220 default for the TARGET_CAN_INLINE_P target hook.
10221
10222 * targhooks.h (default_can_inline_p): Add declaration.
10223
10224 * tree.c (cl_optimization_node): New static tree for building
10225 OPTIMIZATION_NODE tree.
10226 (cl_target_option_node): New static tree for building
10227 TARGET_OPTION_NODE tree.
10228 (cl_option_hash_table): New hash table for hashing
10229 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10230 (cl_option_hash_hash): New function to provide the hash value for
10231 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10232 (cl_option_hash_eq): New function to provide an equality test for
10233 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10234 (tree_code_size): Add support for OPTIMIZATION_NODE and
10235 TARGET_OPTION_NODE trees.
10236 (tree_code_structure): Add support for OPTIMIZATION_NODE and
10237 TARGET_OPTION_NODE trees.
10238 (build_optimization_node): Build a tree that has all of the
10239 current optimization options.
10240 (build_target_option_node): Build a tree that has the target
10241 options that might be changed on a per function basis.
10242
10243 * tree.h (file scope): Include options.h.
10244 (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
10245 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
10246 (TREE_OPTIMIZATION): Ditto.
10247 (TREE_TARGET_SPECIFIC): Ditto.
10248 (struct tree_function_decl): Add fields for remembering the
10249 current optimization options and target specific options.
10250 (struct tree_optimization_option): New tree variant that remembers
10251 the optimization options.
10252 (struct tree_target_option): New tree variant that remembers the
10253 target specific flags that might change for compiling a particular
10254 function.
10255 (union tree_node): Include tree_optimization_option and
10256 tree_target_option fields.
10257 (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
10258 TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
10259 TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
10260 TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
10261 TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
10262 optimization and target options.
10263 (optimization_default_node): New macro to refer to global_trees
10264 field.
10265 (optimization_current_node): Ditto.
10266 (optimization_cold_node): Ditto.
10267 (optimization_hot_node): Ditto.
10268 (target_option_default_node): Ditto.
10269 (target_option_current_node): Ditto.
10270 (current_option_pragma): Ditto.
10271 (current_optimize_pragma): Ditto.
10272
10273 * target.h (struct gcc_target): Add valid_option_attribute_p,
10274 target_option_save, target_option_restore, target_option_print,
10275 target_option_pragma_parse, and can_inline_p hooks.
10276
10277 * toplev.h (parse_optimize_options): Add declaration.
10278 (fast_math_flags_struct_set_p): Ditto.
10279
10280 * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
10281 adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
10282 optimize is used.
10283
10284 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
10285 tree_can_inline_p hook to see if one function can inline another.
10286 (cgraph_decide_inlining): Ditto.
10287 (cgraph_decide_inlining_incrementally): Ditto.
10288
10289 * opts.c (decode_options): Add support for running multiple times
10290 to allow functions with different target or optimization options
10291 than was specified on the command line.
10292 (fast_math_flags_struct_set_p): New function that is similar to
10293 fast_math_flags_set_p, except it uses the values in the
10294 cl_optimization structure instead of global variables.
10295
10296 * optc-gen.awk: Add support for TargetSave to allow a back end to
10297 declare new fields that need to be saved when using function
10298 specific options. Include flags.h and target.h in the options.c
10299 source. Add support for Save to indicate which options can be set
10300 for individual functions. Generate cl_optimize_save,
10301 cl_optimize_restore, cl_optimize_print, cl_target_option_save,
10302 cl_target_option_restore, cl_target_option_print functions to
10303 allow functions to use different optimization or target options.
10304
10305 * opt-functions.awk (var_type_struct): Return the type used for
10306 storing the field in a structure.
10307
10308 * opth-gen.awk: Add support for TargetSave to allow a back end to
10309 declare new fields that need to be saved when using function
10310 specific options. Add support for Save to indicate which options
10311 can be set for individual functions. Only generate one extern for
10312 Mask fields. Generate cl_optimization and cl_target_option
10313 structures to remember optimization and target options.
10314
10315 * treestruct.def (TS_OPTIMIZATION): Add support for garbage
10316 collecting new tree nodes.
10317 (TS_TARGET_OPTION): Ditto.
10318
10319 * c-decl.c (merge_decls): Merge function specific target and
10320 optimization options.
10321
10322 * function.c (invoke_set_current_function_hook): If the function
10323 uses different optimization options, change the global variables
10324 to reflect this.
10325
10326 * coretypes.h (struct cl_optimization): Add forward reference.
10327 (struct cl_target_option): Ditto.
10328
10329 * c-pragma.c (option_stack): New static vector to remember the
10330 current #pragma GCC option stack.
10331 (handle_pragma_option): New function to support #pragma GCC option
10332 to change target options.
10333 (optimize_stack): New static vector to remember the current
10334 #pragma GCC optimize stack.
10335 (handle_pragma_optimize): New function to support #pragma GCC
10336 optimize to change optimization options.
10337 (init_pragma): Add support for #pragma GCC optimize and #pragma
10338 GCC option.
10339
10340 * tree.def (OPTIMIZATION_NODE): New tree code for remembering
10341 optimization options.
10342 (TARGET_OPTION_NODE): New tree code for remembering certain target
10343 options.
10344
10345 * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
10346 TARGET_OPTION_NODE trees.
10347
10348 * common.opt (-O): Add Optimization flag.
10349 (-Os): Ditto.
10350 (-fmath-errno): Ditto.
10351 (-falign-functions): Add UInteger flag to make sure flag gets full
10352 int in cl_optimization structure.
10353 (-falign-jumps): Ditto.
10354 (-falign-labels): Ditto.
10355 (-falign-loops): Ditto.
10356 (-fsched-stalled-insns): Ditto.
10357 (-fsched-stalled-insns-dep): Ditto.
10358
10359 * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
10360 definition.
10361 (TARGET_OPTION_SAVE): Ditto.
10362 (TARGET_OPTION_RESTORE): Ditto.
10363 (TARGET_OPTION_PRINT): Ditto.
10364 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
10365 (TARGET_CAN_INLINE_P): Ditto.
10366 (TARGET_INITIALIZER): Add new hooks.
10367
10368 * tree-inline.c (tree_can_inline_p): New function to determine
10369 whether one function can inline another. Check if the functions
10370 use compatible optimization options, and also call the backend
10371 can_inline_p hook.
10372
10373 * tree-inline.h (tree_can_inline_p): Add declaration.
10374
10375 * c-common.c (c_common_attribute): Add support for option and
10376 optimize attributes.
10377 (handle_option_attribute): Add support for the option attribute to
10378 allow the user to specify different target options for compiling a
10379 specific function.
10380 (handle_optimize_attribute): Add support for the optimize
10381 attribute to allow the user to specify different optimization
10382 options for compiling a specific function.
10383 (handle_hot_attribute): Turn on -O3 optimization for this one
10384 function if it isn't the default optimization level.
10385 (handle_cold_attribute): Turn on -Os optimization for this one
10386 function if it insn't the default optimization.
10387 (const_char_p): New const char * typedef.
10388 (optimize_args): New static vector to remember the optimization
10389 arguments.
10390 (parse_optimize_options): New function to set up the optimization
5617c135 10391 arguments from either the optimize attribute or #pragma GCC optimize.
f5ae72a9
MM
10392
10393 * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
10394 (builtin_define_std): Ditto.
10395
10396 * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
5617c135 10397 Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
f5ae72a9
MM
10398 (x86_64-*-*): Ditto.
10399
10400 * Makefile.in (TREE_H): Add options.h.
10401 (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
10402
10403 * doc/extend.texi (option attribute): Document new attribute.
10404 (optimize attribute): Ditto.
10405 (hot attribute): Document hot attribute sets -O3.
10406 (cold attribute): Document cold attribute sets -Os.
10407 (#pragma GCC option): Document new pragma.
10408 (#pragma GCC optimize): Ditto.
10409
10410 * doc/options.texi (TargetSave): Document TargetSave syntax.
10411 (UInteger): Document UInteger must be used for certain flags.
10412 (Save): Document Save option to create target specific options
10413 that can be saved/restored on a function specific context.
10414
5617c135 10415 * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
f5ae72a9
MM
10416 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
10417
5617c135 10418 * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
f5ae72a9
MM
10419 (TARGET_OPTION_SAVE): Ditto.
10420 (TARGET_OPTION_RESTORE): Ditto.
10421 (TARGET_OPTION_PRINT): Ditto.
10422 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
10423 (TARGET_CAN_INLINE_P): Ditto.
10424
10425 * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
10426 -mfpmath=sse,387.
10427 (-mfpmath=both): Ditto.
10428
104292008-07-23 Michael Meissner <gnu@the-meissners.org>
10430 Karthik Kumar <karthikkumar@gmail.com>
10431
5617c135 10432 * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
f5ae72a9
MM
10433 (TARGET_POPCNT): Ditto.
10434 (TARGET_SAHF): Ditto.
10435 (TARGET_AES): Ditto.
10436 (TARGET_PCLMUL): Ditto.
10437 (TARGET_CMPXCHG16B): Ditto.
10438 (TARGET_RECIP): Move switch into target_flags.
10439 (TARGET_FUSED_MADD): Ditto.
10440 (ix86_arch_features): Make an unsigned char type.
10441 (ix86_tune_features): Ditto.
10442 (OVERRIDE_OPTIONS): Add bool argument to override_options call.
10443 (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
10444 (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
10445
10446 * config/i386/i386.opt (arch): New TargetSave field to define
5617c135 10447 fields that need to be saved for function specific option support.
f5ae72a9
MM
10448 (tune): Ditto.
10449 (fpmath): Ditto.
10450 (branch_cost): Ditto.
10451 (ix86_isa_flags_explicit): Ditto.
10452 (tune_defaulted): Ditto.
10453 (arch_specified): Ditto.
10454 (-m128-long-double): Add Save flag to save option for target
10455 specific option support.
10456 (-m80387): Ditto.
10457 (-maccumulate-outgoing-args): Ditto.
10458 (-malign-double): Ditto.
10459 (-malign-stringops): Ditto.
10460 (-mfancy-math-387): Ditto.
10461 (-mhard-float): Ditto.
10462 (-mieee-fp): Ditto.
10463 (-minline-all-stringops): Ditto.
10464 (-minline-stringops-dynamically): Ditto.
10465 (-mms-bitfields): Ditto.
10466 (-mno-align-stringops): Ditto.
10467 (-mno-fancy-math-387): Ditto.
10468 (-mno-push-args): Ditto.
10469 (-mno-red-zone): Ditto.
10470 (-mpush-args): Ditto.
10471 (-mred-zone): Ditto.
10472 (-mrtd): Ditto.
10473 (-msseregparm): Ditto.
10474 (-mstack-arg-probe): Ditto.
10475 (-m32): Ditto.
10476 (-m64): Ditto.
10477 (-mmmx): Ditto.
10478 (-m3dnow): Ditto.
10479 (-m3dnowa): Ditto.
10480 (-msse): Ditto.
10481 (-msse2): Ditto.
10482 (-msse3): Ditto.
10483 (-msse4.1): Ditto.
10484 (-msse4.2): Ditto.
10485 (-msse4): Ditto.
10486 (-mno-sse4): Ditto.
10487 (-msse4a): Ditto.
10488 (-msse5): Ditto.
10489 (-mrecip): Move flag into target_flags.
10490 (-mcld): Ditto.
10491 (-mno-fused-madd): Ditto.
10492 (-mfused-madd): Ditto.
10493 (-mabm): Move flag into ix86_isa_flags.
10494 (-mcx16): Ditto.
10495 (-mpopcnt): Ditto.
10496 (-msahf): Ditto.
10497 (-maes): Ditto.
10498 (-mpclmul): Ditto.
10499
10500 * config/i386/i386-c.c: New file for #pragma support.
10501 (ix86_target_macros_internal): New function to #define or #undef
10502 target macros based when the user uses the #pragma GCC option to
10503 change target options.
10504 (ix86_pragma_option_parse): New function to add #pragma GCC option
10505 support.
10506 (ix86_target_macros): Move defining the target macros here from
10507 TARGET_CPU_CPP_BUILTINS in i386.h.
10508 (ix86_register_pragmas): Register the #pragma GCC option hook. If
10509 defined, initialize any subtarget #pragmas.
10510
10511 * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
10512 REGISTER_TARGET_PRAGMAS.
10513
10514 * config/i386/t-i386: New file for x86 dependencies.
10515 (i386.o): Make dependencies mirror the include files used.
10516 (i386-c.o): New file, add dependencies.
10517
5617c135 10518 * config/i386/i386-protos.h (override_options): Add bool argument.
f5ae72a9
MM
10519 (ix86_valid_option_attribute_tree): Add declaration.
10520 (ix86_target_macros): Ditto.
10521 (ix86_register_macros): Ditto.
10522
10523 * config/i386/i386.c (ix86_tune_features): Move initialization of
10524 the target masks to initial_ix86_tune_features to allow functions
10525 to have different target options. Make type unsigned char,
10526 instead of unsigned int.
10527 (initial_ix86_tune_features): New static vector to hold processor
10528 masks for the tune variables.
10529 (ix86_arch_features): Move initialization of the target masks to
10530 initial_ix86_arch_features to allow functions to have different
5617c135 10531 target options. Make type unsigned char, instead of unsigned int.
f5ae72a9
MM
10532 (initial_ix86_arch_features): New static vector to hold processor
10533 masks for the arch variables.
10534 (enum ix86_function_specific_strings): New enum to describe the
10535 string options used for attribute((option(...))).
10536 (ix86_target_string): New function to return a string that
10537 describes the target options.
10538 (ix86_debug_options): New function to print the current options in
10539 the debugger.
10540 (ix86_function_specific_save): New function hook to save the
5617c135 10541 function specific global variables in the cl_target_option structure.
f5ae72a9
MM
10542 (ix86_function_specific_restore): New function hook to restore the
10543 function specific variables from the cl_target_option structure to
10544 the global variables.
10545 (ix86_function_specific_print): New function hook to print the
10546 target specific options in the cl_target_option structure.
10547 (ix86_valid_option_attribute_p): New function hook to validate
10548 attribute((option(...))) arguments.
10549 (ix86_valid_option_attribute_tree): New function that is common
10550 code between attribute((option(...))) and #pragma GCC option
5617c135 10551 support that parses the options and returns a tree holding the options.
f5ae72a9
MM
10552 (ix86_valid_option_attribute_inner_p): New helper function for
10553 ix86_valid_option_attribute_tree.
10554 (ix86_can_inline_p): New function hook to decide if one function
10555 can inline another on a target specific basis.
10556 (ix86_set_current_function); New function hook to switch target
10557 options if the user used attribute((option(...))) or #pragma GCC
10558 option.
10559 (ix86_tune_defaulted): Move to static file scope from
10560 override_options.
10561 (ix86_arch_specified): Ditto.
10562 (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
10563 ix86_isa_flags.
10564 (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
10565 (OPTION_MASK_ISA_ABM_SET): Ditto.
10566 (OPTION_MASK_ISA_POPCNT_SET): Ditto.
10567 (OPTION_MASK_ISA_CX16_SET): Ditto.
10568 (OPTION_MASK_ISA_SAHF_SET): Ditto.
10569 (OPTION_MASK_ISA_AES_UNSET): Ditto.
10570 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
10571 (OPTION_MASK_ISA_ABM_UNSET): Ditto.
10572 (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
10573 (OPTION_MASK_ISA_CX16_UNSET): Ditto.
10574 (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
10575 (struct ptt): Move to static file scope from override_options.
10576 (processor_target_table): Ditto.
10577 (cpu_names): Ditto.
5617c135 10578 (ix86_handle_option): Add support for options that are now isa options.
f5ae72a9
MM
10579 (override_options): Add support for declaring functions that
10580 support different target options than were specified on the
10581 command line. Move struct ptt, processor_target_table, cpu_names,
10582 ix86_tune_defaulted, ix86_arch_specified to static file scope.
10583 Add bool argument. Fix up error messages so the appropriate error
10584 is given for either command line or attribute.
10585 (ix86_previous_fndecl): New static to remember previous function
10586 declaration to see if we need to change target options.
10587 (ix86_builtins_isa): New array to record the ISA of each builtin
10588 function.
10589 (def_builtin): Always create the builtin function, even if the
10590 current ISA doesn't support it.
10591 (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
10592 tests for those builtins.
10593 (ix86_init_builtins): Remove TARGET_MMX test for calling
10594 ix86_init_mmx_sse_builtins.
10595 (ix86_expand_builtin): If the current ISA doesn't support a given
10596 builtin, signal an error.
10597 (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
10598 (TARGET_SET_CURRENT_FUNCTION): Ditto.
10599 (TARGET_OPTION_SAVE): Ditto.
10600 (TARGET_OPTION_RESTORE): Ditto.
10601 (TARGET_OPTION_PRINT): Ditto.
10602 (TARGET_CAN_INLINE_P): Ditto.
10603
e49cf927 106042008-07-22 Rafael Ávila de Espíndola <espindola@google.com>
3571ae2e 10605
5617c135
UB
10606 * c-typeck.c (build_external_ref): Don't call assemble_external.
10607 * final.c (output_operand): Call assemble_external.
3571ae2e 10608
2e762884
DD
106092008-07-21 DJ Delorie <dj@redhat.com>
10610
10611 * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
10612 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
10613
a03f1b22
UW
106142008-07-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10615
10616 * config/spu/spu.md ("div<mode>3"): Convert into expander, move
10617 original insn and splitter contents into ...
10618 ("*div<mode>3_fast"): ... this new pattern. Enable only if
10619 flag_unsafe_math_optimizations. Add dummy scratch register.
10620 ("*div<mode>3_adjusted"): New insn and splitter. Enable only if
10621 !flag_unsafe_math_optimizations. Returns number with next
10622 highest magnitude if this is still less or equal to the true
10623 quotient in magnitude.
10624
e49cf927 106252008-07-21 Rafael Ávila de Espíndola <espindola@google.com>
aa14403d
RAE
10626
10627 * Makefile.in: Replace toplev.h with TOPLEV_H.
10628 * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
10629 * c-lex.c (fe_file_change): Don't set in_system_header.
10630 * c-parser.c (c_token): Remove in_system_header.
10631 (c_lex_one_token): Don't set in_system_header.
10632 (c_parser_set_source_position_from_token): Don't set in_system_header.
10633 * diagnostic.c (diagnostic_report_diagnostic): Use location from
10634 diagnostic_info.
10635 (warning_at): New.
10636 * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
10637 * flags.h (in_system_header): Remove.
10638 * function.c (saved_in_system_header): Remove.
10639 (push_cfun): Don't set in_system_header.
10640 (pop_cfun): Don't set in_system_header.
10641 (push_struct_function): Don't set in_system_header.
10642 * input.h (expanded_location): Add sysp.
10643 (in_system_header_at): New.
10644 (in_system_header): New.
10645 * toplev.c (in_system_header): Remove.
10646 * toplev.h: Include input.h
10647 (warning_at): New.
10648 * tree-cfg.c (execute_warn_function_return): Call warning_at.
10649 * tree-ssa.c (warn_uninit): Call warning_at.
10650 (warn_uninitialized_var): Update calls to warn_uninit.
10651 (warn_uninitialized_phi): Update calls to warn_uninit.
10652 * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
10653 (expand_location): Initialize xloc.sysp.
10654 * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
10655 (tree_decl_with_vis): Remove in_system_header_flag.
10656
c499b300
AK
106572008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
10658
10659 PR target/36822
10660 * recog.c (asm_operand_ok): Change the order of the extra
10661 memory constraint checks.
10662
34a87fd4
AP
106632008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
10664
10665 PR tree-opt/36879
10666 * tree-switch-conversion.c (build_one_array): Call
22129589 10667 varpool_mark_needed_node and varpool_finalize_decl
34a87fd4
AP
10668 instead of assemble_variable.
10669
c72321c9
JH
106702008-07-19 Jan Hubicka <jh@suse.cz>
10671
10672 * cgraph.c (cgraph_add_new_function): Do early local passes.
10673 * tree-nrv.c (gate_pass_return_slot): New gate.
10674 (pass_nrv): Add the gate.
10675 * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
10676 functions.
10677 (coalesce_ssa_name): Coalesce SSA names.
10678 * tree-ssa-live.c (remove_unused_locals): Be more conservative when
10679 not optimizing so unused user vars remains visible.
10680 * common.opt (flag_tree_ter): Always enable by default.
10681 * tree-ssa-ter.c: Include flags.h
02bb8bce
UB
10682 (is_replaceable_p): Check that locations match; when aliasing
10683 is missing be conservative about loads.
c72321c9
JH
10684 * tree-optimize.c (gate_init_datastructures): Remove.
10685 (pass_init_datastructures): New.
10686 * passes.c: Reorder passes so we always go into SSA.
10687
d6cc6ec9
JH
106882008-07-19 Jan Hubicka <jh@suse.cz>
10689
02bb8bce
UB
10690 * doc/extend.texi (flatten attribute): Remove note about
10691 unit-at-a-time.
d6cc6ec9
JH
10692 * doc/invoke.texi (--combine): Likewise.
10693 (-finline-functions-called-once): Update levels when enabled.
10694 (-funit-at-a-time): Document new behaviour.
10695 (-ftoplevel-reorder): Document that it is enabled -O0 and imply
10696 -fno-section-anchors when disabled explicitly.
10697 (inline params): They are not ignored now.
10698 (precompiled headers): Remove unit-at-a-time as being incompatible.
10699 * opts.c (decode_options): Handle unit-at-a-time as alias;
10700 imply -fno-section-anchors when toplevel reorder is disabled
10701 explicitly.
10702 * common.opt (ftoplevel-reorder): Set default value to 2.
10703 (funit-at-a-time): Set default value to 1.
10704 * config/rs6000/rs6000.c (optimization_options): Set section anchors
10705 to 2.
10706
1856c8dc
JH
107072008-07-19 Jan Hubicka <jh@suse.cz>
10708
10709 * builtins.c (expand_builtin_int_roundingfn,
10710 expand_builtin_int_roundingfn_2): Do not take subtarget argument;
10711 it is not useful.
10712
bb9e4199
RG
107132008-07-19 Richard Guenther <rguenther@suse.de>
10714
10715 PR bootstrap/36864
10716 * tree-ssa-sccvn.h (get_constant_value_id): Declare.
10717 * tree-ssa-sccvn.c (get_constant_value_id): New function.
10718 * tree-ssa-pre.c (get_expr_value_id): For newly created
10719 constant value-ids make sure to add the expression to its
10720 expression-set.
10721
a7ea9e29
JJ
107222008-07-19 Jakub Jelinek <jakub@redhat.com>
10723
10724 PR middle-end/36877
10725 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
10726 return value of the builtin is ignored.
10727
95331614
OH
107282008-07-19 Olivier Hainque <hainque@adacore.com>
10729
10730 * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
10731 bits, a C conformant malloc implementation has to provide.
10732 * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
10733
ea471af0
JM
107342008-07-19 Joseph Myers <joseph@codesourcery.com>
10735
10736 PR target/36780
10737 PR target/36827
10738 * reload.c (find_reloads_subreg_address): Only reload address if
10739 reloaded == 0, not for reloaded != 1.
10740
10741 Revert:
10742 2008-07-16 Joseph Myers <joseph@codesourcery.com>
10743 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10744 (m32c_legitimate_address_p): Handle "++rii" addresses created by
10745 m32c_legitimize_reload_address.
10746
10747 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
10748 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
10749 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
10750
fa8884d8
OH
107512008-07-19 Olivier Hainque <hainque@adacore.com>
10752
10753 * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
10754 argument, saying whether nested array are to be collapsed
10755 into a single array type DIE with multiple subscripts.
10756 (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
10757 issues, centralize the nested array types collapsing control and
10758 disable the transformation for Ada.
22129589 10759
72ea2555
UB
107602008-07-18 Uros Bizjak <ubizjak@gmail.com>
10761
10762 PR target/36786
10763 * config/i386/i386.md (x86_64_shift_adj_1): Rename from
10764 x86_64_shift_adj.
10765 (x86_64_shift_adj_2): New expander.
10766 (x86_64_shift_adj_3): Ditto.
10767 * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
10768 to split TImode operands.
10769 (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
10770 (ix86_split_lshr): Ditto.
10771
c466b2cd
KVH
107722008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
10773
10774 * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
10775 and __CHAR32_TYPE__.
10776 * c-typeck.c (digest_init): Support char16_t and char32_t.
10777 (set_nonincremental_init_from_string): Idem.
10778
c565a1e7
L
107792008-07-18 H.J. Lu <hongjiu.lu@intel.com>
10780
10781 PR middle-end/36859
10782 * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
10783 PREFERRED_STACK_BOUNDARY.
10784 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
10785
5ae53a25
L
107862008-07-18 H.J. Lu <hongjiu.lu@intel.com>
10787
10788 PR middle-end/36858
10789 * function.c (locate_and_pad_parm): Cap boundary earlier.
10790
711b2998
JB
107912008-07-17 Julian Brown <julian@codesourcery.com>
10792
10793 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
10794 no-op for targets which don't use DLLs.
10795
0eae6bab
MJ
107962008-07-17 Martin Jambor <mjambor@suse.cz>
10797
10798 * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
10799 that nodes are relevant by examining the node->analyzed flag.
10800 (ipcp_init_stage): Check which nodes are relevant, assert that the
10801 relevant ones are also required.
10802 (ipcp_propagate_stage): Check on the side arrays are properly
10803 allocated.
10804 (ipcp_print_all_jump_functions): Make sure not to touch any node
10805 that is not analyzed or an edge that does not have a corresponding
10806 entry in the on-the-side vectors.
10807 (ipcp_function_scale_print): Likewise.
10808 (ipcp_update_callgraph): Check that the node is relevant.
10809 (ipcp_insert_stage): Check that the node is relevant. Check there is
10810 an info for every node and edge.
10811 * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
10812 (ipa_print_all_tree_maps): Likewise and a new variable info.
10813 (ipa_print_all_params_modified): Likewise.
10814 * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
10815
19327a1a
RZ
108162008-07-17 Roman Zippel <zippel@linux-m68k.org>
10817
10818 PR target/25343
10819 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
10820
b08c5108
PB
108212008-07-17 Paolo Bonzini <bonzini@gnu.org>
10822
10823 PR rtl-optimization/36753
10824 * fwprop.c (use_killed_between): Don't shortcut
10825 single-definition global registers.
10826
7386e3ee
JH
108272008-07-16 Jan Hubicka <jh@suse.cz>
10828
10829 * cgraph.h (varpool_empty_needed_queue): Declare.
10830 * cgraphunit.c (output_in_order): Mark all variables as needed;
10831 empty the queue.
10832 * varpool.c (varpool_assemble_node): Update debug queue.
10833 (varpool_assemble_pending_decls): Don't do it here.
10834 (varpool_empty_needed_queue): New function.
10835
de498dd4
KG
108362008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10837
10838 * recog.c (peephole2_optimize): Fix formatting.
10839
48c54229
KG
108402008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10841
10842 * c-pch.c (get_ident): Avoid C++ keywords.
10843 * combine-stack-adj.c (single_set_for_csa): Likewise.
10844 * final.c (asm_insn_count, final_scan_insn, alter_subreg,
10845 output_asm_insn): Likewise.
10846 * reload.c (push_secondary_reload, find_reusable_reload,
10847 push_reload, combine_reloads, find_reloads,
10848 debug_reload_to_stream): Likewise.
10849 * reload.h (struct reload): Likewise.
10850 * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
10851 allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
10852 emit_output_reload_insns): Likewise.
10853 * targhooks.c (default_secondary_reload): Likewise.
10854 * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
10855
55d796da
KG
108562008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10857
10858 * recog.c (validate_change_1, validate_change,
10859 validate_unshare_change, validate_replace_rtx_1, struct
10860 funny_match, constrain_operands, peephole2_optimize): Avoid C++
10861 keywords.
10862 * reload.c (push_secondary_reload, secondary_reload_class,
10863 scratch_reload_class, find_valid_class, find_reusable_reload,
10864 push_reload, find_dummy_reload, find_reloads_address_1,
10865 find_reloads_address_part, find_equiv_reg): Likewise.
10866 * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
10867 choose_reload_regs): Likewise.
10868 * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
10869 Likewise.
10870 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
10871 * sched-ebb.c (add_deps_for_risky_insns): Likewise.
10872 * sched-rgn.c (concat_INSN_LIST): Likewise.
10873 * stor-layout.c (mode_for_size, mode_for_size_tree,
10874 smallest_mode_for_size): Likewise.
10875
d858f359
KG
108762008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10877
10878 * cfg.c (dump_reg_info): Avoid C++ keywords.
10879 * dwarf2asm.c (dw2_force_const_mem,
10880 dw2_asm_output_encoded_addr_rtx): Likewise.
72ea2555 10881 * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
d858f359
KG
10882 * expmed.c (expand_shift): Likewise.
10883 * global.c (find_reg): Likewise.
10884 * graph.c (draw_edge): Likewise.
10885 * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
10886 * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
10887 widen_clz, widen_bswap, expand_parity, expand_unop,
10888 emit_cmp_and_jump_insn_1): Likewise.
10889 * postreload.c (reload_cse_simplify_operands): Likewise.
10890 * ra.h (add_neighbor): Likewise.
10891 * reg-stack.c (remove_regno_note, change_stack): Likewise.
10892 * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
10893 record_reg_classes, copy_cost, record_address_regs,
10894 invalid_mode_change_p): Likewise.
10895 * regrename.c (regrename_optimize, scan_rtx_reg,
10896 dump_def_use_chain, find_oldest_value_reg,
10897 replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
10898
1bc39d2f
DE
108992008-07-16 David Edelsohn <edelsohn@gnu.org>
10900
10901 * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
10902 MASK_POWERPC64 for power4 in previous commit.
10903
bb95b4e7
OH
109042008-07-16 Olivier Hainque <hainque@adacore.com>
10905
10906 * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
10907 instead of bare conversion to cast const-ness away.
10908
e2b2d01e
AS
109092008-07-16 Anatoly Sokolov <aesok@post.ru>
10910
10911 * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
10912 XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
10913 * config/xtensa/xtensa.c (xtensa_function_value): New function.
10914 (TARGET_FUNCTION_VALUE): Define.
10915
9a8d7941
DE
109162008-07-16 David Edelsohn <edelsohn@gnu.org>
10917
10918 * config/rs6000/rs6000.c (processor_target_table): Add
10919 MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
10920
61945d8c
JM
109212008-07-16 Joseph Myers <joseph@codesourcery.com>
10922
10923 PR target/36827
10924 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10925 (m32c_legitimate_address_p): Handle "++rii" addresses created by
10926 m32c_legitimize_reload_address.
10927
e49cf927 109282007-07-16 Rafael Ávila de Espíndola <espindola@google.com>
238fe3c5 10929
5617c135
UB
10930 * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
10931 DECL_IN_SYSTEM_HEADER in sync.
238fe3c5 10932
2dfb6ce1
DB
109332008-07-15 Daniel Berlin <dberlin@dberlin.org>
10934
10935 * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
10936 * tree-ssa-pre.c (pre_expr_eq): Ditto
10937 (get_constant_for_value_id): Take a type as an argument.
10938 (fully_constant_expression): Pass in type.
10939 (find_or_generate_expression): Short circuit constant case.
10940 (create_expression_by_pieces): Remove special casing of
10941 pointer_plus.
10942 (do_regular_insertion): Short circuit constant case.
10943 (do_partial_partial_insertion): Ditto.
10944
141368f0
KK
109452008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
10946
10947 PR target/36782
10948 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
10949
25ae96c7 109502008-07-15 Bob Wilson <bob.wilson@acm.org>
22129589 10951
25ae96c7
BW
10952 * config/xtensa/libgcc-xtensa.ver: New file.
10953 * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
22129589 10954
60564289
KG
109552008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10956
10957 * df-problems.c (df_set_note): Avoid C++ keywords.
10958 * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
10959 * dse.c (record_store, remove_useless_values): Likewise.
10960 * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
10961 gen_reg_rtx_offset, operand_subword, change_address_1,
10962 change_address, adjust_address_1, offset_address,
10963 widen_memory_access, emit_copy_of_insn_after): Likewise.
10964 * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
10965 * fwprop.c (should_replace_address, propagate_rtx_1,
10966 propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
10967 Likewise.
10968 * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
10969 gcse_emit_move_after, update_ld_motion_stores): Likewise.
10970 * lcm.c (compute_insert_delete, pre_edge_lcm,
10971 compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
10972 * lower-subreg.c (resolve_reg_notes): Likewise.
10973 * mode-switching.c (optimize_mode_switching): Likewise.
10974
32e9fa48
KG
109752008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10976
10977 * bt-load.c (add_btr_def, migrate_btr_def,
10978 branch_target_load_optimize): Avoid C++ keywords.
10979 * caller-save.c (insert_restore, insert_save, insert_one_insn):
10980 Likewise.
10981 * combine.c (subst, simplify_set, make_extraction,
72ea2555 10982 make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
32e9fa48 10983 * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
72ea2555 10984 fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
32e9fa48 10985
ac7ee6ad
RG
109862008-07-15 Richard Guenther <rguenther@suse.de>
10987
10988 PR middle-end/36369
10989 * c-common.c (strict_aliasing_warning): Do not warn for
10990 TYPE_REF_CAN_ALIAS_ALL pointers.
10991 (c_common_get_alias_set): may_alias types are not special.
10992 * tree.c (build_pointer_type_for_mode): Look up the may_alias
10993 attribute and set can_ref_all accordingly.
10994 (build_reference_type_for_mode): Likewise.
10995 * doc/extend.texi (may_alias): Clarify.
10996
96c72efe
KK
109972008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
10998
10999 PR target/36780
11000 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
11001 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
11002
cb8cc791
AP
110032008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
11004
11005 PR target/31568
11006 * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
11007 gcc_assert, instead call output_operand_lossage.
11008
e65d1ec6
KT
110092008-07-15 Kai Tietz <kai.tietz@onevision.com>
11010
11011 * builtins.c (std_canonical_va_list): Treat structure based
11012 va_list types.
11013
6926c713
BE
110142008-07-15 Ben Elliston <bje@au.ibm.com>
11015
11016 * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
11017
e49cf927 110182007-07-14 Rafael Ávila de Espíndola <espindola@google.com>
df0ed6c5
RAE
11019
11020 * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
11021 is set.
11022
f258e5e5
JH
110232008-07-14 Jan Hubicka <jh@suse.cz>
11024
11025 * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
11026 * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
11027 fix predicates and constraints.
11028 * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
11029 * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
11030
8abc1906
DK
110312008-07-14 Doug Kwan <dougkwan@google.com>
11032
11033 * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
11034 additional option file arm/eabi.opt.
11035 * config/arm/eabi.h (File): New configuration file for EABI targets.
11036 * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
11037 SUBSUBTARGET_EXTRA_SPECS.
11038 (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
11039 * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
11040 from STARTFILE_SPEC so that it can be referenced in an override.
11041 (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
11042 (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
11043 can be referenced in an override.
11044 (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
11045 * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
11046 so that it can be referenced in an override.
11047 (LINK_SPEC): Use BPABI_LINK_SPEC.
11048 * config/arm/eabi.opt (File): New.
11049
e63ea00c
RW
110502008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11051
11052 * Makefile.in (TARGET_DEF_H): Add targhooks.h.
11053 (FIXED_VALUE_H): New variable.
11054 (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
11055 input.h, fixed-value.h.
11056 (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
11057 (BASIC_BLOCK_H): Use $(BITMAP_H).
11058 (FUNCTION_H): Add varray.h.
11059 (IPA_REFERENCE_H): Use $(BITMAP_H).
11060 (CGRAPH_H): Add $(BASIC_BLOCK_H).
11061 (DF_H): Use $(BITMAP_H).
11062 (GGC_H): Add statistics.h.
11063 (INSN_ADDR_H): New.
11064 (INSN_ATTR_H): Use it.
11065 (SYSTEM_H): Add safe-ctype.h, filenames.h.
11066 (INPUT_H): New.
11067 (SYMTAB_H): Add $(OBSTACK_H).
11068 (CPP_INTERNAL_H): New.
11069 (TREE_DUMP_H): Add tree-pass.h.
11070 (TREE_FLOW_H): Use $(BITMAP_H)
11071 (PRETTY_PRINT_H): Use $(INPUT_H).
11072 (EBITMAP_H): Rename from typo-ed EBIMAP_H.
11073 (GSTAB_H): New.
11074 (BITMAP_H): New.
11075 (many object files): Fix lots of header dependencies throughout.
11076
a4e4a2d6
RW
110772008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11078
11079 * Makefile.in (write_entries_to_file, write_entries_to_file_split):
11080 New macros.
11081 (s-gtyp-input): Use them to write tmp-gi.list.
11082 (echo_to_gi.list): Remove.
11083
caf55296
RG
110842008-07-14 Richard Guenther <rguenther@suse.de>
11085
11086 * tree-ssa-sccvn.c (pre_info): Remove.
11087 (switch_to_PRE_table): Likewise.
72ea2555 11088 (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info.
caf55296
RG
11089 (set_hashtable_value_ids): Do not create value-ids for the
11090 optimistic tables.
11091 (run_scc_vn): Remove double test. Remove bogus special-case
11092 in value-number printing.
11093 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
11094 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
11095 SSA_NAME_VALUE.
11096 * tree-flow-inline.h (get_value_handle): Remove.
11097 * tree-flow.h (get_value_handle): Remove.
11098
145544ab
MJ
110992008-07-14 Martin Jambor <mjambor@suse.cz>
11100
11101 * tree-switch-conversion.c (gen_inbound_check): Make sure the type
11102 in which we generate arithmetics is not a subrange.
11103
9bfb0f01
MJ
111042008-07-14 Martin Jambor <mjambor@suse.cz>
11105
11106 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
11107
f709638a
RG
111082008-07-14 Richard Guenther <rguenther@suse.de>
11109
72ea2555 11110 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
f709638a 11111
1f9e1fc6
AK
111122008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
11113
11114 PR target/36745
11115 * config/s390/s390.c: (s390_secondary_reload): Add a secondary
11116 reload for symbol refs moved to r0 with -fPIC.
11117 (legitimize_pic_address): Use the target register as temporary
11118 reg if possible.
11119 (emit_symbolic_move): Adjust comment.
11120 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
11121 New expanders.
11122
5950c3c9
BE
111232008-07-14 Ben Elliston <bje@au.ibm.com>
11124
11125 * c-common.h (C_CPP_HASHNODE): New macro.
11126 * coretypes.h (struct cpp_token): Forward declare.
11127 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11128 the context-sensitive keyword method.
11129 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
11130 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
11131 expand_bool_pixel): New.
11132 (altivec_categorize_keyword): New function.
11133 (init_vector_keywords): New function.
11134 (rs6000_macro_to_expand): Likewise.
11135 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
11136 compiling an ISO C dialect.
11137
b463e8de
DB
111382008-07-13 Daniel Berlin <dberlin@dberlin.org>
11139
72ea2555 11140 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
b463e8de
DB
11141 (create_expression_by_pieces): Fix typo.
11142 (do_regular_insertion): Use debug counter here too.
11143
f49e46d8
HPN
111442008-07-14 Hans-Peter Nilsson <hp@axis.com>
11145
11146 PR target/35492.
11147 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
11148 CONST_OK_FOR_LETTER_P. All port-local users changed.
11149 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
11150 implement Kp matching power-of-two.
11151 (CONSTRAINT_LEN): Define to match.
11152 * config/cris/cris.md: Replace all use of constraint K with Kc.
11153 ("*btst*): Use Kp for operand 0 of last alternative.
11154
5d94a6d0
JDA
111552008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11156
11157 PR testsuite/36440
11158 * tree-call-cdce.c (check_target_format): Accept MIPS single, double
11159 and quad formats.
11160
4d16a7b7
JH
111612008-07-13 Jan Hubicka <jh@suse.cz>
11162
11163 * tree.c (decl_assembler_name_equal): Expect assembler name of decl
11164 to be mangled too.
11165
f4c91e0d
RG
111662008-07-13 Richard Guenther <rguenther@suse.de>
11167
11168 PR middle-end/36811
11169 * langhooks.c (lhd_print_error_function): Deal with recursive
11170 BLOCK trees.
11171
266ad5c8
JH
111722008-07-12 Jan Hubicka <jh@suse.cz>
11173
11174 * cgraph.c (assembler_name_hash): New static var.
11175 (hash_node_by_assembler_name, eq_assembler_name): New.
11176 (cgraph_node_for_asm): Use hashtable.
11177 (cgraph_remove_node): Maintain hashtable.
11178 (change_decl_assembler_name): Sanity check that names are not changing
11179 after aliasing was processed.
11180 * cgraph.h (varpoon_node): Add next GGC marker.
11181 * tree.c (decl_assembler_name_equal): Constify.
11182 (decl_assembler_name_hash): New.
11183 * tree.h (decl_assembler_name_equal): Constify.
11184 (decl_assembler_name_hash): Update.
11185
a5a12a83
DD
111862008-07-12 David Daney <ddaney@avtrex.com>
11187
11188 * config/mips/driver-native.c (host_detect_local_cpu): Handle
11189 sb1 and r5000 cpus.
11190
2feaae20
RS
111912008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
11192
11193 * doc/md.texi: Document the MIPS "v" constraint.
11194 * config/mips/mips.h (reg_class): Revert last change.
11195 (REG_CLASS_NAMES): Likewise.
11196 (REG_CLASS_CONTENTS): Likewise.
11197 * config/mips/mips.c (mips_regno_to_class): Likewise.
11198 * config/mips/constraints.md (v): Likewise, but add documentation.
11199 Add a comment to say that this constraint should not be used in
11200 gcc code.
11201
a428e1d4
DD
112022008-07-11 DJ Delorie <dj@redhat.com>
11203
11204 * config/h8300/h8300.md (length): Fix branch offset limit.
11205
22129589 112062008-07-11 Anatoly Sokolov <aesok@post.ru>
1cf0a7f1
AS
11207
11208 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
11209 * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
11210 (avr_hard_regno_scratch_ok): New function.
11211 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
11212 * config/avr/avr.md (all peepholes that request a scratch register):
11213 Remove avr_peep2_scratch_safe use.
11214
eea1139b
ILT
112152008-07-11 Tom Tromey <tromey@redhat.com>
11216 Ian Lance Taylor <iant@google.com>
11217
11218 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
11219 (struct c_common_resword): Define.
11220 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
11221 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
11222 (c_common_reswords, num_c_common_reswords): Declare.
11223 * c-common.c (c_common_reswords): New global const array.
11224 (num_c_common_reswords): New const int.
11225 * c-parser.c (struct resword, reswords): Don't define.
11226 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
11227 (c_parse_init): Clarify mask code. Use c_common_reswords rather
11228 than reswords. If warning about C++ keywords, give them a special
11229 RID code.
11230 (c_lex_one_token): Warn about C++ keywords. Call
11231 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
11232 (c_parser_external_declaration): Look for RID_xxx rather than
11233 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
11234 (c_parser_statement_after_labels): Likewise.
11235 (c_parser_objc_class_instance_variables): Likewise.
11236 (c_parser_objc_class_declaration): Likewise.
11237 (c_parser_objc_try_catch_statement): Likewise.
11238 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
11239 (declspecs_add_type): Likewise.
11240
ec4d7730
AG
112412008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
11242
11243 * ggc-page.c (alloc_page):
11244 Substituting xmalloc, xcalloc with
11245 XNEWVEC and XCNEWVAR macros which add the
11246 needed casts.
11247
941a9479
RG
112482008-07-11 Richard Guenther <rguenther@suse.de>
11249
11250 PR tree-optimization/36765
11251 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
11252 aliases from HEAP vars to SMTs.
11253
8dd9a120
KG
112542008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11255
11256 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
11257 * configure.ac (loose_warn): Move -Wc++-compat from here...
11258 (strict_warn): ...to here.
11259 * configure: Regenerate.
11260
e68152b6
JM
112612008-07-10 Joseph Myers <joseph@codesourcery.com>
11262
11263 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
11264 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
11265 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
11266 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
11267 excluding more specific h8300-*-* and sh-*-* targets.
11268
6999afe1
DB
112692008-07-10 Daniel Berlin <dberlin@dberlin.org>
11270
72ea2555 11271 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
6999afe1
DB
11272 (eliminate): Ditto.
11273 (execute_pre): Call loop_optimizer_finalize in early exit.
11274
a182fb6b
JJ
112752008-07-10 Jakub Jelinek <jakub@redhat.com>
11276
b826efd9
JJ
11277 PR middle-end/36790
11278 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
11279 uids in the bitmap, not just VAR_DECL uids.
11280
a182fb6b
JJ
11281 PR rtl-optimization/36419
11282 * combine-stack-adj.c (adjust_frame_related_expr): New function.
11283 (combine_stack_adjustments_for_block): Call it if needed. Delete
11284 correct insn.
11285 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
11286 DW_CFA_GNU_args_size if CSA pass merged some adjustments into
11287 prologue sp adjustment.
11288
15e1dac0
PM
112892008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
11290
11291 PR other/28322
a182fb6b 11292 * opts.c (print_ignored_options): Report postponed diagnostics for
15e1dac0 11293 unknown -Wno-* options as warnings, not errors.
a182fb6b
JJ
11294 (postpone_unknown_option_error): Renamed to...
11295 (postpone_unknown_option_warning): ... this.
15e1dac0 11296
62d33f08
DK
112972008-07-09 Doug Kwan <dougkwan@google.com>
11298
11299 Revert:
11300 2008-07-08 Doug Kwan <dougkwan@google.com>
11301
11302 * config/arm/arm.opt (mandroid): New option.
11303 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
11304 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
11305 (CC1_SPEC): Same.
11306 (CC1PLUS_SPEC): Same.
11307 (LIB_SPEC): Same.
11308 (STARTFILE_SPEC): Same.
11309 (ENDFILE_SPEC): Same.
11310 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
11311 used.
11312
256f27f1
RS
113132008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
11314
11315 PR target/35802
11316 * config/mips/mips.h (reg_class): Remove V1_REG.
11317 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
11318 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
11319 instead of V1_REGS.
11320 (mips_get_tp): New function.
11321 (mips_legitimize_tls_address): Use it.
11322 * config/mips/constraints.md (v): Delete.
11323 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
11324 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
11325 After reload, split into a move and ...
11326 (*tls_get_tp_<mode>_split): ...this new instruction.
11327
432b5555
DD
113282008-07-09 David Daney <ddaney@avtrex.com>
11329
11330 * config/mips/driver-native.c: Include coretypes.h and tm.h.
11331
d406b663
JJ
113322008-07-09 Jakub Jelinek <jakub@redhat.com>
11333
11334 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
11335 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
11336 Add c argument.
11337 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
11338 htab_delete should be called. Don't free c.
11339 (lookup_tmp_var): Create temp_htab lazily.
11340 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
11341 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
11342 callers.
11343 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
11344 lower_omp_ordered, lower_omp_critical, lower_omp_for,
22129589 11345 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
d406b663
JJ
11346 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
11347 * tree-sra.c (generate_element_init): Likewise.
11348 * tree-mudflap.c (execute_mudflap_function_ops,
11349 execute_mudflap_function_decls): Likewise.
11350 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
11351 * tree-gimple.h (struct gimplify_ctx): New type.
11352 (push_gimplify_context): Adjust prototype.
11353
b0a0ab2d
DB
113542008-07-09 Daniel Berlin <dberlin@dberlin.org>
11355
11356 * tree-ssa-pre.c (phi_translate_1): Update placement of
11357 add_to_value calls.
11358
dbc42c44
AS
113592008-07-09 Anatoly Sokolov <aesok@post.ru>
11360
11361 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
11362 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
11363 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
11364 * targhooks.c (default_hard_regno_scratch_ok): New function.
11365 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
11366 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
11367 * recog.c: Include "target.h".
11368 (peep2_find_free_register): Add check for global regs. Add target
11369 specific check.
11370 * Makefile.in (recog.o): Depend on target.h.
11371
28f16d05
KK
113722008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
11373
11374 * config/sh/sh.c (sh_canonical_va_list_type): New.
11375 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
11376
1ebc7e68
RA
113772008-07-09 Raksit Ashok <raksit@google.com>
11378
11379 * doc/invoke.texi (Option Summary): Mention new option
11380 -Wdisallowed-function-list=...
11381 (Warning Options): Document -Wdisallowed-function-list=...
11382 * common.opt (Wdisallowed-function-list=): New flag.
11383 * flags.h (warn_disallowed_functions): External definition of new
11384 boolean warning flag.
11385 (warn_if_disallowed_function_p): Declare new function.
11386 * opts.c (warning_disallowed_functions): New static variable.
11387 (warn_disallowed_functions): New boolean warning flag.
11388 (warn_if_disallowed_function_p): New function.
11389 (add_comma_separated_to_vector): Rename
11390 add_instrument_functions_exclude_list to this.
11391 (common_handle_option): Handle new option. Rename calls to
11392 add_instrument_functions_exclude_list into calls to
11393 add_comma_separated_to_vector.
11394 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
11395 based on flag warn_disallowed_functions.
11396
47d268d0
CB
113972008-07-09 Christian Bruel <christian.bruel@st.com>
11398
11399 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
11400 instead of get_attr_length.
11401
8ad97cfc
KG
114022008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11403
11404 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
11405 keywords.
11406 * genemit.c (gen_insn): Likewise.
11407 * gengtype.c (note_def_vec): Likewise.
11408 * gengtype.h (note_def_vec): Likewise.
11409 * genoutput.c (struct data, output_insn_data, process_template,
11410 gen_expand, gen_split, note_constraint): Likewise.
11411 * genrecog.c (new_decision, add_to_sequence, factor_tests,
11412 make_insn_sequence): Likewise.
11413 * gensupport.c (record_insn_name): Likewise.
11414
588021c0
DK
114152008-07-08 Doug Kwan <dougkwan@google.com>
11416
11417 * config/arm/arm.opt (mandroid): New option.
11418 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
11419 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
11420 (CC1_SPEC): Same.
11421 (CC1PLUS_SPEC): Same.
11422 (LIB_SPEC): Same.
11423 (STARTFILE_SPEC): Same.
11424 (ENDFILE_SPEC): Same.
11425 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
11426 used.
11427
9946ca2d
RA
114282008-07-08 Raksit Ashok <raksit@google.com>
11429
11430 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
11431 (set_storage_via_setmem): Fix expected_align parameter.
11432 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
11433 missing from the list.
11434 * doc/md.texi (movmem): Explicitly state that expected alignment is
11435 to be expressed in bytes.
11436 (setmem): Explicitly state that expected alignment is to be expressed
11437 in bytes.
11438
10932211
JM
114392008-07-08 Joseph Myers <joseph@codesourcery.com>
11440
11441 * reload.c (find_reloads_subreg_address): Do not require validity
11442 of address in original mode before reloading address.
11443
7039a415
TS
114442008-07-07 Tianwei Sheng <tianweis@google.com>
11445
11446 * df-core.c (df_remove_problem): Adjust the access to avoid out of
11447 bounds array access.
11448
4c44c315
JJ
114492008-07-08 Jakub Jelinek <jakub@redhat.com>
11450
72ea2555 11451 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
4c44c315 11452
c9145754 114532008-07-05 Daniel Berlin <dberlin@dberlin.org>
22129589 11454
c9145754
DB
11455 Fix PR tree-optimization/23455
11456 Fix PR tree-optimization/35286
11457 Fix PR tree-optimization/35287
11458 * Makefile.in (OBJS-common): Remove tree-vn.o.
72ea2555 11459 (tree-vn.o): Remove.
c9145754
DB
11460 * dbgcnt.def: Add treepre_insert debug counter.
11461 * gcc/tree-flow.h (add_to_value): Updated for other changes.
11462 (debug_value_expressions): Ditto.
11463 (print_value_expressions): Ditto.
11464 * tree-pretty-print.c (dump_generic_node): Updated for
11465 VALUE_HANDLE removal.
11466 * tree-ssa-dom.c (record_equality): Ditto.
11467 (cprop_operand): Ditto.
11468 (lookup_avail_expr): Ditto.
11469 * tree-ssa-threadedge.c
11470 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
11471 (simplify_control_stmt_condition): Ditto.
11472 * tree.c (tree_code_size): Ditto.
11473 (tree_node_structure): Ditto.
11474 (iterative_hash_expr): Ditto.
11475 * tree.def: Ditto.
11476 * tree.h (VALUE_HANDLE_ID): Ditto.
11477 (VALUE_HANDLE_EXPR_SET): Ditto.
11478 (struct tree_value_handle): Ditto.
11479 (union tree_node): Ditto.
11480 * treestruct.def: Ditto.
11481 * tree-vn.c: Removed.
11482 * tree-ssa-pre.c: Rewritten entirely.
11483 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
11484 (constant_value_ids): Ditto.
11485 (vn_nary_op_t): Moved to header.
11486 (vn_phi_t): Ditto.
11487 (vn_reference_op_t): Ditto
11488 (vn_reference_t): Ditto.
11489 (next_value_id): New variable.
11490 (VN_INFO): Add an assert.
11491 (vn_constant_eq): New function.
11492 (vn_constant_hash): Ditto.
11493 (get_or_alloc_constant_value_id): Ditto.
11494 (value_id_constant_p): Ditto.
11495 (vn_reference_compute_hash): De-staticify.
11496 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
72ea2555
UB
11497 Disable some code with a FIXME. Remove VALUE_HANDLE use.
11498 (valueize_refs): Update opcode if it changes from ssa name to constant.
c9145754
DB
11499 (vn_reference_lookup_1): Add new argument.
11500 (vn_reference_lookup): Ditto.
11501 (vn_reference_lookup_pieces): New function.
72ea2555 11502 (vn_reference_insert): Add return type. Modify to deal with value ids.
c9145754
DB
11503 (vn_reference_insert_pieces): New function.
11504 (vn_nary_op_compute_hash): De-staticify.
11505 (vn_nary_op_eq): Ditto.
11506 (vn_nary_op_lookup_pieces): New function.
22129589 11507 (vn_nary_op_lookup): Add new argument.
c9145754 11508 (vn_nary_op_insert_pieces): New function.
72ea2555 11509 (vn_nary_op_insert): Add return type. Modify to deal with value ids.
c9145754
DB
11510 (vn_phi_insert): Ditto.
11511 (visit_unary_op): Update for callee changes.
11512 (visit_binary_op): Ditto.
11513 (visit_reference_op_load): Ditto.
11514 (visit_reference_op_store): Ditto.
11515 (init_scc_vn): Init next_value_id, constant_to_value_id and
22129589 11516 constant_value_ids.
c9145754
DB
11517 (free_scc_vn): Free them.
11518 (set_hashtable_value_ids): New function.
11519 (run_scc_vn): Use it.
11520 (get_max_value_id): New function.
11521 (get_next_value_id): Ditto.
11522 (expressions_equal_p): Moved from tree-vn.c
11523 (sort_vuses): Ditto.
11524 (sort_vuses_heap): Ditto.
11525 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
11526 above).
11527 * tree.c (iterative_hash_hashval_t): Made non-static
11528 * tree.h (iterative_hash_hashval_t): Declare it.
22129589 11529
771578a0
MJ
115302008-07-08 Martin Jambor <mjambor@suse.cz>
11531
11532 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
11533 instead of ipa_create_node_params.
11534 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
11535 ipa_check_create_edge_args, free them with
11536 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
11537
11538 * ipa-prop.c: Include flags.h and tree-inline.h.
11539 (ipa_node_params_vector): New variable.
11540 (ipa_edge_args_vector): New variable.
11541 (edge_removal_hook_holder): New variable.
11542 (node_removal_hook_holder): New variable.
11543 (edge_duplication_hook_holder): New variable.
11544 (node_duplication_hook_holder): New variable.
11545 (ipa_detect_param_modifications): Check for presence of modified flags.
11546 (ipa_compute_jump_functions): Check for presence of jump functions.
11547 (ipa_free_edge_args_substructures): New function.
11548 (ipa_create_node_params): Removed.
11549 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
11550 (ipa_free_node_params_substructures): New function.
11551 (ipa_free_all_node_params): Changed to deallocate the on-the-side
11552 vector.
11553 (ipa_edge_removal_hook): New function.
11554 (ipa_node_removal_hook): New function.
11555 (duplicate_array): New function.
11556 (ipa_edge_duplication_hook): New function.
11557 (ipa_node_duplication_hook): New function.
11558 (ipa_register_cgraph_hooks): New function.
11559 (ipa_unregister_cgraph_hooks): New function.
11560 (free_all_ipa_structures_after_ipa_cp): New function.
22129589 11561
771578a0
MJ
11562 * ipa-prop.h: Include vec.h.
11563 (ipa_node_params_t): New typedef with vector types for it.
11564 (ipa_edge_args_t): New typedef with vector types for it.
11565 (IPA_NODE_REF): Changed to access an on-the-side vector.
11566 (IPA_EDGE_REF): Changed to access an on-the-side vector.
11567 (ipa_check_create_node_params): New function.
11568 (ipa_check_create_edge_args): New function.
22129589 11569
771578a0
MJ
11570 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
11571 all users.
22129589 11572
d2e506f2
TT
115732008-07-07 Tom Tromey <tromey@redhat.com>
11574
11575 * configure, config.in: Rebuilt.
11576 * configure.ac: Don't check for scandir or alphasort.
11577
bcbdbbb0
JM
115782008-07-07 Joseph Myers <joseph@codesourcery.com>
11579
11580 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
11581 types immediately after creating them.
11582
5cef5bf5
JM
115832008-07-07 Joseph Myers <joseph@codesourcery.com>
11584
11585 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
11586
fc93bcb6
FP
115872008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
11588
72ea2555
UB
11589 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
11590 dump_constraint_graph.
11591 (dump_constraint_edge): New function.
11592 (dump_constraint_graph): New function.
11593 (debug_constraint_graph): New function.
11594 (dump_constraint): Removed useless comparison.
11595 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
11596 (dump_constraint_graph): Declare.
11597 (debug_constraint_graph): Declare.
11598 * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
fc93bcb6 11599
8432ea85
KT
116002008-07-07 Kai Tietz <kai.tietz@onevision.com>
11601
11602 * config/i386/i386.c (is_va_list_char_pointer): New.
11603 (ix86_va_start): Replace compare with ms_va_list_type_node
11604 by is_va_list_char_pointer.
11605 (ix86_gimplify_va_arg): Likewise.
11606
9088c1cc
MJ
116072008-07-07 Martin Jambor <mjambor@suse.cz>
11608
11609 * cgraph.c (cgraph_edge_max_uid): New variable.
11610 (struct cgraph_edge_hook_list): New type.
11611 (struct cgraph_node_hook_list): New type.
11612 (struct cgraph_2edge_hook_list): New type.
11613 (struct cgraph_2node_hook_list): New type.
11614 (first_cgraph_edge_removal_hook): New variable.
11615 (first_cgraph_node_removal_hook): New variable.
11616 (first_cgraph_edge_duplicated_hook): New variable.
11617 (first_cgraph_node_duplicated_hook): New variable.
11618 (cgraph_add_edge_removal_hook): New function.
11619 (cgraph_remove_edge_removal_hook): New function.
11620 (cgraph_call_edge_removal_hooks): New function.
11621 (cgraph_add_node_removal_hook): New function.
11622 (cgraph_remove_node_removal_hook): New function.
11623 (cgraph_call_node_removal_hooks): New function.
11624 (cgraph_add_edge_duplication_hook): New function.
11625 (cgraph_remove_edge_duplication_hook): New function.
11626 (cgraph_call_edge_duplication_hooks): New function.
11627 (cgraph_add_node_duplication_hook): New function.
11628 (cgraph_remove_node_duplication_hook): New function.
11629 (cgraph_call_node_duplication_hooks): New function.
11630 (cgraph_create_edge): Assign to edge uid.
11631 (cgraph_remove_edge): Call edge removal hooks.
11632 (cgraph_node_remove_callees): Call edge removal hooks.
11633 (cgraph_node_remove_callers): Call edge removal hooks.
11634 (cgraph_remove_node): Call node removal hooks.
11635 (cgraph_clone_edge): Call edge duplication hooks.
11636 (cgraph_clone_node): Call node duplication hooks.
11637
11638 * cgraph.h (cgraph_edge): New field uid.
11639 (cgraph_edge_hook): New type.
11640 (cgraph_node_hook): New type.
11641 (cgraph_2edge_hook): New type.
11642 (cgraph_2node_hook): New type.
11643
c71618c6
AT
116442008-07-07 Andreas Tobler <a.tobler@schweiz.org>
11645
11646 * config.in: Regenerate.
11647
3def1397
VP
116482008-07-07 Vladimir Prus <vladimir@codesourcery.com>
11649
11650 * gcc.c (print_sysroot): New.
11651 (option_map, display_help, process_command): Handle the
11652 -print-sysroot option.
11653 (main): Print the sysroot if requested.
11654 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
22129589 11655
40a420d5
RW
116562008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11657
11658 PR target/34780
11659 * unwind-pe.h (size_of_encoded_value): add attribute unused.
11660
85776d60
DJ
116612008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
11662
72ea2555 11663 * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
85776d60
DJ
11664 (assign_parm_setup_block_p): Also check mode of entry_parm.
11665
bf87f41c
RG
116662008-07-07 Richard Guenther <rguenther@suse.de>
11667
11668 * tree-ssa-structalias.h (set_used_smts): Remove.
11669 * tree-ssa-structalias.c (used_smts): Likewise.
11670 (set_used_smts): Likewise.
11671 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
11672 call to set_used_smts.
11673
e5bae89b
RG
116742008-07-07 Richard Guenther <rguenther@suse.de>
11675
11676 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
11677 (new_var_info): Set it to false.
11678 (solution_set_add): Correctly handle pointers outside a var and
11679 inside a field.
11680 (type_safe): Treat variables with is_full_var properly.
11681 (do_sd_constraint): Likewise.
11682 (do_ds_constraint): Likewise.
11683 (process_constraint): Remove zeroing offset for !use_field_sensitive.
11684 (get_constraint_for_ptr_offset): New function.
11685 (get_constraint_for_component_ref): For addresses at least include
11686 the last field of the variable. Handle is_full_vars properly.
11687 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
11688 (handle_ptr_arith): Remove.
11689 (find_func_aliases): Simplify assignment handling.
11690 (create_function_info_for): For parameter and result varinfos set
11691 is_full_var flag.
11692 (create_variable_info_for): Set is_full_var flag whenever we
11693 just created a single varinfo for a decl.
11694 (init_alias_vars): Initialize use_field_sensitive from
11695 max-fields-for-field-sensitive parameter.
11696
115340c7
RG
116972008-07-07 Richard Guenther <rguenther@suse.de>
11698
11699 PR tree-optimization/36713
11700 * tree-flow-inline.h (is_call_used): New function.
11701 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
11702 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11703 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
11704
511e41e5
MK
117052008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
11706
11707 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
22129589 11708
bd0e50ee
MS
117092008-07-07 Mark Shinwell <shinwell@codesourcery.com>
11710
11711 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
11712
368b55f6
NS
117132008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
11714 Nathan Sidwell <nathan@codesourcery.com>
11715
11716 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
11717 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
11718 tmake_file.
11719 * config/m68k/t-linux: New.
11720 * doc/install.texi: Document m68k-*-linux is now multilibbed by
11721 default.
11722
117232008-07-07 Nathan Sidwell <nathan@codesourcery.com>
11724
11725 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
11726 * config/m68k/m68k-devices.def: Remove multilibs that only differ
11727 by MAC/EMAC.
11728
63ab5b8c
KG
117292008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11730
11731 * gcc.c (execute): Fix -Wc++-compat warning.
11732
9eb578c8
L
117332008-07-06 H.J. Lu <hongjiu.lu@intel.com>
11734
11735 PR target/36720
11736 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
11737 constant for little endian.
11738
60730ade
RS
117392008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
11740
11741 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
11742 mips_base_mips16 instead of TARGET_MIPS16.
11743 (mips_base_mips16): Declare.
11744 * config/mips/mips.c (mips_base_mips16): Make global.
11745 (was_mips16_p): Remove GTY marker.
11746 (was_mips16_pch_p): New variable.
11747 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
11748 (mips_override_options): Force to non-MIPS16 mode initially.
11749 Do not complain about MIPS16 PIC incompatibilities here.
11750 Only allow -mgpopt if -mexplicit-relocs is in force for
11751 non-MIPS16 code.
11752
bba09b5a
AT
117532008-07-06 Andreas Tobler <a.tobler@schweiz.org>
11754
11755 * configure.ac: Check for caddr_t, define to char * if not defined.
11756 * configure: Regenerate.
11757 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
11758 (mmap_gt_pch_use_address): Likewise.
11759 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
11760
ee7d4b57
RG
117612008-07-06 Richard Guenther <rguenther@suse.de>
11762
11763 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
11764 (new_var_info): Deal with it.
11765 (solution_set_add): Likewise.
11766 (bitpos_of_field): Make signed, fix.
11767 (struct fieldoff): Remove type and decl fields. Make size field
11768 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
11769 flags.
11770 (fieldoff_compare): Deal with it.
11771 (push_fields_onto_fieldstack): Remove has_union argument, glob
11772 adjacent non-pointer fields together.
11773 (create_function_info_for): Do not set has_union.
11774 (create_variable_info_for): Simplify.
11775
35cbb299
KT
117762008-07-06 Kai Tietz <kai.tietz@onevision.com>
11777
11778 * config.gcc (extra_headers): Add cross-stdarg.h for target
11779 x86_64-*-* and i?86-*-*.
11780 * config/i386/cross-stdarg.h: New.
11781 * builtins.c (std_fn_abi_va_list): New.
11782 (std_canonical_va_list_type): New.
11783 (stabilize_va_list): Replace va_list_type_node use by
11784 mtarget.canonical_va_list_type.
11785 (gimplify_va_arg_expr): Likewise.
11786 (expand_builtin_va_copy): Replace va_list_type_node use by
11787 mtarget.fn_abi_va_list.
11788 * tree-sra.c (is_va_list_type): New helper.
11789 (decl_can_be_decomposed_p): Replace
11790 va_list_type_node use by is_va_list_type.
11791 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
11792 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
11793 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
11794 * config/i386/i386-protos.h (ix86_get_valist_type): New.
11795 (ix86_enum_va_list): New.
11796 * config/i386/i386.c (sysv_va_list_type_node): New.
11797 (ms_va_list_type_node): New.
11798 (ix86_function_type_abi): Remove sorry.
11799 (ix86_build_builtin_va_list_abi): New.
11800 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
11801 for 64-bit targets.
11802 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
11803 (ix86_init_builtins_va_builtins_abi): New.
11804 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
11805 for 64-bit targets.
11806 (ix86_handle_abi_attribute): New.
11807 (attribute_spec): Add sysv_abi and ms_abi.
11808 (ix86_fn_abi_va_list): New.
11809 (ix86_canonical_va_list_type): New.
11810 (ix86_enum_va_list): New.
11811 (TARGET_FN_ABI_VA_LIST): New.
11812 (TARGET_CANONICAL_VA_LIST_TYPE): New.
11813 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
11814 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
11815 (TARGET_CANONICAL_VA_LIST_TYPE): New.
11816 (TARGET_ENUM_VA_LIST): New.
11817 * expr.h (std_fn_abi_va_list): New.
11818 (std_canonical_va_list_type): New.
11819 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
11820 (TARGET_CANONICAL_VA_LIST_TYPE): New.
11821 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
11822 TARGET_CANONICAL_VA_LIST_TYPE.
11823 * target.h (struct gcc_target): Add fn_abi_va_list hook
11824 and canonical_va_list_type hook.
11825
0e4b00d6
AP
118262008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11827
11828 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
11829 integral and pointer types.
11830
33c7eedf
RS
118312008-07-04 Roger Sayle <roger@eyesopen.com>
11832
72ea2555 11833 * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
33c7eedf
RS
11834 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
11835
0dcd6f42
KK
118362008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
11837
11838 PR target/36684
72ea2555 11839 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
0dcd6f42 11840
04e78aa9
JJ
118412008-07-04 Jakub Jelinek <jakub@redhat.com>
11842
11843 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
11844 build_gimple_modify_stmt.
11845 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
11846 gimple operand. Use fold_build* instead of build*.
11847
0e1f4c6b
RG
118482008-07-04 Richard Guenther <rguenther@suse.de>
11849
11850 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
11851 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
11852 properly to compute the reachability set if we do field-sensitive PTA.
11853 * invoke.texi (max-fields-for-field-sensitive): Document default.
11854 * opts.c (decode_options): Set max-fields-for-field-sensitive to
11855 100 for optimize >= 2.
11856
bf8e9c49
KG
118572008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11858
11859 * ggc-zone.c (lookup_page_table_if_allocated,
11860 set_page_table_entry, zone_find_object_size, alloc_small_page,
11861 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
11862 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
11863 -Wc++-compat and/or -Wcast-qual warnings.
11864
1d3155fc
AM
118652008-07-04 Alan Modra <amodra@bigpond.net.au>
11866
11867 PR target/36634
11868 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
11869 pic_offset_table_rtx to be marked as used here.
11870 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
11871 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
11872 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
11873 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
11874 !TARGET_SECURE_PLT.
11875
aebde504
KG
118762008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11877
11878 * alloc-pool.c (hash_descriptor, eq_descriptor,
11879 alloc_pool_descriptor): Fix -Wc++-compat warnings.
11880 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
11881 Likewise.
11882 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
11883 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
72ea2555 11884 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
aebde504
KG
11885 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
11886 Likewise.
11887
52778e2a
EB
118882008-07-03 Eric Botcazou <ebotcazou@adacore.com>
11889
11890 * tree-flow.h (loop_only_exit_p): Declare.
11891 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
11892 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
11893 the number of iterations if it is constant. Otherwise, if this is the
11894 only possible exit of the loop, use the conservative estimate on the
11895 number of iterations of the entire loop if available.
11896
f92518d7
RS
118972008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
11898
11899 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
11900 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
11901 Add synchronization functions.
11902 * config/sync.c: New file.
11903 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
11904 (LIBGCC_SYNC_CFLAGS): Likewise.
11905
dcde22ac
UB
119062008-07-03 Uros Bizjak <ubizjak@gmail.com>
11907
11908 PR target/36710
11909 * config/i386/i386.md (mode): Add TF to "mode" attribute.
11910 (*pushtf_sse): New insn pattern.
11911 (pushtf splitters): New splitters.
11912
9d7e5c4d
MM
119132008-07-03 Michael Meissner <gnu@the-meissners.org>
11914
11915 PR middle-end/35736
11916 * predict.c (build_predict_expr): Use void_type_node for the tree
11917 type, instead of NULL_TREE.
11918
192f2d33
L
119192008-07-03 H.J. Lu <hongjiu.lu@intel.com>
11920
11921 * config/i386/i386.c (contains_aligned_value_p): Return true
11922 for TCmode.
11923 (ix86_data_alignment): Align TCmode to 128bits.
11924 (ix86_local_alignment): Likewise.
11925
70d3fcab
AH
119262008-07-03 Andrew Haley <aph@redhat.com>
11927
11928 PR bootstrap/33304
11929 * vec.h (VEC_TA): New.
11930 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
11931 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
11932 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
11933 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
11934 (C_COMMON_FIXED_TYPES): Remove first arg.
11935 (C_COMMON_FIXED_MODE_TYPES): Likewise.
11936 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
11937 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
11938 not to use empty macro arguments.
11939
1935a7ef
JM
119402008-07-02 Joseph Myers <joseph@codesourcery.com>
11941
11942 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
11943 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
11944 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
11945 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
11946 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
11947 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
11948 config/ia64/crtn.asm, config/m68hc11/larith.asm,
11949 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
11950 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
11951 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
11952 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
11953 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
11954 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
11955 config/rs6000/e500crtres64gpr.asm,
11956 config/rs6000/e500crtres64gprctr.asm,
11957 config/rs6000/e500crtrest32gpr.asm,
11958 config/rs6000/e500crtrest64gpr.asm,
11959 config/rs6000/e500crtresx32gpr.asm,
11960 config/rs6000/e500crtresx64gpr.asm,
11961 config/rs6000/e500crtsav32gpr.asm,
11962 config/rs6000/e500crtsav64gpr.asm,
11963 config/rs6000/e500crtsav64gprctr.asm,
11964 config/rs6000/e500crtsavg32gpr.asm,
11965 config/rs6000/e500crtsavg64gpr.asm,
11966 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
11967 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
11968 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
11969 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
11970 config/sparc/sol2-cn.asm: Remove .file directives.
11971
1b929c9a
RS
119722008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
11973
11974 * resource.c (mark_referenced_resources): Look inside
11975 UNSPEC_VOLATILEs and ASM_INPUTs.
11976
65c5f2a6
ILT
119772008-07-02 Ian Lance Taylor <iant@google.com>
11978
11979 * rtlanal.c (add_reg_note): New function.
11980 * rtl.h (add_reg_note): Declare.
11981 * auto-inc-dec.c (attempt_change): Use add_reg_note.
11982 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
11983 * builtins.c (expand_builtin_longjmp): Likewise.
11984 (expand_builtin_nonlocal_goto): Likewise.
11985 * calls.c (emit_call_1, expand_call): Likewise.
11986 * cfgexpand.c (add_reg_br_prob_note): Likewise.
11987 * cfglayout.c (fixup_reorder_chain): Likewise.
11988 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
11989 (commit_one_edge_insertion): Likewise.
11990 * combine.c (move_deaths, distribute_notes): Likewise.
11991 * df-problems.c (df_set_note): Likewise.
11992 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
11993 (set_unique_reg_note): Likewise.
11994 (emit_copy_of_insn_after): Likewise.
11995 * expr.c (expand_expr_real): Likewise.
11996 * gcse.c (add_label_notes): Likewise.
11997 * haifa-sched.c (create_check_block_twin): Likewise.
11998 * jump.c (mark_jump_label_1): Likewise.
11999 * loop-doloop.c (add_test, doloop_modify): Likewise.
12000 * loop-unswitch.c (compare_and_jump_seq): Likewise.
12001 * lower-subreg.c (move_eh_region_note): Likewise.
12002 * optabs.c (emit_libcall_block): Likewise.
12003 * predict.c (predict_insn): Likewise.
12004 (combine_predictions_for_insn): Likewise.
12005 * recog.c (peephole2_optimize): Likewise.
12006 * regmove.c (try_auto_increment): Likewise.
12007 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
12008 * reload.c (find_reloads): Likewise.
12009 * reload1.c (fixup_eh_region_note): Likewise.
12010 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
12011 * reorg.c (delete_prior_computation): Likewise.
12012 (delete_computation, dbr_schedule): Likewise.
12013 * config/pa/pa.c (legitimize_pic_address): Likewise.
12014 * config/sh/sh.c (sh_reorg): Likewise.
12015
ff473280
L
120162008-07-02 H.J. Lu <hongjiu.lu@intel.com>
12017
12018 PR target/36669
12019 * config/libgcc-glibc.ver: Add %exclude.
12020 * config/m32r/libgcc-glibc.ver: Likwise.
12021 * config/s390/libgcc-glibc.ver: Likwise.
12022 * config/sh/libgcc-glibc.ver: Likwise.
12023 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
12024
12025 * config/i386/libgcc-glibc.ver: New.
12026
12027 * config/i386/libgcc-x86_64-glibc.ver: Removed.
12028
120292008-07-02 H.J. Lu <hongjiu.lu@intel.com>
12030
12031 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
12032 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
12033 i[34567]86-*-linux*, x86_64-*-linux*. Add
12034 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
12035 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
12036 x86_64-*-linux*. Add i386/t-linux to tmake_file for
12037 i[34567]86-*-linux*, x86_64-*-linux*.
12038
12039 * libgcc-std.ver: Add empty GCC_4.4.0.
12040
12041 * mkmap-symver.awk: Support multiple versions per symbol.
12042
12043 * config/i386/i386.c (ix86_init_builtins): Always define
12044 __builtin_fabsq and __builtin_copysignq with fallbacks.
12045 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
12046 and __builtin_copysignq if SSE2 isn't available.
12047
12048 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
12049 (LIBGCC2_TF_CEXT): Likwise.
12050 (TF_SIZE): Likwise.
12051
12052 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
12053
12054 * config/i386/sfp-machine.h: Moved to libgcc.
12055
12056 * config/i386/sfp-machine.h: New.
12057 * config/i386/t-linux: Likwise.
12058
12059 * config/i386/t-darwin: Remove softfp_wrap_start and
12060 softfp_wrap_end.
12061 * config/i386/t-darwin64: Likewise.
12062
12063 * config/i386/t-fprules-softfp64: Renamed to ...
12064 * config/i386/t-fprules-softfp: This.
12065
12066 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
12067 and softfp_wrap_end.
12068
09357846
JM
120692008-07-02 Jason Merrill <jason@redhat.com>
12070
6010fae7
JM
12071 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
12072
09357846
JM
12073 * tree.c (ctor_to_list): New fn.
12074 * tree.h: Declare it.
12075 (CONSTRUCTOR_ELT): New macro.
12076 (CONSTRUCTOR_NELTS): New macro.
12077
795a337a
RG
120782008-07-02 Richard Guenther <rguenther@suse.de>
12079
12080 * tree-ssa-structalias.c (struct variable_info): Reorder
12081 to fill padding on 64bit hosts. Make collapsed_to an int.
12082 (get_varinfo_fc): Deal with that.
12083 (new_var_info): Likewise.
12084 (collapse_rest_of_var): Likewise.
12085
c9db365d
JS
120862008-07-02 Joshua Sumali <jsumali@redhat.com>
12087
12088 * doc/install.texi (--enable-java-home): Document.
12089 (--enable-aot-compile-rpm): Likewise.
12090 (--with-arch-directory): Likewise.
12091 (--with-os-directory): Likewise.
12092 (--with-origin-name): Likewise.
12093 (--with-arch-suffix): Likewise.
12094 (--with-jvm-root-dir): Likewise.
12095 (--with-jvm-jar-dir): Likewise.
12096 (--with-python-dir): Likewise.
12097
9e11641d
RG
120982008-07-02 Richard Guenther <rguenther@suse.de>
12099
12100 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
12101 from decls explicitly. Merge operand checking from tuples.
12102
3fe1efe4
MJ
121032008-07-02 Martin Jambor <mjambor@suse.cz>
12104
12105 * tree-switch-conversion.c: Included timevar.h which I forgot before.
22129589 12106
a167a676
MJ
121072008-07-02 Martin Jambor <mjambor@suse.cz>
12108
12109 * tree-switch-conversion.c: Included timevar.h
12110 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
12111
12112 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
12113
b1ae1681
MJ
121142008-07-02 Martin Jambor <mjambor@suse.cz>
12115
12116 * tree-switch-conversion.c: Corrected various comments and
12117 whitespace issues
12118 (build_constructors): Fixed minor formatting mistakes.
12119
12120 * invoke.texi (Optimize Options): Corrected the
12121 switch-conversion-max-branch-ratio parameter.
12122
5bc4fa7c
MS
121232008-07-02 Mark Shinwell <shinwell@codesourcery.com>
12124
12125 * final.c (asm_insn_count): Return zero for an empty asm body.
12126
5f0d975b
RG
121272008-07-02 Richard Guenther <rguenther@suse.de>
12128
12129 * bitmap.h (bitmap_set_bit): Return bool.
12130 (bitmap_clear_bit): Likewise.
12131 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
12132 write to the bitmap if it would.
12133 (bitmap_clear_bit): Likewise.
12134 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
12135 bitmap_set_bit return value.
12136 (add_pred_graph_edge): Likewise.
12137 (add_graph_edge): Likewise.
12138 (do_sd_constraint): Likewise.
12139 (do_ds_constraint): Likewise.
12140
7a6942ad
KG
121412008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12142
12143 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
12144 Fix -Wc++-compat and/or -Wcast-qual warnings.
12145 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
12146 gen_regparm_prefix): Likewise.
12147 * vmsdbgout.c (write_modbeg, lookup_filename,
12148 vmsdbgout_source_line, vmsdbgout_init): Likewise.
12149
20384976
DS
121502008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
12151
12152 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
12153 defaults.h definition apply.
12154
4d2a9850
DJ
121552008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
12156
12157 * function.c (assign_parm_remove_parallels): New.
12158 (assign_parm_setup_block_p): Do not return true for non-BLKmode
12159 PARALLELs.
12160 (assign_parm_setup_block): Do not handle them.
12161 (assign_parm_setup_reg, assign_parm_setup_stack): Call
12162 assign_parm_remove_parallels.
12163
f83c7f63
DJ
121642008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
12165
12166 * c-typeck.c (convert_for_assignment): Use
12167 vector_targets_convertible_p.
12168 * c-common.c (vector_targets_convertible_p): New.
12169 * c-common.h (vector_targets_convertible_p): New prototype.
12170 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
12171 opaque_p_V2SI_type_node.
12172
103a6411
SE
121732008-07-01 Steve Ellcey <sje@cup.hp.com>
12174
12175 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
12176 RFmode constants.
12177
f3e10a2b
UB
121782008-07-01 Uros Bizjak <ubizjak@gmail.com>
12179
12180 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
12181 TFmode constants via two element DImode vector for hosts with
12182 HOST_BITS_PER_WIDE_INT < 64.
12183 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
12184 also for HOST_BITS_PER_WIDE_INT < 64.
12185
c0d459f0
RG
121862008-07-01 Richard Guenther <rguenther@suse.de>
12187
12188 PR tree-optimization/36666
12189 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
12190 (get_constraint_exp_from_ssa_var): Split into ...
12191 (get_constraint_exp_for_temp): ... this ...
12192 (get_constraint_for_ssa_var): ... and that.
12193 Return constraint expressions for all touched sub-fields
12194 if the results address is not taken.
12195 (process_constraint): Remove assertion that aggregate
12196 assignments do not happen at this place.
12197 (get_constraint_for_component_ref): Add address_p argument.
12198 Return constraint expressions for all touched sub-fields
12199 if the results address is not taken.
12200 (do_deref): Use get_constraint_exp_for_temp.
12201 (get_constraint_for_1): Rename from ...
f3e10a2b 12202 (get_constraint_for): ... this. Add the old function as wrapper.
c0d459f0
RG
12203 (do_structure_copy): Use get_constraint_for_1.
12204
b6e99746 122052008-07-01 Martin Jambor <mjambor@suse.cz>
c0d459f0 12206
dcde22ac
UB
12207 * Makefile.in (tree-switch-conversion.o): Add.
12208 (OBJS-common): Add tree-swtch-conversion.o.
12209 * passes.c (init_optimization_passes): Add pass_convert_switch.
12210 * tree-pass.h: (pass_convert_switch): Add.
12211 * tree-switch-conversion.c: New file.
12212 * gcc.dg/tree-ssa/cswtch.c: New testcase.
12213 * common.opt (ftree-cswtch): New option.
12214 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12215 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12216 * opts.c (decode_options): Set flag_tree_switch_conversion when
12217 optimization level is >= 2.
12218 * doc/invoke.texi (Optimize Options): Added description of
12219 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
b6e99746 12220
3043c804
KG
122212008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12222
12223 * config/darwin-driver.c (darwin_default_min_version): Fix
12224 -Wc++-compat warnings.
12225
f3e10a2b 122262008-06-30 Uros Bizjak <ubizjak@gmail.com>
33af070f
UB
12227
12228 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
12229 of operand 0.
12230
727683a5
KZ
122312008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
12232
f3e10a2b 12233 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
22129589 12234
370f38e8
KZ
122352008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
12236
a8f77bad 12237 PR rtl-optimization/34744
f3e10a2b 12238 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
dcde22ac 12239 (df_scan_free_internal): Free data structures not
370f38e8
KZ
12240 allocated in storage pools.
12241 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
f3e10a2b 12242 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
370f38e8
KZ
12243 df_scan_free_mws_vec.
12244 * dse.c (dse_step6): Free offset_map_p and offset_map_n
12245 unconditionally.
12246
5bb77598
L
122472008-06-30 H.J. Lu <hongjiu.lu@intel.com>
12248
12249 * config/i386/i386.c (contains_aligned_value_p): Return true
12250 for __float128.
33af070f 12251 (ix86_function_arg_boundary): Return its natural boundary
5bb77598
L
12252 for __float128.
12253 (return_in_memory_32): Don't check TDmode.
12254 (ix86_split_to_parts): Support splitting into 4 parts and
12255 support TFmode for 32bit target.
12256 (ix86_split_long_move): Support splitting into 4 parts.
12257 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
12258 for SSE2.
33af070f 12259 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
5bb77598
L
12260 (ix86_init_builtins): Here.
12261 (ix86_scalar_mode_supported_p): Always return true for TFmode.
12262 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
22129589 12263 'q' and 'w', respectively.
5bb77598
L
12264
12265 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
12266 TARGET_64BIT.
12267 (movtf_internal): Likewise.
12268 (<code>tf2): Likewise.
12269 (*absnegtf2_sse): Likewise.
12270 (copysign<mode>3): Likewise.
12271 (copysign<mode>3_const): Likewise.
12272 (copysign<mode>3_var): Likewise.
12273 (define_split UNSPEC_COPYSIGN): Likewise.
12274 * config/i386/sse.md (*nandtf3): Likewise.
12275 (<code>tf3): Likewise.
12276 (*<code>tf3): Likewise.
12277
38aa4d08
JY
122782008-06-30 Joey Ye <joey.ye@intel.com>
12279 H.J. Lu <hongjiu.lu@intel.com>
12280
12281 * global.c (compute_regsets): Set frame_pointer_needed here.
33af070f 12282 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
38aa4d08 12283
aad416fb
AL
122842008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
12285
12286 * doc/install.texi (specific): Expand Windows build notes.
12287
e2cefdd9
IR
122882008-06-30 Ira Rosen <irar@il.ibm.com>
12289
12290 PR tree-optimization/36648
12291 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
12292 number of prolog iterations by step. Fix the comment.
12293
183ae595
RG
122942008-06-30 Richard Guenther <rguenther@suse.de>
12295
12296 PR middle-end/36671
12297 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
12298 handle calls from ECF_MALLOC functions.
12299 (handle_pure_call): ECF_MALLOC functions do not return
12300 call-used memory.
12301 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
12302
c2058aa4
AS
123032008-06-29 Andreas Schwab <schwab@suse.de>
12304
6ae89ea8
AS
12305 * config/m68k/m68k.c (print_operand): Always print a float
12306 constant in hex.
12307 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
12308 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
12309 Remove macros.
12310
c2058aa4
AS
12311 * config/rs6000/x-linux64: Remove never used file.
12312
faf2ecc5
RG
123132008-06-29 Richard Guenther <rguenther@suse.de>
12314
12315 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
12316 prototype.
12317 (struct alias_info): Move ...
12318 * tree-ssa-alias.c: ... here.
12319 (update_alias_info): Declare.
12320 (compute_may_aliases): Call it.
12321 (update_alias_info): New function.
12322 * tree-ssa-structalias.c (update_alias_info): Move ...
12323 * tree-ssa-alias.c (update_alias_info_1): ... here.
12324 * tree-ssa-structalias.c (process_constraint_1): Remove
12325 unused from_call argument. Rename to ...
12326 (process_constraint): ... this. Delete old wrapper.
12327 (make_constraint_to): Adjust callers.
12328 (handle_const_call): Likewise.
12329 (handle_pure_call): Likewise.
12330 (init_base_vars): Likewise.
12331 (handle_lhs_call): Likewise. Remove unnecessary constraint.
12332 (find_func_aliases): We don't need structure copies for
12333 complex types.
12334 (make_constraint_from_anything): Remove.
12335 (create_variable_info_for): For globals make constraints
12336 from escaped, not from anything.
12337 (compute_points_to_sets): Do not call update_alias_info.
12338 (ipa_pta_execute): Use make_constraint_from.
12339
572e5ae3
KG
123402008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12341
12342 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
12343 (bitmap.o-warn, dominance.o-warn): New.
12344 * configure.ac (cxx_compat_warn): Delete.
12345 (loose_warn): Add -Wcast-qual and -Wc++-compat.
12346 * system.h: Remove #pragma diagnostic for -Wcast-qual and
12347 -Wc++-compat.
12348 * configure: Regenerate.
12349
12350 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
12351 warnings.
12352
4dc6c528
KG
123532008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12354
12355 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
12356 * df-scan.c (df_notes_rescan): Likewise.
12357 * ggc-page.c (set_page_table_entry): Likewise.
12358 * intl.c (gcc_gettext_width): Likewise.
12359 * varasm.c (get_unnamed_section, get_noswitch_section,
12360 get_section): Likewise.
12361
d1c1c79f
AJ
123622008-06-28 Andrew Jenner <andrew@codesourcery.com>
12363
12364 * regrename.c (build_def_use): Don't copy RTX.
12365
38bb2b65
SL
123662008-06-28 Sandra Loosemore <sandra@codesourcery.com>
12367
12368 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
12369 (Type Attributes): Fix nesting of @table and @subsection. Adjust
12370 punctuation. Use @ref instead of @xref.
12371 (Function Names): Remove stray @display/@end display.
12372 (C++ Attributes): Use @ref instead of @xref.
12373 (Deprecated Features): Fix punctuation around @xref.
12374 (Backwards Compatibility): Likewise.
12375 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
12376
624b157f
JM
123772008-06-28 Joseph Myers <joseph@codesourcery.com>
12378
12379 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
12380 constants for E500 double.
12381
ffba3fd0
UW
123822008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12383
12384 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
12385 element type of const_vector.
12386
f3e10a2b 123872008-06-28 Uros Bizjak <ubizjak@gmail.com>
7ae14d31
UB
12388
12389 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
12390 Remove FLAGS_REG clobber from expander pattern.
12391 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
12392 (anddi3, andsi3, andhi3, andqi3): Ditto.
12393 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
12394 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
12395 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
12396 (ashlsi3, ashlhi3, ashlqi3): Ditto.
12397 (ashrsi3, ashrhi3, ashrqi3): Ditto.
12398 (lshrsi3, lshrhi3, lshrqi3): Ditto.
12399 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
12400 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
12401
15c15196
RG
124022008-06-28 Richard Guenther <rguenther@suse.de>
12403
12404 * tree-ssa-structalias.c (callused_id, var_callused,
12405 callused_tree): Add.
12406 (handle_pure_call): New function.
12407 (find_func_aliases): Call it.
12408 (find_what_p_points_to): Handle the call-used set.
12409 (clobber_what_escaped): Likewise.
12410 (compute_call_used_vars): New function.
12411 (init_base_vars): Init the call-used variable.
12412 (do_sd_constraint): Do not propagate the solution from CALLUSED
12413 but use CALLUSED as a placeholder.
12414 (solve_graph): Likewise.
12415 * tree-flow-inline.h (gimple_call_used_vars): New function.
12416 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
12417 (compute_call_used_vars): Declare.
12418 * tree-ssa-alias.c (set_initial_properties): Call
12419 compute_call_used_vars.
12420 (reset_alias_info): Clear call-used variables.
12421 (add_call_clobber_ops): Assert we are not called for const/pure
12422 functions. Remove handling of them.
12423 (add_call_read_ops): Handle pure functions by adding the
12424 call-used set of variables as VUSEs.
12425 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
12426 (delete_tree_ssa): Free it.
12427 * tree-dfa.c (remove_referenced_var): Clear the var from the
12428 call-used bitmap.
12429
ff1c393b
KT
124302008-06-28 Kai Tietz <kai.tietz@onevision.com>
12431
12432 * tree.c (build_varargs_function_type_list): New.
12433 (build_function_type_list_1): New.
12434 (build_function_type_list): Use build_function_type_list_1.
12435 * tree.h (build_varargs_function_type_list): New.
12436
d74032d9
UW
124372008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12438
12439 PR target/34856
12440 * config/spu/spu.c (spu_builtin_splats): Do not generate
12441 invalid CONST_VECTOR expressions.
12442 (spu_expand_vector_init): Likewise.
12443
61698f54
RS
124442008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
12445
12446 * optabs.c (libfunc_decls): New variable.
12447 (libfunc_decl_hash, libfunc_decl_eq): New functions.
12448 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
12449 for the same function twice.
12450
f3e10a2b 124512008-06-27 Uros Bizjak <ubizjak@gmail.com>
934f2a96
UB
12452
12453 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
12454 ix86_expand_binary_operator directly.
12455 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
12456 for operand 2.
12457 (*ashrti3_1): Ditto.
12458 (*lshrti3_1): Ditto.
12459 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
12460 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
12461 using only one splitter. Conditionaly execute splitter before or
12462 after peephole2 pass.
12463 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
12464 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
12465 Use only one alternative in asm template.
12466 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
12467 in asm template.
12468 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
12469 "J" operand constraint for operand 2.
12470 (*ashldi3_cconly_rex64): Ditto.
12471 (*ashrdi3_cmp_rex64): Ditto.
12472 (*ashrdi3_cconly_rex64): Ditto.
12473 (*lshrdi3_cmp_rex64): Ditto.
12474 (*lshrdi3_cconly_rex64): Ditto.
12475 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
12476 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
12477 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
12478 gen_x86_shrd_1.
12479
b357f682
JJ
124802008-06-27 Jakub Jelinek <jakub@redhat.com>
12481
7ae14d31
UB
12482 * gimplify.c (omp_is_private): Don't return true if decl is not
12483 already private on #pragma omp for or #pragma omp parallel for.
ca2b1311 12484
b357f682
JJ
12485 PR debug/36617
12486 * tree-cfg.c (struct move_stmt_d): Replace block field with
12487 orig_block and new_block fields.
12488 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
12489 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
12490 (move_block_to_fn): Replace vars_map and new_label_map arguments
12491 with struct move_stmt_d pointer.
12492 (replace_block_vars_by_duplicates): New function.
12493 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
12494 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
12495 all subblocks of ORIG_BLOCK to the new function. Call
12496 replace_block_vars_by_duplicates.
12497 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
12498 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
12499 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
12500 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
12501 (expand_omp): Temporarily set input_location to the location of
12502 region's controlling stmt.
12503 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
12504 BIND_EXPR, push ctx->block_vars and gimplification vars into
12505 the BIND_EXPR and its block's BLOCK_VARS instead of directly
12506 into dest function.
12507 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
12508 there are any BLOCK_VARS.
12509 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
12510 OMP_PARALLEL or OMP_TASK stmt.
12511 (lower_omp): Save and restore input_location around the lower_omp_1
12512 call.
12513
b7091901
RG
125142008-06-27 Richard Guenther <rguenther@suse.de>
12515
12516 PR tree-optimization/36400
12517 PR tree-optimization/36373
12518 PR tree-optimization/36344
12519 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
12520 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
12521 (update_alias_info): Remove call clobbering code.
12522 (make_constraint_to): New helper function.
12523 (make_escape_constraint): Likewise.
12524 (handle_rhs_call): Use it on all pointer containing arguments.
12525 Also mark the static chain escaped.
12526 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
12527 instead of ANYTHING.
12528 (make_constraint_from): New helper split out from ...
12529 (make_constraint_from_anything): ... here.
12530 (find_func_aliases): Add constraints for escape sites.
12531 (intra_create_variable_infos): Make constraints from NONLOCAL
12532 for parameters.
12533 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
12534 as ANYTHING.
12535 (clobber_what_p_points_to): Remove.
12536 (clobber_what_escaped): New function.
12537 (init_base_vars): Init NONLOCAL and ESCAPED.
12538 (do_sd_constraint): Do not propagate the solution from ESCAPED
12539 but use ESCAPED as a placeholder.
12540 (solve_graph): Likewise.
12541 * tree-flow.h (clobber_what_p_points_to): Remove.
12542 (clobber_what_escaped): Declare.
12543 * tree-ssa-alias.c (set_initial_properties): Call it.
12544 Remove code clobbering escaped pointers.
12545
70cf5bc1
RS
125462008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
12547
12548 * function.c (allocate_struct_function): Only allocate a unique
12549 funcdef_no if the decl is nonzero.
12550
c5cb5d18
RS
125512008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
12552
12553 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
12554 * config/mips/mips.c (mips_split_const_insns): New function.
12555 * config/mips/mips.md (move_type): New attribute.
7ae14d31 12556 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
c5cb5d18
RS
12557 (dword_mode): New attribute.
12558 (type): Avoid long line. Map "move_type"s to "type"s,
12559 choosing "multi" for doubleword moves if appropriate.
12560 Swap MTC/MFC comments to match their declaration order.
12561 (extended_mips16): Default to "yes" if "move_type" is "sll0",
12562 "type" is "branch" or "jal" is "direct".
12563 (length): Handle "extended_mips16" first. Make the default
12564 "0" for "ghost" instructions. Set the length from "move_type".
12565 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
12566 of "type", with "sll0" for the register alternative. Remove the
12567 "extended_mips16" attribute.
12568 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
12569 of "type", with "shift_shift" for the register alternative.
12570 Remove the "length" attribute.
12571 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
12572 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
12573 of "type", with "andi" for the register alternative.
12574 (*zero_extendqihi2): Likewise.
12575 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
12576 of "andi" instead of a "type" of "arith".
12577 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
12578 instead of "type".
12579 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
12580 (mov_<store>r, *mov<mode>_ra): Likewise.
12581 (extendsidi2): Use "move_type" instead of "type", with "move"
12582 for the register alternative.
12583 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
12584 of "type", with "signext" for the register alternative.
12585 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
12586 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
12587 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
12588 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
12589 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
12590 (unnamed branch insn): Likewise.
12591 (*movdi_gp32_fp64): Fold into...
12592 (*movdi_32bit): ...here.
12593 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
12594 (*movdf_hardfloat): ...this new pattern.
12595 (*movdf_softfloat): Remove redundant FPR alternatives.
12596 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
12597 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
12598 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
12599 the "move" attribute.
12600 (*movdi_32bit): Use "move_type" instead of "type" and remove the
12601 "length" attribute. Use "fpload" and "fpstore" instead of "load"
12602 and "store" for COP loads and stores.
12603 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
12604 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
12605 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
12606 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
12607 (*movtf_mips16, *movv2sf): Likewise.
12608 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
12609 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
12610 (mfhc1<mode>): Use "move_type" instead of "move".
12611 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
12612 (loadgp_blockage): Remove the "length" attribute.
12613 (blockage, set_got_version, update_got_version): Likewise.
12614 (call_internal): Remove the "extended_mips16" attribute.
12615 (call_value_internal, call_value_multiple_internal): Likewise.
12616 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
12617 instead of "move".
12618 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
12619 the "length" attribute.
12620
5ead67f6
KG
126212008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12622
12623 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
12624 -Wcast-qual warnings.
12625 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
12626 handle_pragma_pop_macro): Likewise.
12627 * collect2.c (resolve_lib_name): Likewise.
12628 * config/arc/arc.c (arc_init): Likewise.
12629 * config/arm/arm.c (neon_builtin_compare,
12630 locate_neon_builtin_icode): Likewise.
7ae14d31 12631 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
5ead67f6
KG
12632 * config/bfin/bfin.c (bfin_init_machine_status,
12633 bfin_optimize_loop): Likewise.
12634 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12635 * config/cris/cris.c (cris_init_expanders): Likewise.
12636 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
12637 * config/darwin.c (machopic_indirection_eq,
7ae14d31 12638 machopic_indirection_name, machopic_output_indirection): Likewise.
5ead67f6
KG
12639 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
12640 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
12641 frv_optimize_membar): Likewise.
12642 * config/i386/cygwin.h (mingw_scan,
12643 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
12644 * config/i386/cygwin1.c (mingw_scan): Likewise.
12645 * config/i386/i386.c (machopic_output_stub): Likewise.
12646 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
12647 i386_pe_unique_section): Likewise.
12648 * config/ia64/ia64.c (ia64_init_machine_status,
12649 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
12650 Likewise.
12651 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
12652 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
12653 * config/m68k/m68k.c (m68k_handle_option,
12654 m68k_sched_md_init_global): Likewise.
7ae14d31
UB
12655 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
12656 mcore_unique_section): Likewise.
5ead67f6 12657 * config/mips/mips.c (mips_block_move_straight,
7ae14d31
UB
12658 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
12659 Likewise.
5ead67f6
KG
12660 * config/mmix/mmix.c (mmix_init_machine_status,
12661 mmix_encode_section_info): Likewise.
7ae14d31 12662 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
5ead67f6
KG
12663 * config/rs6000/rs6000.c (rs6000_init_machine_status,
12664 print_operand_address, output_toc, redefine_groups,
12665 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
12666 * config/s390/s390.c (s390_init_machine_status): Likewise.
12667 * config/score/score.c (score_block_move_straight,
12668 score_block_move_loop_body): Likewise.
12669 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
12670 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
12671 * emit-rtl.c (find_auto_inc): Likewise.
12672 * gcc.c (translate_options, process_command): Likewise.
12673 * reorg.c (dbr_schedule): Likewise.
12674 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
12675 * xcoffout.c (xcoffout_declare_function): Likewise.
12676
d1caaa76
DB
126772008-06-27 Daniel Berlin <dberlin@dberlin.org>
12678
12679 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
12680 ipa-pta working again.
12681
edae5fe3
DE
126822008-06-27 David Edelsohn <edelsohn@gnu.org>
12683
12684 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
12685 genautomata.
12686
126872008-06-27 Edmar Wienskoski <edmar@freescale.com>
12688
12689 * config.gcc (powerpc*-*-*): Add new core e500mc.
12690 * config/rs6000/e500mc.md: New file.
12691 * config/rs6000/rs6000.c (processor_costs): Add new costs for
12692 e500mc.
12693 (rs6000_override_options): Add e500mc case to
12694 processor_target_table. Altivec and Spe options not allowed
12695 with e500mc. Add isel instruction to e500mc by
12696 default. Initialize rs6000_cost for e500mc.
12697 (rs6000_issue_rate): Set issue rate for e500mc.
12698 * config/rs6000/rs6000.h (processor_type): Add
12699 PROCESSOR_PPCE500MC.
12700 (ASM_CPU_SPEC): Add e500mc.
12701 Set TARGET_ISEL to rs6000_isel.
12702 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
12703 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
12704 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
12705 Include e500mc.md.
12706 * doc/invoke.texi: Add e500mc to list of cpus.
12707
098b9c46
LB
127082008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12709
12710 PR c/34867
12711 * c-lex.c (lex_charconst): Initialize unsignedp.
12712
b7d565dd 127132008-06-27 Olivier Hainque <hainque@adacore.com>
1a13360e
OH
12714
12715 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
12716 documented assumptions.
12717
4b570560
L
127182008-06-26 H.J. Lu <hongjiu.lu@intel.com>
12719
12720 * dwarf2out.c: Remove trailing white spaces. Break long line
12721 in comments.
12722
e2ff10a9
RS
127232008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
12724
12725 * libfuncs.h (LTI_synchronize): New libfunc_index.
12726 (synchronize_libfunc): Declare.
12727 * builtins.c (expand_builtin_synchronize): Consider using
12728 synchronize_libfunc before falling back on an asm blockage.
12729 * config/mips/mips.c: Include libfuncs.h
12730 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
12731
f78c3290
NF
127322008-06-26 Nathan Froyd <froydnj@codesourcery.com>
12733
12734 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
12735 parameter. Copy stack_reg to r11 where appropriate.
12736 (no_global_regs_above): Add gpr parameter.
12737 (rs6000_stack_info): Only add padding for SPE save area if we
12738 are saving SPE GPRs and CR.
12739 (saveres_routine_syms): New variable.
12740 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
12741 Define.
12742 (rs6000_savres_routine_sym): New function.
12743 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
12744 split out of...
12745 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
12746 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
12747 Tweak FPR out-of-line saving.
12748 (rs6000_make_savres_rtx): New function.
12749 (rs6000_use_multiple_p): New function.
12750 (rs6000_savres_strategy): New function.
12751 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
12752 out-of-line if appropriate.
12753 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
12754 if we are optimizing for size.
12755 (GP_SAVE_INLINE): Define.
12756 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
12757 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
12758 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
12759 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
12760 (*save_fpregs_<mode>): Add use of r11.
12761 (*restore_gpregs_<mode>): New insn.
12762 (*return_and_restore_gpregs_<mode>): New insn.
12763 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
12764 use r11.
12765 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
12766 (*restore_gpregs_spe): New insn.
12767 (*return_and_restore_gpregs_spe): New insn.
12768 * config/rs6000/predicates.md (save_world_operation): Fix check.
12769
e24c4814
SB
127702008-06-26 Steven Bosscher <steven@gcc.gnu.org>
12771
12772 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
12773 this point, so assert that.
12774
25e87727
SB
127752008-06-26 Steven Bosscher <steven@gcc.gnu.org>
12776
12777 * cfganal.c: Include vec.h and vecprim.h.
12778 (compute_idf): Import from...
12779 * tree-into-ssa (compute_idf): ...here.
12780 * basic-block.h (compute_idf): Export.
12781
74b0ec7c
JM
127822008-06-26 Joseph Myers <joseph@codesourcery.com>
12783
12784 * c-decl.c (merge_decls): Use !current_function_decl to check for
12785 extern declaration of C99 inline function being at file scope.
12786
f3d14ed5
JDA
127872008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
12788
12789 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
12790
f883e0a7
KG
127912008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12792
12793 * alias.c (record_alias_subset, init_alias_analysis): Fix
12794 -Wc++-compat and/or -Wcast-qual warnings.
12795 * attribs.c (lookup_attribute_spec): Likewise.
12796 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
12797 copy_bb, connect_traces,
12798 find_rarely_executed_basic_blocks_and_cr): Likewise.
12799 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
12800 note_btr_set, migrate_btr_defs): Likewise.
12801 * builtins.c (result_vector, expand_builtin_memcpy,
12802 expand_builtin_mempcpy_args, expand_builtin_strncpy,
12803 builtin_memset_read_str, expand_builtin_printf,
12804 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
12805 Likewise.
12806 * caller-save.c (mark_set_regs): Likewise.
12807 * calls.c (expand_call, emit_library_call_value_1): Likewise.
12808 * cgraph.c (cgraph_edge): Likewise.
12809 * combine.c (likely_spilled_retval_1): Likewise.
12810 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
12811 htab_counts_entry_del, get_coverage_counts): Likewise.
12812 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
12813 new_cselib_val): Likewise.
12814 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
12815 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
12816 Likewise.
12817 * df-core.c (df_compact_blocks): Likewise.
12818 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
12819 * df-scan.c (df_grow_reg_info, df_ref_create,
12820 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
12821 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
12822 df_record_entry_block_defs, df_record_exit_block_uses,
12823 df_bb_verify): Likewise.
12824 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
12825 DF_REF_EXTRACT_MODE_CONST): New.
12826 * dominance.c (get_immediate_dominator, get_dominated_by,
12827 nearest_common_dominator, root_of_dom_tree,
12828 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
12829 -Wc++-compat and/or -Wcast-qual warnings.
12830 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
12831 record_store, replace_read, check_mem_read_rtx, scan_insn,
12832 dse_step1, dse_record_singleton_alias_set): Likewise.
12833 * dwarf2asm.c (dw2_force_const_mem): Likewise.
12834
1b4572a8
KG
128352008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12836
12837 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
12838 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
12839 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
12840 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
12841 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
12842 add_ranges_num, add_ranges_by_labels, file_info_cmp,
12843 file_name_acquire, output_file_names, add_const_value_attribute,
12844 premark_used_types_helper, file_table_eq, file_table_hash,
12845 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
12846 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
12847 -Wcast-qual warnings.
12848 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
12849 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
12850 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
12851 gen_reg_rtx, start_sequence, init_emit): Likewise.
12852 * et-forest.c (et_new_occ, et_new_tree): Likewise.
12853 * except.c (init_eh_for_function, gen_eh_region,
12854 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
12855 arh_to_landing_pad, arh_to_label, add_action_record,
12856 add_call_site, switch_to_exception_section): Likewise.
12857 * expmed.c (synth_mult): Likewise.
12858 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
12859 store_expr): Likewise.
12860 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
12861 Likewise.
12862 * function.c (assign_stack_temp_for_type,
12863 allocate_struct_function, match_asm_constraints_1): Likewise.
12864 * gcov-io.c (gcov_allocate): Likewise.
12865 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
12866 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
12867 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
12868 record_one_set, insert_expr_in_table, insert_set_in_table,
12869 dump_hash_table, compute_hash_table_work, alloc_hash_table,
12870 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
12871 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
12872 -Wcast-qual warnings.
12873
7cbb2a85
KG
128742008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12875
12876 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
12877 -Wcast-qual warnings.
12878 * gcc.c (process_command): Likewise.
12879 * genattrtab.c (oballoc): Use XOBNEW.
12880 (oballocvec): Define.
12881 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
12882 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
12883 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
12884 -Wc++-compat and/or -Wcast-qual warnings.
12885 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
12886 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
12887 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
12888 gen_presence_absence_set, gen_automaton, gen_regexp_el,
12889 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
12890 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
12891 add_excls, process_presence_absence_names,
12892 process_presence_absence_patterns, add_presence_absence,
12893 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
12894 get_free_state, add_arc, get_free_automata_list_el,
12895 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
12896 transform_3, cache_presence, create_ainsns, create_automata,
12897 create_state_ainsn_table, dfa_insn_code_enlarge,
12898 output_trans_func, output_min_issue_delay_func,
12899 output_dead_lock_func, output_reset_func,
12900 output_get_cpu_unit_code_func, output_dfa_start_func,
12901 expand_automata): Likewise.
12902 * genextract.c (gen_insn): Likewise.
12903 * gengtype-lex.l: Likewise.
12904 * gengtype.c (read_input_list, adjust_field_type,
12905 process_gc_options): Likewise.
12906 * genoutput.c (note_constraint): Likewise.
12907 * genpreds.c (mangle, add_constraint): Likewise.
12908 * genrecog.c (process_define_predicate, new_decision,
12909 add_to_sequence): Likewise.
12910 * gensupport.c (record_insn_name): Likewise.
12911
d3bfe4de
KG
129122008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12913
12914 * config/i386/driver-i386.c (detect_caches_amd,
12915 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
12916 and/or -Wcast-qual warnings.
12917 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
12918 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
12919 gt_pch_save): Likewise.
12920 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
12921 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
12922 * global.c (compute_regsets): Likewise.
12923 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
12924 finish_graph_dump_file): Likewise.
12925 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
12926 unlink_bb_notes): Likewise.
12927 * integrate.c (get_hard_reg_initial_val): Likewise.
12928 * ipa-prop.c (ipa_push_func_to_list): Likewise.
12929 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
12930 * local-alloc.c (update_equiv_regs): Likewise.
12931 * loop-invariant.c (check_invariant_table_size,
12932 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
12933 Likewise.
12934 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
12935 altered_reg_used, mark_altered): Likewise.
12936 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
12937 insert_var_expansion_initialization,
12938 combine_var_copies_in_loop_exit, apply_opt_in_copies,
12939 release_var_copies): Likewise.
12940 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
12941 analyze_matrix_decl, add_allocation_site, analyze_transpose,
12942 analyze_accesses_for_phi_node, check_var_notmodified_p,
12943 check_allocation_function, find_sites_in_func,
12944 record_all_accesses_in_func, transform_access_sites,
12945 transform_allocation_sites): Likewise.
12946 * omp-low.c (new_omp_region, create_omp_child_function_name,
12947 check_omp_nesting_restrictions, check_combined_parallel,
12948 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
12949 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
12950 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
12951 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
12952 Likewise.
12953 * opts-common.c (prune_options): Likewise.
12954 * opts.c (add_input_filename, print_filtered_help,
12955 get_option_state): Likewise.
12956 * params.c (add_params): Likewise.
12957 * passes.c (set_pass_for_id, next_pass_1,
12958 do_per_function_toporder, pass_fini_dump_file): Likewise.
12959 * postreload.c (reload_cse_simplify_operands): Likewise.
12960 * predict.c (tree_predicted_by_p, tree_predict_edge,
12961 clear_bb_predictions, combine_predictions_for_bb): Likewise.
12962
1634b18f
KG
129632008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12964
12965 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
12966 warnings.
12967 * recog.c (check_asm_operands, validate_change_1): Likewise.
12968 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
12969 subst_asm_stack_regs): Likewise.
12970 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
12971 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
12972 * regmove.c (reg_is_remote_constant_p): Likewise.
12973 * regrename.c (regrename_optimize, scan_rtx_reg,
12974 kill_clobbered_value, kill_set_value, kill_autoinc_value):
12975 Likewise.
12976 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
12977 regstat_compute_calls_crossed): Likewise.
12978 * reload1.c (init_reload, new_insn_chain,
12979 has_nonexceptional_receiver, reload, copy_reloads,
12980 calculate_needs_all_insns, init_elim_table): Likewise.
12981 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
12982 * rtl.c (shallow_copy_rtx_stat): Likewise.
12983 * rtlanal.c (parms_set): Likewise.
12984 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
12985 sbitmap_resize, sbitmap_vector_alloc): Likewise.
12986 * sched-ebb.c (earliest_block_with_similiar_load,
12987 add_deps_for_risky_insns): Likewise.
12988 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
12989 schedule_region): Likewise.
12990 * see.c (eq_descriptor_pre_extension,
12991 hash_descriptor_pre_extension, hash_del_pre_extension,
12992 eq_descriptor_properties, hash_descriptor_properties,
12993 hash_del_properties, see_seek_pre_extension_expr,
12994 see_initialize_data_structures, see_print_register_properties,
12995 see_print_pre_extension_expr, see_delete_merged_def_extension,
12996 see_delete_unmerged_def_extension, see_emit_use_extension,
12997 see_pre_delete_extension, see_map_extension, see_commit_changes,
12998 see_analyze_merged_def_local_prop,
12999 see_analyze_merged_def_local_prop,
13000 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
13001 see_set_prop_merged_def, see_set_prop_unmerged_def,
13002 see_set_prop_unmerged_use, see_print_one_extension,
13003 see_merge_one_use_extension, see_merge_one_def_extension,
13004 see_store_reference_and_extension, see_update_uses_relevancy,
13005 see_update_defs_relevancy): Likewise.
13006 * statistics.c (hash_statistics_hash, hash_statistics_eq,
13007 hash_statistics_free, curr_statistics_hash): Likewise.
13008 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
13009 expand_asm_operands, expand_return, case_bit_test_cmp,
13010 expand_case): Likewise.
13011 * stor-layout.c (start_record_layout): Likewise.
13012 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
13013 gt_pch_save_stringpool): Likewise.
13014 * tree-data-ref.c (hash_stmt_vertex_info,
13015 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
13016 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
13017
f3e10a2b 130182008-06-25 Uros Bizjak <ubizjak@gmail.com>
0edb82cb
UB
13019
13020 PR target/36627
13021 * config/i386/i386.md : Change constraints of HImode and QImode
13022 immediate operands from "i" to "n". Change SImode "ni" constraint to
13023 "i" and SImode "rmi" constraint to "g". Remove all constraints
13024 from const0_operand and const1_operand predicated operands.
13025 (i): Change QImode and HImode attribute from "i" to "n".
13026 (*subqi_2): Change HImode operands to QImode.
13027 (*subqi_3): Ditto.
13028
5cff8550
OH
130292008-06-25 Olivier Hainque <hainque@adacore.com>
13030
13031 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
13032 sed substitutions.
13033
185ab3b6
RG
130342008-06-25 Richard Guenther <rguenther@suse.de>
13035
13036 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
13037 not overflow the result type.
13038
8ef834ca
RG
130392008-06-25 Richard Guenther <rguenther@suse.de>
13040
13041 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
13042 (vn_lookup): Likewise.
13043
ee1f1270
RG
130442008-06-25 Richard Guenther <rguenther@suse.de>
13045
13046 PR tree-optimization/35518
13047 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
13048 * tree-sra.c (instantiate_element): Use fold_build3 to build
13049 BIT_FIELD_REFs.
13050 (try_instantiate_multiple_fields): Likewise.
13051
423addc5
AP
130522008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
13053
13054 * config/rs6000/rs6000.md: Change all string instruction's clobber to
13055 be early clobbers.
13056
d2492102
AP
130572008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
13058
13059 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
13060 use_backchain_to_restore_sp to true
13061 if the offset of the link register save area would go over the 32k - 1
13062 offset limit of the load
13063 instructions.
13064
917db97b
HPN
130652008-06-25 Hans-Peter Nilsson <hp@axis.com>
13066
13067 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
13068 anchor for the type-punning blurb. Cross-reference "Structures
13069 unions enumerations and bit-fields implementation". Provide a
13070 cast-through-pointer example. Make final sentence self-contained.
13071 * doc/implement-c.texi (Structures unions enumerations and
13072 bit-fields implementation): Cross-reference the type-punning blurb
13073 in the -fstrict-aliasing documentation.
13074
cba2d79f
AP
130752008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
13076
13077 PR middle-end/36594
13078 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
13079 the memory instead of the memory itself for the save area.
13080
8de8de02 130812008-06-24 Olivier Hainque <hainque@adacore.com>
0edb82cb 13082 Nicolas Roche <roche@adacore.com>
8de8de02
OH
13083
13084 * gengtype.c (srcdir_len): size_t instead of int.
13085 (get_file_realbasename): New function. For F a filename, the real
13086 basename of F, with all the path components stripped.
13087 (get_file_srcdir_relative_path): New function. For F a filename, the
13088 relative path to F from $(srcdir).
13089 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
13090 get_file_realbasename. Adjust the head comment.
13091 (get_prefix_langdir_index): New function. For F a filename, return the
13092 lang_dir_names[] relative index of the language directory that is
13093 a prefix in F.
13094 (get_file_langdir): For F a filename, return the name of the language
13095 directory where F is located.
13096 (get_file_gtfilename): New function. The gt- output file name for an
13097 input filename F.
13098 (get_output_file_with_visibility): Replace in-line computations with
13099 uses of get_file_gtfilename and get_prefix_langdir_index.
13100 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
13101
a80a2701
JJ
131022008-06-24 Jakub Jelinek <jakub@redhat.com>
13103
13104 PR tree-optimization/36504
13105 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
13106 references without base address.
13107
b5f772ce
UB
131082008-06-23 Uros Bizjak <ubizjak@gmail.com>
13109
0edb82cb 13110 PR middle-end/36584
b5f772ce
UB
13111 * calls.c (expand_call): Increase alignment for recursive functions.
13112
f9f6caf5
AS
131132008-06-23 Anatoly Sokolov <aesok@post.ru>
13114
13115 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
13116 (TARGET_FUNCTION_VALUE): New define.
13117 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
13118 * config/avr/avr.h (FUNCTION_VALUE): Remove.
13119
f2a55e41
UB
131202008-06-23 Uros Bizjak <ubizjak@gmail.com>
13121
13122 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
13123 (fmod<mode>3): Ditto.
13124 (remainderxf3): Ditto.
13125 (remainder<mode>3): Ditto.
13126
53983ae9
JJ
131272008-06-23 Jakub Jelinek <jakub@redhat.com>
13128
923ba36f
JJ
13129 PR target/36533
13130 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
13131 REG is a hard register.
13132
53983ae9
JJ
13133 PR tree-optimization/36508
13134 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
13135 499, don't check it at all in release compilers.
13136
cc774ffb
UB
131372008-06-23 Uros Bizjak <ubizjak@gmail.com>
13138
13139 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
13140 together with SSE_TARGET_MATH to disable insn pattern.
13141 (*fop_<MODEF:mode>_2_i387): Ditto.
13142 (*fop_<MODEF:mode>_3_i387): Ditto.
13143
34babc73
AH
131442008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
13145
13146 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
22129589 13147
2c68ba8e
LB
131482008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
13149
13150 PR middle-end/34906
13151 * gimplify.c (gimplify_asm_expr): Check the return code of
13152 parse_output_constraint call, set function return and is_inout
13153 value if it failed.
13154
d75d71e0
ILT
131552008-06-22 Ian Lance Taylor <iant@google.com>
13156
13157 * c-lex.c (narrowest_unsigned_type): Change itk to int.
13158 (narrowest_signed_type): Likewise.
13159 * c-typeck.c (c_common_type): Change local variable mclass to enum
13160 mode_class, twice.
13161 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
13162 tcc_comparison, not the tree code itself.
13163 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
13164 (c_expand_expr): Cast modifier to enum expand_modifier.
13165 * c-common.h (C_RID_CODE): Add casts.
13166 (C_SET_RID_CODE): Define.
13167 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
13168 (c_lex_one_token): Add cast to avoid warning.
13169 (c_parser_objc_type_name): Rename local typename to type_name.
13170 (check_no_duplicate_clause): Change code parameter to enum
13171 omp_clause_code.
13172 (c_parser_omp_var_list_parens): Change kind parameter to enum
13173 omp_clause_code.
13174 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
13175 c_parser_omp_list_var_parens.
13176 (c_parser_omp_threadprivate): Likewise.
13177 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
13178 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
13179 * c-format.c (NO_FMT): Define.
13180 (printf_length_specs): Use NO_FMT.
13181 (asm_fprintf_length_specs): Likewise.
13182 (gcc_diag_length_specs): Likewise.
13183 (scanf_length_specs): Likewise.
13184 (strfmon_length_specs): Likewise.
13185 (gcc_gfc_length_specs): Likewise.
13186 (printf_flag_specs): Change 0 to STD_C89.
13187 (asm_fprintf_flag_specs): Likewise.
13188 (gcc_diag_flag_specs): Likewise.
13189 (gcc_cxxdiag_flag_specs): Likewise.
13190 (scanf_flag_specs): Likewise.
13191 (strftime_flag_specs): Likewise.
13192 (strfmon_flag_specs): Likewise.
13193 (print_char_table): Likewise.
13194 (asm_fprintf_char_table): Likewise.
13195 (gcc_diag_char_table): Likewise.
13196 (gcc_tdiag_char_table): Likewise.
13197 (gcc_cdiag_char_table): Likewise.
13198 (gcc_cxxdiag_char_table): Likewise.
13199 (gcc_gfc_char_table): Likewise.
13200 (scan_char_table): Likewise.
13201 (time_char_table): Likewis.
13202 (monetary_char_table): Likewise.
13203 * c-format.h (BADLEN): Likewise.
13204
c0ed0531
ILT
132052008-06-21 Ian Lance Taylor <iant@google.com>
13206
13207 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
13208 Define END_OF_BASE_TREE_CODES around inclusion.
13209 * tree.c (tree_code_type): New global array.
13210 (tree_code_length, tree_code_name): Likewise.
13211 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
13212 $(lang_tree_files).
13213 (all-tree.def, s-alltree): New targets.
13214 (gencheck.h, s-gencheck): Remove.
13215 (tree.o): Depend upon all-tree.def.
13216 (build/gencheck.o): Remove gencheck.h dependency.
13217 (mostlyclean): Don't remove gencheck.h.
13218 * c-common.h (enum c_tree_code): Remove.
13219 * c-lang.c (tree_code_type): Remove.
13220 (tree_code_length, tree_code_name): Remove.
13221 * gencheck.c (tree_codes): Include all-tree.def, rather than
13222 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
13223 after it is used.
13224 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
13225 than tree.def.
13226 * cp/cp-tree.h (enum cplus_tree_code): Remove.
13227 (operator_name_info): Size to MAX_TREE_CODES.
13228 (assignment_operator_name_info): Likewise.
13229 * cp/cp-lang.c (tree_code_type): Remove.
13230 (tree_code_length, tree_code_name): Remove.
13231 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
13232 (assignment_operator_name_info): Likewise.
13233 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
13234 MAX_TREE_CODES.
13235 * cp/mangle.c (write_expression): Likewise.
13236 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
13237 * fortran/f95-lang.c (tree_code_type): Remove.
13238 (tree_code_length, tree_code_name): Remove.
13239 * java/java-tree.h (enum java_tree_code): Remove.
13240 * java/lang.c (tree_code_type): Remove.
13241 (tree_code_length, tree_code_name): Remove.
13242 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
13243 * objc/objc-act.h (enum objc_tree_code): Remove.
13244 * objc/objc-lang.c (tree_code_type): Remove.
13245 (tree_code_length, tree_code_name): Remove.
13246 * objcp/objcp-lang.c (tree_code_type): Remove.
13247 (tree_code_length, tree_code_name): Remove.
13248 * ada/ada-tree.h (enum gnat_tree_code): Remove.
13249 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
13250 * ada/misc.c (tree_code_type): Remove.
13251 (tree_code_length, tree_code_name): Remove.
13252
830b4fec
BF
132532008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
13254
13255 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
13256 the grand_bitmap_obstack.
13257
3d9a9f94
KG
132582008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13259
13260 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
13261 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
b5f772ce 13262 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3d9a9f94
KG
13263 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
13264 move_stmt_r, new_label_mapper): Likewise.
13265 * tree-complex.c (cvc_lookup): Likewise.
13266 * tree-dfa.c (create_function_ann): Likewise.
13267 * tree-dump.c (dump_register): Likewise.
13268 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
13269 find_phi_replacement_condition): Likewise.
13270 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
13271 tree_function_versioning): Likewise.
13272 * tree-into-ssa.c (cmp_dfsnum): Likewise.
13273 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
13274 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
13275 get_nonlocal_debug_decl, convert_nonlocal_reference,
13276 convert_nonlocal_omp_clauses, get_local_debug_decl,
13277 convert_local_reference, convert_local_omp_clauses,
13278 convert_nl_goto_reference, convert_nl_goto_receiver,
13279 convert_tramp_reference, convert_call_expr): Likewise.
13280 * tree-outof-ssa.c (contains_tree_r): Likewise.
13281 * tree-parloops.c (reduction_phi, initialize_reductions,
13282 eliminate_local_variables_1, add_field_for_reduction,
13283 add_field_for_name, create_phi_for_local_result,
13284 create_call_for_reduction_1, create_loads_for_reductions,
13285 create_stores_for_reduction, create_loads_and_stores_for_name):
13286 Likewise.
13287 * tree-phinodes.c (allocate_phi_node): Likewise.
cc774ffb
UB
13288 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
13289 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3d9a9f94
KG
13290 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
13291 * tree-ssa-coalesce.c (compare_pairs): Likewise.
13292 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
13293 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
13294 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
22129589 13295 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
3d9a9f94
KG
13296 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
13297 vn_nary_op_insert): Likewise.
13298 * tree-ssa.c (redirect_edge_var_map_add,
13299 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
13300 * tree-vectorizer.c (vectorize_loops): Likewise.
13301 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
13302 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
13303 tree_cons_stat, build1_stat, build_variant_type_copy,
13304 decl_init_priority_lookup, decl_fini_priority_lookup,
13305 decl_priority_info, decl_restrict_base_lookup,
13306 decl_restrict_base_insert, decl_debug_expr_lookup,
13307 decl_debug_expr_insert, decl_value_expr_lookup,
13308 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
13309 type_hash_add, get_file_function_name, tree_check_failed,
13310 tree_not_check_failed, tree_range_check_failed,
13311 omp_clause_range_check_failed, build_omp_clause,
13312 build_vl_exp_stat): Likewise.
13313 * value-prof.c (gimple_histogram_value,
13314 gimple_duplicate_stmt_histograms): Likewise.
13315 * var-tracking.c (attrs_list_insert, attrs_list_copy,
13316 unshare_variable, variable_union_info_cmp_pos, variable_union,
13317 dataflow_set_different_1, dataflow_set_different_2,
13318 vt_find_locations, variable_was_changed, set_variable_part,
cc774ffb 13319 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3d9a9f94
KG
13320 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
13321 section_entry_hash, object_block_entry_eq,
13322 object_block_entry_hash, create_block_symbol,
13323 initialize_cold_section_name, default_function_rodata_section,
13324 strip_reg_name, set_user_assembler_name, const_desc_eq,
13325 build_constant_desc, output_constant_def, lookup_constant_def,
13326 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
13327 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
13328 default_internal_label): Likewise.
13329 * varray.c (varray_init, varray_grow): Likewise.
13330 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
13331
a055f99f
UB
133322008-06-20 Uros Bizjak <ubizjak@gmail.com>
13333
13334 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
13335 operators for "test" insn. Macroize insn using SWI mode macro.
13336 (*jcc_fused_2): Ditto.
13337 (*jcc_fused_3): Macroize insn using SWI mode macro.
13338 (*jcc_fused_4): Ditto.
13339
a7849637
BF
133402008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
13341
a055f99f
UB
13342 * tree-ssa-pre.c: Fix typo in comment.
13343 (init_antic, fini_antic): Add explicit funtions for
13344 initializing and deinitializing ANTIC and AVAIL sets.
13345 (create_expression_by_pieces): Fix typo in comment.
13346 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
13347 (execute_pre): Eventually dump details about ANTIC_IN.
a7849637 13348
e1e4cdc4
KG
133492008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13350
13351 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
13352 * gcc.c (translate_options, init_spec, store_arg, read_specs,
13353 add_to_obstack, file_at_path, find_a_file, execute,
13354 add_preprocessor_option, add_assembler_option, add_linker_option,
13355 process_command, insert_wrapper, do_option_spec, do_self_spec,
13356 spec_path, do_spec_1, is_directory, main, used_arg,
13357 getenv_spec_function): Likewise.
13358 * tlink.c (symbol_hash_lookup, file_hash_lookup,
13359 demangled_hash_lookup, symbol_push, file_push, frob_extension):
13360 Likewise.
13361
1ba4e523
KZ
133622008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
13363
13364 * doc/rtl.texi: Updated subreg section.
a7849637 13365
2368a460
JJ
133662008-06-19 Jakub Jelinek <jakub@redhat.com>
13367
13368 PR c++/36523
13369 * cgraphunit.c (cgraph_process_new_functions): Don't clear
13370 node->needed and node->reachable.
13371 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
13372 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
13373 (expand_task_call): Don't call expand_task_copyfn.
13374 (expand_task_copyfn): Renamed to...
13375 (finalize_task_copyfn): ... this.
13376
dea33aa7
JH
133772008-06-19 Jan Hubicka <jh@suse.cz>
13378
13379 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
13380 clobbering framepointer.
13381
bad5e2b5
JH
133822008-06-19 Jan Hubicka <jh@suse.cz>
13383
13384 * tree-optimize.c (execute_early_local_optimizations): Set
13385 cgraph_state only at first invocation.
13386
00066bc0
KG
133872008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13388
13389 * system.h (-Wc++-compat): Activate as a warning, no an error.
13390
f1469150
UB
133912008-06-19 Uros Bizjak <ubizjak@gmail.com>
13392
13393 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
13394 instead of "#" in insn asm template.
13395 (*jcc_fused_2): Ditto.
13396
354f84af
UB
133972008-06-19 Uros Bizjak <ubizjak@gmail.com>
13398
13399 * config/i386/i386.h (ix86_tune_indices)
13400 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
13401 (TARGET_FUSE_CMP_AND_BRANCH): New define.
13402 * config/i386/i386.md (*jcc_fused_1): New insn pattern
13403 (*jcc_fused_2): Ditto.
13404 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
f1469150 13405 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
354f84af
UB
13406 (print operand): Handle 'E' and 'e' code.
13407
720705d2
AS
134082008-06-19 Anatoly Sokolov <aesok@post.ru>
13409
13410 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
13411 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13412 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13413
f30cfcb1
BRF
134142008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
13415
13416 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
13417 node->decl.
13418 (cgraph_expand_function): Use local copy of decl.
13419 (cgraph_expand_all_functions): Remove redundant initialization of
13420 order_pos.
13421 (cgraph_optimize): Reword internal_error message.
13422
134232008-06-19 Chung-Lin Tang <ctang@marvell.com>
23668cf7
CLT
13424
13425 * arm-protos.h (arm_return_in_memory): Remove public
13426 arm_return_in_memory() prototype.
13427 * arm.c (arm_return_in_memory): Add static prototype, add target
13428 hook macro, change definition and comments.
13429 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
13430
7292b8e4
BE
134312008-06-19 Ben Elliston <bje@au.ibm.com>
13432
13433 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
13434 real.c: Remove references to IEEE 754R.
13435 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
13436 * doc/libgcc.texi (Decimal float library routines): Likewise.
13437
7b0518e3
UW
134382008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13439
13440 * targhooks.h (struct gcc_target): New member unwind_word_mode.
13441 (default_unwind_word_mode): Add prototype.
13442 * targhooks.c (default_unwind_word_mode): New function.
13443 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
13444 instead of word_mode.
13445 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
13446 (TARGET_INITIALIZER): Use it.
13447
13448 * c-common.c (handle_mode_attribute): Support "unwind_word"
13449 mode attribute.
13450 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
13451
13452 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
13453 word_mode to access SjLj_Function_Context member "data".
13454 (sjlj_emit_dispatch_table): Likewise. Also, perform type
13455 conversion from targetm.eh_return_filter_mode () to
13456 targetm.unwind_word_mode () if they differ.
13457
13458 * builtin-types.def (BT_UNWINDWORD): New primitive type.
13459 (BT_FN_UNWINDWORD_PTR): New function type.
13460 (BT_FN_WORD_PTR): Remove.
13461 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
13462 * except.c (expand_builtin_extend_pointer): Convert pointer to
13463 targetm.unwind_word_mode () instead of word_mode.
13464
13465 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
13466 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
13467 (spu_unwind_word_mode): New function.
13468 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
13469 (TARGET_UNWIND_WORD_MODE): Define.
13470 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
13471
aa5d9939
UW
134722008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13473
13474 * config/spu/spu.c (reg_align): Remove.
13475 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
13476 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
13477 (spu_split_store): Likewise.
13478
f30cfcb1 134792008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
a7816b82
BF
13480
13481 * gcc/tree-vn.c: Fix typo in comment.
13482
45f09afb
JH
134832008-06-18 Jan Hubicka <jh@suse.cz>
13484
13485 * cgraphunit.c (cgraph_optimize): Output debug info when doing
13486 toplevel reorder too.
13487
a7bf199e
JH
134882008-06-18 Jan Hubicka <jh@suse.cz>
13489
13490 * c-opts.c (c_common_post_options): PCH is not compatible with
13491 no-unit-at-a-time.
13492 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
13493 -fno-toplevel-reorder by default now.
13494
3f737aa9
RW
134952008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13496
13497 PR documentation/30739
13498 * doc/install.texi (Prerequisites): Document dependency on awk.
13499
ba03a350
UB
135002008-06-18 Uros Bizjak <ubizjak@gmail.com>
13501 Ian Lance Taylor <iant@google.com>
13502
13503 PR rtl-optimization/35604
13504 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
13505 only want to change jump destinations, not eventual label comparisons.
13506
fdd7f241
JH
135072008-06-16 Jan Hubicka <jh@suse.cz>
13508
13509 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
13510 syntax errors.
13511 (cgraph_analyze_function): Likewise.
13512
f0c882ab
JH
135132008-06-16 Jan Hubicka <jh@suse.cz>
13514
13515 * cgraph.h (cgraph_mark_if_needed): New function.
13516 * cgraphunit.c (cgraph_mark_if_needed): New function.
13517 * c-decl.c (duplicate_decl): Use it.
13518
ff2c88a5
JH
135192008-06-16 Jan Hubicka <jh@suse.cz>
13520
13521 * cgraph.c (cgraph_add_new_function): When in expansion state, do
13522 lowering.
13523
b7352f3f
JH
135242008-06-16 Jan Hubicka <jh@suse.cz>
13525
13526 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
13527
900e3ae5
DJ
135282008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
13529 Kazu Hirata <kazu@codesourcery.com>
13530 Maxim Kuvyrkov <maxim@codesourcery.com
13531
13532 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
13533 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
13534 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
13535 EXTRA_SPEC_FUNCTIONS.
13536 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
13537 (DRIVER_SELF_SPECS): Adjust.
13538 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
13539 * config/mips/st.h, config/mips/t-st: New.
13540 * config/mips/driver-native.c, config/mips/x-native: New.
13541 * doc/invoke.texi (MIPS): Document 'native' value for -march and
13542 -mtune options.
13543
b51469a5
MK
135442008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
13545
13546 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
13547 from it.
13548 (ISA_HAS_FP_CONDMOVE): New macro.
13549 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
13550 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
13551 (ISA_HAS_NMADD3_NMSUB3): New macro.
13552 * config/mips/mips.c (mips_rtx_costs): Update.
13553 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
13554 compiling for ST Loongson 2E/2F.
13555 (madd<mode>): Rename to madd4<mode>. Update.
13556 (madd3<mode>): New pattern.
13557 (msub<mode>): Rename to msub4<mode>. Update.
13558 (msub3<mode>): New pattern.
13559 (nmadd<mode>): Rename to nmadd4<mode>. Update.
13560 (nmadd3<mode>): New pattern.
13561 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
13562 (nmadd3<mode>_fastmath): New pattern.
13563 (nmsub<mode>): Rename to nmsub4<mode>. Update.
13564 (nmsub3<mode>): New pattern.
13565 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
13566 (nmsub3<mode>_fastmath): New pattern.
13567 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
13568
50e94c7e
SB
135692008-06-18 Steven Bosscher <steven@gcc.gnu.org>
13570
13571 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
13572 (DF_REF_INSN_INFO): New.
13573 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
13574 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
13575 with a NULL DF_REF_INSN_INFO.
13576 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
13577 DF_INSN_SET.
13578 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
13579 DF_INSN_INFO_EQ_USES): New.
13580 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
13581 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
13582 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
13583 * df-core.c: Update comment for above changes.
13584 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
13585 DF_INSN_UID_* macros.
13586 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
13587 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
13588 insn rtx. Update all callers.
13589 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
13590 df_ref_create_structure, df_insn_refs_collect): Likewise.
13591 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
13592 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
13593 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
13594 macros to access the insn refs.
13595 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
13596 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
13597 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
13598 for accessing the refs.
13599 (try_fwprop_subst): Likewise.
13600 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
13601 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
13602 for accessing the refs.
13603 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
13604 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
13605 to look at the insn refs.
13606 (record_uses): Likewise.
13607 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
13608 function anymore.
13609 (mark_artificial_uses): Don't mark_insn for artificial refs.
13610 (mark_reg_rependencies): Likewise.
13611
13612 * doc/rtl.texi: Remove documentation of ADDRESSOF.
13613
18c04407
RW
136142008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13615
13616 * configure: Regenerate.
13617
7995ad77
EW
136182008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
13619
13620 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
22129589
AS
13621 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13622 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7995ad77 13623
e416eb8f
EW
136242008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
13625
13626 * config/avr/avr.c (avr_mcu_t): Add attiny167.
22129589
AS
13627 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13628 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
e416eb8f 13629
59928a83
EW
136302008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
13631
13632 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
22129589
AS
13633 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13634 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
59928a83 13635
b40bf772
BF
136362008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
13637
13638 * tree-ssa-sccvn.c: Fix format of comments.
13639
136402008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
a33a598c
BF
13641
13642 * cgraph.c: Remove unneeded forward declarations of eq_node()
13643 and hash_node().
13644
4a8cae83
SB
136452008-06-17 Steven Bosscher <steven@gcc.gnu.org>
13646
13647 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
13648 REG_RETVAL notes.
13649 (see_update_relevancy): Likewise.
13650 * fwprop.c (try_fwprop_subst): Likewise.
13651 * rtlanal.c (noop_move_p): Likewise.
13652 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
13653 notes to non-existing libcall blocks.
13654 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
13655 Remove orig_set.
13656 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
13657 (dead_libcall_p): Remove.
13658 (delete_trivially_dead_insns): Don't use it.
13659 * web.c (union_defs): Remove comment about keeping nops.
13660 * gcse.c (hash_scan_insn): Don't take libcall pointers.
13661 (compute_hash_table_work): Don't track libcall notes.
13662 (do_local_cprop): Don't take libcall pointers. Don't update
13663 libcall notes.
13664 (adjust_libcall_notes): Deleted.
13665 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
13666 ever have existed in the first place).
13667 (replace_store_insn): Don't try to remove libcall notes.
13668 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
13669 (resolve_reg_notes): Don't call them.
13670 (resolve_simple_move): Likewise.
13671 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
13672 Don't remove REG_RETVAL notes.
13673 * emit-rtl.c (try_split): Don't update libcall notes.
13674 (emit_copy_of_insn_after): Dito.
13675 * cselib.c (cselib_current_insn_in_libcall): Remove.
13676 (cselib_process_insn): Don't set/clear it.
13677 (new_elt_loc_list): Don't record it.
13678 (cselib_init): Don't initialize it.
13679 * cselib.c (struct elt_loc_list): Remove in_libcall field.
13680 * loop-invariant.c (find_invariant_insn): Don't look for libcall
13681 notes.
13682 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
13683 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
13684 (init_deps): Don't initialize it.
13685 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
13686 * combine.c (delete_noop_moves): Don't update libcall notes.
13687 (can_combine_p): Remove now pointless #if 0 block.
13688 (try_combine): Remove another obsolete #if 0 block.
13689 (distribute_notes): Don't distribute libcall notes.
13690 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
13691 * dce.c (libcall_dead_p): Remove.
13692 (delete_unmarked_insns): Don't handle libcall blocks.
13693 (preserve_libcall_for_dce): Remove.
13694 (prescan_insns_for_dce): Don't special-case libcall block insns.
22129589 13695 * reload1 (reload): Don't handle libcall notes.
4a8cae83
SB
13696 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
13697 documentation.
13698
ec346900
EW
136992008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
13700
13701 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
13702 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13703 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13704
951a5379
EW
137052008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
13706
13707 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
13708 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
22129589 13709 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
951a5379 13710
2d09b640
RW
137112008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13712
13713 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
13714
54269f05
IR
137152008-06-16 Ira Rosen <irar@il.ibm.com>
13716
13717 PR tree-optimization/36493
13718 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
13719 the arguments list. Use VECTYPE to create vector pointer.
13720 (vectorizable_store): Fail if accesses through a pointer to vectype
13721 do not alias the original memory reference operands.
13722 Call vect_create_data_ref_ptr without the removed argument.
13723 (vectorizable_load): Likewise.
13724 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
13725 removed argument.
13726
f4df5771
AH
137272008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
13728
13729 PR target/36336
22129589 13730 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
f4df5771
AH
13731 reg_equiv_constant.
13732
58684fa0
MK
137332008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13734
13735 * config/mips/loongson2ef.md: New file.
13736 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
13737 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
13738 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
13739 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
13740 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
13741 and loongson_2f.
13742 (loongson2ef.md): New include.
13743 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
13744 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
13745 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
13746 (loongson_gt_<mode>, loongson_extract_halfword)
13747 (loongson_insert_halfword_0, loongson_insert_halfword_2)
13748 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
13749 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
13750 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
13751 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
13752 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
13753 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
13754 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
13755 (vec_interleave_low<mode>): Define type attribute.
13756 * config/mips/mips.c (mips_ls2): New static variable.
13757 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
13758 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
13759 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
13760 Implement target scheduling hooks.
13761 (mips_multipass_dfa_lookahead): Update to handle tuning for
13762 Loongson 2E/2F.
13763 (mips_sched_init): Initialize data for Loongson scheduling.
13764 (mips_ls2_variable_issue): New static function.
13765 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
13766 Add sanity check.
13767 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
13768 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
13769 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
13770 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
13771 Handle ST Loongson 2E/2F cores.
13772 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
13773
1cbc62c0
RW
137742008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13775
13776 * omp-low.c (extract_omp_for_data): Fix comment typo.
13777 * c.opt: Fix typo.
13778
6ccde948
RW
137792008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13780
13781 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
13782 FIXME note about gcc/config.guess.
13783 * doc/options.texi (Option file format): Remove non-ASCII bytes.
13784 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
13785 * doc/cppopts.texi: Likewise.
13786 * doc/extend.texi: Likewise.
13787 * doc/gcc.texi: Likewise.
13788 * doc/gccint.texi: Likewise.
13789 * doc/gcov.texi: Likewise.
13790 * doc/gty.texi: Likewise.
13791 * doc/hostconfig.texi: Likewise.
13792 * doc/install.texi: Likewise.
13793 * doc/invoke.texi: Likewise.
13794 * doc/loop.texi: Likewise.
13795 * doc/makefile.texi: Likewise.
13796 * doc/md.texi: Likewise.
13797 * doc/passes.texi: Likewise.
13798 * doc/tm.texi: Likewise.
13799 * doc/tree-ssa.texi: Likewise.
13800 * doc/trouble.texi: Likewise.
13801
93581857
MS
138022008-06-15 Mark Shinwell <shinwell@codesourcery.com>
13803 Nathan Sidwell <nathan@codesourcery.com>
13804 Maxim Kuvyrkov <maxim@codesourcery.com>
13805 Richard Sandiford <rdsandiford@googlemail.com>
22129589 13806
93581857
MS
13807 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
13808 * config/mips/mips-protos.h (mips_expand_vector_init): New.
13809 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
13810 builtins.
13811 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
13812 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
13813 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
13814 V8QImode cases.
13815 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
13816 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
13817 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
13818 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
13819 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
13820 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
13821 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
13822 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
13823 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
13824 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
13825 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
13826 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
13827 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
13828 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
13829 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
13830 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
13831 (mips_builtins): Add Loongson builtins.
13832 (mips_loongson_2ef_bdesc): New.
13833 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
13834 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
13835 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
13836 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
13837 New.
13838 (mips_expand_vector_init): New.
13839 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
13840 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
13841 if appropriate.
13842 * config/mips/mips.md: Add unspec numbers for Loongson
13843 builtins. Include loongson.md.
13844 (MOVE64): Include Loongson vector modes.
13845 (SPLITF): Include Loongson vector modes.
13846 (HALFMODE): Handle Loongson vector modes.
13847 * config/mips/loongson.md: New.
13848 * config/mips/loongson.h: New.
13849 * config.gcc: Add loongson.h header for mips*-*-* targets.
13850 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
13851
397fda80
JM
138522008-06-14 Joseph Myers <joseph@codesourcery.com>
13853
13854 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
13855 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
13856 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
13857 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
13858 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
13859 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
13860 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
13861 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
13862 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
13863 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
13864 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
13865 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
13866 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
13867 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
13868 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
13869 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
13870 Remove use_fixproto=yes.
13871 (ia64*-*-hpux*): Remove comment about using fixproto.
13872 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
13873
b15a9f63
RW
138742008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13875
13876 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
13877 library rebuilds.
13878 * configure: Regenerate.
13879
9133c85e
EB
138802008-06-13 Eric Botcazou <ebotcazou@adacore.com>
13881
13882 PR middle-end/36520
13883 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
13884 before evaluating it.
13885
6cf59865
JJ
138862008-06-13 Jakub Jelinek <jakub@redhat.com>
13887
13888 PR c/36507
13889 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
13890 nested inline functions.
13891 (start_decl, start_function): Don't invert DECL_EXTERNAL
13892 for nested inline functions.
13893
a9a53350
RS
138942008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
13895
13896 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
13897 splits that must be made for correctness.
13898
fd0eb897
RS
138992008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
13900
13901 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
13902 (AVAIL_NON_MIPS16): Likewise.
13903 (mips_builtin_description): Replace target_flags with a predicate.
13904 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
13905 (dspr2_32): New availability predicates.
13906 (MIPS_BUILTIN): New macro.
13907 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
13908 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
13909 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
13910 Replace the TARGET_FLAGS parameters with AVAIL parameters.
13911 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
13912 (mips_dsp_32only_bdesc): Merge into...
13913 (mips_builtins): ...this new array.
13914 (mips_bdesc_map, mips_bdesc_arrays): Delete.
13915 (mips_init_builtins): Update after above changes.
13916 (mips_expand_builtin_1): Merge into...
13917 (mips_expand_builtin): ...here and update after above changes.
13918
ef0a4b67
PB
139192008-06-12 Paul Brook <paul@codesourcery.com>
13920
13921 * longlong.h (__arm__): Define count_leading_zeros.
13922 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
13923 (clzsi2, clzdi2): New functions.
13924 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
13925 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
13926 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
13927 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
13928 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
13929 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
13930 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
13931 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
13932 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
13933 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
13934
03b3e271
KH
139352008-06-12 Kazu Hirata <kazu@codesourcery.com>
13936
13937 * config/m68k/m68k.c (m68k_tune_flags): New.
13938 (override_options): Compute m68k_tune_flags.
13939 (MULL_COST, MULW_COST): Update for various variants of CFV2.
13940 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
13941
3ac4c44a
JJ
139422008-06-12 Jakub Jelinek <jakub@redhat.com>
13943
13944 PR middle-end/36506
ba03a350 13945 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3ac4c44a 13946
955f6531
EB
139472008-06-12 Eric Botcazou <ebotcazou@adacore.com>
13948
13949 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
13950 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
13951
bd323ce5
EB
139522008-06-12 Eric Botcazou <ebotcazou@adacore.com>
13953
13954 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
13955 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
13956
c34938a8
JJ
139572008-06-12 Jakub Jelinek <jakub@redhat.com>
13958
13959 PR middle-end/36506
13960 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
13961 reductions.
13962
b3778556
RG
139632008-06-12 Richard Guenther <rguenther@suse.de>
13964
13965 PR tree-optimization/36345
13966 * tree-flow.h (struct ptr_info_def): Align escape_mask,
13967 add memory_tag_needed flag.
13968 (may_alias_p): Declare.
13969 * tree-ssa-alias.c (may_alias_p): Export.
13970 (set_initial_properties): Use memory_tag_needed flag.
13971 (update_reference_counts): Likewise.
13972 (reset_alias_info): Reset memory_tag_needed flag.
13973 (create_name_tags): Check memory_tag_needed flag.
13974 (dump_points_to_info_for): Dump it.
13975 * tree-ssa-structalias.c (struct variable_info): Remove
13976 directly_dereferenced flag.
13977 (new_var_info): Do not initialize it.
13978 (process_constraint_1): Do not set it.
13979 (update_alias_info): Set is_dereferenced flag.
13980 (set_uids_in_ptset): Use may_alias_p.
13981 (set_used_smts): Check memory_tag_needed flag.
13982 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
13983 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
13984 memory_tag_needed flag.
13985 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
13986 from broken design.
13987
394a378c
KT
139882008-06-12 Kai Tietz <kai.tietz@onevision.com>
13989
ba03a350
UB
13990 * config/i386/i386.c (ix86_compute_frame_layout): Disable
13991 red zone for w64 abi.
394a378c
KT
13992 (ix86_expand_prologue): Likewise.
13993 (ix86_force_to_memory): Likewise.
13994 (ix86_free_from_memory): Likewise.
13995
567f0b17
EW
139962008-06-11 Edmar Wienskoski <edmar@freescale.com>
13997
13998 PR target/36425
13999 * config/rs6000/rs6000.c (rs6000_override_options): Set
ba03a350 14000 rs6000_isel conditionally to the absence of comand line override.
567f0b17
EW
14001 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
14002 Remove duplicate rs6000_isel setting.
14003 * config/rs6000/eabispe.h: Ditto.
14004
4653cae5
RG
140052008-06-11 Richard Guenther <rguenther@suse.de>
14006
14007 * alias.c (get_alias_set): Use the element alias-set for arrays.
14008 (record_component_aliases): For arrays and vectors do nothing.
14009 * c-common.c (strict_aliasing_warning): Handle the cases
14010 of alias set zero explicitly.
14011 * Makefile.in (dfp.o-warn): Add -Wno-error.
14012
8981c15b
JM
140132008-06-11 Joseph Myers <joseph@codesourcery.com>
14014
14015 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
14016 tune_32 tune_64.
14017 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
14018 tune_32 tune_64 to supported_defaults. Allow values not
14019 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
14020 x86_64. Do not override cpu_32 or cpu_64 values from target name.
14021 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
14022 with_cpu_64 to generic for 64-bit-supporting configurations, not
14023 with_cpu. Remove FIXMEs.
14024 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
14025 --with-arch-64, --with-tune-32, --with-tune-64): Document.
14026 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
14027 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
14028 arch_32 and arch_64.
14029
056c8fae 140302008-06-11 Eric Botcazou <ebotcazou@adacore.com>
ba03a350 14031 Olivier Hainque <hainque@adacore.com>
056c8fae
EB
14032
14033 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
14034 Use DECL_SIZE_UNIT to retrieve the size of the field.
14035
af06585a
JM
140362008-06-11 Joseph Myers <joseph@codesourcery.com>
14037
14038 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
14039 with function calls after declarations. Lay out
14040 neon_float_type_node before further use.
14041
fd73537b
RG
140422008-06-11 Richard Guenther <rguenther@suse.de>
14043
14044 * tree-flow.h (may_point_to_global_var): Declare.
14045 * tree-ssa-alias.c (may_point_to_global_var): New function.
14046 * tree-ssa-sink.c (is_hidden_global_store): Use it.
14047
6b7b0ba1
KH
140482008-06-10 Kazu Hirata <kazu@codesourcery.com>
14049
14050 * configure.ac: Teach that fido supports .debug_line.
14051 * configure: Regenerate.
14052
711b2510
TT
140532008-06-10 Tom Tromey <tromey@redhat.com>
14054
14055 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
14056 debug hook.
14057
bc6d4c3f
JM
140582008-06-10 Joseph Myers <joseph@codesourcery.com>
14059
14060 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
14061 (encode_decimal64, decode_decimal64, encode_decimal128,
14062 decode_decimal128): Reverse order of 32-bit parts of value if host
14063 and target endianness differ.
14064
0178d644 140652008-06-10 Vinodha Ramasamy <vinodha@google.com>
ba03a350
UB
14066
14067 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
0178d644
VR
14068 Avoid division by 0.
14069 (tree_mod_pow2_value_transform): Likewise.
14070 (tree_ic_transform): Likewise.
14071 (tree_stringops_transform): Likewise.
14072 (tree_mod_subtract_transform): Likewise.
14073 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
14074 (copy_edges_for_bb): Likewise.
14075 (initialize_cfun): Likewise.
14076
88b9490b
UB
140772008-06-10 Uros Bizjak <ubizjak@gmail.com>
14078
14079 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
14080 nonmemory_operand. Add "N" operand constraint.
14081 (*btsi): Ditto.
14082 (*jcc_btdi_mask_rex64): New instruction and split pattern.
14083 (*jcc_btsi_mask): Ditto.
14084 (*jcc_btsi_mask_1): Ditto.
14085
0627bfb4
JM
140862008-06-10 Joseph Myers <joseph@codesourcery.com>
14087
14088 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
14089 TYPE_CANONICAL for copied element type.
14090
33ee5810
UB
140912008-06-10 Uros Bizjak <ubizjak@gmail.com>
14092
14093 PR target/36473
14094 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
14095 Add m_CORE2 and m_GENERIC.
14096 * config/i386/predicates.md (bt_comparison_operator): New predicate.
14097 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
14098 (*btsi): Ditto.
14099 (*jcc_btdi_rex64): New instruction and split pattern.
14100 (*jcc_btsi): Ditto.
14101 (*jcc_btsi_1): Ditto.
14102 (*btsq): Fix Intel asm dialect operand order.
14103 (*btrq): Ditto.
14104 (*btcq): Ditto.
14105
3115c00d
AH
141062008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
14107
14108 PR middle-end/36447
22129589 14109 * simplify-rtx.c (simplify_subreg): Add check for shift count
3115c00d
AH
14110 greater than size.
14111
21dfc6dc
RS
141122008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
14113
14114 * doc/md.texi: Synchronize with later constraints.md change.
14115 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
14116 with a C implementation.
14117 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
14118 MFLO handling.
14119 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
14120 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
14121 when moving to and from MD_REGNUM.
14122 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
14123 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
14124 Handle byte and halfword moves.
14125 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
14126 separately.
14127 * config/mips/constraints.md (h): Turn into NO_REGS.
14128 (l, x): Update documentation.
14129 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
14130 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
14131 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
14132 (HILO): New mode iterator.
14133 (MOVE128): Add TI.
14134 (any_div): New code iterator.
14135 (u): Extend code attribute to div and udiv.
14136 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
14137 d_operand in the splitters. Remove redundant CONST_INT checks.
14138 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
14139 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
14140 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
14141 accordingly, using normal moves instead of unspecs to move LO into
14142 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
14143 (<u>mulsidi3): Handle expansion in C code.
14144 (<u>mulsidi3_32bit_internal): Rename to...
14145 (<u>mulsidi3_32bit): ...this.
14146 (<u>mulsidi3_32bit_r4000): Fix insn separator.
14147 (*<u>mulsidi3_64bit): Rename to...
14148 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
14149 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
14150 to set LO and HI to the multiplication result. Use a normal move
14151 for MFLO and an unspec for MFHI.
14152 (*<u>mulsidi3_64bit_parts): Replace with...
14153 (<u>mulsidi3_64bit_hilo): ...this new instruction.
14154 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
14155 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
14156 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
14157 instead of HI. Split the instruction into a separate multiplication
14158 and MFHI if !TARGET_FIX_R4000.
14159 (<su>muldi3_highpart): Likewise.
14160 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
14161 and the "=h" clobber.
14162 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
14163 (<u>mulditi3): New expander.
14164 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
14165 (madsi): Remove "=h" clobber.
14166 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
14167 Force the modulus result to be a GPR and split the instruction into
14168 a division followed by an MFHI after reload.
14169 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
14170 (*lea_high64): Use d_operand in the define_peephole2. Likewise
14171 the MIPS16 HIGH define_split.
14172 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
14173 of acc<->gpr moves to "multi".
14174 (*movdi_64bit): Replace the single "x" alternative with
14175 alternatives for moving into and out of "a".
14176 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
14177 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
14178 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
14179 Use d_operand in the splitters. Remove redundant CONST_INT checks.
14180 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
14181 (movti): New expander.
14182 (*movti, *movti_mips16): New insns.
14183 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
14184 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
14185 (mthi<GPR:mode>_<HILO:mode>): Likewise.
14186 * config/mips/predicates.md (fpr_operand): Delete.
14187 (d_operand): New predicate.
14188
0e462a95
MM
141892008-06-09 Michael Meissner <michael.meissner@amd.com>
14190
14191 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
14192 failure on some Bourne shells.
14193 (x86_64-*-*): Ditto.
14194
d3c1d2a0
KT
141952008-06-09 Kai Tietz <kai.tietz@onevision.com>
14196
14197 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
14198
2bd58b1b
EB
141992008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
14200
14201 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
14202 (sparc-sun-solaris2*): Likewise.
14203
2c2b1710
AC
142042008-06-09 Arnaud Charlet <charlet@adacore.com
14205
14206 * doc/install.texi: Update requirements to build the Ada compiler.
14207
fed6152d
SB
142082008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
14209
14210 * df-scan.c (struct df_scan_problem_data): Remove the
14211 mw_link_pool alloc pool.
14212 (df_scan_free_internal): Don't free it.
14213 (df_scan_alloc): Don't allocate it.
14214 * df.h (struct df_link): Update comment.
14215
c427220a
NS
142162008-06-08 Nathan Sidwell <nathan@codesourcery.com>
14217
14218 * except.h: Correct checks for when SJLJ exceptions must be used.
14219
cf0fd618
MLI
142202008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14221
14222 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
14223 default.
22129589 14224
f8c33439
JM
142252008-06-08 Joseph Myers <joseph@codesourcery.com>
14226
14227 PR tree-optimization/36218
14228 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
14229 configure for the build system.
14230 (BUILD_LDFLAGS): Define.
14231 * configure: Regenerate.
14232 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
14233
91635d08
AS
142342008-07-08 Anatoly Sokolov <aesok@post.ru>
14235
14236 PR target/36424
14237 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
22129589
AS
14238 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
14239 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
91635d08 14240
ae06ac00
DS
142412008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
14242
14243 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
14244
cd985f66
JM
142452008-06-07 Joseph Myers <joseph@codesourcery.com>
14246
14247 * config.gcc (Obsolete configurations): Remove list of
14248 configurations.
14249 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
14250 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
14251 targets matched by those patterns.
14252 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
14253 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
14254 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
14255 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
14256 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
14257 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
14258 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
14259 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
14260 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
14261 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
14262 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
14263 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
14264 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
14265 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
14266 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
14267 Make code for Solaris 7 and greater unconditional for Solaris.
14268 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
14269 Remove --with-* handling.
14270 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
14271 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
14272 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
14273 LINK_OS_WINDISS_SPEC): Remove.
14274 * config/rs6000/sysv4.opt (mwindiss): Remove.
14275 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
14276 * configure: Regenerate.
14277 * doc/cpp.texi: Don't mention BeOS.
14278 * doc/extend.texi (interrupt): Don't mention MS1.
14279 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
14280 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
14281 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
14282 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
14283 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
14284 Remove.
14285 * doc/invoke.texi (MT Options): Remove.
14286 (-mwindiss): Remove.
14287 (CRIS Options): Remove cris-axis-aout references.
14288 (HPPA Options): Don't mention hppa1.1-*-pro.
14289 * doc/md.texi: (MorphoTech family): Remove.
14290 * libgcc2.c: Don't handle UWIN.
14291 * config/alpha/t-unicosmk: Remove.
14292 * config/alpha/unicosmk.h: Remove.
14293 * config/arm/kaos-arm.h: Remove.
14294 * config/arm/kaos-strongarm.h: Remove.
14295 * config/arm/strongarm-coff.h: Remove.
14296 * config/arm/strongarm-elf.h: Remove.
14297 * config/arm/strongarm-pe.h: Remove.
14298 * config/arm/t-strongarm-pe: Remove.
14299 * config/arm/t-xscale-coff: Remove.
14300 * config/arm/t-xscale-elf: Remove.
14301 * config/arm/xscale-coff.h: Remove.
14302 * config/arm/xscale-elf.h: Remove.
14303 * config/chorus.h: Remove.
14304 * config/cris/aout.h: Remove.
14305 * config/cris/aout.opt: Remove.
14306 * config/cris/t-aout: Remove.
14307 * config/i386/beos-elf.h: Remove.
14308 * config/i386/kaos-i386.h: Remove.
14309 * config/i386/ptx4-i.h: Remove.
14310 * config/i386/sco5.h: Remove.
14311 * config/i386/sco5.opt: Remove.
14312 * config/i386/sysv4-cpp.h: Remove.
14313 * config/i386/sysv5.h: Remove.
14314 * config/i386/t-beos: Remove.
14315 * config/i386/t-sco5: Remove.
14316 * config/i386/t-uwin: Remove.
14317 * config/i386/uwin.asm: Remove.
14318 * config/i386/uwin.h: Remove.
14319 * config/kaos.h: Remove.
14320 * config/mips/windiss.h: Remove.
14321 * config/mt: Remove directory.
14322 * config/pa/pa-osf.h: Remove.
14323 * config/pa/pa-pro-end.h: Remove.
14324 * config/pa/t-pro: Remove.
14325 * config/ptx4.h: Remove.
14326 * config/rs6000/beos.h: Remove.
14327 * config/rs6000/kaos-ppc.h: Remove.
14328 * config/rs6000/t-beos: Remove.
14329 * config/rs6000/windiss.h: Remove.
14330 * config/sh/kaos-sh.h: Remove.
14331 * config/sol2-6.h: Remove.
14332 * config/sparc/sol26-sld.h: Remove.
14333 * config/sparc/sysv4-only.h: Remove.
14334 * config/vax/bsd.h: Remove.
14335 * config/vax/t-memfuncs: Remove.
14336 * config/vax/ultrix.h: Remove.
14337 * config/vax/vaxv.h: Remove.
14338 * config/windiss.h: Remove.
14339
f3e10a2b 143402008-06-06 Uros Bizjak <ubizjak@gmail.com>
88057dc8
UB
14341
14342 PR rtl-optimization/36438
14343 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
14344 for vector shifts with constant scalar shift operands.
14345
d0ae31b0
SM
143462008-06-06 Sandip Matte <sandip@rmicorp.com>
14347
14348 * doc/invoke.texi: Document -march=xlr.
14349 * config/mips/xlr.md: New file.
14350 * config/mips/mips.md: Include it.
14351 (cpu): Add "xlr".
14352 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
14353 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
14354 (mips_rtx_cost_data): Likewise.
14355
619fe064
NF
143562008-06-06 Nathan Froyd <froydnj@codesourcery.com>
14357
14358 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
14359 PRE_INC and PRE_DEC cases.
14360
67339062
JJ
143612008-06-06 Jakub Jelinek <jakub@redhat.com>
14362
c6eb958c
JJ
14363 PR rtl-optimization/36419
14364 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
14365 the emitting jump insn.
14366
67339062
JJ
14367 PR target/36362
14368 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
14369 is not bool, boolify the whole *expr_p and convert to the desired type.
14370
a68ab351
JJ
143712008-06-06 Jakub Jelinek <jakub@redhat.com>
14372
88057dc8 14373 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
a68ab351
JJ
14374 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
14375 Add omp_private_outer_ref hook, add another argument to
14376 omp_clause_default_ctor hook.
14377 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
14378 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
14379 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
14380 hook_tree_tree_tree_tree_null.
14381 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
14382 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
14383 * hooks.c (hook_tree_tree_tree_tree_null): New function.
14384 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
14385 * tree.def (OMP_TASK): New tree code.
14386 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
14387 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
14388 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
14389 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
14390 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
14391 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
14392 OMP_CLAUSE_COLLAPSE_EXPR): Define.
14393 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
14394 (OMP_DIRECTIVE_P): Add OMP_TASK.
14395 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
14396 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
14397 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
14398 and OMP_CLAUSE_UNTIED entries.
14399 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
14400 num_ops to 2.
14401 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14402 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
14403 * tree-pretty-print.c (dump_omp_clause): Handle
14404 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
14405 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
14406 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
14407 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
14408 warning about unsigned iterators. Change decl/init/cond/incr
14409 arguments to TREE_VECs, check arguments for all collapsed loops.
14410 (c_finish_omp_taskwait): New function.
14411 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
14412 ws_clauses.
14413 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
14414 default_function_array_conversion on init. Add par_clauses argument.
14415 If decl is present in parallel's lastprivate clause, change it to
14416 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
14417 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
14418 collapse count in clauses.
14419 (c_parser_omp_for, c_parser_omp_parallel): Adjust
14420 c_parser_omp_for_loop callers.
14421 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
14422 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
14423 (c_parser_omp_clause_name): Handle collapse and untied clauses.
14424 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
14425 functions.
14426 (c_parser_omp_clause_schedule): Handle schedule(auto).
14427 Include correct location in the error message.
14428 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
14429 and PRAGMA_OMP_CLAUSE_UNTIED.
14430 (OMP_TASK_CLAUSE_MASK): Define.
14431 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
14432 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
14433 * tree-nested.c (convert_nonlocal_omp_clauses,
14434 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
14435 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
14436 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14437 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
14438 OMP_CLAUSE_DECL.
14439 (conver_nonlocal_reference, convert_local_reference,
14440 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
14441 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
14442 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
14443 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
14444 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
14445 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
14446 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
14447 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
14448 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
14449 OMP_CLAUSE_UNTIED.
14450 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
14451 * c-common.h (c_finish_omp_taskwait): New prototype.
14452 * gimple-low.c (lower_stmt): Handle OMP_TASK.
14453 * tree-parloops.c (create_parallel_loop): Create 1 entry
14454 vectors for OMP_FOR_{INIT,COND,INCR}.
14455 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
14456 (make_edges): Handle OMP_TASK.
14457 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
14458 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14459 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
14460 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
14461 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
14462 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
14463 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
14464 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
14465 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
14466 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
14467 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
14468 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
14469 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
14470 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
14471 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
14472 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
14473 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
14474 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
14475 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
14476 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
14477 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
14478 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
14479 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
14480 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
14481 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
14482 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
14483 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
14484 original iterator is present in lastprivate clause or if
14485 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
14486 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14487 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
14488 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
14489 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
14490 if it is set, lookup var in outer contexts too. Handle
14491 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
14492 to be implicitly determined firstprivate for task regions.
14493 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
14494 if it is set, lookup var in outer contexts too. Set
14495 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
14496 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
14497 OMP_CLAUSE_UNTIED. Take region_type as last argument
14498 instead of in_parallel and in_combined_parallel.
14499 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
14500 Adjust callers.
14501 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
88057dc8 14502 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
a68ab351
JJ
14503 (new_omp_context): Set default_kind to
14504 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
14505 (omp_region_type): New enum.
14506 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
14507 fields, add region_type.
14508 (new_omp_context): Take region_type as argument instead of is_parallel
14509 and is_combined_parallel.
14510 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
14511 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
14512 ctx->is_combined_parallel checks.
14513 (gimplify_omp_task): New function.
14514 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
14515 OMP_CLAUSE_UNTIED.
14516 * omp-low.c (extract_omp_for_data): Use schedule(static)
14517 for schedule(auto). Handle pointer and unsigned iterators.
14518 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
14519 Add loops argument. Extract data for collapsed OMP_FOR loops.
14520 (expand_parallel_call): Assert sched_kind isn't auto,
14521 map runtime schedule to index 3.
14522 (struct omp_for_data_loop): New type.
14523 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
14524 Add loop, loops, collapse and iter_type fields.
14525 (workshare_safe_to_combine_p): Disallow combined for if
14526 iter_type is unsigned long long. Don't combine collapse > 1 loops
14527 unless all bounds and steps are constant. Adjust extract_omp_for_data
14528 caller.
14529 (expand_omp_for_generic): Handle pointer, unsigned and long long
14530 iterators. Handle collapsed OMP_FOR loops. Adjust
14531 for struct omp_for_data changes. If libgomp function doesn't return
14532 boolean_type_node, add comparison of the return value with 0.
14533 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
14534 pointer, unsigned and long long iterators. Adjust for struct
14535 omp_for_data changes.
14536 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
14537 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
14538 unsigned long long. Allocate loops array, pass it to
14539 extract_omp_for_data. For collapse > 1 loops use always
14540 expand_omp_for_generic.
14541 (omp_context): Add sfield_map and srecord_type fields.
14542 (is_task_ctx, lookup_sfield): New functions.
14543 (use_pointer_for_field): Use is_task_ctx helper. Change first
14544 argument's type from const_tree to tree. Clarify comment.
14545 In OMP_TASK disallow copy-in/out sharing.
14546 (build_sender_ref): Call lookup_sfield instead of lookup_field.
14547 (install_var_field): Add mask argument. Populate both record_type
14548 and srecord_type if needed.
14549 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
14550 in srecord_type.
14551 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
14552 and DECL_FIELD_OFFSET.
14553 (scan_sharing_clauses): Adjust install_var_field callers. For
14554 firstprivate clauses on explicit tasks allocate the var by value in
14555 record_type unconditionally, rather than by reference.
14556 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
14557 Use is_taskreg_ctx instead of is_parallel_ctx.
14558 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14559 (create_omp_child_function_name): Add task_copy argument, use
14560 *_omp_cpyfn* names if it is true.
14561 (create_omp_child_function): Add task_copy argument, if true create
14562 *_omp_cpyfn* helper function.
14563 (scan_omp_parallel): Adjust create_omp_child_function callers.
14564 Rename parallel_nesting_level to taskreg_nesting_level.
14565 (scan_omp_task): New function.
14566 (lower_rec_input_clauses): Don't run constructors for firstprivate
22129589 14567 explicit task vars which are initialized by *_omp_cpyfn*.
a68ab351
JJ
14568 Pass outer var ref to omp_clause_default_ctor hook if
14569 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
14570 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
14571 OMP_CLAUSE_REDUCTION_INIT.
14572 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
14573 avoid duplicate setting of fields. Handle
14574 OMP_CLAUSE_PRIVATE_OUTER_REF.
14575 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
14576 copy-out if TREE_READONLY, only copy-in.
14577 (expand_task_copyfn): New function.
14578 (expand_task_call): New function.
14579 (struct omp_taskcopy_context): New type.
14580 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
14581 New functions.
14582 (lower_omp_parallel): Rename to...
14583 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
14584 Call create_task_copyfn if srecord_type is needed. Adjust
14585 sender_decl type.
14586 (task_shared_vars): New variable.
14587 (check_omp_nesting_restrictions): Warn if work-sharing,
14588 barrier, master or ordered region is closely nested inside OMP_TASK.
14589 Add warnings for barrier if closely nested inside of work-sharing,
14590 ordered, or master region.
14591 (scan_omp_1): Call check_omp_nesting_restrictions even for
14592 GOMP_barrier calls. Rename parallel_nesting_level to
14593 taskreg_nesting_level. Handle OMP_TASK.
14594 (lower_lastprivate_clauses): Even if some lastprivate is found on a
14595 work-sharing construct, continue looking for them on parent parallel
14596 construct.
14597 (lower_omp_for_lastprivate): Add lastprivate clauses
14598 to the beginning of dlist rather than end. Adjust for struct
14599 omp_for_data changes.
14600 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
14601 not after it. Handle collapsed OMP_FOR loops, adjust for
88057dc8 14602 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
a68ab351
JJ
14603 (get_ws_args_for): Adjust extract_omp_for_data caller.
14604 (scan_omp_for): Handle collapsed OMP_FOR
14605 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14606 (lower_omp_single_simple): If libgomp function doesn't return
14607 boolean_type_node, add comparison of the return value with 0.
14608 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
14609 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
14610 (parallel_nesting_level): Rename to...
14611 (taskreg_nesting_level): ... this.
14612 (is_taskreg_ctx): New function.
14613 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
14614 of is_parallel_ctx.
14615 (execute_lower_omp): Rename parallel_nesting_level to
14616 taskreg_nesting_level.
14617 (expand_omp_parallel): Rename to...
14618 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
14619 Call omp_task_call for OMP_TASK regions.
14620 (expand_omp): Adjust caller, handle OMP_TASK.
14621 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
14622
14623 * bitmap.c (bitmap_default_obstack_depth): New variable.
14624 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
14625 if argument is NULL and bitmap_default_obstack is already initialized.
14626 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
14627 at the end.
14628 * matrix-reorg.c (matrix_reorg): Likewise.
14629
c4fe74e0
UB
146302008-06-06 Uros Bizjak <ubizjak@gmail.com>
14631
14632 * config/i386/i386.md (*indirect_jump): Macroize using P
14633 mode iterator. Remove !TARGET_64BIT from insn constraints.
14634 (*tablejump_1): Ditto.
14635 (*indirect_jump_rex64): Remove insn pattern.
14636 (*tablejump_1_rex64): Ditto.
14637 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
14638 and eh_return_si insn patterns.
14639
9f09b13f
RG
146402008-06-06 Richard Guenther <rguenther@suse.de>
14641
14642 * tree-ssa-structalias.c (merge_smts_into): Remove.
14643 (find_what_p_points_to): Do not bother to compute the
14644 points-to set for pt_anything pointers.
14645 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
14646 for pt_anything pointers is ok.
14647
9fbe48c0
JH
146482008-06-06 Jan Hubicka <jh@suse.cz>
14649
14650 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
14651
fa10beec
RW
146522008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14653
14654 * cgraph.c: Fix typos in comments.
14655 (cgraph_availability_names): Fix string typo.
14656 * fold-const.c: Fix typos in comments.
14657 (fold_binary): Fix typo in warning.
14658 * genautomata.c: Fix typos in comments.
14659 (check_presence_pattern_sets): Fix typo in local variable.
14660 (output_description): Fix typo in output.
14661 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
14662 * hwint.h: Likewise.
14663 * matrix-reorg.c (check_allocation_function): Likewise.
14664 * omega.c (smooth_weird_equations): Likewise.
14665 * auto-inc-dec.c: Fix typos in comments.
14666 * bb-reorder.c: Likewise.
14667 * builtins.c: Likewise.
14668 * c-common.c: Likewise.
14669 * c-cppbuiltin.c: Likewise.
14670 * c-parser.c: Likewise.
14671 * c-pretty-print.c: Likewise.
14672 * cfgcleanup.c: Likewise.
14673 * cfgexpand.c: Likewise.
14674 * cfghooks.c: Likewise.
14675 * cfglayout.c: Likewise.
14676 * cfgloopmanip.c: Likewise.
14677 * cgraphunit.c: Likewise.
14678 * coverage.c: Likewise.
14679 * dbxout.c: Likewise.
14680 * df-byte-scan.c: Likewise.
14681 * df-core.c: Likewise.
14682 * df-problems.c: Likewise.
14683 * df-scan.c: Likewise.
14684 * dfp.c: Likewise.
14685 * dominance.c: Likewise.
14686 * domwalk.c: Likewise.
14687 * dse.c: Likewise.
14688 * dwarf2out.c: Likewise.
14689 * emit-rtl.c: Likewise.
14690 * et-forest.c: Likewise.
14691 * function.c: Likewise.
14692 * function.h: Likewise.
14693 * gcc.c: Likewise.
14694 * gcov-io.c: Likewise.
14695 * gcov.c: Likewise.
14696 * gcse.c: Likewise.
14697 * genattrtab.c: Likewise.
14698 * ggc-page.c: Likewise.
14699 * gimplify.c: Likewise.
14700 * gthr-lynx.h: Likewise.
14701 * haifa-sched.c: Likewise.
14702 * ipa-cp.c: Likewise.
14703 * ipa-inline.c: Likewise.
14704 * ipa-prop.h: Likewise.
14705 * ipa-pure-const.c: Likewise.
14706 * ipa-struct-reorg.c: Likewise.
14707 * ipa-struct-reorg.h: Likewise.
14708 * ipa-type-escape.c: Likewise.
14709 * ipa.c: Likewise.
14710 * loop-doloop.c: Likewise.
14711 * mips-tfile.c: Likewise.
14712 * mkmap-flat.awk: Likewise.
14713 * mkmap-symver.awk: Likewise.
14714 * modulo-sched.c: Likewise.
14715 * omp-low.c: Likewise.
14716 * optabs.c: Likewise.
14717 * optabs.h: Likewise.
14718 * opts.c: Likewise.
14719 * passes.c: Likewise.
14720 * postreload-gcse.c: Likewise.
14721 * postreload.c: Likewise.
14722 * predict.c: Likewise.
14723 * pretty-print.h: Likewise.
14724 * profile.c: Likewise.
14725 * protoize.c: Likewise.
14726 * ra-conflict.c: Likewise.
14727 * real.c: Likewise.
14728 * recog.c: Likewise.
14729 * regclass.c: Likewise.
14730 * regs.h: Likewise.
14731 * reload.c: Likewise.
14732 * rtl-error.c: Likewise.
14733 * rtlanal.c: Likewise.
14734 * scan.h: Likewise.
14735 * sched-rgn.c: Likewise.
14736 * see.c: Likewise.
14737 * stmt.c: Likewise.
14738 * target.h: Likewise.
14739 * tree-dfa.c: Likewise.
14740 * tree-eh.c: Likewise.
14741 * tree-flow-inline.h: Likewise.
14742 * tree-inline.c: Likewise.
14743 * tree-into-ssa.c: Likewise.
14744 * tree-loop-distribution.c: Likewise.
14745 * tree-nested.c: Likewise.
14746 * tree-parloops.c: Likewise.
14747 * tree-pass.h: Likewise.
14748 * tree-pretty-print.c: Likewise.
14749 * tree-profile.c: Likewise.
14750 * tree-scalar-evolution.c: Likewise.
14751 * tree-sra.c: Likewise.
14752 * tree-ssa-alias-warnings.c: Likewise.
14753 * tree-ssa-ccp.c: Likewise.
14754 * tree-ssa-coalesce.c: Likewise.
14755 * tree-ssa-dom.c: Likewise.
14756 * tree-ssa-dse.c: Likewise.
14757 * tree-ssa-forwprop.c: Likewise.
14758 * tree-ssa-live.c: Likewise.
14759 * tree-ssa-live.h: Likewise.
14760 * tree-ssa-loop-im.c: Likewise.
14761 * tree-ssa-loop-ivopts.c: Likewise.
14762 * tree-ssa-loop-niter.c: Likewise.
14763 * tree-ssa-loop-prefetch.c: Likewise.
14764 * tree-ssa-phiopt.c: Likewise.
14765 * tree-ssa-phiprop.c: Likewise.
14766 * tree-ssa-sccvn.c: Likewise.
14767 * tree-ssa-ter.c: Likewise.
14768 * tree-ssa-threadupdate.c: Likewise.
14769 * tree-ssa.c: Likewise.
14770 * tree-vect-analyze.c: Likewise.
14771 * tree-vect-transform.c: Likewise.
14772 * tree-vectorizer.c: Likewise.
14773 * tree-vn.c: Likewise.
14774 * tree-vrp.c: Likewise.
14775 * tree.c: Likewise.
14776 * tree.def: Likewise.
14777 * tree.h: Likewise.
14778 * unwind-dw2-fde.c: Likewise.
14779 * unwind.inc: Likewise.
14780 * value-prof.c: Likewise.
14781 * vmsdbgout.c: Likewise.
14782
6bf2f78a
DE
147832008-06-05 David Edelsohn <edelsohn@gnu.org>
14784
14785 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
14786 always place FP constants in the TOC for TARGET_POWERPC64.
14787 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
14788
4f011e1e
JM
147892008-06-05 Joseph Myers <joseph@codesourcery.com>
14790
14791 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
14792 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
14793 enable for TARGET_E500_DOUBLE.
14794 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
14795 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
14796 floating-point modes like integer modes for E500 double.
14797 (rs6000_legitimate_offset_address_p): Likewise.
14798 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
14799 addressing for DDmode for E500 double.
14800 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
14801 modes as using 64-bits of registers for E500 double.
14802 (spe_build_register_parallel): Do not handle DDmode or TDmode.
14803 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
14804 specially for E500 double.
14805 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
14806 TDmode for E500 double.
14807 (rs6000_gimplify_va_arg): Only handle SDmode in registers
14808 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
14809 (rs6000_split_multireg_move): Do not handle TDmode specially for
14810 E500 double.
14811 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
14812 using 64-bit registers for E500 double.
14813 (emit_frame_save): Do not handle DDmode specially for E500 double.
14814 (gen_frame_mem_offset): Likewise.
14815 (rs6000_function_value): Do not call spe_build_register_parallel
14816 for DDmode or TDmode.
14817 (rs6000_libcall_value): Likewise.
14818 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
14819 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
14820 for E500 double.
14821
bd7415db
L
148222008-06-04 H.J. Lu <hongjiu.lu@intel.com>
14823
14824 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
14825 in comments.
14826
9e8c2a98
JG
148272008-06-04 Junjie Gu <jgu@tensilica.com>
14828
14829 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
14830 comparison for frame pointers.
14831
28734c39
AH
148322008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
14833
14834 PR target/27386
88057dc8 14835 * config/avr/avr.h (PUSH_ROUNDING): Remove.
28734c39 14836
515e442a
AH
148372008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
14838
14839 PR target/30243
14840 * builtins.c (expand_builtin_signbit): Don't take lowpart when
22129589 14841 register is already smaller or equal to required mode.
515e442a 14842
c2699190
XDL
148432008-06-04 Xinliang David Li <davidxl@google.com>
14844
22129589 14845 * tree-call-cdce.c: New file.
c2699190
XDL
14846 (cond_dead_built_in_calls): New static variable.
14847 (input_domain): New struct.
14848 (check_pow): New function.
14849 (check_builtin_call): Ditto.
14850 (check_target_format): Ditto.
14851 (is_call_dce_candidate): Ditto.
14852 (gen_one_condition): Ditto.
14853 (gen_conditions_for_domain): Ditto.
14854 (get_domain): Ditto.
14855 (gen_conditions_for_pow_cst_base): Ditto.
14856 (gen_conditions_for_pow_int_base): Ditto.
14857 (gen_conditions_for_pow): Ditto.
14858 (get_no_error_domain): Ditto.
14859 (gen_shrink_wrap_conditions): Ditto.
14860 (shrink_wrap_one_built_in_call): Ditto.
14861 (shink_wrap_conditional_dead_built_in_calls): Ditto.
14862 (tree_call_cdce): Ditto.
14863 (gate_call_cdce): Ditto.
14864 (pass_call_cdce): New gimple pass.
14865 * passes.c: (init_optimization_passes): New pass.
14866 * tree-pass.h: New pass declaration.
14867 * opts.c (decode_options): New flag setting.
14868 * common.opt: Add -ftree-builtin-call-dce flag.
14869 * Makefile.in: Add new source file.
14870 * tempvar.def: New tv_id.
14871 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
14872
7946578b
RG
148732008-06-04 Richard Guenther <rguenther@suse.de>
14874
88057dc8 14875 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
7946578b
RG
14876 (is_call_clobbered): Always check var_ann->call_clobbered.
14877 (mark_call_clobbered): Always set var_ann->call_clobbered.
14878 (clear_call_clobbered): Always clear var_ann->call_clobbered.
14879 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
14880 (reset_alias_info): Clear call clobbering info on MTAGs and
14881 globals as well.
14882 (set_pt_anything): Set pt_global_mem.
14883 (create_tag_raw): Adjust comment.
14884 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
14885
884316ff 148862008-06-04 Joseph Myers <joseph@codesourcery.com>
88057dc8 14887 Maxim Kuvyrkov <maxim@codesourcery.com>
884316ff
JM
14888
14889 * config/m68k/m68k.opt (mxgot): New option.
14890 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
14891 (m68k_output_addr_const_extra): New.
14892 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
14893 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
14894 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
14895 * doc/invoke.texi (M680x0 Options): Document -mxgot.
14896
0e19bf42
RG
148972008-06-04 Richard Guenther <rguenther@suse.de>
14898
14899 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
14900 negative or non-representable offsets.
14901
999d3194
L
149022008-06-03 H.J. Lu <hongjiu.lu@intel.com>
14903
88057dc8 14904 * config/i386/i386.c (ix86_gen_leave): New.
999d3194
L
14905 (ix86_gen_pop1): Likewise.
14906 (ix86_gen_add3): Likewise.
14907 (ix86_gen_sub3): Likewise.
14908 (ix86_gen_sub3_carry): Likewise.
14909 (ix86_gen_one_cmpl2): Likewise.
14910 (ix86_gen_monitor): Likewise.
14911 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
14912 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
14913 ix86_gen_one_cmpl2 and ix86_gen_monitor.
14914 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
14915 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
14916 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
14917 (ix86_expand_epilogue): Updated.
14918 (print_operand): Handle integer register operand for 'z'.
14919 (ix86_expand_strlensi_unroll_1): Likewise.
14920 (ix86_expand_strlen): Likewise.
14921 (ix86_expand_builtin): Likewise.
14922 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
14923 mov{q}/mov{l} and add{q}/add{l}.
14924
90b48492
KT
149252008-06-03 Kai Tietz <kai.tietz@onevision.com>
14926
d1abda32
KT
14927 * config/i386/i386.md (P): New mode iterator.
14928 (SFmode push_operand splitter): Macroize DImode and SImode pushes
14929 using P mode iterator.
458e816d
KT
14930 (DFmode push_operand splitter): Ditto.
14931 (XFmode push_operand splitter): Ditto.
d1abda32
KT
14932 (DFmode float_extend SFmode push_operand splitter): Ditto.
14933 (XFmode float_extend SFmode push_operand splitter): Do not generate
458e816d
KT
14934 SImode pushes for 64bit target. Macroize Dimode and SImode
14935 pushes using P mode iterator.
14936 (XFmode float_extend DFmode push_operand splitter): Ditto.
90b48492 14937
8a762fcb
KT
149382008-06-03 Kai Tietz <kai.tietz@onevision.com>
14939
14940 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
88057dc8 14941 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
8a762fcb
KT
14942 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
14943 return type to int.
14944 (ix86_call_abi_override): Remove check for call_used_regs.
14945
db736800
RG
149462008-06-03 Richard Guenther <rguenther@suse.de>
14947
14948 * tree-ssa-structalias.c (find_func_aliases): Add constraints
14949 for the lhs of calls if the return type contains pointers.
14950
7c800926
KT
149512008-06-03 Kai Tietz <kai.tietz@onevision.com>
14952
14953 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
14954 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
88057dc8 14955 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
7c800926
KT
14956 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
14957 of cfun and DEFAULT_ABI to deceide abi mode.
14958 (DEFAULT_ABI): New.
14959 (REG_PARM_STACK_SPACE): Removed.
14960 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
14961 (STACK_BOUNDARY): Use default target to deceide stack boundary.
14962 * config/i386/i386-protos.h (ix86_cfun_abi): New.
14963 (ix86_function_abi): Likewise.
14964 (ix86_function_type_abi): Likewise.
14965 (ix86_call_abi_override): Likewise.
14966 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
14967 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
14968 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
14969 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
14970 specific defines.
14971 (X86_64_REGPARM_MAX): New.
14972 (X86_64_SSE_REGPARM_MAX): New.
14973 (X64_REGPARM_MAX): New.
14974 (X64_SSE_REGPARM_MAX): New.
14975 (X86_32_REGPARM_MAX): New.
14976 (X86_32_SSE_REGPARM_MAX): New.
14977 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
14978 (ix86_function_regparm): Handle user calling abi.
14979 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
14980 by DEFAULT_ABI versus SYSV_ABI check.
14981 (ix86_reg_parm_stack_space): New.
14982 (ix86_function_type_abi): New.
14983 (ix86_call_abi_override): New.
14984 (ix86_function_abi): New.
14985 (ix86_cfun_abi): New.
14986 (init_cumulative_args): Call abi specific initialization.
14987 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
14988 (function_arg_64): Extend SSE_REGPARM_MAX check.
14989 (function_arg (): Remove TARGET_64BIT_MS_ABI.
14990 (ix86_pass_by_reference): Likewise.
14991 (ix86_function_value_regno_p): Likewise.
14992 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
14993 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
14994 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
14995 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
14996 (setup_incoming_varargs_64): Adjust regparm for call abi.
14997 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
14998 (ix86_va_start): Likewise.
14999 (ix86_gimplify_va_arg): Likewise.
15000 (ix86_expand_prologue): Likewise.
15001 (output_pic_addr_const): Likewise.
15002 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
15003 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
15004 (x86_output_mi_thunk): Likewise.
15005 (x86_function_profiler): Likewise.
15006 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
15007 (SYSV_ABI, MS_ABI): New constants.
15008 (DEFAULT_ABI): New.
15009 (init_regs): Add prototype of function in regclass.c file.
15010 (OVERRIDE_ABI_FORMAT): New.
15011 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
15012 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
15013 (OUTGOING_REG_PARM_STACK_SPACE): New.
15014 (ix86_reg_parm_stack_space): New prototype.
15015 (CUMULATIVE_ARGS): Add call_abi member.
15016 (machine_function): Add call_abi member.
88057dc8
UB
15017 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
15018 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
7c800926 15019
22129589 150202008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
1bf29643
AH
15021
15022 PR target/34879
15023 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
15024 (avr_builtin_setjmp_frame_value): New function.
15025 * config/avr/avr.md (nonlocal_goto_receiver): Define.
15026 (nonlocal_goto): Define.
15027
de9f679d
RS
150282008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
15029
15030 * config/mips/mips.c (mips_emit_loadgp): Return early if
15031 there is nothing do to, otherwise emit a blockage if
15032 !TARGET_EXPLICIT_RELOCS || crtl->profile.
15033 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
15034
236ec2d7
RW
150352008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15036
15037 * configure.ac: Drop unneeded backslash ending up in config.in.
15038 * acinclude.m4: Likewise.
15039 * config.in: Regenerate.
15040
3250d724
JH
150412008-05-26 Jan Hubicka <jh@suse.cz>
15042
15043 * predict.c (maybe_hot_frequency_p): Break out of...
15044 (maybe_hot_bb_p): ... here.
15045 (maybe_hot_edge_p): New.
15046 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
15047 * basic-block.h (maybe_hot_edge_p): Declare.
15048
69002843
UB
150492008-05-31 Uros Bizjak <ubizjak@gmail.com>
15050
15051 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
15052 (*cmpfp_<mode>_cc): Ditto.
15053 (*fp_jcc_8<mode>_387): Ditto.
15054 (*fop_<MODEF:mode>_2_i387): Ditto.
15055 (*fop_<MODEF:mode>_3_i387): Ditto.
15056 (*fop_xf_2_i387): Ditto.
15057 (*fop_xf_3_i387): Ditto.
15058
5f9e56b3
TB
150592008-06-02 Tomas Bily <tbily@suse.cz>
15060
69002843 15061 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5f9e56b3 15062
fa21a761
RS
150632008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
15064
15065 * config/mips/mips.c (mips_valid_offset_p): New function.
15066 (mips_valid_lo_sum_p): Likewise.
15067 (mips_classify_address): Use them.
15068 (mips_force_address): New function.
15069 (mips_legitimize_address): Use it.
15070 * config/mips/mips.md (MOVE128): New mode iterator.
15071 (movtf): Require TARGET_64BIT. Remove empty strings.
15072 (*movtf_internal): Rename to...
15073 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
15074 of "R" and use {,fp}{load,store} attributes instead of "multi".
15075 Use a separate define_split.
15076 (*movtf_mips16): New pattern.
15077
2f7e2abb
RS
150782008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
15079
15080 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
15081 * config/mips/mips.c (mips_expand_before_return): New function.
15082 (mips_expand_epilogue): Call it.
15083 * config/mips/mips.md (return): Turn into a define_expand.
15084 (*return): New insn.
15085
c41c1387
RS
150862008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
15087
15088 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
15089 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
15090 functions. Do not emit uses and clobbers of CONCATs; individually
15091 use and clobber their operands.
15092 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
15093 gen_clobber, emit_use and gen_use.
15094 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
15095 (expand_builtin_return): Likewise.
15096 * cfgbuild.c (count_basic_blocks): Likewise.
15097 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
15098 * explow.c (emit_stack_restore): Likewise.
15099 * expmed.c (extract_bit_field_1): Likewise.
15100 * expr.c (convert_move, emit_move_complex_parts): Likewise.
15101 (emit_move_multi_word, store_constructor): Likewise.
15102 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
15103 (thread_prologue_and_epilogue_insns): Likewise.
15104 * lower-subreg.c (resolve_simple_move): Likewise.
15105 * optabs.c (widen_operand, expand_binop): Likewise.
15106 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
15107 * reload.c (find_reloads): Likewise.
15108 * reload1.c (eliminate_regs_in_insn): Likewise.
15109 * stmt.c (expand_nl_goto_receiver): Likewise.
15110 * config/alpha/alpha.md (builtin_longjmp): Likewise.
15111 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
15112 * config/arm/arm.c (arm_load_pic_register): Likewise.
15113 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
15114 * config/arm/arm.md (untyped_return): Likewise.
15115 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
15116 * config/avr/avr.c (expand_prologue): Likewise.
15117 * config/bfin/bfin.c (do_unlink): Likewise.
15118 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
15119 * config/cris/cris.c (cris_expand_prologue): Likewise.
15120 * config/darwin.c (machopic_indirect_data_reference): Likewise.
15121 (machopic_legitimize_pic_address): Likewise.
15122 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
15123 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
15124 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
15125 (ix86_expand_convert_uns_didf_sse): Likewise.
15126 (ix86_expand_vector_init_general): Likewise.
15127 * config/ia64/ia64.md (eh_epilogue): Likewise.
15128 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
15129 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
15130 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
15131 (config/iq2000/iq2000.c): Likewise.
15132 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
15133 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
15134 (builtin_longjmp): Likewise.
15135 * config/mn10300/mn10300.md (call, call_value): Likewise.
15136 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
15137 * config/pdp11/pdp11.md (abshi2): Likewise.
15138 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
15139 * config/s390/s390.c (s390_emit_prologue): Likewise.
15140 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
15141 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
15142 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
15143 * config/sh/sh.c (prepare_move_operands): Likewise.
15144 (output_stack_adjust, sh_expand_epilogue): Likewise.
15145 (sh_set_return_address, sh_expand_t_scc): Likewise.
15146 * config/sparc/sparc.c (load_pic_register): Likewise.
15147 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
15148 * config/spu/spu.c (spu_expand_epilogue): Likewise.
15149 * config/v850/v850.c (expand_epilogue): Likewise.
15150
794cb45e
AS
151512008-05-31 Anatoly Sokolov <aesok@post.ru>
15152
15153 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
15154 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
15155 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
22129589
AS
15156 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
15157 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
794cb45e 15158 stack pointer register.
22129589 15159 (output_movhi): Remove code for interrupt specific writing to the
794cb45e
AS
15160 stack pointer register.
15161
39f8a3b0
RG
151622008-05-31 Richard Guenther <rguenther@suse.de>
15163
15164 PR tree-optimization/34244
15165 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
15166 (tree_expr_nonzero_warnv_p): Likewise.
15167 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
15168 ssa_name_nonnegative_p.
15169 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
15170 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
15171 not tree_expr_nonzero_warnv_p.
15172
15173 PR tree-optimization/36262
15174 Revert
15175 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
15176
69002843
UB
15177 PR tree-optimization/34244
15178 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
15179 (record_numbers_of_iterations): New function.
15180 (execute_vrp): Cache the numbers of iterations of loops.
15181 * tree-scalar-evolution.c (scev_reset_except_niters):
15182 New function.
15183 (scev_reset): Use scev_reset_except_niters.
15184 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
39f8a3b0 15185
2643f14e
BS
151862008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
15187
15188 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15189 __WORKAROUND_RETS when appropriate.
15190
ca3a2165
UB
151912008-05-31 Uros Bizjak <ubizjak@gmail.com>
15192
15193 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
15194 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
15195 mode iterator.
15196 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
15197 *fop_df_comm_sse insn patterns using MODEF mode iterator.
15198 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
15199 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
15200 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
15201 *fop_df_1_mixed insn patterns using MODEF mode iterator.
15202 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
15203 *fop_df_1_sse insn patterns using MODEF mode iterator.
15204 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
15205 *fop_df_1_i387 insn patterns using MODEF mode iterator.
15206 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
15207 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
15208 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
15209 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
15210 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
15211 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
15212 (*fop_xf_4_i387): Use <MODE> for mode attribute.
15213 (*fop_xf_5_i387): Ditto.
15214 (*fop_xf_6_i387): Ditto.
15215
acdfeac3
RG
152162008-05-30 Richard Guenther <rguenther@suse.de>
15217
15218 * builtins.c (build_string_literal): Avoid generating
15219 a non-gimple_val result.
15220
97c3860d
DD
152212008-05-30 DJ Delorie <dj@redhat.com>
15222
15223 * exec-tool.in: Use an environment variable (private) instead of a
15224 file (shared) as a semaphore, so as to not break parallel builds.
15225
856905c2
SB
152262008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
15227
15228 * optabs.c (maybe_encapsulate_block): Remove.
15229 (emit_libcall_block): Adjust accordingly.
15230 * optabs.h (maybe_encapsulate_block): Remove prototype.
15231
15232 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
15233 Don't use maybe_encapsulate_block.
15234
0cdc04e8
SB
152352008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
15236
15237 * config/rs6000/rs6000.c (rs6000_legitimize_address,
15238 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
15239 rtx is a SYMBOL_REF before calling get_pool_constant.
15240
bfab40f8
EB
152412008-05-30 Eric Botcazou <ebotcazou@adacore.com>
15242
15243 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
15244
c100de59
DS
152452008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
15246
15247 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
15248 rather than OS names to choose INO_T_EQ definition.
15249 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
ca3a2165 15250 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
c100de59 15251
c776a6d0
DF
152522008-05-29 Daniel Franke <franke.daniel@gmail.com>
15253
15254 PR target/36348
15255 * config/darwin-f.c: New.
15256 * config/t-darwin: Added rule to build darwin-f.o.
15257 * config.gcc: Defined new variable, fortran_target_objs.
15258 (*-*-darwin*): Set fortran_target_objs.
15259 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
ca3a2165 15260 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
c776a6d0
DF
15261 * configure: Regenerated.
15262
a20007a4
L
152632008-05-29 H.J. Lu <hongjiu.lu@intel.com>
15264
15265 PR target/35771
15266 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
15267 canonical type if needed.
15268
4efa7ef9
EB
152692008-05-29 Eric Botcazou <ebotcazou@adacore.com>
15270
15271 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
15272
2f571334
RG
152732008-05-29 Richard Guenther <rguenther@suse.de>
15274
15275 PR tree-optimization/36343
15276 PR tree-optimization/36346
15277 PR tree-optimization/36347
15278 * tree-flow.h (clobber_what_p_points_to): Declare.
15279 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
15280 pointed-to variable is dereferenced is irrelevant to whether
15281 the pointer can access the pointed-to variable.
15282 (clobber_what_p_points_to): New function.
15283 * tree-ssa-alias.c (set_initial_properties): Use it.
15284 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
15285 call clobber check for NMTs.
15286
68bb68ca 152872008-05-28 Seongbae Park <seongbae.park@gmail.com>
22129589 15288
68bb68ca
SP
15289 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
15290 for printing gcov_type.
15291
b608a1bc
SP
152922008-05-28 Seongbae Park <seongbae.park@gmail.com>
15293
15294 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
15295 and the eh region information.
15296 * value-prof.c (gimple_move_stmt_histograms): New function.
15297 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
15298
77da4248
AT
152992008-05-28 Andreas Tobler <a.tobler@schweiz.org>
15300
15301 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
15302
3dfb6f59
SP
153032008-05-28 Seongbae Park <seongbae.park@gmail.com>
15304
15305 * value-prof.c (tree_ic_transform): Print counts.
15306 * tree-profile.c (tree_gen_ic_func_profiler):
ca3a2165
UB
15307 Clear __gcov_indreict_call_callee variable to avoid misattribution
15308 of the profile.
3dfb6f59 15309
e49cf927 153102008-05-28 Rafael Espíndola <espindola@google.com>
5a976da0
RAE
15311
15312 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
15313 invalid sharing.
15314
38154e4f
RG
153152008-05-28 Richard Guenther <rguenther@suse.de>
15316
15317 PR tree-optimization/36339
15318 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
15319 and clobbering code out of the loop.
15320
963fc8d0
AK
153212008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
15322
15323 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
15324 letters defined.
15325
15326 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
15327 s390_contiguous_bitmask_p, s390_symref_operand_p,
15328 s390_check_symref_alignment, s390_reload_larl_operand,
15329 s390_reload_symref_address): New functions.
15330 (s390_branch_condition_mnemonic): Support compare and branch
15331 instructions.
15332 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
15333 and 'W' constraints.
15334 (s390_secondary_reload): Add secondary reloads for unaligned
15335 symbol refs or symbol refs to floating point or QI/TI mode
15336 integer values.
15337 (legitimate_address_p): Accept symbol references as addresses.
15338 (s390_expand_insv): Use rotate and insert selected bits
15339 instruction for insv when building for z10.
15340 (print_operand_address): Handle symbol ref addresses.
ca3a2165 15341 (print_operand): Output modifier 'c' added for signed byte values.
963fc8d0
AK
15342 (s390_encode_section_info): Mark symbol refs with
15343 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
15344
15345 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
15346 (length attribute): RRF, RRR have 4 byte length.
15347 (FPALL, INTALL): New mode iterators added.
15348 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
15349 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
15350 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
15351 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
15352 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
15353 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
15354 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
15355 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
15356 instructions.
15357 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
15358 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
15359 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
15360 reload<INTALL:mode><P:mode>_toreg_z10,
15361 reload<FPALL:mode><P:mode>_tomem_z10,
15362 reload<FPALL:mode><P:mode>_toreg_z10,
15363 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
15364 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
15365 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
15366 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
15367 definition.
15368 (movmem, clrmem, cmpmem): New splitters added.
15369
15370 * config/s390/predicates.md (larl_operand): Use
15371 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
15372 SYMBOL_REF_ALIGN1_P.
15373 (s390_signed_integer_comparison,
15374 s390_unsigned_integer_comparison): New predicates.
15375
15376 * config/s390/s390-protos.h (s390_check_symref_alignment,
15377 s390_contiguous_bitmask_p, s390_reload_larl_operand,
15378 s390_reload_symref_address,
15379 s390_compare_and_branch_condition_mask): Prototypes added.
15380
15381 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
15382 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
15383 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
15384
93538e8e
AK
153852008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
15386
15387 * config/s390/s390.c (z10_cost): New cost function for z10.
ca3a2165 15388 (s390_handle_arch_option, override_options): Support -march=z10 switch.
93538e8e
AK
15389 (s390_issue_rate): Adjust issue rate for z10.
15390 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
15391 (processor_flags): Add PF_Z10.
15392 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
15393 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
15394 * gcc/config.gcc: Add z10.
15395
540f6bda
RG
153962008-05-28 Richard Guenther <rguenther@suse.de>
15397
15398 PR tree-optimization/36291
15399 * tree-flow. h (struct gimple_df): Remove var_anns member.
15400 * tree-flow-inline.h (gimple_var_anns): Remove.
15401 (var_ann): Simplify.
15402 * tree-dfa.c (create_var_ann): Simplify.
15403 (remove_referenced_var): Clear alias info from var_anns of globals.
15404 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
15405 (delete_tree_ssa): Clear alias info from var_anns of globals.
15406 Do not free var_anns.
15407 (var_ann_eq): Remove.
15408 (var_ann_hash): Likewise.
15409
33db2060
MS
154102008-05-28 Mark Shinwell <shinwell@codesourcery.com>
15411
15412 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
15413 and loongson2f entries.
15414 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
15415 * config/mips/mips.h (processor_type): Add Loongson-2E
15416 and Loongson-2F entries.
15417 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
15418 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
15419 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
15420 * doc/invoke.texi (MIPS Options): Document loongson2e
15421 and loongson2f processor names.
15422
23ac85e7
L
154232008-05-27 H.J. Lu <hongjiu.lu@intel.com>
15424
15425 PR target/35767
15426 PR target/35771
15427 * config/i386/i386.c (ix86_function_arg_boundary): Use
15428 alignment of canonical type.
15429 (ix86_expand_vector_move): Check unaligned memory access for
15430 all SSE modes.
15431
3395aa05
L
154322008-05-27 H.J. Lu <hongjiu.lu@intel.com>
15433
15434 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
15435 Moved to the front of file.
15436
3ce6e42e
XG
154372008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
15438 H.J. Lu <hongjiu.lu@intel.com>
15439
15440 * dwarf2out.c (current_fde): New.
15441 (add_cfi): Use it.
15442 (lookup_cfa:): Likewise.
15443 (dwarf2out_end_epilogue): Likewise.
15444 (dwarf2out_note_section_used): Likewise.
15445
a3299096
MM
154462008-05-27 Michael Matz <matz@suse.de>
15447
15448 PR c++/27975
15449 * c.opt (Wenum-compare): New warning option.
15450 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
15451
bd42a56b
MM
154522008-05-27 Michael Matz <matz@suse.de>
15453
15454 PR middle-end/36326
15455 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
15456 non-BLKmode types.
15457 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
15458 into memory as tail calls.
15459
a46fc136
RG
154602008-05-27 Richard Guenther <rguenther@suse.de>
15461
15462 PR tree-optimization/36339
15463 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
15464 pointers cause all addressable variables to be call clobbered.
15465
6fe2f65a
RG
154662008-05-27 Richard Guenther <rguenther@suse.de>
15467
15468 PR tree-optimization/36245
ca3a2165 15469 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
6fe2f65a 15470
fb492564
AK
154712008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
15472
15473 * config/s390/s390.md: Replace all occurences of the 'm'
15474 constraint with 'RT'.
15475
3af8e996
AK
154762008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
15477
15478 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
15479 definitions added.
15480 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
15481 "*movdi_64".
15482 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
15483 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
15484 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
15485
7ac28727
AK
154862008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
15487
15488 * reload.c: (find_reloads): Skip alternatives according to the
15489 "enabled" attribute. Constify the constraint variable.
15490 * recog.c (get_attr_enabled): Add default implementation.
15491 (extract_insn): Set the alternative_enabled_p array
15492 in the recog_data struct.
15493 (preprocess_constraints, constrain_operands): Skip
15494 alternatives according to the "enabled" attribute
15495 * recog.h (struct recog_data): New field alternative_enabled_p.
15496 (skip_alternative): New inline function.
ca3a2165 15497 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
7ac28727
AK
15498 (record_reg_classes): Skip alternative according to the
15499 "enabled" attribute.
15500
15501 * doc/md.texi: Add documention for the "enabled" attribute.
15502
a4edaf83
AK
155032008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
15504
15505 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
15506 * postreload.c (reload_cse_simplify_operands): Replace 'm'
15507 constraint with TARGET_MEM_CONSTRAINT.
15508 * recog.c (asm_operand_ok, preprocess_constraints,
15509 constrain_operands): Likewise.
15510 * regclass.c (record_reg_classes): Likewise.
ca3a2165 15511 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
a4edaf83 15512 * reload1.c (maybe_fix_stack_asms): Likewise.
ca3a2165 15513 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
a4edaf83
AK
15514 * recog.h: Adjust comment.
15515 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
ca3a2165 15516 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
a4edaf83
AK
15517 * doc/md.texi: Add a note to description of 'm' constraint.
15518 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
15519
469dfae9
EB
155202008-05-27 Eric Botcazou <ebotcazou@adacore.com>
15521
15522 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
15523 that the bitfield is of integral type before testing its precision.
15524
986a8d90 155252008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
22129589 15526 Sa Liu <saliu@de.ibm.com>
986a8d90 15527
22129589 15528 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
986a8d90
TS
15529 __modti3, __udivti3, __umodti3 and __udivmodti4.
15530 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
15531 that implement TImode mul and div functions.
15532 * config/spu/multi3.c: New. Implement __multi3.
15533 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
15534 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
15535 functions on SPU.
15536
02135bc1
SB
155372008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
15538
15539 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
15540 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
15541 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
15542 tls_sysv_suffix): New mode and mode attribute iterators.
15543 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
15544 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
15545 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
15546 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
15547 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
15548 iterators.
15549
ba977e1a
EB
155502008-05-26 Eric Botcazou <ebotcazou@adacore.com>
15551
15552 PR tree-optimization/36329
15553 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
15554 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
15555 * cgraphbuild.c (initialize_inline_failed): Use the latter
15556 macro in lieu of the former.
15557 * ipa-inline.c (cgraph_mark_inline): Likewise.
15558 (cgraph_decide_inlining_of_small_function): Likewise.
15559 (cgraph_decide_inlining): Likewise.
15560 (cgraph_decide_inlining_incrementally): Likewise.
15561
4d492420 155622008-05-26 Tristan Gingold <gingold@adacore.com>
ca3a2165 15563 Anatoly Sokolov <aesok@post.ru>
4d492420
TG
15564
15565 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
15566 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
22129589 15567 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
4d492420
TG
15568 optimization for 'avr6' architecture.
15569
319a58c6
AH
155702008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
15571
15572 PR target/34932
15573 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
15574
26fa9076
RG
155752008-05-26 Richard Guenther <rguenther@suse.de>
15576
15577 * tree-ssa-sccvn.c (expr_has_constants): Declare.
ca3a2165 15578 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
26fa9076 15579
76fe54f0
L
155802008-05-26 H.J. Lu <hongjiu.lu@intel.com>
15581
15582 PR middle-end/36253
ca3a2165 15583 * caller-save.c (insert_restore): Verify alignment of spill space.
76fe54f0 15584 (insert_save): Likewise.
76fe54f0 15585 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
76fe54f0
L
15586 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
15587 (STACK_SLOT_ALIGNMENT): Likewise.
76fe54f0
L
15588 * function.c (LOCAL_ALIGNMENT): Removed.
15589 (get_stack_local_alignment): New.
15590 (assign_stack_local): Use it. Set alignment on stack slot.
15591 (assign_stack_temp_for_type): Use get_stack_local_alignment.
76fe54f0
L
15592 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
15593 (STACK_SLOT_ALIGNMENT): New.
76fe54f0
L
15594 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
15595 stack slot in XFmode.
15596
15597 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
15598
e5f005e1
KT
155992008-05-26 Kai Tietz <kai.tietz@onevision.com>
15600
15601 PR/36321
15602 * config/i386/i386.md (allocate_stack_worker_64): Make sure
15603 argument operand in rax isn't removed.
15604
fcb4587e
RG
156052008-05-26 Richard Guenther <rguenther@suse.de>
15606
15607 PR middle-end/36300
15608 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
15609 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
15610
25497730
DF
156112008-05-26 Daniel Franke <franke.daniel@gmail.com>
15612
15613 PR bootstrap/36331
15614 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
15615
e8a25ca8
DH
156162008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
15617
15618 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
15619 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
15620
3651f7ad
EB
156212008-05-25 Eric Botcazou <ebotcazou@adacore.com>
15622
ca3a2165 15623 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3651f7ad
EB
15624 build a trampoline if we don't want one.
15625 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
15626 return zero for nested functions if we don't want a trampoline.
15627
b885a4c1
DF
156282008-05-26 Daniel Franke <franke.daniel@gmail.com>
15629
15630 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
15631
670637ee
DF
156322008-05-26 Daniel Franke <franke.daniel@gmail.com>
15633
15634 PR fortran/18428
15635 * c.opt: Removed undocumented option '-lang-fortran'.
15636 * c-common.h: Removed global variable 'lang_fortran'.
15637 * c-opts.c (c_common_handle_option): Removed code to handle
15638 option '-lang-fortran'. Updated includes.
15639 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
15640 definition of '__GFORTRAN__'.
15641 (define__GNUC__): Reimplemented to use BASEVER and
15642 cpp_define_formatted.
15643 (builtin_define_with_value_n): Removed.
15644 * c-incpath.h: Renamed to ...
15645 * incpath.h: ... this.
15646 * c-incpath.c: Renamed to ...
15647 * incpath.c: ... this. Updated includes.
15648 * fix-header.c: Updated includes.
15649 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
15650 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
15651 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
15652
4cea6c02
EB
156532008-05-25 Eric Botcazou <ebotcazou@adacore.com>
15654
15655 * tree.h: Update the table of flags used on tree nodes.
15656 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
15657 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
15658 (FORCED_LABEL): Add access check.
15659 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
15660 (ASM_INPUT_P): Likewise.
15661 (ASM_VOLATILE_P): Likewise.
15662 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
15663 (OMP_SECTION_LAST): Access private_flag directly.
15664 (OMP_RETURN_NOWAIT): Likewise.
15665 (OMP_PARALLEL_COMBINED): Likewise.
15666 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
15667 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
15668 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
15669 deprecated_flag directly.
15670
3bffa195
L
156712008-05-25 H.J. Lu <hongjiu.lu@intel.com>
15672
15673 * final.c (frame_pointer_needed): Removed.
15674 * flags.h (frame_pointer_needed): Likewise.
15675
15676 * function.h (rtl_data): Add frame_pointer_needed.
15677 (frame_pointer_needed): New.
15678
93fea8d3
AL
156792008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
15680
15681 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
15682
29470771
SB
156832008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
15684
15685 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
15686 SRC is a REG.
15687
dd25a747
AM
156882008-05-25 Alan Modra <amodra@bigpond.net.au>
15689
15690 * c-common.c (strip_array_types): Move function to..
15691 * tree.c: ..here.
15692 (get_inner_array_type): Delete.
15693 * c-common.h (strip_array_types): Move declaration to..
15694 * tree.h: ..here.
15695 (get_inner_array_type): Delete.
15696 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
15697 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
15698 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
15699 * config/pa/pa.c (emit_move_sequence): Likewise.
15700
c36c9821
L
157012008-05-24 H.J. Lu <hongjiu.lu@intel.com>
15702
15703 * config/i386/i386.md (*sse_prologue_save_insn): Set length
15704 attribute to 34.
15705
88280cf9
AH
157062008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
15707
15708 * function.c: Include target hook for nonlocal_goto frame value.
15709
7c88f67a
RG
157102008-05-24 Richard Guenther <rguenther@suse.de>
15711
ca3a2165
UB
15712 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
15713 variable can be only accessed through a pointer or a union.
7c88f67a 15714
32101f99
KG
157152008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15716
15717 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
15718 * doc/extend.texi: Likewise.
15719
80b093df
DD
157202008-05-23 DJ Delorie <dj@redhat.com>
15721
c9db440d
DD
15722 * config/m32c/jump.md (untyped_call): Add.
15723
80b093df
DD
15724 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
15725 for A24 to PSImode.
15726 (m32c_address_cost): Detail costs for indirect offsets.
15727
e49cf927 157282008-05-23 Rafael Espíndola <espindola@google.com>
fbcfcb3c
RAE
15729
15730 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
15731 if a node is a SUBREG.
15732 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
15733 is a SUBREG.
15734
007e61c2
PB
157352008-05-23 Paul Brook <paul@codesourcery.com>
15736 Carlos O'Donell <carlos@codesourcery.com>
15737
15738 * doc/extend.texi: Clarify use of __attribute__((naked)).
15739 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15740 * target.h (gcc_target): Add allocate_stack_slots_for_args.
15741 * function.c (use_register_for_decl): Use
15742 targetm.calls.allocate_stack_slots_for_args.
ca3a2165
UB
15743 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15744 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
007e61c2
PB
15745 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
15746
a2acd8bf
EB
157472008-05-23 Eric Botcazou <ebotcazou@adacore.com>
15748
15749 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
15750
c201998a
SM
157512008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
15752
15753 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
15754 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
15755 is only rounded once.
15756
833248d2
RG
157572008-05-23 Richard Guenther <rguenther@suse.de>
15758
ca3a2165 15759 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
833248d2 15760
922e3e33
UB
157612008-05-23 Uros Bizjak <ubizjak@gmail.com>
15762 Jakub Jelinek <jakub@redhat.com>
15763
15764 PR target/36079
15765 * configure.ac: Handle --enable-cld.
15766 * configure: Regenerated.
15767 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
15768 * config/i386/i386.h (struct machine_function): Add needs_cld field.
15769 (ix86_current_function_needs_cld): New define.
15770 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
15771 (cld): New isns pattern.
15772 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
15773 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
15774 * config/i386/i386.opt (mcld): New option.
15775 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
15776 TARGET_CLD and ix86_current_function_needs_cld.
15777 (override_options): Use -mcld by default for 32-bit code if
15778 USE_IX86_CLD.
15779
15780 * doc/install.texi (Options specification): Document --enable-cld.
15781 * doc/invoke.texi (Machine Dependent Options)
ca3a2165
UB
15782 [i386 and x86-64 Options]: Add -mcld option.
15783 (Intel 386 and AMD x86-64 Options): Document -mcld option.
922e3e33 15784
71995c2c
KT
157852008-05-23 Kai Tietz <kai.tietz@onevison.com>
15786 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
15787 (return_in_memory_64): Likewise.
15788 (return_in_memory_ms_64): Likewise.
15789
3bf5906b
KG
157902008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15791
15792 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
15793 * builtins.c (fold_builtin_fpclassify): New.
15794 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
15795 * builtins.def (BUILT_IN_FPCLASSIFY): New.
15796 * c-common.c (handle_type_generic_attribute): Adjust to accept
15797 fixed arguments before an elipsis.
15798 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
15799 * doc/extend.texi: Document __builtin_fpclassify.
15800
c63cac47
AH
158012008-05-22 Aldy Hernandez <aldyh@redhat.com>
15802
15803 * omp-low.c (gate_expand_omp_ssa): Remove.
15804 (pass_expand_omp_ssa): Remove.
15805 (gate_expand_omp): Do not check for flag_openmp_ssa.
15806 * common.opt (-fopenmp-ssa): Remove.
15807 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
15808
3217af3e
KK
158092008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
15810
15811 * config/sh/sh.opt (mfixed-range): New option.
15812 * config/sh/sh-protos.h (sh_fix_range): Declare.
15813 * config/sh/sh.c (sh_fix_range): New function.
15814 * config/sh/sh.h (sh_fixed_range_str): Declare.
15815 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
15816 is not empty.
15817 * doc/invoke.texi (SH Options): Document -mfixed-range.
15818
42b18a21
KT
158192008-05-22 Kai Tietz <kai.tietz@onevision.com>
15820
15821 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
15822 it before the redeclaration.
15823
97822902
AS
158242008-05-22 Anatoly Sokolov <aesok@post.ru>
15825
15826 * config/avr/avr.c (get_sequence_length): Add new function.
15827 (expand_prologue, expand_epilogue): Remove duplicate code.
15828
e49cf927 158292008-05-22 Rafael Espíndola <espindola@google.com>
4799e6aa
RAE
15830
15831 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
15832 sharing.
15833
9d3a9de1
L
158342008-05-22 H.J. Lu <hongjiu.lu@intel.com>
15835
15836 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
15837 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
15838
15839 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
15840 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
15841 (vect_update_misalignment_for_peel): Likewise.
15842 (vector_alignment_reachable_p): Likewise.
15843 * tree-vect-transform.c (vectorizable_load): Likewise.
15844 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
922e3e33
UB
15845 (get_vectype_for_scalar_type): Pass mode of scalar_type
15846 to UNITS_PER_SIMD_WORD.
9d3a9de1
L
15847
15848 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
15849 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
15850 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
15851 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
15852 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
15853
f8b52c2f
IR
158542008-05-22 Ira Rosen <irar@il.ibm.com>
15855
15856 PR tree-optimization/36293
15857 * tree-vect-transform.c (vect_transform_strided_load): Don't check
15858 if the first load must be skipped because of a gap.
15859
1842e4d4
RG
158602008-05-22 Richard Guenther <rguenther@suse.de>
15861
15862 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
15863 more cases of offset disambiguation that is possible if
15864 strict-aliasing rules apply.
15865 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
15866 for basic offset and type-based disambiguation.
15867
31ebe593
L
158682008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15869
15870 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
15871 ix86_expand_vector_set on V16QImode for SSE4.1.
15872
c24d4112
TT
158732008-05-21 Tom Tromey <tromey@redhat.com>
15874
15875 * c.opt (Wimport): Mark as undocumented.
15876 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
15877 -Wno-import.
15878 (Warning Options): Likewise.
15879 * doc/cppopts.texi: Don't mention -Wimport.
15880
4e8d7177
SP
158812008-05-21 Sebastian Pop <sebastian.pop@amd.com>
15882
15883 PR tree-optimization/36287
15884 PR tree-optimization/36286
15885 * lambda-code.c (build_access_matrix): Do not use the loop->num
15886 for computing the number of induction variables: use the loop depth
15887 instead.
15888
6110c44a
KT
158892008-05-21 Kai Tietz <kai.tietz@onevision.com>
15890
15891 PR/36280
15892 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
15893 option -f(no-)leading-underscore.
15894
e73caa00
L
158952008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15896
15897 * config/i386/i386.c (ix86_expand_vector_init_general): Use
15898 GET_MODE_NUNITS (mode).
15899
4adf8008
PB
159002008-05-21 Peter Bergner <bergner@vnet.ibm.com>
15901
15902 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
15903 (-mmulhw): Add 464 to description.
15904 (-mdlmzb): Likewise.
15905 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
15906 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
15907 464fp entries.
15908 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
15909 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
15910 * config/rs6000/rs6000.md: Update comments for 464.
15911
00a25a2d
JJ
159122008-05-21 Janis Johnson <janis187@us.ibm.com>
15913
15914 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
15915
80980aec
L
159162008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15917
15918 * config/i386/sse.md (vec_extractv4sf): Removed.
15919 (vec_extractv2df): Likewise.
15920 (vec_extractv2di): Likewise.
15921 (vec_extractv4si): Likewise.
15922 (vec_extractv8hi): Likewise.
15923 (vec_extractv16qi): Likewise.
15924 (vec_extract<mode>): New.
15925
349587b8
L
159262008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15927
15928 * config/i386/sse.md (vec_setv4sf): Removed.
15929 (vec_setv2df): Likewise.
15930 (vec_setv2di): Likewise.
15931 (vec_setv4si): Likewise.
15932 (vec_setv8hi): Likewise.
15933 (vec_setv16qi): Likewise.
15934 (vec_set<mode>): New.
15935
0864e1e8
L
159362008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15937
15938 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
15939 goto for vec_concat and vec_interleave.
15940
f8caa3a8
L
159412008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15942
15943 * config/i386/sse.md (vec_initv4sf): Removed.
15944 (vec_initv2df): Likewise.
15945 (vec_initv2di): Likewise.
15946 (vec_initv4si): Likewise.
15947 (vec_initv8hi): Likewise.
15948 (vec_initv16qi): Likewise.
15949 (vec_init<mode>): New.
15950
fb291f50
JM
159512008-05-21 Joseph Myers <joseph@codesourcery.com>
15952
15953 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
15954
dae4174e
TT
159552008-05-21 Tom Tromey <tromey@redhat.com>
15956
15957 * ggc-zone.c (lookup_page_table_if_allocated): New function.
15958 (zone_find_object_offset): Likewise.
15959 (gt_ggc_m_S): Likewise.
15960 (highest_bit): Likewise.
15961 * ggc-page.c (gt_ggc_m_S): New function.
15962 * stringpool.c (string_stack): Remove.
15963 (init_stringpool): Update.
15964 (ggc_alloc_string): Use ggc_alloc.
15965 (maybe_delete_ident): New function.
15966 (ggc_purge_stringpool): Likewise.
15967 (gt_ggc_m_S): Remove.
15968 * ggc-common.c (ggc_protect_identifiers): New global.
15969 (ggc_mark_roots): Call ggc_purge_stringpool. Use
15970 ggc_protect_identifiers.
15971 * ggc.h (ggc_protect_identifiers): Declare.
15972 (gt_ggc_m_S): Update.
15973 (ggc_purge_stringpool): Declare.
15974 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
15975 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
15976 special case.
15977 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
15978
ccbdd3bc
DM
159792008-05-21 David S. Miller <davem@davemloft.net>
15980
15981 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
15982 tmake_file.
15983
e8a2a782
EB
159842008-05-21 Eric Botcazou <ebotcazou@adacore.com>
15985
15986 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
15987 once finished.
15988
06d19617
DD
159892008-05-20 David Daney <ddaney@avtrex.com>
15990
15991 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
922e3e33
UB
15992 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
15993 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
06d19617
DD
15994 UNSPEC_UPDATE_GOT_VERSION): Renumber.
15995 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
15996 (atomic_hiqi_op): New define_code_iterator.
922e3e33 15997 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
06d19617
DD
15998 mips_expand_compare_and_swap_12.
15999 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
922e3e33 16000 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
06d19617
DD
16001 (sync_<optab><mode>, sync_old_<optab><mode>,
16002 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
922e3e33 16003 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
06d19617
DD
16004 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
16005 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
922e3e33 16006 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
06d19617
DD
16007 (test_and_set_12): New insn.
16008 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
16009 sync_new_<optab><mode>, sync_old_nand<mode>,
16010 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
16011 clobber to operand 0 for SI and DI mode insns.
16012 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
16013 mips_gen_fn_4): New typedefs.
16014 (mips_gen_fn_ptrs): Define new union type.
16015 (mips_expand_compare_and_swap_12): Remove declaration.
16016 (mips_expand_atomic_qihi): Declare function.
16017 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
16018 (mips_expand_atomic_qihi): ... this. Use new generator function
16019 parameter.
16020 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
16021 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
ca3a2165 16022 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
06d19617
DD
16023 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
16024 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
16025 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
16026 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
16027 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
16028 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
ca3a2165
UB
16029 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
16030 New macros.
06d19617 16031
a35f6a35
L
160322008-05-20 H.J. Lu <hongjiu.lu@intel.com>
16033
16034 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
16035 the missing break.
16036
9b678d96
AS
160372008-05-20 Anatoly Sokolov <aesok@post.ru>
16038
16039 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
16040 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
16041 (avr_attribute_table): Add 'OS_main' function attribute.
16042 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
16043 functions with 'OS_main' attribute.
16044
6be34936
RG
160452008-05-20 Richard Guenther <rguenther@suse.de>
16046
16047 PR tree-optimization/35204
16048 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
16049 helper, split out from ...
16050 (DFS): ... here. Make the DFS walk non-recursive.
16051
9857228c
SP
160522008-05-20 Sebastian Pop <sebastian.pop@amd.com>
16053 Jan Sjodin <jan.sjodin@amd.com>
16054
16055 PR tree-optimization/36181
16056 * tree-parloops.c (loop_has_vector_phi_nodes): New.
16057 (parallelize_loops): Don't parallelize when the loop has vector
16058 phi nodes.
16059
9f275479
JS
160602008-05-20 Jan Sjodin <jan.sjodin@amd.com>
16061 Sebastian Pop <sebastian.pop@amd.com>
16062
922e3e33
UB
16063 * tree-loop-linear.c (gather_interchange_stats): Look in the access
16064 matrix, and never look at the tree representation of the memory
16065 accesses.
9f275479 16066 (linear_transform_loops): Computes parameters and access matrices.
922e3e33
UB
16067 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
16068 when fails.
9f275479
JS
16069 (access_matrix_get_index_for_parameter): New.
16070 * tree-data-ref.h (struct access_matrix): New.
16071 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
16072 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
16073 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
16074 am_vector_index_for_loop): New.
16075 (struct data_reference): Add field access_matrix.
16076 (DR_ACCESS_MATRIX): New.
16077 (compute_data_dependences_for_loop): Update declaration.
16078 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
16079 * lambda.h (lambda_vector_vec_p): Declared.
16080 * lambda-code.c: Depend on pointer-set.h.
16081 (lambda_collect_parameters_from_af, lambda_collect_parameters,
16082 av_for_af_base, av_for_af, build_access_matrix,
16083 lambda_compute_access_matrices): New.
16084 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
16085
f30fad61
JM
160862008-05-20 Joseph Myers <joseph@codesourcery.com>
16087
16088 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
16089 $SOURCEDIR/include.
16090
5b78fc3e
JS
160912008-05-20 Jan Sjodin <jan.sjodin@amd.com>
16092 Sebastian Pop <sebastian.pop@amd.com>
16093
16094 PR tree-optimization/36206
16095 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
16096 FOLD_CONVERSIONS.
16097 (instantiate_scev_1): Rename flags to fold_conversions.
16098 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
16099 outeside instantiation_loop.
16100 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
16101 (evolution_function_is_affine_or_constant_p): Removed.
16102 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
16103 instantiate_scev.
16104 (analyze_siv_subscript): Pass in the loop nest number.
22129589 16105 Call evolution_function_is_affine_in_loop instead of
5b78fc3e
JS
16106 evolution_function_is_affine_p.
16107 (analyze_overlapping_iterations): Pass in the loop nest number.
16108
161092008-05-20 Jan Sjodin <jan.sjodin@amd.com>
16110 Sebastian Pop <sebastian.pop@amd.com>
16111
16112 PR tree-optimization/36206
16113 * tree-chrec.h (chrec_fold_op): New.
922e3e33
UB
16114 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
16115 and other trees.
5b78fc3e 16116
498f1c82
NS
161172008-05-20 Nathan Sidwell <nathan@codesourcery.com>
16118
16119 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
16120 (DIRS_EQ): New.
922e3e33
UB
16121 (remove_duplicates): Do not set inode on non-inode systems.
16122 Use DIRS_EQ.
498f1c82 16123
9c63c208
SL
161242008-05-20 Sandra Loosemore <sandra@codesourcery.com>
16125
16126 * config.gcc (tm_file): Update comments about relative pathnames.
16127
01902653
RG
161282008-05-20 Richard Guenther <rguenther@suse.de>
16129
922e3e33 16130 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
01902653
RG
16131 * tree-ssa-sccvn.c (process_scc): Likewise.
16132 * tree-ssa-sink.c (execute_sink_code): Likewise.
16133 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
16134 * tree-vrp.c (process_assert_insertions): Likewise.
16135 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
16136 (perform_tree_ssa_dce): Likewise.
16137 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
16138 (dump_dominator_optimization_stats): Likewise.
16139 * tree-vectorizer.c (vectorize_loops): Likewise.
16140
4628e602
RG
161412008-05-20 Richard Guenther <rguenther@suse.de>
16142
16143 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
16144
3b23a6d3
KT
161452008-05-20 Kai Tietz <kai.tietz@onevision.com>
16146
16147 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
16148 (ix86_i386elf_return_in_memory): Likewise.
16149 (ix86_i386interix_return_in_memory): Likewise.
16150 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
16151 (SUBTARGET_RETURN_IN_MEMORY): New.
16152 * config/i386/i386elf.h: Likewise.
16153 * config/i386/ptx4-i.h: Likewise.
16154 * config/i386/sol2-10.h: Likewise.
16155 * config/i386/sysv4.h: Likewise.
16156 * config/i386/vx-common.h: Likewise.
16157 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
16158 * config/i386/i386.c (ix86_return_in_memory): Made static and
16159 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
16160 (ix86_i386elf_return_in_memory): Removed.
16161 (ix86_i386interix_return_in_memory): Removed.
16162 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
16163 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
16164
be9ed5d5
AO
161652008-05-20 Alexandre Oliva <aoliva@redhat.com>
16166
16167 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
16168
bc300fec
XDL
161692008-05-19 Xinliang David Li <davidxl@google.com>
16170
22129589 16171 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
bc300fec
XDL
16172 * opts.c: Ditto.
16173 * common.opt: Ditto.
16174 * doc/invoke.texi: Ditto.
16175
df8e1fdc
EB
161762008-05-19 Eric Botcazou <ebotcazou@adacore.com>
16177
16178 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
fa74fa39 16179 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
df8e1fdc 16180
06a5f1ec
L
161812008-05-19 H.J. Lu <hongjiu.lu@intel.com>
16182
9479cae3 16183 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
06a5f1ec
L
16184 sizes of operand array from 8/4 to 4/2.
16185 (ix86_expand_vector_init_general): Change size of operand array
16186 from 32 to 16. Remove op0, op1 and half_mode.
16187
63e46cce
L
161882008-05-19 H.J. Lu <hongjiu.lu@intel.com>
16189
16190 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
16191 (ix86_expand_vector_init_interleave): Likewise.
ca3a2165
UB
16192 (ix86_expand_vector_init_general): Use them. Assert
16193 word_mode == SImode when n_words == 4.
63e46cce 16194
83689be0
UB
161952008-05-19 Uros Bizjak <ubizjak@gmail.com>
16196
16197 * config/i386/i386.c (ix86_secondary_reload): New static function.
16198 (TARGET_SECONDARY_RELOAD): New define.
16199 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
16200 * config/i386/i386.md (reload_outqi): Remove.
16201
05f41289
KG
162022008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16203
16204 PR middle-end/35509
05f41289
KG
16205 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
16206 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
16207 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
16208 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
16209 (fold_builtin_1): Likewise.
16210 * builtins.def (BUILT_IN_ISINF_SIGN): New.
16211 c-common.c (check_builtin_function_arguments): Handle
16212 BUILT_IN_ISINF_SIGN.
16213 * doc/extend.texi: Document __builtin_isinf_sign.
16214 * fold-const.c (operand_equal_p): Handle COND_EXPR.
16215
45a7844f
EB
162162008-05-18 Eric Botcazou <ebotcazou@adacore.com>
16217
16218 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
16219 EH cleanup at the end of the pass, search for those that have been
16220 turned into forwarder blocks and do the cleanup on their successor.
16221
a86907b2
RG
162222008-05-18 Richard Guenther <rguenther@suse.de>
16223
16224 * tree-cfg.c (verify_gimple_expr): Allow conversions from
16225 pointers to sizetype and vice versa.
16226
e29cc9b4
XDL
162272008-05-18 Xinliang David Li <davidxl@google.com>
16228
16229 * gcc/tree-ssa-dce.c: Coding style fix.
22129589 16230 (check_pow): Documentation comment.
e29cc9b4
XDL
16231 (check_log): Documenation comment. Coding style fix.
16232 (is_unnecessary_except_errno_call): Ditto.
16233 (gen_conditions_for_pow): Ditto.
16234 (gen_conditions_for_log): Ditto.
16235 (gen_shrink_wrap_conditions): Ditto.
16236 (shrink_wrap_one_built_in_calls): Ditto.
16237 * gcc/doc/invoke.texi: Better documentation string.
22129589 16238 * ChangeLog: Fix wrong change log entries from
e29cc9b4
XDL
16239 May 17 checkin on function call DCE.
16240
eb6cbf91
KK
162412008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
16242
371a0575 16243 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
eb6cbf91 16244
bfe69700
KZ
162452008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
16246
16247 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
16248 * df-problems.c (simulation routines): Fixed block comment to
16249 properly say how to add forwards scanning functions.
22129589 16250
7c7d3047
EB
162512008-05-17 Eric Botcazou <ebotcazou@adacore.com>
16252
16253 * tree-inline.c (setup_one_parameter): Remove dead code.
16254
1e17e15a
EB
162552008-05-17 Eric Botcazou <ebotcazou@adacore.com>
16256
16257 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
16258 a BIT_AND_EXPR only for an INTEGER_TYPE.
16259
e29cc9b4
XDL
162602008-05-17 Xinliang David Li <davidxl@google.com>
16261
16262 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
22129589
AS
16263 (check_pow, check_log, is_unnecessary_except_errno_call): New
16264 functions to check for eliminating math functions that are pure
e29cc9b4
XDL
16265 except for setting errno.
16266 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
16267 general condition expressions for shrink-wrapping pow/log calls.
16268 (gen_shrink_wrap_conditions): Ditto.
16269 (shrink_wrap_one_built_in_call): Ditto.
16270 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
16271 (mark_operand_necessary): If debugging, output if OP is necessary.
16272 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
16273 unnecessary.
16274 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
16275 opt level >= 2.
16276 * gcc/common.opt: New user flag -ftree-builtin-dce.
16277 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
16278
b61eacd6
DM
162792008-05-16 David S. Miller <davem@davemloft.net>
16280
371a0575 16281 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
b61eacd6
DM
16282 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16283
c62b3659
UB
162842008-05-16 Uros Bizjak <ubizjak@gmail.com>
16285
16286 PR target/36246
16287 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
16288
07b5bc83
KZ
162892008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16290
16291 * ifcvt.c (dead_or_predicable): Rename
16292 df_simulate_one_insn_backwards to df_simulate_one_insn.
16293 * recog.c (peephole2_optimize): Ditto.
83689be0
UB
16294 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
16295 Ditto.
07b5bc83
KZ
16296 * df.h: Rename df_simulate_one_insn_backwards to
16297 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
16298 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
16299 scanning of defs and uses.
16300 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
16301 (df_simulate_one_insn_forwards): Removed.
16302
f1f07a96
DK
163032008-05-16 Doug Kwan <dougkwan@google.com>
16304
16305 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
16306 QNaN & SNaN.
16307 (real_from_string): Handle NaNs and Inf as approriate.
16308
105f48ae
DN
163092008-05-16 Nathan Froyd <froydnj@codesourcery.com>
16310
16311 * doc/gty.texi (Source Files Containing Type Information): Note
16312 that headers should appear first in the gtfiles list.
16313
163142008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16315
16316 * tree.def (COND_EXEC): Properly documented this code.
16317
163182008-05-16 Diego Novillo <dnovillo@google.com>
16319
16320 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
16321 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
16322 the new field.
16323
908ff6a3
KZ
163242008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16325
16326 * tree-ssa-dse (max_stmt_uid): Removed.
22129589 16327 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
908ff6a3
KZ
16328 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
16329 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
16330 * function.h (cfun.last_stmt_uid): New field.
16331 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
371a0575
UB
16332 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
16333 New functions.
908ff6a3
KZ
16334 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
16335 (create_stmt_ann): Initialize the ann->uid field.
16336 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
16337 with new calls.
16338 * tree-flow.h (renumber_gimple_stmt_uids): New function.
16339
9defb1fe
DN
163402008-05-16 Nathan Froyd <froydnj@codesourcery.com>
16341
16342 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
16343 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
16344 (init_empty_tree_cfg): Call it.
16345
163462008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16347
c62b3659
UB
16348 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
16349 Update all users.
9defb1fe 16350
3e894af1
KZ
163512008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16352
16353 * doc/invoke.text (-fdump-tree-*-verbose): New option.
16354 * tree-dump.c (dump_options): New verbose option.
16355 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
16356 Add verbose dump.
16357 * tree-pass.h (TDF_VERBOSE): New dump flag.
c62b3659 16358 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3e894af1 16359 (tree-flow.h): Added include.
c62b3659 16360 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
3e894af1 16361
16869606
BS
163622008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
16363
4fc4d850
BS
16364 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
16365
16869606 16366 From Jie Zhang <jie.zhang@analog.com>
908ff6a3 16367 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16869606
BS
16368 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
16369 mcpu=bf561-none and mcpu=bf561-0.2.
16370 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16371 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
16372 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16373 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
371a0575 16374 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
c62b3659 16375 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
16869606
BS
16376 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
16377 option.
16378 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
16379 (cputype_selected): Remove.
16380 (bfin_handle_option): Don't use cputype_selected.
16381 (override_options): When no mcpu option, enable all workarounds.
16382 Don't use bfin_workarounds.
16383 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
16384 processor type.
16385 (DEFAULT_CPU_TYPE): Don't define.
16386
d0569f9f
RG
163872008-05-16 Richard Guenther <rguenther@suse.de>
16388
16389 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
16390 on deletion of the last stmt.
16391
d0208f9b
L
163922008-05-15 H.J. Lu <hongjiu.lu@intel.com>
16393
16394 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
16395 V8HImode for SSE2 and V16QImode for SSE4.1.
16396
1920df6c
KZ
163972008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
16398
16399 * cgraph.h (compute_inline_parameters): Made public.
16400 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
16401 variable_generate_summary, function_write_summary,
371a0575
UB
16402 variable_write_summary, variable_read_summary. Added generate_summary,
16403 write_summary, read_summary.
1920df6c
KZ
16404 * cgraphunit.c (cgraph_process_new_functions): Changed call from
16405 pass_ipa_inline.function_generate_summary, to
22129589 16406 compute_inline_parameters.
1920df6c
KZ
16407 * ipa-inline.c (compute_inline_parameters): Made public and added
16408 node parameter.
16409 (compute_inline_parameters_for_current): New function.
c62b3659 16410 (pass_inline_param): Now calls compute_inline_parameters_for_current.
1920df6c
KZ
16411 (inline_generate_summary): Removed parameter and made to loop over
16412 all cgraph nodes.
16413 (pass_ipa_inline): Updated for new IPA_PASS structure.
16414 * passes.c (execute_ipa_summary_passes): Now is called once per
16415 pass rather than once per node*pass.
22129589 16416
470a4c97
AS
164172008-05-15 Anatoly Sokolov <aesok@post.ru>
16418
22129589 16419 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
470a4c97
AS
16420 avr_have_mul_p, avr_asm_only_p): Remove variables.
16421 (avr_override_options): Remove initialization of removed variables.
22129589
AS
16422 (avr_file_start): Convert removed variables to fields of
16423 'struct base_arch_s *avr_current_arch'.
470a4c97
AS
16424 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
16425 (AVR_HAVE_MUL): (Ditto.).
16426 (AVR_HAVE_MOVW): (Ditto.).
22129589
AS
16427 (AVR_HAVE_LPMX): (Ditto.).
16428 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
470a4c97
AS
16429 avr_asm_only_p): Remove declaration.
16430
f4dea66f
DN
164312008-05-15 Diego Novillo <dnovillo@google.com>
16432
c62b3659 16433 * config/arm/arm.c (arm_return_in_memory): Fix return type.
f4dea66f
DN
16434 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
16435
36dafbd1
AN
164362008-05-15 Adam Nemet <anemet@caviumnetworks.com>
16437
16438 PR middle-end/36194
c62b3659
UB
16439 * combine.c (check_conversion): Rename back to check_promoted_subreg.
16440 Don't call record_truncated_value from here.
16441 (record_truncated_value): Turn it into a for_each_rtx callback.
16442 (record_truncated_values): New function.
16443 (combine_instructions): Call note_uses with record_truncated_values.
22129589 16444 Change name of check_conversion to check_promoted_subreg.
36dafbd1 16445
91a5b394
JJ
164462008-05-15 Janis Johnson <janis187@us.ibm.com>
16447
16448 * doc/sourcebuild.texi: Document support for torture tests.
16449
2819ae08
UB
164502008-05-15 Uros Bizjak <ubizjak@gmail.com>
16451
16452 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
16453 to alternative 4 of operand 2.
16454
9fe0cb7d
RG
164552008-05-15 Richard Guenther <rguenther@suse.de>
16456
16457 * tree-pass.h (current_pass): Declare.
16458 (get_pass_for_id): Likewise.
16459 * passes.c (passes_by_id, passes_by_id_size): New globals.
16460 (set_pass_for_id): New function.
16461 (get_pass_for_id): Likewise.
16462 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
16463 (execute_function_todo): Flush per function statistics.
16464 * toplev.c (compile_file): Init statistics.
16465 (general_init): Do early statistics initialization.
16466 (finalize): Finish statistics.
16467 * statistics.h (statistics_early_init): Declare.
16468 (statistics_init): Likewise.
16469 (statistics_fini): Likewise.
16470 (statistics_fini_pass): Likewise.
16471 (statistics_counter_event): Likewise.
16472 (statistics_histogram_event): Likewise.
16473 * statistics.c: New file.
16474 * Makefile.in (OBJS-common): Add statistics.o.
16475 (statistics.o): Add dependencies.
16476 * doc/invoke.texi (-fdump-statistics): Document.
16477
16478 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
16479 (insert): Likewise.
16480 (execute_pre): Use statistics_counter_event.
16481 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
16482 (substitute_and_fold): Increment it. Use statistics_counter_event.
16483
77f377f7
DN
164842008-05-15 Diego Novillo <dnovillo@google.com>
16485
16486 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
16487
16488 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
16489 * tree-ssa-alias.c (new_type_alias): Remove references to
16490 sub-variables from comment.
16491 * tree-ssa-operands.c (swap_tree_operands): Likewise.
16492
89b7851e
L
164932008-05-15 H.J. Lu <hongjiu.lu@intel.com>
16494
16495 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
16496 attribute to 1 only for insertps alternative.
16497
8fa477f7
BS
164982008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
16499
16500 * config/bfin/bfin.md (loadbytes): New pattern.
16501 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
16502 (bfin_init_builtins): Initialize it.
16503 (bdesc_1arg): Add it.
16504
4e8c438f
SL
165052008-05-15 Sa Liu <saliu@de.ibm.com>
16506
16507 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
16508 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
16509 * testsuite/lib/target-supports.exp: Add
16510 check_effective_target_fortran_integer_16.
16511
7ba20e60
BS
165122008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
16513
16514 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
16515 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
16516 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
16517 (TARGET_RETURN_IN_MEMORY): Define.
16518
81d19c06
RG
165192008-05-15 Richard Guenther <rguenther@suse.de>
16520
16521 PR middle-end/36244
16522 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
16523 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
16524 represent unmodifiable vars.
16525
9f59420d
RG
165262008-05-15 Richard Guenther <rguenther@suse.de>
16527
16528 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
16529 INDIRECT_REF and TARGET_MEM_REF.
16530 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
16531 TARGET_MEM_REF.
16532
6784c6e0
UB
165332008-05-15 Uros Bizjak <ubizjak@gmail.com>
16534 H.J. Lu <hongjiu.lu@intel.com>
16535
16536 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
16537 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
16538 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
16539 insn alternatives. Add missing alternatives.
16540 (*vec_concatv2di_rex64_sse4_1): Likewise.
16541 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
16542 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
16543 Require TARGET_SSE.
16544
8ded35f9
RG
165452008-05-15 Richard Guenther <rguenther@suse.de>
16546
16547 PR tree-optimization/36009
16548 PR tree-optimization/36204
16549 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
16550 (determine_invariantness_stmt): Record the loop a store is
16551 always executed in.
16552 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
16553 dependency.
16554
45ff5eda
RG
165552008-05-15 Richard Guenther <rguenther@suse.de>
16556
16557 PR tree-optimization/34330
16558 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
16559 through the pointer will alias the SMT.
16560
c5fcd670
AT
165612008-05-14 Andreas Tobler <a.tobler@schweiz.org>
16562
16563 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
16564
a3f63c28
L
165652008-05-14 H.J. Lu <hongjiu.lu@intel.com>
16566
16567 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
16568
71d46ca5
MM
165692008-05-14 Michael Meissner <michael.meissner@amd.com>
16570 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
16571
16572 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
16573 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
16574 (vashl_optab): New optab for vector/vector shifts.
16575 (vashr_optab): Ditto.
16576 (vlshr_optab): Ditto.
16577 (vrotl_optab): Ditto.
16578 (vrotr_optab): Ditto.
16579 (optab_subtype): New enum for optab_for_tree_code call.
16580 (optab_for_tree_code): Add enum optab_subtype argument.
16581
16582 * optabs.c (optab_for_tree_code): Take an additional argument to
16583 distinguish between a vector shift by a scalar and vector shift by
16584 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
16585 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
16586 vector shift by a vector.
16587 (expand_widen_pattern_expr): Pass additional argument to
16588 optab_for_tree_code.
16589
16590 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
16591 vrotl_optab, vrotr_optab.
16592
16593 * expr.c (expand_expr_real_1): Update calls to
16594 optab_for_tree_code to distinguish between vector shifted by a
16595 scalar and vector shifted by a vector.
16596 * tree-vectorizer.c (supportable_widening_operation): Ditto.
16597 (supportable_narrowing_operation): Ditto.
16598 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
16599 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
16600 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
16601 (vect_create_epilog_for_reduction): Ditto.
16602 (vectorizable_reduction): Ditto.
16603 (vectorizable_operation): Ditto.
16604 (vect_strided_store_supported): Ditto.
16605 (vect_strided_load_supported): Ditto.
16606 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
16607 * expmed.c (expand_shift): Ditto.
16608
16609 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
16610 scalar type.
16611 (ashr@var{m}3): Ditto.
16612 (vashl@var{m}3): Document new vector/vector shift standard name.
16613 (vashr@var{m}3): Ditto.
16614 (vlshr@var{m}3): Ditto.
16615 (vrotl@var{m}3): Ditto.
16616 (vrotr@var{m}3): Ditto.
16617
6784c6e0 16618 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
71d46ca5
MM
16619 (PPERM_INVERT): Ditto.
16620 (PPERM_REVERSE): Ditto.
16621 (PPERM_REV_INV): Ditto.
16622 (PPERM_ZERO): Ditto.
16623 (PPERM_ONES): Ditto.
16624 (PPERM_SIGN): Ditto.
16625 (PPERM_INV_SIGN): Ditto.
16626 (PPERM_SRC1): Ditto.
16627 (PPERM_SRC2): Ditto.
16628
16629 * config/i386/sse.md (mulv2di3): Add SSE5 support.
16630 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
16631 allows a memory operand to be the value being added, and split it
16632 to improve vectorization.
16633 (sse5_pmacsdqh_mem): Ditto.
16634 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
16635 (sse5_mulv2div2di3_high): Ditto.
16636 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
16637 (vec_pack_trunc_v4si): Ditto.
16638 (vec_pack_trunc_v2di): Ditto.
16639 (sse5_pcmov_<mode>): Remove code that tried to use use
16640 andps/andnps instead of pcmov.
16641 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
16642 pmacsdqh instructions.
16643 (vec_widen_smult_lo_v4si): Ditto.
16644
16645 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
16646 (PPERM_INVERT): Ditto.
16647 (PPERM_REVERSE): Ditto.
16648 (PPERM_REV_INV): Ditto.
16649 (PPERM_ZERO): Ditto.
16650 (PPERM_ONES): Ditto.
16651 (PPERM_SIGN): Ditto.
16652 (PPERM_INV_SIGN): Ditto.
16653 (PPERM_SRC1): Ditto.
16654 (PPERM_SRC2): Ditto.
16655 (ix86_expand_sse_movcc): Move the SSE5 test after the if
16656 true/false tests.
16657 (ix86_expand_int_vcond): If SSE5 generate all possible integer
16658 comparisons.
16659 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
16660 says ignore whether the last reference is a memory operand.
16661
166622008-05-14 Michael Meissner <michael.meissner@amd.com>
16663 Paolo Bonzini <bonzini at gnu dot org>
16664
16665 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
16666 shift patterns.
16667
6784c6e0 16668 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
71d46ca5
MM
16669 (vlshr<mode>3): Rename from vlshr<mode>3.
16670 (vashr<mode>3): Rename from vashr<mode>3.
16671 (mulv4sf3): Change the names of vector shift patterns.
16672 (mulv4si3): Ditto.
16673 (negv4sf2): Ditt.
16674
16675 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
16676 shift insns.
16677
6784c6e0 16678 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
71d46ca5
MM
16679 (SI_SHLHI): Ditto.
16680 (SI_SHL): Ditto.
16681 (SI_SHLI): Ditto.
16682 (SI_ROTH): Ditto.
16683 (SI_ROTHI): Ditto.
16684 (SI_ROT): Ditto.
16685 (SI_ROTI): Ditto.
16686 (SPU_RL_0): Ditto.
16687 (SPU_RL_1): Ditto.
16688 (SPU_RL_2): Ditto.
16689 (SPU_RL_3): Ditto.
16690 (SPU_RL_4): Ditto.
16691 (SPU_RL_5): Ditto.
16692 (SPU_RL_6): Ditto.
16693 (SPU_RL_7): Ditto.
16694 (SPU_SL_0): Ditto.
16695 (SPU_SL_1): Ditto.
16696 (SPU_SL_2): Ditto.
16697 (SPU_SL_3): Ditto.
16698 (SPU_SL_4): Ditto.
16699 (SPU_SL_5): Ditto.
16700 (SPU_SL_6): Ditto.
16701 (SPU_SL_7): Ditto.
16702
16703 * config/spu/spu.md (v): New iterator macro to add v for vector types.
16704 (floatunssidf2_internal): Change vector/vector shift names.
16705 (floatunsdidf2_internal): Ditto.
16706 (mulv8hi3): Ditto.
16707 (ashrdi3): Ditto.
16708 (ashrti3): Ditto.
16709 (cgt_df): Ditto.
16710 (cgt_v2df): Ditto.
16711 (dftsv): Ditto.
16712 (vashl<mode>3): Rename from ashl<mode>3.
16713 (vashr<mode>3): Rename from ashr<mode>3.
16714 (vlshr<mode>3): Rename from lshr<mode>3.
16715 (vrotl<mode>3): Rename from rotl<mode>3.
16716
550c9cf0
MM
167172008-05-14 Michael Meissner <michael.meissner@amd.com>
16718
16719 PR target/36224
6784c6e0
UB
16720 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
16721 multiply gives the wrong value when doing widening multiplies.
550c9cf0
MM
16722 (vec_widen_smult_lo_v4si): Ditto.
16723
84b8030f
KZ
167242008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
16725
16726 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
16727 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
22129589 16728 emit_library_call_value.
84b8030f
KZ
16729 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
16730 * tree.h (ECF_LIBCALL_BLOCK): Removed.
22129589 16731 * calls.c (initialize_argument_information, precompute_arguments,
84b8030f
KZ
16732 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
16733 (precompute_arguments): Removed flags parameter.
16734 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
22129589 16735
f403a4a2
RG
167362008-05-14 Richard Guenther <rguenther@suse.de>
16737
16738 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
16739 Make sure to register the store if the use is a PHI_NODE.
16740
da19297d
OH
167412008-05-14 Olivier Hainque <hainque@adacore.com>
16742
16743 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
16744 memory if the component is to be referenced in BLKmode according
16745 to get_inner_reference.
16746
1fd03c70
AN
167472008-05-14 Adam Nemet <anemet@caviumnetworks.com>
16748
16749 * calls.c (emit_library_call_value_1): Restore code clearing
6784c6e0 16750 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1fd03c70 16751
349c3166
OH
167522008-05-14 Olivier Hainque <hainque@adacore.com>
16753 Nicolas Roche <roche@adacore.com>
16754
16755 * configure.ac: Add support for a "gcc_subdir" variable in
16756 config-lang.in, to denote a subdirectory where the language/GCC
16757 integration files are to be found.
16758 * configure: Regenerate.
16759
2b8775f3
IR
167602008-05-14 Ira Rosen <irar@il.ibm.com>
16761
16762 PR tree-optimization/36098
16763 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
16764 value for the first load in the group in case of a gap.
16765 (vect_build_slp_tree): Check that there are no gaps in loads.
16766
d70dcf29
KZ
167672008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
16768
16769 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
16770 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
16771 expand_copysign_bit, ): Change call to emit_no_conflict_block to
16772 emit_insn and remove unneeded code to construct extra args.
16773 (emit_no_conflict_block): Removed.
16774 * optabls.h: (emit_no_conflict_block): Removed.
16775 * cse.c (cse_extended_basic_block): Remove search for
6784c6e0 16776 REG_NO_CONFLICT note.
d70dcf29
KZ
16777 * global.c: Removed incorrect comment added in revision 117.
16778 * expr.c (convert_move): Change call to emit_no_conflict_block to
16779 emit_insn.
16780 * recog.c: Change comments so that they do not mention
16781 REG_NO_CONFLICT.
16782 * local_alloc.c (combine_regs): Removed last parameter.
16783 (no_conflict_p): Removed.
16784 (block_alloc): Removed note, no_conflict_combined_regno and set
16785 local vars. Removed all code to process REG_NO_CONFLICT blocks.
16786 (combine_regs): Removed already_dead and code to look for
16787 REG_NO_CONFLICT notes.
16788 * lower_subreg (remove_retval_note): Removed code to look for
16789 REG_NO_CONFLICT block.
16790 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
16791 (resolve_clobber): Remove code to process libcalls that have
16792 REG_NO_CONFLICT notes.
16793 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
16794 case.
6784c6e0
UB
16795 * combine.c (can_combine_p, distribute_notes): Removed
16796 REG_NO_CONFLICT case.
16797 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
16798 to emit_insns.
d70dcf29
KZ
16799 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
16800 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6784c6e0 16801 Ditto.
d70dcf29 16802 * reg-notes.def (NO_CONFLICT): Removed.
c5fcd670 16803
cc44abe6
DM
168042008-05-14 David S. Miller <davem@davemloft.net>
16805
16806 * config/sparc/sparc.c (sparc_profile_hook): If
6784c6e0 16807 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
cc44abe6
DM
16808 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
16809 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16810
0beb3d66
AK
168112008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
16812
16813 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
16814
08e64088
UB
168152008-05-13 Uros Bizjak <ubizjak@gmail.com>
16816
16817 PR target/36222
16818 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
16819 and op1 expansion before vector concat to have less live pseudos.
16820
af7ae5d1
L
168212008-05-13 H.J. Lu <hongjiu.lu@intel.com>
16822
16823 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16824 ix86_expand_vector_set if supported.
16825
5db9ba0c
DN
168262008-05-13 Diego Novillo <dnovillo@google.com>
16827 Kenneth Zadeck <zadeck@naturalbridge.com>
16828
16829 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
16830
16831 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
16832 phinodes_print_statistics, init_ssanames, fini_ssanames,
08e64088
UB
16833 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
16834 release_ssa_name, release_defs, replace_ssa_name_symbol,
5db9ba0c
DN
16835 ssanames_print_statistics): Move ...
16836 * tree-flow.h: ... here.
08e64088
UB
16837 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
16838 Use FN instead of cfun.
5db9ba0c 16839 (make_ssa_name_fn): Rename from make_ssa_name.
08e64088 16840 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
5db9ba0c 16841 * tree-flow-inline.h (make_ssa_name): Move from
08e64088 16842 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
5db9ba0c
DN
16843 * omp-low.c (expand_omp_parallel):
16844 * tree-flow-inline.h (redirect_edge_var_map_result):
6784c6e0
UB
16845 * tree-ssa.c (init_tree_ssa): Add argument FN.
16846 Use it instead of cfun. Update all users.
5db9ba0c 16847
899015a0
TT
168482008-05-13 Tom Tromey <tromey@redhat.com>
16849
16850 PR preprocessor/22168:
16851 * doc/cpp.texi (Top): Update menu.
16852 (Alternatives to Wrapper #ifndef): New node.
16853 (Other Directives): Document deprecation.
16854 (Obsolete Features): Remove menu.
16855 (Assertions): Merge node into Obsolete Features.
16856 (Obsolete once-only headers): Move earlier; rename to Alternatives
16857 to Wrapper #ifndef.
16858 * doc/cppopts.texi: Update.
16859 * c.opt (Wdeprecated): Enable for C and ObjC.
16860 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
16861 (C++ Dialect Options): Move -Wno-deprecated from here to...
16862 (Warning Options): ... here.
16863
8ebc39d8
RG
168642008-05-13 Richard Guenther <rguenther@suse.de>
16865
16866 PR middle-end/36227
16867 * fold-const.c (fold_sign_changed_comparison): Do not allow
16868 changes in pointer-ness.
16869
ef0a7607
KK
168702008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
16871
16872 PR target/24713
16873 * config/sh/sh.c (sh_expand_prologue): Don't clear
16874 RTX_FRAME_RELATED_P for push insns.
16875
9c218cfc
AH
168762008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
16877
16878 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
16879
4c75f709
AS
168802008-05-12 Anatoly Sokolov <aesok@post.ru>
16881
16882 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
16883 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
16884 Use 'machine->is_leaf' instead of 'leaf_func_p'.
16885
fcc9fe1e
L
168862008-05-12 H.J. Lu <hongjiu.lu@intel.com>
16887
16888 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
16889 (*vec_concatv4sf_sse): This.
16890 (*sse2_concatv2si): Renamed to ...
16891 (*vec_concatv2si_sse2): This.
16892 (*sse1_concatv2si): Renamed to ...
16893 (*vec_concatv2si_sse): This.
16894 (*vec_concatv2di_rex): Renamed to ...
16895 (*vec_concatv2di_rex64): This.
16896 (*vec_concatv2si_sse4_1): New.
16897 (*vec_concatv2di_rex64_sse4_1): Likewise.
16898
162bfc7e
UB
168992008-05-12 Uros Bizjak <ubizjak@gmail.com>
16900
16901 PR rtl-optimization/36111
16902 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
16903 that was created for swappable operands.
16904
3d4e720a
ST
169052008-05-12 Samuel Tardieu <sam@rfc1149.net>
16906
16907 PR ada/36001
16908 * Makefile.in: Substitute GNATMAKE and GNATBIND.
16909 * configure.ac: Add call to ACX_PROG_GNAT.
16910
fc54bc84
VR
169112008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
16912
16913 * optc-gen.awk: Fix comment typo.
16914
2a157700
AL
169152008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
16916
16917 * pretty-print.c (pp_integer_with_precision): Use
16918 HOST_LONG_LONG_FORMAT.
16919
4e00d960
KZ
169202008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
16921
16922 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
22129589 16923
b282a8d3
L
169242008-05-10 H.J. Lu <hongjiu.lu@intel.com>
16925
16926 * config/i386/i386.c (bdesc_ptest): Removed.
16927 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
16928 (bdesc_args): Add __builtin_ia32_ptestz128,
16929 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
16930 (ix86_init_mmx_sse_builtins): Updated.
16931 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
16932 (ix86_expand_builtin): Updated.
16933
17d23165
RS
169342008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
16935
16936 * tree-cfg.c (valid_fixed_convert_types_p): New function.
16937 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
16938
d35910bf
UB
169392008-05-10 Uros Bizjak <ubizjak@gmail.com>
16940
16941 * value-prof.c (interesting_stringop_to_profile): Do not
16942 return early for BUILT_IN_MEMPCPY.
16943
17b29c0a
L
169442008-05-09 H.J. Lu <hongjiu.lu@intel.com>
16945
16946 * calls.c (expand_call): Don't use callgraph to increase
16947 preferred_stack_boundary.
16948
16949 * cgraph.h (cgraph_rtl_info): Use unsigned on
16950 preferred_incoming_stack_boundary.
16951
16952 * final.c (rest_of_clean_state): Use unsigned on
16953 preferred_stack_boundary.
16954
4822e563
TT
169552008-05-09 Tom Tromey <tromey@redhat.com>
16956
16957 PR preprocessor/22231:
16958 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
16959 proceeding.
16960
53a8f709
UB
169612008-05-09 Uros Bizjak <ubizjak@gmail.com>
16962
16963 PR tree-optimization/36129
162bfc7e 16964 * tree-ssa-ccp.c: Include value-prof.h.
53a8f709
UB
16965 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
16966 built-in function was folded to a constant.
162bfc7e 16967 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
53a8f709 16968
3f227a8c
JS
169692008-05-09 Jan Sjodin <jan.sjodin@amd.com>
16970 Sebastian Pop <sebastian.pop@amd.com>
16971
16972 * tree-scalar-evolution.c: Document instantiate_scev.
16973 (instantiate_parameters_1): Renamed instantiate_scev_1.
16974 Don't use the same loop for instantiation_loop and evolution_loop.
16975 (instantiate_scev): New.
16976 (instantiate_parameters): Moved...
16977 (resolve_mixers): Update call to instantiate_scev_1 to pass the
16978 same loop twice. Maintains the semantics for this function.
16979 * tree-scalar-evolution.h (instantiate_scev): Declare.
16980 (instantiate_parameters): ...here. Now static inline.
16981 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
16982 instead of resolve_mixers.
16983
a3e19be6
MK
169842008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
16985
16986 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
16987
1043771b
TB
169882008-05-09 Tomas Bily <tbily@suse.cz>
16989
16990 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
16991 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
16992 * tree-ssa-structalias.c (get_constraint_for): Likewise.
16993 * c-common.c (c_common_truthvalue_conversion): Likewise.
16994 * tree-object-size.c (compute_object_offset): Likewise.
16995 * tree-inline.c (estimate_num_insns_1): Likewise.
16996 * varasm.c (const_hash_1, compare_constant, copy_constant)
16997 (compute_reloc_for_constant, output_addressed_constants)
16998 (initializer_constant_valid_p): Likewise.
16999 * c-omp.c (check_omp_for_incr_expr): Likewise.
17000 * gimplify.c (gimplify_expr): Likewise.
17001 * c-typeck.c (c_finish_return): Likewise.
17002 * tree-vectorizer.c (supportable_widening_operation)
17003 (supportable_narrowing_operation): Likewise.
17004 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
17005 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
17006 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
17007 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
17008 (descr_info_loc): Likewise.
17009 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
17010 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
17011 (fold_unary): Likewise.
17012 * builtins.c (get_pointer_alignment): Likewise.
17013 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
17014 (instantiate_parameters_1): Likewise.
17015 * tree.c (expr_align, stabilize_reference): Likewise.
17016 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
17017 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
17018 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
17019 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
17020 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
162bfc7e
UB
17021 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
17022 Likewise.
1043771b
TB
17023 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
17024 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
17025 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
17026 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
17027 (forward_propagate_comparison)
17028 (tree_ssa_forward_propagate_single_use_vars): Likewise.
17029 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
17030 * emit-rtl.c (component_ref_for_mem_expr)
17031 (set_mem_attributes_minus_bitpos): Likewise.
17032 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
162bfc7e
UB
17033 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
17034 Likewise.
1043771b
TB
17035 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
17036 (build_function_call, pointer_diff, build_compound_expr)
17037 (c_finish_return): Likewise.
17038 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
162bfc7e
UB
17039 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
17040 Likewise.
1043771b
TB
17041 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
17042 * expr.c (is_aligning_offset): Likewise.
17043 * tree-ssa-alias.c (is_escape_site): Likewise.
17044 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
17045 (check_all_va_list_escapes): Likewise.
17046 * tree-ssa-loop-ivopts.c (determine_base_object)
17047 (determine_common_wider_type): Likewise.
17048 * dojump.c (do_jump): Likewise.
17049 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
17050 * tree-gimple.c (is_gimple_cast): Likewise.
17051 * fold-const.c (decode_field_reference, )
17052 (fold_sign_changed_comparison, fold_unary, fold_comparison)
17053 (fold_binary): Likewise.
17054 * tree-ssa-alias-warnings.c (find_alias_site_helper)
17055 (already_warned_in_frontend_p): Likewise.
17056 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
17057 * tree.c (really_constant_p, get_unwidened): Likewise.
17058 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
17059 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
162bfc7e
UB
17060 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
17061 Likewise.
17062 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
17063 CONVERT_EXPR_P.
1043771b
TB
17064 (CONVERT_EXPR_P): Define.
17065 (CASE_CONVERT): Define.
22129589 17066
5ba5ab9b
KZ
170672008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
17068
17069 PR middle-end/36117
162bfc7e
UB
17070 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
17071 (delete_unmarked_insns): When deleting a call, call
5ba5ab9b
KZ
17072 delete_unreachable_blocks.
17073 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
162bfc7e
UB
17074 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
17075
1353232d
RG
170762008-05-08 Richard Guenther <rguenther@suse.de>
17077
17078 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
17079 (-ftree-salias): Likewise.
17080 (salias-max-implicit-fields): Remove param documentation.
17081 (salias-max-array-elements): Likewise.
17082 * tree-pass.h (pass_create_structure_vars): Remove.
17083 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
17084 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
17085 * tree-ssa-alias.c (create_structure_vars): Remove.
17086 (gate_structure_vars): Likewise.
17087 (pass_create_structure_vars): Likewise.
17088 (gate_build_alias): Likewise.
17089 (pass_build_alias): Adjust to run always and dump the function.
17090 * common.opt (ftree-salias): Hide.
17091 * passes.c (init_optimization_passes): Remove
17092 pass_create_structure_vars, adjust comment.
17093 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
17094 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
17095 * opts.c (decode_options): Do not set flag_tree_salias.
17096 (common_handle_option): Add OPT_ftree_salias to the backward
17097 compatibility section.
17098
31de5b77
RG
170992008-05-08 Richard Guenther <rguenther@suse.de>
17100
17101 * tree-flow-inline.h (var_can_have_subvars): Move ...
17102 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
17103 * tree-flow.h (var_can_have_subvars): Remove.
17104 (push_fields_onto_fieldstack): Remove.
17105 (sort_fieldstack): Likewise.
17106 (struct fieldoff): Move ...
17107 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
17108 alias_set and base_for_components fields.
17109 (sort_fieldstack): Make static.
17110 (push_fields_onto_fieldstack): Likewise. Remove code that
17111 handles anything but RECORD_TYPEs. Remove alias_set and
17112 base_for_components handling.
17113 (create_variable_info_for): Adjust.
17114
c1a3620a 171152008-05-08 Seongbae Park <seongbae.park@gmail.com>
b70837af 17116
c1a3620a
SP
17117 * common.opt (Wframe-larger-than=): Shorten the help message
17118 to one line.
17119 * doc/invoke.texi (Wframe-larger-than=): Add more description.
17120
e49cf927 171212008-05-08 Rafael Espíndola <espindola@google.com>
04b03edb
RAE
17122
17123 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
17124 trap.
17125 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
17126 trap and that both operands are gimple values.
17127 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
17128 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
17129 is a fp operation.
17130
96c92f47
RS
171312008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
17132
17133 * read-rtl.c (join_c_conditions): Return the first string if the
17134 two strings are equal.
17135
e663da80
RS
171362008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
17137
17138 * gensupport.h (pred_data): Add a "num_codes" field.
17139 (add_predicate_code): Declare.
17140 * gensupport.c (add_predicate_code): New function.
17141 (std_pred_table): Add an "allows_const_p" field.
17142 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
17143 Remove the (incomplete) list of such codes from the codes field.
17144 (init_predicate_table): Use add_predicate_code. Add all
17145 RTX_CONST_OBJs if allows_const_p is true.
17146 * genrecog.c (process_define_predicate): Use add_predicate_code.
17147
977502ff
DD
171482008-05-08 David Daney <ddaney@avtrex.com>
17149 Richard Sandiford <rsandifo@nildram.co.uk>
22129589 17150
977502ff
DD
17151 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
17152 special case of constant zero operands.
17153 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
17154 old and new values. Special case constant zero values.
17155 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
17156 fails.
17157 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
17158 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
17159
627ab861
PB
171602008-05-08 Paolo Bonzini <bonzini@gnu.org>
17161
17162 PR target/36090
17163 * simplify-rtx.c (simplify_plus_minus): Create CONST of
17164 similar RTX_CONST_OBJ before CONST_INT.
17165
41ccb5d1
SE
171662008-05-08 Steve Ellcey <sje@cup.hp.com>
17167
17168 * stmt.c (expand_stack_restore): Change sa mode if needed.
17169
e8d6aaee
RG
171702008-05-08 Richard Guenther <rguenther@suse.de>
17171
17172 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
17173 return type to bool.
17174 (ix86_sol10_return_in_memory): Likewise.
17175 (ix86_i386elf_return_in_memory): Likewise.
17176 (ix86_i386interix_return_in_memory): Likewise.
17177 * config/i386/i386.c (ix86_return_in_memory): Likewise.
17178 (ix86_sol10_return_in_memory): Likewise.
17179 (ix86_i386elf_return_in_memory): Likewise.
17180 (ix86_i386interix_return_in_memory): Likewise.
17181
033df0b9
KT
171822008-05-08 Kai Tietz <kai.tietz@onevision.com>
17183
d7822892 17184 PR bootstrap/36180
033df0b9
KT
17185 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
17186 fndecl argument.
d7822892
UB
17187 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
17188 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
17189 declared in front.
033df0b9 17190
5611cf0b
RG
171912008-05-08 Richard Guenther <rguenther@suse.de>
17192
17193 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
17194 * tree-data-ref.h (struct dr_alias): Remove subvars field.
17195 (DR_SUBVARS): Remove.
17196 * tree-dfa.c (dump_subvars_for): Remove.
17197 (debug_subvars_for): Likewise.
17198 (dump_variable): Do not dump subvars.
17199 (remove_referenced_var): Do not remove subvars.
17200 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
17201 (lookup_subvars_for_var): Remove.
17202 (get_subvars_for_var): Likewise.
17203 (get_subvars_at): Likewise.
17204 (get_first_overlapping_subvar): Likewise.
17205 (overlap_subvar): Likewise.
17206 * tree-flow.h (subvar_t): Remove.
17207 (struct var_ann_d): Remove subvars field.
17208 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
17209 argument. Remove special handling of SFTs.
17210 (compute_tag_properties): Likewise.
17211 (set_initial_properties): Likewise.
17212 (compute_call_clobbered): Likewise.
17213 (count_mem_refs): Likewise.
17214 (compute_memory_partitions): Likewise.
17215 (compute_flow_insensitive_aliasing): Likewise.
17216 (setup_pointers_and_addressables): Likewise.
17217 (new_type_alias): Likewise.
17218 (struct used_part): Remove.
17219 (used_portions): Likewise.
17220 (struct used_part_map): Likewise.
17221 (used_part_map_eq): Likewise.
17222 (used_part_map_hash): Likewise.
17223 (free_used_part_map): Likewise.
17224 (up_lookup): Likewise.
17225 (up_insert): Likewise.
17226 (get_or_create_used_part_for): Likewise.
17227 (create_sft): Likewise.
17228 (create_overlap_variables_for): Likewise.
17229 (find_used_portions): Likewise.
17230 (create_structure_vars): Likewise.
17231 * tree.def (STRUCT_FIELD_TAG): Remove.
17232 * tree.h (MTAG_P): Adjust.
17233 (struct tree_memory_tag): Remove base_for_components and
17234 unpartitionable flags.
17235 (struct tree_struct_field_tag): Remove.
17236 (SFT_PARENT_VAR): Likewise.
17237 (SFT_OFFSET): Likewise.
17238 (SFT_SIZE): Likewise.
17239 (SFT_NONADDRESSABLE_P): Likewise.
17240 (SFT_ALIAS_SET): Likewise.
17241 (SFT_UNPARTITIONABLE_P): Likewise.
17242 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
17243 (union tree_node): Remove sft field.
17244 * alias.c (get_alias_set): Remove special handling of SFTs.
17245 * print-tree.c (print_node): Remove handling of SFTs.
17246 * tree-dump.c (dequeue_and_dump): Likewise.
17247 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
17248 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
17249 * tree-predcom.c (set_alias_info): Do not set subvars.
17250 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
17251 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
17252 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
17253 (add_vars_for_offset): Remove.
17254 (add_virtual_operand): Remove special handling of SFTs.
17255 (add_call_clobber_ops): Likewise.
17256 (add_call_read_ops): Likewise.
17257 (get_asm_expr_operands): Likewise.
17258 (get_modify_stmt_operands): Likewise.
17259 (get_expr_operands): Likewise.
17260 (add_to_addressable_set): Likewise.
17261 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
17262 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
162bfc7e 17263 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5611cf0b
RG
17264 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
17265 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
17266 (tree_node_structure): Likewise.
17267 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
17268 handling of SFTs.
17269 (find_what_p_points_to): Likewise.
17270
fb4b5171
SL
172712008-05-08 Sa Liu <saliu@de.ibm.com>
17272
17273 * config/spu/spu.md: Fixed subti3 pattern.
fb4b5171 17274
1b674de0
RG
172752008-05-08 Richard Guenther <rguenther@suse.de>
17276
17277 PR middle-end/36154
17278 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
17279 sure to create a representative for trailing arrays for PTA.
17280
b13e7b6c
RG
172812008-05-08 Richard Guenther <rguenther@suse.de>
17282
17283 PR middle-end/36172
17284 * fold-const.c (operand_equal_p): Two objects which types
17285 differ in pointerness are not equal.
17286
d7822892 172872008-05-08 Kai Tietz <kai.tietz@onevision.com>
81464b2c
KT
17288
17289 * calls.c (compute_argument_block_size): Add argument tree fndecl.
17290 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
17291 (emit_library_call_value_1): Add new variable fndecl initialized by
17292 NULL_TREE. It should be the decl type of orgfun, but this information
17293 seems not to be available here, so it uses the default calling abi.
17294 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
17295 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
17296 by TARGET_RETURN_IN_MEMORY.
17297 * config/i386/i386-interix.h: Likewise.
17298 * config/i386/i386.h: Likewise.
17299 * config/i386/i386elf.h: Likewise.
17300 * config/i386/ptx4-i.h: Likewise.
17301 * config/i386/sol2-10.h: Likewise.
17302 * config/i386/sysv4.h: Likewise.
17303 * config/i386/vx-common.h: Likewise.
17304 * config/cris/cris.h: Removed #if 0 clause.
d7822892 17305 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
81464b2c
KT
17306 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
17307 argument.
17308 (ix86_sol10_return_in_memory): Likewise.
17309 (ix86_i386elf_return_in_memory): New.
17310 (ix86_i386interix_return_in_memory): New.
17311 * config/mt/mt-protos.h (mt_return_in_memory): New.
17312 * config/mt/mt.c: Likewise.
17313 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
17314 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
17315 * config/bfin/bfin.h: Likewise.
17316 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
17317 argument.
17318 * config/bfin/bfin.c: Likewise.
17319 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
17320 * config/alpha/unicosmk.h: Likewise.
17321 * config/i386/cygming.h: Likewise.
17322 * config/iq2000/iq2000.h: Likewise.
17323 * config/mips/mips.h: Likewise.
17324 * config/mn10300/mn10300.h: Likewise.
17325 * config/rs6000/rs6000.h: Likewise.
17326 * config/score/score.h: Likewise.
17327 * config/spu/spu.h: Likewise.
17328 * config/v850/v850.h: Likewise.
17329 * defaults.h: Likewise.
17330 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
d7822892
UB
17331 * expr.c (emit_block_move): Adjust use of
17332 OUTGOING_REG_PARM_STACK_SPACE.
81464b2c
KT
17333 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
17334 OUTGOING_REG_PARM_STACK_SPACE.
17335 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
17336
4218dc2d
JJ
173372008-05-08 Jakub Jelinek <jakub@redhat.com>
17338
17339 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
17340 on OMP_RETURN for OMP_FOR.
17341
1f16b47c
JJ
17342 PR debug/35896
17343 * dwarf2out.c (dw_expand_expr, common_check): Removed.
17344 (fortran_common): New function.
17345 (gen_variable_die): Call fortran_common instead of common_check,
17346 adjust for it returning tree instead of rtx. Formatting.
17347
4218dc2d 173482008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
becfd6e5 17349
d7822892
UB
17350 PR rtl/7335
17351 PR rtl/33826
17352 * see.c (see_copy_insn): Copy new pure const attributes for new call.
17353 * c-decl.c (merge_decls): Ditto.
17354 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
17355 to RTL_CONST_OR_PURE_CALL_P.
17356 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
17357 Initialized DECL_LOOPING_CONST_PURE.
17358 (process_call_operands): Set tree_side_effects properly.
17359 * tree.h (TREE_READONLY_DECL_P): Removed.
17360 (DECL_IS_PURE): Renamed to DECL_PURE_P.
17361 (DECL_LOOPING_OR_CONST_P): New macro.
17362 (struct tree_function_decl): Added looping_const_or_pure_p.
17363 (ECF_*) Renumbered.
17364 (ECF_LOOPING_OR_CONST_P): New macro.
17365 * rtlanal.c (pure_const_p): Removed.
17366 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
17367 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
17368 to RTL_CONST_CALL_P.
17369 * ipa-pure-const.c (pure_const_state_e): Added looping field.
17370 (check_decl, check_tree, check_call, scan_function): Initialize
17371 looping.
17372 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
17373 (static_execute): Set looping true for recursive functions.
17374 Undo setting state to IPA_NEITHER for recursive functions.
22129589 17375 * cse.c (cse_insn):
d7822892 17376 * ifcvt.c (noce_can_store_speculate_p): Changed
22129589 17377 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
d7822892
UB
17378 RTL_CONST_OR_PURE_CALL_P.
17379 * dse.c (scan_insn): Ditto.
17380 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
17381 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
17382 RTL_CONST_OR_PURE_CALL_P.
17383 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
17384 pure_call_p to RTL_CONST_CALL_P.
17385 * gimplify.c (gimplify_call_expr): Clear side effects for
17386 non-looping pure and constant calls.
17387 * calls.c (emit_call_1): Set rtl flags from ecf flags.
17388 (flags_from_decl_or_type): Set ecf flags from decl flags.
17389 (initialize_argument_information): Turn off
17390 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
17391 Change const to pure if callee_copies is true rather than just
17392 turning off const.
17393 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
17394 way of marking pure calls.
17395 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
17396 Remove hack that was supposed to fix pr7335 and remove old
17397 way of marking pure calls.
17398 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
17399 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
17400 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
17401 RTL_CONST_OR_PURE_CALL_P.
17402 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
17403 * loop-invariant.c (find_exits, find_invariant_bb): Changed
17404 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
17405 * sched-deps.c (schedule_analyze): Ditto.
17406 * rtl.h (struct rtx_def): Use call field, unchanging field, and
17407 return_val field of calls to represent pure and const function info.
17408 (CONST_OR_PURE_CALL_P): Deleted macro.
17409 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
17410 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
17411 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
17412 TREE_READONLY.
17413 * tree-optimize.c (execute_fixup_cfg): Added test for
17414 ECF_LOOPING_CONST_OR_PURE.
17415 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
17416 DECL_PURE_P.
17417 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
17418 effects for looping pure or const calls.
22129589 17419 (verify_gimple_expr): Added verification code.
d7822892
UB
17420 * config/alpha/alpha.c (alpha_legitimize_address,
17421 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
17422 RTL_CONST_CALL_P.
17423 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
17424 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
17425 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
17426 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
17427 RTL_CONST_OR_PURE_CALL_P.
17428 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
17429 and const calls to be deleted.
becfd6e5 17430
d7822892 174312008-05-07 Uros Bizjak <ubizjak@gmail.com>
ffbaf337
UB
17432
17433 PR target/35714
17434 * config/i386/mmx.md (mmx_subv2sf3): New expander.
17435 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
17436 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
17437 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
17438 to handle nonimmediate operands.
17439 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
17440 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
17441 to handle nonimmediate operands.
17442 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
17443 (mmx_pmulhrwv4hi3): New expander. Use
17444 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17445 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
17446 (sse2_umulv1siv1di3): New expander. Use
17447 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17448 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
17449 (mmx_eq<mode>3): New expander. Use
17450 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17451 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
17452 (mmx_uavgv8qi3): New expander. Use
17453 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17454 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
17455 (mmx_uavgv4hi3): New expander. Use
17456 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17457
17458 * config/i386/sse.md
3a3f9d87 17459 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17460 to handle nonimmediate operands.
3a3f9d87 17461 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17462 to handle nonimmediate operands.
3a3f9d87 17463 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17464 to handle nonimmediate operands.
3a3f9d87 17465 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17466 to handle nonimmediate operands.
3a3f9d87 17467 (sse2_unpckhpd_exp): New expander. Use
ffbaf337 17468 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 17469 (sse2_unpcklpd_exp): New expander. Use
ffbaf337 17470 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 17471 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17472 to handle nonimmediate operands.
ffbaf337
UB
17473 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
17474 to handle nonimmediate operands.
17475 (*sse2_<plusminus_insn><mode>3): Rename from
17476 sse2_<plusminus_insn><mode>3 insn pattern.
17477 (sse2_<plusminus_insn><mode>3): New expander. Use
17478 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17479 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
17480 (sse2_umulv2siv2di3): New expander. Use
17481 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17482 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
17483 (sse4_1_mulv2siv2di3): New expander. Use
17484 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17485 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
17486 (sse2_pmaddwd): New expander. Use
17487 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17488 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
17489 (sse2_eq<mode>3): New expander. Use
17490 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17491 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
17492 (sse4_1_eqv2di3): New expander. Use
17493 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17494 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
17495 (sse2_uavgv16qi3): New expander. Use
17496 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17497 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
17498 (sse2_uavgv16qi3): New expander. Use
17499 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17500 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
17501 (sse2_uavgv8hi3): New expander. Use
17502 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17503 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
17504 (ssse3_pmulhrswv8hi3): New expander. Use
17505 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17506 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
17507 (ssse3_pmulhrswv4hi3): New expander. Use
17508 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17509
17510 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
17511 (<sse>_vmmul<mode>3): Ditto.
17512 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
17513 (divv2df3): Ditto.
17514 (ssse3_pmaddubsw128): Use register_operand for operand 1.
17515 (ssse3_pmaddubsw): Ditto.
17516
3a3f9d87
UB
17517 * config/i386/i386.c (struct_builtin_description)
17518 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
17519 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
17520 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
17521 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
17522 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
17523 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
17524 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
17525 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
17526 (ix86_fixup_binary_operands): Assert that src1
ffbaf337
UB
17527 and src2 must have the same mode when swapped.
17528 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
17529 and ix86_binary_operator_ok. Do not force operands in registers
17530 when optimizing.
17531
95622280
JH
175322008-05-07 Jan Hubicka <jh@suse.cz>
17533
17534 * cgraph.c (dump_cgraph_node): Update.
17535 * cgraph.h (cgraph_local_info): Break out inline summary.
17536 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
17537 hook.
17538 * ipa-inline (inline_summary): New accestor function.
17539 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
17540 cgraph_decide_inlining, compute_inline_parameters): Update.
17541 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
17542
96fcacb7
MK
175432008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
17544
17545 Cleanup ColdFire scheduling support and add V4 pipeline model.
17546
17547 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
17548 (define_attr cpu): Add cfv4 value.
17549 (define_attr type, define_attr type1): Merge into a single 'type'
17550 attribute. Update all uses.
17551 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
17552 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
17553 Update all uses.
17554 (define_attr opx_mem, define_attr opy_mem): Remove.
17555 (define_attr op_mem): Clean up, update comment.
17556 (define_attr size): Use specific values instead of general int.
17557 (define_attr guess, define_attr split): Remove. Update all uses.
17558 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
17559 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
17560 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
17561 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
17562 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
17563 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
17564 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
17565 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
17566 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
17567 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
17568 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
17569 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
17570 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
17571 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
17572 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
17573 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
17574 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
17575 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
17576 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
17577 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
17578 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
17579 Update or set attributes.
17580 (stack_tie): New fake instruction.
17581
17582 * config/m68k/m68k.h (TUNE_CFV4): New macro.
17583 (m68k_sched_attr_size): Update declaration.
17584 (m68k_sched_attr_type2): Remove.
17585 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
17586 Declare new bypass predicates.
17587
17588 * config/m68k/m68k.c (m68k_sched_issue_rate,
17589 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
17590 implementations.
17591 (TARGET_SCHED_ISSUE_RATE,
17592 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
17593 (override_options): Handle scheduling for ColdFire V4 core.
17594 (m68k_expand_prologue): Emit stack_tie.
17595 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
17596 'OP_TYPE_FPN'. Update all uses.
17597 (sched_guess_p): Remove.
17598 (sched_address_type): Handle symbolic addresses.
17599 (sched_get_operand): New static function.
17600 (sched_operand_type): Merge into sched_attr_op_type.
17601 (sched_attr_op_type): Handle FP registers, handle quick constants,
17602 update.
17603 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
17604 (m68k_sched_attr_size): Update. Move logic to ...
17605 (sched_get_attr_size_int): New static function.
17606 (sched_get_opxy_mem_type): New static function.
17607 (m68k_sched_attr_op_mem): Update.
17608 (m68k_sched_attr_type2): Remove.
17609 (sched_cfv4_bypass_data): New static variable.
17610 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
17611 (m68k_sched_issue_rate): Implement scheduler hook.
17612 (struct _sched_ib: enabled_p): New field.
17613 (m68k_sched_variable_issue): Update. Handle V4.
17614 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
17615 sched_dump_class_func_t, sched_dump_split_class,
17616 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
17617 sched_dump_dfa_class, m68k_sched_dump): Remove.
17618 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
17619 hook.
17620 (m68k_sched_init_global): Remove statisctics dumping, introduce
17621 sanity check that all instructions have pipeline reservations. Handle
17622 ColdFire V4 core.
17623 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
17624 Handle ColdFire V4 core.
17625 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
17626 New static functions.
17627 (m68k_sched_address_bypass_p): New bypass predicate.
17628 (sched_get_indexed_address_scale): New static function.
17629 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
17630
17631 * cf.md: Update comments.
17632 (define_attr type2): Remove. Use 'type' attribute instead.
17633 Update all uses.
17634 (cf_ib): Rename to cfv123_ib. Update all uses.
17635 (cf_oep): Rename to cfv123_oep. Update all uses.
17636 (cf_chr): Rename to cfv123_chr. Update all uses.
17637 (cf_mem): Rename to cfv123_mem. Update all uses.
17638 (cf_mac): Move to more appropriate place.
17639 (cfv123_guess): New automaton and cpu_unit.
17640 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
17641 Update uses of 'size' attribute. Handle before reload scheduling.
17642 (cfv123_guess): New dummy reservation for unhandled instructions.
17643 (cfv4_*): Pipeline description of ColdFire V4 core.
17644 (ignore): New reservation to handle 'ignore' type.
17645
2ee510b4
ILT
176462008-05-07 Ian Lance Taylor <iant@google.com>
17647
17648 PR middle-end/36013
17649 * gimplify.c (find_single_pointer_decl_1): Don't look through
17650 indirections.
17651 (find_single_pointer_decl): Adjust comments.
17652
c18c98c0
JJ
176532008-05-07 Jakub Jelinek <jakub@redhat.com>
17654
f61edbf6
JJ
17655 PR middle-end/36137
17656 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
17657 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
17658
c18c98c0
JJ
17659 PR middle-end/36106
17660 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
17661 integral type rather than floating point, then VIEW_CONVERT_EXPR
17662 to the floating point type.
17663
c18c98c0 176642008-05-07 Uros Bizjak <ubizjak@gmail.com>
537d4fa6
UB
17665
17666 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
17667 TFmode op0 to register.
17668
5f04ff80
AM
176692008-05-07 Alan Modra <amodra@bigpond.net.au>
17670
17671 * c-decl.c (grokdeclarator): Comment typo.
17672
c6c6b7aa
AH
176732008-05-06 Aldy Hernandez <aldyh@redhat.com>
17674
17675 * tree-flow.h: Remove prototype for computed_goto_p.
17676 * tree-cfg.c (computed_goto_p): Make static.
17677
4317a2fa
L
176782008-05-06 H.J. Lu <hongjiu.lu@intel.com>
17679
17680 PR target/35657
d0b48c67 17681 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4317a2fa
L
17682 (contains_aligned_value_p): This. Handle _Decimal128.
17683 (ix86_function_arg_boundary): Only align _Decimal128 to its
17684 natural boundary and handle it properly.
17685
c43f07af
MJ
176862008-05-06 Martin Jambor <mjambor@suse.cz>
17687
4317a2fa
L
17688 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
17689 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
17690 (ipcp_method_set_orig_node): Removed.
17691 (ipcp_cval_get_cvalue_type): Removed.
17692 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
17693 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
17694 (ipcp_cval_set_cvalue_type): Removed.
17695 (ipcp_cval_get_cvalue): Removed.
17696 (ipcp_cval_set_cvalue): Removed.
17697 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
17698 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
17699 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
17700 (ipcp_cval_meet): Renamed to ipa_lattice_meet
17701 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
17702 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
17703 (ipcp_get_ith_lattice): Changed parameters.
17704 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
17705 (ipcp_lattice_from_jfunc): Changed parameters.
c43f07af
MJ
17706 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
17707 (ipcp_method_cval_print): Added temporary variable info.
17708 (ipcp_redirect): Removed already unused local variable caller.
17709 (ipcp_redirect): New temporary variable orig_callee_info
17710 (ipcp_redirect): Removed newly unused local variable callee.
17711 (ipcp_redirect): Removed (a bit confusing) local variable type.
17712 (ipcp_insert_stage): Added local variable info.
22129589 17713 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
c43f07af
MJ
17714 renamed too
17715 (ipcp_formal_create): Removed.
17716 (ipcp_method_cval_set): Removed.
17717 (ipcp_propagate_stage): Renamed lattice variables.
17718 (ipcp_method_cval_set_cvalue_type): Removed.
17719 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
22129589 17720 (ipcp_print_all_lattices): Changed printed strings to refer to
c43f07af
MJ
17721 lattices rather than cvals.
17722 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
17723 (ipcp_propagate_const): Changed formal parameters.
17724 (build_const_val): Changed formal parameters.
17725 (ipcp_insert_stage): Removed useless variable cvalue
17726 (build_const_val): Changed formal parameters.
17727 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
17728 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
17729 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
17730 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
22129589 17731 (ipcp_print_func_profile_counts): Changed string from "method" to
c43f07af
MJ
17732 "function"
17733 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
17734 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
17735 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
17736 (ipcp_structures_print): Renamed to ipcp_print_all_structures
17737 (ipcp_profile_print): Renamed to ipcp_print_profile_data
17738 (ipcp_lat_is_const): Changed parameters and made inline.
17739 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
17740 (ipcp_redirect): Renamed to ipcp_need_redirect_p
22129589 17741 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
c43f07af
MJ
17742 the predicate condition directly
17743 (ipcp_propagate_stage): Added local variable args. Removed local
17744 variable callee. (Both are mere code simplifications.)
17745 (ipcp_method_dont_insert_const): Renamed to
17746 ipcp_node_not_modifiable_p.
17747 (ipcp_node_not_modifiable_p): Made inline.
17748 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
17749 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
17750 (ipcp_print_all_lattices): Removed variable cvalue
17751 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
17752 Updated comments.
17753
2b9d6cf3
OH
177542008-05-06 Olivier Hainque <hainque@adacore.com>
17755
17756 * tree-sra.c (try_instantiate_multiple_fields): Early return
17757 if field has POINTER_TYPE.
17758
18efb179
KT
177592008-05-06 Kai Tietz <kai.tietz@onevision.com>
17760
17761 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
17762 by using 'q' specifier for instruction.
17763 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
17764
38ce04d9
AS
177652008-05-06 Anatoly Sokolov <aesok@post.ru>
17766
17767 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
17768 Change mode of zero_extract from QImode to HImode.
17769 (sign bit tests peepholes): (Ditto.).
17770
333d8f61
UB
177712008-05-06 Uros Bizjak <ubizjak@gmail.com>
17772
17773 * config/i386/mmx.md: Remove double backslashes from asm templates.
d0b48c67 17774 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
333d8f61
UB
17775 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
17776 to handle nonimmediate operands.
d0b48c67 17777 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
333d8f61
UB
17778 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
17779 to handle nonimmediate operands.
d0b48c67
UB
17780 (*mmx_<code>v2sf3_finite): New insn pattern.
17781 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
333d8f61
UB
17782 (mmx_<code>v2sf3): New expander. Use
17783 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17784 (mmx_<plusminus_insn><mode>3): New expander. Use
17785 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17786 (*mmx_<plusminus_insn><mode>3): New insn pattern.
333d8f61
UB
17787 (mmx_add<mode>3): Removed.
17788 (mmx_ssadd<mode>3): Ditto.
17789 (mmx_usadd<mode>3): Ditto.
17790 (mmx_sub<mode>3): Ditto.
17791 (mmx_sssub<mode>3): Ditto.
17792 (mmx_ussub<mode>3): Ditto.
d0b48c67 17793 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
333d8f61
UB
17794 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
17795 to handle nonimmediate operands.
d0b48c67 17796 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
333d8f61
UB
17797 insn pattern.
17798 (mmx_smulv4hi3_highpart): New expander. Use
17799 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17800 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
333d8f61
UB
17801 insn pattern.
17802 (mmx_umulv4hi3_highpart): New expander. Use
17803 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17804 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
333d8f61
UB
17805 (mmx_<code>v4hi3): New expander. Use
17806 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17807 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
333d8f61
UB
17808 (mmx_<code>v8qi3): New expander. Use
17809 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17810 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
333d8f61
UB
17811 (mmx_<code><mode>3): New expander. Use
17812 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17813
3716f233
JH
178142008-05-05 Jan Hubicka <jh@suse.cz>
17815
17816 PR tree-optimization/36118
17817 * passes.c (pass_init_dump_file): Fix dump header.
17818
1aee3ab6
AP
178192008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
17820
17821 PR middle-end/36141
333d8f61
UB
17822 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
17823 VCE for function decls.
1aee3ab6 17824
0d07fcad
L
178252008-05-05 H.J. Lu <hongjiu.lu@intel.com>
17826
17827 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
17828
d1c3b587
L
178292008-05-05 H.J. Lu <hongjiu.lu@intel.com>
17830
17831 * config/i386/i386.md (sat_plusminus): New.
17832 (plusminus_insn): Likewise.
17833 (plusminus_mnemonic): Likewise.
17834 (addsub): Removed.
17835 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
17836 (*<addsub><mode>3_cc_overflow): Renamed to ...
17837 (*<plusminus_insn><mode>3_cc_overflow): This.
17838 (*<addsub>si3_zext_cc_overflow): Renamed to ...
17839 (*<plusminus_insn>si3_zext_cc_overflow): This.
17840
0d07fcad 17841 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
d1c3b587
L
17842 (<plusminus_insn><mode>3): This.
17843 (*<addsub><mode>3): Renamed to ...
17844 (*<plusminus_insn><mode>3): This.
17845 (<sse>_vm<addsub><mode>3): Renamed to ...
17846 (<sse>_vm<plusminus_insn><mode>3): This.
17847 (sse3_h<addsub>v4sf3): Renamed to ...
17848 (sse3_h<plusminus_insn>v4sf3): This.
17849 (sse3_h<addsub>v2df3): Renamed to ...
17850 (sse3_h<plusminus_insn>v2df3): This.
17851 (<plusminus_insn><mode>3): New.
17852 (*<plusminus_insn><mode>3): Likewise.
17853 (sse2_<plusminus_insn><mode>3): Likewise.
17854 (add<mode>): Removed.
17855 (*add<mode>3): Likewise.
17856 (sse2_ssadd<mode>3): Likewise.
17857 (sse2_usadd<mode>3): Likewise.
17858 (sub<mode>3): Likewise.
17859 (*sub<mode>3): Likewise.
17860 (sse2_sssub<mode>3): Likewise.
17861 (sse2_ussub<mode>3): Likewise.
17862
23688481
BK
178632008-05-05 Benjamin Kosnik <bkoz@redhat.com>
17864
d1c3b587
L
17865 * gthr-single.h: Add in required interface elements as per gthr.h.
17866 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
17867 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
22129589 17868 Generalize UNUSED macro.
d1c3b587
L
17869 (__gthread_once): Add.
17870 (__gthread_key_create): Add.
333d8f61 17871 (__gthread_key_delete): Add.
d1c3b587 17872 (__gthread_getspecific): Add.
333d8f61 17873 (__gthread_setspecific): Add.
22129589 17874
e06f0ff9
AP
178752008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
17876
23688481
BK
17877 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
17878 the same size types for the indirect reference on the rhs, then
17879 create a VCE.
e06f0ff9 17880
8c32cbc9
UB
178812008-05-05 Uros Bizjak <ubizjak@gmail.com>
17882
17883 * config/i386/i386.md
17884 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
17885 one insn template instead of template series.
17886 (*xordi_1_rex64): Ditto.
17887 (*xordi_2_rex64): Ditto.
17888
06d10aaf
IR
178892008-05-05 Ira Rosen <irar@il.ibm.com>
17890
8c32cbc9 17891 PR tree-optimization/36119
06d10aaf
IR
17892 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
17893 in case of SLP.
17894
24c05141
JH
178952008-06-04 Jan Hubicka <jh@suse.cz>
17896
17897 tree-optimization/36100
17898 * tree-pass.h (pass_O0_always_inline): Declare.
17899 * ipa-inline.c (inline_transform): Remove dead code.
17900 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
17901 pass_O0_always_inline): New.
17902 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
17903
8fa8585d
KT
179042008-05-04 Kai Tietz <kai.tietz@onevision.com>
17905
17906 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
17907 mnemonic in this_param move for TARGET_64BIT.
17908
62d2739a
UB
179092008-05-04 Uros Bizjak <ubizjak@gmail.com>
17910
17911 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
17912 (*strmovsi_rex_1): Ditto.
17913 (*strsetsi_1): Ditto.
17914 (*strsetsi_rex_1): Ditto.
17915
17916 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
17917 adddicc expanders using SWI mode iterator.
17918
4d31c3e1
L
179192008-05-04 H.J. Lu <hongjiu.lu@intel.com>
17920
17921 PR target/36121
62d2739a
UB
17922 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
17923 argument handling.
4d31c3e1 17924
5f7ca34b
DM
179252008-05-04 David S. Miller <davem@davemloft.net>
17926
17927 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
17928 (sparc*-*-linux*): Use linux.h in tm_file.
17929 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
17930 compiler defaulting to 32-bit.
17931 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
17932 no longer needed.
17933 * config/sparc/linux.h: Remove definitions now obtained
17934 properly from linux.h
17935 * config/sparc/linux64.h: Likewise.
17936 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
17937 don't want this setting for 32-bit builds in a biarch compiler.
17938 * doc/install.texi: Add sparc-linux to list of targets
17939 supporting --enable-targets=all.
17940
5a3db6d5
AP
179412008-05-03 Andrew Pinski <pinskia@gmail.com>
17942
17943 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
17944
3c7ae64a
L
179452008-05-03 H.J. Lu <hongjiu.lu@intel.com>
17946
17947 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
17948 after V4SI_FTYPE_V8HI.
17949 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
17950 case V4SI_FTYPE_V2DF.
17951
4218dc2d 179522008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
75643ab1
KZ
17953
17954 * doc/invoke.texi (max-flow-memory-locations): Removed.
17955 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
22129589 17956
621b5ed6
RG
179572008-05-03 Richard Guenther <rguenther@suse.de>
17958
17959 PR middle-end/34973
17960 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
17961
11835124
DM
179622008-05-02 David S. Miller <davem@davemloft.net>
17963
17964 * config.gcc (need_64bit_hwint): Document libcpp dependency.
17965
e4d35515
SB
179662008-05-02 Simon Baldwin <simonb@google.com>
17967
17968 PR bootstrap/36108
17969 * c-common.h (warn_array_subscript_range): Removed.
17970 * c-common.c (warn_array_subscript_range): Ditto.
17971 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
17972 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
17973
bb1418c1
L
179742008-05-02 H.J. Lu <hongjiu.lu@intel.com>
17975
17976 * config/i386/i386.c (ix86_special_builtin_type): New.
17977 (bdesc_special_args): Likewise.
17978 (ix86_expand_special_args_builtin): Likewise.
17979 (ix86_init_mmx_sse_builtins): Updated.
17980 (ix86_expand_builtin): Updated.
17981 (ix86_expand_store_builtin): Removed.
17982 (ix86_expand_unop_builtin): Likewise.
17983
17984 * config/i386/mm3dnow.h (__v2sf): Moved to ...
17985 * config/i386/mmintrin.h (__v2sf): Here.
17986
17987 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
17988 const __v2sf.
17989 (_mm_loadl_pi): Likewise.
17990 (_mm_storeh_pi): Replace __v2si with __v2sf.
17991 (_mm_storel_pi): Likewise.
17992
17993 * doc/extend.texi: Correct __builtin_ia32_loadhps,
17994 __builtin_ia32_loadlps, __builtin_ia32_storehps,
17995 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
17996 __builtin_ia32_loadlpd.
17997
179982008-05-02 H.J. Lu <hongjiu.lu@intel.com>
17999
18000 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
18001 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
18002 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
18003 (ix86_init_mmx_sse_builtins): Updated.
18004 (ix86_expand_args_builtin): Likewise.
18005 (ix86_expand_builtin): Likewise.
18006 (ix86_expand_unop1_builtin): Renamed to ...
18007 (ix86_expand_unop_vec_merge_builtin): This.
18008
a12f79f5
JH
180092008-05-01 Jan Hubicka <jh@suse.cz>
18010
18011 PR bootstrap/36100
18012 * ipa-inline.c (inline_generate_summary): Make static.
18013 (inline_transform): Do not call inlining at -O0; make static.
18014 * passes.c (execute_todo): Add sanity check.
18015 (execute_one_ipa_transform_pass): Execute proper flags.
18016
b5487346
EB
180172008-05-01 Eric Botcazou <ebotcazou@adacore.com>
18018
18019 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
18020 (DECL_NONADDRESSABLE_P): Likewise.
18021 * alias.c (record_component_aliases): Fix comment.
18022
ca873b0e
SB
180232008-05-01 Simon Baldwin <simonb@google.com>
18024
18025 * c-common.h (warn_array_subscript_range): New function.
18026 * c-common.c (warn_array_subscript_range): Ditto.
18027 * tree-vrp.c (check_array_ref): Corrected code to agree with
18028 comment, ignoring only arrays of size 0 or size 1.
18029 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
18030
99c25ac1
L
180312008-05-01 H.J. Lu <hongjiu.lu@intel.com>
18032
18033 * config/i386/i386.c (ix86_builtin_type): Replace
18034 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
18035 (bdesc_args): Updated.
18036 (ix86_init_mmx_sse_builtins): Likewise.
18037 (ix86_expand_args_builtin): Likewise.
18038
18039 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
18040 with __v1di.
18041
18042 * doc/extend.texi: Correct __builtin_ia32_palignr.
18043
a44acfb9
L
180442008-05-01 H.J. Lu <hongjiu.lu@intel.com>
18045
18046 PR target/36095
18047 * config/i386/i386.c (bdesc_crc32): Removed.
18048 (ix86_expand_crc32): Likewise.
18049 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
18050 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
18051 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
18052 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
18053 UINT_FTYPE_UINT_UCHAR.
18054 (bdesc_args): Updated. Add crc32 builtins.
18055 (ix86_init_mmx_sse_builtins): Updated.
18056 (ix86_expand_args_builtin): Updated to support subreg.
18057
18058 * doc/extend.texi: Correct __builtin_ia32_crc32di.
18059
17653c00
JH
180602008-05-01 Jan Hubicka <jh@suse.cz>
18061
18062 * tree-pass.h (opt_pass): Add IPA_PASS.
18063 (varpool_node, cgraph_node): Forward declare.
18064 (ipa_opt_pass): Define.
18065 (pass_ipa_inline): Turn into ipa_opt_pass.
18066 (pass_apply_inline): Remove.
18067 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
18068 (apply_inline): Turn into ....
18069 (inline_transform): ... this one.
18070 (inline_generate_summary): New function.
18071 (pass_apply_inline): Remove.
18072 * function.h (ipa_opt_pass): Forward declare structure; typedef;
18073 vector.
18074 (struct function): Add ipa_transforms_to_apply.
18075 * passes.c (register_one_dump_file): Work on IPA_PASS.
18076 (init_optimization_passes): Remove pass_inline_parameters and
18077 pass_apply_inline.
18078 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
18079 (execute_one_pass) ... here; apply transforms when possible.
18080 (add_ipa_transform_pass, execute_ipa_summary_asses,
18081 execute_one_ipa_transform_pass): New.
18082 (execute_ipa_pass_list): Update for IPA_PASS type.
18083
bd9513ea
L
180842008-05-01 H.J. Lu <hongjiu.lu@intel.com>
18085
18086 * config/i386/i386.c (ix86_builtin_type): Add
18087 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
18088 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
18089 (bdesc_args): Add SSE4a builtins.
18090 (ix86_init_mmx_sse_builtins): Updated.
18091 (ix86_expand_args_builtin): Likewise.
18092 (ix86_expand_builtin): Likewise.
18093
858e5e79
L
180942008-05-01 H.J. Lu <hongjiu.lu@intel.com>
18095
18096 * config/i386/i386.c (ix86_builtin_type): Add
18097 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
18098 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
18099 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
18100 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
18101 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
18102 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
18103 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
18104 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
18105 and DI_FTYPE_DI_DI_INT.
18106 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
18107 (ix86_init_mmx_sse_builtins): Updated.
18108 (ix86_expand_args_builtin): Likewise.
18109 (ix86_expand_builtin): Likewise.
18110 (ix86_expand_binop_imm_builtin): Removed.
18111
18112 * doc/extend.texi: Correct __builtin_ia32_palignr128.
18113
a91ded4b
RG
181142008-04-30 Richard Guenther <rguenther@suse.de>
18115
18116 PR tree-optimization/32921
18117 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
18118
ad516a74
RS
181192008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
18120
18121 * config/arm/arm.c (arm_unwind_emit): Use
18122 crtl->all_throwers_are_sibcalls instead of
18123 cfun->all_throwers_are_sibcalls.
18124 (arm_output_fn_unwind): Likewise.
18125 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
18126 instead of cfun->uses_pic_offset_table.
18127 (frv_expand_prologue): Likewise.
18128 (frv_frame_pointer_required): Likewise.
18129 (frv_expand_fdpic_call): Likewise.
18130 (frv_emit_movsi): Likewise.
18131 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
18132 cfun->returns_pcc_struct instead of
18133 current_function_returns_pcc_struct.
18134 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
18135 instead of cfun->calls_eh_return.
18136 (m32c_pushm_popm): Likewise.
18137 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
18138 "extern" declaration.
18139
00d382a8
RG
181402008-04-30 Richard Guenther <rguenther@suse.de>
18141
18142 PR tree-optimization/21636
18143 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
18144 constant address.
18145 (evaluate_stmt): Print the likely value.
18146 (ccp_visit_stmt): Avoid excessive vertical spacing.
18147
e49cf927 181482008-04-30 Rafael Espíndola <espindola@google.com>
45e18420
RAE
18149
18150 * builtins.c (fold_call_expr): Return realret.
18151 * tree-ssa-threadedge.c
18152 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
18153 __builtin_object_size.
18154
fe7df9c4
SP
181552008-04-30 Seongbae Park <seongbae.park@gmail.com>
18156
18157 * gcc.c (wrapper_string): New variable.
18158 (insert_wrapper): New function.
18159 (execute): New option -wrapper.
18160 * doc/invoke.texi (Overall Options): New driver option -wrapper.
18161
18724e30
NF
181622008-04-30 Nathan Froyd <froydnj@codesourcery.com>
18163
62d2739a
UB
18164 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
18165 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
18166 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
18167 from...
18168 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
18169 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
18170 config/rs6000/e500crtres64gprctr.asm,
18171 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
18172 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
18173 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
18174 config/rs6000/e500crtsav64gprctr.asm,
18175 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
18176 config/rs6000/e500crtsavg64gprctr.asm: New files.
18177 * config/rs6000/t-ppccomm: Add build rules for new files.
18178 (LIB2FUNCS_STATIC_EXTRA): Add new files.
18179 * config/rs6000/t-netbsd: Add build rules for new files.
18180 (LIB2FUNCS_STATIC_EXTRA): New variable.
18181 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
18182 (CRTSAVRES_DEFAULT_SPEC): Likewise.
18183 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18724e30 18184
1b667c82
L
181852008-04-30 H.J. Lu <hongjiu.lu@intel.com>
18186
18187 * config/i386/i386.c (ix86_builtin_type): Add
18188 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
18189 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
18190 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
18191 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
18192 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
18193 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
18194 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
18195 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
18196 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
18197 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
18198 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
18199 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
18200 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
18201 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
18202 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
18203 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
18204 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
18205 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
18206 V1DI_FTYPE_V2SI_V2SI.
18207 (bdesc_2arg): Moved to ...
18208 (bdesc_args): Here.
18209 (ix86_init_mmx_sse_builtins): Updated.
18210 (ix86_expand_args_builtin): Updated. Take a pointer
18211 to const struct builtin_description. Handle comparison
18212 builtin functions.
62d2739a 18213 (ix86_expand_sse_compare): Take a new argument for swapping operands.
1b667c82
L
18214 (ix86_expand_builtin): Updated.
18215
18216 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
18217 (ssse3_pmaddubsw128): This.
18218 (ssse3_pmaddubswv4hi3): Renamed to ...
18219 (ssse3_pmaddubsw): This.
18220
62d2739a 18221 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1b667c82 18222 (__builtin_ia32_packssdw128): Likewise.
62d2739a 18223 (__builtin_ia32_packuswb128): Likewise.
1b667c82
L
18224 (__builtin_ia32_pmaddubsw): Likewise.
18225 (__builtin_ia32_pmaddubsw128): Likewise.
18226
d7b339dd
RG
182272008-04-30 Richard Guenther <rguenther@suse.de>
18228
18229 PR tree-optimization/14847
18230 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
18231 (recognize_bits_test): Use it.
18232 (recognize_single_bit_test): Likewise.
18233
6a3f3fea
MJ
182342008-04-30 Martin Jambor <mjambor@suse.cz>
18235
18236 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
18237 instead of setting number of formal parameters to zero.
22129589 18238 (ipcp_init_stage): Do not set the number of actual parameters to zero
6a3f3fea
MJ
18239 either.
18240 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
18241 which are called with variable number of arguments.
18242 (ipcp_insert_stage): Explicitely skipping all nodes which are
18243 called with variable number of arguments.
22129589 18244 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
6a3f3fea
MJ
18245 number of parameters.
18246
18247 * ipa-prop.h (struct ipa_node_params): Added flag
18248 called_with_var_arguments
18249 (ipa_set_param_count): Added. Changed sole setter to use it.
18250 (ipa_get_param_count): Added. All readers of param_count
18251 converted to use it instead.
18252 (ipa_set_called_with_variable_arg): Added.
18253 (ipa_is_called_with_var_arguments): Added.
18254 (ipa_get_ith_param): Added. All readers of param_decls converted
18255 to use it instead.
22129589
AS
18256 (ipa_set_cs_argument_count): Added, sole writer to argument_count
18257 changed to use it.
6a3f3fea
MJ
18258 (ipa_get_cs_argument_count): Added, all readers of argument_count
18259 changed to cal it.
22129589 18260 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
6a3f3fea 18261 to use it.
22129589 18262
6a3f3fea
MJ
18263 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
18264 (struct ipcp_lattice): Renamed cval_type to type
18265 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
18266
18267 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
18268 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
18269 (ipcp_insert_stage): Changed the type of variable cvalue to tree
18270 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
18271 (build_const_val): Changed the type of parameter cvalue to tree
18272 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
18273 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
22129589
AS
18274
18275 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
18276 constant
6a3f3fea
MJ
18277
18278 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
18279 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
18280 (ipa_add_method): Renamed to ipa_push_func_to_list
18281 (ipa_remove_method): Renamed to ipa_pop_func_from_list
18282 (ipa_callsite_param_count): Removed.
18283 (ipa_callsite_param_count_set): Removed.
18284 (ipa_callsite_param): Removed.
18285 (ipa_callsite_callee): Removed.
18286 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
18287 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
18288 (ipa_method_formal_count): Removed.
18289 (ipa_method_formal_count_set): Removed.
18290 (ipa_method_get_tree): Removed.
18291 (ipa_method_tree_map_create): Removed.
18292 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
18293 (ipa_create_param_decls_array): Creates the array itself
22129589 18294 (ipa_create_param_decls_array): Temporary variable info instead of
6a3f3fea
MJ
18295 a few dereferences.
18296 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
18297 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
18298 (get_type): Removed.
18299 (ipa_jf_get_info_type): Removed.
18300 (ipa_node_create): Renamed to ipa_create_node_params
18301 (ipa_free): Renamed to ipa_free_all_node_params
18302 (ipa_nodes_create): Renamed to ipa_create_all_node_params
18303 (ipa_edges_create): Renamed to ipa_create_all_edge_args
18304 (ipa_edges_free): Renamed to ipa_free_all_edge_args
18305 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
22129589 18306 (ipa_free_all_node_params): Deallocation to jump_functions moved to
6a3f3fea
MJ
18307 ipa_free_all_edge_args
18308 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
18309 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
18310 (ipa_create_methodlist_node): Removed.
18311 (ipa_methodlist_method): Removed.
18312 (ipa_methodlist_method_set): Removed.
18313 (ipa_methodlist_next_method): Removed.
18314 (ipa_methodlist_next_method_set): Removed.
18315 (ipa_method_is_modified): Removed.
18316 (ipa_method_modify_create): Removed.
22129589 18317 (ipa_method_modify_init): Temporary variable info instead of a few
6a3f3fea 18318 dereferences.
22129589 18319 (ipa_detect_param_modifications): Temporary variable info instead of
6a3f3fea 18320 a few dereferences.
22129589 18321 (ipa_compute_jump_functions): Temporary variable info instead of
6a3f3fea
MJ
18322 a few dereferences.
18323 (ipa_method_modify_set): Removed.
18324 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
22129589 18325 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
6a3f3fea
MJ
18326 than craph_node as the first parameter.
18327 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
18328 (ipa_method_modify_init): Removed.
22129589 18329 (ipa_compute_jump_functions): Added a temp variable instead of
6a3f3fea
MJ
18330 repeatadly dereferencing the cgraph_edge.aux pointer
18331 (ipa_callsite_param_set_type): Removed.
22129589 18332 (ipa_compute_jump_functions): i renamed to index and moved to
6a3f3fea
MJ
18333 an inner block
18334 (ipa_callsite_param_set_info_type_formal): Removed.
18335 (ipa_callsite_param_set_info_type): Removed.
18336 (ipa_callsite_param_map_create): Removed.
18337 (ipa_callsite_tree): Removed.
18338 (ipa_callsite_caller): Removed.
18339 (ipa_pop_func_from_list): return_method removed to return_func
18340
18341 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
18342 prefixed all values with IPA_. Changed all users.
22129589
AS
18343 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
18344 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
18345 and FORMAL_IPATYPE IPA_PASS_THROUGH.
6a3f3fea
MJ
18346 (union parameter_info): Renamed to jump_func_value.
18347 (union jump_func_value): Renamed value to constant
18348 (struct ipa_jump_func): Renamed info_type to value
18349 (struct ipa_node): Renamed to ipa_node_params
18350 (struct ipa_node_params): Renamed ipa_arg_num to param_count
18351 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
18352 (struct ipa_node_params): Renamed ipa_mod to modified_flags
18353 (struct ipa_edge): Renamed to ipa_edge_args
18354 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
18355 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
18356 (struct ipa_methodlist): Renamed to ipa_func_list
18357 (struct ipa_func_list): method_p renamed to node, next_method
18358 renamed to next
18359 (ipa_methodlist_p): Removed, switched all users to struct pointer
18360 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
18361
1c9c5e43
AM
183622008-04-30 Alan Modra <amodra@bigpond.net.au>
18363
18364 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
18365 (rs6000_emit_epilogue): Use backchain to restore only when we
18366 have a large frame. Make use of frame pointer to restore if we
18367 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
18368
cf2758e3
PB
183692008-04-29 Paolo Bonzini <bonzini@gnu.org>
18370
18371 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
18372 Add mode to zero_extract.
18373 (sign bit tests peepholes): (Ditto.).
18374
f318ff0a
L
183752008-04-29 H.J. Lu <hongjiu.lu@intel.com>
18376
18377 * config/i386/i386.c (ix86_builtins): Replace Prescott New
18378 Instructions in comments with SSE3.
18379 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
18380 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
18381 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
18382 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
18383 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
18384 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
18385 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
18386 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
18387 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
18388 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
18389 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
18390 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
18391 (bdesc_sse_args): Renamed to ...
18392 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
18393 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
18394 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
18395 IX86_BUILTIN_FABSQ.
18396 (bdesc_1arg): Moved to ...
18397 (bdesc_args): Here.
18398 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
18399 Instructions in comments with SSE3.
18400 (ix86_expand_sse_operands_builtin): Renamed to ...
18401 (ix86_expand_args_builtin): This. Updated.
18402 (ix86_expand_unop1_builtin): Update comments.
18403 (ix86_expand_builtin): Updated.
18404
ace4eb90
RG
184052008-04-29 Richard Guenther <rguenther@suse.de>
18406
18407 PR tree-optimization/36078
18408 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
18409 Update virtual SSA form after cleaning up the CFG.
18410
1447bf05
RG
184112008-04-29 Richard Guenther <rguenther@suse.de>
18412
18413 PR middle-end/15255
18414 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
18415
59e6913a
RG
184162008-04-29 Richard Guenther <rguenther@suse.de>
18417
18418 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
18419 (compute_may_aliases): Do not call finalize_ref_all_pointers.
18420 (compute_flow_insensitive_aliasing): Do not treat
18421 PTR_IS_REF_ALL pointers special.
18422 (get_smt_for): Likewise.
18423 (may_alias_p): Re-structure.
18424 (is_escape_site): A ref-all pointer conversion is not an escape site.
18425 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
18426 PTR_IS_REF_ALL pointers special.
18427 * tree-ssa-structalias.h (struct alias_info): Remove
18428 ref_all_symbol_mem_tag field.
18429 (PTR_IS_REF_ALL): Remove.
18430
81ad578e
RG
184312008-04-29 Richard Guenther <rguenther@suse.de>
18432
18433 PR middle-end/36077
18434 * fold-const.c (extract_muldiv_1): In combining division constants
18435 make sure to never overflow.
18436
4830ba1f
NC
184372008-04-29 Nick Clifton <nickc@redhat.com>
18438
18439 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
18440
b1c61c7e
RW
184412008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18442
18443 PR bootstrap/35169
18444 * optc-gen.awk: Work around HP-UX/IA awk bug.
18445
d6b68fcc
DS
184462008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
18447
18448 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
18449 2008-04-25 commit.
18450
0d5fd2b8
UB
184512008-04-28 Uros Bizjak <ubizjak@gmail.com>
18452
18453 PR target/36073
18454 * config/i386/i386.md
18455 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
18456 Change operand 1 predicate to nonimmediate_operand.
18457
623f8e39
JJ
184582008-04-28 Jakub Jelinek <jakub@redhat.com>
18459
18460 PR debug/36060
18461 * dwarf2out.c (struct die_struct): Mark as chain_circular through
18462 die_sub field.
18463 * gengtype.c (walk_type, write_func_for_structure): Handle
18464 chain_circular.
18465 * doc/gty.texi: Document chain_circular.
18466
82893cba
RG
184672008-04-28 Richard Guenther <rguenther@suse.de>
18468
18469 PR tree-optimization/36066
18470 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
18471 SCEV and loop.
18472
e356fac8
UB
184732008-04-28 Uros Bizjak <ubizjak@gmail.com>
18474
18475 PR target/36064
0d5fd2b8
UB
18476 * config/i386/i386.md
18477 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
e356fac8
UB
18478 Use match_scratch instead of match_operand for operands 3 and 4.
18479
d6e840ee
RG
184802008-04-27 Richard Guenther <rguenther@suse.de>
18481
18482 PR tree-optimization/18754
18483 PR tree-optimization/34223
18484 * tree-pass.h (pass_complete_unrolli): Declare.
18485 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
18486 loop size before and after unconditionally of UL_NO_GROWTH in effect.
18487 Rewrite loop into loop closed SSA form if it is not already.
18488 (tree_unroll_loops_completely): Re-structure to iterate over
18489 innermost loops with intermediate CFG cleanups.
18490 Unroll outermost loops only if requested or the code does not grow
18491 doing so.
18492 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
18493 loops are available.
18494 (tree_vectorize): Instead do so here.
18495 (tree_complete_unroll): Also unroll outermost loops.
18496 (tree_complete_unroll_inner): New function.
18497 (gate_tree_complete_unroll_inner): Likewise.
18498 (pass_complete_unrolli): New pass.
18499 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
18500 uses outside of the loop.
18501 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
22129589 18502 form if it is available.
d6e840ee
RG
18503 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
18504 * passes.c (init_optimization_passes): Schedule complete inner
18505 loop unrolling pass before the first CCP pass after final inlining.
18506
feb60f03
NS
185072008-04-27 Nathan Sidwell <nathan@codesourcery.com>
18508
18509 * targhooks.h (default_emutls_var_fields,
18510 default_emutls_var_init): Declare.
18511 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
18512 * target.h (struct gcc_target): Add struct emutls member.
18513 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
18514 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
18515 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
18516 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
18517 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
18518 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
18519 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
18520 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
18521 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
18522 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
18523 emit debug information.
18524 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
18525 * varasm.c: Include targhooks.h.
18526 (emutls_object_section, emutls_tmpl_section): New.
18527 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
18528 (EMUTLS_SEPARATOR): New.
18529 (prefix_name): New.
18530 (get_emutls_object_name): New.
18531 (default_emutls_var_fields): New, broken out of ...
18532 (get_emutls_object_type): ... here. Adjust to use target hooks.
18533 (get_emutls_init_templ_addr): Adjust to use target hooks.
18534 (emutls_decl): Adjust to use target hooks.
18535 (emutls_finish): Likewise.
18536 (default_emutls_var_init): New, broken out of ...
18537 (assemble_variable): ... here. Adjust to use target hooks.
18538 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
18539 SECCAT_EMUTLS_TMPL.
18540 * c-common.c (handle_section_attribute): Prevent overriding
18541 sections for emulated tls with special sections.
18542 * config/i386/i386.c (x86_64_elf_select_section): Add
18543 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
18544 (x86_64_elf_unique_section): Likewise.
18545 * config/vxworks.c: Include tree.h.
18546 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
18547 (vxworks_override_options): Set TLS scheme.
623f8e39 18548 * doc/tm.texi (Emulated TLS): New node.
feb60f03 18549
6bfb7f10
SB
185502008-04-26 Simon Baldwin <simonb@google.com>
18551
18552 PR c/35652
18553 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
18554 with propagated string constants.
18555
73e8165a
UB
185562008-04-26 Uros Bizjak <ubizjak@gmail.com>
18557
18558 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
18559 constraint for operand 2 when operand 0 is memory operand.
18560 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
18561 operand 0 is memory operand.
18562 (fix_trunc<mode>_i387_with_temp): Ditto.
18563 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
18564 operand 2 when operand 1 is memory operand.
18565 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
18566 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
18567 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
18568 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
18569 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
18570 operands 2,3 and 4 when operand 1 is memory operand.
18571 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
18572 is memory operand.
18573 (fistdi2_floor_with_temp): Ditto.
18574 (fist<mode>2_floor_with_temp): Ditto.
18575 (fistdi2_ceil_with_temp): Ditto.
18576 (fist<mode>2_ceil_with_temp): Ditto.
18577 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
18578
49bce30a
RS
185792008-04-26 David Daney <ddaney@avtrex.com>
18580
18581 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
18582 unspec_volitile.
18583 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
18584 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
18585 UNSPEC_UPDATE_GOT_VERSION): Renumber.
18586 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
18587 (compare_and_swap_12): New insn.
18588 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
18589 * config/mips/mips.c (mips_force_binary): New function.
18590 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
18591 (mips_expand_compare_and_swap_12): New function.
18592 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
18593
e3b5732b
JH
185942008-04-25 Jan Hubicka <jh@suse.cz>
18595
18596 PR testsuite/35843
18597 * cfgexpand.c (pass_expand): Turn into RTL pass.
18598 * passes.c (execute_one_pass): Do pass typechecking after execution.
18599 * tree-pass.h (pass_expand): Turn into RTL pass.
18600
18601 * function.h (struct rtl_data): Move here fields
18602 accesses_prior_frames, calls_eh_return, saves_all_registers,
18603 has_nonlocal_goto, has_asm_statement, is_thunk,
18604 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
18605 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
18606 arg_pointer_save_area_init from struct function; turn into bool.
18607 (struct function): Move
18608 calls_eh_return, saves_all_registers, has_nonlocal_goto,
18609 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
18610 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
18611 tail_call_emit, arg_pointer_save_area_init
18612 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
18613 (current_function_returns_struct, current_function_returns_pcc_struct,
18614 current_function_calls_setjmp, current_function_calls_alloca,
18615 current_function_accesses_prior_frames,
18616 current_function_calls_eh_return, current_function_is_thunk,
18617 current_function_stdarg, current_function_profile,
18618 current_function_limit_stack, current_function_uses_pic_offset_table,
18619 current_function_uses_const_pool, current_function_has_nonlocal_label,
18620 current_function_saves_all_registers,
18621 current_function_has_nonlocal_goto,
18622 current_function_has_asm_statement): Remove accesor macros.
18623 * ra-conflict.c (global_conflicts): Update.
18624 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
18625 (suitable_for_tail_call_opt_p): Update.
18626 * builtins.c (expand_builtin_return_addr): Update.
18627 (expand_builtin_setjmp_setup): Update.
18628 (expand_builtin_nonlocal_goto): Update.
18629 * final.c (final_start_function): Update.
18630 (profile_function): Update.
18631 (leaf_function_p): Update.
18632 (only_leaf_regs_used): Update.
18633 * df-scan.c (df_get_exit_block_use_set): Update.
18634 * dojump.c (clear_pending_stack_adjust): Update.
18635 * tree-stdarg.c (gate_optimize_stdarg): Update.
18636 * gimple-low.c (lower_function_body): Update.
18637 * global.c (compute_regsets): Update.
18638 (global_alloc): Update.
18639 * dwarf2out.c (dwarf2out_begin_prologue): Update.
18640 * expr.c (expand_assignment): Update.
18641 * dse.c (dse_step0): Update.
18642 (dse_step1): Update.
18643 * c-decl.c (store_parm_decls): Update.
18644 * local-alloc.c (combine_regs): Update.
18645 (find_free_reg): Update.
18646 * function.c (assign_parms_augmented_arg_list): Update.
18647 (assign_parm_find_data_types): Update.
18648 (assign_parms): Update.
18649 (allocate_struct_function): Update.
18650 (expand_function_start): Update.
18651 (expand_function_end): Update.
18652 (get_arg_pointer_save_area): Update.
18653 (thread_prologue_and_epilogue_insns): Update.
18654 (rest_of_match_asm_constraints): Update.
18655 * stor-layout.c (variable_size): Update.
18656 * gcse.c (gcse_main): Update.
18657 (bypass_jumps): Update.
18658 * gimplify.c (gimplify_function_tree): Update.
18659 * calls.c (emit_call_1): Update.
18660 (expand_call): Update.
18661 * bt-load.c (compute_defs_uses_and_gen): Update.
18662 * except.c (sjlj_assign_call_site_values): Update.
18663 (sjlj_emit_function_enter): Update.
18664 (can_throw_external): Update.
18665 (set_nothrow_function_flags): Update.
18666 (expand_builtin_unwind_init): Update.
18667 (expand_eh_return): Update.
18668 (convert_to_eh_region_ranges): Update.
18669 (output_function_exception_table): Update.
18670 * emit-rtl.c (gen_tmp_stack_mem): Update.
18671 * cfgexpand.c (expand_used_vars): Update.
18672 (tree_expand_cfg): Update.
18673 * cfgcleanup.c (rest_of_handle_jump): Update.
18674 * explow.c (allocate_dynamic_stack_space): Update.
18675 * varasm.c (assemble_start_function): Update.
18676 (force_const_mem): Update.
18677 (mark_constant_pool): Update.
18678 * tree-optimize.c (tree_rest_of_compilation): Update.
18679 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
18680 * tree-cfg.c (notice_special_calls): Update.
18681 (is_ctrl_altering_stmt): Update.
18682 (tree_can_make_abnormal_goto): Update.
18683 (tree_purge_dead_abnormal_call_edges): Update.
18684 * config/alpha/predicates.md: Update.
18685 * config/alpha/alpha.c (alpha_sa_mask): Update.
18686 (alpha_sa_size): Update.
18687 (alpha_does_function_need_gp): Update.
18688 (alpha_expand_prologue): Update.
18689 (alpha_start_function): Update.
18690 (alpha_output_function_end_prologue): Update.
18691 (alpha_expand_epilogue): Update.
18692 * config/frv/frv.c (frv_stack_info): Update.
18693 (frv_expand_epilogue): Update.
18694 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
18695 (s390_register_info): Update.
18696 (s390_frame_info): Update.
18697 (s390_init_frame_layout): Update.
18698 (s390_can_eliminate): Update.
18699 (save_gprs): Update.
18700 * config/spu/spu.c (spu_split_immediate): Update.
18701 (need_to_save_reg): Update.
18702 (spu_expand_prologue): Update.
18703 (spu_expand_epilogue): Update.
18704 * config/sparc/sparc.md: Update.
18705 * config/sparc/sparc.c (eligible_for_return_delay): Update.
18706 (sparc_tls_got): Update.
18707 (legitimize_pic_address): Update.
18708 (sparc_emit_call_insn): Update.
18709 (sparc_expand_prologue): Update.
18710 (output_return): Update.
18711 (print_operand): Update.
18712 (sparc_function_ok_for_sibcall): Update.
18713 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
18714 * config/m32r/m32r.md: Update.
18715 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
18716 (m32r_compute_frame_size): Update.
18717 (m32r_expand_prologue): Update.
18718 (m32r_expand_epilogue): Update.
18719 (m32r_legitimize_pic_address): Update.
18720 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
18721 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18722 * config/i386/i386.c (ix86_frame_pointer_required): Update.
18723 (gen_push): Update.
18724 (ix86_save_reg): Update.
18725 (ix86_compute_frame_layout): Update.
18726 (ix86_expand_prologue): Update.
18727 (ix86_expand_epilogue): Update.
18728 * config/sh/sh.c (output_stack_adjust): Update.
18729 (calc_live_regs): Update.
18730 (sh5_schedule_saves): Update.
18731 (sh_expand_prologue): Update.
18732 (sh_expand_epilogue): Update.
18733 (sh_setup_incoming_varargs): Update.
18734 (sh_allocate_initial_value): Update.
18735 (sh_get_pr_initial_val): Update.
18736 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
18737 * config/sh/sh.md (label:): Update.
18738 * config/avr/avr.c (out_movhi_mr_r): Update.
18739 * config/crx/crx.h (enum): Update.
18740 * config/xtensa/xtensa.h (along): Update.
18741 * config/stormy16/stormy16.c Update.
18742 (xstormy16_compute_stack_layout): Update.
18743 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
18744 (fr30_expand_prologue): Update.
18745 * config/cris/cris.c (cris_conditional_register_usage): Update.
18746 (cris_reg_saved_in_regsave_area): Update.
18747 (cris_initial_frame_pointer_offset): Update.
18748 (cris_simple_epilogue): Update.
18749 (cris_expand_prologue): Update.
18750 (cris_expand_epilogue): Update.
18751 (cris_expand_pic_call_address): Update.
18752 (cris_asm_output_symbol_ref): Update.
18753 (cris_asm_output_label_ref): Update.
18754 * config/cris/cris.md Update.
18755 * config/iq2000/iq2000.c (compute_frame_size): Update.
18756 (iq2000_expand_epilogue): Update.
18757 * config/mt/mt.h (save_direction): Update.
18758 * config/mn10300/mn10300.c (mn10300_function_value): Update.
18759 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
18760 (ia64_secondary_reload_class): Update.
18761 * config/m68k/m68k.c (m68k_save_reg): Update.
18762 (m68k_expand_prologue): Update.
18763 (m68k_expand_epilogue): Update.
18764 (legitimize_pic_address): Update.
18765 * config/rs6000/rs6000.c (rs6000_got_register): Update.
18766 (first_reg_to_save): Update.
18767 (first_altivec_reg_to_save): Update.
18768 (compute_vrsave_mask): Update.
18769 (compute_save_world_info): Update.
18770 (rs6000_stack_info): Update.
18771 (spe_func_has_64bit_regs_p): Update.
18772 (rs6000_ra_ever_killed): Update.
18773 (rs6000_emit_eh_reg_restore): Update.
18774 (rs6000_emit_allocate_stack): Update.
18775 (rs6000_emit_prologue): Update.
18776 (rs6000_emit_epilogue): Update.
18777 (rs6000_output_function_epilogue): Update.
18778 (output_profile_hook): Update.
18779 (rs6000_elf_declare_function_name): Update.
18780 * config/rs6000/rs6000.h (rs6000_args): Update.
18781 * config/rs6000/rs6000.md: Update.
18782 * config/mcore/mcore.c (mcore_expand_prolog): Update.
18783 * config/arc/arc.c (arc_output_function_epilogue): Update.
18784 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
18785 * config/darwin.c (machopic_function_base_name): Update.
18786 * config/score/score3.c (score3_compute_frame_size): Update.
18787 (rpush): Update.
18788 (rpop): Update.
18789 (score3_epilogue): Update.
18790 * config/score/score7.c (score7_compute_frame_size): Update.
18791 (score7_prologue): Update.
18792 (score7_epilogue): Update.
18793 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
18794 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18795 * config/arm/arm.c (use_return_insn): Update.
18796 (require_pic_register): Update.
18797 (arm_load_pic_register): Update.
18798 (arm_compute_save_reg0_reg12_mask): Update.
18799 (arm_compute_save_reg_mask): Update.
18800 (thumb1_compute_save_reg_mask): Update.
18801 (output_return_instruction): Update.
18802 (arm_output_function_prologue): Update.
18803 (arm_output_epilogue): Update.
18804 (arm_get_frame_offsets): Update.
18805 (arm_expand_prologue): Update.
18806 (thumb_pushpop): Update.
18807 (thumb_exit): Update.
18808 (thumb1_expand_prologue): Update.
18809 (thumb1_expand_epilogue): Update.
18810 (arm_unwind_emit): Update.
18811 (arm_output_fn_unwind): Update.
18812 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
18813 * config/arm/arm.md: Update.
18814 * config/pa/pa.md: Update.
18815 * config/pa/pa.c (legitimize_pic_address): Update.
18816 (compute_frame_size): Update.
18817 (hppa_expand_prologue): Update.
18818 (hppa_expand_epilogue): Update.
18819 (borx_reg_operand): Update.
18820 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
18821 (HARD_REGNO_RENAME_OK): Update.
18822 * config/mips/mips.c (mips_global_pointer): Update.
18823 (mips_save_reg_p): Update.
18824 (mips_compute_frame_info): Update.
18825 (mips_frame_pointer_required): Update.
18826 (mips_expand_prologue): Update.
18827 (mips_expand_epilogue): Update.
18828 (mips_can_use_return_insn): Update.
18829 (mips_reorg_process_insns): Update.
18830 * config/v850/v850.c (compute_register_save_size): Update.
18831 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
18832 * config/mmix/mmix.c (along): Update.
18833 (mmix_expand_epilogue): Update.
18834 * config/bfin/bfin.c (legitimize_pic_address): Update.
18835 (must_save_p): Update.
18836 (stack_frame_needed_p): Update.
18837 (add_to_reg): Update.
18838 (bfin_expand_prologue): Update.
18839 * stmt.c (expand_asm_operands): Update.
18840 * reload1.c (reload): Update.
18841 (init_elim_table): Update.
18842
d1163987 188432008-04-25 Bob Wilson <bob.wilson@acm.org>
22129589 18844
d1163987 18845 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
22129589 18846
a5e11364
L
188472008-04-25 H.J. Lu <hongjiu.lu@intel.com>
18848
62d2739a 18849 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
a5e11364
L
18850 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
18851 (mov<mode>): Removed.
18852 (*movv4sf_internal): Likewise.
18853 (*movv2df_internal): Likewise.
18854
68d154b9
PG
188552008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
18856
18857 * config.gcc (crx-*-elf): Remove deprecation.
18858
e65e1476
DS
188592008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
18860
18861 * config/i386/cygming-crtend.c (register_frame_ctor): Register
18862 __gcc_deregister_frame with atexit.
18863 (deregister_frame_dtor): Remove.
18864
9553940c 188652008-04-24 Nathan Froyd <froydnj@codesourcery.com>
94f4765c
NF
18866 Nathan Sidwell <nathan@codesourcery.com>
18867
e6d8b0c6 18868 * config/rs6000/rs6000.opt (mspe): Remove Var property.
94f4765c 18869 (misel): Likewise.
e6d8b0c6 18870 * config/rs6000/rs6000.h (rs6000_spe): Declare.
94f4765c 18871 (rs6000_isel): Likewise.
e6d8b0c6 18872 * config/rs6000/rs6000.c (rs6000_spe): New variable.
94f4765c 18873 (rs6000_isel): New variable.
e6d8b0c6 18874 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
94f4765c 18875
5dc11954
JJ
188762008-04-24 Jakub Jelinek <jakub@redhat.com>
18877
18878 PR c++/35758
18879 * c-common.c (handle_vector_size_attribute): Call
18880 lang_hooks.types.reconstruct_complex_type instead of
18881 reconstruct_complex_type.
18882 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
18883 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
18884 * langhooks.h (struct lang_hooks_for_types): Add
18885 reconstruct_complex_type hook.
18886 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
18887 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
18888
83322951
RG
188892008-04-24 Richard Guenther <rguenther@suse.de>
18890
18891 * c-common.h (check_builtin_function_arguments): Declare.
18892 * c-common.c (validate_nargs): New function.
18893 (check_builtin_function_arguments): Likewise.
18894 * c-typeck.c (build_function_call): Call
18895 check_builtin_function_arguments.
18896 * builtins.c (fold_builtin_classify): Remove error reporting code.
18897 (fold_builtin_unordered_cmp): Likewise.
18898 (fold_builtin_1): Likewise.
18899 (fold_builtin_n): Likewise.
18900
194ac52a
JJ
189012008-04-24 Jakub Jelinek <jakub@redhat.com>
18902
18903 PR tree-optimization/36008
18904 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
18905 the original op1, rather than delta by step.
18906
9f9f72aa 189072008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
e6d8b0c6 18908 Sebastian Pop <sebastian.pop@amd.com>
9f9f72aa
AP
18909
18910 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
18911 eliminate_local_variables_stmt, eliminate_local_variables,
18912 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
18913 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
18914 of code delimited by two edges in the CFG.
18915 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
18916 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
22129589 18917 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
9f9f72aa
AP
18918 the case of parallelisation of reductions.
18919 (expr_invariant_in_region_p): New.
18920
18921 * tree-flow.h (gather_blocks_in_sese_region): Declared.
18922 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
18923
2aa43509 189242008-04-24 Ira Rosen <irar@il.ibm.com>
e6d8b0c6 18925 Richard Guenther <rguenther@suse.de>
2aa43509
IR
18926
18927 PR tree-optimization/36034
18928 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
18929 incapable of dealing with loads with gaps.
18930
e49cf927 189312008-04-24 Rafael Espíndola <espindola@google.com>
e80d7580
RAE
18932
18933 * tree-flow.h (vrp_evaluate_conditional): Change signature.
18934 * tree-ssa-propagate.c (fold_predicate_in): Update call to
18935 vrp_evaluate_conditional.
18936 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
e6d8b0c6
UB
18937 (vrp_evaluate_conditional): Split the cond argument.
18938 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
18939 (simplify_stmt_for_jump_threading): Update call to
e80d7580
RAE
18940 vrp_evaluate_conditional.
18941
0e37a1c2
IR
189422008-04-24 Ira Rosen <irar@il.ibm.com>
18943
18944 PR tree-optimization/35982
18945 * tree-vect-analyze.c (vect_check_interleaving): Check that the
18946 interleaved data-refs are of the same type.
18947
f9f9640f
DS
189482008-04-24 Danny Smith <dannysmith@users.net>
18949
e6d8b0c6
UB
18950 * c-format.c (check_format_info_main): Use strncmp rather than a
18951 magic prefix to handle multichar length specs.
f9f9640f
DS
18952 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
18953 Don't prefix "I64" and "I32" with '\0'.
18954
64ceac43
JJ
189552008-04-24 Jakub Jelinek <jakub@redhat.com>
18956
18957 PR target/36015
18958 * config/i386/i386.c (init_cumulative_args): Don't pass anything
18959 in registers for -m32 only if stdarg_p (fntype).
18960
4679504c
UB
189612008-04-24 Uros Bizjak <ubizjak@gmail.com>
18962
18963 PR rtl-optimization/36006
18964 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
18965 temp to op0 in order to avoid invalid rtx sharing.
18966
51eed280
PB
189672008-04-23 Paolo Bonzini <bonzini@gnu.org>
18968
18969 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
18970 check TREE_INVARIANT.
18971 * tree-gimple.c (is_gimple_address): New.
18972 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
18973 * tree-gimple.h (is_gimple_address): New.
18974 * tree.h (decl_address_invariant_p): New.
18975 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
18976 (build_string): Likewise.
18977 (decl_address_invariant_p): New, from is_gimple_invariant_address.
18978 (tree_invariant_p_1): Likewise.
18979 (save_expr): Use it.
18980 (tree_invariant_p): New.
18981 (skip_simple_arithmetic): Use it.
18982 (stabilize_reference_1): Use it.
18983 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
18984 simplify.
18985 (build1_stat): Drop code to compute TREE_INVARIANT.
18986 (build2_stat): Drop code to compute TREE_INVARIANT.
18987 (build3_stat): Drop code to compute TREE_INVARIANT.
18988 (build4_stat): Drop code to compute TREE_INVARIANT.
18989 (build5_stat): Drop code to compute TREE_INVARIANT.
18990 (build7_stat): Drop code to compute TREE_INVARIANT.
18991 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
18992 * tree.h (struct tree_base): Remove invariant_flag.
18993 (TREE_INVARIANT): Remove.
18994 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
18995 (fold_builtin_expect): Check TREE_CONSTANT.
18996 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
18997 * c-tree.h (c_expr_to_decl): Drop third parameter.
18998 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
18999 (build_c_cast): Don't set TREE_INVARIANT.
19000 (pop_init_level): Don't set TREE_INVARIANT.
19001 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
19002 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
19003 TREE_CONSTANT.
19004 (gimplify_init_constructor): Don't set TREE_INVARIANT.
19005 (gimplify_addr_expr): Adjust comment.
19006 * tree-mudflap.c (mf_build_string):
19007 * print-tree.c (print_node): Don't print TREE_INVARIANT.
19008 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
19009 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
19010 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
19011 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
19012 * langhooks.h (struct lang_hooks): Drop third parameter from
19013 expr_to_decl.
19014
17d2c090
RG
190152008-04-23 Richard Guenther <rguenther@suse.de>
19016
19017 PR tree-optimization/27799
19018 PR tree-optimization/32921
19019 PR tree-optimization/32624
19020 * tree-ssa-structalias.c (merge_smts_into): Only merge the
19021 SMTs aliases and the tag itself into the solution.
19022 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
19023 merge the points-to solution back into the SMT aliases.
19024 (may_alias_p): Use alias_set_subset_of instead of
19025 aliases_conflict_p. A pointer which points to
19026 memory with alias set zero may access any variable.
19027
a7a512be
RG
190282008-04-23 Richard Guenther <rguenther@suse.de>
19029
19030 * alias.c (alias_set_subset_of): Correctly handle asking
19031 if zero is a subset of an alias set with zero child.
19032 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
19033 (compute_flow_insensitive_aliasing): Correctly walk all
19034 pointers. Do not unnecessarily union sets.
19035
f3f75f69
RG
190362008-04-23 Richard Guenther <rguenther@suse.de>
19037
19038 PR middle-end/36021
19039 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
19040
09725d5e
TB
190412008-04-22 Tomas Bily <tbily@suse.cz>
19042
4679504c
UB
19043 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
19044 unreachable case.
19045 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
19046 NON_LVALUE_EXPR.
19047 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
19048 * tree-ssa-structalias.c (get_constraint_for): Likewise.
19049 * tree-inline.c (estimate_num_insns_1): Likewise.
19050 * varasm.c (const_hash_1, compare_constant, copy_constant)
19051 (compute_reloc_for_constant, output_addressed_constants): Likewise.
19052 * emit-rtl.c (component_ref_for_mem_expr)
19053 (set_mem_attributes_minus_bitpos): Likewise.
19054 * expr.c (highest_pow2_factor, expand_expr_real_1, )
19055 (is_aligning_offset): Likewise.
19056 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
19057 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
19058 * dojump.c (do_jump): Likewise.
19059 * builtins.c (get_pointer_alignment, get_memory_rtx)
19060 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
19061 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
09725d5e 19062
63cb92c1
JJ
190632008-04-23 Jakub Jelinek <jakub@redhat.com>
19064
19065 PR rtl-optimization/36017
19066 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
19067 expanding the library call.
19068
b2f06c39
ILT
190692008-04-22 Ian Lance Taylor <iant@google.com>
19070
19071 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
19072 than size_in_bytes.
19073
aafc759a
PH
190742008-04-22 Pat Haugen <pthaugen@us.ibm.com>
19075
19076 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
19077 of LR/CTR moves for Power6.
19078
4218dc2d 190792008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
5b4603fa
KZ
19080
19081 PR middle-end/36003
19082 * passes.c (init_optimization_passes): Remove
19083 pass_fast_rtl_byte_dce.
22129589 19084
6126672e
UB
190852008-04-22 Uros Bizjak <ubizjak@gmail.com>
19086
19087 PR target/29096
19088 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
19089 builtin functions to generate faster code.
19090 (_mm_cvtpu16_ps): Ditto.
19091 (_mm_cvtpi32x2_ps): Ditto.
19092
f6d2671e
NC
190932008-04-22 Nick Clifton <nickc@redhat.com>
19094
53ed2f0e
NC
19095 * common.opt (ftree-loop-distribution): Add Optimization
19096 attribute.
19097
7dd68986
NC
19098 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
19099 (frv_expand_builtin_va_start): Likewise.
19100
f6d2671e
NC
19101 * config/arm/arm.c (thumb_find_work_register): Fix location of
19102 argument register count.
19103
826fadba
MK
191042008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
19105
19106 Support scheduling for ColdFire V1 and V3 microarchitecture.
19107 Improve scheduling of multiplication instructions.
19108
19109 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
19110 (mac): New instruction attribute.
19111 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
19112 (m68k_sched_mac): New variable.
19113 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
19114 Handle cfv1 and cfv3.
19115 (max_insn_size): New static variable.
19116 (struct _sched_ib): New type.
19117 (sched_ib): New static variable.
19118 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
19119 to fields of 'struct _sched_ib sched_ib'. Update all uses.
19120 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
19121 Update.
19122 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
19123 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
19124 new variables. Update.
19125 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
19126 Add modeling of cfv3 instruction buffer. Update.
19127 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
19128 * config/m68k/m68k.h (TUNE_CFV3): New macro.
19129 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
19130 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
19131 a particular reservation applies to.
19132 (type2): Reorganize attribute values. Rename alu to alu_reg,
19133 alu_l to alu, move_l to omove. Join move to alu. Split mul
19134 to mul_l and mul_w.
19135 (cf_ib_*): Simplify description of instruction buffer.
19136 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
19137 (cf_mem): Split into cf_mem1 and cf_mem2.
19138 (cf_v2_move_??): Rename to cfv12_alu_??.
19139 (cf_v2_move_l_??): Rename to cfv12_omove_??.
19140 (cf_v2_mul_??): Remove reservations.
19141 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
19142 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
19143 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
19144 appropriate place.
19145 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
19146 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
19147 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
19148 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
19149 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
19150 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
19151 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
19152 expansions of the above reservations for instructions of sizes
19153 1, 2 and 3 words.
19154
c23da840
MK
191552008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
19156
19157 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
19158
27624b9e
AN
191592008-04-21 Adam Nemet <anemet@caviumnetworks.com>
19160
19161 * coverage.c: Include tree-pass.h.
19162 (coverage_counter_alloc): Print da_file_name to the dump file.
19163
4218dc2d 191642008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
27624b9e 19165
b60db1ba
KZ
19166 * sbitmap.c (sbitmap_range_empty_p): New function.
19167 * sbitmap.h (sbitmap_range_empty_p): New function.
27624b9e 19168 * bitmap.h: Now includes obstack.h.
b60db1ba 19169
27624b9e 191702008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
4218dc2d 19171 Kenneth Zadeck <zadeck@naturalbridge.com>
cc806ac1
RS
19172
19173 * dbgcnt.def (ra_byte_scan): Added.
19174 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
22129589 19175 when the last hit happens for a counter.
cc806ac1
RS
19176 * timevar.def (TV_DF_BYTE_LR): New variable.
19177 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
19178 * passes.c (pass_fast_rtl_byte_dce): New pass.
19179 * fwprop.c (update_df): Added mode to call df_ref_create.
19180 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19181 DF_REF_EXTRACT_OFFSET.
22129589 19182 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
cc806ac1
RS
19183 DF_BYTE_LR_OUT, df_byte_lr): New macro.
19184 (df_mm): New enum.
19185 (df_ref_extract): Added mode field.
19186 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
19187 DF_REF_EXTRACT_OFFSET.
19188 (DF_REF_EXTRACT_MODE): New macro.
19189 (df_byte_lr_bb_info): New structure.
22129589 19190 (df_print_byte_regset, df_compute_accessed_bytes,
cc806ac1
RS
19191 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
19192 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
19193 df_byte_lr_simulate_uses,
19194 df_byte_lr_simulate_artificial_refs_at_top,
19195 df_byte_lr_simulate_artificial_refs_at_end,
19196 df_compute_accessed_bytes): New function.
19197 (df_ref_create): Add parameter.
19198 (df_byte_lr_get_bb_info): New inline function.
19199 * df-scan.c (df_ref_record, df_uses_record,
19200 df_ref_create_structure): Added mode parameter.
22129589 19201 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
cc806ac1 19202 df_defs_record, df_uses_record, df_get_conditional_uses,
22129589 19203 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
cc806ac1
RS
19204 df_entry_block_defs_collect, df_exit_block_uses_collect):
19205 Added mode parameter to calls to df_ref_record, df_uses_record,
19206 df_ref_create_structure.
4679504c 19207 (df_ref_equal_p, df_ref_compare): Added test for modes.
cc806ac1
RS
19208 (df_ref_create_structure): Added code to set mode. Renamed
19209 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19210 DF_REF_EXTRACT_OFFSET.
19211 * df-core.c (df_print_byte_regset): New function.
19212 * df-byte-scan.c: New file.
19213 * df-problems.c (df_rd_transfer_function): Removed unnecessary
22129589 19214 calls to BITMAP_FREE.
cc806ac1
RS
19215 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
19216 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
22129589
AS
19217 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
19218 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
cc806ac1
RS
19219 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
19220 df_byte_lr_local_compute, df_byte_lr_init,
22129589
AS
19221 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
19222 df_byte_lr_transfer_function, df_byte_lr_free,
cc806ac1 19223 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
22129589 19224 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
cc806ac1
RS
19225 df_byte_lr_simulate_uses,
19226 df_byte_lr_simulate_artificial_refs_at_top,
19227 df_byte_lr_simulate_artificial_refs_at_end): New function.
19228 * dce.c (byte_dce_process_block): New function.
19229 (dce_process_block): au is now passed in rather than computed
19230 locally. Changed loops that look at artificial defs to not look
22129589
AS
19231 for conditional or partial ones, because there never are any.
19232 (fast_dce): Now is able to drive byte_dce_process_block or
cc806ac1
RS
19233 dce_process_block depending on the kind of dce being done.
19234 (rest_of_handle_fast_dce): Add parameter to fast_dce.
19235 (rest_of_handle_fast_byte_dce): New function.
19236 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
19237 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
19238
3d4cb550
DF
192392008-04-21 Daniel Franke <franke.daniel@gmail.com>
19240
19241 PR fortran/35019
19242 * gcc.h: Added fortran options that take arguments to
19243 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
19244 macros.
19245
eea05d39
EB
192462008-04-20 Eric Botcazou <ebotcazou@adacore.com>
19247
19248 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
19249 scalarization if on the LHS and not a full access.
19250
def9bf34
RW
192512008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19252
eea05d39 19253 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
def9bf34 19254
e49cf927 192552008-04-18 Rafael Espíndola <espindola@google.com>
eea05d39 19256
b7d8d447
RAE
19257 * tree-vrp.c (find_case_label_index): Fix the binary search.
19258 (find_case_label_range): New.
19259 (vrp_visit_switch_stmt): Use find_case_label_range.
19260 (simplify_switch_using_ranges): Use find_case_label_range.
19261
ed3444e9
EB
192622008-04-18 Eric Botcazou <ebotcazou@adacore.com>
19263
19264 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
19265 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
19266
893174fa
TT
192672008-04-18 Tom Tromey <tromey@redhat.com>
19268
19269 PR libcpp/15500:
19270 * doc/cpp.texi (Implementation-defined behavior): Mention
19271 -finput-charset.
19272
6e3c5c30
ILT
192732008-04-18 Ian Lance Taylor <iant@google.com>
19274
19275 * fold-const.c (pointer_may_wrap_p): New static function.
19276 (fold_comparison): Add another test for pointer overflow. Use
19277 pointer_may_wrap_p to disable some false positives.
19278
b6baa67d 192792008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
22129589 19280
b6baa67d
KVH
19281 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
19282 (fname_as_string): Match updated cpp_interpret_string prototype.
19283 (fix_string_type): Support char16_t* and char32_t*.
19284 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
19285 derivative) nodes. Register as builtin if C++0x.
19286 (c_parse_error): Support CPP_CHAR{16,32}.
22129589 19287 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
b6baa67d
KVH
19288 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
19289 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
19290 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
19291 CTI_CHAR32_ARRAY_TYPE>: New elements.
19292 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
19293 char32_type_node, signed_char32_type_node, char16_array_type_node,
19294 char32_array_type_node): New defines.
19295 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
19296 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
19297 (lex_string): Support CPP_STRING{16,32}, match updated
19298 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
19299 (lex_charconst): Support CPP_CHAR{16,32}.
19300 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
19301 and CPP_STRING{16,32}.
19302
deb984e6
PB
193032008-04-18 Paolo Bonzini <bonzini@gnu.org>
19304
19305 PR bootstrap/35457
19306 * aclocal.m4: Regenerate.
19307 * configure: Regenerate.
19308
cb91fab0
JH
193092008-04-18 Jan Hubicka <jh@suse.cz>
19310
19311 * except.c (dw2_size_of_call_site_table,
19312 sjlj_size_of_call_site_table): Use vector API for call_site_record.
19313
19314 * cgraphbuild.c (build_cgraph_edges): Update.
19315 * tree-pass.h: Update comment.
19316 * final.c (leaf_function_p): Update.
19317 (leaf_renumber_regs): Update.
19318 (rest_of_clean_state): Update.
19319 * omp-low.c (expand_omp_parallel): Update.
19320 * ipa-reference.c (analyze_function): Update.
19321 * reorg.c (find_end_label): Update.
19322 (optimize_skip): Update.
19323 (fill_simple_delay_slots): Update.
19324 (fill_simple_delay_slots): Update.
19325 (make_return_insns): Update.
19326 (dbr_schedule): Update.
19327 * gimple-low.c (record_vars_into): Update.
19328 * cfgbuild.c (make_edges): Update.
19329 * function.c (assign_stack_local): Update.
19330 (assign_parm_adjust_stack_rtl): Update.
19331 (locate_and_pad_parm): Update.
19332 (allocate_struct_function): Do not initialize stack_alignment_needed
19333 and preferred_stack_boundary here.
19334 (stack_protect_prologue): Update.
19335 (stack_protect_epilogue): Update.
19336 (expand_function_start): Initialize stack_alignment_needed,
19337 preferred_stack_boundary and max_jumptable_ents.
19338 (expand_function_end): Update.
19339 (free_after_compilation): Do not NULLify epilogue_delay_list.
19340 * function.h (struct rtl_data): Add stack_protect_guard,
19341 stack_alignment_needed,
19342 preferred_stack_boundary, epilogue_delay_list.
19343 (struct function): Remove value_histograms, stack_alignment_needed,
19344 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
19345 last_label_uid,
19346 unexpanded_var_list, stack_protect_guard.
19347 (current_function_epilogue_delay_list): Remove.
19348 * ipa-type-escape.c (analyze_function): Update.
19349 * gimplify.c (pop_gimplify_context): Update comment.
19350 * calls.c (expand_call): Update.
19351 (emit_library_call_value_1): Update.
19352 * except.c (set_nothrow_function_flags): Update.
19353 * cfgexpand.c (get_decl_align_unit): Update.
19354 (create_stack_guard): Update.
19355 (estimated_stack_frame_size): Update.
19356 (expand_used_vars): Update.
19357 (tree_expand_cfg): Free histogram earliers, init expansion variables.
19358 * explow.c (allocate_dynamic_stack_space): Update.
19359 * tree-ssa-live.c (remove_unused_locals): Update.
19360 * varasm.c (mark_constant_pool): Update.
19361 * tree-inline.c (remap_decls): Update.
19362 (initialize_cfun): Update.
19363 (declare_return_variable): Update.
19364 (inline_forbidden_p): Update.
19365 (expand_call_inline): Update.
19366 (declare_inline_vars): Update.
19367 (tree_function_versioning): Update.
19368 * tree-flow.h (value_histograms): New.
19369 (VALUE_HISTOGRAMS): New macro.
19370 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
19371 last_label_uid.
19372 * tree-cfg.c (set_bb_for_stmt): Update.
19373 (replace_by_duplicate_decl): Update.
19374 (move_block_to_fn): Update.
19375 (new_label_mapper): Update.
19376 (dump_function_to_file): Update.
19377 * ipa-struct-reorg.c (build_data_structure): Update.
19378 * cfgrtl.c (print_rtl_with_bb): Update.
19379 * reload1.c (reload): Update.
19380 (reload): Update.
19381 * config/i386/i386.c (setup_incoming_varargs_64,
19382 ix86_compute_frame_layout): Update.
19383 * config/arc/arc.c (arc_output_function_epilogue): Update.
19384
799cff46
MS
193852008-04-18 Marius Strobl <marius@FreeBSD.org>
19386
19387 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
19388 for FreeBSD as well.
19389 * gthr-posix95.h: Likewise.
19390
de907943
RS
193912008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
19392
19393 PR rtl-optimization/35838
19394 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
19395 out the byte offset of the first subreg.
19396
c2b814b9
UB
193972008-04-17 Uros Bizjak <ubizjak@gmail.com>
19398
19399 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
19400 to split_ti instead of three separate calls with single member arrays.
19401 (subti3 splitter): Ditto.
19402 (adddi3 splitter): Ditto with split_di.
19403 (subdi3 splitter): Ditto.
19404 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
19405 two separate calls with single member arrays. Swap match_dup
19406 operands 1 and 2 to better fit into the array.
19407 (negdi2 splitter): Ditto with split_di.
19408 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
19409 two separate calls with single member arrays. Swap match_dup operands
19410 6 and 7 to better fit into the array.
19411
ec2e9a15
L
194122008-04-17 H.J. Lu <hongjiu.lu@intel.com>
19413
19414 * config/i386/i386.c (sse_builtin_type): New.
19415 (bdesc_sse_args): Likewise.
19416 (bdesc_sse_3arg): Removed.
19417 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
19418 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
19419 IX86_BUILTIN_ROUNDPS.
19420 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
19421 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
19422 IX86_BUILTIN_ROUNDPS.
19423 (ix86_expand_sse_4_operands_builtin): Removed.
19424 (ix86_expand_sse_operands_builtin): New.
19425 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
19426 and CODE_FOR_sse4_1_roundps.
19427 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
19428 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
19429
e6477eaa
AM
194302008-04-17 Alan Modra <amodra@bigpond.net.au>
19431
19432 PR target/35907
19433 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
19434 regs before frame pop when needed. If use_backchain_to_restore_sp
19435 then load backchain into a temp reg to restore vr and vrsave. Add
19436 code to restore vr after frame pop if possible.
19437
ba2e1892
RG
194382008-04-17 Richard Guenther <rguenther@suse.de>
19439
19440 * tree-vn.c (expressions_equal_p): Do not check type
19441 equality or compatibility before calling operand_equal_p.
19442 * fold-const.c (operand_equal_p): Check equivalence of
19443 integer constants before bailing out due to signedness or
19444 precision differences.
19445 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
19446 spurious differences in type qualification. Ignore types
19447 for COMPONENT_REFs at all.
19448
d60819f8
CB
194492008-04-17 Christian Bruel <christian.bruel@st.com>
19450
19451 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
19452 msw_skip comparison.
22129589 19453
3d5e00a0
JJ
194542008-04-16 Jakub Jelinek <jakub@redhat.com>
19455
12e19e05
JJ
19456 PR c/35739
19457 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
19458 reg type.
19459
3d5e00a0
JJ
19460 PR tree-optimization/35899
19461 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
19462 rather than TREE_OPERAND.
19463
17c340e0
UB
194642008-04-16 Uros Bizjak <ubizjak@gmail.com>
19465
19466 PR target/35944
19467 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
19468 temporary registers. Change operand predicate to general_operand.
19469 (remainderxf3): Ditto.
19470
e544c850
RG
194712008-04-16 Richard Guenther <rguenther@suse.de>
19472
19473 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
19474 * tree-affine.c (aff_combination_expand): Look through some
19475 conversions.
19476
3d57d7ce
DK
194772008-04-15 Doug Kwan <dougkwan@google.com>
19478
19479 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
19480 for hex printing.
19481 * tree-pretty-print.c (dump_generic_node): Ditto.
19482 * final.c (output_addr_const): Ditto.
19483 * dwarf2out.c (output_cfi): Ditto.
19484 * c-pretty-print.c (pp_c_integer_constant): Ditto.
19485 * print-rtl.c (print_rtx): Ditto.
19486 * print-tree.c (print_node_brief, print_node): Ditto.
19487 * c-common.c (match_case_to_enum_1): Ditto.
19488 * sched-vis.c (print_value): Ditto.
19489 * config/i386/i386.c (print_operand): Cast to long unsigned int
19490 for hex printing.
19491
d98c89de
DS
194922008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
19493 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
19494 MS Windows VirtualProtect function.
19495
69c32ec8
JH
194962008-04-15 Jan Hubicka <jh@suse.cz>
19497
19498 * gengtype.c (write_root): Param_is argument is OK.
19499 * expr.c (expand_expr_real_1): Update call of get_exception_*.
19500 * function.h: Include varray.h
19501 (rtl_eh): New stucture based on except.c one.
19502 (call_site_record): New forward declaration and vector type.
19503 * calls.c (emit_call_1): Do not call
19504 note_current_region_may_contain_throw.
19505 * except.c (eh_status): Remove cur_region, try_region since they are
19506 unused.
19507 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
19508 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
22129589 19509 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
69c32ec8
JH
19510 Remove call_site_data_used, call_site_data_size.
19511 Turn call_site_record into vector in function.h.
19512 (note_current_region_may_contain_throw): Remove.
19513 (get_exception_pointer, get_exception_filter): Do not take struct
19514 function argument; update.
19515 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
19516 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
19517 build_post_landing_pads, dw2_build_landing_pads,
19518 sjlj_assign_call_site_values, sjlj_mark_call_sites,
22129589 19519 sjlj_emit_function_enter, sjlj_emit_function_enter,
69c32ec8
JH
19520 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
19521 sjlj_build_landing_pads, finish_eh_generation,
19522 remove_exception_handler_label, remove_eh_handler,
19523 maybe_remove_eh_handler, add_reachable_handler,
17c340e0
UB
19524 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
19525 add_action_record, collect_one_action_chain, add_call_site,
19526 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
69c32ec8
JH
19527 sjlj_output_call_site_table, output_function_exception_table,
19528 * except.h (note_current_region_may_contain_throw): Remove
19529 (get_exception_pointer, get_exception_filter): Do not take struct
19530 function argument.
19531 * Makefile.in (GTFILES): Put varargs before struct function.
19532
bd1f29d9
EB
195332008-04-15 Eric Botcazou <ebotcazou@adacore.com>
19534
19535 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
19536 punt for STRING_CST.
19537 (get_constraint_for): Deal with STRING_CST here instead.
19538
3bb3bb2d
RG
195392008-04-15 Richard Guenther <rguenther@suse.de>
19540
19541 * tree-ssa-propagate.c (substitute_and_fold): Substitute
19542 statements in a basic-block with a backward walk. Do not
19543 substitute into dead statements but instead remove those.
19544
d9338cf0
RG
195452008-04-15 Richard Guenther <rguenther@suse.de>
19546
19547 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
19548 to zero, thus disable creation of SFTs.
19549
7e80c6bf
EB
195502008-04-15 Eric Botcazou <ebotcazou@adacore.com>
19551
19552 * tree-predcom.c (suitable_reference_p): Return false if the
19553 reference can throw.
19554
b97d8153
JJ
195552008-04-15 Jakub Jelinek <jakub@redhat.com>
19556
19557 PR c/35751
19558 * c-decl.c (finish_decl): If extern or static var has variable
19559 size, set TREE_TYPE (decl) to error_mark_node.
19560
e49cf927 195612008-04-15 Rafael Espíndola <espindola@google.com>
d0599470 19562
b97d8153 19563 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d0599470
RAE
19564 variable arg1.
19565
649caaad
RG
195662008-04-15 Richard Guenther <rguenther@suse.de>
19567
19568 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
19569 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
19570 (visit_reference_op_load): Do walk vuse-vdef chains on
19571 vn_reference_lookup.
19572 (visit_reference_op_store): But do not here.
19573 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
19574 vn_reference_lookup.
19575 (vn_lookup_with_vuses): But do so here.
19576
55d7d0fa
ILT
195772008-04-14 Ian Lance Taylor <iant@google.com>
19578
19579 * fold-const.c (fold_overflow_warning): Remove assertion.
19580
2c4eec69
BE
195812008-04-15 Ben Elliston <bje@au.ibm.com>
19582
19583 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
19584 temp1 local variables.
19585
195862008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
40f39798
ZM
19587
19588 PR target/35661
19589 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
19590 ".text.unlikely" section as executable.
19591
07acc7b3
JW
195922008-04-14 James E. Wilson <wilson@tuliptree.org>
19593
19594 * config/ia64/ia64.c (rtx_needs_barrier): Handle
19595 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
19596 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
19597 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
19598 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
19599 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
19600 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
19601
4c9db6e0
ILT
196022008-04-14 Ian Lance Taylor <iant@google.com>
19603
19604 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
19605 * fold-const.c (fold_comparison): If appropriate, test
19606 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
19607 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
19608 reassociating a pointer type.
19609 * doc/invoke.texi (Optimize Options): Document that
19610 -fstrict-overflow applies to pointer wraparound.
19611
305da3ec
JH
196122008-04-13 Jan Hubicka <jh@suse.cz>
19613
19614 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
19615
298ac1dd
AP
196162008-04-12 Andrew Pinski <pinskia@gmail.com>
19617
19618 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
19619 we are going to "save the world".
19620
70a7c7f1
HPN
196212008-04-13 Hans-Peter Nilsson <hp@axis.com>
19622
19623 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
19624 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
19625 operand 0 constraint, not "=".
19626
ad7aacba
JW
196272008-04-11 James E. Wilson <wilson@tuliptree.org>
19628
19629 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
19630
9d6facc7
L
196312008-04-11 H.J. Lu <hongjiu.lu@intel.com>
19632
19633 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
19634 of size of positions_needed * CHAR_BIT.
19635
4fe663b0
L
196362008-04-11 H.J. Lu <hongjiu.lu@intel.com>
19637
19638 PR middle-end/35897
19639 * dse.c (store_info): Change positions_needed to unsigned
19640 HOST_WIDE_INT.
19641 (lowpart_bitmask): New.
19642 (record_store): Cast to unsigned HOST_WIDE_INT for
19643 positions_needed. Assert width <= size of positions_needed *
19644 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
19645 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
19646 lowpart_bitmask to set mask.
19647
9fdd7520
BS
196482008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
19649
19650 * config/bfin/constraints.md: New file.
19651 * config/bfin/bfin.md: Include it.
19652 (adddi3): Use satisfies_constraint functions instead of the old macros.
19653 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
19654 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
19655 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
19656 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
19657 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
19658 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
19659 EXTRA_CONSTRAINT): Delete.
19660 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
19661 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
19662 of the old macros.
19663 * config/bfin/bfin.c: Include "tm-constrs.h".
19664 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
19665 Use satisfies_constraint functions instead of the old macros.
19666 * doc/md.texi (Blackfin Constraints): Update file name reference.
19667
0a4bf1d3
RG
196682008-04-11 Richard Guenther <rguenther@suse.de>
19669
19670 PR tree-optimization/35869
19671 * tree-vrp.c (execute_vrp): Move switch statement update after
19672 jump threading. Schedule another cfg cleanup run.
19673
21516d64
VR
196742008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
19675
19676 PR c/35744
19677 * attribs.c (decl_attributes): Return early on errorneous node.
19678
0598f31b
OR
196792008-04-10 Oleg Ryjkov <olegr@google.com>
19680
19681 * tree.h (struct tree_base): Added a new flag default_def_flag.
19682 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
19683
a1fcb9a1
KK
196842008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
19685
19686 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
19687
6ef5fab0
JDA
196882008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19689
19690 PR target/35768
19691 * pa.md: Define mode iterator P. Define mode attribute dwc.
19692 (dcacheflush): Update pattern to use iterator P and attribute dwc.
19693 (icacheflush): Likewise.
19694 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
19695 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
19696
e47f8bba
BE
196972008-04-11 Ben Elliston <bje@au.ibm.com>
19698
19699 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
19700
e49cf927 197012008-04-10 Rafael Espíndola <espindola@google.com>
2893f753 19702
b97d8153 19703 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2893f753
RAE
19704 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
19705 (extract_range_from_expr): The same.
19706
5fb79e4c
AN
197072008-04-10 Adam Nemet <anemet@caviumnetworks.com>
19708
19709 * config/mips/mips.md (GPR2): New mode iterator.
19710 (seq): Add comment.
19711 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
19712 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
19713 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
19714 Rewrite these to take two modes, the mode of comparison and the
19715 mode of the destination.
19716 * config/mips/mips.c (mips_expand_scc): Instead of having
19717 paradoxical subreg as destination, expand "narrowing" scc if mode
19718 of comparison is SI and target is requested in DI mode.
19719 (mips_emit_int_order_test): Update comment. Make mode of
19720 comparison match CMP0 rather than TARGET. When creating inverse
19721 target use mode of TARGET.
19722
63d628b2
AN
197232008-04-10 Adam Nemet <anemet@caviumnetworks.com>
19724
19725 * gcov-dump.c (tag_summary): Only print summaries for the first
19726 GCOV_COUNTERS_SUMMABLE counters.
19727
6dd18eb1
UB
197282008-04-10 Uros Bizjak <ubizjak@gmail.com>
19729
19730 * config/i386/i386.md (absneg): New code iterator.
19731 (absnegprefix): New code attribute.
19732 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
19733 patterns using absneg code iterator.
19734 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
19735 using absneg code iterator.
19736 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
19737 *neg<mode>2 patterns using absneg code iterator.
19738 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19739 *negextendsfdf2 patterns using absneg code iterator.
19740 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
19741 *negextendsfxf2 patterns using absneg code iterator.
19742 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19743 *negextendsfdf2 patterns using absneg code iterator.
19744 * config/i386/sse.md (<code><mode>2): Macroize expander from
22129589 19745 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
6dd18eb1 19746
f40bee31
AK
197472008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
19748
19749 * config/s390/s390.h: Remove the remains of the recent search
19750 & replace action of current_function_outgoing_args_size.
19751
19aec6b0
IR
197522008-04-10 Ira Rosen <irar@il.ibm.com>
19753
19754 PR tree-optimization/35821
19755 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
19756 NEW_STMT_LIST is not NULL.
19757
ee8f0bd7
DE
197582008-04-09 David Edelsohn <edelsohn@gnu.org>
19759
19760 PR libstdc++/35597
19761 * toplev.c (process_options): Remove -ffunction-sections debugging
19762 warning.
19763
3a3a1fe1
PB
197642008-04-09 Peter Bergner <bergner@vnet.ibm.com>
19765
19766 PR middle-end/PR28690
19767 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
19768 than gen_rtx_fmt_ee to perform more canonicalizations.
19769
e0941605
JDA
197702008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19771
19772 PR driver/35665
19773 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
19774
2f9ea521
RG
197752008-04-09 Richard Guenther <rguenther@suse.de>
19776
19777 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
19778 (dump_function_to_file): Dump function arguments with types.
19779
02765a37
RG
197802008-04-08 Richard Guenther <rguenther@suse.de>
19781
19782 * fold-const.c (fold_widened_comparison): Do not allow
19783 sign-changes that change the result.
19784
a0f39282
JJ
197852008-04-08 Janis Johnson <janis187@us.ibm.com>
19786
19787 PR target/35839
19788 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
19789 kinds of indirect references.
19790
7f62878c
DE
197912008-04-08 David Edelsohn <edelsohn@gnu.org>
19792
19793 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
19794 GNU Fortran language string.
19795
e49cf927 197962008-04-08 Rafael Espíndola <espindola@google.com>
a1a6e271
RAE
19797
19798 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
19799 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
19800 * tree.h (tree_call_nonnegative_warnv_p): New.
19801
57b9e367
JH
198022008-04-08 Jan Hubicka <jh@suse.cz>
19803
19804 * function.c (free_after_compilation): Clear out regno_reg_rtx
19805 pointer.
19806
a95c8615
PB
198072008-04-08 Peter Bergner <bergner@vnet.ibm.com>
19808
19809 Revert
19810 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
19811
19812 PR middle-end/PR28690
19813 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
19814 same precedence as REG_POINTER and MEM_POINTER operands.
19815
903b3003
RG
198162008-04-08 Richard Guenther <rguenther@suse.de>
19817
19818 PR middle-end/35834
19819 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
19820 for adding index to base.
19821
0b03b302
KT
198222008-04-08 Kai Tietz <kai.tietz@onevision.com>
19823
19824 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
19825 (MINGW_ENABLE_EXECUTE_STACK): New.
19826 (IN_LIBGCC2): For libgcc include windows.h file for
19827 function declarations.
19828
582be0a1
HPN
198292008-04-08 Hans-Peter Nilsson <hp@axis.com>
19830
19831 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
19832 and tem2 if tem1 is not a REG or MULT.
19833
38173d38
JH
198342008-04-08 Jan Hubicka <jh@suse.cz>
19835
19836 * function.h (incomming_args): Break out of struct function.
19837 (function_subsections): Break out of struct function.
19838 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
19839 return_rtx and hard_reg_initial_vals from struct function.
19840 Kill inl_max_label_num.
19841 (current_function_pops_args, current_function_args_info,
19842 current_function_args_size, current_function_args_size,
19843 current_function_pretend_args_size,
19844 current_function_outgoing_args_size,
19845 current_function_internal_arg_pointer, current_function_return_rtx):
19846 Kill compatibility accestor macros.
19847 * builtins.c (expand_builtin_apply_args_1): Update.
19848 (expand_builtin_next_arg): Update.
19849 * df-scan.c (df_get_call_refs): Update.
19850 * dbxout.c (dbxout_function_end): Update.
19851 * dwarf2out.c (dwarf2out_switch_text_section): Update.
19852 (output_line_info): Update.
19853 (secname_for_decl): Update.
19854 (dwarf2out_var_location): Update.
19855 * function.c (free_after_compilation): Update.
19856 (assign_parm_find_stack_rtl): Update.
19857 (assign_parms): Update.
19858 (expand_dummy_function_end): Update.
19859 (expand_function_end): Update.
19860 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
19861 (expand_call): Update.
19862 (emit_library_call_value_1): Update.
19863 (store_one_arg): Update.
19864 * varasm.c (initialize_cold_section_name): Update.
19865 (unlikely_text_section): Update.
19866 (unlikely_text_section_p): Update.
19867 (assemble_start_function): Update.
19868 (assemble_end_function): Update.
19869 (default_section_type_flags): Update.
19870 (switch_to_section): Update.
19871 * integrate.c (set_decl_abstract_flags): Update.
19872 (get_hard_reg_initial_val): Update.
19873 (has_hard_reg_initial_val): Update.
19874 (allocate_initial_values): Update.
19875 * resource.c (init_resource_info): Update.
19876 * config/alpha/alpha.c (NUM_ARGS): Update.
19877 (direct_return): Update.
19878 (alpha_va_start): Update.
19879 (alpha_sa_size): Update.
19880 (alpha_initial_elimination_offset): Update.
19881 (alpha_expand_prologue): Update.
19882 (alpha_start_function): Update.
19883 (alpha_expand_epilogue): Update.
19884 (unicosmk_initial_elimination_offset):
19885 * config/alpha/alpha.md (call expander): Update.
19886 * config/s390/s390.c (s390_register_info): Update.
19887 (s390_register_info): Update.
19888 (s390_frame_info): Update.
19889 (s390_initial_elimination_offset): Update.
19890 (s390_build_builtin_va_list): Update.
19891 (s390_va_start): Update.
19892 * config/spu/spu.c (direct_return): Update.
19893 (spu_expand_prologue): Update.
19894 (spu_initial_elimination_offset): Update.
19895 (spu_build_builtin_va_list): Update.
19896 (spu_va_start): Update.
19897 * config/sparc/sparc.c (sparc_init_modes): Update.
19898 (sparc_compute_frame_size): Update.
19899 (function_value): Update.
19900 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
19901 * config/i386/i386.md (return expander): Update.
19902 * config/i386/i386.c (ix86_va_start): Update.
19903 (ix86_can_use_return_insn_p): Update.
19904 (ix86_compute_frame_layout): Update.
19905 (ix86_expand_epilogue): Update.
19906 * config/sh/sh.c (output_stack_adjust): Update.
19907 (calc_live_regs): Update.
19908 (sh_expand_prologue): Update.
19909 (sh_builtin_saveregs): Update.
19910 (sh_va_start): Update.
19911 (initial_elimination_offset): Update.
19912 (sh_allocate_initial_value): Update.
19913 (sh_function_ok_for_sibcall): Update.
19914 (sh_get_pr_initial_val): Update.
19915 * config/sh/sh.md (return expander): Update.
19916 * config/avr/avr.c (frame_pointer_required_p): UPdate.
19917 * config/crx/crx.c (crx_compute_frame): UPdate.
19918 (crx_initial_elimination_offset): UPdate.
19919 * config/xtensa/xtensa.c (compute_frame_size): Update
19920 (xtensa_builtin_saveregs): Update.
19921 (xtensa_va_start): Update.
19922 (order_regs_for_local_alloc): Update.
19923 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
19924 (xstormy16_expand_builtin_va_start): Update.
19925 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
19926 * config/m68hc11/m68hc11.md (return expanders): Update.
19927 * config/m68hc11/m68hc11.c (expand_prologue): Update.
19928 (expand_epilogue): Update.
19929 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
19930 (cris_simple_epilogue): Update.
19931 (cris_expand_prologue): Update.
19932 (cris_expand_epilogue): Update.
19933 * config/iq2000/iq2000.c (iq2000_va_start): Update.
19934 (compute_frame_size): Update.
19935 * config/mt/mt.c (mt_compute_frame_size): Update.
19936 * config/mn10300/mn10300.c (expand_prologue): Update.
19937 (expand_epilogue): Update.
19938 (initial_offset): Update.
19939 (mn10300_builtin_saveregs):
19940 * config/mn10300/mn10300.md (return expander): Update.
19941 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
19942 (ia64_initial_elimination_offset): Update.
19943 (ia64_initial_elimination_offset): Update.
19944 (ia64_expand_prologue): Update.
19945 * config/m68k/m68k.md (return expander): Update.
19946 * config/rs6000/rs6000.c (rs6000_va_start): Update.
19947 (rs6000_stack_info): Update.
19948 * config/mcore/mcore.c (layout_mcore_frame): Update.
19949 (mcore_expand_prolog): Update.
19950 * config/arc/arc.c (arc_compute_frame_size): Update.
19951 * config/score/score3.c (score3_compute_frame_size): Update.
19952 * config/score/score7.c (score7_compute_frame_size): Update.
19953 * config/arm/arm.c (use_return_insn): Update.
19954 (thumb_find_work_register): Update.
19955 (arm_compute_save_reg_mask): Update.
19956 (arm_output_function_prologue): Update.
19957 (arm_output_epilogue): Update.
19958 (arm_size_return_regs): Update.
19959 (arm_get_frame_offsets): Update.
19960 (arm_expand_prologue): Update.
19961 (thumb_exit): Update.
19962 (thumb_unexpanded_epilogue): Update.
19963 (thumb1_output_function_prologue): Update.
19964 * config/pa/pa.md (return expander): Update.
19965 * config/pa/pa.c (compute_frame_size): Update.
19966 (hppa_builtin_saveregs): Update.
19967 * config/mips/mips.c (mips_va_start): Update.
19968 (mips16_build_function_stub): Update.
19969 (mips_compute_frame_info): Update.
19970 (mips_restore_gp): Update.
19971 (mips_output_function_prologue): Update.
19972 (mips_expand_prologue): Update.
19973 * config/v850/v850.c (compute_frame_size): Update.
19974 (expand_prologue): * config/mmix/mmix.c (along): update.
19975 (mmix_initial_elimination_offset): update.
19976 (mmix_reorg): update.
19977 (mmix_use_simple_return): update.
19978 (mmix_expand_prologue): update.
19979 (mmix_expand_epilogue): Update.
19980 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
19981 (emit_link_insn): Update.
19982
5d9b8bb4
AS
199832008-04-08 Anatoly Sokolov <aesok@post.ru>
19984
22129589
AS
19985 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
19986 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
5d9b8bb4 19987 instructions.
22129589 19988 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
5d9b8bb4
AS
19989 atmega103 device.
19990
3e029763
JH
199912008-04-07 Jan Hubicka <jh@suse.cz>
19992
19993 * function.h (rtl): Rename to x_rtl.
19994 (crtl): New define.
19995 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
19996 frame_offset, stack_check_probe_note, arg_pointer_save_area,
19997 used_temp_slots avail_temp_slots, temp_slot_level,
19998 nonlocal_goto_handler_labels): Update accesstors.
19999 (rtl): New global variable.
20000 (struct function): Move some fileds to rtl_data.
20001 (get_arg_pointer_save_area): Update prototype.
20002 * builtins.c (expand_builtin_setjmp_receiver): Update call of
20003 get_arg_pointer_save_area.
20004 * expr.c (init_expr): Update
20005 * function.c (get_frame_size): Update
20006 (assign_stack_local): Update
20007 (expand_function_end): Update.
20008 (get_art_pointer_save_area): Update
22129589 20009 * function.h
3e029763
JH
20010 * emit-rtl.c (rtl): Declare.
20011 (regno_reg_rtx): Declare.
20012 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
20013 Update.
20014 (gen_reg_rtx): Update.
20015 * varasm.c (n_deferred_constatns): Update accestor.
20016 (init_varasm_status): Do not allocate varasm_status.
20017 (force_const_mem, get_pool_size, output_constant_pool): Update.
20018 * stmt.c (force_label_rtx): Do not use x_ prefixes.
20019 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
20020 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
20021 * sparc/sparc.h (INIT_EXPANDERS): Update.
20022 * ia64/ia64.h (INIT_EXPANDERS): Update.
20023
c3be2598
JW
200242008-04-07 James E. Wilson <wilson@tuliptree.org>
20025
20026 * reload.c (push_secondary_reload): Add missing break to for loop.
20027
46b71b03
PB
200282008-04-07 Peter Bergner <bergner@vnet.ibm.com>
20029
20030 PR middle-end/PR28690
20031 * rtlanal.c: Update copyright years.
20032 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
20033 as REG_POINTER and MEM_POINTER operands.
20034 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
20035 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
20036 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
20037 * gcse.c: Update copyright years.
20038 (pre_delete): Call gen_reg_rtx_and_attrs.
20039 (hoist_code): Likewise.
20040 (build_store_vectors): Likewise.
20041 (delete_store): Likewise.
20042 * loop-invariant.c (move_invariant_reg): Likewise.
20043 Update copyright years.
20044
64ef8953
UB
200452008-04-07 Uros Bizjak <ubizjak@gmail.com>
20046
20047 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
20048 control string instead of quoted.
20049
4218dc2d 200502008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
84159bd8 20051
64ef8953
UB
20052 * doc/rtl.texi: Rewrite of subreg section.
20053
8502420b
KT
200542008-04-07 Kai Tietz <kai.tietz@onevision.com>
20055
64ef8953
UB
20056 PR/35842
20057 * config/i386/i386.c (legitimize_pic_address): Add treating
20058 of dllimport SYM_REF's.
20059 (legitimize_dllimport_symbol): Add prototype.
8502420b 20060
39fcde8f
EB
200612008-04-07 Eric Botcazou <ebotcazou@adacore.com>
20062
20063 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
20064 reference in constructor with non self-referential type.
20065
9dd9bf80
EB
200662008-04-07 Eric Botcazou <ebotcazou@adacore.com>
20067
20068 Removal of Return with Depressed Stack Pointer support
20069 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
20070 (ECF_SP_DEPRESSED): Likewise.
20071 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
20072 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
20073 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
20074 (expand_call): Do not test ECF_SP_DEPRESSED.
20075 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
20076 * function.c (keep_stack_depressed): Delete.
20077 (handle_epilogue_set): Likewise.
20078 (update_epilogue_consts): Likewise.
20079 (emit_equiv_load): Likewise.
20080 (thread_prologue_and_epilogue_insns): Remove support for Return with
20081 Depressed Stack Pointer.
20082 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
20083
3633df5a
RG
200842008-04-06 Richard Guenther <rguenther@suse.de>
20085
20086 PR tree-optimization/35400
20087 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
20088 information from SSA_NAMEs.
20089
5dc77808
AS
200902008-04-06 Anatoly Sokolov <aesok@post.ru>
20091
20092 * config/avr/avr.h (avr_mega_p): Remove declaration.
20093 (AVR_MEGA): Remove macro.
20094 * config/avr/avr.c (avr_mega_p): Remove variable.
20095 (avr_override_options): Remove inicializion of avr_mega_p.
20096 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
20097 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
20098 (avr_jump_mode): (Ditto.).
20099 (avr_output_progmem_section_asm_op): (Ditto.).
20100 (avr_asm_init_sections): (Ditto.).
20101 (avr_asm_init_sections): (Ditto.).
20102 (avr_rtx_costs): (Ditto.).
20103 * config/avr/avr.md: (Ditto.).
22129589 20104 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
5dc77808
AS
20105 '__AVR_MEGA__'.
20106
8c51effa
RG
201072008-04-06 Richard Guenther <rguenther@suse.de>
20108
20109 PR tree-optimization/35842
20110 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
20111 is_gimple_invariant_address.
20112
3135ce84
FXC
201132008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
20114
20115 * gcc.c (default_compilers): Sync Fortran extensions list with
20116 that in fortran/lang-specs.h.
20117 * doc/invoke.texi: Likewise.
20118 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
20119 * dwarf2out.c (gen_compile_unit_die): Likewise.
20120
d7d7db8b
TC
201212008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
20122
20123 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
20124
27183bba
UB
201252008-04-05 Uros Bizjak <ubizjak@gmail.com>
20126
20127 PR target/12329
20128 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
20129 attribute is used for nested functions.
20130
9e016eba
JH
201312008-04-05 Jan Hubicka <jh@suse.cz>
20132
9fb7564e
JH
20133 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
20134
9e016eba
JH
20135 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
20136 letter argument.
20137 (dump_files): Update.
20138 (enable_rtl_dump_file): Do not accept letter argument.
20139 * tree-pass.h (dump_file_info): Remove letter argument.
20140 * toplev.c (decode_d_option): Update -da handling.
20141 * toplev.h (enable_rtl_dump_file): Update prototype.
20142 * passes.c (register_one_dump_file): Do not accept IPA argument; work
20143 it out based on pass type.
20144 (register_dump_files_1): Likewise.
20145 (init_optimization_passes): Update register_one_dump_file calls.
27183bba
UB
20146 (execute_one_pass): Sanity check that IPA passes are called at IPA
20147 level and RTL passes at RTL level.
9e016eba
JH
20148 (execute_pass_list): IPA pass can not be after or subpass of
20149 GIMPLE/RTL pass.
20150 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
20151 disallov RTL subpasses of IPA subpasses.
20152
23ef6d21
BE
201532008-04-05 Ben Elliston <bje@au.ibm.com>
20154
20155 * tree-cfg.c (need_fake_edge_p): Return false for calls to
20156 builtins that return exactly once and do not throw. Cache call to
20157 call_expr_flags.
20158
3c2397cd
AH
201592008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
20160
20161 PR rtl-optimization/34916
20162 PR middle-end/35519
20163 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
20164 between instruction pairs.
20165
9eb3a0dd
N
201662008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
20167
20168 * doc/invoke.texi: Document -mbitops for SH.
20169 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
20170 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
20171 * config/sh/sh.c (print_operand): Add %t operand code.
20172 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
20173 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
20174 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
20175 (extendqihi2): Likewise.
20176 (movqi_i): Likewise.
20177 (insv): Use bset, bclr and bst instructions for SH2A if possible.
20178 (extv): Use bld instruction for SH2A if possible.
20179 (extzv): Likewise.
20180 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
20181 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
20182 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
20183 (bset.b, bclr.b): Define peepholes.
20184 * config/sh/sh.opt (mbitops): New option.
20185
fdf4f148
JJ
201862008-04-04 Janis Johnson <janis187@us.ibm.com>
20187
20188 PR target/35620
20189 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
20190 and view convert expression.
20191
3088d404
JJ
201922008-04-04 Jakub Jelinek <jakub@redhat.com>
20193
20194 PR target/35364
20195 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
20196
8b96a312
L
201972008-04-04 H.J. Lu <hongjiu.lu@intel.com>
20198
20199 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
20200
20201 * config/i386/cpuid.h (bit_AES): New.
20202 (bit_PCLMUL): Likewise.
20203
20204 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
20205 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
20206 SSE2 if AES or PCLMUL is enabled.
20207 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
20208 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20209 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
20210 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
20211 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
20212 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
20213 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20214 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
20215 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
20216 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
20217 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
20218 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
20219 __builtin_ia32_aeskeygenassist128 and
20220 __builtin_ia32_pclmulqdq128.
20221 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
20222 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
20223 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
20224
20225 * config/i386/i386.h (TARGET_AES): New.
20226 (TARGET_PCLMUL): Likewise.
20227 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
20228
20229 * config/i386/i386.md (UNSPEC_AESENC): New.
20230 (UNSPEC_AESENCLAST): Likewise.
20231 (UNSPEC_AESDEC): Likewise.
20232 (UNSPEC_AESDECLAST): Likewise.
20233 (UNSPEC_AESIMC): Likewise.
20234 (UNSPEC_AESKEYGENASSIST): Likewise.
c9a22ea1 20235 (UNSPEC_PCLMUL): Likewise.
8b96a312
L
20236
20237 * config/i386/i386.opt (maes): New.
20238 (mpclmul): Likewise.
20239
20240 * config/i386/sse.md (aesenc): New pattern.
20241 (aesenclast): Likewise.
20242 (aesdec): Likewise.
20243 (aesdeclast): Likewise.
20244 (aesimc): Likewise.
20245 (aeskeygenassist): Likewise.
20246 (pclmulqdq): Likewise.
20247
20248 * config/i386/wmmintrin.h: New.
20249
20250 * doc/extend.texi: Document AES and PCLMUL built-in function.
20251
20252 * doc/invoke.texi: Document -maes and -mpclmul.
20253
e8924938
PB
202542008-04-04 Paolo Bonzini <bonzini@gnu.org>
20255
20256 * function.c (free_after_parsing): Replace with
20257 cxx_push_function_context from C++ front-end.
20258 (allocate_struct_function): Don't call langhook.
20259 * langhooks.h (struct lang_hooks_for_functions): Delete.
20260 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
20261 member "function".
20262 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
20263 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
20264 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
20265 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
20266 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
20267 remove LANG_HOOKS_FUNCTION_INITIALIZER.
20268 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
20269
20270 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
20271 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
22129589 20272
05008a0c
JJ
202732008-04-04 Jakub Jelinek <jakub@redhat.com>
20274
20275 PR c/35440
20276 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
20277 for all types.
20278
c071e8bc
RG
202792008-04-04 Richard Guenther <rguenther@suse.de>
20280
20281 PR middle-end/35823
20282 * fold-const.c (optimize_minmax_comparison): Use the correct
20283 type for the constant in the simplified comparison.
20284
f4a1dd0d
ZM
202852008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
20286
20287 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
20288 Pass L2 size as "--param l2-cache-size" to the compiler.
20289 (decode_l2_cache): New function to decode L2 cache parameters using
20290 0x8000006 extended cpuid function.
20291 (detect_caches_amd): Determine parameters of L2 cache using
20292 decode_l2_caches function.
20293 (decode_caches_intel): Decode L2 cache parameters.
20294 (detect_caches_intel): Determine L2 cache parameters using
20295 decode_caches_intel and decode_l2_caches functions.
20296
3ee909cb
BW
202972008-04-03 Bob Wilson <bob.wilson@acm.org>
20298
20299 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
20300 secondary input reload for subword loads from the constant pool.
20301
6db07dcb
JJ
203022008-04-03 Janis Johnson <janis187@us.ibm.com>
20303
383e91e4
JJ
20304 PR target/35713
20305 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
20306 constants of the appropriate size for runtime calculations.
20307
6db07dcb
JJ
20308 PR c/35712
20309 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
20310 decimal-float literal constant zero.
20311
5da250fc
JJ
203122008-04-03 Jakub Jelinek <jakub@redhat.com>
20313
79addd1f
JJ
20314 PR c/35738
20315 * c-parser.c (c_parser_omp_atomic): Call
20316 default_function_array_conversion on the RHS.
20317
5da250fc
JJ
20318 PR middle-end/35818
20319 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
20320 call is_variable_sized if decl has incomplete type.
20321
940f3b52
L
203222008-04-03 H.J. Lu <hongjiu.lu@intel.com>
20323
20324 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
20325
6ac935c1
AN
203262008-04-03 Adam Nemet <anemet@caviumnetworks.com>
20327
20328 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
20329 iterators.
64ef8953 20330 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6ac935c1
AN
20331 (sgt<u>): Merge sgt and sgtu into new expander.
20332 (sgt, sgtu): Remove expanders.
64ef8953 20333 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6ac935c1
AN
20334 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
20335 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
20336 *sgtu_<mode>_mips16 into new pattern.
20337 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
20338 (sge<u>): Merge sge and sgeu into new expander.
20339 (sge, sgeu): Remove expanders.
20340 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
20341 new pattern.
20342 (*sge_<mode>, second *sge_<mode>): Remove patterns.
20343 (slt<u>): Merge slt and sltu into new expander.
20344 (slt, sltu): Remove expanders.
64ef8953 20345 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6ac935c1
AN
20346 (*slt_<mode>, *sltu_<mode>): Remove patterns.
20347 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
20348 *sltu_<mode>_mips16 into new pattern.
20349 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
20350 (sle<u>): Merge sle and sleu into new expander.
20351 (sle, sleu): Remove expanders.
64ef8953 20352 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6ac935c1
AN
20353 (*sle_<mode>, *sleu_<mode>): Remove patterns.
20354 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
20355 *sleu_<mode>_mips16 into new pattern.
20356 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
20357
6b0c2336
JH
203582008-04-03 Jan Hubicka <jh@suse.cz>
20359
20360 PR tree-optimization/35795
20361 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
20362 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
20363 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
20364 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
20365 * score/score3.c (score3_output_mi_thunk): Likewise.
20366 * score/score7.c (score7_output_mi_thunk): Likewise.
20367 * mips/mips.c (mips_output_mi_thunk): Likewise.
20368
b47ee386
RG
203692008-04-03 Richard Guenther <rguenther@suse.de>
20370
20371 * tree-vrp.c (extract_range_from_unary_expr): Handle all
20372 conversions. Simplify code.
20373
2a7428c0
KK
203742008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
20375
20376 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
20377
6cba282a
TT
203782008-04-03 Tom Tromey <tromey@redhat.com>
20379 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20380
20381 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
20382 * config/bfin/t-bfin-linux (generated_files): Add
20383 linux-sysroot-suffix.h.
20384 * doc/install.texi (Prerequisites): Require make 3.80.
20385 * doc/sourcebuild.texi (Front End Directory): Document new
20386 variable.
20387 * Makefile.in (generated_files): New variable.
20388 (ALL_HOST_OBJS): New variable.
20389 ($(ALL_HOST_OBJS)): New target.
20390
9ff420f1
PB
203912008-04-03 Paolo Bonzini <bonzini@gnu.org>
20392
6b0c2336
JH
20393 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
20394 (remap_block): Call id->transform_lang_insert_block instead
20395 of langhook.
20396 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
20397 Set id.transform_lang_insert_block to NULL.
20398 (clone_body): Move to cp/optimize.c
20399 * tree-inline.h (struct copy_body_data): Change
20400 transform_lang_insert_block to function pointer.
20401 (copy_generic_body, copy_decl_no_change): Export.
20402 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
20403 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
20404 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
20405
20406 * c-tree.h (insert_block): Kill.
20407 * c-decl.c (insert_block): Kill.
9ff420f1 20408
d2784db4
PB
204092008-04-03 Paolo Bonzini <bonzini@gnu.org>
20410
6b0c2336
JH
20411 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
20412 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
20413 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
20414 argument.
20415 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
20416 argument, call {push,pop}_function_context from here.
20417 * c-parser.c: Use c_{push,pop}_function_context.
20418
20419 * function.c (push_function_context_to): Move meat ...
20420 (push_function_context): ... here. Simplify.
20421 * function.c (pop_function_context_from): Move meat ...
20422 (pop_function_context): ... here. Simplify.
20423 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
20424 leave_nested).
20425 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
20426 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
20427 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
20428 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2784db4 20429
9e0aebca
BE
204302008-04-03 Ben Elliston <bje@au.ibm.com>
20431
20432 * expmed.c (extract_force_align_mem_bit_field): Remove.
20433
55187c8a
RG
204342008-04-03 Richard Guenther <rguenther@suse.de>
20435
20436 PR middle-end/35800
20437 * expr.h (try_casesi): Adjust prototype.
20438 * expr.c (try_casesi): Take fallback label as extra parameter.
20439 Use that for gen_casesi if default_label is NULL.
20440 * stmt.c (expand_case): Pass fallback label to try_casesi,
20441 make sure to fill gaps with a fallback label if default_label
20442 is not present.
20443
e49cf927 204442008-04-03 Dominique d'Humières <dominiq@lps.ens.fr>
d7087dd2
DH
20445
20446 PR target/35801
20447 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
20448
609023ff
BE
204492008-04-03 Ben Elliston <bje@au.ibm.com>
20450
20451 * expmed.c (extract_split_bit_field): Remove if (0) code.
20452 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
20453 (do_ds_constraint): Likewise.
20454
93d45d9e
JM
204552008-04-02 Joseph Myers <joseph@codesourcery.com>
20456
20457 * doc/cppopts.texi (-dU): Document.
20458 * c-common.h (flag_dump_macros): Update comment.
20459 * c-opts.c (handle_OPT_d): Handle -dU.
20460 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
20461 dump_queued_macros, cb_used_define, cb_used_undef): New.
20462 (init_pp_output): Handle -dU.
20463 (cb_line_change): Call dump_queued_macros.
20464 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
20465
e6b69d0e
AS
204662008-04-02 Anatoly Sokolov <aesok@post.ru>
20467
22129589 20468 * config/avr/predicates.md (io_address_operand): New predicate.
e6b69d0e
AS
20469 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
20470 * config/avr/avr.c (avr_io_address_p): Remove function.
22129589 20471 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
e6b69d0e
AS
20472 'avr_io_address_p' function.
20473 (out_movhi_r_mr): (Ditto.).
20474 (out_movqi_mr_r): (Ditto.).
20475 (out_movhi_mr_r): (Ditto.).
20476 (avr_address_cost): (Ditto.).
20477
7b198002
UB
204782008-04-02 Uros Bizjak <ubizjak@gmail.com>
20479
20480 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
20481 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
20482 in 32bit mode when XMM registers are available to avoid store
20483 forwarding stalls.
20484 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
20485 corresponding post-reload splitters.
20486
abe08645
L
204872008-04-02 H.J. Lu <hongjiu.lu@intel.com>
20488
20489 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
20490 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
20491 __builtin_ia32_roundss.
20492 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
20493 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
20494 __builtin_ia32_roundss.
20495 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
20496 IX86_BUILTIN_SHUFPD here.
20497
94237c92
L
204982008-04-02 H.J. Lu <hongjiu.lu@intel.com>
20499
20500 * config/i386/i386.md (plogic): New.
20501 (plogicprefix): Likewise.
20502
20503 * config/i386/mmx.md (mmx_<code><mode>3): New.
20504 (mmx_and<mode>3): Removed.
20505 (mmx_ior<mode>3): Likewise.
20506 (mmx_xor<mode>3): Likewise.
20507
20508 * config/i386/sse.md (<code><mode>3): New.
20509 (*<code><mode>3): Likewise.
20510 (*<code><mode>3): Likewise.
20511 (<code><mode>3): Likewise.
20512 (*sse_<code><mode>3): Likewise.
20513 (*sse2_<code><mode>3): Likewise.
20514 (<code>tf3): Likewise.
20515 (*<code>tf3): Likewise.
20516 (and<mode>3): Likewise.
20517 (*and<mode>3): Likewise.
20518 (ior<mode>3): Removed.
20519 (*ior<mode>3): Likewise.
20520 (xor<mode>3): Likewise.
20521 (*xor<mode>3): Likewise.
20522 (*and<mode>3): Likewise.
20523 (*ior<mode>3): Likewise.
20524 (*xor<mode>3): Likewise.
20525 (and<mode>3): Likewise.
20526 (*sse_and<mode>3): Likewise.
20527 (*sse2_and<mode>3): Likewise.
20528 (andtf3): Likewise.
20529 (*andtf3): Likewise.
20530 (ior<mode>3): Likewise.
20531 (*sse_ior<mode>3): Likewise.
20532 (*sse2_ior<mode>3): Likewise.
20533 (iortf3): Likewise.
20534 (*iortf3): Likewise.
20535 (xor<mode>3): Likewise.
20536 (*sse_xor<mode>3): Likewise.
20537 (*sse2_xor<mode>3): Likewise.
20538 (xortf3): Likewise.
20539 (*xortf3): Likewise.
20540
b7814a18
RG
205412008-04-02 Richard Guenther <rguenther@suse.de>
20542
20543 PR tree-optimization/14495
20544 PR tree-optimization/34793
20545 * tree-vrp.c (struct switch_update): New structure.
20546 (to_remove_edges, to_update_switch_stmts): New VECs.
20547 (simplify_switch_using_ranges): New function. Remove not taken
20548 case labels and edges.
20549 (simplify_stmt_using_ranges): Call it.
20550 (identify_jump_threads): Mark edges we have queued for removal
20551 so we don't thread them.
20552 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
20553 case label vector.
20554 * tree-cfg.c (group_case_labels): Deal with missing default label.
20555 (tree_verify_flow_info): Allow missing default label.
20556 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
20557 (emit_case_nodes): Likewise.
20558 (expand_case): Do not rely on the default label to be present.
20559 * expr.c (try_casesi): Deal with NULL default_label.
20560 (do_tablejump): Likewise.
20561
8aea0bf0
RG
205622008-04-02 Richard Guenther <rguenther@suse.de>
20563
20564 PR tree-optimization/14495
20565 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
20566 SWITCH_EXPR here ...
20567 (vrp_visit_switch_stmt): ... but here (new function).
20568 (find_case_label_index): New helper function.
20569 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
20570
3f1c2278
PB
205712008-04-02 Paolo Bonzini <bonzini@gnu.org>
20572
20573 * fwprop.c: Fix ISO-C99ism.
20574
da0f6381
PB
205752008-04-02 Paolo Bonzini <bonzini@gnu.org>
20576
20577 PR bootstrap/35752
20578 * Makefile.in (objdir): Set it here.
20579 * configure.ac: Not here. Find dynamic linker characteristics.
20580 * exec-tool.in: Use them.
20581 * aclocal.m4: Regenerate.
20582 * configure: Regenerate.
20583
4846b435
PB
205842008-04-02 Paolo Bonzini <bonzini@gnu.org>
20585
20586 * expr.c (expand_var): Delete it.
20587 * expr.h (expand_var): Delete prototype.
20588 * function.c (expand_function_start): Use expand_decl instead.
20589 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
20590 langhook.
20591
4fefbcdb
AH
205922008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
20593
20594 PR rtl-optimization/35542
20595 * fwprop.c (forward_propagate_and_simplify): Replace
20596 loc_reg_mentioned_in_p with reg_mentioned_p.
20597
460d667d
PB
205982008-04-02 Paolo Bonzini <bonzini@gnu.org>
20599
4fefbcdb 20600 PR rtl-optimization/35281
460d667d
PB
20601 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
20602 (propagate_rtx_1): Handle PR_HANDLE_MEM.
20603 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
20604 (varying_mem_p): Move above propagate_rtx.
20605 (all_uses_available_at): Do not check MEMs.
20606
e49cf927 206072008-04-02 Rafael Espíndola <espindola@google.com>
a26a02d7
RAE
20608
20609 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
20610 (register_edge_assert_for_2): Split the cond argument.
20611 (register_edge_assert_for_1): Adjust for the change in
20612 register_edge_assert_for_2.
20613 (register_edge_assert_for): Split the cond argument.
20614 (find_switch_asserts): Adjust for the change in
20615 register_edge_assert_for.
20616
e8930cc1
KT
206172008-04-02 Kai Tietz <kai.tietz@onevision.com>
20618
20619 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
b97d8153 20620 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
893125e0 20621 offsets for 64-bit mingw.
b97d8153 20622 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
893125e0 20623 abi for x86_64-pc-mingw.
e8930cc1 20624
70b7b037
RG
206252008-04-02 Richard Guenther <rguenther@suse.de>
20626
20627 * tree-vrp.c (extract_range_from_assert): Make sure to not
20628 produce range min/max with TREE_OVERFOW set.
20629 If merging a anti-range and a range keep the anti-range if
20630 the range covers all values of the type.
20631 (register_edge_assert_for_2): Only allow sign-changing
20632 conversions in detecting canonical range checks. Also
20633 register an assert for the unsigned name if useful.
20634
20635 PR tree-optimization/35787
20636 * tree-vrp.c (vrp_val_max): New function.
20637 (vrp_val_min): Likewise.
20638 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
20639 (vrp_val_is_min): Likewise.
20640 (supports_overflow_infinity): Use vrp_val_{min,max}.
20641 (negative_overflow_infinity): Likewise.
20642 (positive_overflow_infinity): Likewise.
20643 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
20644 (is_positive_overflow_infinity): Likewise.
20645 (is_overflow_infinity): Likewise.
20646 (avoid_overflow_infinity): Use vrp_val_{min,max} and
20647 vrp_val_is_{min,max}.
20648 (set_and_canonicalize_value_range): Canonicalize anti-ranges
20649 to ranges if possible. Avoid empty ranges.
20650
10743280
JDA
206512008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20652
20653 PR middle-end/35705
20654 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
20655 the expression is a function address.
20656
7151ffbe
GH
206572008-04-01 George Helffrich <george@gcc.gnu.org>
20658
623f8e39 20659 PR fortran/35154, fortran/23057
7151ffbe
GH
20660 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
20661 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
20662 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
20663 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
20664 in common.
20665 (dbxout_syms): Check for COMMON-based symbol and wrap in
20666 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
20667 in bracket for efficiency.
20668
20669 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
20670 using DW_TAG_common_block + member offset.
20671 (add_pubname_string): New function.
20672 (dw_expand_expr): New function to find block name and offset for
20673 COMMON var.
20674 (common_check): New function to check whether symbol in Fortran COMMON.
20675 (gen_variable_die): If COMMON, use DW_TAG_common_block.
20676
dc197ab9
VR
206772008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
20678
20679 PR c/35436
20680 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
20681
9e9b5341
BE
206822008-04-02 Ben Elliston <bje@au.ibm.com>
20683
20684 * config/v850/v850.md (casesi): Remove if (0) code.
20685 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20686 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
20687
380edc9f
UB
206882008-04-01 Uros Bizjak <ubizjak@gmail.com>
20689
20690 * config/i386/i386.md (rex64suffix): New mode attribute.
20691 (floathi<mode>2): Disable expander for SSE math.
20692 (*floathi<mode>2_1): New insn insn_and_split pattern.
20693 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
20694 corresponding post-reload splitters.
20695 (*floathi<mode>2_i387): New macroized insn pattern.
20696 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
20697 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
20698 insn_and_split pattern.
20699 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
20700 New macroized instruction patterns and corresponding post-reload
20701 splitters.
20702 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
20703 and corresponding post-reload splitters.
20704 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
20705 New macroized instruction patterns.
20706 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
20707 macroized instruction patterns and corresponding post-reload splitters.
20708 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
20709 corresponding post-reload splitters.
20710 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
20711 New macroized instruction patterns.
20712 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
20713 corresponding post-reload splitters.
20714 (*floatsi<mode>2_i387): New macroized instruction patterns.
20715
78e8956b
L
207162008-04-01 H.J. Lu <hongjiu.lu@intel.com>
20717
20718 * config/i386/i386.md (smaxmin): New.
20719 (umaxmin): Likewise.
20720 (maxminiprefix): Likewise.
20721 (maxminfprefix): Likewise.
20722 (<code><mode>3): Likewise.
20723 (smin<mode>3): Removed.
20724 (smax<mode>3): Likewise.
20725
20726 * config/i386/mmx.md (mmx_<code>v2sf3): New.
20727 (mmx_<code>v4hi3): Likewise.
20728 (mmx_<code>v8qi3): Likewise.
20729 (mmx_smaxv2sf3): Removed.
20730 (mmx_sminv2sf3): Likewise.
20731 (mmx_umaxv8qi3): Likewise.
20732 (mmx_smaxv4hi3): Likewise.
20733 (mmx_uminv8qi3): Likewise.
20734 (mmx_sminv4hi3): Likewise.
20735
20736 * config/i386/sse.md (<addsub><mode>3): New.
20737 (*<addsub><mode>3): Likewise.
20738 (<sse>_vm<addsub><mode>3): Likewise.
20739 (<maxmin><mode>3): Likewise.
20740 (*<maxmin><mode>3_finite): Likewise.
20741 (*<maxmin><mode>3): Likewise.
20742 (<sse>_vm<maxmin><mode>3): Likewise.
20743 (sse3_h<addsub>v4sf3): Likewise.
20744 (sse3_h<addsub>v2df3): Likewise.
20745 (<maxmin>v16qi3): Likewise.
20746 (*<maxmin>v16qi3): Likewise.
20747 (<maxmin>v8hi3): Likewise.
20748 (*<maxmin>v8hi3): Likewise.
20749 (*sse4_1_<maxmin><mode>3): Likewise.
20750 (*sse4_1_<maxmin><mode>3): Likewise.
20751 (add<mode>3): Removed.
20752 (*add<mode>3): Likewise.
20753 (<sse>_vmadd<mode>3): Likewise.
20754 (sub<mode>3): Likewise.
20755 (*sub<mode>3): Likewise.
20756 (<sse>_vmsub<mode>3): Likewise.
20757 (smin<mode>3): Likewise.
20758 (*smin<mode>3_finite): Likewise.
20759 (*smin<mode>3): Likewise.
20760 (<sse>_vmsmin<mode>3): Likewise.
20761 (smax<mode>3): Likewise.
20762 (*smax<mode>3_finite): Likewise.
20763 (*smax<mode>3): Likewise.
20764 (<sse>_vmsmax<mode>3): Likewise.
20765 (sse3_haddv4sf3): Likewise.
20766 (sse3_haddv2df3): Likewise.
20767 (sse3_hsubv4sf3): Likewise.
20768 (sse3_hsubv2df3): Likewise.
20769 (umaxv16qi3): Likewise.
20770 (*umaxv16qi3): Likewise.
20771 (smaxv8hi3): Likewise.
20772 (*smaxv8hi3): Likewise.
20773 (*sse4_1_smax<mode>3): Likewise.
20774 (*sse4_1_umax<mode>3): Likewise.
20775 (uminv16qi3): Likewise.
20776 (*uminv16qi3): Likewise.
20777 (sminv8hi3): Likewise.
20778 (*sminv8hi3): Likewise.
20779 (*sse4_1_smin<mode>3): Likewise.
20780 (*sse4_1_umin<mode>3): Likewise.
20781
e49cf927 207822008-04-01 Rafael Espíndola <espindola@google.com>
220f1c29
RAE
20783
20784 * tree-cfg.c (verify_expr): remove in_phi.
78e8956b 20785 (verify_stmt): Don't call walk_tree with verify_expr. Use
220f1c29
RAE
20786 is_gimple_min_invariant instead of is_gimple_val.
20787
7f9766e4
JM
207882008-04-01 Joseph Myers <joseph@codesourcery.com>
20789
20790 * doc/include/gpl_v3.texi: Update for manpage generation.
20791 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
20792 gpl.texi.
20793 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
20794 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
20795 gpl_v3.texi instead of gpl.texi.
20796 (gpl.pod): New.
20797
d4c32e1d
JJ
207982008-04-01 Jakub Jelinek <jakub@redhat.com>
20799
20800 PR pch/13675
20801 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
20802
e49cf927 208032008-04-01 Rafael Espíndola <espindola@google.com>
764a79ed
RAE
20804
20805 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
20806 (extract_code_and_val_from_cond): Use
20807 extract_code_and_val_from_cond_with_ops.
20808
113c63b8
JH
208092008-04-01 Jan Hubicka <jh@suse.cz>
20810
20811 * function.c (free_after_compilation): Free epilogue_delay_list.
20812 (prepare_function_start): Assert that previous compilation was freed.
20813
ec24c3a3
JH
208142008-04-01 Jan Hubicka <jh@suse.cz>
20815 Jim Wilson <wilson@tuliptree.org>
20816 Andreas Tobler <andreast@gcc.gnu.org>
20817
20818 PR middle-end/35781
20819 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
20820 rtl.emit instead cfun->emit.
20821 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
20822 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
20823
1b82c3aa
BE
208242008-04-01 Ben Elliston <bje@au.ibm.com>
20825
20826 * doc/c-tree.texi (Function Basics): Fix grammatical error.
20827
2f908293
SP
208282008-03-31 Seongbae Park <seongbae.park@gmail.com>
20829
20830 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
20831 New options
20832 (fprofile-use): Add var flag_profile_use
380edc9f
UB
20833 * coverage.c (coverage_begin_output): Do not open a gcno file for
20834 output only if -ftest-coverage is set.
2f908293 20835 Do not add getpwd() to gcda file path.
380edc9f 20836 (build_gcov_info): Check the new flag
2f908293
SP
20837 flag_profile_datafile_relative_path.
20838 (coverage_init): Use profile_data_prefix.
20839 Read profile counter only if flag_profile_use is set.
20840 * opts.c (common_handle_option): New option fprofile-use=,
20841 fprofile-dir=, fprofile-generate=.
20842 * toplev.c (profile_data_prefix): New variable definition.
20843 * toplev.h (profile_data_prefix): New declaration.
20844 * doc/invoke.tex (Option Summary, Optimization Options):
20845 Add new options.
20846
1def9c3f
JW
208472008-03-31 James E. Wilson <wilson@tuliptree.org>
20848
380edc9f
UB
20849 * varasm.c (output_constant_pool_1): In LABEL_REF check,
20850 use tmp consistently.
048ffb8f 20851
1def9c3f
JW
20852 PR target/35695
20853 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
20854 * config/ia64/ia64.c (rtx_needs_barrier): Handle
20855 UNSPEC_FR_RECIP_APPROX_RES.
20856 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
20857
bb686a19
VR
208582008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
20859
20860 PR c/35750
20861 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
20862
a12bdb97
AP
208632008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
20864
20865 PR middle-end/30186
20866 * fold-const.c (fold_indirect_ref_1): Support accessing non first
20867 element of the vector via a pointer.
20868
2d4bba80
ILT
208692008-03-31 Ian Lance Taylor <iant@google.com>
20870
380edc9f 20871 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2d4bba80 20872
bd60bab2
JH
208732008-03-31 Jan Hubicka <jh@suse.cz>
20874
20875 * builtins.c (expand_builtin_setjmp_receiver): Update call of
20876 get_arg_pointer_save_area.
20877 * expr.c (init_expr): Just clear out rtl.expr.
20878 * function.c (free_after_compilation): Clear out whole RTL structure.
20879 (get_func_frame_size): Merge into ...
20880 (get_frame_size): ... this one.
20881 (assign_stack_local_1): Merge into ...
20882 (assign_stack_local): ... this one.
20883 (expand_function_end): Update call of get_arg_pointer_save_area.
20884 (get_art_pointer_save_area): Remove cfun argument.
20885 * function.h (emit_status): regno_pointer_align does not need length
20886 attribute. Move x_regno_reg_rtx to ...
20887 (regno_reg_rtx): ... new global array.
20888 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
20889 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
380edc9f
UB
20890 apply_args_value, forced_labels, stack_pointer_delta):
20891 Update accestors.
bd60bab2
JH
20892 (struct varasm_status): Move here from varasm.c
20893 (struct rtl_data): New. Move here some fields from struct function.
20894 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
20895 frame_offset, stack_check_probe_note, arg_pointer_save_area,
20896 used_temp_slots avail_temp_slots, temp_slot_level,
20897 nonlocal_goto_handler_labels): Update accesstors.
20898 (rtl): New global variable.
20899 (struct function): Move some fileds to rtl_data.
20900 (get_arg_pointer_save_area): Update prototype.
20901 * emit-rtl.c (rtl): Declare.
20902 (regno_reg_rtx): Declare.
380edc9f
UB
20903 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
20904 Update.
bd60bab2
JH
20905 (gen_reg_rtx): Update.
20906 (init_virtual_regs): Do not tate emit_status argument.
20907 (init_emit): Do not allocate emit.
20908 * varasm.c (varasm_statuc): Move to function.h.
20909 (n_deferred_constatns): Update accestor.
20910 (init_varasm_status): Do not allocate varasm_status.
20911 (force_const_mem, get_pool_size, output_constant_pool): Update.
20912 * stmt.c (force_label_rtx): Do not use x_ prefixes.
20913 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
20914
66f91b93
ZD
209152008-03-31 Zdenek Dvorak <ook@ucw.cz>
20916
20917 PR rtl-optimization/35729
20918 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
20919 references.
20920
66e1ecfe
L
209212008-03-31 H.J. Lu <hongjiu.lu@intel.com>
20922
20923 PR target/32000
20924 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
20925 load/store if memory is unaligned.
20926 (*movti_rex64): Likewise.
20927
20928 * config/i386/predicates.md (misaligned_operand): New.
20929
550386ad
AP
209302008-03-31 Andrew Pinski <pinskia@gmail.com>
20931
20932 PR tree-opt/35431
20933 * tree-ssa-phiopt.c (conditional_replacement): Return early for
20934 complex types.
20935
4e483a22
JB
209362008-03-31 Jan Beulich <jbeulich@novell.com>
20937
20938 * config/ia64/constraints.md: Add 'j' constraint.
20939 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
20940 (movdi_internal): Likewise.
20941
39ffbac9
VR
209422008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
20943
20944 PR c/35748
20945 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
20946
23594c97
L
209472008-03-30 H.J. Lu <hongjiu.lu@intel.com>
20948
20949 PR target/35757
20950 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
20951 proper error message for the third argument on blendpd and
20952 blendps.
20953
20954 * config/i386/sse.md (blendbits): New.
20955 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
20956
8f0e2671
EB
209572008-03-30 Eric Botcazou <ebotcazou@adacore.com>
20958
20959 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
20960
96648603
RG
209612008-03-30 Richard Guenther <rguenther@suse.de>
20962
20963 PR middle-end/31023
20964 * fold-const.c (fold_sign_changed_comparison): Do leave
20965 conversions to base-types alone.
20966
3ac0963a
AP
209672008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
20968
20969 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
20970 the link register if one altivec register is be saved.
20971
744c6d6e
BE
209722008-03-30 Ben Elliston <bje@au.ibm.com>
20973
20974 * final.c (final_scan_insn): Remove if (0) code.
20975
dbc518f0
VR
209762008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
20977
20978 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
20979
ad387dad
L
209802008-03-28 H.J. Lu <hongjiu.lu@intel.com>
20981
20982 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
20983 of V4SFmode to ix86_binary_operator_ok.
20984
9aba5d22
UB
209852008-03-28 Uros Bizjak <ubizjak@gmail.com>
20986
20987 * config/i386/i386.c (override_options): Initialize
20988 ix86_veclib_handler to ix86_veclibabi_svml when
20989 -mveclibabi=svml is used.
20990 (ix86_veclibabi_svml): New function for SVML ABI style
20991 vectorization support.
20992 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
20993
e49cf927 209942008-03-28 Rafael Espíndola <espindola@google.com>
2d3cd5d5
RAE
20995
20996 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
20997 (tree_binary_nonnegative_warnv_p): Make it public.
20998 (tree_single_nonnegative_warnv_p): Make it public.
20999 (tree_invalid_nonnegative_warnv_p): Make it public.
21000 (tree_unary_nonzero_warnv_p): Make it public.
21001 (tree_binary_nonzero_warnv_p): Make it public
21002 (tree_single_nonzero_warnv_p): Make it public.
21003 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
21004 (extract_range_from_binary_expr): Split the expr argument.
21005 (extract_range_from_unary_expr): Split the expr argument.
21006 (extract_range_from_comparison): Split the expr argument.
21007 (extract_range_from_expr): Use the new aux functions.
21008 (vrp_evaluate_conditional_warnv): Use
21009 vrp_evaluate_conditional_warnv_with_ops.
21010 * tree.h (tree_unary_nonzero_warnv_p): Declare.
21011 (tree_binary_nonzero_warnv_p): Declare.
21012 (tree_single_nonzero_warnv_p): Declare.
21013 (tree_expr_nonzero_warnv_p): Declare.
21014 (tree_unary_nonnegative_warnv_p): Declare.
21015 (tree_binary_nonnegative_warnv_p): Declare.
21016 (tree_single_nonnegative_warnv_p): Declare.
21017 (tree_invalid_nonnegative_warnv_p): Declare.
21018
2ab8dbf4
RG
210192008-03-28 Richard Guenther <rguenther@suse.de>
21020
21021 PR tree-optimization/30317
21022 PR tree-optimization/30911
21023 PR tree-optimization/34793
21024 * tree-vrp.c (set_and_canonicalize_value_range): New function.
21025 (struct assert_locus_d): New member EXPR.
21026 (register_new_assert_for): Add EXPR parameter to support
21027 ASSERT_EXPR <name, expr OP limit>.
21028 (register_edge_assert_for_1): Adjust callers.
21029 (find_assert_locations): Likewise.
9aba5d22 21030 (process_assert_insertions_for): Build condition from expression.
2ab8dbf4
RG
21031 (extract_range_from_assert): Handle ASSERT_EXPRs
21032 of the form ASSERT_EXPR <name, expr OP limit>.
21033 (register_edge_assert_for_2): New helper registering
21034 asserts for comparisons. Recognize range tests of the form
21035 (unsigned)i - CST1 OP CST2.
21036 (register_edge_assert_for_1): Use it.
21037 (register_edge_assert_for): Likewise.
21038 (needs_overflow_infinity): Integer sub-types
21039 do not need overflow infinities.
21040 (vrp_val_is_max): The extreme values of integer sub-types
21041 are those of the base type.
21042 (vrp_val_is_min): Likewise.
21043 * tree.def (ASSERT_EXPR): Document extra allowed conditional
21044 expressions.
21045
fc4f3261
NC
210462008-03-28 Nick Clifton <nickc@redhat.com>
21047
f6d2671e 21048 PR target/31110
fc4f3261 21049 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9aba5d22 21050 Return GENERAL_REGS for stack adjustment reloads.
fc4f3261 21051
501fb355
AP
210522008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
21053
21054 PR target/31334
21055 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
21056 const_vector when all the vectors are constant.
21057
ff779f98
BW
210582008-03-27 Bob Wilson <bob.wilson@acm.org>
21059
21060 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
21061 comparisons.
21062 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
21063 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
21064 (scc_sf): New.
21065 (s<code>_sf): Use new scc_sf attribute for opcode names.
21066
e980df8e
TT
210672008-03-27 Tom Tromey <tromey@redhat.com>
21068
21069 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
21070 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
21071 config/spu/t-spu-elf, config/i386/t-interix,
21072 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
21073 config/i386/x-darwin, config/i386/x-mingw32,
21074 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
21075 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
21076 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
21077 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
21078 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
21079 config/rs6000/x-darwin, config/rs6000/t-rs6000,
21080 config/score/t-score-elf, config/arm/t-strongarm-pe,
21081 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
21082 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
21083 Revert automatic dependency patch.
21084
c84555eb
L
210852008-03-27 H.J. Lu <hongjiu.lu@intel.com>
21086
21087 PR target/35657
21088 * config/i386/i386.c (ix86_function_arg_boundary): Align
21089 decimal floating point to its natural boundary.
21090
ffd837fe
RG
210912008-03-27 Richard Guenther <rguenther@suse.de>
21092
21093 PR middle-end/35716
21094 * fold-const.c (fold_comparison): Restrict distinct decl
21095 comparison folding to VAR_DECLs and PARM_DECLs. Do not
21096 solely rely on operand_equal_p.
21097
6b4e94bc
RG
210982008-03-27 Richard Guenther <rguenther@suse.de>
21099
21100 PR c/32511
21101 * c-common.c (handle_weak_attribute): Reject combination of
21102 weak and inline.
21103
62bc00e2
RG
211042008-03-27 Richard Guenther <rguenther@suse.de>
21105
21106 PR tree-optimization/32810
21107 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
21108 conversions from DECL_INITIAL.
21109 (fold_const_aggregate_ref): Likewise from constructor elements.
21110
72425608
ZD
211112008-03-27 Zdenek Dvorak <ook@ucw.cz>
21112
21113 * tree-affine.h (aff_combination_expand): Declare.
21114 (get_inner_reference_aff): Likewise.
21115 * tree-affine.c (aff_combination_expand): Split out from
21116 tree_to_aff_combination_expand.
21117 (get_inner_reference_aff): New function.
21118 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9aba5d22
UB
21119 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
21120 (struct lim_aux_data): sm_done field removed.
21121 (mem_ref_loc_p, mem_ref_locs_p): New types.
21122 (struct mem_ref): Added id, stored, accesses_in_loop,
21123 indep_loop, dep_loop, indep_ref, dep_ref fields.
21124 Removed is_stored, locs and next fields.
21125 (memory_accesses): New variable.
21126 (movement_possibility): Do not allow moving statements
21127 that store to memory.
21128 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
21129 New functions.
21130 (determine_max_movement): For statements with memory references,
21131 find the outermost loop in that the reference is independent.
21132 (move_computations_stmt): Mark the virtual operands for renaming.
21133 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
21134 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
21135 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
21136 add_vop_ref_mapping, create_vop_ref_mapping_loop,
21137 create_vop_ref_mapping, analyze_memory_references,
21138 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
21139 get_all_locs_in_loop, ref_always_accessed_p,
21140 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
21141 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
21142 store_motion_loop, store_motion): New functions.
21143 (struct vop_to_refs_elt): New type.
21144 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
21145 memref_hash, memref_eq, hoist_memory_references): Rewritten.
21146 (schedule_sm): Replaced by...
21147 (execute_sm): ... this.
21148 (determine_lsm_ref, hoist_memory_references,
21149 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
21150 find_more_ref_vops, free_mem_ref, free_mem_refs,
21151 determine_lsm_loop, determine_lsm): Removed.
21152 (tree_ssa_lim_finalize): Free data structures used by store motion.
21153 (tree_ssa_lim): Call analyze_memory_references. Use
21154 store_motion instead of determine_lsm.
72425608 21155
a929bc28
PB
211562008-03-27 Paolo Bonzini <bonzini@gnu.org>
21157
21158 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
21159 rename tmake_file to m68hc11/t-m68hc11.
21160 (mcore): Set inhibit_libc to true.
21161 * config.host (alpha*-dec-*vms*): Set extra_programs.
21162 (interix3*): Don't use host_xmake_file.
21163 * configure.ac: Let config.gcc override inhibit_libc.
21164 * configure: Regenerate.
21165
21166 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
21167 * config/t-openbsd-thread: Remove commented out lines.
22129589 21168
a929bc28
PB
21169 * config/x-interix: Remove.
21170
21171 * config/m68hc11/t-m68hc11-gas: Rename to...
21172 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
21173
21174 * config/mcore/t-mcore: Remove T_CFLAGS.
21175 * config/mcore/t-mcore-pe: Likewise.
21176
60d26958
PB
211772008-03-27 Paolo Bonzini <bonzini@gnu.org>
21178
21179 * configure.ac: Replace custom __GNU_SOURCE test with
21180 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
21181 * aclocal.m4: Regenerate.
21182 * configure: Regenerate.
21183 * config.in: Regenerate.
21184
bd03c084
RG
211852008-03-27 Richard Guenther <rguenther@suse.de>
21186
21187 * fold-const.c (target.h): Include.
21188 (fold_comparison): Fold comparison of addresses of decls
21189 that bind locally or of constants. Consolidate address folding code.
21190 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
21191 results from fold_binary_to_constant.
21192 (compare_values_warnv): Likewise.
21193
87a72aa8
AP
211942008-03-27 Andrew Pinski <pinskia@gmail.com>
21195
21196 PR middle-end/35429
21197 * fold-const.c (fold_truthop): Check for integeral types when folding
21198 a == 0 && b == 0 and a != 0 || b != 0 .
21199
6e1b3420
EB
212002008-03-26 Eric Botcazou <ebotcazou@adacore.com>
21201
21202 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
21203
33558d94
AS
212042008-03-26 Andreas Schwab <schwab@suse.de>
21205
21206 * doc/invoke.texi: Fix use of @item vs. @itemx.
21207
f6a9a9af
TT
212082008-03-26 Tom Tromey <tromey@redhat.com>
21209
21210 * Makefile.in (build/gensupport.o, build/print-rtl.o,
21211 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
21212 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
21213 build/gencodes.o, build/genconditions.o, build/genconfig.o,
21214 build/genconstants.o, build/genemit.o, build/genextract.o,
21215 build/genflags.o, build/genmddeps.o, build/genopinit.o,
21216 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
21217 options.h.
21218
2041e75c
RG
212192008-03-26 Richard Guenther <rguenther@suse.de>
21220
21221 Revert
21222 2008-03-26 Richard Guenther <rguenther@suse.de>
21223
21224 * fold-const.c (target.h): Include.
21225 (fold_comparison): Fold comparison of addresses of two decls
21226 that bind locally. Consolidate address folding code.
21227
aefa9d43
KG
212282008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21229
21230 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
21231 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
21232 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
21233 dconstsqrt2, dconstthird, dconste and/or dconst10.
21234 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
21235 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
21236 dconstsqrt2, dconste): Delete.
21237 (init_emit_once): Likewise. Simplify initializing dconstm1.
21238 Constify variable.
21239 * real.c (get_real_const): New.
21240 * real.h (dconst3, dconst10, dconstm2, dconstthird,
21241 dconstsqrt2, dconste): Delete.
21242 (real_value_const, get_real_const): New.
21243
35dd7cc3
L
212442008-03-26 H.J. Lu <hongjiu.lu@intel.com>
21245
21246 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
21247
21248 * config/i386/i386.c (ix86_function_arg_boundary): Check
21249 BIGGEST_ALIGNMENT instead of 128.
21250 (setup_incoming_varargs_64): Likewise.
21251
f91ed78d
TT
212522008-03-26 Tom Tromey <tromey@redhat.com>
21253
21254 * Makefile.in (DEPFILES): Add missing '/'.
21255
4990038d
RG
212562008-03-26 Richard Guenther <rguenther@suse.de>
21257
21258 * fold-const.c (target.h): Include.
21259 (fold_comparison): Fold comparison of addresses of two decls
21260 that bind locally. Consolidate address folding code.
21261
813ab1d7
NC
212622008-03-26 Nick Clifton <nickc@redhat.com>
21263
21264 PR target/31232
21265 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
21266 not allow INT+INT as a legitimate addressing mode.
21267
cf3135aa
RG
212682008-03-26 Richard Guenther <rguenther@suse.de>
21269
21270 * tree-flow.h (widen_bitfield): Remove declaration.
21271 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
21272 (widen_bitfield): Remove function.
21273 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
21274 code.
21275
fd88fd09
AP
212762008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
21277
22ec849c 21278 PR target/31558
fd88fd09
AP
21279 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
21280 error_mark_node's.
21281
fb959f72
RS
212822008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
21283
21284 PR rtl-optimization/35232
21285 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
21286 (forget_old_reloads_1, forget_marked_reloads): Don't clear
21287 reg_reloaded_call_part_clobbered here.
21288 (reload_regs_reach_end_p): New function.
21289 (reload_reg_rtx_for_input): New variable.
21290 (reload_reg_rtx_for_output): Likewise.
21291 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
22129589 21292 when reassigning a pseudo register. Load reloadreg from
fb959f72
RS
21293 reload_reg_rtx_for_input, moving the mode and register
21294 calculation to...
21295 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
21296 instead of the original when deciding whether an input reload
21297 would be a no-op or whether an output reload can be deleted.
21298 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
21299 when setting up new_spill_reg_store. Load it from
21300 reload_reg_rtx_for_output, moving the mode and register
21301 calculation to...
21302 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
21303 instead of the original when deciding whether an output reload
21304 would be a no-op. Do the same when modifying insn notes.
21305 Use rtx_equal_p instead of == to compare the registers.
21306 (inherit_piecemeal_p): Take a mode and two register numbers
21307 as argument.
21308 (emit_reload_insns): Clear new_spill_reg_store for every hard
21309 register in the reload register. Remove spill registers
21310 from reg_reloaded_valid before considering whether to record
21311 inheritance information for them. Use reload_reg_rtx_for_output
21312 instead of reg_rtx when recording output reloads. Use
21313 reload_reg_rtx_for_input instead of reg_rtx when recording
21314 input reloads. Set or clear reg_reloaded_call_part_clobbered
21315 at the same time as setting reg_reloaded_valid.
21316 (delete_output_reload): Add a new_reload_reg parameter and use it
21317 instead of rld[j].reg_rtx.
21318 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
21319 calls accordingly.
21320
a8c86f3f
TT
213212008-03-25 Tom Tromey <tromey@redhat.com>
21322
21323 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
21324 (build/genattr.o): Likewise.
21325 (build/genattrtab.o): Likewise.
21326 (build/gencodes.o): Likewise.
21327 (build/genconfig.o): Likewise.
21328 (build/genconstants.o): Likewise.
21329 (build/genemit.o): Likewise.
21330 (build/genextract.o): Likewise.
21331 (build/genflags.o): Likewise.
21332
f4d3e7fd 213332008-03-25 Bob Wilson <bob.wilson@acm.org>
22129589 21334
f4d3e7fd
BW
21335 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
21336 instead of size_int for integer types.
21337 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
21338 to match type of MINUS_EXPR.
22129589 21339
55d059d3
TT
213402008-03-25 Tom Tromey <tromey@redhat.com>
21341
21342 * configure: Rebuilt.
21343 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
21344 Makefile.
21345
2fe3178b
TT
213462008-03-25 Tom Tromey <tromey@redhat.com>
21347
21348 * config/x-solaris (host-solaris.o): Update.
21349 * config/x-linux (host-linux.o): Update.
21350 * config/x-hpux (host-hpux.o): Update.
21351 * config/x-darwin (host-darwin.o): Update.
21352 * config/v850/t-v850e (v850-c.o): Update.
21353 * config/v850/t-v850 (v850-c.o): Update.
21354 * config/t-vxworks (vxworks.o): Update.
21355 * config/t-sol2 (sol2-c.o, sol2.o): Update.
4acc3f42 21356 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2fe3178b
TT
21357 * config/spu/t-spu-elf (spu-c.o): Update.
21358 (spu.o): Remove.
21359 * config/sh/t-symbian (sh-c.o): Update.
21360 (symbian.o): Update.
21361 * config/sh/t-sh (sh-c.o): Update.
21362 * config/score/t-score-elf (score7.o, score3.o): Update.
21363 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
21364 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
21365 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
21366 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
21367 (rs6000.o): Remove.
21368 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
21369 * config/m32c/t-m32c (m32c-pragma.o): Update.
21370 * config/ia64/t-ia64 (ia64-c.o): Update.
21371 * config/i386/x-mingw32 (host-mingw32.o): Update.
21372 * config/i386/x-i386 (driver-i386.o): Update.
21373 * config/i386/x-darwin (host-i386-darwin.o): Update.
21374 * config/i386/x-cygwin (host-cygwin.o): Update.
21375 * config/i386/t-nwld (nwld.o): Update.
21376 * config/i386/t-netware (netware.o): Update.
21377 * config/i386/t-interix (winnt.o): Update.
21378 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
21379 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
21380 msformat-c.o): Update.
21381 * config/bfin/t-bfin-linux (generated_files): Add
21382 linux-sysroot-suffix.h.
21383 * config/arm/t-wince-pe (pe.o): Update.
21384 * config/arm/t-strongarm-pe (pe.o): Update.
21385 * config/arm/t-pe (pe.o): Update.
21386 * config/arm/t-arm (arm-c.o): Update.
21387 * doc/install.texi (Prerequisites): Require make 3.80.
21388 * Makefile.in: Remove .o targets.
21389 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
21390 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
21391 (simple_generated_h, simple_generated_c): Move earlier.
21392 (generated_files): New variable.
21393 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
21394 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
21395 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
21396 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
21397 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
21398 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
21399 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
21400 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
21401 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
21402 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
21403 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
21404 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
21405 (.c.o): Remove.
21406 (COMPILE.base, COMPILE): New variables.
21407 (%.o): New pattern rule.
21408 (ALL_HOST_OBJS): New variable.
21409 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
21410 (dummy-checksum.o, cc1-checksum.o): Remove.
21411 (DRIVER_SHLIB): New variable.
21412 (DRIVER_DEFINES): Use it.
21413 (gencondmd.c): Move out of build/.
21414 (s-conditions): Update.
21415 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
21416 (ALL_BUILD_OBJS): Likewise.
21417 (build/%.o): Use BUILDCOMPILE.
21418 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
21419 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
21420 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
21421 build/gencheck.o, build/gencodes.o, build/genconditions.o,
21422 build/genconfig.o, build/genconstants.o, build/genemit.o,
21423 build/genextract.o, build/genflags.o, build/genmddeps.o,
21424 build/genopinit.o, build/genoutput.o, build/genpeep.o,
21425 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
21426 build/gen-protos.o, build/scan.o, build/fix-header.o,
21427 build/scan-decls.o): Simplify.
21428 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
21429 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
21430 prefix.o, toplev.o): Reduce to variable setting.
4acc3f42 21431 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
2fe3178b 21432 ($(out_object_file), gcc-options.o): New targets.
4acc3f42 21433 ($(ALL_HOST_OBJS)): New target. Include dependency files.
2fe3178b 21434 * configure: Rebuilt.
4acc3f42
UB
21435 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
21436 * doc/sourcebuild.texi (Front End Directory): Document new variable.
2fe3178b 21437
5ade1ed2
DG
214382008-03-25 Douglas Gregor <doug.gregor@gmail.com>
21439
4acc3f42
UB
21440 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
21441 complain when we hit an error, return ERROR_MARK_NODE.
5ade1ed2 21442
de6adfa2
N
214432008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
21444
21445 * config/sh/constraints.md (Pso, Psz): New constraints.
21446 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
21447 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
21448
f326a6cb
N
214492008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
21450
4acc3f42 21451 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
f326a6cb
N
21452 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
21453
b4b0018b
N
214542008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
21455
21456 * config/sh/sh.md (prefetch): Add condition for SH2A target.
22129589 21457 (prefetch_sh2a): New.
b4b0018b 21458
e990551a
JS
214592008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
21460 Naveen.H.S <naveen.hs@kpitcummins.com>
21461
21462 * config/sh/constraints.md (I28): New constraint.
21463 * config/sh/sh.c (broken_move): Add support for movi20s.
4acc3f42 21464 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
e990551a 21465
561642fa
AP
214662008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
21467 Jayant Sonar <Jayant.sonar@kpitcummins.com>
21468 Naveen.H.S <naveen.hs@kpitcummins.com>
21469
21470 * config/sh/sh.c (SH_ATTRIBUTES): Define.
21471 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
21472 (print_operand): Handle resbank in %@ operand code.
21473 (sh_encode_section_info): New.
21474 (push_regs): Add conditions for resbank.
21475 (sh_expand_epilogue): Likewise.
21476 (sh_insert_attributes): Likewise.
21477 (sh_attribute_table): Likewise.
21478 (sh_handle_resbank_handler_attribute): New.
21479 (sh2a_handle_function_vector_handler_attribute): New.
21480 (sh2a_is_function_vector_call): New.
21481 (sh2a_get_function_vector_number): New.
21482 (sh2a_function_vector_p): New.
21483 (sh_cfun_resbank_handler_p): New.
21484 * config/sh/sh.md (calli): Emit jsr/n if possible.
21485 (calli_tbr_rel): New.
21486 (calli_pcrel): Emit jsr/n if possible.
21487 (return_i): Emit rts/n if possible.
21488 (call_valuei_tbr_rel): New.
21489 (call_valuei_pcrel): Add condition for SH2A target.
21490 (call_value): Likewise.
21491 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
21492 (sh2a_get_function_vector_number): Likewise.
21493 (sh2a_is_function_vector_call): Likewise.
21494 * doc/extend.texi: Document TBR relative addressing of SH2A.
21495 (resbank): Add description for SH2A.
21496
1b24a790
RG
214972008-03-24 Richard Guenther <rguenther@suse.de>
21498
21499 PR c/22371
21500 * gimplify.c (gimplify_modify_expr): For frontend type-correct
21501 pointer assignments change conversions according to middle-end rules.
21502 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
21503 * configure.ac: Include type checking in yes.
21504 * configure: Regenerate.
21505
52249a2e
MLI
215062008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21507
21508 * diagnostic.c (diagnostic_count_diagnostic): Delete.
21509 (diagnostic_report_diagnostic): Update. Handle ICEs here.
22129589 21510
37ca4602
NS
215112008-03-24 Nathan Sidwell <nathan@codesourcery.com>
21512
21513 * gthr-vxworks.h (UNUSED): Define.
21514
2ff8644d
L
215152008-03-23 H.J. Lu <hongjiu.lu@intel.com>
21516
9aba5d22 21517 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2ff8644d 21518
1c42f5c6
ZM
215192008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
21520
21521 * doc/extend.texi (Function Attributes): Add missing comma in the
21522 example of the "alloc_size" attribute.
22129589 21523
808e68bb
UB
215242008-03-23 Uros Bizjak <ubizjak@gmail.com>
21525
21526 Revert:
21527 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
21528
21529 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
21530 32bit host.
21531
21532 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
21533
21534 PR target/35496
21535 * stor-layout.c (update_alignment_for_field): Set minimum alignment
21536 of the underlying type of a MS bitfield layout to the natural
21537 alignment of the type.
21538
21539 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
21540
21541 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
21542 to their natural alignment to avoid store forwarding stalls.
21543
1b738915
RG
215442008-03-22 Richard Guenther <rguenther@suse.de>
21545
21546 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
21547 For PHI nodes verify the address is invariant.
21548 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
21549 (get_symbol_constant_value): Use is_gimple_min_invariant.
21550 (maybe_fold_stmt_indirect): Likewise.
21551
18b526e8
RS
215522008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
21553
21554 PR rtl-optimization/33927
21555 * Makefile.in (dse.o): Depend on $(TM_P_H).
21556 * expr.h (extract_low_bits): Declare.
21557 * expmed.c (extract_low_bits): New function.
21558 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
21559 * dse.c: Include tm_p.h.
21560 (find_shift_sequence): Remove the read_reg argument and return the
21561 read value. Emit the instructions instead of returning them.
21562 Iterate on new_mode rather than calculating it each time.
21563 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
21564 source to NEW_MODE and extract_low_bits to convert the shifted
21565 value to READ_MODE.
21566 (replace_read): Allow the load and store to have different mode
21567 classes. Use extract_low_bits when SHIFT == 0. Create the shift
21568 or extraction instructions before trying the replacement. Update
21569 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
21570
48e55066
UB
215712008-03-22 Uros Bizjak <ubizjak@gmail.com>
21572
21573 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
21574 to their natural alignment to avoid store forwarding stalls.
21575
94e98316
AP
215762008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
21577
e8afc0cb 21578 PR target/27946
94e98316
AP
21579 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
21580 encouraging but not allowing gprs for input;
21581 change the input constraint to !f#r.
21582 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
21583 gprs for output;
21584 change the output constraint to !f#r.
21585
7fb1431b
UB
215862008-03-21 Uros Bizjak <ubizjak@gmail.com>
21587
21588 PR target/13958
21589 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
21590 corresponding post-reload splitters.
21591 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
21592 when x87 FP math is selected.
21593 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
21594 New function prototype.
21595 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
21596 unreachable function to ease macroization of insn patterns.
21597
ed2024ba
MJ
215982008-03-21 Martin Jambor <mjambor@suse.cz>
21599
21600 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
21601 reference dumps if ddr is NULL or dependence is unknown.
21602
06644a07
KK
216032008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
21604
21605 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
21606 unsigned extension into account.
21607 (ATOMIC_COMPARE_AND_SWAP): Likewise.
21608 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
21609 Do computations on a scratch register.
21610
ad6003f2
RG
216112008-03-21 Richard Guenther <rguenther@suse.de>
21612
21613 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
21614 Use is_gimple_min_invariant instead of TREE_INVARIANT.
21615 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
21616 * tree-ssa-dom.c (record_equality): Likewise.
21617 * tree-inline.c (copy_body_r): Likewise.
21618 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
21619 TREE_INVARIANT.
21620
2acdc1fb
KK
216212008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
21622
21623 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
21624 as 'delete_unused' argument.
21625
16ac8575
RG
216262008-03-20 Richard Guenther <rguenther@suse.de>
21627
21628 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
21629 special casing of constant qualifiers.
21630 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
21631 care about them in general.
21632 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
21633 regardless of their type.
21634 (fold_stmt_r): Forcefully fold *& if we end up with that.
21635
433d52fd
PB
216362008-03-20 Paul Brook <paul@codesourcery.com>
21637
21638 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
21639 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
21640 linker flags.
21641 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
21642 definition.
21643 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
21644 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
21645
7621f5d5
VR
216462008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
21647
21648 * common.opt (Wmudflap): New option.
21649 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
21650 (mx_register_decls): Likewise.
21651 (mudflap_finish_file): Likewise.
21652 * doc/invoke.texi: Document -Wno-mudflap.
21653
216542008-03-20 Kai Tietz <kai.tietz@onevision.com>
6590fc9f
KT
21655
21656 * c-format.c (replace_format_name_to_system_name): New.
21657 (cmp_attribs): New.
21658 (convert_format_name_to_system_name): New.
21659 (decode_format_attr): Add use of convert_format_name_to_system_name.
21660 (format_types_orig): Add gnu_ prefix to names.
21661 (check_format_info_main): Special treating of \0 escaped names for
21662 supporting multi-character format specifiers as I32, I64.
21663 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
21664 (gnu_target_overrides_format_attributes): New.
21665 * c-format.h: Add structure target_ovr_attr to hold
21666 system specific formatter names.
21667 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
21668 msformat-c.o file to c_target_objs and cxx_target_objs.
21669 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21670 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
21671 (TARGET_N_FORMAT_TYPES): New.
21672 * config/i386/msformat-c.c: New.
21673 * config/i386/t-cygming: Add build rule for msformat-c.o.
21674 * doc/extend.texi: Add new format names gnu_* and ms_* and
21675 further details.
21676 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21677
4e359692
IR
216782008-03-20 Ira Rosen <irar@il.ibm.com>
21679
21680 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
21681 optimizations turned on under -O3.
21682 (ftree-vectorize): Add that the flag is turned on with -O3.
21683
41129be2
BE
216842008-03-20 Ben Elliston <bje@au.ibm.com>
21685
21686 * regmove.c (try_auto_increment): Fix spelling error in comment.
21687 * final.c (final_scan_insn): Likewise.
21688
1b1d8f88
UB
216892008-03-20 Uros Bizjak <ubizjak@gmail.com>
21690
21691 PR target/14552
21692 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
21693 allocator preferences for "y" and "r" class registers.
21694 ("*mov<mode>_internal"): Ditto.
21695 ("*movv2sf_internal_rex64"): Ditto.
21696 ("*movv2sf_internal"): Ditto.
21697
05e6ee93
MM
216982008-03-19 Michael Matz <matz@suse.de>
21699
21700 PR middle-end/35616
21701 * calls.c (expand_call): Check overlap of arguments with call
21702 address for sibcalls.
21703
cd7e0bd4
UB
217042008-03-19 Uros Bizjak <ubizjak@gmail.com>
21705
21706 PR target/35496
21707 * stor-layout.c (update_alignment_for_field): Set minimum alignment
21708 of the underlying type of a MS bitfield layout to the natural
21709 alignment of the type.
21710
8ddbbcae
JH
217112008-03-19 Jan Hubicka <jh@suse.cz>
21712
21713 PR other/35094
21714 * toplev.c (decode_d_option): Handle all CPP flags.
21715 * tree-vrp.c: Update tree_pass descriptors.
21716 * regrename.c: Update tree_pass descriptors.
21717 * fwprop.c: Update tree_pass descriptors.
21718 * doc/invoke.texi: Remove documentation of dropped -d? flags.
21719 * tree-into-ssa.c: Update tree_pass descriptors.
21720 * tree-dump.c: Update tree_pass descriptors.
21721 * tree-complex.c: Update tree_pass descriptors.
21722 * tree-dump.h: Update tree_pass descriptors.
21723 * see.c: Update tree_pass descriptors.
21724 * cgraphbuild.c: Update tree_pass descriptors.
21725 * tracer.c: Update tree_pass descriptors.
21726 * tree-loop-distribution.c: Update tree_pass descriptors.
21727 * cgraph.c: Update tree_pass descriptors.
21728 * postreload-gcse.c: Update tree_pass descriptors.
21729 * postreload.c: Update tree_pass descriptors.
21730 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
21731 * tree-tailcall.c: Update tree_pass descriptors.
21732 * tree-pass.h (tree_opt_pass): Rename to ...
21733 (opt_pass) ... this one; add "type" field and remove letter field.
21734 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
21735 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
21736 all_lowering_passes): Update declaration.
21737 * ipa-cp.c: Update tree_pass descriptors.
21738 * final.c: Update tree_pass descriptors.
21739 * omp-low.c: Update tree_pass descriptors.
21740 * tree-ssa-dse.c: Update tree_pass descriptors.
21741 * ipa-reference.c: Update tree_pass descriptors.
21742 * tree-ssa-uncprop.c: Update tree_pass descriptors.
21743 * auto-inc-dec.c: Update tree_pass descriptors.
21744 * reorg.c: Update tree_pass descriptors.
21745 * cgraphunit.c: Update tree_pass descriptors.
21746 * tree-ssa-copyrename.c: Update tree_pass descriptors.
21747 * tree-ssa-ccp.c: Update tree_pass descriptors.
21748 * df-core.c: Update tree_pass descriptors.
21749 * mode-switching.c: Update tree_pass descriptors.
21750 * tree-nomudflap.c: Update tree_pass descriptors.
21751 * modulo-sched.c: Update tree_pass descriptors.
21752 * ipa-pure-const.c: Update tree_pass descriptors.
21753 * cse.c: Update tree_pass descriptors.
21754 * web.c: Update tree_pass descriptors.
21755 * tree-stdarg.c: Update tree_pass descriptors.
21756 * tree-ssa-math-opts.c: Update tree_pass descriptors.
21757 * tree-ssa-dom.c: Update tree_pass descriptors.
21758 * tree-nrv.c: Update tree_pass descriptors.
21759 * tree-ssa-alias.c: Update tree_pass descriptors.
21760 * loop-init.c: Update tree_pass descriptors.
21761 * gimple-low.c: Update tree_pass descriptors.
21762 * ipa-inline.c: Update tree_pass descriptors.
21763 * tree-ssa-sink.c: Update tree_pass descriptors.
21764 * global.c: Update tree_pass descriptors.
21765 * ifcvt.c: Update tree_pass descriptors.
21766 * jump.c: Update tree_pass descriptors.
21767 * predict.c: Update tree_pass descriptors.
21768 * tree-ssa-loop.c: Update tree_pass descriptors.
21769 * recog.c: Update tree_pass descriptors.
21770 * dse.c: Update tree_pass descriptors.
21771 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
21772 * tree-eh.c: Update tree_pass descriptors.
21773 * regmove.c: Update tree_pass descriptors.
21774 * local-alloc.c
21775 * function.c: Update tree_pass descriptors.
21776 * tree-vectorizer.c: Update tree_pass descriptors.
21777 * gcse.c: Update tree_pass descriptors.
21778 * ipa-type-escape.c: Update tree_pass descriptors.
21779 * tree-if-conv.c: Update tree_pass descriptors.
21780 * init-regs.c: Update tree_pass descriptors.
21781 * ipa.c: Update tree_pass descriptors.
21782 * tree-ssa-phiopt.c: Update tree_pass descriptors.
21783 * rtl-factoring.c: Update tree_pass descriptors.
21784 * lower-subreg.c: Update tree_pass descriptors.
21785 * bt-load.c: Update tree_pass descriptors.
21786 * tree-dfa.c: Update tree_pass descriptors.
21787 * except.c: Update tree_pass descriptors.
21788 * emit-rtl.c: Update tree_pass descriptors.
21789 * cfgexpand.c: Update tree_pass descriptors.
21790 * tree-cfgcleanup.c: Update tree_pass descriptors.
21791 * cfgcleanup.c: Update tree_pass descriptors.
21792 * tree-ssa-pre.c: Update tree_pass descriptors.
21793 * tree-sra.c: Update tree_pass descriptors.
21794 * tree-mudflap.c: Update tree_pass descriptors.
21795 * tree-ssa-copy.c: Update tree_pass descriptors.
21796 * cfglayout.c: Update tree_pass descriptors.
21797 * tree-ssa-forwprop.c: Update tree_pass descriptors.
21798 * tree-ssa-dce.c: Update tree_pass descriptors.
21799 * tree-ssa.c: Update tree_pass descriptors.
21800 * regclass.c: Update tree_pass descriptors.
21801 * integrate.c: Update tree_pass descriptors.
21802 * tree-optimize.c: Update tree_pass descriptors.
21803 * tree-ssa-phiprop.c: Update tree_pass descriptors.
21804 * tree-object-size.c: Update tree_pass descriptors.
21805 * combine.c: Update tree_pass descriptors.
21806 * tree-outof-ssa.c: Update tree_pass descriptors.
21807 * bb-reorder.c: Update tree_pass descriptors.
21808 * stack-ptr-mod.c: Update tree_pass descriptors.
21809 * var-tracking.c: Update tree_pass descriptors.
21810 * tree-profile.c: Update tree_pass descriptors.
21811 * tree-vect-generic.c: Update tree_pass descriptors.
21812 * reg-stack.c: Update tree_pass descriptors.
21813 * sched-rgn.c: Update tree_pass descriptors.
21814 * tree-ssa-structalias.c: Update tree_pass descriptors.
21815 * tree-cfg.c: Update tree_pass descriptors.
21816 * passes.c (current_pass): Update declaration.
21817 (finish_optimization_passes): Update.
21818 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
21819 (register_one_dump_file, register_dump_files_1, next_pass_1):
5617c135 21820 Update arguments.
8ddbbcae
JH
21821 (init_optimization_passes): Update handling of new types.
21822 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
21823 * ipa-struct-reorg.c: Update tree_pass descriptors.
21824 * tree-ssa-reassoc.c: Update tree_pass descriptors.
21825 * combine-stack-adj.c: Update tree_pass descriptors.
21826 * cfgrtl.c: Update tree_pass descriptors.
21827 * dce.c: Update tree_pass descriptors.
21828 * tree-ssanames.c: Update tree_pass descriptors.
21829
8cb3ee37
RG
218302008-03-19 Richard Guenther <rguenther@suse.de>
21831
21832 PR middle-end/35609
4990038d
RG
21833 * tree-ssa.c (walk_data): New structure.
21834 (warn_uninitialized_var): If not always_executed warn with "maybe"
8cb3ee37
RG
21835 instead of "is".
21836 (execute_early_warn_uninitialized): Compute post-dominators.
21837 Initialize always_executed before processing each basic block.
21838
34614fff
MP
218392008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
21840
21841 PR target/35504
21842 * config/i386/i386.c (x86_this_parameter): Calculate correct location
21843 of "this" pointer when "regparm = N" or "fastcall" is in effect.
21844
c15477fb
RW
218452008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21846
21847 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
21848
ac5dc795
PB
218492008-03-18 Paolo Bonzini <bonzini@gnu.org>
21850
34614fff
MP
21851 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
21852 is true.
21853 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
21854 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
21855 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
21856 target after ignore has been set, and move there also the commputation
21857 of subtarget and original_target.
21858 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
21859 (LANG_HOOKS_INITIALIZER): Remove it.
21860 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
ac5dc795 21861
b80280f2
RG
218622008-03-18 Richard Guenther <rguenther@suse.de>
21863
21864 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
21865 found an expression with constants, note that in the VN for the lhs.
21866 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
21867 fold them to constants if possible. Run cleanup_cfg if done so.
21868 (execute_pre): Return todo.
21869 (do_pre): Likewise.
21870 (execute_fre): Likewise.
21871 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
21872 of constants.
21873 (get_prop_source_stmt): Look through pointer conversions.
21874
2e28e797
JH
218752008-03-18 Jan Hubicka <jh@suse.cz>
21876
21877 * tree-pretty-print.c: Include predict.h.
21878 (dump_generic_node): Dump predictor.
21879 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
21880 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
21881 * gimple-low.c (lower_stmt): Likewise.
21882 * expr.c (expand_expr_real): Likewise.
21883 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
21884 them.
21885 (build_predict_expr, build_predict_expr): New.
21886 * predict.h (predictor_name, build_predict_expr): Update.
21887 * c-typeck.c (c_finish_bc_stmt): Add prediction.
21888 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
21889 * predict.def (PRED_CONTINUE): Update hitrate.
21890 * tree.def (PREDICT_EXPR): Define.
21891 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
21892 do not handle BIND_EXPR.
21893 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
21894 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
21895 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
21896 operands.
21897
52f1c7ed
MM
218982008-03-18 Michael Matz <matz@suse.de>
21899
21900 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
21901
c8ae0bec
RG
219022008-03-18 Richard Guenther <rguenther@suse.de>
21903
21904 * tree-gimple.h (is_gimple_invariant_address): Declare.
21905 (is_gimple_constant): Likewise.
21906 * tree-gimple.c (is_gimple_constant): New function.
21907 (is_gimple_invariant_address): Likewise.
21908 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
21909 and is_gimple_invariant_address.
21910 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
21911 previous change.
21912 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
21913 an addressable base.
21914
8119fc93
JJ
219152008-03-18 Jakub Jelinek <jakub@redhat.com>
21916
21917 PR middle-end/35611
21918 * gimplify.c (gimplify_expr): Gimplify second operand of
21919 OMP_ATOMIC_LOAD.
21920
c4e5b5a8
RG
219212008-03-17 Richard Guenther <rguenther@suse.de>
21922
21923 PR tree-optimization/19637
21924 * fold-const.c (fold_unary): Remove restrictions of removing
21925 intermediate pointer-conversions (P2)(P1)P0.
21926 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
21927 conversion to void pointer.
21928 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
21929
fcb9237b
JW
219302008-03-16 James E. Wilson <wilson@tuliptree.org>
21931
21932 PR debug/31510
21933 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
21934 emulated thread local variables.
21935
461f8762
RG
219362008-03-16 Richard Guenther <rguenther@suse.de>
21937
21938 PR middle-end/35607
21939 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
21940 expand TREE_INVARIANT operations that are not gimple invariant.
21941
2a31c49c
HPN
219422008-03-16 Hans-Peter Nilsson <hp@axis.com>
21943
21944 * doc/extend.texi (Alignment): Say that the ABI controls
21945 the __alignof__ for non-strict-alignment targets rather
21946 than being a recommendation.
21947
80efdb6a
PB
219482008-03-15 Paul Brook <paul@codesourcery.com>
21949
21950 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
21951 annotations.
21952 (arm_output_fn_unwind): Mark functions that can not be unwound.
21953
ff069900
PB
219542008-03-15 Paul Brook <paul@codesourcery.com>
21955
21956 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
21957 extension instructions.
21958
87e1e42b
RG
219592008-03-15 Richard Guenther <rguenther@suse.de>
21960
21961 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
21962 and fold constant aggregate refs.
21963 (fold_const_aggregate_ref): Handle string constants
21964 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
21965 (evaluate_stmt): Simplify now that ccp_fold folds constant
21966 aggregate refs.
21967
ef87d898
PB
219682008-03-15 Paul Brook <paul@codesourcery.com>
21969
21970 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
21971 (extzv): Use gen_extzv_t2.
21972 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
21973
ed97ddc6
RG
219742008-03-15 Richard Guenther <rguenther@suse.de>
21975
21976 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
21977 (fold_const_aggregate_ref): Likewise.
21978 (get_value): Return NULL if we don't have any values.
21979 (ccp_finalize): Set const_val to NULL after freeing it.
21980 * tree-flow.h (get_symbol_constant_value): Declare.
21981 (fold_const_aggregate_ref): Likewise.
21982 * tree-ssa-sccvn.c (try_to_simplify): Use them.
21983
1fd89060
RG
219842008-03-15 Richard Guenther <rguenther@suse.de>
21985
21986 PR middle-end/35593
21987 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
21988 to not produce negative array indices if not allowed. Add
21989 parameter to indicate that.
21990 (maybe_fold_offset_to_component_ref): Allow negative array
21991 indices only for the first member of a structure.
21992 (maybe_fold_offset_to_reference): Allow negative array indices.
21993 (maybe_fold_stmt_addition): Likewise.
21994
693092fb 219952008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
cd7e0bd4 21996 Anatoly Sokolov <aesok@post.ru>
693092fb 21997
b97d8153 21998 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
693092fb
BH
21999 (avr_arch): Add ARCH_AVR6.
22000 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5617c135 22001 (initial_elimination_offset): Initialize and use 'avr_pc_size'
693092fb
BH
22002 instead of fixed value 2.
22003 (print_operand_address): Use gs() asm specifier instead of pm().
22004 (avr_assemble_integer): (Ditto.).
22005 (avr_output_addr_vec_elt): (Ditto.).
22006 (print_operand): Handle "!" code.
22129589 22007 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
693092fb
BH
22008 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
22009 (AVR_HAVE_EIJMP_EICALL): Define.
22010 (AVR_3_BYTE_PC): Redefine.
22011 (AVR_2_BYTE_PC): (Ditto.).
22012 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
22013 (LINK_SPEC): Add atmega2560 and atmega2561.
22129589 22014 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
693092fb 22015 (crtm2561.o).
22129589 22016 * config/avr/avr.md (call_insn): Use eicall instead of icall
693092fb
BH
22017 for 3 byte PC devices.
22018 (call_value_insn): (Ditto.).
22019 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
22020 (indirect_jump): Use only for for 2 byte PC devices.
22021 (*tablejump): (Ditto.).
22022 (*indirect_jump_avr6): Add insn.
22023 (*tablejump_rjmp): Don't use for 3 byte PC devices.
22129589 22024 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
693092fb
BH
22025 instead of ijmp for 3 byte PC devices.
22026 (__tablejump2__): (Ditto.).
b97d8153 22027 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
22129589 22028 (MULITLIB_DIRNAMES): (Ditto.).
693092fb
BH
22029 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
22030
ab555a5b
UB
220312008-03-15 Uros Bizjak <ubizjak@gmail.com>
22032
22033 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
22034 "sse2_umulsidi3". Use V1DI mode for operand 0.
22035 ("mmx_psadbw"): Use V1DI mode for operand 0.
22036 * config/i386/i386-modes.def (V1SI): New vector mode.
22037 * config/i386/i386.c (struct builtin_description)
22038 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
22039 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
22040 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
22041 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
22042 v1di_ftype_v8qi_v8qi type.
22043 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
22044
22045 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
22046 __builtin_ia32_pmuludq]: Fix the mode of return value.
22047
8f78ed0e
RG
220482008-03-15 Richard Guenther <rguenther@suse.de>
22049
22050 PR middle-end/35595
22051 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
22052 being a PHI_NODE.
22053
66e58b33 220542008-03-14 Bob Wilson <bob.wilson@acm.org>
22129589 22055
66e58b33
BW
22056 * doc/invoke.texi (Option Summary, Xtensa Options): Document
22057 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
22058 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
22059 unless TARGET_SERIALIZE_VOLATILE is enabled.
22060 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
22061 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
22062 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
22063
896c8b96
RG
220642008-03-14 Richard Guenther <rguenther@suse.de>
22065
22066 PR tree-optimization/34172
22067 * tree-flow.h (refs_may_alias_p): Declare.
22068 (get_single_def_stmt): Likewise.
22069 (get_single_def_stmt_from_phi): Likewise.
22070 (get_single_def_stmt_with_phi): Likewise.
22071 * tree-dfa.c (refs_may_alias_p): New function.
22072 (get_single_def_stmt): Likewise.
22073 (get_single_def_stmt_from_phi): Likewise.
22074 (get_single_def_stmt_with_phi): Likewise.
22075 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
22076 (vn_reference_lookup_1): New helper function.
22077 (vn_reference_lookup): Walk the virtual use-def chain to
22078 continue searching for a match if the def does not alias the
22079 reference we are looking for.
22080
75dd1ae2
DE
220812008-03-14 David Edelsohn <edelsohn@gnu.org>
22082
22083 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
22084 archive and Perzl. Update The Written Word listing.
22085
3d45dd59
RG
220862008-03-14 Richard Guenther <rguenther@suse.de>
22087
22088 PR tree-optimization/34043
22089 PR tree-optimization/33989
22090 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
22091 when doing FRE.
22092 (bitmap_find_leader): Use extra argument to verify dominance
22093 relationship inside a basic-block.
22094 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
22095 (find_leader_in_sets): Adjust.
22096 (create_component_ref_by_pieces): Take extra argument for
22097 dominance check, handle lookup failures.
22098 (find_or_generate_expression): Likewise.
22099 (create_expression_by_pieces): Likewise.
22100 (insert_into_preds_of_block): Adjust.
22101 (create_value_expr_from): If asked for, verify all operands
22102 are in the blocks AVAIL_OUT set.
22103 (make_values_for_stmt): Check for SSA_NAMEs that are life
22104 over an abnormal edge.
22105 (compute_avail): Remove such check.
22106 (do_SCCVN_insertion): New function.
22107 (eliminate): If we do not find a leader suitable for replacement
22108 insert a replacement expression from SCCVN if available.
22109 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
22110 (struct vn_ssa_aux): Add needs_insertion flag.
22111 * tree-ssa-sccvn.c (may_insert): New global flag.
22112 (copy_reference_ops_from_ref): Value-number union member access
22113 based on its size, not type and member if insertion is allowed.
22114 (visit_reference_op_load): For a weak match from union type
22115 punning lookup a view-converted value and insert a SSA_NAME
22116 for that value if that is not found.
22117 (visit_use): Make dumps shorter. Do not disallow value numbering
22118 SSA_NAMEs that are life over an abnormal edge to constants.
22119 (free_scc_vn): Release inserted SSA_NAMEs.
22120 (run_scc_vn): New flag to specify whether insertion is allowed.
22121 Process SSA_NAMEs in forward order.
22122 * tree-ssa-loop-im.c (for_each_index): Handle invariant
22123 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
22124 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
22125 pointer type to/from integral types that do not change the
22126 precision to regular conversions.
22127
52eaae97
UB
221282008-03-13 Uros Bizjak <ubizjak@gmail.com>
22129
22130 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
22131 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
22132 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
22133 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
75d8b30e
UB
22134 input arguments and the mode of return value. Built-in functions
22135 that operate on whole 64-bit MMX register now use V1DI mode.
52eaae97 22136
5f5f0635
AD
221372008-03-13 Alon Dayan <alond@il.ibm.com>
22138 Olga Golovanevsky <olga@il.ibm.com>
22139
22140 PR tree-optimization/35041
22141 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
22142 to locate the right position in a statement.
22143
1359ef39
UB
221442008-03-13 Uros Bizjak <ubizjak@gmail.com>
22145
22146 PR target/34000
22147 PR target/35553
22148 * config/i386/xmmintrin.h: Change all static inline functions to
22149 extern inline and add __gnu_inline__ attribute.
22150 * config/i386/bmintrin.h: Ditto.
22151 * config/i386/smmintrin.h: Ditto.
22152 * config/i386/tmmintrin.h: Ditto.
22153 * config/i386/mmintrin-common.h: Ditto.
22154 * config/i386/ammintrin.h: Ditto.
22155 * config/i386/emmintrin.h: Ditto.
22156 * config/i386/pmmintrin.h: Ditto.
22157 * config/i386/mmintrin.h: Ditto.
22158 * config/i386/mm3dnow.h: Ditto.
22159
d0fb20be
JJ
221602008-03-13 Jakub Jelinek <jakub@redhat.com>
22161
22162 PR middle-end/35185
22163 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
22164 (lower_omp_2): New function.
22165 (lower_omp_1, lower_omp): Rewritten.
22166
20cef83a
DS
221672008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
22168
22169 PR 35054
22170 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
22171 with the phrase "Microsoft Windows compilers".
22172 (Push/Pop Macro Pragmas): New subsection. Document
22173 #pragma push_macro and pragma pop_macro.
22174
5dea0c19
PB
221752008-03-12 Paul Brook <paul@codesourcery.com>
22176
22177 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
22178
d1b85efb
PB
221792008-03-12 Paul Brook <paul@codesourcery.com>
22180
22181 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
22182 (thumb2_alusi3_short): Exclude PLUS and MINUS.
22183 (thumb2_addsi_shortim): Rename ...
22184 (thumb2_addsi_short): ... to this. Allow register operands.
22185 (thumb2_subsi_short): New pattern.
22186 (thumb2_one_cmplsi2_short,
22187 thumb2_negsi2_short): New patterns and peepholes.
22188
09754904
PB
221892008-03-12 Paul Brook <paul@codesourcery.com>
22190
09754904
PB
22191 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
22192
a7438d6d
UB
221932008-03-12 Uros Bizjak <ubizjak@gmail.com>
22194
22195 * config/i386/i386.md (int_cond): New code iterator.
22196 (fp_cond): Ditto.
22197 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
22198 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
22199 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
22200 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
22201 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
22202 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
22203 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
22204 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
22205
954954d1
PB
222062008-03-12 Paul Brook <paul@codesourcery.com>
22207
22208 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
22209 instead of {arm,thumb}_compute_save_reg_mask.
22210 (output_return_instruction): Ditto.
22211 (thumb_unexpanded_epilogue): Ditto.
22212 (thumb1_expand_prologue): Ditto.
22213 (thumb1_output_function_prologue): Ditto.
22214 (arm_set_return_address): Ditto.
22215 (thumb_set_return_address): Ditto.
22216 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
22217 regs to achieve stack alignment.
22218 (thumb1_compute_save_reg_mask): Fix compiler warning.
22219 (arm_output_epilogue): Use offsets->saved_regs_mask.
22220 Adjust stack pointer by poping call clobered registers.
22221 (arm_expand_prologue): Use offsets->saved_regs_mask.
22222 Adjust stack pointer by pushing extra registers.
d0fb20be 22223 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
954954d1 22224
c83bd37c
PB
222252008-03-12 Paolo Bonzini <bonzini@gnu.org>
22226
22227 PR tree-opt/35422
22228 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
22229 conversion to the operands of a multiplication.
22230
67514449
RG
222312008-03-12 Richard Guenther <rguenther@suse.de>
22232
22233 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
22234 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
22235 * timevar.def (TV_TREE_PHIPROP): Add.
22236 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
22237 pass description. Use TV_TREE_PHIPROP.
22238 * tree-ssa-forwprop.c: Remove phiprop code.
22239
7c8f7639
JJ
222402008-03-12 Jakub Jelinek <jakub@redhat.com>
22241
22242 PR middle-end/35549
22243 * omp-low.c (maybe_lookup_decl): Constify first argument.
22244 (use_pointer_for_field): Change last argument from bool to
22245 omp_context *. Disallow shared copy-in/out in nested
22246 parallel if decl is shared in outer parallel too.
22247 (build_outer_var_ref, scan_sharing_clauses,
22248 lower_rec_input_clauses, lower_copyprivate_clauses,
22249 lower_send_clauses, lower_send_shared_vars): Adjust callers.
22250
62878103
VK
222512008-03-12 Victor Kaplansky <victork@il.ibm.com>
22252 Ira Rosen <irar@il.ibm.com>
22253
22254 * tree-vectorizer.c (free_stmt_vec_info): New function.
22255 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
22256 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
22257 * tree-vectorizer.h (free_stmt_vec_info): Declare.
22258 * tree-vect-transform.c (vectorizable_conversion): Free
22259 vec_oprnds0 if it was allocated.
22260 (vect_permute_store_chain): Remove unused VECs.
22261 (vectorizable_store): Free VECs that are allocated in the..
22262 function.
22263 (vect_transform_strided_load, vectorizable_load): Likewise.
22264 (vect_remove_stores): Simplify the code.
22265 (vect_transform_loop): Move code to vect_remove_stores().
22266 Call vect_remove_stores() and free_stmt_vec_info().
22267
9dbd54be
JDA
222682008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22269
22270 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
22271 TARGET_HPUX. Revise comment.
22272 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
22273 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
22274 Use sr4 variant of `be' instruction when not generating PIC code.
22275 (attr_length_call): Adjust for above change.
22276
76a7d3ca
AP
222772008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
22278
22279 * ipa-reference.c (static_execute): Remove module_statics_const and
22280 associated setting code.
22281
40cca4f9
UB
222822008-03-11 Uros Bizjak <ubizjak@gmail.com>
22283
22284 PR target/35540
22285 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1b1d8f88
UB
22286 predicate for operand 1.
22287 (paritysi2_cmp): Use register_operand predicate for operand 2.
40cca4f9
UB
22288 Use earlyclobber modifier for operand 1. Remove support for
22289 memory operands.
1b1d8f88 22290 (paritydi2_cmp): Use register_operand predicate for operand 3.
40cca4f9
UB
22291 Use earlyclobber modifier for operand 1. Remove support for
22292 memory operands.
22293
ec6237e4 222942008-03-11 Paul Brook <paul@codesourcery.com>
40cca4f9 22295 Vladimir Prus <vladimir@codesourcery.com>
ec6237e4
PB
22296
22297 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
22298 (arm_compute_save_reg0_reg12_mask): Always
22299 check if register 11 must be saved. Always safe hard frame pointer
22300 when frame_pointer_needeed.
22301 (arm_compute_save_reg_mask): Save IP and PC
22302 only with apcs frames.
22303 (arm_output_epilogue): Adjust Thumb2 codepath to
22304 be also invoked and work for ARM non-apcs frames.
22305 (arm_expand_prologue): Don't bother saving IP
22306 for non-apcs frame, since it's not clobbered by
22307 prologue code. Implement non-apcs frame
22308 layout.
22309
2f6025a1
PB
223102008-03-11 Paolo Bonzini <bonzini@gnu.org>
22311
22312 PR rtl-optimization/35281
22313 * expr.c (convert_move): Use a new pseudo for the intermediate
22314 from_mode->word_mode result.
22315
30e257e5
PB
223162008-03-11 Paolo Bonzini <bonzini@gnu.org>
22317
ec6237e4
PB
22318 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
22319 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
22320 * toplev.c (compile_file): Don't call it.
30e257e5 22321
ab669042
UB
223222008-03-11 Uros Bizjak <ubizjak@gmail.com>
22323
22324 PR middle-end/35526
22325 * expr.c (store_expr): Call emit_block_move if the mode
22326 of "temp" RTX is BLKmode.
22327
1ffe34d9 223282008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
ab669042 22329 Richard Guenther <rguenther@suse.de>
1ffe34d9
AP
22330
22331 PR tree-optimization/31358
22332 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
22333 the step with a NULL_TREE.
22334 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
22335 to sizetype if type is a pointer type.
22336 (add_candidate_1): Don't convert the base and step to
22337 the generic type if the orginal type is a pointer type.
22338 (add_iv_value_candidates): Use sizetype for the step
22339 if type is a pointer type.
22340 (cand_value_at): Likewise.
22341 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
22342 for pointer types.
22343 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
22344 Don't convert the tem affine to the type.
22345 (add_elt_to_tree): Use sizetype for the step if a pointer.
22346 Use POINTER_PLUS_EXPR for pointers.
22347 (aff_combination_to_tree): Use sizetype for the step if a
22348 pointer.
22349
dd6d5236
VM
223502008-03-10 Vladimir Makarov <vmakarov@redhat.com>
22351
22352 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
22353 Remove commutativity hint.
22354
8b46837c
JJ
223552008-03-10 Jakub Jelinek <jakub@redhat.com>
22356
5df27e4a
JJ
22357 PR c/35438
22358 PR c/35439
22359 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
22360 errorneous type. Check that v is a VAR_DECL.
22361
8b46837c
JJ
22362 PR middle-end/35099
22363 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
22364
725c2d32
L
223652008-03-10 H.J. Lu <hongjiu.lu@intel.com>
22366
22367 PR tree-optimization/35494
22368 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
22369 may be overriden at link and run time.
22370
3ba404df
RG
223712008-03-10 Richard Guenther <rguenther@suse.de>
22372
22373 PR tree-optimization/34677
22374 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
22375 (poolify_tree): Likewise.
22376 (modify_expr_template): Likewise.
22377 (poolify_modify_stmt): Likewise.
22378 (insert_fake_stores): Handle all component-ref style stores
22379 in addition to INDIRECT_REF. Also handle complex types.
22380 Do not poolify the inserted load.
22381 (realify_fake_stores): Do not rebuild the tree but only
22382 make it a SSA_NAME copy.
22383 (init_pre): Remove initialzation of modify_expr_template.
22384 Do not allocate modify_expr_node_pool.
22385 (fini_pre): Do not free modify_expr_node_pool.
22386
97e38a92
PB
223872008-03-10 Paul Brook <paul@codesourcery.com>
22388
22389 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
22390 to avoid conflicts.
22391
bd4dc3cd 223922008-03-10 Paul Brook <paul@codesourcery.com>
ab669042 22393 Mark Shinwell <shinwell@codesourcery.com>
bd4dc3cd 22394
bd4dc3cd
PB
22395 * config/arm/cortex-r4.md: New.
22396 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
22397 insn attributes.
22398 * config/arm/arm.md: Include cortex-r4.md.
22399 (insn): Add smmls, sdiv and udiv values.
22400 (generic_sched): Don't use generic scheduling for Cortex-R4.
22401 (arm_issue_rate): New function.
22402 (TARGET_SCHED_ISSUE_RATE): Define.
22403
9886a872
SP
224042008-03-10 Sebastian Pop <sebastian.pop@amd.com>
22405
22406 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
22407
e5eff6a3
RG
224082008-03-10 Richard Guenther <rguenther@suse.de>
22409
22410 * tree-ssa-pre.c (get_sccvn_value): Simplify.
22411 (compute_avail): Do not add stmt uses to AVAIL_OUT.
22412
0d4c700c
PB
224132008-03-10 Paolo Bonzini <bonzini@gnu.org>
22414
22415 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
22416 Set default to true.
22417
802e3f8c
RW
224182008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22419
22420 * c.opt (Wsynth): Deprecate.
22421 * doc/invoke.texi (Option Summary, Warning Options): Document
22422 -Wno-format-contains-nul.
22423
be3d4789
UB
224242008-03-09 Uros Bizjak <ubizjak@gmail.com>
22425
22426 PR target/35496
3b509e33 22427 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
be3d4789
UB
22428 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
22429
e83a75a7
IR
224302008-03-09 Ira Rosen <irar@il.ibm.com>
22431
22432 * config/rs6000/rs6000.c (builtin_description): Rename vector
22433 left shift operations.
22434 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
22435 (altivec_vsl<VI_char>): Rename to ...
22436 (ashl<mode>3): ... new name.
22437 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
22438 gen_ashlv4si3.
22439 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
22440
fc9161c1
RG
224412008-03-08 Richard Guenther <rguenther@suse.de>
22442
22443 * coverage.h (tree_coverage_counter_addr): Declare.
22444 * coverage.c (tree_coverage_counter_addr): New function.
22445 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
22446 before using again.
22447 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
22448 (tree_gen_one_value_profiler): Likewise.
22449 (tree_gen_ic_profiler): Likewise.
22450 (tree_gen_average_profiler): Likewise.
22451 (tree_gen_ior_profiler): Likewise.
22452
49a1fb2d
RG
224532008-03-08 Richard Guenther <rguenther@suse.de>
22454
22455 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
22456 (vn_binary_op_insert): Likewise.
22457 (vn_unary_op_lookup): Likewise.
22458 (vn_unary_op_insert): Likewise.
22459 (vn_nary_op_lookup): Declare.
22460 (vn_nary_op_insert): Likewise.
22461 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
22462 and binary hashes, use a single obstack for unary_op_pool
22463 and binary_op_pool.
22464 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
22465 a single struct vn_nary_op_s. Store tree code length and
22466 a variable number of operands.
22467 (struct vn_reference_op_struct): Remove unused op2.
22468 (vn_reference_op_eq): Do not compare op2.
22469 (vn_reference_op_compute_hash): Do not compute hash of op2.
22470 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
22471 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
22472 with vn_nary_op_compute_hash.
22473 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
22474 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
22475 vn_nary_op_lookup.
22476 (vn_unary_op_insert, vn_binary_op_insert): Replace with
22477 vn_nary_op_insert.
22478 (visit_unary_op): Call nary functions.
22479 (visit_binary_op): Likewise.
22480 (process_scc): Adjust for struct vn_tables_s changes.
22481 (allocate_vn_table): Likewise.
22482 (free_vn_table): Likewise.
22483 * tree-vn.c (vn_add): Call nary functions.
22484 (vn_lookup): Likewise.
22485
2725b75c
JJ
224862008-03-08 Jakub Jelinek <jakub@redhat.com>
22487
22488 PR target/35498
22489 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
22490 wdst back after sync_compare_and_swapqhi_internal.
22491
10a97ae6
UB
224922008-03-08 Uros Bizjak <ubizjak@gmail.com>
22493
22494 PR target/22152
22495 * config/i386/i386-modes.def (V1DI): New vector mode.
22496 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
22497 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
22498 (MMXMODE248): Ditto.
22499 (MMXMODE): Add V1DI mode.
22500 (mmxvecsize): Change DI mode to V1DI mode.
22501 ("mov<mode>): Use MMXMODEI8 mode iterator.
22502 ("*mov<mode>_internal_rex64"): Ditto.
22503 ("*mov<mode>_internal"): Ditto.
22504 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
22505 ("mmx_sub<mode>3"): Ditto.
22506 ("mmx_adddi3"): Remove insn pattern.
22507 ("mmx_subdi3"): Ditto.
22508 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
22509 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
22510 ("mmx_ashl<mode>3"): Ditto.
22511 ("mmx_lshrdi3"): Remove insn pattern.
22512 ("mmx_ashldi3"): Ditto.
22513 * config/i386/i386.c (classify_argument): Handle V1DImode.
22514 (function_arg_advance_32): Ditto.
22515 (function_arg_32): Ditto.
22516 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
22517 mmx_addv1di3 insn pattern.
22518 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
22519 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
22520 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
22521 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
22522 Remove definitions of built-in functions.
22523 (V1DI_type_node): New node.
22524 (v1di_ftype_v1di_int): Ditto.
22525 (v1di_ftype_v1di_v1di): Ditto.
22526 (v2si_ftype_v2si_si): Ditto.
22527 (v4hi_ftype_v4hi_di): Remove node.
22528 (v2si_ftype_v2si_di): Ditto.
22529 (ix86_init_mmx_sse_builtins): Handle V1DImode.
22530 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
22531 Redefine builtins using def_builtin_const with *_ftype_*_int node.
22532 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
22533 Add new builtins using def_builtin_const.
22534 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
22535 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
22536 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
22537 * config/i386/mmintrin.h (__v1di): New typedef.
22538 (_mm_add_si64): Cast arguments to __v1di type.
22539 (_mm_sub_si64): Ditto.
22540 (_mm_sll_pi16): Cast __count to __v4hi type.
22541 (_mm_sll_pi32): Cast __count to __v2si type.
22542 (_mm_sll_si64): Cast arguments to __v1di type.
22543 (_mm_srl_pi16): Cast __count to __v4hi type.
22544 (_mm_srl_pi32): Cast __count to __v2si type.
22545 (_mm_srl_si64): Cast arguments to __v1di type.
22546 (_mm_sra_pi16): Cast __count to __v4hi type.
22547 (_mm_sra_pi32): Cast __count to __v2si type.
22548 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
22549 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
22550 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
22551 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
22552 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
22553 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
22554 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
22555 (_mm_srai_pi32): Use __builtin_ia32_psradi.
22556 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
22557 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
22558 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
22559 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
22560
08c3b5b0
JM
225612008-03-07 Joseph Myers <joseph@codesourcery.com>
22562
22563 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
22564
efc05e3c
PB
225652008-03-07 Peter Bergner <bergner@vnet.ibm.com>
22566
22567 PR target/35373
22568 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
22569 reg+const addressing for Altivec modes. Don't generate reg+reg
22570 addressing for TFmode or TDmode quantities.
22571
cf7bc668
PB
225722008-03-07 Paolo Bonzini <bonzini@gnu.org>
22573
22574 * c-common.c (vector_types_convertible_p): Call langhook
22575 instead of comptypes.
22576
b0940154
AP
225772008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
22578
22579 PR tree-opt/35402
22580 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
22581 integral and scalar float variables which have a
22582 NULL DECL_INITIAL.
22583
48081aae
NF
225842008-03-06 Nathan Froyd <froydnj@codesourcery.com>
22585
22586 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
22587 dwarf_register_span hook when emitting unwind information for
22588 register-to-memory saves.
22589 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
22590 (rs6000_frame_related): Remove call to spe_synthesize_frame.
22591
251923f5
JJ
225922008-03-06 Jakub Jelinek <jakub@redhat.com>
22593
22594 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
22595 for the same VAR_DECL.
22596
e8645a40
TT
225972008-03-06 Tom Tromey <tromey@redhat.com>
22598
22599 * treelang: Delete.
22600 * doc/standards.texi (Standards): Don't mention treelang.
22601 * doc/invoke.texi (Overall Options): Don't mention treelang.
22602 * doc/install.texi (Prerequisites): Don't mention bison or
22603 treelang.
22604 (Configuration): Don't mention treelang.
22605 (Building): Likewise.
22606 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
22607
97efb03a
PB
226082008-03-06 Paolo Bonzini <bonzini@gnu.org>
22609
22610 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
22611 word-extractions out of a multi-word object.
22612
fc0f49f3
RG
226132008-03-06 Richard Guenther <rguenther@suse.de>
22614
22615 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
22616 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
22617 result type and precision.
22618 * expr.c (get_inner_reference): Set unsignedp based on the result
22619 type of BIT_FIELD_REF.
22620 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
22621 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
22622 (try_instantiate_multiple_fields): Likewise. Use the correct type
22623 for BIT_FIELD_REF.
22624 (sra_build_assignment): Likewise.
22625 (sra_build_elt_assignment): Likewise.
22626 (sra_explode_bitfield_assignment): Likewise.
22627 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
22628 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
22629 set BIT_FIELD_REF_UNSIGNED.
22630 (vectorizable_load): Likewise.
22631
e186ff69
AK
226322008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
22633
22634 * cse.c (cse_extended_basic_block): Invalidate artificial defs
22635 at bb start.
22636
4c067742
RG
226372008-03-06 Richard Guenther <rguenther@suse.de>
22638
22639 * alias.c (struct alias_set_entry): Move has_zero_child field
22640 to pack with alias_set.
22641
23880b97
L
226422008-03-05 H.J. Lu <hongjiu.lu@intel.com>
22643
22644 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
22645 32bit host.
22646
6ab81302
ILT
226472008-03-05 Ian Lance Taylor <iant@google.com>
22648
22649 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
22650
4218dc2d 226512008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
ca9052ce
KZ
22652
22653 * fwprop.c (update_df): Support width and offset parameters of
22654 df_ref_create.
22655 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
22656 global_conflicts): Change DF_REF_EXTRACT to either
22657 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
22658 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22659 * df-scan.c (df_ref_record, df_defs_record,
22660 df_ref_create_structure, df_def_record_1, df_uses_record,
22661 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
22662 df_bb_refs_collect, df_entry_block_defs_collect,
22663 df_exit_block_uses_collect): Support new width and offset fields.
22664 (ref_extract_pool): New storage pool.
22665 (df_free_ref): New function.
22666 (df_reg_chain_unlink, df_free_collection_rec,
22667 df_sort_and_compress_refs): Call df_free_ref.
22668 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
22669 of df_ref_extract.
22670 (df_ref_create_structure): Allocate df_ref_extract if offset and
22671 width fields are used.
22672 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
22129589 22673 (df_uses_record): Get offset and width from ZERO_EXTRACT
ca9052ce
KZ
22674 and SIGN_EXTRACT.
22675 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
22676 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
22677 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22678 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
22679 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
22680 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22681 (df_ref_extract): New structure.
22682 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
22683 (df_ref_create): Add width and offset parameters.
22129589 22684
63d195d5
RG
226852008-03-05 Richard Guenther <rguenther@suse.de>
22686
22687 * tree-ssa-structalias.c (get_constraint_for_component_ref):
22688 Use ranges_overlap_p.
22689 (offset_overlaps_with_access): Rename
22690 to ranges_overlap_p and move ...
22691 * tree-flow-inline.h (ranges_overlap_p): ... here.
22692
22693 * tree.h (get_inner_reference, handled_component_p): Update
22694 comments.
22695
22696 * tree.h (record_component_aliases, get_alias_set,
22697 alias_sets_conflict_p, alias_sets_must_conflict_p,
22698 objects_must_conflict_p): Move declarations ...
22699 * alias.h (record_component_aliases, get_alias_set,
22700 alias_sets_conflict_p, alias_sets_must_conflict_p,
22701 objects_must_conflict_p): ... here.
22702 Include coretypes.h.
22703 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
22704
ea7e6d5a
AH
227052008-03-05 Aldy Hernandez <aldyh@redhat.com>
22706
22707 * cfg.c: Include tree-flow.h.
22708 (remove_edge_raw): Call redirect_edge_var_map_clear.
22709 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
22710 * tree-flow-inline.h (redirect_edge_var_map_def): New.
22711 (redirect_edge_var_map_result): New.
22712 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
22713 PENDING_STMT use with redirect_edge_var_map_*.
22714 * tree-ssa.c (edge_var_maps): New definition.
22715 (redirect_edge_var_map_add): New.
22716 (redirect_edge_var_map_clear): New.
22717 (redirect_edge_var_map_dup): New.
22718 (redirect_edge_var_map_vector): New.
22719 (redirect_edge_var_map_destroy): New.
22720 (ssa_redirect_edge): Replace PENDING_STMT use with
22721 redirect_edge_var_map_*.
22722 (flush_pending_stmts): Same.
22723 (delete_tree_ssa): Destroy edge var map.
22724 * tree-flow.h (struct _edge_var_map): New.
22725 Define edge_var_map vector type.
22726 Declare redirect_edge_var_map_* prototypes.
22727 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
22728 * tree-cfg.c (reinstall_phi_args): Replace
22729 PENDING_STMT use with redirect_edge_var_map_*.
22730
1bdcf037
RG
227312008-03-05 Richard Guenther <rguenther@suse.de>
22732
22733 PR tree-optimization/35472
22734 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
22735 whose single use_stmt has a overlapping set of loaded and
22736 stored symbols as that use_stmt might be a noop assignment then.
22737
fec5fe47
JS
227382008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
22739
22740 * gthr-rtems.h: Implement __gthread_mutex_destroy.
22741
e55f42fb
RG
227422008-03-05 Richard Guenther <rguenther@suse.de>
22743
22744 PR c++/35336
22745 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
22746 should be constants.
22747 * tree-cfg.c (verify_expr): Verify it.
22748 * fold-const.c (fold_truthop): Remove code generating
22749 BIT_FIELD_REFs of structure bases.
22750 (fold_binary): Likewise.
22751 (fold_ternary): Position and size of BIT_FIELD_REFs are
22752 always host integers.
22753 (make_bit_field_ref): Remove.
22754 (optimize_bit_field_compare): Remove.
22755 (all_ones_mask_p): Remove.
22756
1da266fe
GL
227572008-03-05 Gabor Loki <loki@gcc.gnu.org>
22758
22759 PR gcc/33009
22760 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
22761 (split_block_and_df_analyze): New. Split basic block and rebuild
22762 dataflow.
22763 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
22764 SPLIT_BLOCK.
22765 (split_pattern_seq): Likewise.
22766 (erase_matching_seqs): Likewise.
22767 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
22768
07c40d0b
GK
227692008-03-04 Geoff Keating <geoffk@apple.com>
22770
22771 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
22772 declaration and code.
22773 (tree_invalid_nonnegative_warnv_p): Likewise.
22774
4c754988
SB
227752008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
22776
22777 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
22778 examples. Truncate option-names then causing overfull hbox.
22779
399fe3e1
JDA
227802008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22781
22782 PR target/35222
22783 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
22784 on hpux10.
22785 * configure: Rebuilt.
22786
e49cf927 227872008-03-04 Rafael Espíndola <espindola@google.com>
e918a58a
RAE
22788
22789 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
22790 (tree_unary_nonnegative_warnv_p): New.
22791 (tree_binary_nonnegative_warnv_p): New.
22792 (tree_single_nonnegative_warnv_p): New.
22793 (tree_invalid_nonnegative_warnv_p): New.
22794 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
22795
ee8ea087
MLI
227962008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22797
22798 PR 28322
22799 * opts.c (handle_option): Postpone 'unknown option' errors only for
22800 warning options.
22801
b5220972
L
228022008-03-04 H.J. Lu <hongjiu.lu@intel.com>
22803
22804 PR target/35453
22805 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
22806 (_SIDD_XXX): This.
22807
e49cf927 228082008-03-04 Rafael Espíndola <espindola@google.com>
74dd418c
RAE
22809
22810 * fold-const.c (tree_unary_nonzero_warnv_p): New.
22811 (tree_binary_nonzero_warnv_p): New.
22812 (tree_single_nonzero_warnv_p): New.
22813 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
22814
5ce0e197
UB
228152008-03-04 Uros Bizjak <ubizjak@gmail.com>
22816
22817 PR middle-end/35456
22818 * fold-const.c (fold_cond_expr_with_comparison): Prevent
22819 transformations for modes that have signed zeros.
22820 * ifcvt.c (noce_try_abs): Ditto.
22821
2c7c6f54
JM
228222008-03-04 Joseph Myers <joseph@codesourcery.com>
22823
22824 * config/i386/i386.c (override_options): Force
22825 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
22826
b7884852
JH
228272008-03-04 Jan Hubicka <jh@suse.cz>
22828
22829 PR c++/35262
22830 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
22831 in last commit.
22832
ab65b56b
DS
228332008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
22834
22835 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
cd7e0bd4 22836 label to probe the stack.
ab65b56b 22837
c262f705
DS
228382008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
22839
22840 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
22841 (__gthr_win32_mutex_destroy): Declare.
22842 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
22843 __gthr_win32_mutex_destroy.
22844 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
22845
44682fab
JH
228462008-03-03 Jan Hubicka <jh@suse.cz>
22847
22848 PR c++/35262
22849 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
22850 aggressive on inlining cold calls.
22851
9a327766
RG
228522008-03-03 Richard Guenther <rguenther@suse.de>
22853
22854 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
22855 struct copies into the expression table.
22856 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
22857 (try_to_simplify): Likewise.
22858 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
22859 integral and pointer arguments which do not change the
22860 precision to NOP_EXPRs.
22861 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
22862 VIEW_CONVERT_EXPR case.
22863
6a732743
SP
228642008-03-02 Sebastian Pop <sebastian.pop@amd.com>
22865
22866 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
22867 defined in a loop at depth 0 is invariant.
22868 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
22869 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
22870 be called at loop depth 0.
22871
0e5997c0
JJ
228722008-03-02 Jakub Jelinek <jakub@redhat.com>
22873
22874 PR driver/35420
22875 * gcc.c (process_command): Update copyright notice dates.
22876 * gcov.c (print_version): Likewise.
22877 * gcov-dump.c (print_version): Likewise.
22878 * mips-tfile.c (main): Likewise.
22879 * mips-tdump.c (main): Likewise.
22880
393eda6a
MLI
228812008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22882
22883 PR 24924
22884 * c-common.c (flag_permissive): Delete.
22885 (constant_expression_warnings): Check flags first.
22886 (constant_expression_error): New.
22887 * c-common.h (flag_permissive): Delete.
22888 (constant_expression_error): Declare.
22889 * flags.h (flag_permissive): Declare. Update description.
22890 * diagnostic.c (pedwarn): Update.
22891 (permerror): New.
22892 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
22893 (permissive_error_kind): New.
22894 * toplev.c (flag_permissive): Define. Update description.
22895 * toplev.h (permissive_error_kind): Declare.
22896 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
22897 (pedwarn_c90): Use pedantic_warning_kind.
22898 * c-opts.c (c_common_post_options): flag_permissive does not affect
22899 flag_pedantic_errors.
22900
9677aa89
JM
229012008-03-02 Joseph Myers <joseph@codesourcery.com>
22902
22903 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
22904 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
22905 __absvsi2, __absvDI2): Use unsigned arithmetic.
22906
f3130d75 229072008-03-02 Andi Kleen <ak@suse.de>
ab669042 22908 Richard Guenther <rguenther@suse.de>
f3130d75
AK
22909
22910 * struct-equiv.c: Remove file.
22911 * cfg_cleanup.c (condjump_equiv_p): Remove.
22912 * Makefile.in (OBJS-common): Remove struct-equiv.o.
22913 (struct-equiv.o): Remove rule.
22914 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
22129589 22915 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
f3130d75
AK
22916 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
22917
89c3cbc6
AO
229182008-03-01 Alexandre Oliva <aoliva@redhat.com>
22919
22920 * ifcvt.c (noce_process_if_block): Try to handle only the then
22921 block if the else block exists but isn't suitable.
22922
5eb4a9af
JB
229232008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
22924
22925 PR gcc/35063
22926 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
22927 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
22928 regression from previous patch.
22929
4dabf736
JB
229302008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
22931
22932 PR gcc/35063
22933 * gthr.h: Add __gthread_mutex_destroy as a function that must be
22934 implemented.
22935 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
22936 * gthr-single.h (__gthread_mutex_destroy): Likewise.
22937 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
22938 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
22939 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
22940 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
22941 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
22942 (__gthread_mutex_destroy_function): Rename to
22943 __gthread_mutex_destroy.
22944 * gthr-dce.h (__gthread_mutex_destroy): Call
22945 pthread_mutex_destroy.
22946 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
22947 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
22948 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
22949
63642d5a
AO
229502008-03-01 Alexandre Oliva <aoliva@redhat.com>
22951
22952 * df-scan.c (df_ref_chain_change_bb): Simplify.
22953 (df_insn_change_bb): Add new_bb argument. Simplify. Call
22954 set_block_for_insn if there's any change.
22955 * df.h ((df_insn_change_bb): Fix prototype.
22956 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
22957 df_insn_change_bb, don't call set_block_for_insn.
22958 * emit-rtl.c (reorder_insns): Likewise.
22959 * haifa-sched.c (move_insn): Likewise.
22960
e0651058
AO
229612008-03-01 Alexandre Oliva <aoliva@redhat.com>
22962
22963 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
22964
d2b6be72
AO
229652008-03-01 Alexandre Oliva <aoliva@redhat.com>
22966
22967 * tree-flow-inline.h (next_readonly_imm_use): Return
22968 NULL_USE_OPERAND_P after the end.
22969
2fb5f2af
RG
229702008-03-01 Richard Guenther <rguenther@suse.de>
22971
22972 PR tree-optimization/35411
22973 * tree-sra.c (sra_build_assignment): Split conversion to
22974 final type to a separate statement if we are not assigning
22975 to a register.
22976
c17ee676
FXC
229772008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
22978
22979 * fold-const.c (fold_convertible_p): Correct the logic to follow
22980 that in fold_convert().
22981
f31c9f09
DG
229822008-02-29 Douglas Gregor <doug.gregor@gmail.com>
22983
22984 PR c++/35315
22985 * tree-inline.c (build_duplicate_type): When we make a
22986 duplicate type, make it unique in the canonical types system.
22987
966e8f4d
TT
229882008-02-29 Tom Tromey <tromey@redhat.com>
22989
22990 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
22991 input_file_stack_history, input_file_stack_restored): Remove.
22992 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
22993 * input.h (struct file_stack): Remove.
22994 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
22995 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
22996 Likewise.
22997 * diagnostic.h (struct diagnostic_context) <last_module>: Change
22998 type.
22999 (diagnostic_last_module_changed): Add 'map' argument.
23000 (diagnostic_set_last_function): Likewise.
23001 * diagnostic.c (undiagnostic_report_current_module): Iterate using
23002 line map, not input_file_stack.
23003 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
23004
3cbe0ba6
PB
230052008-02-29 Paul Brook <paul@codesourcery.com>
23006
23007 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
23008
d96ae4d4
PB
230092008-02-29 Paul Brook <paul@codesourcery.com>
23010
23011 * config/arm/ieee754-df.S (muldf3): Use RET macros.
23012
5be891a4
RG
230132008-02-29 Richard Guenther <rguenther@suse.de>
23014
23015 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
23016 vn_lookup_or_add.
23017 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
23018 value for comparing for a store match.
23019 (simplify_unary_expression): Do nothing for SSA_NAMEs.
23020 (try_to_simplify): Do not do a full-blown reference lookup.
23021
b0fbea13
KK
230222008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
23023
23024 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
23025 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
23026
23027 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
23028
0c96231b
SP
230292008-02-29 Sebastian Pop <sebastian.pop@amd.com>
23030
23031 * tree-loop-linear.c (try_interchange_loops): Compare memory access
23032 strides against cache sizes.
23033
d973ac5a
KK
230342008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
23035
23036 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
23037 constant to fpul.
23038
4613543f
RS
230392008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
23040
23041 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
23042 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
23043 is smaller than the original promoted value.
23044 (simplify_subreg): If OP is a SUBREG, try to preserve its
23045 SUBREG_PROMOTED_VAR_P information.
23046
cbfb21c1
SB
230472008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
23048
23049 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
23050 (VN_INFO_GET): Allocate new objects on the obstack.
23051 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
23052 for rpo_numbers_temp, for consistency.
23053 (free_scc_vn): Free the obstack.
23054
dea61d92
SP
230552008-02-28 Sebastian Pop <sebastian.pop@amd.com>
23056
23057 * doc/invoke.texi: Document -ftree-loop-distribution.
23058 * tree-loop-distribution.c: New.
23059 * tree-pass.h (pass_loop_distribution): New.
23060 * graphds.h (struct graph): Add htab_t indices.
23061 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
23062 * tree-vectorizer.c (rename_variables_in_loop): Extern.
23063 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
23064 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
23065 * tree-data-ref.c (debug_data_dependence_relations): New.
23066 (dump_data_dependence_relation): Also print data references.
23067 (free_data_ref): Extern.
23068 (same_access_functions): Moved...
23069 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
23070 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
23071 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
23072 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
23073 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
23074 (stmts_from_loop): Skip LABEL_EXPR.
5ce0e197
UB
23075 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
23076 New.
dea61d92
SP
23077 (build_rdg): Initialize rdg->indices htab.
23078 (free_rdg, stores_from_loop, ref_base_address,
23079 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
23080 have_similar_memory_accesses_1, ref_base_address_1,
23081 remove_similar_memory_refs): New.
23082 * tree-data-ref.h: Depend on tree-chrec.h.
23083 (debug_data_dependence_relations, free_data_ref): Declared.
23084 (same_access_functions): ... here.
5ce0e197
UB
23085 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
23086 New.
dea61d92
SP
23087 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
23088 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
23089 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
23090 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
23091 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
23092 rdg_vertex_for_stmt): Declared.
23093 (struct rdg_edge): Add level.
23094 (RDGE_LEVEL): New.
23095 (free_rdg, stores_from_loop, remove_similar_memory_refs,
5ce0e197
UB
23096 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
23097 Declared.
dea61d92
SP
23098 (rdg_has_similar_memory_accesses): New.
23099 * tree-vect-analyze.c: Remove unused static decls.
23100 * lambda.h (dependence_level): New.
23101 * common.opt (ftree-loop-distribution): New.
22129589 23102 * tree-flow.h (mark_virtual_ops_in_bb,
dea61d92
SP
23103 slpeel_tree_duplicate_loop_to_edge_cfg,
23104 rename_variables_in_loop): Declared.
23105 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
23106 (OBJS-common): Add tree-loop-distribution.o.
23107 (tree-loop-distribution.o): New rule.
23108 * tree-cfg.c (mark_virtual_ops_in_bb): New.
23109 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
23110 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
23111
dde75838
JM
231122008-02-28 Joseph Myers <joseph@codesourcery.com>
23113
23114 PR target/33963
23115 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
23116 other than structures and unions.
23117
3b302421
RG
231182008-02-28 Richard Guenther <rguenther@suse.de>
23119
23120 Revert:
23121 2008-02-26 Richard Guenther <rguenther@suse.de>
23122
23123 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23124 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23125 (lookup_decl_from_uid): Declare.
23126 (remove_decl_from_map): Likewise.
23127 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23128 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23129 (decl_for_uid_map): New global hashtable mapping DECL_UID
23130 to the decl tree.
23131 (init_ttree): Allocate it.
23132 (insert_decl_to_uid_decl_map): New helper function.
23133 (make_node_stat): Insert new decls into the map.
23134 (copy_node_stat): Likewise.
23135 (lookup_decl_from_uid): New function.
23136 (remove_decl_from_map): Likewise.
23137 (print_decl_for_uid_map_statistics): New helper.
23138 (dump_tree_statistics): Call it.
23139
23140 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23141 (referenced_var_iterator): Adjust.
23142 (FOR_EACH_REFERENCED_VAR): Adjust.
23143 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23144 (num_referenced_vars): Adjust.
23145 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23146 (first_referenced_var): Remove.
23147 (end_referenced_vars_p): Likewise.
23148 (next_referenced_var): Likewise.
23149 (referenced_var_iterator_set): New helper function.
23150 * tree-dfa.c (referenced_var_lookup): Adjust.
23151 (referenced_var_check_and_insert): Likewise.
23152 (remove_referenced_var): Likewise.
23153 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23154 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23155 (verify_call_clobbering): Likewise.
23156 (verify_memory_partitions): Likewise.
23157 (init_tree_ssa): Allocate bitmap instead of hashtable for
23158 referenced_vars.
23159 (delete_tree_ssa): Adjust.
23160 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23161 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23162 (compute_tag_properties): Likewise.
23163 (set_initial_properties): Likewise.
23164 (find_partition_for): Likewise.
23165 (update_reference_counts): Likewise.
23166 (dump_may_aliases_for): Likewise.
23167 * tree-ssa-operands.c (add_virtual_operand): Likewise.
23168 (add_call_clobber_ops): Likewise.
23169 (add_call_read_ops): Likewise.
23170 (get_asm_expr_operands): Likewise.
23171 * tree-into-ssa.c (dump_decl_set): Likewise.
23172 (update_ssa): Likewise.
23173 * tree-sra.c (scan_function): Likewise.
23174 (decide_instantiations): Likewise.
23175 (scalarize_parms): Likewise.
23176 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23177 (dsa_named_for): Likewise.
23178 * tree-ssa-structalias.c (update_alias_info): Likewise.
23179 (merge_smts_into): Likewise.
23180
2a1ed4fc
DD
231812008-02-27 David Daney <ddaney@avtrex.com>
23182
23183 PR target/34409
23184 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
23185 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
23186 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
23187 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
23188 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
23189
c92712d1
UB
231902008-02-27 Uros Bizjak <ubizjak@gmail.com>
23191
23192 PR target/25477
23193 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
23194 (BUILT_IN_NEXTTOWARD): Remove.
23195 (BUILT_IN_NEXTTOWARDF): Ditto.
23196 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
23197 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
23198
a8bafc43
TT
231992008-02-27 Tom Tromey <tromey@redhat.com>
23200
23201 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
23202 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
23203
8220334a
JB
232042008-02-27 Jan Beulich <jbeulich@novell.com>
23205
23206 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
23207 update the respective field on newdecl.
23208
8bf6e270
RE
232092008-02-27 Revital Eres <eres@il.ibm.com>
23210
23211 PR rtl-optimization/34999
23212 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
23213 crossing edges that ends with a call insn.
23214 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
23215 call insn and clear the EDGE_CROSSING flag of the crossing edge
23216 when fixing fallthru edges.
23217
7fb52af2
RG
232182008-02-27 Richard Guenther <rguenther@suse.de>
23219
3b302421 23220 PR middle-end/35390
7fb52af2
RG
23221 * fold-const.c (fold_unary): Return the correct argument,
23222 converted to the result type.
23223
70582b3a
RG
232242008-02-27 Richard Guenther <rguenther@suse.de>
23225
23226 PR middle-end/34971
23227 * expr.c (expand_expr_real_1): Assert on rotates that operate
23228 on partial modes.
23229 * fold-const.c (fold_binary): Use the types precision, not the
23230 bitsize of the mode if folding rotate expressions. Build rotates
23231 only for full modes.
23232
a25a8f3b
JJ
232332008-02-27 Jakub Jelinek <jakub@redhat.com>
23234
23235 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
23236 and CPP_PRAGMA_EOL.
23237 * c-pragma.c (pragma_ns_name): New typedef.
23238 (registered_pp_pragmas): New variable.
23239 (c_pp_lookup_pragma): New function.
23240 (c_register_pragma_1): If flag_preprocess_only, do nothing
23241 for non-expanded pragmas, for expanded ones push pragma's
23242 namespace and name into registered_pp_pragmas vector.
23243 (c_invoke_pragma_handler): Register OpenMP pragmas even when
23244 flag_preprocess_only, don't register GCC pch_preprocess
23245 pragma if flag_preprocess_only.
23246 * c-opts.c (c_common_init): Call init_pragma even if
23247 flag_preprocess_only.
23248 * c-pragma.c (c_pp_lookup_pragma): New prototype.
23249 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
23250 cpp_register_pragma if flag_preprocess_only.
23251
369239ef
RW
232522008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23253
23254 PR c/28800
23255 * c-parser.c (c_parser_translation_unit): Warn for empty
23256 translation unit, not empty source file.
23257
f5c630c3
PB
232582008-02-26 Paul Brook <paul@codesourcery.com>
23259
23260 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
23261 operand for Thumb-2.
23262 * config/arm/arm.h (reg_class): Add CORE_REGS.
23263 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
23264 (BASE_REG_CLASS): Use CORE_REGS.
23265 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
23266 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
23267 (REGNO_OK_FOR_INDEX_P): Exclude SP.
23268 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
23269 ARM_REGNO_OK_FOR_INDEX_P.
23270 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
23271 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
23272 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
23273 (ldm/stm peepholes): Ditto.
23274 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
23275 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
23276 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
23277 * config/arm/constraints.md: Enable "k" constraint on ARM.
23278
0d158b6e
BE
232792008-02-27 Ben Elliston <bje@au.ibm.com>
23280
23281 * config/rs6000/rs6000.c: Annotate cache line size field in all
23282 instances of struct processor_costs.
23283
7d817ebc
DE
232842008-02-26 David Edelsohn <edelsohn@gnu.org>
23285
23286 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
23287 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
23288 jump_bypass): New counters.
23289 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
23290 * dce.c (gate_ud_dce): Same.
23291 (gate_fast_dce): Same.
23292 * dse.c (gate_dse1): New function.
23293 (gate_dse2): New function.
23294 (gate_dse): Merge results of new gate functions.
23295 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
23296 (gate_handle_jump_bypass): Add dbg_cnt.
23297 (gate_handle_gcse): Add dbg_cnt.
23298 * ifcvt.c (gate_handle_if_conversion): Same.
23299 (gate_handle_if_after_combine): Same.
23300 (gate_handle_if_after_reload): Same.
23301 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
23302
a19b7d46
EW
233032008-02-26 Edmar Wienskoski <edmar@freescale.com>
23304
23305 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
23306 line sizes.
23307 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
23308
317c435f
JM
233092008-02-26 Jason Merrill <jason@redhat.com>
23310
23311 PR c++/35315
22129589 23312 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
317c435f
JM
23313 alone if it's the naming decl for the type's main variant.
23314
2d593c86
TT
233152008-02-26 Tom Tromey <tromey@redhat.com>
23316
23317 * system.h (USE_MAPPED_LOCATION): Poison.
23318 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
23319 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
23320 (make_goto_expr_edges): Likewise.
23321 (remove_bb): Likewise.
23322 (execute_warn_function_return): Likewise.
23323 * basic-block.h (struct edge_def) <goto_locus>: Change type to
23324 location_t.
23325 * c-common.c (fname_decl): Remove old location code.
23326 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
23327 location code.
23328 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
23329 variant.
23330 (ASM_INPUT_SOURCE_LOCATION): Likewise.
23331 (gen_rtx_ASM_INPUT): Likewise.
23332 (gen_rtx_ASM_INPUT_loc): Likewise.
23333 (get_rtx_asm_OPERANDS): Remove.
23334 * cfglayout.c (insn_locators_alloc): Remove old location code.
23335 (set_curr_insn_source_location): Likewise.
23336 (curr_insn_locator): Likewise.
23337 * print-tree.c (print_node): Remove old location code.
23338 * tree-mudflap.c (mf_varname_tree): Remove old location code.
23339 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
23340 * cfgexpand.c (expand_gimple_cond_expr): Don't use
23341 location_from_locus.
23342 (construct_exit_block): Remove old location code.
23343 * emit-rtl.c (force_next_line_note): Remove old location code.
23344 * profile.c (branch_prob): Remove old location code.
23345 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
23346 LOC_LINE): Remove old-location variants.
23347 * langhooks.c (lhd_print_error_function): Remove old location
23348 code.
23349 * configure, config.in: Rebuilt.
23350 * configure.ac (--enable-mapped-location): Remove.
23351 * c-decl.c (c_init_decl_processing): Remove old location code.
23352 (finish_function): Likewise.
23353 * recog.c (decode_asm_operands): Remove old location code.
23354 * c-pch.c (c_common_read_pch): Remove old location code.
23355 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
23356 variants.
23357 * gimple-low.c (lower_function_body): Remove old location code.
23358 * toplev.c (unknown_location): Remove.
23359 (push_srcloc): Remove old-location variant.
23360 (process_options): Remove old location code.
23361 (lang_dependent_init): Likewise.
23362 * input.h (UNKNOWN_LOCATION): Move definition.
23363 (location_t): Undeprecate.
23364 (source_locus): Remove.
23365 (location_from_locus): Remove.
23366 (struct location_s): Remove.
23367 Remove all old-location code.
23368 (input_line, input_filename): Remove.
23369 * final.c (final_scan_insn): Remove old location code.
23370 * diagnostic.c (diagnostic_build_prefix): Remove
23371 USE_MAPPED_LOCATION test.
23372 * tree.h (gimple_stmt) <locus>: Now a location_t.
23373 (tree_exp) <locus>: Likewise.
23374 (DECL_IS_BUILTIN): Remove old-location variant.
23375 (annotate_with_file_line, annotate_with_locus): Likewise.
23376 (expr_locus, set_expr_locus): Update.
23377 * tree.c (build1_stat): Remove old location code.
23378 (last_annotated_node): Remove.
23379 (annotate_with_file_line): Remove old-location variant.
23380 (annotate_with_locus): Likewise.
23381 (expr_location): Remove old location code.
23382 (set_expr_location): Likewise.
23383 (expr_has_location): Likewise.
23384 (expr_locus): Likewise.
23385 (set_expr_locus): Likewise.
23386 (expr_filename): Don't use location_from_locus.
23387 (expr_lineno): Likewise.
23388 * rtl-error.c (location_for_asm): Remove old location code.
23389 * c-lex.c (cb_line_change): Remove old location code.
23390 (fe_file_change): Likewise.
23391 (cb_def_pragma): Likewise.
23392 (c_lex_with_flags): Likewise.
23393 * gengtype.c (do_typedef): Don't special-case location types.
23394 (define_location_structures): Remove.
23395 (main): Don't call define_location_structures.
23396 * tree-pretty-print.c (dump_implicit_edges): Remove old location
23397 code.
23398
4f01eeb4
MLI
233992008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23400
cd7e0bd4 23401 PR 26264
4f01eeb4
MLI
23402 * builtins.def (BUILT_IN_STDARG_START): Remove.
23403 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
23404 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
23405 * tree-inline.c (inline_forbidden_p_1): Likewise.
22129589 23406
bbd59cf4
RG
234072008-02-26 Richard Guenther <rguenther@suse.de>
23408
23409 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23410 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23411 (lookup_decl_from_uid): Declare.
23412 (remove_decl_from_map): Likewise.
23413 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23414 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23415 (decl_for_uid_map): New global hashtable mapping DECL_UID
23416 to the decl tree.
23417 (init_ttree): Allocate it.
23418 (insert_decl_to_uid_decl_map): New helper function.
23419 (make_node_stat): Insert new decls into the map.
23420 (copy_node_stat): Likewise.
23421 (lookup_decl_from_uid): New function.
23422 (remove_decl_from_map): Likewise.
23423 (print_decl_for_uid_map_statistics): New helper.
23424 (dump_tree_statistics): Call it.
23425
23426 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23427 (referenced_var_iterator): Adjust.
23428 (FOR_EACH_REFERENCED_VAR): Adjust.
23429 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23430 (num_referenced_vars): Adjust.
23431 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23432 (first_referenced_var): Remove.
23433 (end_referenced_vars_p): Likewise.
23434 (next_referenced_var): Likewise.
23435 (referenced_var_iterator_set): New helper function.
23436 * tree-dfa.c (referenced_var_lookup): Adjust.
23437 (referenced_var_check_and_insert): Likewise.
23438 (remove_referenced_var): Likewise.
23439 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23440 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23441 (verify_call_clobbering): Likewise.
23442 (verify_memory_partitions): Likewise.
23443 (init_tree_ssa): Allocate bitmap instead of hashtable for
23444 referenced_vars.
23445 (delete_tree_ssa): Adjust.
23446 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23447 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23448 (compute_tag_properties): Likewise.
23449 (set_initial_properties): Likewise.
23450 (find_partition_for): Likewise.
23451 (update_reference_counts): Likewise.
23452 (dump_may_aliases_for): Likewise.
23453 * tree-ssa-operands.c (add_virtual_operand): Likewise.
23454 (add_call_clobber_ops): Likewise.
23455 (add_call_read_ops): Likewise.
23456 (get_asm_expr_operands): Likewise.
23457 * tree-into-ssa.c (dump_decl_set): Likewise.
23458 (update_ssa): Likewise.
23459 * tree-sra.c (scan_function): Likewise.
23460 (decide_instantiations): Likewise.
23461 (scalarize_parms): Likewise.
23462 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23463 (dsa_named_for): Likewise.
23464 * tree-ssa-structalias.c (update_alias_info): Likewise.
23465 (merge_smts_into): Likewise.
23466
16302daf
MLI
234672008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23468
23469 PR 34351
23470 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
23471 * c-opts.c (c_common_handle_option): Wall enables
23472 Wvolatile-register-var.
23473 * common.opt: Move Wvolatile-register-var to...
23474 * c.opt: ...here.
22129589 23475
e8fc888d
MLI
234762008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23477
23478 * common.opt (Wlarger-than=): New.
23479 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
23480 -Wlarger-than=.
23481 * opts.c (common_handle_option): Handle -Wlarger-than=.
23482 * optc-gen.awk: Likewise.
23483 * opth-gen.awk: Likewise.
23484 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
23485 * tree-optimize.c (tree_rest_of_compilation): Likewise.
22129589 23486
683d6ff9
MLI
234872008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23488
23489 * c-common.c (match_case_to_enum_1): Add appropriate
23490 OPT_W* parameter to warning.
23491 (c_do_switch_warnings): Likewise.
23492 * c-typeck.c (warning_init): Add one more parameter following
23493 'warning' function.
23494 (push_init_level): Update call to warning_init.
23495 (pop_init_level): Likewise.
23496 (add_pending_init): Likewise.
23497 (output_init_element: Likewise.
23498
369dcbd9
MLI
234992008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23500
23501 PR 28322
23502 * toplev.c (toplev_main): If there are warnings or error, print
23503 errors for ignored options.
23504 * opts.c (ignored_options): New static variable.
23505 (postpone_unknown_option_error): New.
23506 (print_ignored_options): New.
23507 (handle_option): Postpone errors for unknown -Wno-* options.
23508 * opts.h (print_ignored_options): Declare.
22129589 23509
23dc794c
RS
235102008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
23511
23512 * config/mips/mips.md (loadgp_blockage, blockage): Change type
23513 to "ghost".
23514
381a258b
RG
235152008-02-25 Richard Guenther <rguenther@suse.de>
23516
23517 Revert:
23518 2008-02-25 Richard Guenther <rguenther@suse.de>
23519
23520 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23521 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23522 (lookup_decl_from_uid): Declare.
23523 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23524 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23525 (decl_for_uid_map): New global hashtable mapping DECL_UID
23526 to the decl tree.
23527 (init_ttree): Allocate it.
23528 (insert_decl_to_uid_decl_map): New helper function.
23529 (make_node_stat): Insert new decls into the map.
23530 (copy_node_stat): Likewise.
23531 (lookup_decl_from_uid): New function.
23532 (print_decl_for_uid_map_statistics): New helper.
23533 (dump_tree_statistics): Call it.
23534
23535 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23536 (referenced_var_iterator): Adjust.
23537 (FOR_EACH_REFERENCED_VAR): Adjust.
23538 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23539 (num_referenced_vars): Adjust.
23540 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23541 (first_referenced_var): Remove.
23542 (end_referenced_vars_p): Likewise.
23543 (next_referenced_var): Likewise.
23544 (referenced_var_iterator_set): New helper function.
23545 * tree-dfa.c (referenced_var_lookup): Adjust.
23546 (referenced_var_check_and_insert): Likewise.
23547 (remove_referenced_var): Likewise.
23548 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23549 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23550 (verify_call_clobbering): Likewise.
23551 (verify_memory_partitions): Likewise.
23552 (init_tree_ssa): Allocate bitmap instead of hashtable for
23553 referenced_vars.
23554 (delete_tree_ssa): Adjust.
23555 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23556 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23557 (compute_tag_properties): Likewise.
23558 (set_initial_properties): Likewise.
23559 (find_partition_for): Likewise.
23560 (update_reference_counts): Likewise.
23561 (dump_may_aliases_for): Likewise.
23562 * tree-ssa-operands.c (add_virtual_operand): Likewise.
23563 (add_call_clobber_ops): Likewise.
23564 (add_call_read_ops): Likewise.
23565 (get_asm_expr_operands): Likewise.
23566 * tree-into-ssa.c (dump_decl_set): Likewise.
23567 (update_ssa): Likewise.
23568 * tree-sra.c (scan_function): Likewise.
23569 (decide_instantiations): Likewise.
23570 (scalarize_parms): Likewise.
23571 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23572 (dsa_named_for): Likewise.
23573 * tree-ssa-structalias.c (update_alias_info): Likewise.
23574 (merge_smts_into): Likewise.
23575
89453ec7
JB
235762008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
23577
23578 PR fortran/29549
23579 * doc/invoke.texi (-fcx-limited-range): Document new option.
23580 * toplev.c (process_options): Handle -fcx-fortran-rules.
cd7e0bd4 23581 * common.opt: Add documentation for -fcx-fortran-rules.
89453ec7 23582
8cc6d3e0
JB
235832008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
23584
23585 PR c/35162
23586 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
23587 actual behaviour and C99.
22129589 23588
cd679487
BE
235892008-02-26 Ben Elliston <bje@au.ibm.com>
23590
23591 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
23592 (ASM_CPU_POWER6_SPEC): Likewise.
23593 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
23594 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
23595 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
23596
7660c722
RG
235972008-02-25 Richard Guenther <rguenther@suse.de>
23598
23599 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23600 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23601 (lookup_decl_from_uid): Declare.
23602 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23603 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23604 (decl_for_uid_map): New global hashtable mapping DECL_UID
23605 to the decl tree.
23606 (init_ttree): Allocate it.
23607 (insert_decl_to_uid_decl_map): New helper function.
23608 (make_node_stat): Insert new decls into the map.
23609 (copy_node_stat): Likewise.
23610 (lookup_decl_from_uid): New function.
23611 (print_decl_for_uid_map_statistics): New helper.
23612 (dump_tree_statistics): Call it.
23613
23614 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23615 (referenced_var_iterator): Adjust.
23616 (FOR_EACH_REFERENCED_VAR): Adjust.
23617 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23618 (num_referenced_vars): Adjust.
23619 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23620 (first_referenced_var): Remove.
23621 (end_referenced_vars_p): Likewise.
23622 (next_referenced_var): Likewise.
23623 (referenced_var_iterator_set): New helper function.
23624 * tree-dfa.c (referenced_var_lookup): Adjust.
23625 (referenced_var_check_and_insert): Likewise.
23626 (remove_referenced_var): Likewise.
23627 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23628 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23629 (verify_call_clobbering): Likewise.
23630 (verify_memory_partitions): Likewise.
23631 (init_tree_ssa): Allocate bitmap instead of hashtable for
23632 referenced_vars.
23633 (delete_tree_ssa): Adjust.
23634 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23635 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23636 (compute_tag_properties): Likewise.
23637 (set_initial_properties): Likewise.
23638 (find_partition_for): Likewise.
23639 (update_reference_counts): Likewise.
23640 (dump_may_aliases_for): Likewise.
23641 * tree-ssa-operands.c (add_virtual_operand): Likewise.
23642 (add_call_clobber_ops): Likewise.
23643 (add_call_read_ops): Likewise.
23644 (get_asm_expr_operands): Likewise.
23645 * tree-into-ssa.c (dump_decl_set): Likewise.
23646 (update_ssa): Likewise.
23647 * tree-sra.c (scan_function): Likewise.
23648 (decide_instantiations): Likewise.
23649 (scalarize_parms): Likewise.
23650 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23651 (dsa_named_for): Likewise.
23652 * tree-ssa-structalias.c (update_alias_info): Likewise.
23653 (merge_smts_into): Likewise.
23654
2e4e39f6
AK
236552008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
23656
23657 PR target/35258
23658 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
23659 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
23660 * alias.h (nonoverlapping_memrefs_p): Likewise.
23661
891984af
JB
236622008-02-25 Jan Beulich <jbeulich@novell.com>
23663
c92712d1 23664 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
891984af
JB
23665 * config/i386/netware-libgcc.exp: Add __bswap?i2,
23666 __emultls_get_address, __emultls_register_common,
23667 __floatundi?f, and _Unwind_GetIPInfo.
23668 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
23669 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
23670 (gen_regparm_prefix): Likewise.
23671 (i386_nlm_encode_section_info): Sync with
23672 config/i386/winnt.c:i386_pe_encode_section_info().
23673 (i386_nlm_maybe_mangle_decl_assembler_name): New.
23674 i386_nlm_mangle_decl_assembler_name): New.
23675 (netware_override_options): New.
23676 * config/i386/netware.h (netware_override_options): Declare.
23677 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
23678 (i386_nlm_mangle_decl_assembler_name): Declare.
23679 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
23680
98266db0
BE
236812008-02-25 Ben Elliston <bje@au.ibm.com>
23682
23683 PR other/32948
23684 * c-decl.c (grokdeclarator): Remove unused local variables
23685 `typedef_type' and `type_as_written'.
23686 * bb-reorder.c
23687 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
23688 unused local variable `has_hot_blocks'.
23689 (fix_crossing_conditional_branches): Remove unused local variable
23690 `prev_bb'.
22129589 23691
93e50125
UB
236922008-02-25 Uros Bizjak <ubizjak@gmail.com>
23693
23694 PR middle-end/19984
23695 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
23696 using DEF_C99_BUILTIN.
23697 (BUILT_IN_NANF): Ditto.
23698 (BUILT_IN_NANL): Ditto.
23699
0de5a32f 237002008-02-25 Ayal Zaks <zaks@il.ibm.com>
433331d4 23701 Revital Eres <eres@il.ibm.com>
0de5a32f
AZ
23702
23703 * modulo-sched.c (calculate_must_precede_follow): Address TODO
23704 regarding the order of two dependent insns in the same row.
23705
d4cba6d4
EB
237062008-02-25 Eric Botcazou <ebotcazou@adacore.com>
23707
23708 * stor-layout.c (layout_decl): Do not bump the alignment of a
23709 bit-field to more than byte alignment if it is packed.
23710
642639ce
DE
237112008-02-24 David Edelsohn <edelsohn@gnu.org>
23712
23713 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
23714 e300c2 and e300c3.
23715
faebccf9
DN
237162008-02-24 Diego Novillo <dnovillo@google.com>
23717
23718 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
23719
23720 PR 33738
23721 * tree-vrp.c (vrp_evaluate_conditional): With
23722 -Wtype-limits, emit a warning when comparing against a
23723 constant outside the natural range of OP0's type.
23724 * c.opt (Wtype-limits): Move ...
23725 * common.opt (Wtype-limits): ... here.
23726
88c7f01b 237272008-02-24 Edmar Wienskoski <edmar@freescale.com>
fa41c305
EW
23728
23729 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
23730 * config/rs6000/e300c2c3.md: New file.
23731 * config/rs6000/rs6000.c (processor_costs): Add new costs for
23732 e300c2 and e300c3.
23733 (rs6000_override_options): Add e300c2 and e300c3 cases to
23734 processor_target_table. Do not allow usage of Altivec or Spe
23735 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
23736 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
23737 * config/rs6000/rs6000.h (processor_type): Add
23738 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
23739 (ASM_CPU_SPEC): Add e300c2 and e300c3.
23740 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
23741 and ppce300c3. Include e300c2c3.md.
23742
153fbec8
DE
237432008-02-23 David Edelsohn <edelsohn@gnu.org>
23744
23745 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
23746 instead of TARGET_STRICT_ALIGN.
23747
03d4f106
JM
237482008-02-23 Joseph Myers <joseph@codesourcery.com>
23749
23750 * explow.c (memory_address): Assert that the generated address is
23751 valid.
23752
fb220235
FXC
237532008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
23754
23755 PR target/25477
23756 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
23757 * config/darwin-ppc-ldouble-patch.def: New file.
23758 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
23759 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
23760 SUBTARGET_INIT_BUILTINS if defined.
93e50125
UB
23761 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
23762 New functions.
fb220235 23763
f79db4f6
AP
237642008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
23765
23766 PR rtl-opt/33512
23767 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
23768 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
23769
bb1f73c2
AP
237702008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
23771
23772 PR pch/35027
23773 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
23774 file" warning condtional on -Winvalid-PCH.
23775
8ddcfde1
DJ
237762008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
23777
23778 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
23779
84495fd9
UB
237802008-02-23 Uros Bizjak <ubizjak@gmail.com>
23781
23782 PR target/22076
22129589 23783 PR target/34256
84495fd9
UB
23784 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
23785 prevent reload from using MMX registers.
23786 (*mov<mode>_internal): Ditto.
23787 (*movv2sf_internal_rex64): Ditto.
23788 (*movv2sf_internal): Ditto.
23789
73c17ad2
RW
237902008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23791
23792 PR documentation/31569
23793 * doc/install.texi2html: Use makeinfo --no-number-sections.
23794
61dd226f
NF
237952008-02-22 Nathan Froyd <froydnj@codesourcery.com>
23796
23797 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
23798 ensure that we can address an entire entity > 8 bytes. Don't
23799 generate reg+reg addressing for such data.
23800
2165fd38
NF
238012008-02-22 Nathan Froyd <froydnj@codesourcery.com>
23802
23803 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
23804 strings when optimizing for size, unless the target cares about
23805 alignment.
23806
ad5ebb34
TT
238072008-02-22 Tom Tromey <tromey@redhat.com>
23808
23809 * regclass.c (current_pass): Remove declaration.
23810
34d02d17
AS
238112008-02-22 Anatoly Sokolov <aesok@post.ru>
23812
23813 * config/avr/libgcc.S (__RAMPZ__): Define.
23814 (__do_copy_data): Add for devices with 128KB code memory.
23815
a4899c01
NF
238162008-02-22 Nathan Froyd <froydnj@codesourcery.com>
23817
23818 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
23819 Use spe_abi.
23820 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
23821
fe82487e
HPN
238222008-02-22 Hans-Peter Nilsson <hp@axis.com>
23823
23824 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
23825 GENNONACR_REGS.
23826
ae311566
RW
238272008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23828
23829 PR c/19999
23830 * c-typeck.c (build_binary_op): Warn about floating point
23831 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
23832
a2db2771
JJ
238332008-02-21 Janis Johnson <janis187@us.ibm.com>
23834
23835 PR target/34526
23836 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
23837 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
23838 add vrsave.
23839 (rs6000_override_options): Set altivec_abi as default, not override,
23840 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
23841 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
23842 is used; use new member spe_abi.
23843 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
23844 spe_abi and altivec_abi.
23845
89fd06fb
TB
238462008-02-22 Tomas Bily <tbily@suse.cz>
23847
23848 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
23849
703fdf5a
RW
238502008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23851
23852 PR bootstrap/35273
23853 * config.build (build_file_translate): Set to `CMD //c' only if
23854 it works.
23855 * Makefile.in (build_file_translate): Improve comment.
23856
0ca16832
JH
238572008-02-21 Jan Hubicka <jh@suse.cz>
23858
23859 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
23860 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
23861 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
23862
c754abbf
MM
238632008-02-21 Michael Matz <matz@suse.de>
23864
23865 PR target/35264
23866 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
23867
85845bb9
UB
238682008-02-21 Uros Bizjak <ubizjak@gmail.com>
23869
23870 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
23871 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
23872 as insn constraint.
23873 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
23874 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
23875 SSE_VEC_FLOAT_MODE_P as insn constraint.
23876 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
23877 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
23878 sse4a_movntdf using MODEF mode iterator.
23879 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
23880 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
23881 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
23882 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
23883 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
23884 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
23885 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
23886
dedd42d5
RG
238872008-02-21 Richard Guenther <rguenther@suse.de>
23888
23889 * tree.def (PAREN_EXPR): New tree code.
23890 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
23891 and PAREN_EXPR.
23892 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
23893 * expr.c (expand_expr_real_1): Likewise.
23894 * tree-inline.c (estimate_num_insns_1): Likewise.
23895 * tree-complex.c (expand_complex_move): Likewise.
23896 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
23897 as plain x.
23898
7a3cb3ab
KK
238992008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
23900
23901 PR target/35225
23902 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
23903
6d4d15b8
KK
239042008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
23905
23906 PR target/35190
23907 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
23908
23909 * config/sh/sh.c (find_barrier): Don't go past
23910 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
23911
6d4a8967
DD
239122008-02-20 DJ Delorie <dj@redhat.com>
23913
23914 * config/h8300/h8300.md (insv): Force source operand to be a register.
23915
23916 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
23917 as a jump, not as a plain insn.
22129589 23918
a214518f
SP
239192008-02-20 Seongbae Park <seongbae.park@gmail.com>
23920
23921 * doc/invoke.texi (Warning Options): Add new option
23922 -Wframe-larger-than=.
23923 (-Wframe-larger-than): Document.
23924
23925 * flags.h (warn_frame_larger_than, frame_larger_than_size):
23926 Add declarations for new option variables.
23927
23928 * final.c (final_start_function): Check the frame size
23929 before emission and issue a Wframe-larger-than warning.
23930
23931 * opts.c (warn_frame_larger_than, frame_larger_than_size):
23932 Add definitions for new option variables.
23933 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
23934
23935 * common.opt (Wframe-larger-than=): New option.
23936
993ac7c7
UB
239372008-02-20 Uros Bizjak <ubizjak@gmail.com>
23938
23939 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
23940 (<sse>_div<mode>3): Ditto.
23941 (<sse>_vmdiv<mode>3): Ditto.
23942 (<sse>_vmsqrt<mode>2): Ditto.
23943 (*smax<mode>3): Ditto.
23944 (sse5_frcz<mode>2): Ditto.
23945 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
23946 as insn constraint.
23947
4cd8e76f
RG
239482008-02-20 Richard Guenther <rguenther@suse.de>
23949
23950 PR middle-end/35265
23951 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
23952 be happy with INTEGRAL_TYPE_P.
23953
41bb1f06
RG
239542008-02-20 Richard Guenther <rguenther@suse.de>
23955
23956 * fold-const.c (split_tree): Associate floatig-point expressions
23957 if flag_associative_math is set.
23958
2dc0f633
RG
239592008-02-20 Richard Guenther <rguenther@suse.de>
23960
23961 * tree.h (fold_real_zero_addition_p): Declare.
23962 * fold-const.c (fold_real_zero_addition_p): Export.
23963 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
23964 floating-point operations with zero and one.
23965
1c8bd6a3
PB
239662008-02-20 Paolo Bonzini <bonzini@gnu.org>
23967
4b40b2a5
UB
23968 * doc/install.texi: Correct references to CFLAGS, replacing them
23969 with BOOT_CFLAGS. Document flags used during bootstrap for
23970 target libraries.
22129589 23971
d6023b50
UB
239722008-02-20 Uros Bizjak <ubizjak@gmail.com>
23973
23974 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
23975 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
23976 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
23977 insn constraint.
23978 (smin<mode>3): Ditto from similar patterns.
23979 (smax<mode>3): Ditto.
23980 (*ieee_smin<mode>3): Ditto.
23981 (*ieee_smax<mode>3): Ditto.
23982 * config/i386/sse.md (sse): New mode attribute.
23983 (mov<mode>): Macroize expander from movv4sf and movv2df using
23984 SSEMODEF2P mode iterator.
23985 (<sse>_movnt<mode>): Ditto from similar patterns. Use
23986 SSE_VEC_FLOAT_MODE_P as insn constraint.
23987 (storent<mode>): Ditto.
23988 (storent<mode>): Macroize expander from storentsf and storentdf using
23989 MODEF mode iterator.
23990 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
23991 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
23992 (abs<mode>2): Ditto from similar patterns.
23993 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
23994 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
23995 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
23996 (<sse>_vmsqrt<mode>2): Ditto.
23997 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
23998 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
23999 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
24000 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
24001 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
24002 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
24003 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
24004 insn constraint.
24005 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
24006 iterator and SSE_FLOAT_MODE_P as insn constraint.
24007 (<sse>_ucomi): Ditto from similar patterns.
24008 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
24009 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
24010 SSE_VEC_FLOAT_MODE_P as insn constraint.
24011 (vcond<mode>): Ditto from similar patterns.
24012 (and<mode>3, *and<mode>3): Ditto.
24013 (<sse>_nand<mode>3): Ditto.
24014 (ior<mode>3, *ior<mode>3): Ditto.
24015 (xor<mode>3, *xor<mode>3): Ditto.
24016 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
24017 iterator and SSE_FLOAT_MODE_P as insn constraint.
24018 (*nand<mode>3): Ditto from similar patterns.
24019 (*ior<mode>3): Ditto.
24020 (*xor<mode>3): Ditto.
24021
76a893cf
IR
240222008-02-20 Ira Rosen <irar@il.ibm.com>
24023
24024 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
24025 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
24026 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
24027
daac0317
JH
240282008-02-19 Jan Hubicka <jh@suse.cz>
24029
a8971bdb
UB
24030 * predict.c (tree_bb_level_predictions): Remove variable next
24031 mistakely introduced by previous commit.
daac0317 24032
3e4b9ad0
JH
240332008-02-19 Jan Hubicka <jh@suse.cz>
24034
24035 * predict.c (predict_paths_leading_to): Rewrite.
24036 (predict_paths_for_bb): New.
24037 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
24038
a0e527e3
RW
240392008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24040
24041 PR bootstrap/35218
24042 * Makefile.in (build_file_translate): New.
24043 (gcc-vers.texi): Use it for translating $(abs_srcdir).
24044 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
24045 * configure.ac (build_file_translate): Substitute it.
24046 * configure: Regenerate.
24047
9d5cee3d
JH
240482008-02-19 Jan Hubicka <jh@suse.cz>
24049
24050 PR rtl-optimization/34408
3e4b9ad0
JH
24051 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
24052 invalid sharing.
9d5cee3d 24053
8723e2fe
JH
240542008-02-19 Jan Hubicka <jh@suse.cz>
24055
24056 PR middle-end/28779
3e4b9ad0
JH
24057 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
24058 call_expr.
8723e2fe 24059
5ba5440f
L
240602008-02-19 H.J. Lu <hongjiu.lu@intel.com>
24061
24062 PR Ada/35186
24063 * config/i386/i386-modes.def: Revert the last DI alignment
24064 change until Ada people can look into it.
24065
c01c261d
NC
240662008-02-19 Nick Clifton <nickc@redhat.com>
24067
24068 * opts.c (print_specific_help): Fix typo in --help text.
24069
2e834acb
JJ
240702008-02-19 Jakub Jelinek <jakub@redhat.com>
24071
24072 PR target/35239
24073 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
24074 32-bit inline asm without asm alternatives for host GCC < 3.0.
24075
9cadd7f7
RG
240762008-02-19 Richard Guenther <rguenther@suse.de>
24077
24078 PR tree-optimization/34989
24079 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
24080 Allow propagation to INDIRECT_REF if we can simplify only.
24081
ffc30173
MLI
240822008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24083
24084 * c-common.c (warn_for_collisions_1): Use appropriate option when
24085 warning.
24086
b3eaaf1a
NC
240872008-02-19 Nick Clifton <nickc@redhat.com>
24088
24089 PR other/31349
a8971bdb 24090 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
b3eaaf1a
NC
24091 (handle_options): Fix indentation.
24092 (print_filtered_help): If no language-specific options were
24093 displayed tell the user how to list all the options supported by
24094 the language's front-end.
24095 (print_specific_help): Fix indentation and remove duplicate line.
24096 (common_handle_option): Handle the -v option.
24097 For --help enable the display of undocumented options if the -v
24098 switch has been included on the command line.
24099 For --help= check for overlaps in the arguments between the option
24100 classes and the language names and issue a warning when they
24101 cannot be disambiguated.
24102 * c.opt (v): Pass on to the common option handler.
24103
22129589 241042008-02-19 Revital Eres <eres@il.ibm.com>
de82c453
RE
24105
24106 * modulo-sched.c (sms_schedule): Change dump message when
24107 create_ddg function fails.
24108 (try_scheduling_node_in_cycle): Rename row to cycle.
24109 (print_partial_schedule): Rename CYCLE to ROW.
24110
32159434 241112008-02-19 Christian Bruel <christian.bruel@st.com>
a8971bdb
UB
24112 Zdenek Dvorak <ook@ucw.cz>
24113
24114 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
24115
0e93e1b4
UB
241162008-02-19 Uros Bizjak <ubizjak@gmail.com>
24117
24118 PR target/33555
24119 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
24120 (*x86_movdicc_0_m1_se): Ditto.
24121
02d353cf
UB
241222008-02-19 Uros Bizjak <ubizjak@gmail.com>
24123
24124 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
24125 (CMPtype): Define as __gcc_CMPtype.
24126 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
24127 (CMPtype): Define as __gcc_CMPtype.
24128
35dee980
HPN
241292008-02-19 Hans-Peter Nilsson <hp@axis.com>
24130
24131 Support valgrind 3.3 for --enable-checking=valgrind.
24132 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
24133 here.
24134 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
24135 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
24136 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
24137 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
24138 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
24139 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
24140 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
24141 respectively.
24142 * ggc-zone.c: Similar.
24143 * ggc-page.c: Similar.
24144
27e03cf1
PB
241452008-02-19 Paul Brook <paul@codesourcery.com>
24146
24147 PR target/35071
24148 * config/arm/ieee754-df.S: Fix do_it typo.
24149 * config/arm/ieee754-sf.S: Fix do_it typo.
24150
287a7d41
L
241512008-02-18 H.J. Lu <hongjiu.lu@intel.com>
24152
24153 PR target/35189
24154 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
24155 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
24156 (OPTION_MASK_ISA_SSE_SET): Likewise.
24157 (OPTION_MASK_ISA_SSE2_SET): Likewise.
24158 (OPTION_MASK_ISA_SSE3_SET): Likewise.
24159 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
24160 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
24161 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
24162 (OPTION_MASK_ISA_SSE4_SET): Likewise.
24163 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
24164 (OPTION_MASK_ISA_SSE5_SET): Likewise.
24165 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
24166 (OPTION_MASK_ISA_MMX_UNSET): Updated.
24167 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
24168 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
24169 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
24170 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
24171 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
24172 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
24173 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
24174 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
24175 (OPTION_MASK_ISA_SSE4): Removed.
24176 (ix86_handle_option): Turn on bits in ix86_isa_flags and
3b509e33 24177 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
287a7d41
L
24178 (override_options): Don't turn on implied SSE/MMX bits in
24179 ix86_isa_flags.
24180
feaffcaa
L
241812008-02-18 H.J. Lu <hongjiu.lu@intel.com>
24182
24183 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24184 32bit host.
24185
b2ae828d
JY
241862008-02-18 Joey Ye <joey.ye@intel.com>
24187
24188 PR middle-end/34921
24189 * tree-nested.c (insert_field_into_struct): Set type alignment
24190 to field alignment if the former is less than the latter.
24191
8d855c3d
JJ
241922008-02-18 Jakub Jelinek <jakub@redhat.com>
24193
24194 * BASE-VER: Set to 4.4.0.
24195
923158be
RW
241962008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24197
24198 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
24199 * doc/cfg.texi: Likewise.
24200 * doc/extend.texi: Likewise.
24201 * doc/gty.texi: Likewise.
24202 * doc/invoke.texi: Likewise.
24203 * doc/loop.texi: Likewise.
24204 * doc/md.texi: Likewise.
24205 * doc/passes.texi: Likewise.
24206 * doc/rtl.texi: Likewise.
24207 * doc/sourcebuild.texi: Likewise.
24208 * doc/tm.texi: Likewise.
24209 * doc/tree-ssa.texi: Likewise.
24210
f0a77246
RG
242112008-02-17 Richard Guenther <rguenther@suse.de>
24212
24213 PR middle-end/35227
24214 * tree-complex.c (init_parameter_lattice_values): Handle parameters
24215 without default definition.
24216
e09deb14
RG
242172008-02-17 Richard Guenther <rguenther@suse.de>
24218
24219 PR tree-optimization/35231
24220 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
24221 if A | B != 1.
24222
e6528d32
UB
242232008-02-17 Uros Bizjak <ubizjak@gmail.com>
24224
24225 Revert:
22129589 24226 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
e6528d32
UB
24227 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24228 libgcc_cmp_return mode.
24229
93e052a8
MLI
242302008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24231
24232 PR c/28368
24233 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
24234
2a49e6f8
RC
242352008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
24236
24237 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
24238 multilibs.
24239
0ee2ea09
RW
242402008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24241
24242 * doc/c-tree.texi: Use `@.' where appropriate.
24243 * doc/extend.texi: Likewise.
24244 * doc/install.texi: Likewise.
24245 * doc/invoke.texi: Likewise.
24246 * doc/loop.texi: Likewise.
24247 * doc/makefile.texi: Likewise.
24248 * doc/md.texi: Likewise.
24249 * doc/passes.texi: Likewise.
24250 * doc/standards.texi: Likewise.
24251 * doc/tm.texi: Likewise.
24252
ac84c062
JJ
242532008-02-15 Jakub Jelinek <jakub@redhat.com>
24254
24255 PR middle-end/35196
24256 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
24257 in entry_bb.
24258 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
24259 rather than in entry_bb.
24260
6a9e8571
UB
242612008-02-15 Uros Bizjak <ubizjak@gmail.com>
24262
24263 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24264 libgcc_cmp_return mode.
24265
6837b3b8
JJ
242662008-02-15 Jakub Jelinek <jakub@redhat.com>
24267
24268 PR middle-end/35130
24269 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
24270 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
24271
2e58df6e 242722008-02-15 Richard Guenther <rguenther@suse.de>
6a9e8571 24273 Zdenek Dvorak <ook@ucw.cz>
2e58df6e
RG
24274
24275 PR tree-optimization/35164
24276 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
24277 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
24278 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
24279 Only propagate addresses which do not have abnormal SSA_NAMEs
24280 in their operands.
24281
206598fb
JM
242822008-02-15 Joseph Myers <joseph@codesourcery.com>
24283
24284 PR target/35088
24285 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
24286
18168b3f
JH
242872008-02-15 Jan Hubicka <jh@suse.cz>
24288
24289 PR middle-end/35149
24290 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
24291
6f6b8f81
UB
242922008-02-15 Uros Bizjak <ubizjak@gmail.com>
24293
24294 PR middle-end/34621
24295 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
24296 when calculating alignment_pad.
24297
979c67a5
UB
242982008-02-15 Uros Bizjak <ubizjak@gmail.com>
24299
24300 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
24301 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
24302 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
24303 and STACK_BOUNDARY define.
24304
101e174d
DS
243052008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
24306
24307 PR preprocessor/35061
24308 * c-pragma.c (handle_pragma_pop_macro): Check that
24309 pushed_macro_table has been allocated.
24310
928bc34f
EB
243112008-02-14 Eric Botcazou <ebotcazou@adacore.com>
24312
24313 PR middle-end/35136
24314 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
24315 (force_gimple_operand): Likewise.
24316 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
24317 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
24318 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
24319 (find_interesting_uses_address): Check addressability and alignment
24320 of the base expression only after substituting bases of IVs into it.
24321
a5bfb13a
MM
243222008-02-14 Michael Matz <matz@suse.de>
24323
24324 PR target/34930
24325 * function.c (instantiate_virtual_regs_in_insn): Reload address
24326 before falling back to reloading the whole operand.
24327
b49326f1
AK
243282008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
24329
24330 * config/s390/s390.c (s390_mainpool_start): Emit the pool
24331 before the first section switch note.
24332
021efafc
RW
243332008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24334
346341a4
RW
24335 * doc/bugreport.texi: Update copyright years.
24336 * doc/c-tree.texi: Likewise.
24337 * doc/cfg.texi: Likewise.
24338 * doc/cpp.texi: Likewise.
24339 * doc/cppinternals.texi: Likewise.
24340 * doc/fragments.texi: Likewise.
24341 * doc/frontends.texi: Likewise.
24342 * doc/gcc.texi: Likewise.
24343 * doc/gty.texi: Likewise.
24344 * doc/hostconfig.texi: Likewise.
24345 * doc/implement-c.texi: Likewise.
24346 * doc/libgcc.texi: Likewise.
24347 * doc/loop.texi: Likewise.
24348 * doc/makefile.texi: Likewise.
24349 * doc/options.texi: Likewise.
24350 * doc/passes.texi: Likewise.
24351 * doc/rtl.texi: Likewise.
24352 * doc/sourcebuild.texi: Likewise.
24353 * doc/standards.texi: Likewise.
24354 * doc/tree-ssa.texi: Likewise.
24355 * doc/trouble.texi: Likewise.
24356
021efafc
RW
24357 * doc/extend.texi: Use @: or add comma where appropriate.
24358 * doc/invoke.texi: Likewise.
24359 * doc/tm.texi: Likewise.
24360
583da60a
AM
243612008-02-14 Alan Modra <amodra@bigpond.net.au>
24362
24363 PR target/34393
24364 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
24365 to a reg.
24366
2a6627c2
JN
243672008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
24368
24369 * doc/md.texi (clz, ctz): Add reference.
24370 * doc/rtl.texi (clz, ctz): Likewise.
24371
1b0c753a
RW
243722008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24373
24374 PR other/35148
24375 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
24376 srcdir.
24377
03870a04
AK
243782008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
24379
24380 * config/s390/s390.c (struct constant_pool): New field
24381 emit_pool_after added.
24382 (s390_mainpool_start): Set the emit_pool_after flag according
24383 to the section switch notes.
24384 (s390_mainpool_finish): Consider emit_pool_after when emitting
24385 the literal pool at the end of the function.
24386 (s390_chunkify_start): Force literal pool splits at section
24387 switch notes.
24388
be71b673
MM
243892008-02-13 Michael Matz <matz@suse.de>
24390
24391 PR debug/35065
24392 * var-tracking.c (clobber_variable_part): Correctly traverse the
24393 list.
24394
fed39e22
MLI
243952008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24396
24397 PR 29673
24398 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
24399 Add -fdump-ipa-inline.
24400 * tree-dump.c (dump_files): Remove tree-inlined dump.
24401 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
22129589 24402
8665227f
RG
244032008-02-12 Richard Guenther <rguenther@suse.de>
24404
24405 PR tree-optimization/35171
24406 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
24407 default defs.
24408
8f768a5a
RG
244092008-02-12 Richard Guenther <rguenther@suse.de>
24410
24411 PR middle-end/35163
24412 * fold-const.c (fold_widened_comparison): Use get_unwidened in
24413 value-preserving mode. Disallow final truncation.
24414
81186f7b
EB
244152008-02-12 Eric Botcazou <ebotcazou@adacore.com>
24416
24417 PR middle-end/35136
24418 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
24419 code from here to...
24420 (force_gimple_operand): ...here.
24421
d7b8033f
JJ
244222008-02-12 Jakub Jelinek <jakub@redhat.com>
24423
e4521d11
JJ
24424 PR c++/35144
24425 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
24426 non-compatible pointers.
24427 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
24428 different FIELD_DECLs, try harder by comparing field offsets, sizes
24429 and types.
24430
d7b8033f
JJ
24431 PR inline-asm/35160
24432 * function.c (match_asm_constraints_1): Don't replace the same input
24433 multiple times.
24434
d6f77715
AS
244352008-02-12 Anatoly Sokolov <aesok@post.ru>
24436
24437 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
24438 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
24439 (expand_epilogue): Restore RAMPZ register.
24440 * config/avr/avr.md (RAMPZ_ADDR): New constant.
24441
35b35fd0
KT
244422008-02-11 Kai Tietz <kai.tietz@onevision.com>
24443
40049ccc 24444 * config/i386/cygwin.asm: (__alloca): Correct calling
35b35fd0
KT
24445 convention and alignment.
24446 (__chkstk): Force 8 byte stack alignment.
24447
a6e2d112 244482008-02-11 Uros Bizjak <ubizjak@gmail.com>
f8c5cff4 24449 Richard Guenther <rguenther@suse.de>
a6e2d112
UB
24450
24451 PR tree-optimization/33992
24452 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
24453 the zero we compare against.
24454
40049ccc
UB
244552008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
24456
24457 PR libfortran/35063
24458 * gthr-win32.h (__gthread_mutex_destroy_function): New function
24459 to CloseHandle after unlocking to prevent accumulation of handle
24460 count.
24461
4d811a05
JDA
244622008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24463
24464 PR middle_end/34150
24465 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
24466 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
24467 and update LABEL_NUSES during and after reload.
24468
e37f6a49
SB
244692008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
24470
24471 PR middle-end/34627
a3395528 24472 * combine.c (simplify_if_then_else): Make sure the comparison is
e37f6a49
SB
24473 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
24474
34917a10
RS
244752008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
24476
24477 PR bootstrap/35051
24478 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
24479 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
24480 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
24481 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
24482 * tree.h (get_type_static_bounds): Likewise.
24483
670b0231
RW
244842008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24485
24486 * doc/invoke.texi (Option Summary, C++ Dialect Options)
24487 (Objective-C and Objective-C++ Dialect Options, Warning Options):
24488 Make -Wfoo language annotations match what the compiler outputs.
24489
069c47ee
SL
244902008-02-08 Sa Liu <saliu@de.ibm.com>
24491
22129589 24492 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
069c47ee 24493 intrinsics spu_convts, spu_convtu, spu_convtf.
069c47ee 24494
ccd2a21e
HPN
244952008-02-08 Hans-Peter Nilsson <hp@axis.com>
24496
24497 * doc/extend.texi (Function Attributes) <noinline>: Mention
24498 asm ("") as method to keep calls.
24499
af47e6ac
MLI
245002008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24501
24502 PR other/32754
24503 * doc/options.texi (Options): Replace references to opts.sh with
24504 optc-gen.awk.
24505 * opts-common.c: Likewise.
24506 * optc-gen.awk: Likewise.
22129589 24507
96e2afa8
AK
245082008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
24509
24510 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
24511
245122008-02-07 Richard Henderson <rth@redhat.com>
32891ff6
RH
24513
24514 PR rtl-opt/33410
24515 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
22129589 24516 EXPR_LIST for the REG_EQUAL instead of a comparison with a
32891ff6
RH
24517 funny mode.
24518
c4ae80d9
UB
245192008-02-07 Uros Bizjak <ubizjak@gmail.com>
24520
24521 PR tree-optimization/35085
24522 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
24523 for operand entry oe2 in addition to operand entry oe3 in order to
24524 expose more opportunities for vectorizer sum reduction.
24525
72fb133f
KG
245262008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24527
24528 PR other/35107
24529 * Makefile.in (LIBS): Remove $(GMPLIBS).
24530 (cc1-dummy, cc1): Add $(GMPLIBS).
24531
20a415f8
JH
245322008-02-06 Jan Hubicka <jh@suse.cz>
24533
88b089d5 24534 PR target/23322
20a415f8
JH
24535 * i386.md (moddf_integer): Do not produce partial memory stalls for
24536 targets where it hurts.
24537
cc8d36a1
UB
245382008-02-06 Uros Bizjak <ubizjak@gmail.com>
24539
24540 PR target/35083
24541 * optabs.c (expand_float): Do not check for decimal modes when
24542 expanding unsigned integer through signed conversion.
24543
2ccd9cb2
NC
245442008-02-06 Nick Clifton <nickc@redhat.com>
24545
24546 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
24547 inside the clobber with a match_operand and duplicated operand
24548 number in the constraint.
24549 (ineqbranchsi): Delete redundant comment.
24550
ecb2366e
RC
245512008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
24552
22129589 24553 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
448b96d0
RC
24554 builtin_define ("__USE_INIT_FINI__").
24555 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
24556 -msx multilibs.
ecb2366e
RC
24557 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
24558
ccd4e386
RW
245592008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24560
24561 PR documentation/30330
24562 * doc/invoke.texi (C++ Dialect Options)
24563 (Objective-C and Objective-C++ Dialect Options, Warning Options):
24564 For each warning option -Wfoo that allows -Wno-foo, ensure both
24565 -Wfoo and -Wno-foo are listed in the option index. Fix index
24566 entry of -Wswitch-default, index -Wnormalized= including the
24567 `=', and -Wlarger-than-@var{len} including @var{len}.
24568
def7425b
UB
245692008-02-05 Uros Bizjak <ubizjak@gmail.com>
24570
24571 * config/i386/i386.md (floatunssisf2): Use
24572 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
24573 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
24574 Macroize expander using MODEF mode iterator.
24575
c1e7d240
DN
245762008-02-05 Diego Novillo <dnovillo@google.com>
24577
24578 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
24579
24580 PR 33738
def7425b 24581 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
c1e7d240 24582
3a204175
KG
245832008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24584
24585 PR other/35070
24586 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
24587
7074bc2e
L
245882008-02-05 H.J. Lu <hongjiu.lu@intel.com>
24589
24590 PR target/35084
24591 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
24592 to indicate if a message should be generated.
24593 (init_cumulative_args): Updated.
24594 (function_value_32): Likewise.
24595
0f5098ae
JM
245962008-02-05 Joseph Myers <joseph@codesourcery.com>
24597
24598 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
24599
4a534152
UB
246002008-02-05 Uros Bizjak <ubizjak@gmail.com>
24601
24602 PR target/35083
24603 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
24604 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
24605
3467b230
DN
246062008-02-04 Diego Novillo <dnovillo@google.com>
24607
24608 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
24609
24610 PR 33738
24611 * tree-vrp.c (vrp_evaluate_conditional): With
24612 -Wtype-limits, emit a warning when comparing against a
24613 constant outside the natural range of OP0's type.
24614
22199fd2
RG
246152008-02-04 Richard Guenther <rguenther@suse.de>
24616
24617 PR middle-end/33631
24618 * expr.c (count_type_elements): Give for unions instead of
24619 guessing.
24620
1a1640db
RG
246212008-02-04 Richard Guenther <rguenther@suse.de>
24622
24623 PR middle-end/35043
24624 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
24625 to TYPE_DOMAINs base type instead of using bitsizetype here.
24626
0fcedd9c
JM
246272008-02-03 Jason Merrill <jason@redhat.com>
24628
24629 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
24630
a31cfd58
RW
246312008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24632
24633 PR other/29972
24634 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
24635 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
24636 (RS/6000 and PowerPC Options): Fix typos and markup.
24637 * doc/passes.texi (Tree-SSA passes): Likewise.
24638
6994f254
MM
246392008-02-02 Michael Matz <matz@suse.de>
24640
24641 PR target/35045
24642 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
24643 from record_last_reg_set_info.
24644 (record_last_reg_set_info): Take an RTX argument, iterate over all
24645 constituent hardregs.
24646 (record_last_set_info, record_opr_changes): Change calls to
24647 new signature or to record_last_reg_set_info_regno.
24648
27f56cb1
GP
246492008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
24650
24651 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
24652
3e836a31
HPN
246532008-02-01 Hans-Peter Nilsson <hp@axis.com>
24654
24655 PR rtl-optimization/34773
24656 * reg-notes.def (EQUAL): Mention significance of combination of
24657 REG_EQUAL and REG_RETVAL.
24658 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
24659 insn that has a REG_RETVAL.
24660
d5be1dd4
RS
246612008-02-01 Roger Sayle <roger@eyesopen.com>
24662
24663 PR bootstrap/33781
24664 * configure.ac (--enable-fixed-point): Disable unless explicitly
24665 requested on IRIX.
24666 * configure: Regenerate.
24667
7c9c2f2a
RG
246682008-02-01 Richard Guenther <rguenther@suse.de>
24669
24670 PR other/35042
24671 * invoke.texi (-finline-limit): Remove no longer true parts
24672 of the documentation. Note that there is no default value.
24673
a18c20ec
AP
246742008-02-01 Andrew Pinski <pinskia@gmail.com>
24675 Mark Mitchell <mark@codesourcery.com>
24676 Ben Elliston <bje@au.ibm.com>
24677
24678 PR c/29326
24679 * doc/extend.texi (Other Builtins): Document.
24680
dc9a511d
TB
246812008-01-31 Tom Browder <tom.browder@gmail.com>
24682
24683 * doc/c-tree.texi (Types): Fix grammar.
24684 (Expression trees): Ditto.
24685 * doc/passes.texi (Tree-SSA passes): Ditto.
22129589 24686
dc9a511d
TB
24687 * doc/configterms.texi (Configure Terms): Fix typo.
24688 * doc/cpp.texi (Common Predefined Macros): Ditto.
24689 * doc/md.texi (Machine Constraints): Ditto.
22129589 24690
dc9a511d
TB
24691 * doc/makefile.texi (Makefile): Add comma.
24692
5dc81ee9
TB
246932008-01-31 Tom Browder <tom.browder@gmail.com>
24694 Gerald Pfeifer <gerald@pfeifer.com>
22129589 24695
5dc81ee9
TB
24696 * doc/sourcebuild.texi (Front End): Remove references to CVS
24697 and CVSROOT/modules.
24698 (Texinfo Manuals): Replace reference to CVS by one to SVN.
24699 (Back End): Remove reference to CVS.
24700
5ca3d30c
RS
247012008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
24702
24703 PR target/34900
24704 * config/mips/mips.c (gen_load_const_gp): New function, taking a
24705 comment from...
24706 (mips16_gp_pseudo_reg): ...here.
24707 * config/mips/mips.md (load_const_gp): Replace with...
24708 (load_const_gp_<mode>): ...this :P-based insn.
24709
89fe7f1b
MLI
247102008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24711
24712 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
24713 options. Minor fixes.
24714 (-std): Move reference to standards closer to where language
24715 standards are first mentioned.
22129589 24716
1f7f6676
RS
247172008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
24718
24719 PR rtl-optimization/34995
24720 * reload.c (alternative_allows_const_pool_ref): Take an rtx
24721 parameter and return a bool. If the rtx parameter is nonnull,
24722 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
24723 (find_reloads): Update call accordingly. Pass the new operand
24724 if it needed no address reloads, otherwise pass null.
24725
2ae7b972
RH
247262008-01-30 Richard Henderson <rth@redhat.com>
24727
24728 PR c/34993
24729 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
24730 for unbounded arrays.
24731
493f36a7
SR
247322008-01-30 Silvius Rus <rus@google.com>
24733
24734 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
24735
d6951cae
JH
247362008-01-30 Jan Hubicka <jh@suse.cz>
24737
24738 PR target/34982
24739 * i386.c (init_cumulative_args): Use real function declaration when
24740 calling locally.
24741
f36a5a88
RS
247422008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
24743
24744 PR rtl-optimization/34998
24745 * global.c (build_insn_chain): Treat non-subreg_lowpart
24746 SUBREGs of pseudos as clobbering all the words covered by the
24747 SUBREG, not just all the bytes.
24748 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
24749 original df_ref rather than an extract parameter.
24750 (global_conflicts): Update call accordingly.
24751
393c0058
AK
247522008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
24753
24754 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
24755 the overflow check to make it easier to read.
24756 (__fixtfdi): Change the type of the ll member in union
24757 long_double to UDItype_x.
24758
1033ffa8
JJ
247592008-01-30 Jakub Jelinek <jakub@redhat.com>
24760
2bafad93
JJ
24761 PR middle-end/34969
24762 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
24763 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
24764 * tree-inline.c (fold_marked_statements): Call
24765 cgraph_update_edges_for_call_stmt if folding a call statement.
24766 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
24767 debug_generic_stmt calls, reset it back afterwards.
24768
1033ffa8
JJ
24769 PR c/35017
24770 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
24771 static decls.
24772 * c-typeck.c (build_external_ref): Don't pedwarn about
24773 static vars in current function's scope.
24774
ed32d842
JM
247752008-01-29 Joseph Myers <joseph@codesourcery.com>
24776
24777 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
24778
ea429753
BF
247792008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
24780
24781 PR c/35002
24782 * ipa-struct-reorg.c: Fix spelling.
24783 * params.def: Ditto.
24784
4f5c64b8
RG
247852008-01-29 Richard Guenther <rguenther@suse.de>
24786
24787 PR middle-end/35006
24788 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
24789 field.
24790 * tree-inline.c (remap_type): Increment remapping_type_depth
24791 around remapping types.
24792 (copy_body_r): Only add referenced variables if they are referenced
24793 from code, not types.
24794
7b3e2d46
DG
247952008-01-29 Douglas Gregor <doug.gregor@gmail.com>
24796
24797 PR c++/34055
24798 PR c++/34103
24799 PR c++/34219
24800 PR c++/34606
24801 PR c++/34753
24802 PR c++/34754
24803 PR c++/34755
24804 PR c++/34919
24805 PR c++/34961
24806 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
24807 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
24808
12720317
AH
248092008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
24810
24811 PR target/34412
22129589 24812 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
12720317
AH
24813 pointer for tiny stack.
24814
b814cc0a
BF
248152008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
24816
24817 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
24818
f46ff798
BF
248192008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
24820
24821 * config/vx-common.h: Fix typo in comment.
24822
e8b0eabc
ILT
248232008-01-28 Ian Lance Taylor <iant@google.com>
24824
24825 PR c++/34862
24826 PR c++/33407
24827 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
24828 coalesce pointers if they have different DECL_NO_TBAA_P values.
24829 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
24830 between variables with different DECL_NO_TBAA_P values.
24831
2aa42e6e
NF
248322008-01-28 Nathan Froyd <froydnj@codesourcery.com>
24833
24834 PR 31535
24835 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
24836 are not legitimate small data references on SPE targets.
24837
4e2e9e9b
DD
248382008-01-28 David Daney <ddaney@avtrex.com>
24839
24840 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
24841
a26c7632
DD
248422008-01-28 David Daney <ddaney@avtrex.com>
24843
24844 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
24845
4f605349
JM
248462008-01-27 Joseph Myers <joseph@codesourcery.com>
24847
24848 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
24849 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
24850 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
24851 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
24852 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
24853 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
24854 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
24855 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
24856
9e148d6a
BF
248572008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
24858
24859 * basic-block.h (condjump_equiv_p): Fix comment.
24860
f749d3c6
BF
248612008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
24862
24863 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
24864 print_generic_stmt_indented): Fix comment.
24865
fed6d628
BF
248662008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
24867
24868 * configure.ac (__stack_chk_fail): Add detecion for availability
24869 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
24870 * configure: Regenerate.
24871
c01e4479
MK
248722008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
24873
24874 PR middle-end/34688
24875 * final.c (output_addr_const): Handle TRUNCATE.
24876
6e8c65f6
ZD
248772008-01-26 Zdenek Dvorak <ook@ucw.cz>
24878
24879 PR target/34711
24880 * tree-ssa-loop-ivopts.c (comp_cost): New type.
24881 (zero_cost, infinite_cost): New constants.
24882 (struct cost_pair): Change type of cost to comp_cost.
24883 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
24884 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
24885 New functions.
24886 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
24887 split_address_cost, ptr_difference_cost, difference_cost,
24888 get_computation_cost_at, get_computation_cost,
24889 determine_use_iv_cost_generic, determine_use_iv_cost_address,
24890 determine_use_iv_cost_condition, determine_use_iv_costs,
24891 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
24892 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
24893 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
24894 Change type of cost to comp_cost.
24895 (determine_iv_cost): Increase cost of non-original ivs, instead
24896 of decreasing the cost of original ones.
22129589 24897 (get_address_cost): Indicate the complexity of the addressing mode
6e8c65f6
ZD
24898 in comp_cost.
24899 (try_add_cand_for): Prefer using ivs not specific to some object.
24900 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
24901
c01e4479 249022008-01-26 Peter Bergner <bergner@vnet.ibm.com>
e41b2a33
PB
24903 Janis Johnson <janis187@us.ibm.com>
24904
24905 PR target/34814
24906 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
24907 (TARGET_INSTANTIATE_DECLS): Likewise.
24908 * target.h (expand_to_rtl_hook): New target hook.
24909 (instantiate_decls): Likewise.
24910 * function.c (instantiate_decl): Make non-static. Rename to...
24911 (instantiate_decl_rtl): ... this.
24912 (instantiate_expr): Use instantiate_decl_rtl.
24913 (instantiate_decls_1): Likewise.
24914 (instantiate_decls): Likewise.
24915 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
24916 * function.h (instantiate_decl_rtl): Add prototype.
24917 * cfgexpand.c (target.h): New include.
24918 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
24919 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
24920 (TARGET_INSTANTIATE_DECLS): Likewise.
24921 (TARGET_INITIALIZER): New target hooks added.
24922 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
24923 New prototype.
24924 * config/rs6000/rs6000.c (tree-flow.h): New include.
24925 (machine_function): Add sdmode_stack_slot field.
24926 (rs6000_alloc_sdmode_stack_slot): New function.
24927 (rs6000_instantiate_decls): Likewise.
24928 (rs6000_secondary_memory_needed_rtx): Likewise.
24929 (rs6000_check_sdmode): Likewise.
24930 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
24931 (TARGET_INSTANTIATE_DECLS): Likewise.
24932 (rs6000_hard_regno_mode_ok): Allow SDmode.
24933 (num_insns_constant): Likewise. Handle _Decimal32 constants.
24934 (rs6000_emit_move): Handle SDmode.
24935 (function_arg_advance): Likewise.
24936 (function_arg): Likewise.
24937 (rs6000_gimplify_va_arg): Likewise. Add special handling of
24938 SDmode var args for 32-bit compiles.
24939 (rs6000_secondary_reload_class): Handle SDmode.
24940 (rs6000_output_function_epilogue): Likewise.
24941 (rs6000_function_value): Simplify if statement.
24942 (rs6000_libcall_value): Likewise.
24943 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
24944 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
24945 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
24946 (movsd_hardfloat): New define_insn.
24947 (movsd_softfloat): Likewise.
24948 (movsd_store): Likewise.
24949 (movsd_load): Likewise.
24950 (extendsddd2): Likewise.
24951 (extendsdtd2): Likewise.
24952 (truncddsd2): Likewise.
24953 (movdd_hardfloat64): Fixup comment.
24954 (UNSPEC_MOVSD_LOAD): New constant.
24955 (UNSPEC_MOVSD_STORE): Likewise.
24956
6f536f74
JJ
249572008-01-26 Jakub Jelinek <jakub@redhat.com>
24958
24959 PR c++/34965
24960 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
24961 TRUTH_XOR_EXPR.
24962 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
24963 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
24964 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
24965 and TRUTH_XOR_EXPR.
24966
ba6a1b78
DE
249672008-01-26 David Edelsohn <edelsohn@gnu.org>
24968
24969 PR target/34794
24970 * config.gcc: Separate AIX 5.3 from AIX 6.1.
24971 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
24972 __LONGDOUBLE128 too.
24973 * config/rs6000/aix61.h: New file.
24974
1230d7f8
RS
249752008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
24976
24977 PR rtl-optimization/34959
24978 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
24979 popcount and parity rtxes the same mode as their operand.
24980 Truncate or extend the result to the return value's mode
24981 if necessary.
24982
dbc90b65
RS
249832008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
24984
24985 PR target/34981
24986 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
24987 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
24988 to GOT_VERSION_REGNUM.
24989 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
24990 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
24991 * config/mips/mips.c (mips_emit_call_insn): New function.
24992 (mips_call_tls_get_addr): Call mips_expand_call directly.
24993 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
24994 emit_call_insn.
24995 (mips16_build_call_stub): Likewise. Return the call insn or null.
24996 (mips_expand_call): Update the call to mips16_build_call_stub
24997 accordingly and a remove redundant condition. Assert that MIPS16
24998 stubs do not use lazy binding. Use mips_emit_call_insn and return
24999 the call insn.
25000 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
25001 TARGET_USE_GOT.
25002 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
25003 (mips_avoid_hazard): Remove hazard_set handling.
25004 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
25005 (UNSPEC_RESTORE_GP): ...this.
25006 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
25007 (FAKE_CALL_REGNO): Rename to...
25008 (GOT_VERSION_REGNUM): ...this.
25009 (type): Add "ghost" value. Add an associated insn reservation.
25010 (hazard_set): Remove.
25011 (exception_receiver): Rename to...
25012 (restore_gp): ...this and update the unspec identifier accordingly.
25013 (exception_receiver, nonlocal_got_receiver): New expanders.
25014 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
25015 FAKE_CALL_REGNO. Remove hazard_set attribute.
25016 (set_got_version, update_got_version): New patterns.
25017
763a27ee
DS
250182008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
25019
25020 PR target/34970
25021 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
25022
3725c0ca
JM
250232008-01-25 Joseph Myers <joseph@codesourcery.com>
25024
25025 PR other/31955
25026 * doc/install.texi2html: Generate gcc-vers.texi.
25027
0288980f
DD
250282008-01-25 DJ Delorie <dj@redhat.com>
25029
25030 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
25031
8d8da227
JM
250322008-01-25 Joseph Myers <joseph@codesourcery.com>
25033
25034 * config/c4x: Remove directory.
25035 * config.gcc (crx-*, mt-*): Mark obsolete.
25036 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
25037 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
25038 sh-*-rtemscoff*): Remove cases.
25039 * defaults.h (C4X_FLOAT_FORMAT): Remove.
25040 * real.c (encode_c4x_single, decode_c4x_single,
25041 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
25042 c4x_extended_format): Remove.
25043 * real.h (c4x_single_format, c4x_extended_format): Remove.
25044 * doc/extend.texi (interrupt, naked): Remove mention of attributes
25045 on C4x.
25046 (Pragmas): Remove comment about c4x pragmas.
25047 * doc/install.texi (c4x): Remove target-specific instructions.
25048 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
25049 * doc/md.texi (Machine Constraints): Remove C4x documentation.
25050 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
25051 refer to C4x source files as examples.
25052 (C4X_FLOAT_FORMAT): Remove documentation.
25053
fb7c3b05
BS
250542008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
25055
25056 * config/bfin/bfin.c (override_options): Reorder tests so that
25057 flag_pic gets enabled for -msep-data.
25058
dd3b33d7
RG
250592008-01-25 Richard Guenther <rguenther@suse.de>
25060
25061 PR middle-end/32244
25062 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
25063 to its bitfield precision if required.
25064
c256730c
JJ
250652008-01-25 Jakub Jelinek <jakub@redhat.com>
25066
25067 PR middle-end/33880
25068 * tree-nested.c (walk_omp_for): New function.
25069 (convert_nonlocal_reference, convert_local_reference): Call
25070 walk_omp_for on OMP_FOR.
25071 (convert_call_expr): Call walk_body on OMP_FOR's
25072 OMP_FOR_PRE_INIT_BODY.
25073
59805c3b
RG
250742008-01-25 Richard Guenther <rguenther@suse.de>
25075
25076 PR tree-optimization/34966
25077 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
25078 default defs and PHI_NODEs we have to insert after the
25079 defining statement.
25080
f84fe9b6
NC
250812008-01-24 Nick Clifton <nickc@redhat.com>
25082
25083 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
25084 Provide a default definition.
25085 (LIBGCC2_UNITS_PER_WORD): Likewise.
25086
25087 * config/stormy16/stormy16.c: Include df.h for the prototype
25088 for df_regs_ever_live_p.
25089 (xstormy16_expand_builtin_va_start): Convert the stack offset
25090 into a component_ref and then use POINTER_PLUS_EXPR to add it
25091 to the incoming_virtual_args_rtx.
25092 (xstormy16_gimplify_va_arg_expr): Rename to
25093 xstormy16_gimplify_va_arg_expr.
25094 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
25095 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
25096 xstormy16_gimplify_va_arg_expr.
25097 Fix up some formatting issues.
25098
25099 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
25100 Move to predicates.md.
25101 (xs_hi_general_operand): Likewise.
25102 (xs_hi_nonmemory_operand): Likewise.
25103 * config/stormy16/predicates.md:
25104 (xstormy16_carry_plus_operand): New predicate.
25105 (xs_hi_general_operand): New predicate.
25106 (xs_hi_nonmemory_operand): New predicate.
25107 * config/stormy16/stormy16-protos.h:
25108 (xstormy16_carry_plus_operand): Delete prototype.
25109 (xs_hi_general_operand): Likewise.
25110 (xs_hi_nonmemory_operand): Likewise.
25111
25112 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
25113 modifiers as they are no longer needed and they can trigger
25114 reload spill failures.
25115
25116 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
25117 with a match_operand in order to help reload.
25118
25119 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
25120 constraint with 'e' for the 8th alternative as this version of
25121 the mov.w instruction only accepts the lower 8 registers.
25122
d1f0728e
UB
251232008-01-25 Uros Bizjak <ubizjak@gmail.com>
25124
25125 PR target/34856
25126 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
25127 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
25128 vector elements.
25129
80e67011
JJ
251302008-01-25 Jakub Jelinek <jakub@redhat.com>
25131
25132 PR middle-end/33333
25133 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
25134
1525f2c3
GO
251352008-01-25 Golovanevsky Olga <olga@il.ibm.com>
25136
25137 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
25138 New functions.
25139 (remove_structure): Update allocations list before removing structure.
22129589 25140
bd91d743
OG
251412008-01-25 Golovanevsky Olga <olga@il.ibm.com>
25142
22129589 25143 * ipa-struct-reorg.c (is_safe_cond_expr,
bd91d743
OG
25144 create_new_stmts_for_cond_expr): Use integer_zerop function,
25145 that recognize not only zero-pointer, but zero-integer too.
25146
ae7a8ebc
BE
251472008-01-25 Ben Elliston <bje@au.ibm.com>
25148
25149 PR other/22232
25150 * fixproto: Escape "." in sed expression that strips leading "./".
25151
3371362c
L
251522008-01-24 H.J. Lu <hongjiu.lu@intel.com>
25153
25154 PR driver/34904
25155 * gcc.c (SWITCH_OK): Removed.
25156 (SWITCH_LIVE): Changed to bit.
25157 (SWITCH_FALSE): Likewise.
25158 (SWITCH_IGNORE): Likewise.
25159 (switchstr): Change live_cond to unsigned int.
25160 (process_command): Replace SWITCH_OK with 0.
25161 (do_self_spec): Likewise.
25162 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
25163 (give_switch): Likewise.
25164 (used_arg): Likewise.
25165 (do_spec_1): Set the SWITCH_IGNORE bit.
25166 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
25167 bits. Set the SWITCH_LIVE bit.
25168
5f1b2ee6
AK
251692008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
25170
25171 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
25172
986d97ed
RS
251732008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
25174
25175 PR tree-optimization/34472
25176 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
25177 parameter to a "bool *" and set *DATA to false if there is
25178 an unsafe access. Do not delete the structure here.
25179 (check_cond_exprs): Delete it here instead.
25180 (check_cond_exprs, exclude_cold_structs): Do not increase
25181 I when removing a structure.
25182
fcc44808
UB
251832008-01-24 Uros Bizjak <ubizjak@gmail.com>
25184
25185 PR target/34856
25186 * config/i386/i386.c (ix86_expand_vector_init): Consider only
25187 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
25188
134c2de3
JJ
251892008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
25190
25191 PR middle-end/34934
25192 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
25193 a fixed vector for stack.
25194
89bf8683
BE
251952008-01-24 Ben Elliston <bje@au.ibm.com>
25196
25197 PR c++/25701
25198 * doc/gcc.texi (Software development): Add a direntry for g++.
22129589 25199
02a4bca9
HPN
252002008-01-23 Hans-Peter Nilsson <hp@axis.com>
25201
6c660aeb
HPN
25202 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
25203 stale and straggling -fforce-addr comments above.
25204
02a4bca9
HPN
25205 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
25206 define.
25207 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
25208 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
25209
b4da9f9d
MM
252102008-01-23 Michael Matz <matz@suse.de>
25211
25212 PR debug/34895
25213 * dwarf2out.c (force_type_die): Use modified_type_die instead of
25214 gen_type_die.
25215
1b7af7b0
AK
252162008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
25217
25218 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
25219 malloc result type.
25220
19298da4
AS
252212008-01-23 Anatoly Sokolov <aesok@post.ru>
25222
25223 * config/avr/avr.c (avr_current_arch): New variable.
25224 (avr_arch_types): Add 'avr31' and 'avr51' entries.
25225 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
25226 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
22129589 25227 (avr_override_options): Init 'avr_current_arch'.
19298da4 25228 (base_arch_s): Move from here...
22129589
AS
25229 * config/avr/avr.h (base_arch_s): ... here. Add new members
25230 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19298da4 25231 'mega' to 'have_jmp_call'.
22129589 25232 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
5617c135 25233 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19298da4 25234 macros.
22129589 25235 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19298da4 25236 architectures.
22129589 25237 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5617c135 25238 MULTILIB_MATCHES): Ditto.
19298da4 25239
b86b3ea3
RG
252402008-01-23 Richard Guenther <rguenther@suse.de>
25241
25242 PR middle-end/31529
25243 * cgraphunit.c (cgraph_reset_node): Always mark the node
25244 not reachable if it is not queued already.
25245
fa8d4a0f
BS
252462008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
25247
25248 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
25249 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
25250 (cputype_selected): New static variable.
25251 (bfin_handle_option): Set it if -mcpu is used.
25252 (override_option): Select default set of workarounds if no cpu type
25253 selected on the command line.
25254 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
64882649
BS
25255
25256 From Michael Frysinger <michael.frysinger@analog.com>
25257 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
25258 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
25259
25260 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
25261 for bf547, bf523, bf524, and bf526.
25262 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
25263 bf526.
25264 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
25265 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
25266 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
25267 __ADSPBF547__ and __ADSPBF54x__ for bf547.
25268 * doc/invoke.texi (Blackfin Options): Document that
25269 -mcpu now accept bf547, bf523, bf524, and bf526.
25270
df1a98ae
EB
252712008-01-22 Eric Botcazou <ebotcazou@adacore.com>
25272
25273 PR rtl-optimization/34628
25274 * combine.c (try_combine): Stop and undo after the first combination
25275 if an autoincrement side-effect on the first insn has effectively
25276 been lost.
25277
1a23970d
DE
252782008-01-22 David Edelsohn <edelsohn@gnu.org>
25279
25280 PR target/34529
25281 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
25282 Offset addresses are not valid for Altivec or paired float modes.
25283
42a89d2d
JJ
252842008-01-22 Jakub Jelinek <jakub@redhat.com>
25285
61c3a446
JJ
25286 PR c++/34607
25287 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
25288 if DECL_INITIAL (decl) is error_mark_node.
25289
270e749d
JJ
25290 PR c++/34914
25291 * c-common.c (handle_vector_size_attribute): Only allow
25292 integral, scalar float and fixed point types. Handle OFFSET_TYPE
25293 the same way as pointer, array etc. types.
25294 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
25295
42a89d2d
JJ
25296 PR c++/34917
25297 * tree.c (build_type_attribute_qual_variant): Call
25298 build_qualified_type if attributes are equal, but quals are not.
25299
027b740e
MLI
253002008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25301
25302 PR 32102
25303 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
25304 * flags.h (warn_strict_aliasing): Remove.
25305 (warn_strict_overflow): Remove.
25306 * opts.c (warn_strict_aliasing): Remove.
25307 (warn_strict_overflow): Remove.
25308 * c-opts.c (c_common_handle_option): -Wall only sets
25309 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
25310 (c_common_post_options): Give default values to -Wstrict-aliasing
25311 and -Wstrict-overflow if they are uninitialized.
25312 * common.opt (Wstrict-aliasing): Specify Var and Init.
25313 (Wstrict-overflow): Likewise.
25314
4218dc2d 253152008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
963acd6f
KZ
25316
25317 PR rtl-optimization/26854
25318 PR rtl-optimization/34400
25319 PR rtl-optimization/34884
25320 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
25321 DF_RD->gen.
25322 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
25323 (df_rd_bb_info.expanded_lr_out): Deleted
25324 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
25325 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
25326 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
25327 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
25328 Removed code to allocate, initialize or free expanded_lr_out.
25329 (df_rd_bb_local_compute_process_def): Restructured to make more
25330 understandable.
25331 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
25332 sets if the sets are being trimmed.
25333
115e6e55
L
253342008-01-22 H.J. Lu <hongjiu.lu@intel.com>
25335
25336 PR bootstrap/32287
25337 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
25338 (as_vers): Likewise.
25339 * configure: Regenerated.
25340
f9d02384
MLI
253412008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25342
25343 PR middle-end/33092
25344 * tree-pass.h (pass_build_alias): New pass.
25345 * tree-ssa-alias.c (gate_build_alias): New.
25346 (pass_build_alias): New.
25347 * passes.c (init_optimization_passes): Add pass_build_alias after
25348 pass_create_structure_vars.
25349
0387c142
WG
253502008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
25351
25352 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
25353 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
25354 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
25355 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
25356 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
25357 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
25358 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
25359 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
25360 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
25361 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
25362 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
25363 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
25364 * config/s390/s390.md (FP_ALL): New mode iterator.
25365 (_d): New mode attribute.
25366 ("*signbit<mode>2>"): Changed mode of first operand.
25367 ("isinf<mode>2"): Changed mode of first operand.
25368 ("*TDC_insn"): Adaptation for DFP modes.
25369
1d4f5374
BE
253702008-01-22 Ben Elliston <bje@au.ibm.com>
25371
25372 * tree.c (check_qualified_type): Improve function description.
25373
33b45227
JM
253742008-01-21 Jason Merrill <jason@redhat.com>
25375
25376 PR c++/34196
25377 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
25378 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
25379 if it is set.
25380
79e168da
DD
253812008-01-21 DJ Delorie <dj@redhat.com>
25382
25383 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
25384 return zero.
25385
bb0c55f6
RG
253862008-01-21 Richard Guenther <rguenther@suse.de>
25387
25388 PR middle-end/34856
25389 * tree-cfg.c (verify_expr): Allow all invariant expressions
25390 instead of just constant class ones as reference argument.
25391 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
25392 like any other constant.
25393 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
25394
94c54fea
L
253952008-01-21 H.J. Lu <hongjiu.lu@intel.com>
25396
25397 * regmove.c (fixup_match_1): Update call crossed frequencies.
25398
c54e3854
RG
253992008-01-21 Richard Guenther <rguenther@suse.de>
25400
25401 PR c/34885
25402 * tree-inline.c (setup_one_parameter): Deal with mismatched
25403 types using a VIEW_CONVERT_EXPR.
25404
b158b5c6
AD
254052008-01-21 Alon Dayan <alond@il.ibm.com>
25406 Olga Golovanevsky <olga@il.ibm.com>
22129589 25407
b158b5c6
AD
25408 PR tree-optimization/34701
25409 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
25410 when the structure size is not a power of 2.
25411
4218dc2d 254122008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
604f825c
KZ
25413
25414 * doc/install.texi: Add doc for --enable-checking=df.
22129589 25415
539c54ba
KK
254162008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
25417
25418 PR rtl-optimization/34808
25419 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
25420
ecff8c1c
RS
254212008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
25422
25423 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
25424 input.
25425
4218dc2d 254262008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2b49e1a0
KZ
25427
25428 PR rtl-optimization/26854
25429 PR rtl-optimization/34400
25430 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
25431 DF_RD->gen.
25432 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
25433 (df_rd_bb_info.expanded_lr_out): New.
25434 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
25435 * loop_iv.c (iv_analysis_loop_init): Ditto.
25436 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
25437 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
25438 Added code to allocate, initialize or free expanded_lr_out.
25439 (df_rd_bb_local_compute_process_def): Restructured to make
25440 more understandable.
25441 (df_rd_confluence_n): Add code to do nothing with fake edges and
25442 code to no apply invalidate_by_call sets if the sets are being trimmed.
25443 (df_lr_local_finalize): Renamed to df_lr_finalize.
25444 (df_live_local_finalize): Renamed to df_live_finalize.
25445
0decaff6
RS
254462008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
25447
25448 PR target/34831
25449 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
25450 deciding whether to use reciprocal instructions.
25451
d0b9dbd5
UB
254522008-01-19 Uros Bizjak <ubizjak@gmail.com>
25453
25454 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
25455 dwarf2out_note_section_used if cold_text_section is NULL.
25456
135a171d
JJ
254572008-01-19 Jakub Jelinek <jakub@redhat.com>
25458
25459 PR gcov-profile/34610
25460 * tree-cfg.c (make_edges): Mark both outgoing edges from
25461 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
25462 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
25463 from OMP_FOR and OMP_CONTINUE outgoing edges.
25464
25465 * tree-profile.c (tree_profiling): Return early if
25466 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
25467 at the end.
25468 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
25469 from cfun to child_cfun.
25470 * function.h (struct function): Add after_tree_profile bit.
25471
0a84fec6
AS
254722008-01-19 Anatoly Sokolov <aesok@post.ru>
25473
25474 * config/avr/avr.S (_exit): Disable interrupt.
25475
5aa52064
KZ
254762008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
25477 Steven Bosscher <stevenb.gcc@gmail.com>
25478
25479 PR rtl-optimization/26854
25480 PR rtl-optimization/34400
25481 * df-problems.c (df_live_scratch): New scratch bitmap.
25482 (df_live_alloc): Allocate df_live_scratch when doing df_live.
25483 (df_live_reset): Clear the proper bitmaps.
25484 (df_live_bb_local_compute): Only process the artificial defs once
25485 since the order is not important.
25486 (df_live_init): Init the df_live sets only with the variables
25487 found live by df_lr.
25488 (df_live_transfer_function): Use the df_lr sets to prune the
22129589 25489 df_live sets as they are being computed.
5aa52064
KZ
25490 (df_live_free): Free df_live_scratch.
25491
28a08168
ILT
254922008-01-18 Ian Lance Taylor <iant@google.com>
25493
25494 * common.opt: Add fmerge-debug-strings.
25495 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
25496 flag_merge_debug_strings rather than flag_merge_constants.
25497 * doc/invoke.texi (Option Summary): Mention
25498 -fmerge-debug-strings.
25499 (Debugging Options): Document -fmerge-debug-strings.
25500
1ea193c2
ILT
255012008-01-18 Ian Lance Taylor <iant@google.com>
25502
25503 PR c++/33407
25504 * tree.h (DECL_IS_OPERATOR_NEW): Define.
25505 (struct tree_function_decl): Add new field operator_new_flag.
25506 * tree-inline.c (expand_call_inline): When inlining a call to
25507 operator new, force the return value to go into a variable, and
25508 set DECL_NO_TBAA_P on that variable.
25509 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
25510
74ab34d3
UB
255112008-01-18 Uros Bizjak <ubizjak@gmail.com>
25512
25513 PR debug/34484
25514 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
25515 DWARF2_DEBUGGING_INFO.
25516 (dwarf2out_note_section_used): Ditto. Add prototype.
25517 (have_multiple_function_sections, text_section_used,
25518 cold_text_section_used, *cold_text_sections): Move declarations
25519 before their uses.
25520
9a75e92d 255212008-01-17 Bob Wilson <bob.wilson@acm.org>
6c633d45
BW
25522
25523 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
25524 field and add signal_ra.
25525 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
25526 assignments to frame state pc. Move end of stack check after
25527 MD_FALLBACK_FRAME_STATE_FOR.
25528 (uw_update_context_1): Use frame state signal_regs if set, instead
25529 of checking signal_frame flag.
25530 (uw_update_context): Use frame state signal_ra if set.
25531 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
25532 * config/xtensa/linux-unwind.h: New file.
25533
9a75e92d 255342008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
4117d6f7
BF
25535
25536 * modulo-sched.c (get_sched_window): Fix comment typo.
25537
fae25b37
AM
255382008-01-17 Andrew MacLeod <amacleod@redhat.com>
25539
25540 PR tree-optimization/34648
25541 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
25542
2e152e16
AS
255432008-01-17 Anatoly Sokolov <aesok@post.ru>
25544
25545 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
25546 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
25547
185082a7
SP
255482008-01-17 Seongbae Park <seongbae.park@gmail.com>
25549
25550 PR rtl-optimization/34400
25551 * df-core.c (df_worklist_dataflow_overeager,
25552 df_worklist_dataflow_doublequeue): New functions.
25553 (df_worklist_dataflow): Two different worklist solvers.
25554 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
25555 New param.
25556
01a550c2
SP
255572008-01-16 Sebastian Pop <sebastian.pop@amd.com>
25558
25559 PR testsuite/34821
25560 * doc/invoke.texi: Document the dependence on pthread for fopenmp
25561 and ftree-parallelize-loops.
25562
80663107
MN
255632008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
25564
25565 PR rtl-optimization/34826
25566 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
25567
599824d2
AK
255682008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
25569
25570 * global.c (find_reg): Mark the eh regs as used if necessary.
25571 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
25572 * ra.h (struct allocno): no_eh_reg field added. Changed
25573 no_stack_reg type to bitfield.
25574
9328dd57
EB
255752008-01-17 Eric Botcazou <ebotcazou@adacore.com>
25576
25577 * tree.c (substitute_in_expr): Add missing 'break'.
25578
8a5b57cd
RG
255792008-01-17 Richard Guenther <rguenther@suse.de>
25580
25581 PR tree-optimization/34825
25582 * tree-ssa-math-opts.c (is_division_by): Do not recognize
25583 x / x as division to handle.
25584
e7ce29e7
JDA
255852008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25586
25587 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
25588 "-pthread" is specified.
25589 * pa-hpux11.h (LIB_SPEC): Likewise.
25590
9a75e92d 255912008-01-16 Janis Johnson <janis187@us.ibm.com>
37b87a3a
JJ
25592 Peter Bergner <bergner@vnet.ibm.com>
25593
25594 PR rtl-optimization/33796
25595 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
25596
6595ec51
JDA
255972008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25598
25599 PR libgfortran/34699
25600 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
25601 static links.
25602 * pa-hpux10.h (LINK_SPEC): Likewise.
25603 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
25604
bdb55eae
RG
256052008-01-16 Richard Guenther <rguenther@suse.de>
25606
25607 PR middle-end/32628
25608 * fold-const.c (fold_convert_const_int_from_int): Do not
25609 set overflow if that occured only because of a sign extension
25610 change when converting from/to a sizetype with the same
25611 precision and signedness.
25612
2e2c7ce2
UB
256132008-01-16 Uros Bizjak <ubizjak@gmail.com>
25614
25615 PR debug/34249
25616 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
25617 location address to the correct place. Update copyright year.
25618
d49c149d
SP
256192008-01-16 Sebastian Pop <sebastian.pop@amd.com>
25620
25621 * lambda-code.c (lambda_transform_legal_p): Handle the case of
25622 no dependences in the dependence_relations vector.
25623
a03c6d64
JH
256242008-01-16 Jan Hubicka <jh@suse.cz>
25625
25626 PR rtl-optimization/31396
25627 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
25628 * cfg.c (dump_reg_info): Print it.
25629 * regs.h (struct reg_info_t): add freq_calls_crossed.
25630 (REG_FREQ_CALLS_CROSSED): New macro.
25631 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
25632 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
25633 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
25634 regmove_optimize): Update call crossed frequencies.
25635 * local-alloc.c (struct qty): Add freq_calls_crossed.
25636 (alloc_qty): Copute freq_calls_crossed.
25637 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
25638 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
25639 * ra.h (struct allocno): Add freq_calls_crossed.
25640
daf49354
SP
256412008-01-16 Sebastian Pop <sebastian.pop@amd.com>
25642
25643 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
25644 libgomp when compiling with ftree-parallelize-loops.
25645 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
25646
a1a5996d
RG
256472008-01-16 Richard Guenther <rguenther@suse.de>
25648
25649 PR tree-optimization/34769
25650 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
25651 * tree.c (int_cst_value): Instead make this function more
25652 permissive in what it accepts as valid input. Document this
25653 function always sign-extends the value.
25654
de4af523 256552008-01-16 Jakub Jelinek <jakub@redhat.com>
d0b9dbd5 25656 Richard Guenther <rguenther@suse.de>
de4af523
JJ
25657
25658 PR c/34668
25659 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
25660 (gimple_fold_indirect_ref_rhs): ... this.
25661 (gimple_fold_indirect_ref): New function with foldings
25662 that preserve lvalueness.
25663 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
25664 * tree-flow.h (gimple_fold_indirect_ref): Declare.
25665 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
25666 to fold an INDIRECT_REF, fall back to the old use of
25667 fold_indirect_ref_1.
25668
6935bae7
SP
256692008-01-16 Sebastian Pop <sebastian.pop@amd.com>
25670
22129589 25671 * tree-data-ref.c (subscript_dependence_tester_1): Call
6935bae7
SP
25672 free_conflict_function.
25673 (compute_self_dependence): Same.
25674
a4b6974e
UB
256752008-01-16 Uros Bizjak <ubizjak@gmail.com>
25676
25677 PR debug/34249
25678 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
25679 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
25680 function global.
25681 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
25682 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
25683 for DWARF2_UNWIND_INFO targets.
25684
eb1387a0
RG
256852008-01-16 Richard Guenther <rguenther@suse.de>
25686
25687 PR c/34768
25688 * c-typeck.c (common_pointer_type): Do not merge inconsistent
25689 type qualifiers for function types.
25690
9326236d
JD
256912008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
25692
25693 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
25694 loop_iterator li from previous commit.
25695
256962008-01-15 Sebastian Pop <sebastian.pop@amd.com>
92a6bdbd
SP
25697
25698 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
25699
1d4af1e8
SP
257002008-01-12 Sebastian Pop <sebastian.pop@amd.com>
25701
25702 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
25703 (parallelize_loops): Don't parallelize irreducible components.
25704
8103eebf
MLI
257052008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25706
25707 PR c++/24924
25708 * c-opts (c_common_post_options): Do not enable CPP
25709 flag_pedantic_errors by default.
22129589 25710
d556d181
EB
257112008-01-14 Eric Botcazou <ebotcazou@adacore.com>
25712
25713 PR rtl-optimization/31944
25714 * cse.c (remove_pseudo_from_table): New function.
25715 (merge_equiv_classes): Use above function to remove pseudo-registers.
25716 (invalidate): Likewise.
25717
726612d2
RG
257182008-01-13 Richard Guenther <rguenther@suse.de>
25719
25720 PR middle-end/34601
25721 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
25722 instead of TYPE_MODE to deal with calls from expand_one_error_var.
25723
51134e52
UB
257242008-01-13 Uros Bizjak <ubizjak@gmail.com>
25725
25726 * gcse.c (cprop_jump): Call validate_unshare_change instead of
25727 validate_change to unshare the source of the PC set.
25728
3097760b
JH
257292008-01-12 Jan Hubicka <jh@suse.cz>
25730
25731 PR middle-end/32135
25732 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
25733 references above array bounds. This might trigger bounds checks for
25734 pointers to arrays.
25735
42b22da8
SP
257362008-01-12 Sebastian Pop <sebastian.pop@amd.com>
25737
25738 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
25739 new_replaceable_dependencies.
25740
5db2e9ca
DK
257412008-01-12 Doug Kwan <dougkwan@google.com>
25742
25743 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
25744 instead of OPT_Wreturn_type in warning due to ignored return type
25745 qualifiers.
25746 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
25747 options included in -Wextra.
25748 * c.opt: New option -Wignored_qualifiers.
25749 * doc/invoke.texi (Warning Options, -Wextra): Add new option
25750 -Wignore_qualifiers.
25751 (-Wignored-qualifiers): Document.
25752 (-Wreturn-type): Remove description of functionality now handled
25753 by -Wignored-qualifiers.
25754
52ef2874
EB
257552008-01-12 Eric Botcazou <ebotcazou@adacore.com>
25756
25757 PR ada/33788
25758 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
25759 NOP_EXPR if it is between integral types with the same precision.
25760
a60b56a4
JH
257612008-01-12 Jan Hubicka <jh@suse.cz>
25762
25763 PR other/28023
25764 * invoke.texi (max-inline-recursive-depth): Fix default value.
25765
29ac1d9a
ZD
257662008-01-12 Zdenek Dvorak <ook@ucw.cz>
25767
25768 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
25769 correct type.
25770
166b25dc 257712008-01-11 Bob Wilson <bob.wilson@acm.org>
22129589 25772
166b25dc 25773 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
22129589 25774
ad8151b7
JW
257752008-01-11 James E. Wilson <wilson@specifix.com>
25776
25777 PR target/26015
25778 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
25779
0d40cc60
AS
257802008-01-11 Anatoly Sokolov <aesok@post.ru>
25781
22129589
AS
25782 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
25783 save/restore frame pointer register and don't use 'call-prologues'
0d40cc60
AS
25784 optimization in function with "OS_task" attribute.
25785
15af420d
EB
257862008-01-11 Eric Botcazou <ebotcazou@adacore.com>
25787
25788 PR middle-end/31309
25789 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
25790 when copying to memory.
25791
c1e3e2d9
SB
257922008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
25793
25794 PR rtl-optimization/30905
25795 * cfgcleanup.c: Include dce.h
25796 (crossjumps_occured): New global variable.
25797 (try_crossjump_bb): Exit loop after finding a fallthru edge.
25798 If something changed, set crossjumps_occured to true.
25799 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
25800 Don't add/remove fake edges to exit here...
25801 (cleanup_cfg): ...but do it here, when crossjumping.
25802 Run a fast DCE when successful crossjumps occured in the latest
25803 iteration of try_optimize_cfg.
25804
8d0eca24
RG
258052008-01-11 Richard Guenther <rguenther@suse.de>
25806
25807 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
25808 (struct vn_unary_op_s): Likewise.
25809 (vn_reference_insert): Free old reference on hash collision.
25810
acfb3980
RA
258112008-01-10 Raksit Ashok <raksit@google.com>
25812
25813 PR rtl-optimization/27971
31bfe034
RA
25814 * combine.c (find_split_point): Split PLUS expressions which are
25815 inside a MEM rtx, and whose first operand is complex.
acfb3980 25816
b8a669d0
DD
258172008-01-10 DJ Delorie <dj@redhat.com>
25818
25819 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
25820 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
25821 (m32c_hard_regno_ok): Call the underlying function.
25822
d0f76c4b
RG
258232008-01-10 Richard Guenther <rguenther@suse.de>
25824
25825 PR middle-end/34683
25826 * tree-cfg.c (tree_merge_blocks): Do not go through the
25827 full-blown folding and stmt updating path if we just deal
25828 with virtual operands.
25829 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
25830 test for abnormal SSA_NAMEs.
25831
90d12f1f
AK
258322008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
25833
25834 PR middle-end/34641
25835 * reload.c (push_reload): Add assertions. All constants from
25836 reg_equiv_constant should have been used for replacing the respective
25837 pseudo earlier.
25838 (find_reloads_address): Invoke find_reloads_address_part for
25839 constant taken from the reg_equiv_constant array.
25840
71ae8557
SB
258412008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
25842
25843 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
25844 field (valnum) the first in the struct. Replace bools with
25845 unit bit fields.
25846
125e025e
RG
258472008-01-10 Richard Guenther <rguenther@suse.de>
25848
25849 PR tree-optimization/34651
25850 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
25851 types and ordering for masking and converting.
25852
64cbaace
SP
258532008-01-09 Sebastian Pop <sebastian.pop@amd.com>
25854
25855 PR tree-optimization/34017
25856 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
25857 also for PHI_NODE expressions.
25858
88743d3a
JH
258592008-01-09 Jan Hubicka <jh@suse.cz>
25860
25861 PR tree-optimization/34708
25862 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
25863 based on number of case labels.
25864 (init_inline_once): Remove switch_cost.
25865 * tree-inline.h (eni_weights_d): Remove switch_cost.
25866
c3e203cf
RG
258672008-01-09 Richard Guenther <rguenther@suse.de>
25868 Andrew Pinski <andrew_pinski@playstation.sony.com>
25869
25870 PR middle-end/30132
25871 * gimplify.c (gimplify_cond_expr): Do not create an addressable
25872 temporary if an rvalue is ok or an lvalue is not required.
25873
def49dd7
RG
258742008-01-09 Richard Guenther <rguenther@suse.de>
25875
25876 PR middle-end/34458
25877 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
25878 adjust return type.
25879
cbad2e09
RG
258802008-01-09 Richard Guenther <rguenther@suse.de>
25881
25882 PR middle-end/34679
25883 * tree.c (host_integerp): Check for sizetype only if the
25884 type is an integer type.
25885
59e5c37d
SB
258862008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
25887
25888 PR debug/26364
25889 * opts.c (decode_options): Disable inlining of functions called
25890 once if not in unit-at-a-time mode.
25891
712db60e
AO
258922008-01-09 Alexandre Oliva <aoliva@redhat.com>
25893
25894 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
25895
3fe2f42a
RG
258962008-01-08 Richard Guenther <rguenther@suse.de>
25897
25898 PR middle-end/31863
25899 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
25900 out early if the result will be unused.
25901
4d869718
UB
259022008-01-08 Uros Bizjak <ubizjak@gmail.com>
25903
25904 PR target/34709
25905 Revert:
25906
25907 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
25908 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
22129589
AS
25909 for TARGET_RECIP.
25910
cedbd764 259112008-01-08 Jan Sjodin <jan.sjodin@amd.com>
22129589 25912
4d869718
UB
25913 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
25914 for vectorization tuned.
22129589 25915
a9990582
RG
259162008-01-08 Richard Guenther <rguenther@suse.de>
25917
25918 PR tree-optimization/34683
25919 * tree-ssa-operands.c (operand_build_cmp): Export.
25920 * tree-ssa-operands.h (operand_build_cmp): Declare.
25921 * tree-vn.c (vuses_compare): Remove.
25922 (sort_vuses): Use operand_build_cmp.
25923 (sort_vuses_heap): Likewise.
25924 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
25925 to re-use old VEC if available. Do not sort already sorted VUSEs.
25926 (vdefs_to_vec): Do not sort already sorted VDEFs.
25927
c90eee44
JJ
259282008-01-08 Jakub Jelinek <jakub@redhat.com>
25929
25930 PR middle-end/34694
25931 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
25932
8bce96f5
UB
259332008-01-08 Uros Bizjak <ubizjak@gmail.com>
25934
25935 PR target/34702
25936 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
25937 limitations of reciprocal sequences on x86 targets.
25938
4eefcc98
RG
259392008-01-08 Richard Guenther <rguenther@suse.de>
25940
25941 PR tree-optimization/34683
25942 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
25943
b69d564b
JJ
259442008-01-07 Jakub Jelinek <jakub@redhat.com>
25945
25946 PR target/34622
25947 * config/darwin.c (darwin_mergeable_string_section): Don't use
25948 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
25949
6b761851
UB
259502008-01-07 Uros Bizjak <ubizjak@gmail.com>
25951
25952 PR target/34682
25953 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
25954 negxf2. Macroize expander using X87MODEF mode iterator. Change
25955 predicates of op0 and op1 to register_operand.
8bce96f5
UB
25956 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
25957 expander using X87MODEF mode iterator. Change predicates of
25958 op0 and op1 to register_operand.
6b761851
UB
25959 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
25960 corresponding patterns and macroize using MODEF macro. Change
25961 predicates of op0 and op1 to register_operand and remove
25962 "m" constraint. Disparage "r" alternative with "!".
25963 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
25964 macroize using X87MODEF macro. Change predicates of op0 and op1
25965 to register_operand and remove "m" constraint. Disparage "r"
25966 alternative with "!".
25967 (absneg splitter with memory operands): Remove.
25968 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
25969 patterns and macroize using X87MODEF mode iterator.
25970 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
25971 Change predicate of op1 to register_operand.
25972 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8bce96f5 25973 for memory operands.
6b761851 25974
5ca0373f
NF
259752008-01-07 Nathan Froyd <froydnj@codesourcery.com>
25976
25977 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
25978
2eac9a76
RG
259792008-01-07 Richard Guenther <rguenther@suse.de>
25980
25981 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
25982 fields.
25983
b61ea03d
RG
259842008-01-07 Richard Guenther <rguenther@suse.de>
25985
25986 PR tree-optimization/34683
25987 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
25988 VOPs of the needed size to save memory. Use VEC_quick_push
25989 to save compile-time.
25990 (vdefs_to_vec): Likewise.
25991
c4bd75cd 259922008-01-07 Sa Liu <saliu@de.ibm.com>
b61ea03d 25993
6b761851
UB
25994 * config/spu/spu.md (divdf3): Genetate inline code for double
25995 division. The implementation doesn't handle INF or NAN, therefore it
25996 only applies when -ffinite-math-only is given.
c4bd75cd 25997
ba551ec2
PC
259982008-01-06 Paolo Carlini <pcarlini@suse.de>
25999
26000 PR libstdc++/34680
26001 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
26002 * doc/cpp.texi ([Common Predefined Macros]): Document.
26003
43db7979
UB
260042008-01-06 Uros Bizjak <ubizjak@gmail.com>
26005
26006 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
26007 order to use commutative addition instead of subtraction.
26008
2c460d12
RE
260092008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
26010 Mircea Namolaru <namolaru@il.ibm.com>
26011 Vladimir Yanovsky <yanov@il.ibm.com>
26012 Revital Eres <eres@il.ibm.com>
26013
26014 PR tree-optimization/34263
26015 * tree-outof-ssa.c (process_single_block_loop_latch,
26016 contains_tree_r): New functions.
26017 (analyze_edges_for_bb): Call process_single_block_loop_latch
26018 function to empty single-basic-block latch block if possible.
26019
5a37a60c
UB
260202008-01-05 Uros Bizjak <ubizjak@gmail.com>
26021
26022 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
26023 for TARGET_RECIP.
26024 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
26025
1a8a3a5e
RS
260262008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
26027
26028 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
26029
2a4430a6
RS
260302008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
26031
26032 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
26033
58fcda21
JJ
260342008-01-05 Jakub Jelinek <jakub@redhat.com>
26035
26036 PR tree-optimization/34618
26037 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
26038 flag from T.
26039
f1bf33ce
UB
260402008-01-05 Uros Bizjak <ubizjak@gmail.com>
26041
26042 PR target/34673
26043 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
26044 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
26045 Update copyright year.
26046
26047 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
26048 Update copyright year.
26049 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
26050 using NR fixup.
26051
12a6309e
ZZ
260522008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
26053
26054 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
26055 edge does not point to current bb before changing need_assert.
26056
bdb69bee
RG
260572008-01-04 Richard Guenther <rguenther@suse.de>
26058
26059 PR middle-end/34029
26060 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
26061 for verifying purposes if they are is_gimple_min_invariant.
26062
ffed8a01
AH
260632008-01-04 Aldy Hernandez <aldyh@redhat.com>
26064
26065 PR tree-optimization/34448
26066 PR tree-optimization/34465
26067 * gimplify.c (gimplify_init_constructor): Add new parameter
26068 notify_temp_creation. Use it.
26069 (gimplify_modify_expr_rhs): Take volatiles into account when
26070 optimizing constructors.
26071 Do not optimize constructors if gimplify_init_constructor will dump to
26072 memory.
26073 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
26074 * gcc.c-torture/compile/pr34448.c: New.
26075
b5ca517c
JJ
260762008-01-04 Jakub Jelinek <jakub@redhat.com>
26077
26078 PR gcov-profile/34609
26079 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
26080 return_slot if result is TREE_ADDRESSABLE.
26081
6a3d1d49
RS
260822008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
26083
26084 * config/mips/mips.md (sqrt_condition): Tweak comment.
26085 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
26086
6fc3c3c0
TT
260872008-01-03 Tom Tromey <tromey@redhat.com>
26088
b5ca517c 26089 PR c/34457
6fc3c3c0
TT
26090 * c-common.c (c_type_hash): Handle VLAs.
26091
045685a9
JH
260922008-01-03 Jan Hubicka <jh@suse.cz>
26093
26094 PR tree-optimization/31081
26095 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
26096 0 when inlining and not inlining to first basic block.
26097 (remap_decl): When var is initialized to 0, don't set default_def.
26098 (expand_call_inline): Set entry_bb.
26099 * tree-inline.h (copy_body_data): Add entry_bb.
26100
2092ee7d
JJ
261012008-01-03 Jakub Jelinek <jakub@redhat.com>
26102
cac67c08
JJ
26103 PR c++/34619
26104 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
26105 before returning.
26106
2092ee7d
JJ
26107 PR tree-optimization/29484
26108 * tree-inline.c (inline_forbidden_p_2): New function.
26109 (inline_forbidden_p): Disallow inlining if some static var
26110 has an address of a local LABEL_DECL in its initializer.
26111 * doc/extend.texi (Labels as Values): Document &&foo behaviour
26112 vs. inlining.
26113
2726bafe 261142008-01-03 Sebastian Pop <sebastian.pop@amd.com>
097392de
SP
26115
26116 PR tree-optimization/34635
26117 * tree-data-ref.c (add_other_self_distances): Make sure that the
26118 evolution step is constant.
26119
99819c63
JJ
261202008-01-03 Jakub Jelinek <jakub@redhat.com>
26121
26122 PR middle-end/34608
12a6309e 26123 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
99819c63 26124
1463dfa4
RS
261252008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
26126
26127 * tree-sra.c (scalarize_init): Insert the generate_element_init
26128 statements after the generate_element_zero statements.
26129
ee6ec666
RG
261302008-01-02 Richard Guenther <rguenther@suse.de>
26131
26132 PR middle-end/34093
26133 PR middle-end/31976
26134 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
26135 for very large number of operands instead of ICEing.
26136
6893e828
AN
261372008-01-02 Arthur Norman <acn1@cam.ac.uk>
26138
12a6309e 26139 PR target/34013
d0fb20be 26140 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6893e828
AN
26141 while stack probing.
26142
1a7817e4
DG
261432008-01-01 Douglas Gregor <doug.gregor@gmail.com>
26144
6893e828 26145 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12a6309e 26146 in C++0x mode.
1a7817e4 26147
882e337b
VR
261482008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
26149
26150 PR libmudflap/26442
26151 * tree-mudflap.c (mx_register_decls): Guard warning by
26152 !DECL_ARTIFICIAL check.
26153
f02ffa12
JJ
261542008-01-01 Jakub Jelinek <jakub@redhat.com>
26155
26156 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
26157 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
26158 sse5_perm<mode>): Fix constraints.
This page took 3.696589 seconds and 5 git commands to generate.