]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR middle-end/36578 (cast to long double not taken into account when result stored...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
20ded7a6
JM
12008-10-29 Joseph Myers <joseph@codesourcery.com>
2
3 PR middle-end/36578
4 * convert.c (convert_to_real): Do not optimize conversions of
5 binary arithmetic operations between binary and decimal
6 floating-point types. Consider mode of target type in determining
7 decimal type for arithmetic. Unless
8 flag_unsafe_math_optimizations, do not optimize binary conversions
9 where this may change rounding behavior.
10 * real.c (real_can_shorten_arithmetic): New.
11 * real.h (real_can_shorten_arithmetic): Declare.
12
669eeb28
BS
132008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
14
15 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
16 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
17 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
18 appropriate.
19 (must_save_p): For some workarounds, interrupts need to clobber a
20 P register.
21 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
22 and LC1 for WA_05000257.
23 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
24 WA_05000283 and WA_05000315.
25 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
26 (movbi): Add alternative to set CC to 1; improve code for setting
27 CC to 0.
28 (dummy_load): New pattern.
29
4d731f17
JJ
302008-10-29 Jakub Jelinek <jakub@redhat.com>
31
7d293b58
JJ
32 PR middle-end/37870
33 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
34 BLKmode for non-memory, convert using a wider MODE_INT mode
35 or through memory.
36
4d731f17
JJ
37 PR middle-end/37913
38 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
39 that haven't been removed yet.
40
a848cf52
BS
412008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
42
43 * config/bfin/bfin.c (struct machine_function): New member
44 has_loopreg_clobber.
45 (bfin_expand_movmem): Set it when generating memcpy insns.
46 (n_regs_saved_by_prologue, expand_prologue_reg_save,
47 expand_epilogue_reg_restore): If we have hardware loops,
48 memcpy insns (indicated by has_loopreg_clobber) or function
49 calls, we need to save the loop registers.
50
a31b4ecf
L
512008-10-28 H.J. Lu <hongjiu.lu@intel.com>
52
53 * config/i386/i386.c (core2_cost): Fix typos in comments.
54
261639a2
JJ
552008-10-28 Jakub Jelinek <jakub@redhat.com>
56
57 PR c/37924
58 * combine.c (make_compound_operation): Don't call make_extraction with
59 non-positive length.
60 (simplify_shift_const_1): Canonicalize count even if complement_p.
61
938d35bd
JM
622008-10-28 Joseph Myers <joseph@codesourcery.com>
63
64 * convert.c (strip_float_extensions): Do not remove or introduce
65 conversions between binary and decimal floating-point types.
66
5229689d
JJ
672008-10-28 Jakub Jelinek <jakub@redhat.com>
68
69 PR middle-end/37931
70 * fold-const.c (distribute_bit_expr): Convert common, left and
71 right arguments to type.
72
9d54866d
NC
732008-10-28 Nick Clifton <nickc@redhat.com>
74
75 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
76 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
77 call_really_used_regs array rather than the call_used_regs array.
78 (mn10300_get_live_callee_saved_regs, expand_prologue,
79 expand_epilogue, output_tst): Likewise.
80
6a16e934
JJ
812008-10-27 Jakub Jelinek <jakub@redhat.com>
82
60d52d0d
JJ
83 PR target/37378
84 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
85 (df_get_entry_block_def_set): Neither here.
86 (df_get_regular_block_artificial_uses): Add EH_USES registers.
87
6a16e934
JJ
88 PR tree-optimization/37879
89 * predict.c (tree_estimate_probability): Check if last_stmt is
90 non-NULL before dereferencing it.
91
cb1ca6ac
VM
922008-10-27 Vladimir Makarov <vmakarov@redhat.com>
93
94 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
95 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
96 (ira_fast_allocation): Remove the prototype.
97
98 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
99 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
100 (color_pass): Modify the updated costs.
101 (ira_color): Rename to color. Make it static.
102 (ira_fast_allocation): Rename to fast_allocation. Make it static.
103 (ira_color): New function.
104
105 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
106 change.
107
108 * ira-lives.c (last_call_num, allocno_saved_at_call): New
109 variables.
110 (set_allocno_live, clear_allocno_live, mark_ref_live,
111 mark_ref_dead): Invalidate corresponding element of
112 allocno_saved_at_call.
113 (process_bb_node_lives): Increment last_call_num. Setup
114 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
115 allocno was already saved.
116 (ira_create_allocno_live_ranges): Initiate last_call_num and
117 allocno_saved_at_call.
118
119 * ira-build.c (ira_create_allocno): Initiate
120 ALLOCNO_UPDATED_COVER_CLASS_COST.
121 (create_cap_allocno, propagate_allocno_info,
122 remove_unnecessary_allocnos): Remove setting updated costs.
123 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
124
125 * ira.c (ira): Don't call ira_fast_allocation.
126
127 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
128 updated costs.
129
c0683a82
VM
1302008-10-27 Vladimir Makarov <vmakarov@redhat.com>
131
132 PR middle-end/37813
133 * ira-conflicts.c (process_regs_for_copy): Remove class subset
134 check.
135
136 * ira-int.h (ira_hard_regno_cover_class): New.
137
138 * ira-lives.c (mark_reg_live, mark_reg_dead,
139 process_bb_node_lives): Use ira_hard_regno_cover_class.
140
141 * ira.c (reg_class ira_hard_regno_cover_class): New global
142 variable.
143 (setup_hard_regno_cover_class): New function.
144 (ira_init): Call setup_hard_regno_cover_class.
145
146 * ira-costs.c (cost_class_nums): Add comment.
147 (find_allocno_class_costs): Initiate cost_class_nums.
148 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
149
801f03e3
VM
1502008-10-27 Vladimir Makarov <vmakarov@redhat.com>
151
152 PR middle-end/37884
153 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
154 Rename to copy_info_to_removed_store_destinations. Propagate
155 conflict hard regs and register stack attribute.
156
c3e39a47
JDA
1572008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
158
159 PR middle-end/37316
160 * pa.c (function_arg_padding): Pad complex and vector types upward in
161 64-bit runtime.
162 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
163
793c44bd
MK
1642008-10-26 Matthias Klose <doko@ubuntu.com>
165
166 * doc/install.texi: Document requirements on antlr.
167
59dbe1d9
RS
1682008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
169
170 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
171 first.
172
099590dc
MM
1732008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
174
175 PR target/37841
176 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
177 is defined, use it to modify the constant offset.
178
179 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
180
181 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
182 and short arguments to the correct location as mandated by the
183 ABI.
184
d3a5ecb5
KK
1852008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
186
187 PR rtl-optimization/37769
188 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
189
397979fa
KK
1902008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
191
192 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
193 unwind-dw2-Os-4-200.o.
194
6b4ef5c1
JM
1952008-10-24 Joseph Myers <joseph@codesourcery.com>
196
197 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
198 (convert_for_assignment): Remove ic_argpass_nonproto cases.
199
1a00e5f7
JJ
2002008-10-24 Jakub Jelinek <jakub@redhat.com>
201
202 PR tree-optimization/36038
203 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
204 add sizetype IV with initial value zero instead of pointer type.
205
e49cf927 2062008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
100d537d
MLI
207
208 PR c/7543
209 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
210 around bit operation.
211 * profile.c (is_edge_inconsistent): Likewise.
212 * fold-const.c (truth_value_p): Move from here...
213 * tree.h (truth_value_p): ... to here.
214 * c-tree.h (c_expr): Update description of original_code.
215 * c-typeck.c (parser_build_unary_op): Set original_code.
216 (parser_build_binary_op): Update call to warn_about_parentheses.
217 * c-common.c (warn_about_parentheses): Take two additional
218 arguments of the operands. Use a switch. Quote operators
219 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
220 Add warning about !x | y and !x & y.
221 * c-common.h (warn_about_parentheses): Update declaration.
222
7134e605
JJ
2232008-10-24 Jakub Jelinek <jakub@redhat.com>
224
225 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
226 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
227 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
228 New variables.
229 (check-subtargets, check-%-subtargets, check-parallel-%): New
230 targets.
231 (check-%): For test targets listed in lang_checks_parallelized
232 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
233 run the testing in multiple make goals, possibly parallel, and
234 afterwards run dg-extract-results.sh to merge the sum and log files.
235
aea8cb37
RS
2362008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
237
238 * config/mips/mips.c (mips_canonicalize_move_class): New function.
239 (mips_move_to_gpr_cost): Likewise.
240 (mips_move_from_gpr_cost): Likewise.
241 (mips_register_move_cost): Make more fine-grained.
242
20ed8b32
TG
2432008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
244
245 * graphite.c (graphite_apply_transformations): Check for
246 -fgraphite-identity.
247 * toplev.c (process_options): Add graphite_identity.
248 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
249
23cf1526
BS
2502008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
251
2aca912d
BS
252 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
253 mulhisihl and mulhisihh builtins.
254
23cf1526
BS
255 From Jie Zhang <jie.zhang@analog.com>
256 * config/bfin/bfin.md (composev2hi): Put operands into vector
257 with correct order.
258
a166140f
CF
2592008-10-22 Chao-ying Fu <fu@mips.com>
260
261 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
262
318b3009
BS
2632008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
264
265 From Mike Frysinger <michael.frysinger@analog.com>
266 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
267 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
268 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
269 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
270 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
271 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
272 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
273 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
274 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
275 __ADSPBF51x__ for all of them.
276 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
277 -mcpu bf512, bf514, bf516, and bf518.
278 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
279 bf512-none, bf514-none, bf516-none, and bf518-none.
280 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
281 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
282 * doc/invoke.texi (Blackfin Options): Document that
283 -mcpu now accepts bf512, bf514, bf516, and bf518.
284
972afb58
JJ
2852008-10-22 Jakub Jelinek <jakub@redhat.com>
286
287 PR middle-end/37882
288 * fold-const.c (build_range_type): For 1 .. signed_max
289 range call build_nonstandard_inter_type if signed_type_for
290 returned a type with bigger precision.
291
51c869ca
RG
2922008-10-22 Richard Guenther <rguenther@suse.de>
293
294 * tree.def (COMPLEX_TYPE): Constrain element type.
295 * tree.c (build_complex_type): Assert that.
296 * tree-ssa-structalias.c (could_have_pointers): Complex types
297 cannot have pointers.
298
e49cf927 2992008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
a7da8b42
MLI
300
301 PR c/30949
302 * c-typeck.c (convert_for_assignment): Do not give declaration's
303 location for builtins. Spell out which type was expected and which
304 was given.
305
b8a19ec4
NC
3062008-10-22 Nick Clifton <nickc@redhat.com>
307
308 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
309 the fdpic register to be a target when running in fdpic mode.
310
a291ed6d
RAE
3112008-10-22 Rafael Espindola <espindola@google.com>
312
313 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
314 newly created statements.
315
347146a4
KK
3162008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
317
318 PR target/37633
319 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
320 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
321 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
322
e58d5f65
JJ
3232008-10-22 Jakub Jelinek <jakub@redhat.com>
324
325 PR target/37880
326 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
327 Adjust -mcmodel=medium description for 2005-07-31 changes.
328
cb7c15f8
JH
3292008-10-22 Jan Hubicka <jh@suse.cz>
330 Jakub Jelinek <jakub@redhat.com>
331
332 PR middle-end/35853
333 * doc/invoke.texi: Remove references to obsoleted -d dumps.
334
3d7e23f6
RH
3352008-10-21 Richard Henderson <rth@redhat.com>
336
337 PR 37815
338 * emit-rtl.c (get_spill_slot_decl): Export.
339 * emit-rtl.h (get_spill_slot_decl): Declare.
340 * var-tracking.c (vt_add_function_parameters): Relax assertion
341 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
342
7d407433
BW
3432008-10-21 Bob Wilson <bob.wilson@acm.org>
344
345 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
346 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
347 of from insn.
348
d9cc481a
AN
3492008-10-21 Adam Nemet <anemet@caviumnetworks.com>
350
351 PR middle-end/37669
352 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
353 processed by get_maxval_strlen.
354
3b8031bb
DE
3552008-10-21 David Edelsohn <edelsohn@gnu.org>
356
357 PR target/35485
358 * tree.c (get_file_function_name): Copy first_global_object_name.
359 Centralize call to clean_symbol_name.
360
3027350e
SL
3612008-10-21 Sandra Loosemore <sandra@codesourcery.com>
362
363 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
364 * config/svr4.h (SVR4_ASM_SPEC): New.
365 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
366 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
367
368 * doc/invoke.texi (Option Summary): Add -T to linker options.
369 (Link Options): Document -T.
370
8df67f4f
JJ
3712008-10-21 Jakub Jelinek <jakub@redhat.com>
372
658344f2
JJ
373 * tree-inline.c (tree_inlinable_function_p): Remove tuples
374 debugging hack.
375
8df67f4f
JJ
376 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from
377 INTEGER_CSTs.
378
500b9ca1
JJ
379 PR debug/37020
380 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
381
15d5fe33
DB
3822008-10-20 Daniel Berlin <dberlin@dberlin.org>
383
384 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
385 part of expression.
386
e49cf927 3872008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
c02c7cb1
TS
388
389 * doc/install.texi: Fix typos in previous patch.
390
e49cf927 3912008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
641afcff
TS
392
393 * doc/install.texi: Document in-tree building of gcc and mpfr.
394
a15138a4
RG
3952008-10-19 Richard Guenther <rguenther@suse.de>
396
397 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
398
e49cf927 3992008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
a7e72022
MLI
400
401 PR c/30260
402 * c-decl.c (finish_enum): Convert non-integer enumerators to enum
403 type.
404 (build_enumerator): Convert enumerators that fit in integer to
405 integer type.
406
3cdf0c62
UB
4072008-10-18 Uros Bizjak <ubizjak@gmail.com>
408
409 * config/i386/i386.md (unnamed peephole2): Do not force memory
410 operands of arith or logical instructions into registers for
411 non-TARGET_READ_MODIFY targets.
412
413 (ffs_cmove): Change operand 0 predicate to register_operand.
414 Change operand 1 predicate to nonimmediate_operand.
415 (ffsdi2): Ditto.
416 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
417
73a5f199
RG
4182008-10-18 Richard Guenther <rguenther@suse.de>
419
420 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
421 VIEW_CONVERT_EXPR case against invalid gimple.
422
1f6d0c60
AK
4232008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
424
425 * c-parser.c (c_parser_binary_expression): Silence the
426 uninitialized variable warning emitted for binary_loc.
427
de278246
DB
4282008-10-16 Daniel Berlin <dberlin@dberlin.org>
429
430 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
431 translation cache.
432
bbe67e7c
JM
4332008-10-16 Joseph Myers <joseph@codesourcery.com>
434
435 PR c/33192
436 * c-typeck.c (build_unary_op): Use omit_one_operand for
437 IMAGPART_EXPR of real argument.
438
a39562d9
JJ
4392008-10-16 Jakub Jelinek <jakub@redhat.com>
440
441 PR tree-optimization/37664
442 * fold-const.c (fold_binary): When optimizing comparison with
443 highest or lowest type's value, don't consider TREE_OVERFLOW.
444
5773a50f
DE
4452008-10-16 David Edelsohn <edelsohn@gnu.org>
446
447 PR target/35483
448 * Makefile.in (coverage.o): Depend on $(TM_P_H).
449 * coverage.c: Include tm_p.h.
450 * config/rs6000/x-aix (jc1): Override LDFLAGS.
451 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
452 dollar signs from PREFIX.
453 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
454 instead of manual strip_name_encoding.
455
bd4a51ab
RB
4562008-10-16 Richard Guenther <rguenther@suse.de>
457
458 PR middle-end/37418
459 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
460 volatile qualified functions or methods as relevant.
461
5b429886
JJ
4622008-10-16 Jakub Jelinek <jakub@redhat.com>
463
464 PR tree-optimization/37525
465 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
466 sizetype unsigned constants, both in the case of C and bounds.
467
c39a4ad7
JH
4682008-10-15 Jan Hubicka <jh@suse.cz>
469
470 * ira-emit.c (change_regs): Return false when replacing reg by
471 itself.
472
aac375dd
VM
4732008-10-14 Vladimir Makarov <vmakarov@redhat.com>
474
475 PR target/37633
476 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
477 HARD_REGNO_CALL_PART_CLOBBERED.
478
22c02455
VM
4792008-10-15 Vladimir Makarov <vmakarov@redhat.com>
480
481 PR middle-end/37535
482 * ira-lives.c (mark_early_clobbers): Remove.
483 (make_pseudo_conflict, check_and_make_def_use_conflicts,
484 check_and_make_def_conflicts,
485 make_early_clobber_and_input_conflicts,
486 mark_hard_reg_early_clobbers): New functions.
487 (process_bb_node_lives): Call
488 make_early_clobber_and_input_conflicts and
3cdf0c62 489 mark_hard_reg_early_clobbers. Make hard register inputs live again.
22c02455
VM
490
491 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
492 early clobbers of pseudo-registers.
493
0ca9fa56
VM
4942008-10-15 Vladimir Makarov <vmakarov@redhat.com>
495
496 PR middle-end/37674
497 * ira-build.c (ira_flattening): Recalculate
498 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
499 from the scratch instead of the propagation.
500
bf520698
RS
5012008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
502
503 * doc/rtl.texi (const_double): Remove the "addr" operand.
504 Describe CONST_DOUBLE_* macros under const_double rather
505 than const_vector.
506 (const_fixed): Fix the operand description.
507 (const): Add an @findex directive.
508 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
509 after the constant rtl table.
510 (fix): Combine floating-point and fixed-point descriptions.
511 Fix hyphenation.
512 * sched-deps.c (sched_analyze_2): Remove reference to
513 CONST_DOUBLE_CHAIN.
514
d4e2d7d2
RS
5152008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
516
517 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
518 UNSPEC_GOTSYM_OFFs.
519 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
520 for UNSPEC_GOTSYM_OFFs.
521 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
522 (add_GOT_to_pic_reg): Use it.
523 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
524
2c7a7f46 5252008-10-15 Jan Sjodin <jan.sjodin@amd.com>
3cdf0c62 526 Harsha Jagasia <harsha.jagasia@amd.com>
2c7a7f46
SP
527
528 PR tree-optimization/37485
529 * graphite.c (gmp_cst_to_tree): Moved.
530 (iv_stack_entry_is_constant): New.
531 (iv_stack_entry_is_iv): New.
532 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
533 (loop_iv_stack_insert_constant): New.
534 (loop_iv_stack_pop): Use new datatpype.
535 (loop_iv_stack_get_iv): Same.
536 (loop_iv_stack_get_iv_from_name): Same.
537 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
538 (loop_iv_stack_patch_for_consts): New.
539 (loop_iv_stack_remove_constants): New.
540 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
541 (translate_clast): Call loop_iv_stack_patch_for_consts and
542 loop_iv_stack_remove_constants.
543 (gloog): Use new datatype. Redirect construction edge to end
544 block to avoid accidental deletion.
545 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
546 iv stack entry.
547 (union iv_stack_entry_data): New. Data in iv stack entry.
548 (struct iv_stack_entry): New. Datatype for iv stack entries.
549
5502008-10-15 Sebastian Pop <sebastian.pop@amd.com>
551
552 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
553 * graphite.c (free_scop): Same.
554 (build_scops): Same.
555 (free_scattering): New.
556 (build_cloog_prog): Call free_scattering.
557 (patch_phis_for_virtual_defs): Fix memleak.
558 (graphite_trans_bb_strip_mine): Same.
559 (limit_scops): Same.
560
575da9be 5612008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3cdf0c62 562 Harsha Jagasia <harsha.jagasia@amd.com>
575da9be
SP
563
564 PR tree-optimization/37828
565 * graphite.c (graphite_trans_loop_block): Do not loop block
566 single nested loops.
567
36174c82
SP
5682008-10-15 Sebastian Pop <sebastian.pop@amd.com>
569
570 PR tree-optimization/37686
571 * tree-loop-linear.c (linear_transform_loops): Build a
572 loop nest vector. Pass it to lambda_compute_access_matrices.
573 * tree-data-ref.h (struct access_matrix): Store the loop nest
574 relative to which it encodes the information.
575 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
576 (am_vector_index_for_loop): Reimplemented: iterate over the
577 loop nest for finding the loop index in the access matrix.
578 (lambda_compute_access_matrices): Update declaration.
579 * lambda-code.c (build_access_matrix): Pass the loop nest and
580 record it.
581 (lambda_compute_access_matrices): Same.
582
fb068247
AK
5832008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
584
585 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
586 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
587 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
588 already implies hard float. Also fix several insn condition
589 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
590
9fb59895
DE
5912008-10-15 David Edelsohn <edelsohn@gnu.org>
592
593 PR target/35483
594 Based on patches by Laurent Vivier.
595 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
596 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
597 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
598 dollar sign to underscore.
599 (ASM_OUTPUT_EXTERNAL): Same.
600 (ASM_OUTPUT_LABELREF): New.
601 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
602
603 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
604 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
605 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
606 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
607
f6e6e990
JJ
6082008-10-15 Jakub Jelinek <jakub@redhat.com>
609
610 PR tree-optimization/36881
611 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
612 that each value doesn't need runtime relocations, for !flag_pic
613 check that each value is just a valid initializer constant.
614
5c0a2e3a
RS
6152008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
616
617 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
618 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
619 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
620 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
621 GR_AND_ACC_REGS.
622 (REG_CLASS_NAMES): Update accordingly.
623 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
624 rather than an unpredictable descriptive string.
625 * config/mips/mips.c (mips_register_move_cost): Remove comment.
626 (mips_register_move_cost): Check for specific COP*_REGS classes,
627 instead of ALL_COP_AND_GR_REGS.
628 (mips_ira_cover_classes): New function.
629 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
630 (TARGET_IRA_COVER_CLASSES): Define.
631
9c880618
DG
6322008-10-14 Douglas Gregor <doug.gregor@gmail.com>
633
3cdf0c62
UB
634 PR c++/37553
635 * tree.c (build_type_attribute_qual_variant): Hash on the
636 unqualified type, and don't overwrite an existing
637 (type_hash_eq): Make the TYPE_NAME of the types significant, to
638 allow distinguishing between wchar_t and its underlying type. This
639 also means that we'll retain a little more typedef information.
9c880618 640
388092d5
AB
6412008-10-14 Andrey Belevantsev <abel@ispras.ru>
642 Dmitry Melnik <dm@ispras.ru>
643 Dmitry Zhurikhin <zhur@ispras.ru>
644 Alexander Monakov <amonakov@ispras.ru>
645 Maxim Kuvyrkov <maxim@codesourcery.com>
646
647 * target.h (struct gcc_target): Update prototypes of needs_block_p
648 and gen_spec_check.
649 * haifa-sched.c (create_check_block_twin): Update calls to the above.
650 * sel-sched.c (create_speculation_check): Likewise.
651 * doc/tm.texi: Provide documentation for new target hooks.
652
653 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
654 (ia64_gen_spec_insn): Removed.
655 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
656 ia64_gen_spec_check): New static functions.
3cdf0c62
UB
657 (ia64_alloc_sched_context, ia64_init_sched_context,
658 ia64_set_sched_context, ia64_clear_sched_context,
659 ia64_free_sched_context, ia64_get_insn_spec_ds,
388092d5
AB
660 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
661 (ia64_needs_block_p): Change prototype.
662 (ia64_gen_check): Rename to ia64_gen_spec_check.
3cdf0c62 663 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
388092d5
AB
664 into declaration, add special memory dependencies handling.
665 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
666 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
667 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3cdf0c62 668 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
388092d5
AB
669 Define new target hooks.
670 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3cdf0c62 671 (ia64_optimization_options): Turn on selective scheduling with -O3,
388092d5
AB
672 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by default
673 with selective scheduling.
3cdf0c62
UB
674 (ia64_override_options): Initialize align_loops and align_functions
675 to 32 and 64, respectively. Set global selective scheduling flags
388092d5
AB
676 according to target-dependent flags.
677 (rtx_needs_barrier): Support UNSPEC_LDS_A.
3cdf0c62 678 (group_barrier_needed): Use new mstop-bit-before-check flag.
388092d5
AB
679 Add heuristic.
680 (dfa_state_size): Make global.
681 (spec_check_no, max_uid): Remove.
3cdf0c62 682 (mem_ops_in_group, current_cycle): New variables.
388092d5 683 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3cdf0c62
UB
684 Initialize new variables.
685 (is_load_p, record_memory_reference): New functions.
686 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
687 reached.
688 (ia64_variable_issue): Change use of current_sched_info to
388092d5 689 sched_deps_info. Update comment. Note if a load or a store is issued.
3cdf0c62
UB
690 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
691 advance if maximal number of loads or stores was issued on current
692 cycle.
388092d5 693 (scheduled_good_insn): New static helper function.
3cdf0c62
UB
694 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
695 a group barrier is needed. Fix vertical spacing. Guard the code
696 doing state transition with last_scheduled_insn check.
697 Mark that a stop bit should be before current insn if there was a
698 cycle advance. Update current_cycle and mem_ops_in_group.
388092d5 699 (ia64_h_i_d_extended): Change use of current_sched_info to
3cdf0c62 700 sched_deps_info. Reallocate stops_p by larger chunks.
388092d5
AB
701 (struct _ia64_sched_context): New structure.
702 (ia64_sched_context_t): New typedef.
3cdf0c62 703 (ia64_alloc_sched_context, ia64_init_sched_context,
388092d5
AB
704 ia64_set_sched_context, ia64_clear_sched_context,
705 ia64_free_sched_context): New static functions.
706 (gen_func_t): New typedef.
707 (get_spec_load_gen_function): New function.
708 (SPEC_GEN_EXTEND_OFFSET): Declare.
709 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3cdf0c62 710 (get_mode_no_for_insn): Change the condition that prevents use of
388092d5
AB
711 special hardware registers so it can now handle pseudos.
712 (get_spec_unspec_code): New function.
713 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
714 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
715 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
716 during selective scheduling.
3cdf0c62 717 (ia64_speculate_insn): Use ds_get_speculation_types when
388092d5
AB
718 determining whether we need to change the pattern.
719 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
720 (ia64_spec_check_src_p): Support new speculation/check codes.
721 (struct bundle_state): New field.
722 (issue_nops_and_insn): Initialize it.
723 (insert_bundle_state): Minimize mid-bundle stop bits.
724 (important_for_bundling_p): New function.
725 (get_next_important_insn): Use important_for_bundling_p.
3cdf0c62
UB
726 (bundling): When shifting TImode from unimportant insns, ignore
727 also group barriers. Assert that best state is found before
728 the backward bundling pass. Print number of mid-bundle stop bits.
729 Minimize mid-bundle stop bits. Check correct calculation of
388092d5
AB
730 mid-bundle stop bits.
731 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
732 (final_emit_insn_group_barriers): Emit stop bits before insns starting
733 a new cycle.
734 (sel2_run): New variable.
3cdf0c62
UB
735 (ia64_reorg): When flag_selective_scheduling2 is set, run the selective
736 scheduling pass instead of schedule_ebbs.
388092d5
AB
737
738 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
739 (UNSPEC_LDS_A): New UNSPEC.
3cdf0c62
UB
740 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
741 movti_internal, movsf_internal, movdf_internal,
388092d5
AB
742 movxf_internal): Make visible. Add speculable* attributes.
743 (output_c_nc): New mode attribute.
744 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3cdf0c62 745 mov<mode>_nc, zero_extend<mode>di2_nc,
388092d5
AB
746 advanced_load_check_nc_<mode>): New insns.
747 (zero_extend*): Add speculable* attributes.
748
749 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
750 (msched-stop-bits-after-every-cycle): Likewise.
3cdf0c62
UB
751 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
752 Likewise.
388092d5
AB
753 (msched-spec-verbose): Remove.
754 (msched-prefer-non-data-spec-insns,
3cdf0c62
UB
755 msched-prefer-non-control-spec-insns,
756 msched-count-spec-in-critical-path,
757 msel-sched-dont-check-control-spec): Use Target Report Var
758 instead of Common Report Var.
388092d5
AB
759
760 * config/ia64/itanium2.md: Remove incorrect bypass.
761
762 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
763
847e6346
JJ
7642008-10-14 Jakub Jelinek <jakub@redhat.com>
765
766 PR middle-end/37805
767 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
768 and -fhelp=separate.
769
f8f49aea
BE
7702008-10-14 Ben Elliston <bje@au.ibm.com>
771
772 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
773
f27017d1
JM
7742008-10-13 Joseph Myers <joseph@codesourcery.com>
775
776 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
777 non-integer modes.
778
bca60f4c
MK
7792008-10-13 Matthias Klose <doko@ubuntu.com>
780
847e6346 781 * config/pa/linux-atomic.c: Work around missing header file
bca60f4c
MK
782 for hppa64-linux-gnu targets.
783
c921bad8 7842008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
3cdf0c62
UB
785 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
786 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
787 Grace Cao <grace_cao@playstation.sony.com>
c921bad8
AP
788
789 * doc/invoke.texi (-mgen-cell-microcode): Document.
790 (-mwarn-cell-microcode): Document.
791 * cfglayout.c (locator_location): Export.
792 * rtl.h (locator_location): Define prototype.
3cdf0c62
UB
793 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
794 New predicate.
c921bad8
AP
795 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
796 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
797 (mwarn-cell-microcode): New option.
798 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
799 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
800 cell and not already set.
801 Turn off string instructions if not generating cell microcode.
802 (rs6000_final_prescan_insn): New function that warns about microcoded
803 instructions.
804 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
805 * config/rs6000/rs6000.md
806 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
3cdf0c62
UB
807 the instruction would have been microcoded on the Cell. Set cell_micro
808 to always on unnamed patterns for the string instructions.
809 (cell_micro): Update definition, remove load/store conditional
810 microcoded.
c921bad8
AP
811 (sign_extend:DI): Define new pattern for non microcoded version.
812 (sign_extend:SI): Likewise.
813 (compare (div:P)): Set cell_micro to not.
814 (andsi3): Define as an expand.
815 (andsi3_mc): New pattern.
816 (andsi3_nomc): New pattern.
817 (andsi3_internal0_nomc): New pattern.
818 (andsi3_internal2): Rename to ...
819 (andsi3_internal2_mc): this and enable iff generating microcode.
820 (andsi3_internal3): Rename to ...
821 (andsi3_internal3_mc): this and enable iff generating microcode.
822 (andsi3_internal4): Enable iif generating microcode.
823 (andsi3_internal5): Rename to ..
824 (andsi3_internal5_mc): this and enable iff generating microcode.
825 (andsi3_internal5_nomc): New pattern.
826 (extzvdi_internal1): Enable iff generating microcode.
827 (extzvdi_internal2): Likewise.
828 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
829 (anddi3): Change to expand.
830 (anddi3_mc): Rename from anddi3.
831 (anddi3_no_mc): New pattern.
832 (anddi3_internal2): Rename to ..
833 (anddi3_internal2_mc): this and enable iff generating microcode.
834 (anddi3_internal2_nomc): New pattern.
835 (anddi3_internal3): Rename to ..
836 (anddi3_internal3_mc): this and enable iff generating microcode.
837 (anddi3_internal3_nomc): New pattern.
838 (movti_string): Set cell_micro to always if TARGET_STRING.
839 (stmsi8): Set cell_micro to always.
840 (stmsi7): Likewise.
841 (stmsi6): Likewise.
842 (stmsi5): Likewise.
843 (stmsi4): Likewise.
844 (stmsi3): Likewise.
845 (stmsi8_power): Likewise.
846 (stmsi7_power): Likewise.
847 (stmsi6_power): Likewise.
848 (stmsi5_power): Likewise.
849 (stmsi4_power): Likewise.
850 (stmsi3_power): Likewise.
851 (movsi_update2): Enable iff generating microcode.
852 (movhi_update3): Likewise.
853 (lmw): Set cell_micro to always.
854
dc66391d
RS
8552008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
856
857 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
858 * config/s390/s390.c (machine_function): Remove
859 decomposed_literal_pool_addresses_ok_p.
860 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
861 the difference of two labels.
862 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
863 (s390_pool_offset): New function.
864 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
865 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
866
1590a115
NF
8672008-10-13 Nathan Froyd <froydnj@codesourcery.com>
868
869 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
870 (powerpc*-*-linux-gnu*): Describe.
871 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
872 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
873 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
874 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
875 config/rs6000/e500crtres32gpr.asm,
876 config/rs6000/e500crtres64gpr.asm,
877 config/rs6000/e500crtres64gprctr.asm,
878 config/rs6000/e500crtrest32gpr.asm,
879 config/rs6000/e500crtrest64gpr.asm,
880 config/rs6000/e500crtresx32gpr.asm,
881 config/rs6000/e500crtresx64gpr.asm,
882 config/rs6000/e500crtsav32gpr.asm,
883 config/rs6000/e500crtsav64gpr.asm,
884 config/rs6000/e500crtsav64gprctr.asm,
885 config/rs6000/e500crtsavg32gpr.asm,
886 config/rs6000/e500crtsavg64gpr.asm,
887 config/rs6000/e500crtsavg64gprctr.asm: Use it.
888 * config/rs6000/crtsavres.asm: Really remove.
889
94564826
KT
8902008-10-13 Kai Tietz <kai.tietz@onevision.com>
891
892 Fix PR/25502
893 * c-format.c (convert_format_name_to_system_name): Use
894 TARGET_OVERRIDES_FORMAT_INIT.
895 * config.gcc (extra_options): Add for mingw targets mingw.opt.
896 * config/i386/mingw.opt: New.
897 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
898 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
899 (ms_printf_length_specs): Removed const specifier.
900 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
901 * doc/invoke.texi (Wno-pedantic-ms-format): New.
902
36c713e0
KG
9032008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
904
905 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
906 * doc/install.texi: Bump recommended MPFR to 2.3.2.
907
5288f999
KZ
9082008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
909
910 PR middle-end/37808
911 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
912 sure that ref has valid bb.
913
f6129d66
RH
9142008-10-12 Richard Henderson <rth@redhat.com>
915
916 PR middle-end/37447
917 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
918 * alias.c (value_addr_p, stack_addr_p): Remove.
919 (nonoverlapping_memrefs_p): Remove IRA special case.
920 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
921 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
922 * reload1.c (alter_reg): Use it.
923
dc8bd8d9
UB
9242008-10-12 Uros Bizjak <ubizjak@gmail.com>
925
926 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
927 of registers instead of eax, ebx, ecx and edx. Use for loop
928 and check register for non-zero value before the call
929 to decode_caches_intel.
930
57512f53
KZ
9312008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
932
933 PR rtl-optimization/37448
934 * df.h: (df_ref_class): New enum.
935 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
936 (struct df_ref): Replaced with union df_ref_d.
937 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
938 New members of df_ref_d union.
939 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
940 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
941 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
942 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
943 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3cdf0c62
UB
944 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
945 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
57512f53
KZ
946 (df_scan_bb_info, df_bb_regno_first_def_find,
947 df_bb_regno_last_def_find, df_find_def, df_find_use,
948 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
949 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
950 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
951 df_get_artificial_defs, df_get_artificial_uses, union_defs)
952 Replaced struct df_ref * with df_ref.
953 * df-scan.c (df_collection_rec, df_null_ref_rec,
954 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
955 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
956 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
957 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
958 df_reorganize_refs_by_reg_by_reg,
959 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
960 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
961 df_sort_and_compress_refs, df_install_ref, df_install_refs,
962 df_ref_record, df_get_conditional_uses, df_get_call_refs,
963 df_bb_refs_record, df_exit_block_uses_collect,
964 df_record_exit_block_uses, df_reg_chain_mark,
965 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
966 df_ref * with df_ref.
967 (df_ref_record, df_uses_record, df_ref_create_structure): Added
968 df_ref_class parameter.
3cdf0c62 969 (df_scan_problem_data): Added new pools for different types of refs.
57512f53
KZ
970 (df_scan_free_internal, df_scan_alloc, df_free_ref,
971 df_ref_create_structure): Processed new ref pools.
972 (df_scan_start_dump): Added counts of refs and insns.
973 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
974 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
975 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
976 code to pass df_ref_class down to ref creation functions.
977 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
978 df_reg_chain_mark): Use macros to hide references to df_refs.
979 (df_ref_chain_change_bb): Removed.
980 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
981 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
982 Enhanced to understand df_ref union structure.
983 * fwprop.c (local_ref_killed_between_p, use_killed_between,
984 all_uses_available_at, update_df, try_fwprop_subst,
985 forward_propagate_subreg, forward_propagate_and_simplify,
986 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
987 df_ref * with df_ref.
988 (use_killed_between, all_uses_available_at): Use macros to hide
989 references to df_refs.
990 * regstat.c (regstat_bb_compute_ri,
991 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
992 df_ref.
993 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
994 see_handle_relevant_refs, see_analyze_one_def,
995 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
996 struct df_ref * with df_ref.
997 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
998 global_conflicts): Replaced struct df_ref * with df_ref.
999 * ddg.c (create_ddg_dep_from_intra_loop_link,
1000 add_cross_iteration_register_deps, build_inter_loop_deps):
1001 Replaced struct df_ref * with df_ref.
1002 (create_ddg_dep_from_intra_loop_link,
1003 add_cross_iteration_register_deps): Use macros to hide references
1004 to df_refs.
1005 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1006 df_ref * with df_ref.
1007 * df-core.c (df_bb_regno_first_def_find,
1008 df_bb_regno_last_def_find, df_find_def, df_find_use,
1009 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1010 debug_df_ref): Replaced struct df_ref * with df_ref.
dc8bd8d9 1011 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
57512f53
KZ
1012 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1013 df_ref.
1014 * web.c (union_defs, entry_register, replace_ref, web_main):
1015 Replaced struct df_ref * with df_ref.
dc8bd8d9 1016 (union_defs, replace_ref): Use macros to hide references to df_refs.
57512f53
KZ
1017 * global.c (compute_regs_asm_clobbered, build_insn_chain):
1018 Replaced struct df_ref * with df_ref.
dc8bd8d9 1019 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
57512f53
KZ
1020 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1021 Replaced struct df_ref * with df_ref.
1022 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1023 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1024 with df_ref.
dc8bd8d9 1025 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
57512f53
KZ
1026 * df-byte-scan.c (df_compute_accessed_bytes_extract,
1027 df_compute_accessed_bytes_strict_low_part,
1028 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1029 Replaced struct df_ref * with df_ref.
dc8bd8d9 1030 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
57512f53
KZ
1031 * init-regs.c (initialize_uninitialized_regs): Replaced struct
1032 df_ref * with df_ref.
1033 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1034 check_dependency, check_dependencies, record_uses): Replaced
1035 struct df_ref * with df_ref.
1036 (invariant_for_use, check_dependency): Use macros to hide
1037 references to df_refs.
1038 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1039 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1040 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1041 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1042 references to df_refs.
dc8bd8d9
UB
1043 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1044 with df_ref.
57512f53
KZ
1045 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1046 * df-problems.c (df_rd_bb_local_compute_process_def,
1047 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1048 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1049 df_chain_remove_problem, df_chain_create_bb_process_use,
1050 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1051 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1052 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1053 df_byte_lr_simulate_artificial_refs_at_top,
1054 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1055 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1056 df_simulate_uses, df_simulate_artificial_refs_at_end,
dc8bd8d9
UB
1057 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1058 df_ref.
1059 (df_chain_dump): Use macros to hide references to df_refs.
57512f53
KZ
1060 * config/mips/mips.c (r10k_simplify_address): Replaced struct
1061 df_ref * with df_ref.
1062 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1063 mark_artificial_uses, mark_reg_dependencies,
1064 byte_dce_process_block): Replaced struct df_ref * with df_ref.
1065
9f7ccf69
EB
10662008-10-11 Eric Botcazou <ebotcazou@adacore.com>
1067
1068 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1069 head comment.
1070 (array_ref_element_size): Likewise.
1071 (array_ref_low_bound): Likewise.
1072 (array_ref_up_bound): Likewise.
1073 * expr.c (contains_packed_reference): Likewise.
1074 (array_ref_element_size): Likewise.
1075 (array_ref_low_bound): Likewise.
1076 (array_ref_up_bound): Likewise.
1077 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1078 with ARRAY_RANGE_REF.
1079 (idx_find_step): Likewise.
1080 (idx_record_use): Likewise.
1081 (strip_offset_1): Likewise.
1082 (idx_remove_ssa_names): Likewise.
1083
cb0dee88
UB
10842008-10-11 Uros Bizjak <ubizjak@gmail.com>
1085 Andi Kleen <ak@linux.intel.com>
1086
1087 * config/i386/cpuid.h (__cpuid_count): New defines.
1088 * config/i386/driver-i386.c (struct cache_desc): New structure.
1089 (describe_cache): Use struct cache_desc to pass cache descriptions.
1090 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1091 (detect_caches_amd): Use struct cache_desc to describe caches.
1092 (decode_caches_intel): Use struct cache_desc to pass cache
1093 descriptions. Update descriptions to match latest (rev -032,
1094 December 2007) CPUID documentation. Do not check valid bit here.
1095 Check for Xeon MP value 0x49 problems.
1096 (detect_caches_cpuid2): New function, split from detect_caches_intel.
1097 Check valid bit before calling decode_caches_intel. Detect number
1098 of times to repeat CPUID instruction.
1099 (detect_caches_cpuid4): New function.
1100 (detect_caches_intel): Depending on max_level, call
1101 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
1102 only when other methods fail to provide valid L2 cache description.
1103
e40375e0
JDA
11042008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1105
1106 PR middle-end/37608
1107 * pa.md (call, call_value): Generate an rtx for register r4 and pass
1108 it to PIC call patterns.
1109 (call_symref_pic): Revise pattern to expose PIC register save. Remove
1110 code generation and attributes from pattern. Change peephole2 to split
1111 for noreturn case. Revise split pattern for non noreturn case.
1112 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1113 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1114 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
1115 asserts.
1116
e47911ce
DE
11172008-10-11 David Edelsohn <edelsohn@gnu.org>
1118
cb0dee88
UB
1119 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1120 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1121 and fp_type.
1122 (divdf3): Reformat long line.
e47911ce 1123
0bb7b92e
ME
11242008-10-11 Michael J. Eager <eager@eagercon.com>
1125
1126 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1127 -mfpu options.
1128 (rs6000_handle_option): Process -mfpu options.
1129 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1130 (enum fpu_type_t): New.
cb0dee88 1131 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
0bb7b92e
ME
1132 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1133 fp_type.
1134 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1135 (floatdidf2): Add TARGET_SINGLE_FPU condition.
1136 * config/rs6000/rs6000.opt (-mfpu): New.
1137 (-mxilinx-fpu): New.
1138 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1139 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1140 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1141 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1142 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1143
506a7bc8
JJ
11442008-10-11 Jakub Jelinek <jakub@redhat.com>
1145
1146 PR target/35760
1147 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1148 LO_SUM on Darwin if mode has just one unit.
1149
35bb4945
L
11502008-10-10 H.J. Lu <hongjiu.lu@intel.com>
1151
1152 PR debug/37002
1153 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1154 has been optimized out.
1155
dc3ba671
RS
11562008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
1157
1158 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1159 instead of PIC_DIRECT_ADDR_P.
1160 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1161 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1162 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1163 (PIC_OFFSET_P): Rename to...
1164 (PCREL_SYMOFF_P): ...this.
1165 (PIC_DIRECT_ADDR_P): Delete.
1166 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1167 PIC_OFFSET_P.
1168 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1169 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1170 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1171 * config/sh/sh.c (print_operand): Remove CONST handling.
1172 (unspec_caller_rtx_p): Rewrite to use split_const and check
1173 the operands of UNSPEC bases.
1174 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1175 with (unspec [A B] UNSPEC_SYMOFF).
1176 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1177 UNSPEC_PCREL_SYMOFF.
1178 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1179 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1180 (UNSPEC_EXTRACT_U16): Likewise.
1181 (UNSPEC_SYMOFF): Likewise.
1182 (UNSPEC_PCREL_SYMOFF): Likewise.
1183 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1184 of constants.
1185 (movsi_const_16bit): Likewise.
1186 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1187 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1188 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1189 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1190 with (unspec [A B] UNSPEC_SYMOFF).
1191 (symPLT_label2reg): Replace (minus A (minus B pc)) with
1192 (unspec [A B] PCREL_UNSPEC_SYMOFF).
1193 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1194 (Csu): Likewise UNSPEC_EXTRACT_U16.
1195 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1196 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1197
e14165f4
SK
11982008-10-10 Stepan Kasal <skasal@redhat.com>
1199
1200 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1201 for loop strip mining and loop blocking.
1202
09775c40
AO
12032008-10-10 Alexandre Oliva <aoliva@redhat.com>
1204
1205 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1206 vary types depending on debug info.
1207
fd9fffd1
AO
12082008-10-10 Alexandre Oliva <aoliva@redhat.com>
1209
1210 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1211 before ensuring it's already computed.
1212
cc2a64dd
JJ
12132008-10-09 Jakub Jelinek <jakub@redhat.com>
1214
1692ae7e
JJ
1215 * rtl.h (locator_eq): New decl.
1216 * cfglayout.c (locator_scope): New function.
1217 (insn_scope): Use it.
1218 (locator_eq): New function.
1219 (fixup_reorder_chain): Search for last insn in src bb
1220 that has locator set or first insn in dest bb. Use
1221 locator_eq instead of == to compare locators.
1222 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1223 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1224 == to compare locators.
1225
cc2a64dd
JJ
1226 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1227 as used.
1228 * gimple-low.c (lower_function_body, lower_gimple_return,
1229 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1230 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1231 goto_block on edges if goto_locus is known.
1232
df96b059
JJ
1233 PR middle-end/37774
1234 * tree.h (get_object_alignment): Declare.
1235 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1236 get_object_alignment if needed.
1237 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand handling
1238 to ...
1239 (get_object_alignment): ... here. New function. Try harder to
1240 determine alignment from get_inner_reference returned offset.
1241
7787b4aa
JJ
12422008-10-08 Jakub Jelinek <jakub@redhat.com>
1243
88b98d1a
JJ
1244 * graphite.c (gloog): Don't call find_unreachable_blocks
1245 before delte_unreachable_blocks.
1246
7787b4aa
JJ
1247 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1248 goto_locus of true_edge into RTL locator.
1249
b7f58d5d
UB
12502008-10-08 Uros Bizjak <ubizjak@gmail.com>
1251
1252 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1253 (*jcc_btdi_mask_rex64): Ditto.
1254 (*jcc_btsi): Ditto.
1255 (*jcc_btsi_mask): Ditto.
1256 (*jcc_btsi_1): Ditto.
1257 (*jcc_btsi_mask_1): Ditto.
1258
a7e8c652
PB
12592008-10-08 Paul Brook <paul@codesourcery.com>
1260
1261 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1262 compatible profiler (__gnu_mcount_nc).
1263 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1264
54723b46
L
12652008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1266
1267 * config/i386/i386.c (initial_ix86_tune_features): Add
1268 X86_TUNE_USE_VECTOR_FP_CONVERTS.
1269 * config/i386/i386.h (ix86_tune_indices): Likewise.
1270 (TARGET_USE_VECTOR_FP_CONVERTS): New.
1271
1272 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1273 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1274 for FP to FP splitters.
1275
ddd5eeb1
L
12762008-10-08 H.J. Lu <hongjiu.lu@intel.com>
1277
1278 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1279 splitter.
1280
31e9ebaf
JJ
12812008-10-08 Jakub Jelinek <jakub@redhat.com>
1282
1283 PR target/36635
1284 PR target/37290
1285 PR rtl-optimization/37341
1286 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1287 to ORIG_BB, pass through ORIG_BB recursively.
1288 (cse_condition_code_reg): Adjust caller.
1289
a4a4f775
KT
12902008-10-08 Kai Tietz <kai.tietz@onevision.com>
1291
1292 * sdbout.c (sdbout_one_type): Treat the value type
1293 CONST_DECL for enumerals.
1294
1ffcdc02
L
12952008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1296
1297 * config/i386/i386.md: Remove trailing white spaces.
1298
beb0c9cc
KZ
12992008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1300
1301 PR rtl-optimization/37448
b7f58d5d
UB
1302 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1303 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1304 Make unsigned long.
1305 (struct output_info) [count]: Renamed total_created and made
1306 unsigned long.
1307 (struct output_info) [size]: Renamed total_allocated and made
1308 unsigned long.
1309 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1310 Properly keep track of desc->size.
beb0c9cc
KZ
1311 (print_statistics, dump_alloc_pool_statistics): Enhance the
1312 printing of statistics to print the number of elements and to use
1313 unsigned longs.
1314
a1fd13d0
JJ
13152008-10-07 Jakub Jelinek <jakub@redhat.com>
1316
1317 PR middle-end/37576
1318 * opts.h (CL_SAVE): Move up to flags range.
1319 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1320 CL_COMMON): Renumber.
1321 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1322 * opts.c (common_handle_option): Revert last change.
1323
7ab91c5f
L
13242008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1325
1326 * config/i386/i386-protos.h (ix86_schedule): New.
1327
1328 * config/i386/i386.c (ix86_schedule): New.
1329 (override_options): Add schedule to processor_alias_table. Set
1330 ix86_schedule from the schedule field in processor_alias_table.
1331 (ix86_function_specific_save): Save ix86_schedule.
1332 (ix86_function_specific_restore): Restore ix86_schedule.
1333
1334 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1335 ix86_tune. Add none and remove i386, i486, pentium4, nocona
1336 and generic32.
1337
1338 * config/i386/i386.opt: Add schedule.
1339
1340 * config/i386/ppro.md: Remove generic32.
1341
16d5ffec
SM
13422008-10-07 Simon Martin <simartin@users.sourceforge.net>
1343
1344 PR c/35437
1345 * expr.c (count_type_elements): Handle ERROR_MARK.
1346
7241571e
JJ
13472008-10-07 Jakub Jelinek <jakub@redhat.com>
1348
1349 PR debug/29609
1350 PR debug/36690
1351 PR debug/37616
1352 * basic-block.h (struct edge_def): Add goto_block field.
1353 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
1354 one insn with locus corresponding to edge's goto_locus if !optimize.
1355 * profile.c (branch_prob): Copy edge's goto_block.
1356 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
1357 emitted jumps.
1358 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
1359 locator in between the merged basic blocks if !optimize and needed.
1360 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
1361 goto_locus into RTL locator. For unconditional jump use that
1362 locator for the jump insn.
1363 (expand_gimple_cond): Convert goto_block and goto_locus into
1364 RTL locator for all remaining edges. For unconditional jump
1365 use that locator for the jump insn.
1366 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
1367 there is more than one edge or insn locator along the forwarding
1368 edges and !optimize. If there is just one, set e->goto_locus.
1369 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
1370 edge's goto_block.
1371 (move_block_to_fn): Adjust edge's goto_block.
1372
aee857a2
L
13732008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1374
1375 PR middle-end/37731
1376 * expmed.c (expand_mult): Properly check DImode constant in
1377 CONST_DOUBLE.
1378
a107f086
JJ
13792008-10-07 Jakub Jelinek <jakub@redhat.com>
1380
1381 PR debug/37738
1382 * dwarf2out.c (common_block_die_table): New variable.
1383 (common_block_die_table_hash, common_block_die_table_eq): New
1384 functions.
1385 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
1386 COMMON block in the current scope rather than globally. Optimize
1387 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
1388 DW_OP_addr SYMBOL_REF+off.
1389
cf9322ca
EB
13902008-10-07 Eric Botcazou <ebotcazou@adacore.com>
1391
1392 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
1393 Return true for non-addressable GIMPLE operands.
1394
23cb97b7
L
13952008-10-07 H.J. Lu <hongjiu.lu@intel.com>
1396
1397 PR target/24765
1398 * config/i386/i386.c (initial_ix86_tune_features): Remove
1399 X86_TUNE_USE_BIT_TEST.
1400 * config/i386/i386.h (ix86_tune_indices): Likewise.
1401 (TARGET_USE_BIT_TEST): Removed.
1402
ebca2d91
BRF
14032008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1404
1405 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
1406
4c6f9770
AN
14072008-10-06 Adam Nemet <anemet@caviumnetworks.com>
1408
1409 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
1410 (mul<mode>3_mul3): ... into this new template.
1411
1282697f
AH
14122008-10-06 Aldy Hernandez <aldyh@redhat.com>
1413
1414 * gimplify.c (gimplify_arg): Add location argument. Use it.
1415 (gimplify_call_expr): Pass location to gimplify_arg.
1416 (gimplify_modify_expr_to_memcpy): Same.
1417 (gimplify_modify_expr_to_memset): Same.
1418
ecbeb53b
AP
14192008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1420
1421 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1422 Update calls to build_unary_op and build_indirect_ref for location
1423 changes.
1424
c9f9eb5d
AH
14252008-10-06 Aldy Hernandez <aldyh@redhat.com>
1426
1427 build_modify_expr.
1428 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
1429 * c-typeck.c (array_to_pointer_conversion): Pass location to
1430 build_unary_op.
1431 (function_to_pointer_conversion): Use error_at and warning_at.
1432 (build_indirect_ref): Same.
1433 (build_array_ref): Pass location to build_binary_op.
1434 (parser_build_unary_op): Do not set location after calling
1435 build_unary_op.
1436 (build_unary_op): Add location argument. Use it throughout. Set
1437 EXPR_LOCATION before returning new tree.
1438 (build_modify_expr): Same.
1439 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
1440 returning node.
1441 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
1442 build_indirect_ref, build_modify_expr.
1443 (c_finish_omp_for): Same. Use error_at instead of error.
1444 * c-common.c (c_common_truthvalue_conversion): Pass location to
1445 build_unary_op.
1446 (warn_for_div_by_zero): Add location argument.
1447 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
1448 build_unary_op, warn_for_div_by_zero.
1449 * c-parser.c (c_parser_typeof_specifier): Use
1450 protected_set_expr_location.
1451 (c_parser_statement_after_labels): Same.
1452 (c_parser_condition): Same.
1453 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
1454 (c_parser_conditional_expression): Use protected_set_expr_location.
1455 (c_parser_unary_expression): Pass location to build_indirect_ref.
1456 (c_parser_postfix_expression_after_primary): Pass location to
1457 build_indirect_ref, build_unary_op.
1458 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
1459
7a3446ec
JK
14602008-10-06 Joshua Kinard <kumba@gentoo.org>
1461
1462 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
1463 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
1464 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
1465 r14000 and r16000.
1466 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
1467 (mips_issue_rate): Handle PROCESSOR_R10000.
1468 * config/mips/mips.md (cpu): Add r10000.
1469 Include r10000.md.
1470 * config/mips/10000.md: New file.
1471
944258eb
RS
14722008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1473
1474 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
1475 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
1476 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
1477
08a6a74b
RS
14782008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1479
1480 * config/darwin-protos.h (machopic_function_base_name): Delete.
1481 (machopic_function_base_sym): Likewise.
1482 (machopic_gen_offset): Declare.
1483 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
1484 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
1485 * config/darwin.c (machopic_function_base_name): Delete.
1486 (machopic_function_base_sym): Likewise.
1487 (gen_pic_offset): Rename to...
1488 (machopic_gen_offset): ...this and remove the pic_base argument.
1489 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
1490 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
1491 crtl->uses_pic_offset_table.
1492 (machopic_indirect_data_reference): Use new machopic_gen_offset
1493 interface.
1494 (machopic_legitimize_pic_address): Likewise.
1495 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
1496
1497 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
1498 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
1499 * config/i386/i386.c (output_set_got): Likewise.
1500 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
1501 instead of a MINUS.
1502 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
1503 (legitimate_address_p): Likewise.
1504 (output_pic_addr_const): Likewise.
1505 (output_addr_const_extra): Likewise.
1506 (ix86_delegitimize_address): Expect darwin_local_data_pic to
1507 match an UNSPEC rather than a MINUS.
1508 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
1509 (builtin_setjmp_receiver): Use machopic_gen_offset.
1510 * config/i386/predicates.md (pic_symbolic_operand): Handle
1511 UNSPEC_MACHOPIC_OFFSET.
1512
1513 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1514 Use machopic_gen_offset and machopic_operand_p.
1515 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
1516 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
1517 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
1518 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
1519 Set crtl->uses_pic_offset_table.
1520
2e4316da
RS
15212008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
1522
1523 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1524 Declare.
1525 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
1526 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
1527 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
1528 (constant_pool_expr_p): Use split_const and check the base.
1529 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
1530 instead of a MINUS.
1531 (legitimate_constant_pool_address_p): Check toc_relative_p
1532 instead of constant_pool_expr_p.
1533 (print_operand_address): Always use output_addr_const for
1534 constant pool addresses.
1535 (rs6000_output_addr_const_extra): New function.
b7f58d5d 1536 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
2e4316da 1537
3517d3a0
VM
15382008-10-06 Vladimir Makarov <vmakarov@redhat.com>
1539
1540 PR middle-end/37535
1541
1542 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
1543 (mark_ref_live, mark_ref_dead): Use them.
1544 (def_conflicts_with_inputs_p): Remove.
1545 (mark_early_clobbers): New function.
1546 (process_bb_node_lives): Call preprocess_constraints and
1547 mark_early_clobbers.
1548
1549 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
1550
de27a12c
DS
15512008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
1552
1553 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
1554 lib with -mthread switch.
1555
d19c0f4b
DS
15562008-10-05 Dodji Seketeli <dodji@redhat.com>
1557
1558 PR c++/37410
1559 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
1560 function in two, making it call a new and reusable
1561 dwarf2out_imported_module_or_decl() that takes the containing
1562 BLOCK of the declaration in argument.
1563 (dwarf2out_imported_module_or_decl_real): New function.
1564 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
1565 IMPORTED_DECL in account.
1566 * tree.def: Added IMPORTED_DECL node type.
1567 * tree.h: Added accessors for IMPORTED_DECL nodes.
1568 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
1569
1d72ff1a
RW
15702008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1571
1572 * doc/gimple.texi: Fix some typos, wrap some long lines,
1573 fix some broken wraps with continuations.
1574 * tree-ssa-reassoc.c: Fix comment typos.
1575
0b076fea
JDA
15762000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1577
1578 PR target/37603
1579 * pa.c (legitimize_pic_address): Force function labels to memory in
1580 word mode.
1581
a3cb4b82
AB
15822008-10-04 Anton Blanchard <anton@samba.org>
1583
1584 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
1585 (rs6000_split_atomic_op): Same.
1586 (rs6000_split_compare_and_swap): Same.
1587 (rs6000_split_compare_and_swapqhi): Same.
1588
63a14fa3
RG
15892008-10-04 Richard Guenther <rguenther@suse.de>
1590
1591 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
1592 instead of pointer equality.
1593 (vn_nary_op_eq): Likewise.
1594
3a86d13b
AP
15952008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1596
1597 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
1598 condition.
1599 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
1600 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
1601
12df9508
DS
16022008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
1603
1604 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1605 Revert previous change.
1606
d1f43464
TT
16072008-10-03 Tom Tromey <tromey@redhat.com>
1608
1609 * stringpool.c (ggc_alloc_string): Terminate string.
1610
524d9a45
JJ
16112008-10-03 Jakub Jelinek <jakub@redhat.com>
1612
32001f69
JJ
1613 * gimplify.c (gimplify_function_tree): For -finstrument-functions
1614 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
1615 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
1616
524d9a45
JJ
1617 PR debug/37726
1618 * gimplify.c (declare_vars): Use gimple_bind_block instead of
1619 gimple_block.
1620
2f07423c
PO
16212008-10-03 Pascal Obry <obry@adacore.com>
1622
1623 * gcov.c (create_file_names): Properly handle UNIX and DOS
1624 directory separators.
1625 (make_gcov_file_name): Likewise + convert the ':' DOS drive
1626 separator to '~' to ensure clean filenames on Windows.
1627
12df9508
DS
16282008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1629
1630 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
1631 Add a null terminator to the stripped name.
1632
56f4cc04
DE
16332008-10-02 David Edelsohn <edelsohn@gnu.org>
1634
1635 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
1636 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1637 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
b7f58d5d
UB
1638 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
1639 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
56f4cc04
DE
1640 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
1641 TARGET_SINGLE_FLOAT.
1642
17372f8c
DJ
16432008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
1644
1645 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
1646
0d17b70a
RG
16472008-10-02 Richard Guenther <rguenther@suse.de>
1648
1649 PR middle-end/37713
1650 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
1651 and VECTOR_TYPE recurse with useless_type_conversion_p which
1652 properly handles void pointer conversion.
1653
068450d0
DS
16542008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
1655
1656 PR target/37528
1657 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
1658 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
1659
266b4890
AP
16602008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
1661
1662 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1663 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
1664 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
1665 they translate to non builtins.
1666 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
1667 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
1668 __builtin_vec_promote, __builtin_vec_extract, and
1669 __builtin_vec_insert.
1670 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
1671 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
1672 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
1673 * config/rs6000/altivec.h (vec_extract): Define
1674 (vec_insert): Define.
1675 (vec_splats): Define.
1676 (vec_promote): Define.
1677
0b61703c 16782008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
b7f58d5d
UB
1679 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
1680 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
0b61703c
AP
1681
1682 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
1683 Altivec intrinsics.
1684 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
1685 prototype. Add new parameter, blk.
1686 Use BLKmode for the MEM if blk is true.
1687 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
1688 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
1689 ALTIVEC_BUILTIN_STVRXL.
1690 Update usage of altivec_expand_lv_builtin.
1691 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
1692 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
1693 (altivec_init_builtins): If compiling for the Cell, also define the
1694 cell VMX builtins.
1695 * config/rs6000/rs6000.h (rs6000_builtins): Define
1696 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
1697 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
1698 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
1699 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
1700 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
1701 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
1702 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
1703 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
1704 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
1705 UNSPEC_STVRX, and UNSPEC_STVRXL.
1706 (altivec_lvlx): New pattern.
1707 (altivec_lvlxl): New pattern.
1708 (altivec_lvrx): New pattern.
1709 (altivec_lvrxl): New pattern.
1710 (altivec_stvlx): New pattern.
1711 (altivec_stvlxl): New pattern.
1712 (altivec_stvrx): New pattern.
1713 (altivec_stvrxl): New pattern.
1714 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
1715 (vec_lvlxl): Likewise.
1716 (vec_lvrx): Define if PPU is defined.
1717 (vec_lvrxl): Likewise.
1718 (vec_stvlx): Define if PPU is defined.
1719 (vec_stvlxl): Likewise.
1720 (vec_stvrx): Define if PPU is defined.
1721 (vec_stvrxl): Likewise.
1722
522aa637
GB
17232008-10-01 Geert Bosch <bosch@adacore.com>
1724
1725 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
1726
c8ce33fa
RG
17272008-10-01 Richard Guenther <rguenther@suse.de>
1728
1729 PR tree-optimization/37617
1730 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
1731 do not add to the NEW_SETS.
1732
256f88c6
RG
17332008-10-01 Richard Guenther <rguenther@suse.de>
1734
0b61703c
AP
1735 PR middle-end/37285
1736 * tree-vrp.c (execute_vrp): If we optimized away the default
1737 case make sure to promote the label that got in place of it
1738 to a default case label.
256f88c6 1739
35a45bd4
RH
17402008-10-01 Richard Henderson <rth@redhat.com>
1741
1742 PR tree-opt/35737
1743 * tree-complex.c (set_component_ssa_name): Don't optimize
1744 is_gimple_min_invariant values with ssa_names in abnormal phis.
1745
001003c2
PB
17462008-09-30 Paolo Bonzini <bonzini@gnu.org>
1747
1748 PR tree-optimization/37662
1749 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
1750 commutative binary operation if they are in the wrong order and
1751 fold_build2 produces non-GIMPLE.
1752
61b70fcb
JJ
17532008-09-30 Jakub Jelinek <jakub@redhat.com>
1754
1755 PR tree-optimization/37662
1756 PR tree-optimization/37663
1757 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
1758 get_value_range with non-SSA_NAME. Don't assert operands have been
1759 folded, instead just bail out.
1760
1847ea4d
AP
17612008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
1762
1763 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
1764
516c743f
RG
17652008-09-30 Richard Guenther <rguenther@suse.de>
1766
1767 PR middle-end/37491
1768 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
1769 build restrict-qualified pointers.
1770 (vectorizable_store): Move alias check later.
1771 (vectorizable_load): Likewise.
1772
626c34b5
PB
17732008-09-30 Paolo Bonzini <bonzini@gnu.org>
1774
1775 * c-common.c (empty_if_body_warning): Remove.
1776 * c-common.h (empty_if_body_warning): Remove.
1777 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
1778 here the -Wempty-body warning for `if' and `else' statements.
1779 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
1780
bd459cb6
L
17812008-09-29 H.J. Lu <hongjiu.lu@intel.com>
1782
1783 * config/i386/i386.opt: Add msse2avx.
1784
1785 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
1786 * config/i386/linux64.h (ASM_SPEC): Likewise.
1787
1788 * doc/invoke.texi: Document -msse2avx.
1789
2eb20e13
EB
17902008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1791
1792 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
1793
567075ed
JM
17942008-09-29 Joseph Myers <joseph@codesourcery.com>
1795
1796 * ifcvt.c (noce_emit_store_flag): If using condition from original
1797 jump, reverse it if if_info->cond was reversed.
1798
ae00112b
EB
17992008-09-29 Eric Botcazou <ebotcazou@adacore.com>
1800
1801 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1802 non-constant memory if it cannot be forced to constant memory.
1803 Overhaul surrounding code and factor out common condition.
1804
18052008-09-29 Jeff Law <law@redhat.com>
6b5676ce
JL
1806
1807 * reload1.c (alter_reg): Add missing curly braces.
1808
696e45ba
ME
18092008-09-29 Michael J. Eager <eager@eagercon.com>
1810
1811 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
1812 are easy.
1813 * config/rs6000/rs6000.c (rs6000_override_options): Move
1814 rs6000_init_hard_regno_mode_ok after all options changed.
1815 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
1816 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
1817 -msimple-fpu flags. Add warning messages if single FP not configured.
1818 (rs6000_file_start): Output gnu_attribute for single-float.
1819 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
1820 (rs6000_legitimize_address): Likewise.
1821 (rs6000_legitimize_reload_address): Likewise.
1822 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
1823 TARGET_SINGLE_FLOAT.
1824 (function_arg_advance): Likewise (partial conversion).
1825 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
1826 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
1827 TARGET_SINGLE_FLOAT.
1828 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
1829 (rs6000_emit_prologue): Likewise.
1830 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
1831 TARGET_SINGLE_FLOAT.
1832 (rs6000_libcall_value): Likewise.
1833 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
1834 (TARGET_DOUBLE_FLOAT): New default to 1
1835 (TARGET_SIMPLE_FPU): New default to 0
1836 (TARGET_SINGLE_FPU): New default to 0
1837 (TARGET_SINGLE_FLOAT_MODE): New.
1838 (TARGET_DOUBLE_FLOAT_MODE): New.
1839 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
1840 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
1841 UNITS_PER_FP_WORD
1842 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
1843 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
1844 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
1845 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
1846 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
1847 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
1848 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
1849 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
1850 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1851 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
1852 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
1853 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
1854 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
1855 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
1856 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
1857 cmptf_internal1, *cmptf_internal2): Condition on
1858 TARGET_DOUBLE_FLOAT.
1859 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
1860 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
1861 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
1862 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
1863 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
1864 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
1865 TARGET_SINGLE_FLOAT.
1866 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
1867 * config/rs6000/rs6000.opt (-msingle-float): New.
1868 (-mdouble-float): New.
1869 (-msimple-fpu): New.
1870 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
1871 -msingle-float, -mdouble-float, -msimple-fpu options.
1872 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
1873 _SOFT_DOUBLE for -msingle-float.
1874 * config.gcc: New config for target=powerpc-xilinx-eabi.
1875
a61e3d2a
TG
18762008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
1877
4e5821d3
UB
1878 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
1879 have exit and entry.
a61e3d2a
TG
1880 (new_scop): Take entry and exit edge to define new SCoP.
1881 (sd_region_p): New structure used during SCoP detection.
1882 (move_scops): Delete.
1883 (move_sd_regions): New.
1884 (scopdet_info): Change the definition from edges back to basic_blocks.
1885 (scopdet_edge_info): Work on basic_blocks and rename to
1886 scopdet_basic_block_info.
1887 (split_difficult_bb): At the moment removed. We should later
1888 add it at another place.
1889 (build_scops_1): Work on basic_blocks.
1890 (bb_in_sd_region): New.
1891 (find_single_entry_edge): New.
1892 (find_single_exit_edge): New.
1893 (create_single_entry_edge): New.
1894 (sd_region_without_exit): New.
1895 (create_single_exit_edge): New.
1896 (unmark_exit_edges): New.
1897 (mark_exit_edges): New.
1898 (create_sese_edges): New.
1899 (build_graphite_scops): New.
1900 (build_scops): Make SCoPs SESE.
1901 (limit_scops): Use the new functions.
1902
e53c2677
HPN
19032008-09-29 Hans-Peter Nilsson <hp@axis.com>
1904
1905 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
1906
4b49d9ce
AP
19072008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1908
1909 PR target/37640
1910 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
1911 address to a register before taking the lower part.
1912
30deaaf3
KK
19132008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
1914
1915 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
1916 for SHmedia.
1917
f50d67f6 19182008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4e5821d3 1919 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
f50d67f6
AP
1920
1921 PR tree-opt/36891
1922 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
1923 the newly created variable.
1924 Create a VECTOR_CST of all 1s for vector types.
1925
58760a81
EB
19262008-09-28 Eric Botcazou <ebotcazou@adacore.com>
1927
1928 PR middle-end/36575
ccad7589 1929 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
58760a81 1930
86cfb27a
EB
19312008-09-28 Eric Botcazou <ebotcazou@adacore.com>
1932
1933 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
1934 order to convert between modes.
1935 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
1936
f2a945b1
KK
19372008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
1938
1939 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
1940 if needed.
1941
f98c983a
VM
19422008-09-26 Vladimir Makarov <vmakarov@redhat.com>
1943
1944 Revert:
0b61703c 1945 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
f98c983a
VM
1946 * ira-lives.c:...
1947 * doc/rtl.texi:...
1948
aa5409e7
AN
19492008-09-26 Adam Nemet <anemet@caviumnetworks.com>
1950
1951 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
1952 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
1953 them to yield false with MIPS16.
1954
71142814
JJ
19552008-09-26 Jakub Jelinek <jakub@redhat.com>
1956
9c2b3df1
JJ
1957 PR middle-end/37275
1958 * dwarf2out.c (tls_mem_loc_descriptor): New function.
1959 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
1960 mem_loc_descriptor failed. Accept UNSPEC.
1961 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
1962 fail if one of the loc_descriptor calls for pieces failed.
1963 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
1964 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
1965 if loc_descriptor_from_tree_1 on offset failed.
1966
71142814
JJ
1967 PR middle-end/37576
1968 * opts.c (common_handle_option): Don't call print_specific_help with
1969 CL_SAVE as first argument.
1970
5d47bb02 19712008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
4e5821d3 1972 Steve Ellcey <sje@cup.hp.com>
5d47bb02
PG
1973
1974 * configure: Regenerate for new libtool.
1975 * aclocal.m4: Ditto.
1976
16044a80
PH
19772008-09-26 Pat Haugen <pthaugen@us.ibm.com>
1978
1979 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
1980 alias set on MEM when saving stack pointer.
1981 * config/rs6000/rs6000.md (allocate_stack): Likewise
1982
4ee279f2
DN
19832008-09-26 Dorit Nuzman <dorit@il.ibm.com>
1984
1985 PR tree-optimization/37574
1986 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
1987 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
1988 instead of vector_type for constants. Take computation out of loop.
1989 (vect_get_vec_def_for_operand): Use only vectype for constant case,
1990 and use only vector_type for invariant case.
1991 (get_initial_def_for_reduction): Use vectype instead of vector_type.
1992
e7b012c0
JJ
19932008-09-25 Jakub Jelinek <jakub@redhat.com>
1994
1995 PR c/37645
1996 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
1997 the decl is a VAR_DECL or FUNCTION_DECL.
1998
83d48fad
VM
19992008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2000
2001 PR middle-end/37535
83d48fad
VM
2002 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2003 (mark_ref_live, mark_ref_dead): Use them.
2004 (def_conflicts_with_inputs_p): Remove.
2005 (mark_early_clobbers): New function.
2006 (process_bb_node_lives): Call preprocess_constraints and
2007 mark_early_clobbers.
2008
2009 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2010
b15a7ae6
VM
20112008-09-25 Vladimir Makarov <vmakarov@redhat.com>
2012
2013 PR middle-end/37448
b15a7ae6
VM
2014 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2015 (ira_compress_allocno_live_ranges): New prototype.
2016
2017 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2018 (coalesced_allocnos_living_at_program_points): New.
2019 (coalesced_allocnos_live_at_points_p,
2020 set_coalesced_allocnos_live_points): New functions.
2021 (coalesce_spill_slots): Rewrite.
2022
2023 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2024 ira_compress_allocno_live_ranges): New functions.
2025
2026 * ira-build.c (ira_flattening): Call
2027 ira_compress_allocno_live_ranges.
2028 (ira_build): Ditto.
2029
6396547e
L
20302008-09-25 H.J. Lu <hongjiu.lu@intel.com>
2031
2032 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2033 optimization.
2034
6ffef2ad
RS
20352008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
2036
2037 * combine.c (make_compound_operation): Handle the 'E' format.
2038 (count_rtxs): Likewise.
2039 (update_table_tick): Likewise.
2040 (get_last_value_validate): Likewise.
2041
116612b9
EB
20422008-09-25 Eric Botcazou <ebotcazou@adacore.com>
2043
2044 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2045
e76314a7
SD
20462008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2047
6396547e 2048 * matrix-reorg.c (transform_allocation_sites): Initializers
e76314a7
SD
2049 added to avoid the warning.
2050
2fb16412
MJ
20512008-09-25 Martin Jambor <mjambor@suse.cz>
2052
2053 * cgraph.c (free_nodes): New variable.
2054 (NEXT_FREE_NODE): New macro.
2055 (cgraph_create_node): Reuse nodes from the free list. Do not
2056 update uid if doing so.
2057 (cgraph_remove_node): Add the node to the free list.
2058
0c327f09
GP
20592008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
2060
2061 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2062
b5e9dce1
RH
20632008-09-24 Richard Henderson <rth@redhat.com>
2064
2065 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2066 * unwind-dw2.c (execute_stack_op): Handle it.
2067
cf8e1455
DE
20682008-09-24 David Edelsohn <edelsohn@gnu.org>
2069
2070 Revert:
2071 2008-09-24 Michael J. Eager <eager@eagercon.com>
2072
3ba09659
AH
20732008-09-24 Aldy Hernandez <aldyh@redhat.com>
2074
2075 * c-common.c (fname_decl): New location argument.
2076 * c-common.h (fname_decl): Same.
2077 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2078 {warning,error}.
2079 (c_parser_typeof_specifier): Same.
2080 (c_parser_parms_list_declarator): Same.
2081 (c_parser_asm_string_literal): Same.
2082 (c_parser_compound_statement_nostart): Same.
2083 (c_parser_label): Same.
2084 (c_parser_do_statement): Same.
2085 (c_parser_asm_statement): Same.
2086 (c_parser_unary_expression): Same.
2087 (c_parser_sizeof_expression): Same.
2088 (c_parser_postfix_expression): Same.
2089 (c_parser_pragma): Same.
2090 (c_parser_omp_clause_collapse): Same.
2091 (c_parser_omp_clause_num_threads): Same.
2092 (c_parser_omp_clause_schedule): Same.
2093 (c_parser_omp_all_clauses): Same.
2094 (c_parser_omp_sections_scope): Same.
2095 (c_parser_omp_for_loop): Same. Pass condition's location to
2096 c_objc_common_truthvalue_conversion.
2097 (c_parser_enum_specifier): Remove comment.
2098
2a013f05
ME
20992008-09-24 Michael J. Eager <eager@eagercon.com>
2100
2101 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2102 are easy.
2103 * config/rs6000/rs6000.c (rs6000_override_options): Move
2104 rs6000_init_hard_regno_mode_ok after all options changed.
2105 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2106 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2107 -msimple-fpu flags. Add warning messages if single FP not configured.
2108 (rs6000_file_start): Output gnu_attribute for single-float.
2109 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2110 (rs6000_legitimize_address): Likewise.
2111 (rs6000_legitimize_reload_address): Likewise.
2112 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2113 TARGET_SINGLE_FLOAT.
2114 (function_arg_advance): Likewise.
2115 (function_arg): Likewise.
2116 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2117 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2118 TARGET_SINGLE_FLOAT.
2119 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2120 (rs6000_emit_prologue): Likewise.
2121 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2122 TARGET_SINGLE_FLOAT.
2123 (rs6000_libcall_value): Likewise.
2124 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2125 (TARGET_DOUBLE_FLOAT): New default to 1
2126 (TARGET_SIMPLE_FPU): New default to 0
2127 (TARGET_SINGLE_FPU): New default to 0
2128 (TARGET_SINGLE_FLOAT_MODE): New.
2129 (TARGET_DOUBLE_FLOAT_MODE): New.
2130 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2131 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2132 UNITS_PER_FP_WORD
2133 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2134 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2135 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2136 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2137 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2138 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2139 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2140 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2141 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2142 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2143 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2144 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2145 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2146 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2147 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2148 cmptf_internal1, *cmptf_internal2): Condition on
2149 TARGET_DOUBLE_FLOAT.
2150 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2151 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2152 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2153 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2154 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2155 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2156 TARGET_SINGLE_FLOAT.
2157 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2158 * config/rs6000/rs6000.opt (-msingle-float): New.
2159 (-mdouble-float): New.
2160 (-msimple-fpu): New.
2161 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2162 -msingle-float, -mdouble-float, -msimple-fpu options.
2163 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2164 _SOFT_DOUBLE for -msingle-float.
2165 * config.gcc: New config for target=powerpc-xilinx-eabi.
2166
157891a3
EB
21672008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2168
2169 * config/sparc/constraints.md: New file.
2170 * config/sparc/sparc.md: Include it.
2171 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2172 (sparc_extra_constraint_check): Delete.
2173 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2174 (memory_ok_for_ldd): New predicate.
2175 (sparc_extra_constraint_check): Delete.
2176 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2177 (CONST_OK_FOR_LETTER_P): Likewise.
2178 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2179 (EXTRA_CONSTRAINT): Likewise.
2180
b41310e2
SE
21812008-08-23 Steve Ellcey <sje@cup.hp.com>
2182
2183 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2184
53451050
RS
21852008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2186
2187 * alias.c (find_base_value): Use FIND_BASE_TERM.
2188 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2189
411e138a
RS
21902008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2191
2192 * config/i386/i386.c: Include cselib.h.
2193 (ix86_pic_register_p): New function.
2194 (ix86_delegitimize_address): Use it to check for the PIC register.
2195
a9e6fc5a
RS
21962008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2197
2198 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2199 * config/i386/i386.c (ix86_find_base_term): Don't check for
2200 SYMBOL_REF and LABEL_REF.
2201
5213f1a6
RS
22022008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2203
2204 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2205 constant PLUS in a CONST.
2206
37e27d01
KT
22072008-09-23 Kai Tietz <kai.tietz@onevision.com>
2208
70d1a750 2209 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
37e27d01
KT
2210 check for sibcall support for w64.
2211
c9891b70
EB
22122008-09-23 Eric Botcazou <ebotcazou@adacore.com>
2213
2214 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2215
ba47d38d
AH
22162008-09-23 Aldy Hernandez <aldyh@redhat.com>
2217
2218 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2219 parser_build_binary_op.
2220 * c-decl.c (build_enumerator): Pass location to build_binary_op.
2221 * c-typeck.c (build_array_ref): Same.
2222 (parser_build_unary_op): New location argument.
2223 (pointer_diff): Pass location to build_binary_op,
2224 c_objc_common_truthvalue_conversion.
2225 (build_modify_expr): Same.
2226 (build_unary_op): New location argument.
2227 (build_binary_op): New location argument.
2228 (c_objc_common_truthvalue_conversion): Pass location to
2229 c_*common_truthvalue_conversion.
2230 * c-convert.c (convert): Same.
2231 * c-common.c (binary_op_error): New location argument.
2232 (pointer_int_sum): Pass location to build_binary_op.
2233 (c_common_truthvalue_conversion): New location argument.
2234 (warn_for_sign_compare): Same.
2235 * c-common.h: Add location argument to c_common_truthvalue_conversion,
2236 binary_op_error, build_binary_op, warn_for_sign_compare.
2237 * c-parser.c (c_parser_condition): Pass location to
2238 c_*common_truthvalue_conversion.
2239 (c_parser_conditional_expression): Save condition's location and pass
2240 it on down.
2241 (c_parser_binary_expression): Same, but for the binary operator's
2242 location.
2243 (c_parser_omp_for_loop): Pass location to
2244 c_objc_common_truthvalue_conversion.
2245
5c0466b5
MJ
22462008-09-23 Martin Jambor <mjambor@suse.cz>
2247
2248 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2249 (cgraph_node_remove_callees): New temporary f. Hold the next item
2250 in f when looping.
2251 (cgraph_node_remove_callers): Likewise.
2252
2253 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2254 (ipa_node_removal_hook): Likewise.
2255
2256 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2257 gimple_call_copy_skip_args and moved to the gimple_call section.
2258 * gimple.c (gimple_copy_call_skip_args): Renamed to
2259 gimple_call_copy_skip_args. Changed al users.
2260
1ae64b0f
VM
22612008-09-22 Vladimir Makarov <vmakarov@redhat.com>
2262
2263 * ira-color.c (start_allocno_priorities): Rename to
2264 setup_allocno_priorities. Use costs and
2265 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2266 range lengths. Get rid off doubles.
2267 (ira_fast_allocations): Call start_allocno_priorities.
2268
61debb78
DD
22692008-09-22 David Daney <ddaney@avtrex.com>
2270
2271 PR target/37593
2272 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2273 register if TARGET_LONG_CALLS.
2274
ecb4e37b
RG
22752008-09-22 Richard Guenther <rguenther@suse.de>
2276
2277 PR tree-optimization/37145
2278 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2279 value-numbering union accesses with their offset and size only.
2280 (visit_reference_op_load): Fix simplification of inserted conversions.
2281 * tree-ssa-pre.c (find_or_generate_expression): Do not
2282 recursively generate expressions if running FRE.
2283
7846e5f9
AN
22842008-09-22 Adam Nemet <anemet@caviumnetworks.com>
2285
2286 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
b7f58d5d
UB
2287 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2288 New patterns.
7846e5f9 2289
47af7a5c
RG
22902008-09-22 Richard Guenther <rguenther@suse.de>
2291
2292 PR tree-optimization/37145
2293 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2294 (phi_translate_1): Constant fold references.
2295
5e038cad
IR
22962008-09-22 Ira Rosen <irar@il.ibm.com>
2297
2298 PR tree-optimization/37482
2299 * tree-vectorizer.h (struct _slp_instance): Add new field.
2300 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2301 (get_earlier_stmt): New function.
2302 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2303 function.
2304 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2305 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2306 asserts that GSI points to the scalar statement being vectorized.
2307 Set new statement location according to GSI.
2308 (vect_schedule_slp_instance): Use GSI of
2309 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2310
c801c273
JH
23112008-09-21 Jan Hubicka <jh@suse.cz>
2312
2313 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2314 (ipcp_insert_stage): Update dead_nodes bitmap.
2315
d59e481e
DS
23162008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
2317
2318 PR target/37528
2319 * config/i386/t-cygming (SHLIB_LC): Remove.
2320 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
b7f58d5d 2321 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
d59e481e 2322
c70d0414
HPN
23232008-09-22 Hans-Peter Nilsson <hp@axis.com>
2324
2325 PR middle-end/37170
2326 PR middle-end/37280
2327 * final.c (mark_symbol_ref_as_used): New helper function.
2328 (output_operand): Instead of just looking inside MEMs for
2329 SYMBOL_REFs, use new helper function and for_each_rtx.
2330 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2331 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
2332 Make head comment more general.
2333 * config/darwin.c (machopic_output_indirection): Handle weak
2334 references here, like in assemble_external.
2335
19047e4a
EB
23362008-09-21 Eric Botcazou <ebotcazou@adacore.com>
2337
2338 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2339 (sparc_emit_float_lib_cmp): Change return type.
2340 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2341 (gen_compare_operator): New function.
2342 (sparc_emit_float_lib_cmp): Return the new operator to be used in
2343 the comparison sequence. Minor tweaks.
2344 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2345 that the final operator and the result of sparc_emit_float_lib_cmp
2346 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2347 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
2348 buneq, bunge, bunle, bltgt): Assert that the final operator and the
2349 result of sparc_emit_float_lib_cmp match for software TFmode.
2350 (movqicc, movhicc, movsicc, movdicc): Merge into...
2351 (mov<I:mode>cc): ...this.
2352 (movsfcc, movdfcc, movtfcc): Merge into...
2353 (mov<F:mode>cc): ...this.
2354 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
2355 into...
2356 (mov<I:mode>_cc_v9): ...this.
2357 (movdi_cc_sp64_trunc): Delete.
2358 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
2359 movdi_cc_reg_sp64): Merge into...
2360 (mov<I:mode>_cc_reg_sp64): ...this.
2361 (movsf_cc_sp64): Rename into...
2362 (movsf_cc_v9): ...this.
2363 (movdf_cc_sp64): Rename into...
2364 (movdf_cc_v9): ...this.
2365 (movtf_cc_hq_sp64): Rename into...
2366 (movtf_cc_hq_v9): ...this.
2367 (movtf_cc_sp64): Rename into...
2368 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
2369
e6c99067
DN
23702008-09-21 Diego Novillo <dnovillo@google.com>
2371
2372 * doc/gccint.texi: Include generic.texi and gimple.texi.
2373 Re-order index.
2374 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
2375 (GIMPLE): Move to gimple.texi.
2376 (Annotations): Remove references to to stmt_ann_t and
2377 ssa_name_ann_t.
2378 (SSA Operands): Rename from 'Statement Operands'.
2379 * doc/generic.texi: New.
2380 * doc/gimple.texi: New.
b7f58d5d 2381 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
e6c99067
DN
2382 * Makefile.in (TEXI_GCCINT_FILES):
2383 * gimple.c (gimple_copy_call_skip_args): Rename from
2384 giple_copy_call_skip_args. Update all users.
2385 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
2386
5abf3860
IR
23872008-09-21 Ira Rosen <irar@il.ibm.com>
2388
2389 PR tree-optimization/37539
2390 * tree-vect-transform.c (vect_transform_strided_load): Save vector
2391 statement in related statement field only for the first load of the
2392 group of loads with the same data reference.
2393
ce00be9e
AN
23942008-09-20 Adam Nemet <anemet@caviumnetworks.com>
2395
2396 * config/mips/mips.h (TUNE_OCTEON): New macro.
2397 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
2398 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
2399 * config/mips/octeon.md: New file.
2400 * config/mips/mips.md: Include octeon.md. Restore
2401 semi-alphabetical order of include files.
2402
5a73c476
L
24032008-09-20 H.J. Lu <hongjiu.lu@intel.com>
2404
2405 PR target/37571
2406 * config/i386/i386.md (*jcc_fused_1): Removed.
2407 (*jcc_fused_2): Likewise.
2408 (*jcc_fused_3): Likewise.
2409 (*jcc_fused_4): Likewise.
2410
76e68dca
RS
24112008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
2412
2413 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
2414 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
2415 * target.h (gcc_target): Add ira_cover_classes.
2416 * ira.c: Remove IRA_COVER_CLASSES guards.
2417 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
2418 instead of IRA_COVER_CLASSES.
2419 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
2420 (setup_class_translate): Likewise.
2421 (setup_reg_class_intersect_union): Likewise.
2422 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
2423 test of targetm.ira_cover_classes.
2424 * opts.c (decode_options): Use targetm.ira_cover_classes instead
2425 of IRA_COVER_CLASSES.
2426 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
2427 (TARGET_INITIALIZER): Include it.
2428 * targhooks.h (default_ira_cover_classes): Declare.
2429 * targhooks.c (default_ira_cover_classes): New function.
2430
398857e4
BW
24312008-09-19 Bob Wilson <bob.wilson@acm.org>
2432
2433 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
2434
acafbcde
ILT
24352008-09-19 Ian Lance Taylor <iant@google.com>
2436
2437 * varasm.c (narrowing_initializer_constant_valid_p): Return
2438 NULL_TREE if ENDTYPE is not an integer.
2439
f22b7039
AP
24402008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2441
2442 PR tree-opt/30930
2443 * tree-ssa.c (execute_update_addresses_taken): Also update
2444 DECL_GIMPLE_REG_P for vector and complex types.
2445
60ffe2fe
AM
24462008-09-19 Andrew MacLeod <amacleod@redhat.com>
2447 Jan Hubicka <jh@suse.cz>
2448
2449 PR middle-end/37567
2450 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
2451 empty before freeing them.
2452 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
2453
6a7a462c
BW
24542008-09-18 Bob Wilson <bob.wilson@acm.org>
2455
2456 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
2457 * config/xtensa/predicates.md (tls_symbol_operand): New.
2458 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
2459 (TARGET_CANNOT_FORCE_MEM): Define.
2460 (xtensa_tls_symbol_p): New.
2461 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
2462 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
2463 (xtensa_tls_module_base): New.
2464 (xtensa_call_tls_desc): New.
2465 (xtensa_legitimize_tls_address): New.
2466 (xtensa_legitimize_address): Handle TLS symbols.
2467 (xtensa_tls_referenced_p_1): New.
2468 (xtensa_tls_referenced_p): New.
4e5821d3
UB
2469 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
2470 UNSPEC_DTPOFF.
6a7a462c
BW
2471 (XTENSA_BUILTIN_THREAD_POINTER): New.
2472 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
4e5821d3
UB
2473 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
2474 builtin. Add declarations for __builtin_thread_pointer and
6a7a462c
BW
2475 __builtin_set_thread_pointer.
2476 (xtensa_fold_builtin): Recognize new builtins.
2477 (xtensa_expand_builtin): Expand new builtins.
2478 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
2479 (TARGET_THREADPTR): Define.
2480 (HAVE_AS_TLS): Define default value.
2481 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
2482 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
2483 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
2484 (UNSPECV_SET_TP): New.
2485 (sym_TPOFF, sym_DTPOFF): New.
2486 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
2487 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
2488 * configure: Regenerated.
2489
faae4ae7
L
24902008-09-18 H.J. Lu <hongjiu.lu@intel.com>
2491
2492 PR target/37394
2493 * config/ia64/ia64.c (ia64_optimization_options): Move
2494 checking and setting flag_schedule_insns_after_reload and
2495 ia64_flag_schedule_insns2 back to ...
2496 (ia64_override_options): Here.
2497
b2a38b1d
AP
24982008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
2499
2500 PR rtl-opt/37451
2501 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
2502 zero extend count after the correction to it is done.
2503 (doloop_optimize): Update call to doloop_modify, don't zero extend
2504 count before call.
2505
be95e2b9
MJ
25062008-09-18 Martin Jambor <mjambor@suse.cz>
2507
2508 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
2509
2510 * ipa-prop.c: Correct comments.
2511 * ipa-prop.h: Likewise.
2512
e2c9111c
JH
25132008-09-18 Jan Hubicka <jh@suse.cz>
2514
2515 PR middle-end/37448
2516 * ipa-reference.c (ipa_reference_local_vars_info_d,
2517 ipa_reference_global_vars_info_d,
2518 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2519 ipa_reference_vars_info_t): Move here from ipa-reference.h
2520 (node_duplication_hook_holder, node_removal_hook_holder): New.
2521 (get_reference_vars_info_from_cgraph): Rename to ...
2522 (get_reference_vars_info): ... this one, use cgraph uids.
2523 (get_local_reference_vars_info, get_global_reference_vars_info):
2524 Use cgraph instead of decl.
4e5821d3
UB
2525 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2526 Remove.
e2c9111c 2527 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
4e5821d3
UB
2528 ipa_reference_get_written_global,
2529 ipa_reference_get_not_written_global): Use cgraph argument.
e2c9111c
JH
2530 (check_call): Simplify avail check.
2531 (scan_stmt_for_static_refs): Update.
2532 (propagate_bits): Update.
2533 (merge_callee_local_info): Remove.
2534 (init_function_info): Use cgraph nodes.
2535 (clean_function_local_data): Break out from ...
2536 (clean_function): ... here.
2537 (copy_local_bitmap, copy_global_bitmap): New functions.
2538 (duplicate_node_data, remove_node_data): New functions.
2539 (generate_summary): Register hooks; use visibility instead of
2540 master clones.
2541 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
2542 * ipa-reference.h (ipa_reference_local_vars_info_d,
2543 ipa_reference_global_vars_info_d,
2544 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
2545 ipa_reference_vars_info_t): Move to ipa-reference.c
2546 (ipa_reference_get_read_local, ipa_reference_get_written_local):
2547 Remove.
2548 (ipa_reference_get_read_global, ipa_reference_get_written_global,
4e5821d3
UB
2549 ipa_reference_get_not_read_global,
2550 ipa_reference_get_not_written_global): Update prototype.
e2c9111c
JH
2551 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
2552 (init_state): Remove.
2553 (node_duplication_hook_holder, node_removal_hook_holder): New.
2554 (get_function_state, set_function_state): Use VECtor.
2555 (analyze_function): Check body availability.
2556 (add_new_function): Likewise.
2557 (duplicate_node_data, remove_node_data): New.
2558 (generate_summary): Register hooks; do not care about clones.
4e5821d3
UB
2559 (propafate): Do not care about clones; recursive functions are
2560 not looping.
e2c9111c
JH
2561 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
2562 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
2563 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
2564 static.
2565 * tree-flow.h (function_ann_d): Remove reference_vars_info.
4e5821d3
UB
2566 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
2567 Update call of ipa-reference accesors.
e2c9111c 2568
c047ce93
SB
25692008-09-18 Simon Baldwin <simonb@google.com>
2570
2571 * c-opts.c (c_common_handle_option): Add handling for
2572 -Wbuiltin-macro-redefined command line option.
2573 * c.opt: Added builtin-macro-redefined option.
2574 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
2575 documentation.
2576
1d295886
RG
25772008-09-18 Richard Guenther <rguenther@suse.de>
2578
2579 PR tree-optimization/37258
2580 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
2581 and signedness for integral types.
2582 (vn_phi_eq): Require compatible types.
2583
802e9f8e
JJ
25842008-09-18 Jakub Jelinek <jakub@redhat.com>
2585
2586 PR debug/34037
2587 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
2588 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
2589 VAR_DECL.
2590 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
2591 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
2592 ggc_free other TREE_LIST nodes from that chain.
2593 * function.c (instantiate_decls): Instantiate also DECL_RTL
2594 of vars in cfun->local_decls, free that list afterwards.
2595
a2cd689a
EB
25962008-09-18 Eric Botcazou <ebotcazou@adacore.com>
2597
2598 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
2599 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
2600
4b756989
AM
26012008-09-18 Andrew MacLeod <amacleod@redhat.com>
2602
802e9f8e 2603 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
4b756989
AM
2604 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
2605
ffd327a7
AM
26062008-09-18 Andrew MacLeod <amacleod@redhat.com>
2607
2608 PR tree-optimization/37102
a38df783
AM
2609 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
2610 from a node. Check to see if another PHI is dead.
2611 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
2612 remove real PHIs which have no uses.
ffd327a7
AM
2613 (rewrite_out_of_ssa): Call eliminate_useless_phis.
2614
3d9fbb9a
RG
26152008-09-18 Richard Guenther <rguenther@suse.de>
2616
2617 PR middle-end/37284
2618 * tree-cfg.c (remove_useless_stmts_1): Remove
2619 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
2620
35f2d8ef
NC
26212008-09-18 Nick Clifton <nickc@redhat.com>
2622
2623 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
2624 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
2625 to frv_secondary_reload_class.
2626 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
2627 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
2628 (frv_secondary_reload_class): Omit unused parameter.
2629 (frv_secondary_reload): New function. Handle the case when
2630 secondary_reload_class() is called before the reload_(in|out)
2631 _optabs have been initialised.
2632 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
2633 unused parameter.
2634 * config/frv/frv.md: Define an exclusion set between fr550_m0
2635 and fr550_f0.
2636
e7089ecf
RG
26372008-09-18 Richard Guenther <rguenther@suse.de>
2638
2639 PR tree-optimization/37456
2640 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
2641 want to insert after ends a BB insert on the single fallthru
2642 outgoing edge.
2643
59a1bff3
AK
26442008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
2645
2646 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
2647 Mention -march=z9-109, z9-ec and z10.
2648
02bb8bce
UB
26492008-09-18 Uros Bizjak <ubizjak@gmail.com>
2650
2651 PR rtl-optimization/37544
2652 * regrename.c (maybe_mode_change): Exit early when copy_mode
2653 is narrower than orig_mode and narrower than new_mode.
2654
d9e74dfc
AM
26552008-09-18 Alexander Monakov <amonakov@ispras.ru>
2656
2657 PR middle-end/37499
b7f58d5d 2658 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
d9e74dfc
AM
2659
2660 * sched-rgn.c (ref_counts): Remove.
2661 (insn_referenced): New static variable.
2662 (INSN_REF_COUNT): Remove.
2663 (sched_run_compute_dependencies): Use insn_referenced instead of
2664 INSN_REF_COUNT.
2665 (add_branch_dependences): Likewise. Delete dead assignment.
2666
078a70a1
AN
26672008-09-17 Adam Nemet <anemet@caviumnetworks.com>
2668
2669 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
2670 consumer is an asm. Add comment why this is important.
2671 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
b7f58d5d 2672 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
078a70a1 2673
38c4df0b
JM
26742008-09-17 Joseph Myers <joseph@codesourcery.com>
2675
2676 * expr.c (emit_group_store): Do not shift before moving via a
2677 stack slot.
2678
1a8c909e
EB
26792008-09-17 Eric Botcazou <ebotcazou@adacore.com>
2680
2681 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
2682 from aggregate to non-aggregate type if the bit pattern is not fully
2683 preserved afterwards.
2684
9f509004
RG
26852008-09-17 Richard Guenther <rguenther@suse.de>
2686
2687 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
2688 (verify_gimple_assign): ... this. Split into ...
2689 (verify_gimple_assign_unary): ... this,
2690 (verify_gimple_assign_binary): ... that,
2691 (verify_gimple_assign_single): ... and this.
2692 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
2693 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
2694 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
2695 (verify_types_in_gimple_reference): Be forgiving with
2696 VIEW_CONVERT_EXPRs.
2697 (verify_gimple_phi): Deal with virtual operands.
2698
2699 * tree.def (PREDICT_EXPR): Change to tcc_expression.
2700
2700cb86
AP
27012008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
2702
2703 * tree.c (get_callee_fndecl): Don't call the language hook.
2704 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
2705 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
2706 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
2707
6847a754
JJ
27082008-09-17 Jakub Jelinek <jakub@redhat.com>
2709
2710 * tree.c (protected_set_expr_location): Don't unnecessarily
2711 check for error_mark_node.
2712
71b10713
AH
27132008-09-17 Art Haas <ahaas@impactweather.com>
2714
2715 * ipa-reference.c (analyze_function): Declare step only if
2716 ENABLE_CHECKING is defined.
2717
0494626a
JH
27182008-09-17 Jan Hubicka <jh@suse.cz>
2719
2720 PR c++/18071
2721 * tree.h (DECL_INLINE): remove.
2722 (DECL_DECLARED_INLINE_P): Update docs.
2723 (DECL_NO_INLINE_WARNING_P): new.
2724 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
2725 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
2726
1c1b0507
JJ
27272008-09-17 Jakub Jelinek <jakub@redhat.com>
2728 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2729
2730 PR bootstrap/37441
2731 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
2732 false.
2733
ebcf9dc8
JH
27342008-09-17 Jan Hubicka <jh@suse.cz>
2735
2736 * ipa-reference.c (ipa_obstack): Remove.
2737 (local_info_obstack, global_info_obstack): New.
2738 (add_static_var): We now handle variables only.
2739 (mark_address_taken, mark_load, mark_store): New functions based on ...
2740 (check_operand): ... remove.
2741 (get_asm_stmt_operands): Rename to ...
2742 (check_asm_memory_clobber): ... this. Look only for memory clobber.
2743 (scan_stmt_for_static_refs): Rewrite.
2744 (scan_op_for_static_refs): Rename to ...
2745 (scan_initializer_for_static_refs): do not look for VAR_DECL
2746 initializers; stop recursion on types and decls.
2747 (ipa_init): Use proper obstacks.
2748 (analyze_variable): Use scan_initializer_for_static_refs.
2749 (init_function_info): Use local obstack.
2750 (analyze_function): Simplify.
2751 (add_new_function): We don't need visited_nodes obstack.
2752 (generate_summary): Use proper obstacks; cleanup after propagation.
2753
791f1714
RG
27542008-09-17 Richard Guenther <rguenther@suse.de>
2755
2756 PR middle-end/37385
2757 PR tree-optimization/37491
2758 * alias.c (get_alias_set): Use the canonical type.
2759 * tree-vect-transform.c (vectorizable_store): Use the type of
2760 the lhs for the vector type. Adjust checking.
2761 (vectorizable_load): Adjust checking.
2762
b5fb36ee
JJ
27632008-09-16 Jakub Jelinek <jakub@redhat.com>
2764 Adam Nemet <anemet@caviumnetworks.com>
2765
2766 PR rtl-optimization/37483
2767 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
2768 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
2769 Rearrange code to better match the original comment. Check
2770 t_unconditional first. Improve comment.
2771
cc8b343d
JJ
27722008-09-16 Jakub Jelinek <jakub@redhat.com>
2773
8c50b495
JJ
2774 PR c/37529
2775 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
2776 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
2777
cc8b343d
JJ
2778 PR c++/37530
2779 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
2780 GIMPLE_TRY if cleanup sequence is empty.
2781
b9ff6079
AP
27822008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
2783
2784 PR middle-end/37263
2785 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
2786 eliminate IV if the cost are the same.
2787
d573123d
RG
27882008-09-16 Richard Guenther <rguenther@suse.de>
2789
2790 PR middle-end/37380
2791 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
2792 if not necessary.
2793
9cb57027
RG
27942008-09-16 Richard Guenther <rguenther@suse.de>
2795
2796 PR tree-optimization/37508
2797 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
2798
9705d817
KK
27992008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
2800
2801 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
2802
f369bbb1
AP
28032008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2804
2805 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
2806 use gen_floatdidf2 directly.
2807 (floatunssidf2): Likewise.
2808 (floatsidf_ppc64_mfpgpr): Remove.
2809 (floatsidf_ppc64): Remove.
2810 (floatunssidf_ppc64): Remove.
2811
8586aeeb
JJ
28122008-09-15 Jakub Jelinek <jakub@redhat.com>
2813
0eeb2240
JJ
2814 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
2815 rather than update_cost_queue.
2816
1fdeb82f
JJ
2817 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
2818 in every call starting with the second one, instead of only when
2819 alias_bitmap_obstack.elements != NULL.
2820
2821 * tree-predcom.c (filter_suitable_components): Free all refs in
2822 act->refs vector before calling release_component.
2823 (add_ref_to_chain): Free ref if not adding it to chain->refs.
2824
2825 * tree-data-ref.c (free_subscripts): Free all subscript objects.
2826
2827 * tree-loop-linear.c (linear_transform_loops): Initialize
2828 lambda_obstack only after calling perfect_loop_nest_depth.
2829 Goto free_and_continue instead of just continue for later failures.
2830
8f57ac5a
JJ
2831 PR middle-end/37479
2832 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
2833
8586aeeb
JJ
2834 PR libmudflap/36397
2835 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
2836
ea8bce02
AS
28372008-09-14 Andreas Schwab <schwab@suse.de>
2838
2839 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
2840
6a78eaa3
JH
28412008-09-14 Jan Hubicka <jh@suse.cz>
2842
2843 * invoke.texi (-fconserve-stack): Document.
2844 * opts.c (decode_options): Handle conserve_stack.
2845 * common.opt (fconvserve_stack): New.
2846
138b9ed9
DE
28472008-09-14 David Edelsohn <edelsohn@gnu.org>
2848
2849 * config.host: Add x-aix to host_xmake_file.
2850 * config/rs6000/t-aix52: Do not override LDFLAGS.
2851 * config/rs6000/x-aix: New file.
2852
9215065f
AH
28532008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
2854
2855 PR target/19636
2856 PR target/24894
2857 PR target/31644
2858 PR target/31786
2859 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
2860 is not recognized as a valid register usage. Allow REG_X to be used
2861 as a base pointer.
2862 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
2863 forces a reload when using a base register.
2864
78a1f201
DS
28652008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
2866
2867 * config/i386/cygming-crtend.c (register_frame_ctor): If
2868 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
2869 directly with atexit.
2870 (deregister_frame_ctor): Rename to ...
2871 (deregister_frame_dtor): Use to call __gcc_deregister_frame
2872 if !DEFAULT_USE_CXA_ATEXIT.
2873
a63f2942
JH
28742008-09-13 Jan Hubicka <jh@suse.cz>
2875
2876 * cgraph.c: Include value-prof.h
2877 * Makefile.in (cgraph.o): Add value-prof.h dependency.
2878
71ba42fa
JH
28792008-09-13 Jan Hubicka <jh@suse.cz>
2880
2881 PR middle-end/32581
2882 * tree-profile.c (add_abnormal_goto_call_edges): New function.
2883 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2884 tree_gen_one_value_profiler, tree_gen_average_profiler,
2885 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
2886
80cab2f0
JH
28872008-09-13 Jan Hubicka <jh@suse.cz>
2888
02bb8bce
UB
2889 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
2890 too many bytes on misalligned blocks.
80cab2f0 2891
d1facce0
RW
28922008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2893
2894 * doc/cfg.texi: Fix some typos.
2895 * doc/extend.texi: Likewise.
2896 * doc/install.texi: Likewise.
2897 * doc/invoke.texi: Likewise.
2898 * doc/rtl.texi: Likewise.
2899 * doc/tree-ssa.texi: Likewise.
2900
42ea03fb
RG
29012008-09-13 Richard Guenther <rguenther@suse.de>
2902
2903 PR middle-end/30141
2904 * tree-nested.c (finalize_nesting_tree_1): Generate valid
2905 gimple stores for memory rhs.
2906
9e6a14a4
L
29072008-09-13 H.J. Lu <hongjiu.lu@intel.com>
2908
2909 PR rtl-optimization/37489
2910 * cse.c (fold_rtx): Don't return const_true_rtx for float
2911 compare if FLOAT_STORE_FLAG_VALUE is undefined.
2912
5a6e26b7
JH
29132008-09-13 Jan Hubicka <jh@suse.cz>
2914
2915 PR tree-optimization/37392
2916 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
2917
934cb78a
MJ
29182008-09-13 Martin Jambor <mjambor@suse.cz>
2919 Jan Hubicka <jh@suse.cz>
2920
2921 * cgraph.c (free_edges): New variable.
2922 (NEXT_FREE_EDGE): New macro.
2923 (cgraph_free_edge): New function.
2924 (cgraph_remove_edge): Call cgraph_remove_edge_1.
2925 (cgraph_node_remove_callees): Likewise.
2926 (cgraph_node_remove_callers): Likewise.
2927 (cgraph_create_edge): Reuse edges from the free list. Do not
2928 update uid if doing so.
2929 (cgraph_remove_*_hook): Add free call.
2930
f754734f
RS
29312008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
2932
2933 * ira-color.c (conflict_allocno_vec): Delete.
2934 (update_cost_queue_elem): New structure.
2935 (update_cost_queue): New variable.
2936 (update_cost_queue_tail): Likewise.
2937 (update_cost_queue_elems): Likewise.
2938 (allocno_update_cost_check): Delete.
2939 (initiate_cost_update): Allocate update_cost_queue_elems
2940 instead of allocno_update_cost_check.
2941 (finish_cost_update): Update the free()s accordingly.
2942 (start_update_cost): New function.
2943 (queue_update_cost): Likewise.
2944 (get_next_update_cost): Likewise.
2945 (update_copy_costs_1): Inline into...
2946 (update_copy_costs): ...here. Use a queue instead of recursive calls.
2947 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
2948 once we've established they are equal. Don't allocate update
2949 costs if there is nothing to add to them.
2950 (update_conflict_hard_regno_costs): Remove ALLOCNO and
2951 DIVISOR arguments. Use a queue instead of recursive calls;
2952 process all the allocnos in the initial queue, rather than
2953 a single allocno.
2954 (assign_hard_reg): Use queue_update_cost instead of
2955 conflict_allocno_vec. Queue coalesced allocnos instead
2956 of calling update_conflict_hard_regno_costs for each one.
2957 Just call update_conflict_hard_regno_costs once for the
2958 entire queue.
2959 (ira_color): Remove conflict_allocno_vec handling.
2960
02ae05bd
SP
29612008-09-12 Sebastian Pop <sebastian.pop@amd.com>
2962
2963 PR tree-optimization/37484
2964 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
2965 (save_var_name): Same.
2966 (initialize_cloog_names): Same.
2967 (initialize_cloog_names): Same.
2968
0bfdfbf6
SP
29692008-09-12 Sebastian Pop <sebastian.pop@amd.com>
2970
02bb8bce
UB
2971 * tree-scalar-evolution.c (set_instantiated_value): Set
2972 instantiated_below.
0bfdfbf6 2973
82b33628
VM
29742008-09-12 Vladimir Makarov <vmakarov@redhat.com>
2975
2976 PR rtl-opt/37377
ea8bce02 2977
82b33628
VM
2978 * ira-build.c (common_loop_tree_node_dominator): Remove.
2979 (copy_live_ranges_to_removed_store_destinations): New function.
2980 (regno_top_level_allocno_map): Move to top level from ...
2981 (ira_flattening): ... here. Use
2982 copy_live_ranges_to_removed_store_destinations.
2983
2984 * ira-emit.c (generate_edge_moves): Fix a comment.
ea8bce02 2985
6ff5d1e4
AS
29862008-09-12 Anatoly Sokolov <aesok@post.ru>
2987
2988 PR target/37466
2989 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
2990 scratch register after 'set' pattern.
2991
0a317111
UW
29922008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2993
2994 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
2995 information passed to mark_reg_pointer.
2996 * explow.c (force_reg): Likewise.
2997
59dbe4fe
UW
29982008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2999
3000 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
3001 when building for the celledp architecture.
3002
29442589
RG
30032008-09-12 Richard Guenther <rguenther@suse.de>
3004
3005 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
3006
004a6ce8
EB
30072008-09-12 Eric Botcazou <ebotcazou@adacore.com>
3008
3009 PR rtl-optimization/37424
3010 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
3011 the regnos instead of the addresses.
3012
7ecb6f5b
JJ
30132008-09-11 Janis Johnson <janis187@us.ibm.com>
3014
3015 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
3016
e49a540c
RG
30172008-09-11 Richard Guenther <rguenther@suse.de>
3018
3019 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
3020 entering the weaker equivalence recording.
3021
3022 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
3023
13d7e8af
JL
30242008-09-11 Jeff Law <law@redhat.com>
3025
3026 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
3027 by assign_stack_local on the IRA path for stack slot sharing
3028 as well as the non-IRA path.
3029
4ae8027b
UB
30302008-09-11 Uros Bizjak <ubizjak@gmail.com>
3031
3032 * config/i386/i386.h: Fix whitespace issues.
3033
f8e2a1ed
MJ
30342008-09-11 Martin Jambor <mjambor@suse.cz>
3035
3036 * ipa-prop.h (struct ipa_param_flags): Removed.
3037 (struct ipa_param_descriptor): New structure.
3038 (struct ipa_node_params): ipcp_lattices, param_decls and
3039 param_flags moved to ipa_param_description.
3040 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
3041 descriptors. Renamed all users.
3042 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
3043 changed to access descriptors. Renamed all users.
3044 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
3045 to access descriptors. Renamed all users.
3046 * ipa-cp.c (ipcp_init_cloned_node): Call
3047 ipa_initialize_node_params instead of ipa_count_formal_params and
3048 ipa_create_param_decls_array.
3049 (ipcp_analyze_node): Likewise.
3050 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
3051 descriptors. Renamed all users.
3052 (ipcp_initialize_node_lattices): Remove allocation.
3053 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3054 ipa_initialize_node_params instead of ipa_count_formal_params and
3055 ipa_create_param_decls_array.
3056 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
3057 ipa_populate_param_decls, made static, added parameter info,
3058 renamed mt to node, removed allocation, changed to use
3059 descriptors.
3060 (ipa_count_formal_params): Made static, added parameter info,
3061 renamed mt to node.
3062 (ipa_initialize_node_params): New function.
3063 (ipa_check_stmt_modifications): Changed to use descriptors.
3064 (ipa_detect_param_modifications): Removed allocation, changed to
3065 use descriptors.
3066 (ipa_note_param_call): Changed to use descriptors.
3067 (ipa_analyze_params_uses): Removed allocation.
3068 (ipa_free_node_params_substructures): Changed to use descriptors.
3069 (ipa_edge_duplication_hook): Use the unused attribute.
3070 (ipa_node_duplication_hook): Use the unused attribute, changed to
3071 use descriptors, changed to duplicate descriptors.
3072
3073 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
3074 changed all callers. Call ipa_propagate_indirect_call_infos if doing
3075 indirect inlining. Made static.
4ae8027b 3076 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
f8e2a1ed
MJ
3077 functions called only once.
3078 (cgraph_decide_recursive_inlining): Don't call
3079 ipa_propagate_indirect_call_infos, pass new_edges to
3080 cgraph_mark_inline_edge instead.
3081 (cgraph_decide_inlining_of_small_functions): Don't call
3082 ipa_propagate_indirect_call_infos, pass new_edges to
3083 cgraph_mark_inline_edge instead.
3084 (cgraph_decide_inlining): Don't call
3085 ipa_propagate_indirect_call_infos.
3086 * ipa-prop.c: Check that vectors are allocated.
3087
3088 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
3089 iff a new cgraph edges have been created.
3090 (cgraph_decide_inlining): New variable redo_always_inline.
3091 Flattening and always_inlining loop until callgraph stabilizes.
3092 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
3093 true iff new cgraph edges have been created.
3094 (propagate_info_to_inlined_callees): Likewise.
3095 (ipa_propagate_indirect_call_infos): Likewise.
3096
420da8ca
RG
30972008-09-11 Richard Guenther <rguenther@suse.de>
3098
3099 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
3100 (set_prologue_iterations): Likewise.
3101 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3102 Likewise.
3103 (vect_update_init_of_dr): Likewise.
3104 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
3105 type verification.
3106 * fold-const.c (fold_unary): Do not generate calculations
3107 in sub-types.
3108
30821654
PB
31092008-09-11 Paolo Bonzini <bonzini@gnu.org>
3110
3111 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
3112 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
3113 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
3114
02bb8bce
UB
3115 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
3116 a bool.
30821654
PB
3117 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
3118 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
3119 before finalizing the changes.
3120 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
3121 for BIT_IOR_EXPR.
3122 (simplify_truth_ops_using_ranges): New.
3123 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
3124 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
3125 whether a simplification was made.
3126 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
3127 use a switch statement and also call simplify_truth_ops_using_ranges.
3128
cf975747
JH
31292008-09-11 Jan Hubicka <jh@suse.cz>
3130
3131 * ggc-common.c (loc_array): Make static.
3132 * dce.c (rest_of_handle_ud_dce): Free worklist.
3133
936fc9ba
JH
31342008-09-11 Jan Hubicka <jh@suse.cz>
3135
3136 * cgraph.c (cgraph_release_function_body): Plug memory leak on
02bb8bce
UB
3137 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
3138 function so we are sure we do not dangle it forever.
936fc9ba
JH
3139 * function.c (outer_function_chain, find_function_data): Remove.
3140 (function_context_stack): New.
3141 (push_function_context, pop_function_context): Update.
3142 * function.h (struct function): Remove pointer outer.
3143 (outer_function_chain, find_function_data): Remove.
3144 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
3145
b1d0a338
JH
31462008-09-11 Jan Hubicka <jh@suse.cz>
3147
3148 PR middle-end/37448
3149 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
3150
9e504cda
JH
31512008-09-11 Jan Hubicka <jh@suse.cz>
3152
3153 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
3154
a97a7ae9
JH
31552008-09-11 Jan Hubicka <jh@suse.cz>
3156
3157 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
3158 (free_var_map_entry): New function.
3159 (redirect_edge_var_map_destroy): Use it.
3160
4a283090
JH
31612008-09-11 Jan Hubicka <jh@suse.cz>
3162
3163 PR middle-end/37448
3164 * tree-inline.c (add_lexical_block): Replace with ...
3165 (prepend_lexical_block): ... prepend at begginig.
3166 (remap_blocks): Use it and reverse later.
3167 (expand_call_inline): Use prepend_lexical_block.
3168
a856e96f
JH
31692008-09-11 Jan Hubicka <jh@suse.cz>
3170
3171 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
3172
825b2fe7
JH
31732008-09-11 Jan Hubicka <jh@suse.cz>
3174
3175 * function.c (free_after_compilation): Call insn_locators_free.
3176 * cfglayout.c (insn_locators_free): New function.
3177 * rtl.h (insn_locators_free): Declare.
3178
11e0edad
JH
31792008-09-11 Jan Hubicka <jh@suse.cz>
3180
4ae8027b
UB
3181 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
3182 vector pointer.
11e0edad
JH
3183 (cond_move_process_if_block): Update call.
3184
d3492572
JH
31852008-09-11 Jan Hubicka <jh@suse.cz>
3186
3187 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
3188 * vec.c: Include hashtab.h
3189 (vec_descriptor, ptr_hash_entry): New structures.
3190 (vec_desc_hash, vec_ptr_map): New static variables.
3191 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
3192 register_overhead, free_overhead, vec_heap_free): New functions.
3193 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
3194 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
02bb8bce
UB
3195 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
3196 New functions.
d3492572 3197
3c9dbe18
IR
31982008-09-11 Ira Rosen <irar@il.ibm.com>
3199
3200 PR tree-optimization/37474
3201 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
3202 length of load permutation.
3203
5e9bd142
AS
32042008-09-11 Andreas Schwab <schwab@suse.de>
3205
3206 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
3207
d898d29b
JJ
32082008-09-11 Jakub Jelinek <jakub@redhat.com>
3209
3210 PR target/37382
3211 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
3212 * dse.c (find_shift_sequence): Use extract_low_bits instead of
3213 simplify_gen_subreg.
3214
5993860d
IR
32152008-09-11 Ira Rosen <irar@il.ibm.com>
3216
3217 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
3218 for alias check.
3219
a76ddc7b
JJ
32202008-09-10 Jakub Jelinek <jakub@redhat.com>
3221
0b056e4e
JJ
3222 PR middle-end/37338
3223 * gimplify.c (gimplify_body): Call default_rtl_profile.
3224
a76ddc7b
JJ
3225 PR target/36904
3226 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
3227 instead of tok->val.node if not expanding to something else. Handle
3228 intervening CPP_PADDING tokens.
3229 (altivec_categorize_keyword): Remove unneeded comparisons.
3230
b5d76df4
RG
32312008-09-10 Richard Guenther <rguenther@suse.de>
3232
3233 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
3234
bfb0b886
RG
32352008-09-10 Richard Guenther <rguenther@suse.de>
3236
3237 PR middle-end/37432
3238 * tree-inline.c (insert_init_stmt): Make sure to not
3239 insert invalid gimple stores.
3240
b70e9775
SP
32412008-09-10 Sebastian Pop <sebastian.pop@amd.com>
3242
3243 PR tree-optimization/37388
3244 * toplev.c (process_options): Fail and warn when graphite
3245 flags are used, but the compiler has not been configured
3246 with graphite libraries.
3247 * graphite.c (graphite_transform_loops): Remove printfs
3248 to dump_file for the case when graphite is not available.
3249
8199c8a8
L
32502008-09-10 H.J. Lu <hongjiu.lu@intel.com>
3251
3252 PR target/37434:
3253 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
3254 the even element into register.
3255 (ix86_expand_vector_init_general): Don't use
3256 ix86_expand_vector_init_interleave on V16QImode and V8HImode
3257 if we can't move from GPR to SSE register directly.
3258
90cbba02
BS
32592008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
3260
3261 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
3262 not lose track of the number of NOPs needed. Number of NOPs needed
3263 for sync vs. loads workaround was switched; corrected. Run second
3264 pass for all workarounds. No NOPs needed after call insns. Change
3265 second pass to use find_next_insn_start and find_load helpers in order
3266 to properly detect parallel insns.
3267 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
3268
99e395c7
JH
32692008-09-10 Jan Hubicka <jh@suse.cz>
3270
3271 * value-prof.c (gimple_ic): Fix tuplification bug.
4ae8027b
UB
3272 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
3273 var warning.
99e395c7 3274
6b672a29
JJ
32752008-09-10 Jakub Jelinek <jakub@redhat.com>
3276
3277 PR tree-optimization/37353
3278 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
3279 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
3280 calls instead of cond_dead_built_in_calls.
3281 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
3282 initalize the vector only before adding first entry. Use VEC_safe_push
3283 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
3284 shrink_wrap_conditional_dead_built_in_calls call.
3285
5392e447
IR
32862008-09-10 Ira Rosen <irar@il.ibm.com>
3287
3288 PR tree-optimization/37385
4e5821d3
UB
3289 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
3290 argument, and use it as a vector type if not NULL.
ea8bce02 3291 (vectorizable_store): Call vect_create_data_ref_ptr with the type of
5392e447 3292 vectorized rhs.
4e5821d3
UB
3293 (vect_setup_realignment): Call vect_create_data_ref_ptr with
3294 additional argument.
5392e447
IR
3295 (vectorizable_load): Likewise.
3296
4e7f50e5
JJ
32972008-09-10 Jakub Jelinek <jakub@redhat.com>
3298
3299 * config/i386/i386.md (SWI32): New mode iterator.
3300 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
3301 of SWI.
3302
c3c96e68
L
33032008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3304
3305 PR rtl-optimization/37435
3306 * caller-save.c (insert_restore, insert_save): Check the mode by
3307 reg_save_code.
3308
a2649528
JDA
33092008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3310
3311 PR other/37265
3312 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
3313 splay tree lookup.
3314 (dw2_output_indirect_constant_1): Use unstripped name in symbol
3315 reference.
3316
26cd0fcc
SL
33172008-09-09 Sandra Loosemore <sandra@codesourcery.com>
3318
ea8bce02 3319 * doc/invoke.texi (ARM Options): Correct errors in discussion
26cd0fcc
SL
3320 of -mfloat-abi, -mhard-float, and -msoft-float.
3321
c2a4718a
JJ
33222008-09-09 Jakub Jelinek <jakub@redhat.com>
3323 Jan Hubicka <jh@suse.cz>
3324
3325 PR middle-end/37356
3326 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
3327 calling gimple_regimplify_operands on it. Iterate over all newly
3328 added statements, not just the last one.
3329 (insert_init_stmt): Insert stmt into seq first, then call
3330 gimple_regimplify_operands on it. Don't create new gimplification
3331 context, nor find referenced vars.
3332
fd0a8853
JJ
33332008-09-09 Jakub Jelinek <jakub@redhat.com>
3334
e56f5f3e
JJ
3335 PR other/37419
3336 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
3337 to pointer to vector pointer.
3338 * ipa-prop.c (ipa_propagate_indirect_call_infos,
3339 propagate_info_to_inlined_callees): Likewise.
3340 (update_call_notes_after_inlining): Likewise. Push new indirect edge
3341 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
3342 ipa_check_create_edge_args.
4e5821d3
UB
3343 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
3344 argument to pointer to vector pointer.
e56f5f3e
JJ
3345 (cgraph_decide_inlining_of_small_function): Adjust
3346 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
3347 calls.
3348
71aaa2ff 3349 PR target/37438
02bb8bce
UB
3350 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
3351 optimizing for size, not speed.
71aaa2ff 3352
fd0a8853
JJ
3353 PR rtl-optimization/37408
3354 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
3355 if parm is promoted.
3356
a213b219
SP
33572008-09-09 Sebastian Pop <sebastian.pop@amd.com>
3358
3359 PR tree-optimization/37375
02bb8bce
UB
3360 * tree-scalar-evolution.c (scev_info_str): Add field
3361 instantiated_below.
a213b219
SP
3362 (new_scev_info_str, eq_scev_info, find_var_scev_info,
3363 set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
3364 set_instantiated_value): Pass instantiated_below.
02bb8bce
UB
3365 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
3366 to above functions.
4ae8027b
UB
3367 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
3368 the definitions are not instantiated.
a213b219
SP
3369
3370 * tree-scalar-evolution.h (instantiate_scev): Update declaration.
3371 (block_before_loop): New.
02bb8bce
UB
3372 * tree-data-ref.c (dr_analyze_indices): Update uses of
3373 instantiate_scev.
a213b219 3374 * graphite.c (block_before_scop): New.
ea8bce02 3375 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
a213b219
SP
3376 basic block, not a loop for determining the parameters.
3377 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
3378 scop.
3379 (idx_record_params, find_params_in_bb, find_scop_parameters,
ea8bce02 3380 build_loop_iteration_domains, add_conditions_to_domain): Update calls
a213b219
SP
3381 to instantiate_scev.
3382
3383 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
3384
854bd721
VM
33852008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3386
3387 PR rtl-opt/37333
ea8bce02 3388
854bd721
VM
3389 * ira-build.c (ira_create_allocno): Setup frequency to 0.
3390
3391 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
3392 Check zero freq and increase if necessary.
3393
496071ca
VM
33942008-09-09 Vladimir Makarov <vmakarov@redhat.com>
3395
3396 * ira-conflicts.c (process_regs_for_copy): Check that the hard
3397 regno is in the right range. Add comments.
3398
1f57487c
RO
33992008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3400
3401 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
3402 warnings.
3403 * mips-tfile.c (copy_object): Cast alloca result to int *.
3404 * mips-tdump.c (print_symbol): Cast xmalloc return values to
3405 proper types.
3406 Rename class to sclass.
3407 (read_tfile): Cast read_seek return values to proper types.
3408 Cast xcalloc return value to proper type.
3409
00efcc2b
RO
34102008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3411
3412 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
3413 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
3414 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
3415
0b576703
JH
34162008-09-09 Jan Hubicka <jh@suse.cz>
3417
4ae8027b
UB
3418 * profile.c (is_edge_inconsistent): Add debug output; ignore
3419 negative count on fake edges.
0b576703
JH
3420 (is_inconsistent): Add debug output.
3421
9c575182
AB
34222008-09-09 Andrey Belevantsev <abel@ispras.ru>
3423
3424 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
3425 dump message.
3426 (choose_ready): When first insn is chosen from the ready list, also
3427 dump it.
3428
bff5a22d
AB
34292008-09-09 Andrey Belevantsev <abel@ispras.ru>
3430
8199c8a8 3431 PR rtl-optimization/37360
bff5a22d
AB
3432 * haifa-sched.c (max_issue): Do not assert that we never issue more
3433 insns than issue_rate. Add comment.
ea8bce02 3434
b59d3976
RG
34352008-09-09 Richard Guenther <rguenther@suse.de>
3436
3437 * tree-cfg.c (verify_types_in_gimple_op): Remove.
3438 (verify_types_in_gimple_call): Rename to ...
3439 (verify_gimple_call): ... this. Enhance.
3440 (verify_types_in_gimple_cond): Remove.
3441 (verify_gimple_comparison): New function ...
3442 (verify_types_in_gimple_assign): ... split out from here.
3443 (verify_types_in_gimple_return): Rename to ...
3444 (verify_gimple_return): ... this. Enhance.
3445 (verify_types_in_gimple_switch): Rename to ...
3446 (verify_gimple_switch): ... this. Enhance.
3447 (verify_gimple_goto): New function.
3448 (verify_types_in_gimple_phi): Rename to ...
3449 (verify_gimple_phi): ... this. Enhance.
3450 (verify_types_in_gimple_stmt): Adjust calls to helper functions.
3451 Fold in single-statement cases from verify_types_in_gimple_seq_2.
3452 (verify_types_in_gimple_seq_2): Remove cases handled in
3453 verify_types_in_gimple_stmt.
3454
22fb24d5
BS
34552008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
3456
3457 * config/bfin/bfin.c (n_regs_to_save): New static variable.
3458 (push_multiple_operation, pop_multiple_operation): Set it.
3459 (workaround_rts_anomaly): New function.
3460 (workaround_speculation): New function, broken out of bfin_reorg.
3461 (bfin_reorg): Call the new functions.
3462
8b17cc05
RG
34632008-09-09 Richard Guenther <rguenther@suse.de>
3464
3465 PR middle-end/37354
3466 PR middle-end/30165
3467 * gimplify.c (gimplify_conversion): Change conversions of
3468 non-register type to VIEW_CONVERT_EXPRs.
3469 (gimplify_addr_expr): If we need to make the operand
3470 addressable make sure to use a properly initialized
3471 temporary for that so it gets a valid gimple store.
3472
1751ecd6
AH
34732008-09-09 Aldy Hernandez <aldyh@redhat.com>
3474
3475 * function.h (struct function): Add function_start_locus.
3476 * cfgexpand.c (gimple_expand_cfg): Use it.
3477 * c-parser.c (c_parser_declaration_or_fndef): Set it.
3478
a135b1c4
RG
34792008-09-09 Richard Guenther <rguenther@suse.de>
3480
3481 PR tree-optimization/37433
3482 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
3483 function calls.
3484
6e548df5
RG
34852008-09-09 Richard Guenther <rguenther@suse.de>
3486
3487 PR tree-optimization/37387
3488 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
3489 and bits to a common type.
3490
108faf87
NC
34912008-09-09 Nick Clifton <nickc@redhat.com>
3492
3493 * config/v850/v850.md (return): Restore frame size restriction.
3494
0c03f46f
PB
34952008-09-09 Paolo Bonzini <bonzini@gnu.org>
3496
3497 * c-common.c (c_expand_decl): Remove.
3498 * c-common.h (anon_aggr_type_p): Remove prototype.
3499 (DECL_ANON_UNION_ELEMS): Remove.
3500 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
3501 * c-decl.c (anon_aggr_type_p): Remove.
3502 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
3503 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
3504 * langhooks.h (struct lang_hooks): Remove expand_decl.
3505 * langhooks.c (lhd_expand_decl): Remove.
3506 * stmt.c (expand_anon_union_decl): Remove.
3507 * tree.h (expand_anon_union_decl): Remove prototype.
3508
3d709466
AH
35092008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
3510
3511 PR target/36609
3512 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
3513 zero.
3514 * config/avr/avr.md (QISI) : Define mode iterator.
3515 (negated_tst<mode>) : Redefine as split using mode macro.
3516 (reversed_tstqi): Define insn as reversed compare with zero.
3517 (reversed_tsthi): Ditto.
3518 (reversed_tstsi): Ditto.
3519
7f4b6d20
JJ
35202008-09-08 Jakub Jelinek <jakub@redhat.com>
3521
9cfa22be
JJ
3522 PR middle-end/37393
3523 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
3524 call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
3525
7f4b6d20
JJ
3526 PR middle-end/37414
3527 * predict.c (optimize_function_for_size_p): Don't segfault if
3528 FUN is NULL.
3529 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
3530 tree_swap_operands_p): Don't test cfun != NULL before calling
3531 optimize_function_for_s*_p.
3532
99b96649
EB
35332008-09-08 Eric Botcazou <ebotcazou@adacore.com>
3534
3535 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
3536 end of the search.
3537
37022b7c
SR
35382008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
3539
3540 * crx/crx.h (IRA_COVER_CLASSES): Define.
3541
c5cac099
JJ
35422008-09-08 Jakub Jelinek <jakub@redhat.com>
3543
3544 PR middle-end/37337
3545 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
3546 even when a stmt has been gimple_modified_p, but after fold_stmt is
3547 not any longer. Remove unneeded may_have_exposed_new_symbols
3548 initializations.
3549
7220ca2b
RG
35502008-09-08 Richard Guenther <rguenther@suse.de>
3551
3552 PR tree-optimization/37421
3553 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
3554 valueize the RHS.
3555
37aaba15
JJ
35562008-09-08 Jakub Jelinek <jakub@redhat.com>
3557
3558 PR middle-end/37415
3559 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
3560
d9de9cad
JDA
35612008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3562
3563 PR driver/37409
3564 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
3565 * pa-hpux10.h (LINK_SPEC): Likewise.
3566 * pa-hpux11.h (LINK_SPEC): Likewise.
bcb455ba 3567
be2f06ed
JDA
35682008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3569
3570 * pa32-regs.h (IRA_COVER_CLASSES): Define.
3571 * pa64-regs.h (IRA_COVER_CLASSES): Define.
3572
d6ab7b03
HD
35732008-09-07 Helge Deller <deller@gmx.de>
3574
8199c8a8 3575 * pa/linux-atomic.c: New file.
d6ab7b03
HD
3576 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
3577 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
3578
73356a7d 35792008-09-07 Richard Guenther <rguenther@suse.de>
8199c8a8 3580 Ira Rosen <irar@il.ibm.com>
73356a7d
RG
3581
3582 PR tree-optimization/36630
3583 * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
3584 Call STRIP_NOPS before calling evolution_part_in_loop_num.
3585
cc54af20 35862008-09-07 Dorit Nuzman <dorit@il.ibm.com>
8199c8a8 3587 Ira Rosen <irar@il.ibm.com>
cc54af20
DN
3588
3589 PR tree-optimization/35642
3590 * config/rs6000/altivec.md (mulv8hi3): Implement.
3591
f8505a36
JL
35922008-09-06 Jeff Law <law@redhat.com>
3593
37022b7c 3594 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
f8505a36 3595
b91bc349
JH
35962008-09-06 Jan Hubicka <jh@suse.cz>
3597
3598 PR tree-optimization/14703
4ae8027b
UB
3599 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
3600 declarations.
b91bc349
JH
3601 * passes.c (init_optimization_passes): Recompute inline parameters.
3602
cf900097
RS
36032008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3604
3605 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
3606 DECL being null.
3607
4d210b07
RS
36082008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
3609 Peter Fuerst <post@pfrst.de>
3610
3611 * doc/invoke.texi: Document -mr10k-cache-barrier=.
3612 * doc/extend.texi: Document __builtin_mips_cache.
3613 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
3614 * config/mips/mips.opt (mr10k-cache-barrier=): New option.
3615 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3616 __GCC_HAVE_BUILTIN_MIPS_CACHE.
3617 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
3618 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
3619 (set_push_mips_isas): New variable.
3620 (mips_r10k_cache_barrier): New variable.
3621 (cache): New availability predicate.
3622 (mips_builtins): Add an entry for __builtin_mips_cache.
3623 (mips_build_cvpointer_type): New function.
3624 (MIPS_ATYPE_CVPOINTER): New macro.
3625 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
3626 mode is VOIDmode.
3627 (r10k_simplified_address_p, r10k_simplify_address)
3628 (r10k_uncached_address_p, r10k_safe_address_p)
3629 (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
3630 (r10k_needs_protection_p_call, r10k_needs_protection_p)
3631 (r10k_insert_cache_barriers): New functions.
3632 (mips_reorg_process_insns): Delete cache barriers after a
3633 branch-likely instruction.
3634 (mips_reorg): Call r10k_insert_cache_barriers.
3635 (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
3636 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
3637 (UNSPEC_R10K_CACHE_BARRIER): Likewise.
3638 (mips_cache, r10k_cache_barrier): New define_insns.
3639
4f341ea0
RS
36402008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
3641
3642 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3643 * ira-color.c (setup_allocno_left_conflicts_num): Use
3644 hard_reg_set_equal_p instead of a comparison with
3645 ira_zero_hard_reg_set.
3646 * ira.c (setup_reg_subclasses): Likewise.
3647 (setup_cover_and_important_classes): Likewise.
3648 (setup_class_translate): Likewise.
3649 (setup_reg_class_intersect_union): Likewise.
3650 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
3651 (ira_init_once): Don't initialize them.
3652
af9253a1
VM
36532008-09-05 Vladimir Makarov <vmakarov@redhat.com>
3654
3655 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
3656
36572008-09-05 Vladimir Makarov <vmakarov@redhat.com>
6b8d9676 3658
4ae8027b
UB
3659 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
3660
9dcc2e87
TS
36612008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3662
3663 Improved branch hints, safe hints, and scheduling.
3664
3665 * haifa-sched.c (sched_emit_insn) : Define.
3666 * sched-int.h (sched_emit_insn) : Add prototype.
3667 * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
3668 -mhint-max-distance -msafe-hints) : Document.
3669 * config/spu/spu.c (spu_flag_var_tracking): New.
3670 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
3671 TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
3672 TARGET_ASM_FILE_START): Define.
3673 (TARGET_SCHED_ADJUST_PRIORITY): Remove.
3674 (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
3675 (spu_emit_branch_hint): Add blocks argument.
3676 (insert_branch_hints, insert_nops): Remove.
3677 (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
3678 uses_ls_unit, spu_sched_init_global, spu_sched_init,
3679 spu_sched_reorder, asm_file_start): New functions.
3680 (clock_var, spu_sched_length, pipe0_clock,
3681 pipe1_clock, prev_clock_var, prev_priority,
3682 spu_ls_first, prev_ls_clock): New static variables.
3683 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
3684 * config/spu.md (iprefetch): Add operand, make it clobber MEM.
3685 (nopn_nv): Add a non-volatile version of nop.
3686 * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
3687 -mhint-max-distance, -msafe-hints): New options.
3688
93a4f5e0
JJ
36892008-09-05 Janis Johnson <janis187@us.ibm.com>
3690 Samuel Tardieu <sam@rfc1149.net>
3691
5ffebee7
JJ
3692 * opts.c (decode_options): Combine nested if statements.
3693
93a4f5e0
JJ
3694 PR target/37283
3695 * opts.c (decode_options): Handle more relationships among
3696 unit-at-a-time, toplevel-reorder, and section-anchors.
3697
c07cd2c7
DD
36982008-09-05 David Daney <ddaney@avtrex.com>
3699
3700 * doc/install.texi (--enable-reduced-reflection): Document new option.
3701
37fbe8a3
BW
37022008-09-05 Bob Wilson <bob.wilson@acm.org>
3703
3704 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
3705 constantpool_mem_p.
3706 (constantpool_operand): New.
3707 (move_operand): Disallow sub-word modes for the constant pool.
3708 * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
3709 (xtensa_secondary_reload_class): Replace with....
ea8bce02 3710 (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
37fbe8a3
BW
3711 Set icode for sub-word reloads from the constant pool.
3712 * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
3713 (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3714 * config/xtensa/xtensa.md (reload<mode>_literal): New.
3715 * config/xtensa/xtensa-protos.h: Update prototypes.
ea8bce02 3716
7314c7dd
JM
37172008-09-05 Joseph Myers <joseph@codesourcery.com>
3718
3719 * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
3720 (REG_CLASS_NAMES): Update.
3721 (REG_CLASS_CONTENTS): Update.
3722 * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
3723 of ALL_REGS for regs 77 and 78.
3724 * function.c (instantiate_virtual_regs_in_insn): Assert that
3725 return value of simplify_gen_subreg is not NULL.
3726
80379f51
PB
37272008-09-05 Paolo Bonzini <bonzini@gnu.org>
3728
3729 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
3730 (gen_rtvec_v): Fix coding standards.
3731
0cf9dcf8
JH
37322008-09-04 Jan Hubicka <jh@suse.cz>
3733
3734 * i386.c (decide_alg): Be more conservative about optimizing for size.
3735
84320b0b
ILT
37362008-09-04 Ian Lance Taylor <iant@google.com>
3737
3738 * varasm.c (narrowing_initializer_constant_valid_p): New
3739 static function.
3740 (initializer_constant_valid_p): Call it.
3741
54193313
JL
37422008-09-04 Jeff Law <law@redhat.com>
3743
3744 * fold-const.c (native_encode_real): Fix computation of WORDS.
3745 (native_interpret_real): Likewise.
3746
7fab7e16
JJ
37472008-09-04 Janis Johnson <janis187@us.ibm.com>
3748
3749 * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
3750
4cda38d5
VM
37512008-09-04 Vladimir Makarov <vmakarov@redhat.com>
3752
3753 * ira-conflicts.c (process_regs_for_copy): Check insn to check
3754 that the cost is already taken into account in ira-costs.c
3755
3756 * ira-int.h (ira_debug_copy, ira_debug_copies): New.
3757
3758 * ira-build.c (print_copy, print_copies, ira_debug_copy,
3759 ira_debug_copies): New.
3760 (ira_bulid): Call print_copies.
ea8bce02 3761
4cda38d5 3762 * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
ea8bce02 3763
2f3b0d4a
ST
37642008-09-04 Samuel Tardieu <sam@rfc1149.net>
3765
3766 PR target/32783
3767 * config/rs6000/rs6000.c (optimization_options): Remove check of
3768 flag_toplevel_order.
3769
5299815b
AN
37702008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3771
3772 * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
3773 * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
3774 second operand is a reg_imm10_operand.
3775 * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
3776 *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
3777 (*seq_<GPR:mode><GPR2:mode>): Rename to
3778 *seq_zero_<GPR:mode><GPR2:mode>. Don't match if
3779 ISA_HAS_SEQ_SNE.
3780 (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
3781 *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
3782 ISA_HAS_SEQ_SNE.
3783 (*sne_<GPR:mode><GPR2:mode>): Rename to
3784 *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
3785 ISA_HAS_SEQ_SNE.
3786
c8424132
AN
37872008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3788
3789 * config/mips/mips.h (ISA_HAS_EXTS): New macro.
3790 * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
3791 combining an arithmetic right shift by more than 31 and a
3792 trunction. Don't match for out-of-range shift amounts. Set
3793 attribute mode to <MODE>.
3794 (*lshr32_trunc<mode>): Name the pattern combining a logical right
3795 shift by 32 and and a truncation. Set attribute mode to <MODE>.
3796 (*<optab>_trunc<mode>_exts): New pattern for truncated right
3797 shifts by less than 32.
3798 (extv): Change predicate on first operand to accept registers.
3799 Change predicate of the other operands from immediate_operand to
3800 const_int_operand. Expand exts when source is a register.
3801 (extzv): Change predicate of the constant operands from
3802 immediate_operand to const_int_operand.
3803 (extzv<mode>): Change predicate of the constant operands from
3804 immediate_operand to const_int_operand and no constraint. Also
3805 remove mode.
3806 (*extzv_trunc<mode>_exts): New pattern.
3807
49912bcd
AN
38082008-09-04 Adam Nemet <anemet@caviumnetworks.com>
3809
3810 * config/mips/mips.h (ISA_HAS_CINS): New macro.
3811 * config/mips/mips-protos.h (mask_low_and_shift_p,
3812 mask_low_and_shift_len): Declare.
3813 * config/mips/mips.c (mask_low_and_shift_p,
3814 mask_low_and_shift_len): New functions.
3815 (mips_print_operand): Handle new operand prefix "m".
3816 * config/mips/mips.md (*cins<mode>): New pattern.
3817
a524985e
BS
38182008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
3819
3820 * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
3821 optimizing for size.
3822
1d489435
RS
38232008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
3824
3825 * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
3826 regardless of epilogue_completed.
3827
5feec5c1
VM
38282008-09-04 Vladimir Makarov <vmakarov@redhat.com>
3829
3830 PR middle-end/37359
3831 * ira-lives.c (process_bb_node_lives): Check setjmp.
3832
acb37d29
RS
38332008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
3834
3835 PR middle-end/37243
3836 * ira-build.c (form_loop_tree): Reverse BB walk.
3837 (create_bb_allocnos): Likewise.
3838 * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
3839 (mark_reg_store): Rename to...
3840 (mark_ref_live): ...this and take a df_ref argument instead of
3841 note_stores arguments. Assert that we have a register.
3842 (mark_reg_clobber): Delete.
3843 (def_conflicts_with_inputs_p): New function.
3844 (mark_reg_conflicts): Delete.
3845 (mark_reg_death): Rename to...
3846 (mark_ref_dead): ...this and take a df_ref argument instead of
3847 a register. Assert that we have a register.
3848 (process_bb_node_lives): Hoist frequency calculation out of
3849 instruction walk. Convert from a forwards scan to a backwards scan.
3850 Use DF_REF_USES and DF_REF_DEFS instead of register notes and
3851 note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling.
3852 (create_allocno_live_ranges): Don't create regs_set.
3853
e0c68ce9
ILT
38542008-09-04 Ian Lance Taylor <iant@google.com>
3855
3856 * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
3857 or REG_LABEL_TARGET.
3858 * calls.c (emit_library_call_value_1): Use MEM_P rather than
3859 comparing MODE with MEM.
3860 * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
3861 comparing with GF_PREDICT_TAKEN.
3862 (gimple_get_lhs): Change code to enum gimple_code.
3863 (gimple_set_lhs): Likewise.
3864 * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
3865 * omp-low.c (find_omp_clause): Change kind parameter to enum
3866 omp_clause_code.
3867 * tree-flow.h (find_omp_clause): Update declaration.
3868 * regrename.c (clear_dead_regs): Change kind parameter to enum
3869 reg_note.
3870 * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
3871 GET_MODE.
3872 * see.c (see_get_extension_data): Change return type to enum
3873 entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
3874 SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
3875 (see_gen_normalized_extension): Change extension_code parameter to
3876 enum entry_type.
3877 (see_seek_pre_extension_expr): Change extension_code to enum
3878 entry_type.
3879 (see_merge_one_def_extension): Likewise.
3880 (see_handle_relevant_defs): Likewise.
3881 (see_handle_relevant_uses): Likewise.
3882 (see_analyze_one_def): Likewise.
3883 * tree-cfg.c (need_fake_edge_p): Compare gimple code with
3884 GIMPLE_ASM rather than ASM_EXPR.
3885 * tree-ssa-alias.c (is_escape_site): Compare gimple code with
3886 GIMPLE_RETURN rather than RETURN_EXPR.
3887 * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
3888 (evaluate_stmt): Likewise.
3889 * tree-vect-analyze.c (vect_analyze_operations): Change relevance
3890 to enum vect_relevant.
3891 (vect_mark_stmts_to_be_vectorized): Change assertion to not
3892 compare gimple codes with tree codes.
3893
71062f1e
PB
38942008-09-04 Paul Brook <paul@codesourcery.com>
3895
3896 * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
3897
d8612738
BS
38982008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
3899
3900 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
3901 pointer check lost in the recent no-unit-at-a-time patch.
ea8bce02 3902
d7f2fbf6
JH
39032008-09-04 Jan Hubicka <jh@suse.cz>
3904
3905 PR middle-end/37343
3906 * tree-switch-conversion.c (check_final_bb): Accept only IP
3907 invariants.
3908
6b99f156
JH
39092008-09-04 Jan Hubicka <jh@suse.cz>
3910
3911 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
3912 Break out from ...
3913 (vrp_evaluate_conditional_warnv_with_ops): ... this one. Add
3914 using_ranges argument.
3915 (vrp_evaluate_conditional): Avoid bogus warning for type range.
3916 (vrp_visit_cond_stmt): Update call of
3917 vrp_evaluate_conditional_warnv_with_ops
3918
4db15d75
JH
39192008-09-04 Jan Hubicka <jh@suse.cz>
3920
3921 PR tree-optimization/37345
3922 PR tree-optimization/37358
3923 PR tree-optimization/37357
3924 * tree.c (build_function_type_skip_args): Build distinct type copy;
3925 set TYPE_CONTEXT.
3926 (build_function_decl_skip_args): Set type of new decl not orig decl;
3927 clear DECL_VINDEX for methods turned into functions.
3928
28e6bb13
NC
39292008-09-04 Nick Clifton <nickc@redhat.com>
3930
4ae8027b 3931 * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
28e6bb13
NC
3932 * configure: Regenerate.
3933 * config.in: Regenerate.
3934 * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
3935 alignment field, if it is supported.
3936
48253184
KT
39372008-09-04 Kai Tietz <kai.tietz@onevision.com>
3938
3939 * config/i386/t-mingw32 (SHLIB_LC): Change order of import
3940 libraries.
3941
0783d48d
DE
39422008-09-03 David Edelsohn <edelsohn@gnu.org>
3943
3944 * config/rs6000/rs6000.c (processor_target_table): Do not
3945 enable VMX for POWER6.
3946
39472008-09-03 Anton Blanchard <anton@samba.org>
3948
3949 * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
3950 emit memory barrier before operation.
3951
d1fe519c
JDA
39522008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca>
3953
3954 PR testsuite/37325
3955 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
3956 default_elf_asm_output_external.
3957
bc9b880c
JL
39582008-09-03 Jeff Law <law@redhat.com>
3959
3960 * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
3961
27738602
RH
39622008-09-03 Richard Henderson <rth@redhat.com>
3963
3964 * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
3965 memory barrier to below the test-and-set.
3966 (alpha_split_lock_test_and_set_12): Likewise.
3967
49d988e7
VM
39682008-09-03 Vladimir Makarov <vmakarov@redhat.com>
3969
3970 PR rtl-opt/37243
3971
3972 * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
3973 all_allocnos.
3974
3975 * ira-color.c (print_loop_title): Use all_allocnos.
3976 (color_pass): Ditto. Don't add border_allocnos. Check that
3977 subloop allocno in the correspdoning bitmap all_allocnos.
3978
3979 * ira-emit.c (change_loop): Use all_allocnos.
3980
b7f58d5d
UB
3981 * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
3982 (ira_create_allocno): Set up all_allocnos bit for the created allocno.
49d988e7
VM
3983 (create_cap_allocno): Remove setting mentioned_allocnos.
3984 (create_insn_allocnos): Ditto.
3985 (remove_unnecessary_allocnos): Use all_allocnos.
3986 (check_allocno_creation): Check that allocnos are in the
3987 corresponding bitmap all_allocnos.
ea8bce02 3988
a7f32992
VM
39892008-09-03 Vladimir Makarov <vmakarov@redhat.com>
3990
3991 PR rtl-opt/37243
ea8bce02 3992
a7f32992
VM
3993 * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
3994 (process_regs_for_copy): Process subregs. Refine check when cost
3995 is taken into account in ira-costs.c.
3996 (process_reg_shuffles): Use REG_SUBREG_P.
3997 (add_insn_allocno_copies): Ditto. Ignore modes.
3998
3999 * ira-color.c (conflict_allocno_vec): New.
4000 (COST_HOP_DIVISOR): New macro.
4001 (update_copy_costs_1): Use it.
4002 (update_conflict_hard_regno_costs): New function.
4003 (assign_hard_reg): Use it.
4004 (ira_color): Allocate and free conflict_allocno_vec.
ea8bce02 4005
204853a7
VM
40062008-09-03 Vladimir Makarov <vmakarov@redhat.com>
4007
4008 PR rtl-opt/37296
4009
4010 * ira-int.h (ira_sort_insn_chain): Remove.
4011
4012 * ira.c (basic_block_order_nums, chain_insn_order,
4013 chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
4014 (ira): Don't call ira_sort_insn_chain.
4015
4016 * reload1.c (reload): Don't call ira_sort_insn_chain.
4017
c0ab1df3
AP
40182008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
4019
4020 PR middle-end/37293
4021 * cgraphunit.c (update_call_expr): Remove eh regions from statements
4022 which become non throw.
4023 (cgraph_function_versioning): Also clear DECL_WEAK. Call
4024 update_call_expr after updating the flags on the decl.
4025
39ecc018
JH
40262008-09-03 Jan Hubicka <jh@suse.cz>
4027
4028 PR tree-optimization/37315
4029 * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
4030 * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
4031 (cgraph_analyze_functions): Use node->analyzed
4032 (cgraph_mark_functions_to_output): Likewise.
4033 (cgraph_expand_function): All functions can be released after
4034 expanding.
4035 (cgraph_optimize): Use gimple_has_body_p.
4036 * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
4037 (cgraph_decide_inlining_incrementally): Likewise.
4038 (inline_transform): Inline transform.
4039 * tree-inline.c (initialize_cfun): Do now shallow copy structure;
4040 copy fields needed.
4041 (inlinable_function_p): Drop gimple_body check.
4042 (expand_call_inline): Use gimple_has_body_p.
4043 * gimple.c (gimple_has_body_p): New.
4044 * gimple.h (gimple_has_body_p): Add prototype.
4045 * tree-cfg.c (execute_build_cfg): Remove gimple_body.
4046 (dump_function_to_file): Use gimple_has_body_p check.
4047
05a26161
JJ
40482008-09-03 Jakub Jelinek <jakub@redhat.com>
4049
169e477d 4050 PR c++/37346
05a26161
JJ
4051 * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
4052 substatements.
4053 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
4054
a6340be1
BS
40552008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
4056
4057 From Michael Frysinger <michael.frysinger@analog.com>
4058 * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
4059 bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549. Add 0.2
4060 for bf538.
4061
358da97e
HS
40622008-09-03 Hari Sandanagobalane <hariharan@picochip.com>
4063
4064 Add picoChip port.
4065 * doc/extend.texi: Document picoChip builtin functions.
4066 * doc/invoke.texi: Document picoChip options.
4067 * doc/contrib.texi: Add picoChip contribution.
4068 * doc/md.texi: Document picoChip constraints.
4069 * config.gcc: Add picochip-*-*.
4070 * config/picochip/: Add new port.
4071
44299c96
RG
40722008-09-03 Richard Guenther <rguenther@suse.de>
4073
4074 PR tree-optimization/37328
4075 * tree-sra.c (sra_build_assignment): Gimplify properly.
4076 (generate_copy_inout): Take the correct stmt as definition,
4077 remove bogus assert.
4078
3b62f0e1
BS
40792008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
4080
4081 * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
4082 attributes.
4083
829dbae5
BS
4084 From Michael Frysinger <michael.frysinger@analog.com>
4085 * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
4086
fea16f81
DS
40872008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
4088
4ae8027b 4089 * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
fea16f81 4090 (__gthread_setspecific): Revert 2008-08-31 change to
4ae8027b 4091 __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case.
fea16f81 4092
a63068b6
AH
40932008-09-02 Aldy Hernandez <aldyh@redhat.com>
4094
4095 * diagnostic.c (error_at): New.
4096 * toplev.h (error_at): New prototype.
4097 * c-typeck.c (build_array_ref): Call error_at instead of error.
4098 Pass location to pedwarn.
4099
a20d7130
AN
41002008-09-02 Adam Nemet <anemet@caviumnetworks.com>
4101
13eaee4a 4102 * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
a20d7130 4103
dd4bf866
JJ
41042008-09-02 Jakub Jelinek <jakub@redhat.com>
4105
4106 * dwarf2out.c (tree_add_const_value_attribute): Only handle
4107 VAR_DECL and CONST_DECL.
4108
4aab97f9
L
41092008-09-02 H.J. Lu <hongjiu.lu@intel.com>
4110 Jakub Jelinek <jakub@redhat.com>
4111
4112 * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
4113 (setup_incoming_varargs_64): Assume cum != NULL. Set/check
4114 ix86_varargs_gpr_size and ix86_varargs_fpr_size. Use
4115 ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
4116 Don't set ix86_save_varrargs_registers.
4117 (ix86_setup_incoming_varargs): Assume cum != NULL.
4118 (ix86_va_start): Check ix86_varargs_gpr_size and
4119 ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
4120 cfun->va_list_fpr_size, respectively. Subtract 8*X86_64_REGPARM_MAX
4121 from frame pointer if ix86_varargs_gpr_size == 0.
4122 (ix86_compute_frame_layout): Updated.
4123 * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
4124 (ix86_varargs_gpr_size): Define.
4125 (ix86_varargs_fpr_size): Likewise.
4126 (machine_function): Remove save_varrargs_registers.
4127 Add varargs_gpr_size and varargs_fpr_size.
4128
c83c7e7e
JJ
41292008-09-02 Jakub Jelinek <jakub@redhat.com>
4130
777b1fbe
JJ
4131 * config/alpha/alpha.c (va_list_skip_additions,
4132 alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
4133 (alpha_gimplify_va_arg): Call unshare_expr on second use of
4134 offset_field.
4135
833ee764
JJ
4136 PR tree-optimization/36766
4137 * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
4138 for already removed basic blocks.
4139
c83c7e7e
JJ
4140 PR target/36332
4141 * real.c (real_maxval): Clear a lower bit to make real_maxval
4142 match get_max_float for IBM long double format.
4143
75c9cbe3
AS
41442008-09-02 Andreas Schwab <schwab@suse.de>
4145
4146 * configure.ac: Use m4_quote to quote the expansion of m4_do.
4147 * configure: Regenerate.
4148
dd59ef13
RS
41492008-09-02 Richard Sandiford <rdsandiford@googlemail.com>
4150
4151 * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
4152 SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
4153 checking for a non-VOID CONSTANT_P.
4154
0d77cc6c
JH
41552008-09-02 Jan Hubicka <jh@suse.cz>
4156
edcfeaee 4157 * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
4ae8027b
UB
4158 * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
4159 sdiv_pow2_cheap
0d77cc6c 4160
e0978eba
L
41612008-09-02 H.J. Lu <hongjiu.lu@intel.com>
4162
4163 * expr.c (emit_group_store): Don't assert stack temp mode size.
4164
b328f3af
SP
41652008-09-02 Sebastian Pop <sebastian.pop@amd.com>
4166 Tobias Grosser <grosser@fim.uni-passau.de>
4167 Jan Sjodin <jan.sjodin@amd.com>
4168 Harsha Jagasia <harsha.jagasia@amd.com>
4169 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
4170 Konrad Trifunovic <konrad.trifunovic@inria.fr>
4171 Adrien Eliche <aeliche@isty.uvsq.fr>
4172
4173 Merge from graphite branch.
4174 * graphite.c: New.
4175 * graphite.h: New.
4176 * tree-loop-linear.c (perfect_loop_nest_depth): Export.
4177 * doc/invoke.texi (-floop-block, -floop-interchange,
4178 -floop-strip-mine): Document new flags.
4179 * tree-into-ssa.c (gimple_vec): Moved...
4180 * tree-loop-distribution.c (rdg_component): Moved...
4181 * cfgloopmanip.c: Include tree-flow.h.
4182 (update_dominators_in_loop): New.
4183 (create_empty_if_region_on_edge): New.
4184 (create_empty_loop_on_edge): New.
4185 (loopify): Use update_dominators_in_loop.
4186 * tree-pass.h (pass_graphite_transforms): Declared.
4187 * configure: Regenerate.
4188 * tree-phinodes.c (make_phi_node): Export.
4189 (add_phi_node_to_bb): New, split from create_phi_node.
4190 * tree-chrec.c (for_each_scev_op): New.
4191 * tree-chrec.h (for_each_scev_op): Declared.
4192 * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
4193 (remove_statement): Call get_phi_with_result.
4194 * config.in (HAVE_cloog): Undef.
4195 * gdbinit.in (pgg): New.
4196 * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
4197 * tree-ssa-loop.c (graphite_transforms): New.
4198 (gate_graphite_transforms): New.
4199 (pass_graphite_transforms): New.
4200 * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
4201 HAVE_cloog): Defined.
4202 * tree-vectorizer.c (rename_variables_in_bb): Export.
4203 * tree-data-ref.c (dr_may_alias_p): Export.
4204 (stmt_simple_memref_p): New.
4205 (find_data_references_in_stmt): Export.
4206 (find_data_references_in_loop): Export.
4207 (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
4208 (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
4209 (create_rdg_vertices): Export.
4210 (build_empty_rdg): New.
4211 (build_rdg): Call build_empty_rdg. Free dependence_relations.
4212 * tree-data-ref.h (rdg_component): ... here.
4213 (scop_p): New.
4214 (struct data_reference): Add a field scop.
4215 (DR_SCOP): New.
4216 (find_data_references_in_loop): Declared.
4217 (find_data_references_in_stmt): Declared.
4218 (create_rdg_vertices): Declared.
4219 (dr_may_alias_p): Declared.
4220 (stmt_simple_memref_p): Declared.
4221 (struct rdg_edge): Add a field ddr_p relation.
4222 (build_empty_rdg): Declared.
4223 * lambda.h (lambda_matrix): Declare a VEC of.
4224 (find_induction_var_from_exit_cond): Declared.
4225 (lambda_vector_compare): New.
4226 * common.opt (fgraphite, floop-strip-mine,
4227 floop-interchange, floop-block): New flags.
4228 * lambda-code.c (find_induction_var_from_exit_cond): Export.
4229 * cfgloop.c (is_loop_exit): New.
4230 * cfgloop.h (is_loop_exit): Declared.
4231 (create_empty_if_region_on_edge): Declared.
4232 (create_empty_loop_on_edge): Declared.
4233 * tree-flow.h (add_phi_node_to_bb): Declared.
4234 (make_phi_node): Declared.
4235 (rename_variables_in_bb): Declared.
4236 (perfect_loop_nest_depth): Declared.
4237 (graphite_transform_loops): Declared.
4238 * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
4239 (graphite.o-warn): Add -Wno-error.
4240 (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
4241 (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
4242 (INCLUDES): Add PPLINC, CLOOGINC.
4243 (OBJS-common): Add graphite.o.
4244 (graphite.o): Add rule.
4245 * gimple.h (gimple_vec): ... here.
4246 * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
ea8bce02 4247 * passes.c (init_optimization_passes): Schedule
b328f3af
SP
4248 pass_graphite_transforms.
4249
57b08d04
ST
42502008-09-02 Samuel Tardieu <sam@rfc1149.net>
4251
4252 PR target/37283
4253 * opts.c (decode_options): Move processing of -fno-unit-at-a-time
4254 and -fno-toplevel-reorder after handle_options.
4255
7612f14d
PB
42562008-09-02 Paul Brook <paul@codesourcery.com>
4257
4258 * config/arm/arm.c (arm_tune_cortex_a9): Define.
4259 (arm_override_options): Set arm_tune_cortex_a9.
4260 (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
4261 (arm_issue_rate): Handle cortexa9.
4262 * config/arm/arm.h (arm_tune_cortex_a9): Declare.
4263 * config/arm/arm-cores.def: Add cortex-a9.
4264 * config/arm/arm-tune.md: Regenerate.
4265 * config/arm/arm.md: Include cortex-a9.md.
4266 (generic_sched, generic_vfp): Add cortexa9.
4267 * config/arm/cortex-a9.md: New file.
4268
a1b969a0
RG
42692008-09-02 Richard Guenther <rguenther@suse.de>
4270
4271 PR tree-optimization/37327
4272 * tree-vrp.c (register_new_assert_for): Make sure to not have
4273 TREE_OVERFLOW set on the bound.
4274
7ab5df48
AB
42752008-09-02 Alexander Monakov <amonakov@ispras.ru>
4276
4277 Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
75c9cbe3 4278
7ab5df48
AB
4279 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
4280 * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
4281 spec_info->mask.
4282
f6d5e84a
VK
42832008-09-02 Victor Kaplansky <victork@il.ibm.com>
4284
4285 * gcc/config/spu/spu.md (divdf3): Removed.
f6d5e84a 4286
1aeaf0f7
JJ
42872008-09-02 Jakub Jelinek <jakub@redhat.com>
4288
4289 PR tree-optimization/37095
4290 * cgraph.c (cgraph_node): When creating new cgraph node after
4291 assembler_name_hash has been populated, record it in the hash
4292 table.
4293
571191af
PB
42942008-09-01 Paul Brook <paul@codesourcery.com>
4295
4296 * doc/invoke.texi: Document -mword-relocations.
4297 * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4298 * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4299 * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4300 * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
4301 (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
4302 (arm_emit_movpair): New function.
4303 (arm_print_operand <c>): Handle sybolic addresses.
4304 * config/arm/arm.h (TARGET_USE_MOVT): Define.
4305 (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
4306 * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
4307 * config/arm/arm.opt: Add -mword-relocations.
4308 * config/arm/arm.md (movsi): Use arm_emit_movpair.
4309 (arm_movt, arm_movw): New.
4310
26272ba2
PB
43112008-09-01 Paul Brook <paul@codesourcery.com>
4312
4313 * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
4314 Allow Interworking on ARMv4 EABI based targets.
4315 * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
4316 (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
4317
48c23a6c
PB
43182008-09-01 Paul Brook <paul@codesourcery.com>
4319
4320 * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
4321 optimized LT0 test. Remove optimization for GT.
4322
89ceba31
JDA
43232008-09-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4324
4b738718
JDA
4325 * pa64-hpux.h (LIB_SPEC): Link against librt when building static
4326 openmp applications.
4327 * pa-hpux11.h (LIB_SPEC): Likewise.
4328
02bb8bce
UB
4329 * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
4330 is defined.
89ceba31 4331
ba623ced
JH
43322008-09-01 Jan Hubicka <jh@suse.cz>
4333
4334 * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
4335 present, use only counts; when guessed use only frequencies.
4336 (estimate_bb_frequencies): Use function_frequency.
4337 * profile.c (compute_branch_probabilities): Exit early when
4338 profile reading failed. Set profile_status.
4339 (branch_prob): Do not set profile_status.
4340
6a3799eb
AH
43412008-09-01 Aldy Hernandez <aldyh@redhat.com>
4342
4343 * tree.c (protected_set_expr_location): New.
4344 * tree.h (protected_set_expr_location): New prototype.
4345 * c-tree.h (build_array_ref): Add argument.
4346 (parser_build_unary_op): Same.
4347 * c-typeck.c (build_indirect_ref): Handle new location argument.
4348 (build_array_ref): Same.
4349 (parser_build_unary_op): Same.
4350 * gimplify.c (gimplify_asm_expr): Set input_location before calling
4351 error.
4352 * c-omp.c (c_finish_omp_atomic): Pass location when calling
4353 build_indirect_ref.
4ae8027b 4354 * c-common.c (finish_label_address_expr): Handle new location argument.
6a3799eb
AH
4355 * c-common.h (build_indirect_ref): Add argument.
4356 (finish_label_address_expr): Same.
4357 * c-parser.c (c_parser_unary_expression): Pass location to build
4358 functions.
4359 (c_parser_postfix_expression): Same.
4360
51c69ddb
PB
43612008-09-01 Paul Brook <paul@codesourcery.com>
4362
4363 * config/arm/arm.md: Include cortex-r4f.md.
4364 (attr fpu): Update type list.
4365 (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
75c9cbe3 4366 fconstd, fcmps and fcmpd.
51c69ddb
PB
4367 (attr tune_cortexr4): Define.
4368 (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
4369 * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
4370 fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns.
4371 * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
4ae8027b 4372 * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
51c69ddb
PB
4373 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
4374 cortex_a8_vfp_farith: Ditto.
4375 * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
4376 * config/arm/cortex-r4.md: Use tune_cortexr4.
4377 * config/arm/cortex-r4f.md: New file.
4378
ff8b183b
RG
43792008-09-01 Richard Guenther <rguenther@suse.de>
4380
4381 PR tree-optimization/37305
4382 * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
4383 the result of constant conversions.
4384 (fold_gimple_assign): Likewise.
4385
68ad446f
AB
43862008-09-01 Andrey Belevantsev <abel@ispras.ru>
4387
75c9cbe3
AS
4388 * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
4389 #ifdef ENABLE_CHECKING.
68ad446f 4390
dfb0e60d 43912008-09-01 Andrey Belevantsev <abel@ispras.ru>
75c9cbe3 4392
dfb0e60d
AB
4393 * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
4394 * sched-int.h (print_insn, print_pattern, print_value): Declare also
4395 when !INSN_SCHEDULING.
75c9cbe3 4396
8a88c276
AS
43972008-09-01 Andreas Schwab <schwab@suse.de>
4398
4399 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
4400
756f763b
PB
44012008-09-01 Paul Brook <paul@codesourcery.com>
4402
4403 * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
4404
7ab5df48 44052008-09-01 Jan Hubicka <jh@suse.cz>
e04ad03d 4406
f69bbb46
JH
4407 * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
4408
4ae8027b
UB
4409 * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
4410 Pass speed operand.
e04ad03d
JH
4411 * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
4412 * gimplify.c (gimplify_init_constructor): Add speed operand.
4413 * tree-sra.c (decide_block_copy): Likewise.
4414 * tree-inline.c (estimate_move_cost): Likewise.
4415 * config/alpha/alpha.h (MOVE_RATIO): Update.
4416 * config/frv/frv.c (MOVE_RATIO): Update.
4417 * config/spu/spu.h (MOVE_RATIO): Update.
4418 * config/sparc/sparc.h (MOVE_RATIO): Update.
4419 * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
4420 * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
4421 * config/cris/cris.h (MOVE_RATIO): Update.
4422 * config/mn10300/mn10300.h (MOVE_RATIO): Update.
4423 * config/arm/arm.h (MOVE_RATIO): Update.
4424 * config/pa/pa.md: Update uses of MOVE_RATIO
4425 * config/pa/pa.h (MOVE_RATIO): Update.
4ae8027b
UB
4426 * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
4427 CLEAR_RATIO, SET_RATIO): Update.
e04ad03d
JH
4428 * config/h8300/h8300.h (MOVE_RATIO): Update.
4429 * config/v850/v850.h (MOVE_RATIO): Update.
4430 * config/bfin/bfin.h (MOVE_RATIO): Update.
4431
e855c69d 44322008-08-31 Andrey Belevantsev <abel@ispras.ru>
4ae8027b
UB
4433 Dmitry Melnik <dm@ispras.ru>
4434 Dmitry Zhurikhin <zhur@ispras.ru>
4435 Alexander Monakov <amonakov@ispras.ru>
4436 Maxim Kuvyrkov <maxim@codesourcery.com>
e855c69d
AB
4437
4438 * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
4439 sel-sched-dump.c, sel-sched-ir.c: New files.
02bb8bce 4440 * Makefile.in (OBJS-common): Add selective scheduling object files.
e855c69d
AB
4441 (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
4442 (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
4443 (sched-vis.o): Add dependency on $(INSN_ATTR_H).
4444 * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
4445 * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
4446 (make_forwarder_block): Update loop latch if we have redirected
4447 the loop latch edge.
4448 * cfgloop.c (get_loop_body_in_custom_order): New function.
4449 * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
4450 (CP_FALLTHRU_PREHEADERS): Likewise.
4451 (get_loop_body_in_custom_order): Declare.
4452 * cfgloopmanip.c (has_preds_from_loop): New.
4453 (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
4454 Assert that the preheader edge will be fall thru when it is set.
4455 * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
4456 fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
4457 fsel-sched-substitution, fselective-scheduling): New flags.
4ae8027b 4458 * cse.c (hash_rtx_cb): New.
e855c69d
AB
4459 (hash_rtx): Use it.
4460 * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
8a88c276 4461 sel_sched_insn_cnt): New counters.
4ae8027b
UB
4462 * final.c (compute_alignments): Export. Free dominance
4463 info after loop_optimizer_finalize.
e855c69d 4464 * genattr.c (main): Output maximal_insn_latency prototype.
4ae8027b
UB
4465 * genautomata.c (output_default_latencies): New.
4466 Factor its code from ...
e855c69d
AB
4467 (output_internal_insn_latency_func): ... here.
4468 (output_internal_maximal_insn_latency_func): New.
4469 (output_maximal_insn_latency_func): New.
4470 * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
4471 (struct hard_reg_set_iterator): New.
4472 (hard_reg_set_iter_init, hard_reg_set_iter_set,
4473 hard_reg_set_iter_next): New functions.
4474 (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
4475 * lists.c (remove_free_INSN_LIST_node,
4476 remove_free_EXPR_LIST_node): New functions.
4ae8027b
UB
4477 * loop-init.c (loop_optimizer_init): When
4478 LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
4479 calling create_preheaders.
e855c69d
AB
4480 (loop_optimizer_finalize): Do not verify flow info after reload.
4481 * recog.c (validate_replace_rtx_1): New parameter simplify.
4482 Default it to true. Update all uses. Factor out simplifying
4483 code to ...
4484 (simplify_while_replacing): ... this new function.
4485 (validate_replace_rtx_part,
4486 validate_replace_rtx_part_nosimplify): New.
4487 * recog.h (validate_replace_rtx_part,
4488 validate_replace_rtx_part_nosimplify): Declare.
4489 * rtl.c (rtx_equal_p_cb): New.
4490 (rtx_equal_p): Use it.
4491 * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
4492 (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
4493 debug_bb_n_slim, debug_bb_slim, print_rtl_slim): Likewise.
8a88c276 4494 * vecprim.h: Add a vector type for unsigned int.
e855c69d
AB
4495 * haifa-sched.c: Include vecprim.h and cfgloop.h.
4496 (issue_rate, sched_verbose_param, note_list, dfa_state_size,
4497 ready_try, cycle_issued_insns, spec_info): Make global.
4498 (readyp): Initialize.
4499 (dfa_lookahead): New global variable.
4500 (old_max_uid, old_last_basic_block): Remove.
4501 (h_i_d): Make it a vector.
4502 (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
4503 through HID macro.
4504 (after_recovery, adding_bb_to_current_region_p):
4505 New variables to handle correct insertion of the recovery code.
4506 (struct ready_list): Move declaration to sched-int.h.
4507 (rgn_n_insns): Removed.
4508 (rtx_vec_t): Move to sched-int.h.
4509 (find_insn_reg_weight): Remove.
4510 (find_insn_reg_weight1): Rename to find_insn_reg_weight.
4511 (haifa_init_h_i_d, haifa_finish_h_i_d):
4512 New functions to initialize / finalize haifa instruction data.
4513 (extend_h_i_d, init_h_i_d): Rewrite.
4514 (unlink_other_notes): Move logic to add_to_note_list. Handle
4515 selective scheduler.
4516 (ready_lastpos, ready_element, ready_sort, reemit_notes,
4517 find_fallthru_edge): Make global, remove static prototypes.
4518 (max_issue): Make global. Add privileged_n and state parameters. Use
8a88c276 4519 them.
e855c69d
AB
4520 (extend_global, extend_all): Removed.
4521 (init_before_recovery): Add new param. Fix the handling of the case
4522 when we insert a recovery code before the EXIT which has a predecessor
4523 with a fallthrough edge to it.
4524 (create_recovery_block): Make global. Rename to
4525 sched_create_recovery_block. Update.
4526 (change_pattern): Rename to sched_change_pattern. Make global.
4527 (speculate_insn): Rename to sched_speculate_insn. Make global.
4528 Split haifa-specific functionality into ...
4529 (haifa_change_pattern): New static function.
4530 (sched_extend_bb): New static function.
4531 (sched_init_bbs): New function.
4532 (current_sched_info): Change type to struct haifa_sched_info.
4533 (insn_cost): Adjust for selective scheduling.
4534 (dep_cost_1): New function. Move logic from ...
4535 (dep_cost): ... here.
4536 (dep_cost): Use dep_cost_1.
4537 (contributes_to_priority_p): Use sched_deps_info instead of
4538 current_sched_info.
4539 (priority): Adjust to work with selective scheduling. Process the
4540 corner case when all dependencies don't contribute to priority.
4541 (rank_for_schedule): Use ds_weak instead of dep_weak.
4542 (advance_state): New function. Move logic from ...
4543 (advance_one_cycle): ... here.
4544 (add_to_note_list, concat_note_lists): New functions.
4545 (rm_other_notes): Make static. Adjust for selective scheduling.
4546 (remove_notes, restore_other_notes): New functions.
4547 (move_insn): Add two arguments. Update assert. Don't call
4548 reemit_notes.
4549 (choose_ready): Remove lookahead variable, use dfa_lookahead.
4550 Remove more_issue, max_points. Move the code to initialize
4551 max_lookahead_tries to max_issue.
4552 (schedule_block): Remove rgn_n_insns1 parameter. Don't allocate
4553 ready. Adjust use of move_insn. Call restore_other_notes.
4554 (luid): Remove.
4555 (sched_init, sched_finish): Move Haifa-specific initialization/
4556 finalization to ...
4557 (haifa_sched_init, haifa_sched_finish): ... respectively.
4558 New functions.
4559 (setup_sched_dump): New function.
4560 (haifa_init_only_bb): New static function.
4561 (haifa_speculate_insn): New static function.
02bb8bce 4562 (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
e855c69d
AB
4563 (extend_ready, extend_all): Remove.
4564 (sched_extend_ready_list, sched_finish_ready_list): New functions.
4565 (create_check_block_twin, add_to_speculative_block): Use
4566 haifa_insns_init instead of extend_global. Update to use new
4567 initialization functions. Change parameter. Factor out code from
4568 create_check_block_twin to ...
4569 (sched_create_recovery_edges) ... this new function.
4570 (add_block): Remove.
4571 (sched_scan_info): New.
4572 (extend_bb): Use sched_scan_info.
4573 (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
4574 static functions for walking through scheduling region.
4575 (sched_luids): New vector variable to replace uid_to_luid.
4576 (luids_extend_insn): New function.
4577 (sched_max_luid): New variable.
4578 (luids_init_insn): New function.
4579 (sched_init_luids, sched_finish_luids): New functions.
4580 (insn_luid): New debug function.
4581 (sched_extend_target): New function.
4582 (haifa_init_insn): New static function.
4583 (sched_init_only_bb): New hook.
4584 (sched_split_block): New hook.
4585 (sched_split_block_1): New function.
4586 (sched_create_empty_bb): New hook.
8a88c276 4587 (sched_create_empty_bb_1): New function.
e855c69d
AB
4588 (common_sched_info, ready): New global variables.
4589 (current_sched_info_var): Remove.
8a88c276
AS
4590 (move_block_after_check): Use common_sched_info.
4591 (haifa_luid_for_non_insn): New static function.
02bb8bce 4592 (init_before_recovery): Use haifa_init_only_bb instead of add_block.
e855c69d
AB
4593 (increase_insn_priority): New.
4594 * modulo-sched.c: (issue_rate): Remove static declaration.
4595 (sms_sched_info): Change type to haifa_sched_info.
4596 (sms_sched_deps_info, sms_common_sched_info): New variables.
4597 (setup_sched_infos): New.
4598 (sms_schedule): Initialize them. Call haifa_sched_init/finish.
4599 Do not call regstat_free_calls_crossed.
4600 (sms_print_insn): Use const_rtx.
4601 * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
4602 PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
4603 PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
4604 PARAM_SCHED_MEM_TRUE_DEP_COST): New.
4605 * sched-deps.c (sched_deps_info): New. Update all relevant uses of
4606 current_sched_info to use it.
4607 (enum reg_pending_barrier_mode): Move to sched-int.h.
4608 (h_d_i_d): New variable. Initialize to NULL.
4609 ({true, output, anti, spec, forward}_dependency_cache): Initialize
4610 to NULL.
4611 (estimate_dep_weak): Remove static declaration.
4612 (sched_has_condition_p): New function. Adjust users of
4613 sched_get_condition to use it instead.
4614 (conditions_mutex_p): Add arguments indicating which conditions are
4615 reversed. Use them.
4616 (sched_get_condition_with_rev): Rename from sched_get_condition. Add
4617 argument to indicate whether returned condition is reversed. Do not
4618 generate new rtx when condition should be reversed; indicate it by
4619 setting new argument instead.
4620 (add_dependence_list_and_free): Add deps parameter.
4621 Update all users. Do not free dependence list when
4622 deps context is readonly.
4623 (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
4624 contexts.
4625 (remove_from_dependence_list, remove_from_both_dependence_lists): New.
8a88c276 4626 (remove_from_deps): New. Use the above functions.
e855c69d
AB
4627 (cur_insn, can_start_lhs_rhs_p): New static variables.
4628 (add_or_update_back_dep_1): Initialize present_dep_type.
4629 (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
4630 haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
4631 haifa_note_dep): New functions implementing dependence hooks for
4632 the Haifa scheduler.
4633 (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
4634 note_dep): New functions.
4635 (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
4636 functions.
4637 (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
4638 (free_deps): Initialize deps->reg_last.
4639 (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
4640 sched_analyze_insn): Update to use dependency hooks infrastructure
4641 and readonly contexts.
4642 (deps_analyze_insn): New function. Move part of logic from ...
4643 (sched_analyze): ... here. Also move some logic to ...
4644 (deps_start_bb): ... here. New function.
4645 (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
4646 sel_sched_p.
4647 (sched_deps_init): New function. Move code from ...
4648 (init_dependency_caches): ... here. Remove.
4649 (init_deps_data_vector): New.
4650 (sched_deps_finish): New function. Move code from ...
4651 (free_dependency_caches): ... here. Remove.
4652 (init_deps_global, finish_deps_global): Adjust for use with
4653 selective scheduling.
4654 (get_dep_weak): Move logic to ...
4655 (get_dep_weak_1): New function.
4656 (ds_merge): Move logic to ...
4657 (ds_merge_1): New static function.
4658 (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
4659 (ds_get_max_dep_weak): New function.
4660 * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
4661 (n_insns): Rename to rgn_n_insns.
4662 (debug_ebb_dependencies): New function.
4663 (init_ready_list): Use it.
4664 (begin_schedule_ready): Use sched_init_only_bb.
4665 (ebb_print_insn): Indicate when an insn starts a new cycle.
4666 (contributes_to_priority, compute_jump_reg_dependencies,
4667 add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
4668 (add_block1): Remove to ebb_add_block.
4669 (ebb_sched_deps_info, ebb_common_sched_info): New variables.
4670 (schedule_ebb): Initialize them. Use remove_notes instead of
4671 rm_other_notes. Use haifa_local_init/finish.
4672 (schedule_ebbs): Use haifa_sched_init/finish.
4673 * sched-int.h: Include vecprim.h, remove rtl.h.
4674 (struct ready_list): Delete declaration.
4675 (sched_verbose_param, enum sched_pass_id_t,
4676 bb_vec_t, insn_vec_t, rtx_vec_t): New.
4677 (struct sched_scan_info_def): New structure.
4678 (sched_scan_info, sched_scan, sched_init_bbs,
4679 sched_init_luids, sched_finish_luids, sched_extend_target,
4680 haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
4681 (struct common_sched_info_def): New.
4682 (common_sched_info, haifa_common_sched_info,
4683 sched_emulate_haifa_p): Declare.
4684 (sel_sched_p): New.
4685 (sched_luids): Declare.
4686 (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
4687 (sched_max_luid, insn_luid): Declare.
4688 (note_list, remove_notes, restore_other_notes, bb_note): Declare.
4689 (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
4690 print_insn, print_pattern, print_value, haifa_classify_insn,
4691 sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
4692 setup_sched_dump, sched_init, sched_finish,
4693 sel_insn_is_speculation_check): Export.
4694 (struct ready_list): Move from haifa-sched.c.
4695 (ready_try, ready, max_issue): Export.
4696 (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
4697 sched_init_only_bb, sched_split_block, sched_split_block_1,
4698 sched_create_empty_bb, sched_create_empty_bb_1,
4699 sched_create_recovery_block, sched_create_recovery_edges): Export.
4700 (enum reg_pending_barrier_mode): Export.
4701 (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
4702 (deps_t): New.
4703 (struct sched_info): Rename to haifa_sched_info. Use const_rtx for
4704 print_insn field. Move add_block and fix_recovery_cfg to
4ae8027b
UB
4705 common_sched_info_def. Move compute_jump_reg_dependencies,
4706 use_cselib ...
e855c69d
AB
4707 (struct sched_deps_info_def): ... this new structure.
4708 (sched_deps_info): Declare.
4709 (struct spec_info_def): Remove weakness_cutoff, add
4710 data_weakness_cutoff and control_weakness_cutoff.
4711 (spec_info): Declare.
4712 (struct _haifa_deps_insn_data): Split from haifa_insn_data. Add
4713 dep_count field.
4714 (struct haifa_insn_data): Rename to struct _haifa_insn_data.
4715 (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
4716 (current_sched_info): Change type to struct haifa_sched_info.
4717 (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
4718 (h_d_i_d): New variable.
4719 (HDID): New accessor macro.
4720 (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
4721 (HID): New accessor macro. Rewrite h_i_d accessor macros through HID
4722 and HDID.
4723 (IS_SPECULATION_CHECK_P): Update for selective scheduler.
4724 (enum SCHED_FLAGS): Update for selective scheduler.
4725 (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
4726 (init_dependency_caches, free_dependency_caches): Delete declarations.
4727 (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
4728 estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
4729 ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
4730 sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
4731 haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
4732 ds_to_dt): Export.
4733 (rm_other_notes): Delete declaration.
4734 (schedule_block): Remove one argument.
4735 (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
4736 ready_element, ready_lastpos, sched_extend_ready_list,
4737 sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
4738 concat_note_lists): Export.
4739 (struct region): Move from sched-rgn.h.
4740 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4741 RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4742 BLOCK_TO_BB, CONTAINING_RGN): Export.
4743 (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
4744 (current_nr_blocks, current_blocks, target_bb): Likewise.
4745 (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
4746 sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
4747 sched_rgn_local_init, extend_regions,
4748 rgn_make_new_region_out_of_new_block, compute_priorities,
4749 debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
4750 extend_rgns, deps_join rgn_setup_common_sched_info,
4751 rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
4752 dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
8a88c276 4753 (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
e855c69d
AB
4754 increase_insn_priority): Likewise.
4755 * sched-rgn.c: Include sel-sched.h.
4756 (ref_counts): New static variable. Use it ...
4757 (INSN_REF_COUNT): ... here. Rewrite and move closer to uses.
4758 (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
4759 (sched_is_disabled_for_current_region_p): Delete static declaration.
4760 (struct region): Move to sched-int.h.
4761 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
4762 ebb_head): Define and initialize.
4763 (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
4764 BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
4765 BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
4766 sched-int.h.
4767 (find_single_block_region): Add new argument to indicate that EBB
4768 regions should be constructed.
4769 (debug_live): Delete declaration.
4ae8027b
UB
4770 (current_nr_blocks, current_blocks, target_bb):
4771 Remove static qualifiers.
e855c69d
AB
4772 (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
4773 declaration.
4774 (init_regions): Delete declaration.
4775 (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
4776 rgn_estimate_number_of_insns): New.
4777 (too_large): Use estimate_number_of_insns.
4778 (haifa_find_rgns): New. Move the code from ...
4779 (find_rgns): ... here. Call either sel_find_rgns or haifa_find_rgns.
4780 (free_trg_info): New.
4781 (compute_trg_info): Allocate candidate tables here instead of ...
4782 (init_ready_list): ... here.
4783 (rgn_print_insn): Use const_rtx.
4784 (contributes_to_priority, extend_regions): Delete static declaration.
4785 (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
4786 (add_block1): Rename to rgn_add_block.
4787 (debug_rgn_dependencies): Delete static qualifier.
4788 (new_ready): Use sched_deps_info. Simplify.
4789 (rgn_common_sched_info, rgn_const_sched_deps_info,
4ae8027b
UB
4790 rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
4791 New.
e855c69d
AB
4792 (region_sched_info): Rename to rgn_const_sched_info.
4793 (deps_join): New, extracted from ...
4794 (propagate_deps): ... here.
4795 (compute_block_dependences, debug_dependencies): Update for selective
4796 scheduling.
4797 (free_rgn_deps, compute_priorities): New functions.
4798 (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
4799 sched_rgn_compute_dependencies): New functions.
4800 (schedule_region): Use them.
4801 (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
4802 rgn_setup_common_sched_info, rgn_setup_sched_infos):
4803 New functions.
4804 (schedule_insns): Call new functions that were split out.
4805 (rgn_make_new_region_out_of_new_block): New.
4806 (get_rgn_sched_max_insns_priority): New.
4807 (rest_of_handle_sched, rest_of_handle_sched2): Call selective
4808 scheduling when appropriate.
4809 * sched-vis.c: Include insn-attr.h.
4810 (print_value, print_pattern): Make global.
4811 (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
4812 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
4813 TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
4814 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
4815 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
4816 TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
4817 hooks. Initialize them to 0.
4818 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
4819 * target.h (struct gcc_target): Add them. Rename gen_check field to
4820 gen_spec_check.
4821 * flags.h (sel_sched_switch_set): Declare.
4822 * opts.c (sel_sched_switch_set): New variable.
4823 (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
4824 pipelining is disabled from command line.
4825 (common_handle_option): Record whether selective scheduling is
4826 requested from command line.
4827 * doc/invoke.texi: Document new flags and parameters.
4828 * doc/tm.texi: Document new target hooks.
4ae8027b
UB
4829 * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
4830 ia64_gen_check.
e855c69d
AB
4831 (dfa_state_size): Do not declare locally.
4832 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
4833 * config/rs6000/rs6000.c (rs6000_init_sched_context,
4834 rs6000_alloc_sched_context, rs6000_set_sched_context,
4835 rs6000_free_sched_context): New functions.
4836 (struct _rs6000_sched_context): New.
4837 (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
4838 scheduling.
8a88c276 4839 (rs6000_sched_finish): Do not run for selective scheduling.
e855c69d 4840
899cc0f4
JH
48412008-08-31 Jan Hubicka <jh@suse.cz>
4842
4843 * frv.c (frv_rtx_costs): Update forward declaration.
4844 * spu.c (spu_rtx_costs): Likewise.
4845 * pdp11.c: Include df.h
4846 (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
4847 * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
4848 (m68hc11_rtx_costs_1): Fix call of rtx_cost.
4849 * iq2000.c (iq2000_address_cost): Add speed argument.
4850 (iq2000_rtx_costs): Likewise.
4851 * mn10300.c (mn10300_address_cost_1): Remove speed argument;
4852 update call of mn10300_address_cost.
4853 * mcore.c: Include df.h
4854 (mcore_rtx_costs): Update prototype.
4855 * score3.c: Include df.h
4856 (score3_rtx_costs): Remove speed argument.
4857 * score7.c: Include df.h
4858 (score7_address_cost): Remove speed argument.
4859 * score-protos.h (score_address_cost): Update prototype.
4860 * score.c: Include df.h
4861 (score_rtx_costs): Update call of costs functions.
4862 * v850.c (v850_rtx_costs): Add bool argument.
4863
cd6b7bc6
HPN
48642008-08-31 Hans-Peter Nilsson <hp@axis.com>
4865
4866 * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
4867
9e2af376
AL
48682008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
4869
4870 * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
4871 * config/i386/gthr-win32.c (__gthread_setspecific): Same.
4872
d89f0ad6
AL
48732008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
4874
4875 * mkmap-flat.awk: Add option pe_dll.
4876 * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
4877 * config/i386/t-cygwin (SHLIB_LC): Add.
4878 * config/i386/t-mingw32 (SHLIB_LC): Add.
4879 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
4880 (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
4881 (LINK_SPEC): Support libgcc_s.
4882 (LIBGCC_SPEC): Support libgcc_s.
4883 (LIBGCC_SONAME): New.
4884
a065d52e
JH
48852008-08-31 Jan Hubicka <jh@suse.cz>
4886
3e196fa9
JH
4887 * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
4888 mistakely had old version of patch.
4889
a065d52e
JH
4890 * ipa-cp.c (ipcp_need_original_clone_p): Remove.
4891 (ipcp_estimate_growth): New.
4892 (ipcp_insert_stage): Use ipcp_estimate_growth.
4893 * profile.c (branch_prob): When reading failed, do not consider
4894 profile as read.
4895
079990a2
JH
48962008-08-31 Jan Hubicka <jh@suse.cz>
4897
4898 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
4899 loop is optimized for speed.
4900
2b2587f5
RG
49012008-08-31 Richard Guenther <rguenther@suse.de>
4902
4903 PR middle-end/37289
4904 * fold-const.c (fold_binary): Retain conversions in folding
4905 ~A + 1 to -A.
4906
fb2fed03
JH
49072008-08-31 Jan Hubicka <jh@suse.cz>
4908
4ae8027b
UB
4909 * postreload-gcse.c (eliminate_partially_redundant_loads):
4910 Use optimize_bb_for_size_p.
fb2fed03
JH
4911 * predict.c (maybe_hot_frequency_p): Make inline.
4912 (maybe_hot_count_p): Break out from ...
4913 (maybe_hot_bb_p): ... this one.
4914 (maybe_hot_edge_p): Simplify.
4915 * basic-block.h (probably_cold_bb_p): Remove.
4916
847535b6
JJ
49172008-08-31 Jakub Jelinek <jakub@redhat.com>
4918
4919 PR target/37168
4920 * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
4921 prototype.
4922 * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
4923 * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
4924 Also split V4SFmode.
4925 * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
4926 vector float modes.
4927
277b4867
JH
49282008-08-31 Jan Hubicka <jh@suse.cz>
4929
4930 * predict.c (PROB_VERY_LIKELY): Make small enough so things
4931 become cold.
4932 * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
4933
08ab58b3
JJ
49342008-08-31 Jakub Jelinek <jakub@redhat.com>
4935
8518c095
JJ
4936 PR debug/37287
4937 * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
4938 add source coords.
4939
08ab58b3
JJ
4940 * dwarf2out.c (native_encode_initializer): Subtract min_index for
4941 non-range array index. Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
4942
1f494b6d
JH
49432008-08-31 Jan Hubicka <jh@suse.cz>
4944
4945 * sparc.h (BRANCH_COST): Fix macro definition.
4946 * avr.c (avr_operand_rtx_cost): Add speed argument.
4947 (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
4948
f5e85907
RG
49492008-08-31 Richard Guenther <rguenther@suse.de>
4950
4951 * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
4952 types instead of operands. Re-instantiate verifying of
4953 binary expression operands.
4954
f40751dd
JH
49552008-08-30 Jan Hubicka <jh@suse.cz>
4956
4957 * fwprop.c (should_replace_address): Add speed attribute.
4958 (PR_OPTIMIZE_FOR_SPEED): New flag.
4959 (propagate_rtx_1): Use it.
4960 (propagate_rtx): Set it.
4961 (try_fwprop_subst): Update call of rtx_costs.
4962 (forward_propagate_and_simplify): LIkewise.
4963 * hooks.c (hook_int_rtx_bool_0): New
4964 (hook_bool_rtx_int_int_intp_false): Replace by ...
4965 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
4966 * hooks.h (hook_int_rtx_bool_0): New
4967 (hook_bool_rtx_int_int_intp_false): Replace by ...
4968 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
4969 * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
4970 (prepare_cmp_insn): UPdate call of rtx_cost.
4971 * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
4972 (reload_cse_simplify_operands): Update call of rtx_cost.
4973 (reload_cse_move2add): call of rtx_cost.
4974 * target.h (struct gcc_target): Update rtx_costs and address_costs.
4975 * rtlanal.c (rtx_cost): Add speed argument.
4976 (address_cost): Add speed argument
4977 (default_address_cost): Likewise.
4978 (insn_rtx_cost): Likewise.
4979 * cfgloopanal.c (seq_cost): Add speed argument.
4980 (target_reg_cost, target_spill_cost): Turn to array.
4981 (init_set_costs): Update for speed.
4982 (estimate_reg_pressure_cost): Add speed argument.
4983 * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
4984 * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
4985 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
4986 (seq_cost): Add speed argument.
4987 (computation_cost): Add speed arugment.
4988 (add_cost, multiply_by_const, get_address_cost): add speed argument.
4989 (force_expr_to_var_cost): Update for profile info.
4990 (force_var_cost): Likewise.
4991 (split_address_cost): Likewise.
4992 (ptr_difference_cost): Likewise.
4993 (difference_cost): Likewise.
4994 (get_computation_cost_at): Likewise.
4995 (determine_iv_cost): Likewise.
4996 (ivopts_global_cost_for_size): Likewise.
4997 (rewrite_use_address): Likewise.
4998 (tree_ssa_iv_optimize_loop): Initialize speed field.
4999 * cse.c (optimize_this_for_speed_p): New static var.
5000 (notreg_cost): Update call of rtx_cost.
5001 (cse_extended_basic_block): set optimize_this_for_speed_p.
5002 * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
5003 (noce_try_cmove_arith): Likewise.
5004 (noce_try_sign_mask): LIkewise.
5005 * expr.c (compress_float_constant): Update rtx_cost calls.
02bb8bce
UB
5006 * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
5007 argument.
f40751dd
JH
5008 (addr_to_parts): Likewise.
5009 (create_mem_ref): Likewise.
5010 * dse.c (find_shift_sequence): Add speed argument.
5011 (replace_read): Update call.
5012 * calls.c (precompute_register_parameters): Update call of rtx_cost.
5013 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
5014 * neg_cost, shift_cost, shiftadd_cost,
5015 shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
5016 mul_highpart_cost): Increase dimension.
5017 (init_expmed): Initialize for both size and speed.
5018 (expand_shift): Use profile.
5019 (synth_mult): Use profile.
5020 (choose_mult_variant): Use profile.
5021 (expand_mult): Use profile.
5022 (expand_mult_highpart_optab): Use profile.
5023 (expand_mult_highpart): Use profile.
5024 (expand_smod_pow2): Use profile.
5025 (expand_divmod): Use profile.
02bb8bce
UB
5026 * simplify-rtx.c (simplify_binary_operation_1): Update call of
5027 rtx_cost.
f40751dd
JH
5028 * loop-invariant.c (create_new_invariant): Use profile.
5029 (gain_for_invariant): Add speed parameter.
5030 (best_gain_for_invariant): Likewise.
5031 (find_invariants_to_move): Likewise.
5032 (move_single_loop_invariants): Set it.
5033 * target-def.h (TARGET_RTX_COSTS): Use hook.
5034 * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
5035 (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
5036 * output.h (default_address_cost): Update prototype.
5037 * combine.c (optimize_this_for_speed_p): New static var.
5038 (combine_validate_cost): Update call of rtx_cost.
5039 (combine_instructions): Set optimize_this_for_speed_p.
5040 (expand_compound_operation): Update call of rtx_cost.
5041 (make_extraction):Update call of rtx_cost.
5042 (force_to_mode):Update call of rtx_cost.
5043 (distribute_and_simplify_rtx):Update call of rtx_cost.
5044 * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
5045 (estimate_reg_pressure_cost): Update prototype.
5046 * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
5047 * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
5048 Remove.
5049 * config/alpha/alpha.c (alpha_rtx_costs): Update.
5050 (alpha_rtx_costs): Update.
5051 * config/frv/frv.c (frv_rtx_costs): Update.
5052 * config/s390/s390.c (s390_rtx_costs): Update.
5053 * config/m32c/m32c.c (m32c_memory_move_cost): Update.
5054 (m32c_rtx_costs): Update.
5055 * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
5056 (spu_rtx_costs): Update.
5057 * config/sparc/sparc.c (sparc_rtx_costs): Update.
5058 * config/m32r/m32r.c (m32r_rtx_costs): Update.
5059 * config/i386/i386.c (:ix86_address_cost): Update.
5060 (ix86_rtx_costs): Update.
5061 * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
5062 * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
5063 * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
5064 * config/crx/crx.c (crx_address_cost): Update.
5065 * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
5066 * config/stormy16/stormy16.c
5067 (xstormy16_address_cost, xstormy16_rtx_costs): Update.
5068 * config/m68hc11/m68hc11.c
5069 (m68hc11_address_cost, m68hc11_rtx_costs): Update.
5070 * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
4ae8027b
UB
5071 * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
5072 Update.
5073 * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
5074 Update
f40751dd
JH
5075 * config/ia64/ia64.c (ia64_rtx_costs): Update.
5076 * config/m68k/m68k.c (m68k_rtx_costs): Update.
5077 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
5078 * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
5079 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
5080 (mcore_rtx_costs): update.
5081 * config/score/score3.c (score3_rtx_costs): Update.
5082 * config/score/score7.c (score7_rtx_costs): Update.
5083 * config/score/score3.h (score3_rtx_costs):Update.
5084 * config/score/score7.h (score7_rtx_costs): Update.
5085 * config/score/score.c (score_rtx_costs): Update.
5086 * config/arm/arm.c (arm_address_cost): Update.
5087 (arm_rtx_costs_1): Update.
5088 (arm_rtx_costs_1): Update.
5089 (arm_size_rtx_costs): Update.
5090 (arm_size_rtx_costs): Update.
5091 (arm_size_rtx_costs): Update.
5092 (arm_xscale_rtx_costs): Update.
5093 (arm_thumb_address_cost): Update.
5094 * config/pa/pa.c (hppa_address_cost): Update.
5095 * config/mips/mips.c (mips_rtx_costs): Update.
5096 * config/vax/vax.c (vax_address_cost): Update.
5097 * config/h8300/h8300.c (h8300_shift_costs): Update.
5098 (h8300_rtx_costs): Update.
5099 * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
5100 (v850_rtx_costs): Update.
5101 * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
5102 * config/bfin/bfin.c
5103 (bfin_address_cost): Update.
5104 (bfin_rtx_costs): Update.
5105 * stmt.c (lshift_cheap_p): Update.
5106
6aebac53
AP
51072008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
5108
5109 PR middle-end/36444
5110 * expmed.c (extract_bit_field_1): Check the mode size to make
5111 sure the vector modes have the same size.
5112
a4cbe62d
MM
51132008-08-29 Michael Meissner <gnu@the-meissners.org>
5114
5115 * dojump.c (top level): Include basic-block.h to declare
5116 optimize_insn_for_speed_p
5117
5118 * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
5119
5779e713
MM
5120 * opts.h (CL_SAVE): New option class for marking options that are
5121 target specific options usable in the target attribute.
5122 (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
5123
5124 * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
5125 can easily find the target specific options that are safe to use
5126 in the attribute or pragma.
5127
5128 * attribs.c (decl_attributes): Change #pragma GCC option to
5129 #pragma GCC target, and attribute((option(...))) to
5130 attribute((target(...))).
5131
5132 * doc/extend.texi (target attribute): Change from option
5133 attribute. Delete push/pop/reset.
5134 (#pragma GCC target): Change from #pragma GCC option. Delete
5135 push/pop/reset.
5136 (#pragma GCC push_options): Document new pragma.
5137 (#pragma GCC pop_options): Document new pragma.
5138 (#pragma GCC reset_options): Document new pragma.
5139
5140 * targhooks.c (default_target_option_valid_attribute_p): Add
5141 warning about port not supporting target attributes.
5142 (default_target_option_pragma_parse): New function, warn about
5143 #pragma GCC target not being supported.
5144
5145 * targhooks.h (default_target_option_pragma_parse): Add
5146 declaration.
5147
5148 * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
5149 TI_CURRENT_OPTION_PRAGMA.
5150 (current_target_pragma): Rename from current_option_pragma.
5151
5152 * target.h: (struct target_option): Delete booleans for changing
5153 the optimization level on hot/cold functions. Change signature of
5154 pragma_parse hook to take a second tree.
5155
5156 * c-tree.h (c_builtin_function_ext_scope): Add declaration.
5157
5158 * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
5159 that the declaration is done at global scope.
5160
5161 * langhooks.c (add_builtin_function_common): Move most of the code
5162 from add_builtin_function here, calling the hook passed in.
5163 (add_builtin_function): Call add_builtin_function_common with
5164 standard builtin hook.
5165 (add_builtin_function_ext_scope): New function to add builtins to
5166 global scope.
5167
5168 * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
5169 hook.
5170 (add_builtin_function_ext_scope): Add declaration.
5171
5172 * c-pragma.c (handle_pragma_target): Rename from
5173 handle_pragma_option, #pragma GCC option is now #pragma GCC
5174 target. Move warning about port not supporting target options to
5175 default pragma parse hook. Remove push/pop/reset from this
5176 pragma.
5177 (handle_pragma_optimize): Remove push/pop/reset from this pragma.
5178 (option_stack): Delete static variable.
5179 (optimize_stack): Ditto.
5180 (optons_stack): New stack of saved target and optimization
5181 options.
5182 (handle_pragma_push_options): New function to handle pushing both
5183 target and optimization options.
5184 (handle_pragma_pop_options): New function to handle popping both
5185 target and optimization options.
5186 (handle_pragma_reset_options): New function to handle resetting
5187 both target and optimization options to their initial state.
5188 (init_pragma): Rename handle_pragma_option to
5189 handle_pragma_target. Add support for push_options, pop_options,
5190 and reset_options pragmas.
5191
5192 * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
5193 default_target_option_pragma_parse.
5194 (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
5195 default_target_option_valid_attribute_p.
5196 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5197 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5198 (TARGET_OPTION_HOOKS): Delete the fields for whether to change
5199 optimization level on hot/cold functions.
5200
5201 * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
5202 if the caller and callee have different optimization levels.
5203
5204 * c-common.c (handle_target_attribute): Rename from
5205 handle_option_attribute, attribute((option(...))) is now
5206 attribute((target(...))). Move warning if the port does not
5207 support target attributes to the default hook.
5208 (handle_hot_attribute): Delete code to change the optimization
5209 level of hot functions.
5210 (handle_cold_attribute): Ditto.
5211
5212 * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
5213 argument that is the binary tree options to use if there are no
5214 arguments. Call ix86_valid_target_attribute_tree instead of
5215 ix86_valid_option_attribute_tree.
5216 (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
5217 (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
5218 ix86_pragma_option_parse.
5219
5220 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
5221 Rename from ix86_valid_option_attribute_tree.
5222
5223 * config/i386/i386.c (ix86_add_new_builtins): New function to add
5224 new builtins when the ISA changes.
5225 (ix86_valid_target_attribute_tree): Rename from
5226 ix86_valid_option_attribute_tree. Change callers. If the
5227 function specified optimization options, use those as the starting
5228 point before setting up the target attributes. If the
5229 optimization options were changed in the course of setting the
5230 target attributes, record the new optimization options.
5231 (ix86_valid_target_attribute_tree_inner_p): Rename from
5232 ix86_valid_option_attribute_tree_inner_p. Change callers. Call
5233 ix86_add_new_builtins if the ISA changed.
5234 (ix86_valid_target_attribute_p): Rename from
5235 ix86_valid_option_attribute_p. Change callers.
5236 (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
5237 __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
5238 as delayed builtin functions.
5239 (struct builtin_isa): New structure to record builtin functions
5240 that should be delayed until the ISA for that function is used.
5241 (ix86_builtins_isa): Change from int to struct to track builtin
5242 functions we want to declare at some point.
5243 (def_builtin): If the front end can delay defining the builtin
5244 functions, don't create builtins for ISAs not part of the default
5245 options.
5246 (def_builtin_const): Ditto.
5247 (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
5248 __builtin_ia32_pcmov_v2di to be different builtin functions.
5249 (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
5250 a structure instead of an int.
5251 (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
5252 ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
5253 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5254 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5255
5256 * config/ia64/ia64.h
5257 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
5258 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
5259
5260 * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
5261 hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
5262 (LANG_HOOKS_INITIALIZER): Add
5263 LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
5264
06b322fa
KK
52652008-08-30 Kaz Kojima <kkojima@gcc.gnu.org>
5266
5267 PR target/37270
5268 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
5269 the reload address with the index register for SFmode
5270 access with a displacement.
5271
3a4fd356
JH
52722008-08-30 Jan Hubicka <jh@suse.cz>
5273
5274 * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
5275 * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
5276 * dojump.c (do_jump): Likewise.
5277 * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
5278 (note-if_info): Add BRANCH_COST.
4ae8027b
UB
5279 (noce_try_store_flag_constants, noce_try_addcc,
5280 noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
5281 noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
5282 find_if_case_2): Use computed branch cost.
3a4fd356
JH
5283 * expr.h (BRANCH_COST): Update default.
5284 * predict.c (predictable_edge_p): New function.
5285 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
5286 Update BRANCH_COST call.
5287 * basic-block.h (predictable_edge_p): Declare.
5288 * config/alpha/alpha.h (BRANCH_COST): Update.
5289 * config/frv/frv.h (BRANCH_COST): Update.
5290 * config/s390/s390.h (BRANCH_COST): Update.
5291 * config/spu/spu.h (BRANCH_COST): Update.
5292 * config/sparc/sparc.h (BRANCH_COST): Update.
5293 * config/m32r/m32r.h (BRANCH_COST): Update.
5294 * config/i386/i386.h (BRANCH_COST): Update.
02bb8bce
UB
5295 * config/i386/i386.c (ix86_expand_int_movcc): Update use of
5296 BRANCH_COST.
3a4fd356
JH
5297 * config/sh/sh.h (BRANCH_COST): Update.
5298 * config/pdp11/pdp11.h (BRANCH_COST): Update.
5299 * config/avr/avr.h (BRANCH_COST): Update.
5300 * config/crx/crx.h (BRANCH_COST): Update.
5301 * config/xtensa/xtensa.h (BRANCH_COST): Update.
5302 * config/stormy16/stormy16.h (BRANCH_COST): Update.
5303 * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
5304 * config/iq2000/iq2000.h (BRANCH_COST): Update.
5305 * config/ia64/ia64.h (BRANCH_COST): Update.
5306 * config/rs6000/rs6000.h (BRANCH_COST): Update.
5307 * config/arc/arc.h (BRANCH_COST): Update.
5308 * config/score/score.h (BRANCH_COST): Update.
5309 * config/arm/arm.h (BRANCH_COST): Update.
5310 * config/pa/pa.h (BRANCH_COST): Update.
5311 * config/mips/mips.h (BRANCH_COST): Update.
5312 * config/vax/vax.h (BRANCH_COST): Update.
5313 * config/h8300/h8300.h (BRANCH_COST): Update.
5314 * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
5315 * doc/invoke.texi (predictable-branch-cost-outcome): Document.
5316 * doc/tm.texi (BRANCH_COST): Update.
5317
b1bdaf40
ST
53182008-08-30 Samuel Tardieu <sam@rfc1149.net>
5319
5320 PR target/37283
5321 * config/arm/arm.c (arm_optimization_options): Set
5322 flag_section_anchors to 2 instead of 1 to distinguish it from
5323 -fsection-anchors given explicitely on the command line.
5324
a2a92083
RS
53252008-08-30 Richard Sandiford <rdsandiford@googlemail.com>
5326
5327 * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
5328 final insn of a split.
5329
8bcf15f6
JH
53302008-08-30 Jan Hubicka <jh@suse.cz>
5331
5332 * postreload-gcse.c (gate_handle_gcse2): Disable for functions
5333 optimized for speed.
5334 * final.c (compute_alignments): Use optimize_bb_for_size_p.
5335 * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
5336 * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
5337 flag_gcse_after_reload_set): New static vars.
5338 (common_handle_option): Enable those flags for profile-use.
5339 (decode_options): Remove optimize_size flags that are handled
5340 on higher granuality.
5341 * tree-vectorizer.c (vectorize_loops): Use
5342 optimize_loop_nest_for_speed_p.
5343 * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
5344 * tree-predcom.c (tree_predictive_commoning): Use
5345 optimize_loop_for_speed_p.
02bb8bce
UB
5346 * varasm.c (assemble_start_function): Use
5347 optimize_function_for_speed_p.
8bcf15f6
JH
5348 * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
5349 * predict.c (optimize_loop_for_speed_p): Fix walk.
5350
76718c16
JH
53512008-08-30 Jan Hubicka <jh@suse.cz>
5352
5353 * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
5354 functions.
5355 (cgraph_decide_inlining_of_small_function): Use edge->count to detect
5356 profile presence locally.
5357
109e637b
JM
53582008-08-29 Joseph Myers <joseph@codesourcery.com>
5359
5360 PR bootstrap/37086
5361 * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
5362 versions before 4.0.
5363
e7119705
JH
53642008-08-29 Jan Hubicka <jh@suse.cz>
5365
5366 * tree-inline.c (insert_init_stmt): Insert sequence even when
5367 not in SSA form.
5368
6528281d
JL
53692008-08-29 Jeff Law <law@redhat.com>
5370
5371 * mn10300.c (mn10300_secondary_reload_class): We need secondary
5372 reloads for AM33-2 if IN is a pseudo with an equivalent memory
5373 location and class is an FP register.
5374
041f300d
JH
53752008-08-29 Jan Hubicka <jh@suse.cz>
5376
6528281d
JL
5377 * see.c (see_merge_one_def_extension): Silence used uninitialized
5378 warning.
041f300d
JH
5379 * matrix-reorg.c (check_allocation_function): Likewise.
5380 * config/i386/driver-i386.c (detect_caches_amd): Likewise.
5381
a64f5186
JJ
53822008-08-29 Jakub Jelinek <jakub@redhat.com>
5383
bf09f0e0
JJ
5384 PR c/37261
5385 * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
5386 compute new & and | in type rather than TREE_TYPE (arg0).
5387
98c0cbd3
JJ
5388 * dwarf2out.c (fortran_common): Update comment.
5389 (gen_variable_die): Swap com_die and var_die variables in Fortran
5390 COMMON block handling code.
5391
de870512
JJ
5392 * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
5393
bd11e37d
JJ
5394 * dwarf2out.c (gen_const_die): New function.
5395 (size_of_die, value_format, output_die): Output larger
5396 dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
5397 (native_encode_initializer): New function.
5398 (tree_add_const_value_attribute): Call it.
5399 (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
5400
f51d8f1a
JJ
5401 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
5402 DECL_BY_REFERENCE decls don't pass TREE_READONLY and
5403 TREE_THIS_VOLATILE to add_type_attribute.
5404
b6b904bd
JJ
5405 * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
5406 types.
5407 (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
5408 types.
5409
2599ed92
JJ
5410 * dwarf2out.c (loc_by_reference): New function.
5411 (add_location_or_const_value_attribute): Use it.
5412
04e74e02
JJ
5413 PR fortran/23057
5414 * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
5415 as DW_TAG_variable children of DW_TAG_common_block rather than
5416 DW_TAG_member children. Put DW_AT_external to individual
5417 DW_TAG_variable DIEs, not to DW_TAG_common_block.
5418
25c29c56
JJ
5419 * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
5420 loc_descriptor_from_tree_1.
5421
a64f5186
JJ
5422 PR fortran/29635
5423 PR fortran/23057
5424 * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
5425 arguments to imported_module_or_decl.
5426 (debug_nothing_tree_tree): Removed.
5427 (debug_nothing_tree_tree_tree_bool): New prototype.
5428 * debug.c (do_nothing_debug_hooks): Adjust.
5429 (debug_nothing_tree_tree): Removed.
5430 (debug_nothing_tree_tree_tree_bool): New function.
5431 * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
5432 (gen_variable_die): Put all common vars for the
5433 same COMMON block under one DW_TAG_common_block.
5434 (declare_in_namespace): Return new context_die, for Fortran
5435 return the module DIE instead of adding extra declarations into
5436 the namespace.
5437 (gen_type_die_with_usage): Adjust declare_in_namespace caller.
5438 (gen_namespace_die): If is_fortran (), generate DW_TAG_module
5439 instead of DW_TAG_namespace. If DECL_EXTERNAL is set, add
5440 DW_AT_declaration.
5441 (dwarf2out_global_decl): Don't skip Fortran global vars.
5442 (gen_decl_die): Likewise. Adjust declare_in_namespace callers.
5443 (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
5444 If NAME is non-NULL, add DW_AT_name. If CHILD is non-NULL, put
5445 DW_TAG_imported_declaration as child of previous
5446 DW_TAG_imported_module.
5447 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
5448 * sdbout.c (sdb_debug_hooks): Likewise.
5449 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5450
ca30a539
JH
54512008-08-29 Jan Hubicka <jh@suse.cz>
5452
5453 * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
5454
5455 * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
5456 * ipa-cp.c (n_cloning_candidates): New static variable.
5457 (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
5458 (ipcp_print_all_lattices): Improve debug output.
5459 (ipcp_cloning_candidate_p): New function.
5460 (ipcp_initialize_node_lattices): Use it.
5461 (ipcp_init_stage): Do only analyzis here; prettier debug output.
5462 (ipcp_propagate_stage): Prettier debug output.
5463 (ipcp_iterate_stage): Initialize latices here; prettier debug output.
5464 (ipcp_print_all_structures): Remove.
5465 (ipcp_need_redirect_p): Test !n_cloning_candidates.
5466 (ipcp_insert_stage): Prettier debug output; call
5467 cgraph_remove_unreachable_nodes before propagating.
5468 (pass_ipa_cp): Schedule function removal pass.
5469 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
5470 debug output.
5471 (cgraph_maybe_hot_edge_p): Move to ...
5472 * predict.c (cgraph_maybe_hot_edge_p) ... here.
5473 * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
5474 (common_handle_option): Set them; enable ipa-cp when profiling.
5475 * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
5476 (ipa_print_all_jump_functions): Likewise.
5477 (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
5478 (ipa_print_node_params, ipa_print_all_params): New.
5479 * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
5480 ipa_print_all_param_flags): Remove.
5481 (ipa_print_node_params, ipa_print_all_params): New.
5482
a1f626ad
BW
54832008-08-29 Bob Wilson <bob.wilson@acm.org>
5484
5485 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
5486 change from 2008-04-03.
5487 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
5488
d7f2c74e
VM
54892008-08-29 Vladimir Makarov <vmakarov@redhat.com>
5490
5491 PR rtl-opt/37251
d7f2c74e
VM
5492 * ira-color.c (push_allocnos_to_stack): Truncate
5493 removed_splay_allocno_vec.
5494
03dd10d8
VM
54952008-08-29 Vladimir Makarov <vmakarov@redhat.com>
5496
5497 PR rtl-opt/37243
5498 * ira-color (ira_fast_allocation): Don't assign hard registers to
5499 global allocnos.
5500
c16eb95f
JH
55012008-08-29 Jan Hubicka <jh@suse.cz>
5502
5503 PR middle-end/37278
5504 * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
5505 for cold internal loops.
5506
13c6bff4
RG
55072008-08-29 Richard Guenther <rguenther@suse.de>
5508
5509 * tree-ssa-structalias.c (create_variable_info_for): Do not
5510 create fields for heap vars or vars with a noalias state.
5511 For NO_ALIAS_ANYTHING variables add a self-constraint, not one
5512 from ESCAPED.
5513
dce2b2f6
RG
55142008-08-29 Richard Guenther <rguenther@suse.de>
5515
5516 * common.opt (ftree-store-ccp): Mark as preserved for
5517 backward compatibility.
5518 * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
5519 * tree-pass.h (pass_store_ccp): Remove.
5520 * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
5521 (first_vdef): Remove declaration.
5522 (get_value_loaded_by): Likewise.
5523 * tree-ssa-ccp.c (do_store_ccp): Remove.
5524 (get_default_value): Simplify as do_store_ccp is always false
5525 now. Do not initialize mem_ref.
5526 (set_value_varying): Likewise.
5527 (canonicalize_float_value): Likewise.
5528 (set_lattice_value): Likewise.
5529 (likely_value): Likewise.
5530 (surely_varying_stmt_p): Likewise.
5531 (ccp_initialize): Likewise.
5532 (ccp_lattice_meet): Likewise.
5533 (ccp_visit_phi_node): Likewise.
5534 (ccp_fold): Likewise.
5535 (evaluate_stmt): Likewise.
5536 (visit_assignment): Likewise.
5537 (ccp_visit_stmt): Likewise.
5538 (execute_ssa_ccp): Fold into ...
5539 (do_ssa_ccp): ... this.
5540 (do_ssa_store_ccp): Remove.
5541 (gate_store_ccp): Likewise.
5542 (pass_store_ccp): Likewise.
5543 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
5544 initialize mem_ref.
5545 * tree-ssa-propagate.c (first_vdef): Remove.
5546 (get_value_loaded_by): Likewise.
5547 (replace_vuses_in): Likewise.
5548 (substitute_and_fold): Do not call replace_vuses_in.
5549 * opts.c (decode_options): Do not set flag_tree_store_ccp.
5550
443aa7d5
RG
55512008-08-29 Richard Guenther <rguenther@suse.de>
5552
5553 PR middle-end/37236
5554 * tree-ssa-structalias.c (intra_create_variable_infos): Mark
5555 PARAM_NOALIAS tags with is_heapvar.
5556 * tree-ssa-operands.c (access_can_touch_variable): Offset
5557 based tests do not apply for heapvars. Fix offset test.
5558
fcbe056b
JH
55592008-08-29 Jan Hubicka <jh@suse.cz>
5560
5561 * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
5562 (-fipa-cp-clone): Enabled by default at -O3.
5563 * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
5564 make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
5565
c6f7cfc1
JH
55662008-08-29 Jan Hubicka <jh@suse.cz>
5567
02bb8bce
UB
5568 * tree.c (build_function_type_skip_args,
5569 build_function_decl_skip_args): New functions.
5570 * tree.h (build_function_type_skip_args,
5571 build_function_decl_skip_args): Declare.
c6f7cfc1
JH
5572 * gimple.c (giple_copy_call_skip_args): New function.
5573 (giple_copy_call_skip_args): Declare.
5574
5575 * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
5576 * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
02bb8bce
UB
5577 (ipcp_node_modifiable_p): ... this one; use
5578 tree_versionable_function_p.
c6f7cfc1
JH
5579 (ipcp_create_replace_map): Improve debug output.
5580 (ipcp_need_redirect_p): Return false when not clonning.
5581 (ipcp_update_callgraph): Skip args.
5582 (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
5583 skip args.
5584 * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
5585 (save_inline_function_body): Update call of tree_function_versioning.
5586 * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
02bb8bce
UB
5587 * tree-inline.c (copy_arguments_for_versioning): Add skip_args
5588 argument.
c6f7cfc1
JH
5589 (tree_function_versioning): Likewise.
5590 * tree-inline.h (tree_function_versioning): Update prototype.
5591
efd8f750
JH
55922008-08-29 Jan Hubicka <jh@suse.cz>
5593
02bb8bce
UB
5594 * loop-unswitch.c (unswitch_single_loop): Use
5595 optimize_loop_for_speed_p.
4ae8027b
UB
5596 * tree-ssa-threadupdate.c (mark_threaded_blocks):
5597 Use optimize_function_for_size_p.
efd8f750 5598 * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
4ae8027b
UB
5599 * postreload-gcse.c (eliminate_partially_redundant_load):
5600 Use optimize_bb_for_size_p.
efd8f750
JH
5601 * value-prof.c (gimple_divmod_fixed_value_transform,
5602 gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
5603 gimple_stringops_transform): Use optimize_bb_for_size_p.
5604 * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
5605 * final.c (compute_alignments): Use optimize_function_for_size_p.
5606 * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
5607 (fold_builtin_strcpy, fold_builtin_fputs): Use
5608 optimize_function_for_size_p.
02bb8bce
UB
5609 * fold-const.c (tree_swap_operands_p): Use
5610 optimize_function_for_size_p.
efd8f750 5611 * recog.c (relax_delay_slots): Likewise.
4ae8027b
UB
5612 * tree-ssa-math-opts.c (replace_reciprocal):
5613 Use optimize_bb_for_speed_p.
efd8f750
JH
5614 (execute_cse_reciprocals): Use optimize_bb_for_size_p.
5615 * ipa-inline.c (cgraph_decide_recursive_inlining): Use
5616 optimize_function_for_size_p.
5617 (cgraph_decide_inlining_of_small_function): Use
5618 optimize_function_for_size_p.
5619 * global.c (find_reg): Use optimize_function_for_size_p.
4ae8027b
UB
5620 * opts.c (decode_options): Do not clear flag_tree_ch,
5621 flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
5622 flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
5623 work it out from profile.
efd8f750
JH
5624 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
5625 optimize_loop_for_speed_p.
02bb8bce
UB
5626 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5627 Constify argument.
efd8f750
JH
5628 (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
5629 * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
02bb8bce
UB
5630 * tree-eh.c (decide_copy_try_finally): Use
5631 optimize_function_for_size_p.
efd8f750
JH
5632 * local-alloc.c (block_alloc): Pass BB pointer.
5633 (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
5634 * gcse.c (gcse_main): Use optimize_function_for_size_p.
4ae8027b
UB
5635 * loop-unroll.c (decide_unrolling_and_peeling):
5636 Use optimize_loop_for_size_p.
efd8f750
JH
5637 (decide_peel_completely): Likewise.
5638 * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
5639 optimize_loop_for_size_p.
5640 (vect_enhance_data_refs_alignment): Likewise.
5641 * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
4ae8027b
UB
5642 (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
5643 Update call.
efd8f750
JH
5644 * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
5645 (try_crossjump_bb): Use optimize_bb_for_size_p.
5646 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
5647 optimize_loop_for_speed_p.
5648 * bb-reorder.c (find_traces_1_round): Likewise.
5649 (copy_bb): Use optimize_bb_for_speed_p.
5650 (duplicate_computed_gotos): Likewise.
5651 * basic-block.h (optimize_loop_nest_for_size_p,
5652 optimize_loop_nest_for_speed_p): New.
5653 * stmt.c (expand_case): Use optimize_insn_for_size_p.
5654
e3536b82
TG
56552008-08-29 Tristan Gingold <gingold@adacore.com>
5656
5657 * gcov.c (main): Call expandargv.
5658
cc870036
JH
56592008-08-29 Jan Hubicka <jh@suse.cz>
5660
5661 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
5662 is not cold.
5663 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5664 Constify arguments.
5665 (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
5666 * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
5667 Constify.
5668 (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
5669
7299cb99
JH
56702008-08-29 Jan Hubicka <jh@suse.cz>
5671
5672 * tree-pass.h (pass_strip_predict_hints): Declare.
5673 * predict.c (strip_builtin_expect): Rename to ...
5674 (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
5675 (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
5676 (tree_estimate_probability): Do not strip builtin_expect.
5677 (pass_strip_predict_hints): New pass.
4ae8027b
UB
5678 * tree-inline.c (expand_call_inline): When inlining cold function,
5679 predict it as unlikely.
7299cb99
JH
5680 * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
5681
a4b93060
RG
56822008-08-29 Richard Guenther <rguenther@suse.de>
5683
5684 PR tree-optimization/37207
5685 * tree-vrp.c (extract_range_from_binary_expr): Also try
5686 to constant fold if only one of the operands is a constant.
5687
a0491ba7
NC
56882008-08-29 Nick Clifton <nickc@redhat.com>
5689
5690 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
5691 the same way as SYMBOL_REFs.
5692
1d29a58d
BW
56932008-08-28 Bob Wilson <bob.wilson@acm.org>
5694
5695 * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
5696
95f6fc60
AN
56972008-08-28 Adam Nemet <anemet@caviumnetworks.com>
5698
5699 * config/mips/mips.h (ISA_HAS_BBIT): New macro.
5700 * config/mips/mips.md (branch_likely): Remove const. Fix
5701 comment formatting.
5702 (define_delay for type "branch"): Change to only apply for branch
5703 with likely variant.
5704 (define_delay for type "branch" and "branch_likely" no). New delay
5705 definition.
5706 (equality_op): New code iterator.
5707 (bbv, bbinv): New code attributes.
5708 (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
5709 patterns.
5710
528c22f4 57112008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8a88c276 5712 Andrew Pinski <pinskia@gcc.gnu.org>
528c22f4
MLI
5713
5714 PR 18050
5715 * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
5716
1cd8b853
PC
57172008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
5718
5719 * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
5720 rule that a symbolic constant must be defined and >= 0 for the
5721 corresponding facility to be present at compile-time.
5722 * gthr-posix.c: Likewise.
5723
d6d3e623
AN
57242008-08-28 Adam Nemet <anemet@caviumnetworks.com>
5725
5726 * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
5727 * config/mips/mips.md (D): New mode attribute.
5728 (mulsi3, muldi3): Merge it into ...
4ae8027b 5729 (mul<mode>3): ... new template. Use _mul3 ending for 3-op patterns.
d6d3e623
AN
5730 (muldi3_mul3): New pattern.
5731 (mulsi3_mult3): Rename to mulsi3_mul3.
5732
3debdc1e
JH
57332008-08-28 Jan Hubicka <jh@suse.cz>
5734
d6d3e623
AN
5735 * expmed.c (store_bit_field_1): Be prepared for movstrict expander
5736 to fail.
3debdc1e
JH
5737 * predict.c (always_optimize_for_size_p): Rename to ...
5738 (optimize_function_for_size): ... this one; make extern.
5739 (optimize_function_for_speed_p): New.
5740 (optimize_bb_for_size_p, optimize_bb_for_size_p,
5741 optimize_edge_for_size_p,optimize_edge_for_size_p,
5742 optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
5743 * basic-block.h (optimize_function_for_size_p,
5744 optimize_function_for_speed_p): Declare.
d6d3e623
AN
5745 * i386.md (optimize_size checks): Replace them by appropriate
5746 predicate.
3debdc1e
JH
5747 (standard_80387_constant_p, ix86_compute_frame_layout,
5748 ix86_expand_epilogue, ix86_decompose_address,
5749 print_operand, emit_i387_cw_initialization,
5750 inline_memory_move_cost, ix86_pad_returns,
5751 ix86_reorg): Replace optimize_size checks.
5752
eef302d2
RS
57532008-08-28 Richard Sandiford <rdsandiford@googlemail.com>
5754
5755 * rtl.h (simplify_subreg_regno): Declare.
5756 * rtlanal.c (simplify_subreg_regno): New function, split out from...
5757 * simplify-rtx.c (simplify_subreg): ...here.
5758 * reload.c (find_reloads): Use simplify_subreg_regno instead of
5759 subreg_offset_representable_p.
5760
1e053dfe
MLI
57612008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5762
5763 PR c/30949
5764 * c-typeck.c (convert_for_assignment): Give a note describing what
5765 was passed and what was expected.
5766
31cb596a
JY
57672008-08-28 Joey Ye <joey.ye@intel.com>
5768
5769 * doc/extend.texi: Document AVX built-in functions.
5770 * doc/invoke.texi: Document -mavx.
5771
95879c72
L
57722008-08-28 H.J. Lu <hongjiu.lu@intel.com>
5773 Joey Ye <joey.ye@intel.com>
5774 Xuepeng Guo <xuepeng.guo@intel.com>
5775
5776 * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
5777
5778 * config/i386/cpuid.h (bit_FMA): New.
5779 (bit_XSAVE): Likewise.
5780 (bit_OSXSAVE): Likewise.
5781 (bit_AVX): Likewise.
5782
5783 * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
5784 define. Use ASM_OUTPUT_AVX_PREFIX.
5785
5786 * config/i386/gmmintrin.h: New.
5787
5788 * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
5789 (OPTION_MASK_ISA_AVX_SET): New.
5790 (OPTION_MASK_ISA_FMA_SET): Likewise.
5791 (OPTION_MASK_ISA_AVX_UNSET): Likewise.
5792 (OPTION_MASK_ISA_FMA_SET): Likewise.
5793 (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
5794 (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
5795 (pta_flags): Add PTA_AVX and PTA_FMA.
5796 (override_options): Handle PTA_AVX and PTA_FMA.
5797 (init_cumulative_args): Handle warn_avx.
5798 (classify_argument): Return 0 for COImode and OImode. Return
5799 1 and X86_64_AVX_CLASS for 256bit vector types.
5800 (examine_argument): Handle X86_64_AVX_CLASS.
5801 (construct_container): Likewise.
5802 (function_arg_advance_32): Pass OImode and 256bit vector types
5803 in AVX register.
5804 (function_arg_advance_64): Take a new argument to indicate if a
5805 parameter is named. Handle 256bit vector types. Return
5806 immediately for unnamed 256bit vector mode parameters.
5807 (function_arg_advance): Updated.
5808 (function_arg_32): Add comments for TImode. Handle OImode
5809 and 256bit vector types.
5810 (function_arg_64): Take a new argument to indicate if a
5811 parameter is named. Handle 256bit vector types. Return NULL
5812 for unnamed 256bit vector mode parameters.
5813 (function_arg): Updated.
5814 (setup_incoming_varargs_64): Support
5815 AVX encoding for *sse_prologue_save_insn.
5816 (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
5817 (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
5818 enabled. For all 1s in 256bit vector modes, return 3 if AVX is
5819 enabled, otherwise return -3.
5820 (standard_sse_constant_opcode): Handle AVX and 256bit vector
5821 modes.
5822 (print_reg): Support AVX registers. Handle 'x' and 't'.
5823 Handle 'd' to duplicate the operand.
5824 (print_operand): Likewise. Also support AVX vector compare
5825 instructions.
5826 (output_387_binary_op): Support AVX.
5827 (output_fp_compare): Likewise.
5828 (ix86_expand_vector_move_misalign): Likewise.
5829 (ix86_attr_length_vex_default): New.
5830 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
5831 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
5832 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
5833 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
5834 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
5835 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
5836 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
5837 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
5838 IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
5839 IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
5840 IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
5841 IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
5842 IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
5843 IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
5844 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
5845 IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
5846 IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
5847 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
5848 IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
5849 IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
5850 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
5851 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
5852 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
5853 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
5854 IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
5855 IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
5856 IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
5857 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
5858 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
5859 IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
5860 IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
5861 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
5862 IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
5863 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
5864 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
5865 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
5866 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
5867 IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
5868 IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
5869 IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
5870 IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
5871 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
5872 IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
5873 IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
5874 IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
5875 IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
5876 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
5877 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
5878 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
5879 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
5880 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
5881 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
5882 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
5883 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
5884 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
5885 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
5886 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
5887 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
5888 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
5889 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
5890 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
5891 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
5892 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
5893 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
5894 and IX86_BUILTIN_MOVMSKPS256,
5895 (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
5896 V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
5897 V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
5898 V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
5899 V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
5900 VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
5901 VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
5902 VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
5903 (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
5904 INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
5905 INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
5906 INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
5907 V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
5908 V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
5909 V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
5910 V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
5911 V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
5912 V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
5913 V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
5914 V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
5915 V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
5916 V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
5917 V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
5918 V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
5919 V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
5920 V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
5921 (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
5922 IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
5923 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
5924 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
5925 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
5926 IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
5927 IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
5928 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
5929 IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
5930 IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
5931 IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
5932 IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
5933 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
5934 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
5935 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
5936 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
5937 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
5938 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
5939 IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
5940 IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
5941 IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
5942 IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
5943 IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
5944 IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
5945 IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
5946 IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
5947 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
5948 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
5949 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
5950 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
5951 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
5952 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
5953 IX86_BUILTIN_CMPPS,
5954 IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
5955 IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
5956 IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
5957 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
5958 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
5959 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
5960 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
5961 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
5962 IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
5963 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
5964 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
5965 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
5966 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
5967 IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
5968 IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
5969 IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
5970 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
5971 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
5972 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
5973 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
5974 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
5975 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
5976 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
5977 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
5978 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
5979 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
5980 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
5981 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
5982 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
5983 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
5984 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
5985 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
5986 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
5987 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
5988 IX86_BUILTIN_MOVMSKPS256.
5989 (ix86_init_mmx_sse_builtins): Support AVX builtins.
5990 (ix86_expand_args_builtin): Likewise.
5991 (ix86_expand_special_args_builtin): Likewise.
5992 (ix86_hard_regno_mode_ok): Handle AVX modes.
5993 (ix86_expand_vector_init_duplicate): Likewise.
5994 (ix86_expand_vector_init_one_nonzero): Likewise.
5995 (ix86_expand_vector_init_one_var): Likewise.
5996 (ix86_expand_vector_init_concat): Likewise.
5997 (ix86_expand_vector_init_general): Likewise.
5998 (ix86_expand_vector_set): Likewise.
5999 (ix86_vector_mode_supported_p): Likewise.
6000 (x86_extended_reg_mentioned_p): Check INSN_P before using
6001 PATTERN.
6002
6003 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6004 OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
6005
6006 * config/i386/i386.h (TARGET_AVX): New.
6007 (TARGET_FMA): Likewise.
6008 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
6009 (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
6010 (VALID_AVX256_REG_MODE): New.
6011 (AVX256_VEC_FLOAT_MODE_P): Likewise.
6012 (AVX_FLOAT_MODE_P): Likewise.
6013 (AVX128_VEC_FLOAT_MODE_P): Likewise.
6014 (AVX256_VEC_FLOAT_MODE_P): Likewise.
6015 (AVX_VEC_FLOAT_MODE_P): Likewise.
6016 (ASM_OUTPUT_AVX_PREFIX): Likewise.
6017 (ASM_OUTPUT_OPCODE): Likewise.
6018 (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
6019 support.
6020 (SSE_REG_MODE_P): Allow 256bit vector modes.
6021 (ix86_args): Add a warn_avx field.
6022
6023 * config/i386/i386.md (UNSPEC_PCMP): New.
6024 (UNSPEC_VPERMIL): Likewise.
6025 (UNSPEC_VPERMIL2): Likewise.
6026 (UNSPEC_VPERMIL2F128): Likewise.
6027 (UNSPEC_MASKLOAD): Likewise.
6028 (UNSPEC_MASKSTORE): Likewise.
6029 (UNSPEC_CAST): Likewise.
6030 (UNSPEC_VTESTP): Likewise.
6031 (UNSPECV_VZEROALL): Likewise.
6032 (UNSPECV_VZEROUPPER): Likewise.
6033 (XMM0_REG): Likewise.
6034 (XMM1_REG): Likewise.
6035 (XMM2_REG): Likewise.
6036 (XMM3_REG): Likewise.
6037 (XMM4_REG): Likewise.
6038 (XMM5_REG): Likewise.
6039 (XMM6_REG): Likewise.
6040 (XMM8_REG): Likewise.
6041 (XMM9_REG): Likewise.
6042 (XMM10_REG): Likewise.
6043 (XMM11_REG): Likewise.
6044 (XMM12_REG): Likewise.
6045 (XMM13_REG): Likewise.
6046 (XMM14_REG): Likewise.
6047 (XMM15_REG): Likewise.
6048 (prefix): Likewise.
6049 (prefix_vex_imm8): Likewise.
6050 (prefix_vex_w): Likewise.
6051 (length_vex): Likewise.
6052 (maxmin): Likewise.
6053 (movoi): Likewise.
6054 (*avx_ashlti3): Likewise.
6055 (*avx_lshrti3): Likewise.
6056 (*avx_setcc<mode>): Likewise.
6057 (*fop_<mode>_comm_mixed_avx): Likewise.
6058 (*fop_<mode>_comm_avx): Likewise.
6059 (*fop_<mode>_1_mixed_avx): Likewise.
6060 (*fop_<mode>_1_avx): Likewise.
6061 (*avx_<code><mode>3): Likewise.
6062 (*avx_ieee_smin<mode>3): Likewise.
6063 (*avx_ieee_smax<mode>3): Likewise.
6064 (mode): Add OI, V8SF and V4DF.
6065 (length): Support VEX prefix.
6066 (*cmpfp_i_mixed): Set prefix attribute.
6067 (*cmpfp_i_sse): Likewise.
6068 (*cmpfp_iu_mixed): Likewise.
6069 (*cmpfp_iu_sse): Likewise.
6070 (*movsi_1): Support AVX.
6071 (*movdi_2): Likewise.
6072 (*movdi_1_rex64): Likewise.
6073 (*movti_internal): Likewise.
6074 (*movti_rex64): Likewise.
6075 (*movsf_1): Likewise.
6076 (*movdf_nointeger): Likewise.
6077 (*movdf_integer_rex64): Likewise.
6078 (*movtf_internal): Likewise.
6079 (zero_extendsidi2_32): Likewise.
6080 (zero_extendsidi2_rex64): Likewise.
6081 (*extendsfdf2_mixed): Likewise.
6082 (*extendsfdf2_sse): Likewise.
6083 (*truncdfsf_fast_mixed): Likewise.
6084 (*truncdfsf_fast_sse): Likewise.
6085 (*truncdfsf_mixed): Likewise.
6086 (fix_trunc<mode>di_sse): Likewise.
6087 (fix_trunc<mode>si_sse): Likewise.
6088 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6089 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6090 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6091 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6092 (*rcpsf2_sse): Likewise.
6093 (*rsqrtsf2_sse): Likewise.
6094 (*sqrt<mode>2_sse): Likewise.
6095 (sse4_1_round<mode>2): Likewise.
6096 (*sse_prologue_save_insn): Disallow REX prefix for AVX.
6097 Support AVX. Set length attribute properly for AVX.
6098
6099 * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
6100 (VECTOR_MODES (FLOAT, 32)): Likewise.
6101 (VECTOR_MODE (INT, DI, 8)): Likewise.
6102 (VECTOR_MODE (INT, HI, 32)): Likewise.
6103 (VECTOR_MODE (INT, QI, 64)): Likewise.
6104 (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
6105 (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
6106 (VECTOR_MODE (INT, DI, 4)): Removed.
6107 (VECTOR_MODE (INT, SI, 8)): Likewise.
6108 (VECTOR_MODE (INT, HI, 16)): Likewise.
6109 (VECTOR_MODE (INT, QI, 32)): Likewise.
6110 (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
6111 (INT_MODE (OI, 32)): Likewise.
6112
6113 * config/i386/i386.opt (mavx): New.
6114 (mfma): Likewise.
6115
6116 * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
6117
6118 * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
6119 (*mov<mode>_internal_avx): New.
6120 (*movv2sf_internal_rex64_avx): Likewise.
6121 (*movv2sf_internal_avx): Likewise.
6122
6123 * config/i386/predicates.md (const_4_to_5_operand): New.
6124 (const_6_to_7_operand): Likewise.
6125 (const_8_to_11_operand): Likewise.
6126 (const_12_to_15_operand): Likewise.
6127 (avx_comparison_float_operator): Likewise.
6128
6129 * config/i386/sse.md (AVX256MODEI): New.
6130 (AVX256MODE): Likewise.
6131 (AVXMODEQI): Likewise.
6132 (AVXMODE): Likewise.
6133 (AVX256MODEF2P): Likewise.
6134 (AVX256MODE2P): Likewise.
6135 (AVX256MODE4P): Likewise.
6136 (AVX256MODE8P): Likewise.
6137 (AVXMODEF2P): Likewise.
6138 (AVXMODEF4P): Likewise.
6139 (AVXMODEDCVTDQ2PS): Likewise.
6140 (AVXMODEDCVTPS2DQ): Likewise.
6141 (avxvecmode): Likewise.
6142 (avxvecpsmode): Likewise.
6143 (avxhalfvecmode): Likewise.
6144 (avxscalarmode): Likewise.
6145 (avxcvtvecmode): Likewise.
6146 (avxpermvecmode): Likewise.
6147 (avxmodesuffixf2c): Likewise.
6148 (avxmodesuffixp): Likewise.
6149 (avxmodesuffixs): Likewise.
6150 (avxmodesuffix): Likewise.
6151 (vpermilbits): Likewise.
6152 (pinsrbits): Likewise.
6153 (mov<mode>): Likewise.
6154 (*mov<mode>_internal): Likewise.
6155 (push<mode>1): Likewise.
6156 (movmisalign<mode>): Likewise.
6157 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6158 (avx_movdqu<avxmodesuffix>): Likewise.
6159 (avx_lddqu<avxmodesuffix>): Likewise.
6160 (<plusminus_insn><mode>3): Likewise.
6161 (*avx_<plusminus_insn><mode>3): Likewise.
6162 (*avx_vm<plusminus_insn><mode>3): Likewise.
6163 (mul<mode>3): Likewise.
6164 (*avx_mul<mode>3): Likewise.
6165 (*avx_vmmul<mode>3): Likewise.
6166 (divv8sf3): Likewise.
6167 (divv4df3): Likewise.
6168 (avx_div<mode>3): Likewise.
6169 (*avx_div<mode>3): Likewise.
6170 (*avx_vmdiv<mode>3): Likewise.
6171 (avx_rcpv8sf2): Likewise.
6172 (*avx_vmrcpv4sf2): Likewise.
6173 (sqrtv8sf2): Likewise.
6174 (avx_sqrtv8sf2): Likewise.
6175 (*avx_vmsqrt<mode>2): Likewise.
6176 (rsqrtv8sf2): Likewise.
6177 (avx_rsqrtv8sf2): Likewise.
6178 (*avx_vmrsqrtv4sf2): Likewise.
6179 (<code><mode>3): Likewise.
6180 (*avx_<code><mode>3_finite): Likewise.
6181 (*avx_<code><mode>3): Likewise.
6182 (*avx_vm<code><mode>3): Likewise.
6183 (*avx_ieee_smin<mode>3): Likewise.
6184 (*avx_ieee_smax<mode>3): Likewise.
6185 (avx_addsubv8sf3): Likewise.
6186 (avx_addsubv4df3): Likewise.
6187 (*avx_addsubv4sf3): Likewise.
6188 (*avx_addsubv2df3): Likewise.
6189 (avx_h<plusminus_insn>v4df3): Likewise.
6190 (avx_h<plusminus_insn>v8sf3): Likewise.
6191 (*avx_h<plusminus_insn>v4sf3): Likewise.
6192 (*avx_h<plusminus_insn>v2df3): Likewise.
6193 (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
6194 (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
6195 (*avx_maskcmp<mode>3): Likewise.
6196 (avx_nand<mode>3): Likewise.
6197 (*avx_<code><mode>3): Likewise.
6198 (*avx_nand<mode>3): Likewise.
6199 (*avx_<code><mode>3): Likewise.
6200 (*avx_cvtsi2ss): Likewise.
6201 (*avx_cvtsi2ssq): Likewise.
6202 (*avx_cvtsi2sd): Likewise.
6203 (*avx_cvtsi2sdq): Likewise.
6204 (*avx_cvtsd2ss): Likewise.
6205 (avx_cvtss2sd): Likewise.
6206 (avx_cvtdq2ps<avxmodesuffix>): Likewise.
6207 (avx_cvtps2dq<avxmodesuffix>): Likewise.
6208 (avx_cvttps2dq<avxmodesuffix>): Likewise.
6209 (*avx_cvtsi2sd): Likewise.
6210 (*avx_cvtsi2sdq): Likewise.
6211 (avx_cvtdq2pd256): Likewise.
6212 (avx_cvtpd2dq256): Likewise.
6213 (avx_cvttpd2dq256): Likewise.
6214 (*avx_cvtsd2ss): Likewise.
6215 (*avx_cvtss2sd): Likewise.
6216 (avx_cvtpd2ps256): Likewise.
6217 (avx_cvtps2pd256): Likewise.
6218 (*avx_movhlps): Likewise.
6219 (*avx_movlhps): Likewise.
6220 (avx_unpckhps256): Likewise.
6221 (*avx_unpckhps): Likewise.
6222 (avx_unpcklps256): Likewise.
6223 (*avx_unpcklps): Likewise.
6224 (avx_movshdup256): Likewise.
6225 (avx_movsldup256): Likewise.
6226 (avx_shufps256): Likewise.
6227 (avx_shufps256_1): Likewise.
6228 (*avx_shufps_<mode>): Likewise.
6229 (*avx_loadhps): Likewise.
6230 (*avx_storelps): Likewise.
6231 (*avx_loadlps): Likewise.
6232 (*avx_movss): Likewise.
6233 (*vec_dupv4sf_avx): Likewise.
6234 (*vec_concatv2sf_avx): Likewise.
6235 (*vec_concatv4sf_avx): Likewise.
6236 (*vec_setv4sf_0_avx): Likewise.
6237 (*vec_setv4sf_avx): Likewise.
6238 (*avx_insertps): Likewise.
6239 (avx_vextractf128<mode>): Likewise.
6240 (vec_extract_lo_<mode>): Likewise.
6241 (vec_extract_hi_<mode>): Likewise.
6242 (vec_extract_lo_<mode>): Likewise.
6243 (vec_extract_hi_<mode>): Likewise.
6244 (vec_extract_lo_v16hi): Likewise.
6245 (vec_extract_hi_v16hi): Likewise.
6246 (vec_extract_lo_v32qi): Likewise.
6247 (vec_extract_hi_v32qi): Likewise.
6248 (avx_unpckhpd256): Likewise.
6249 (*avx_unpckhpd): Likewise.
6250 (avx_movddup256): Likewise.
6251 (*avx_movddup): Likewise.
6252 (avx_unpcklpd256): Likewise.
6253 (*avx_unpcklpd): Likewise.
6254 (avx_shufpd256): Likewise.
6255 (avx_shufpd256_1): Likewise.
6256 (*avx_punpckhqdq): Likewise.
6257 (*avx_punpcklqdq): Likewise.
6258 (*avx_shufpd_<mode>): Likewise.
6259 (*avx_storehpd): Likewise.
6260 (*avx_loadhpd): Likewise.
6261 (*avx_loadlpd): Likewise.
6262 (*avx_movsd): Likewise.
6263 (*vec_concatv2df_avx): Likewise.
6264 (*avx_<plusminus_insn><mode>3): Likewise.
6265 (*avx_<plusminus_insn><mode>3): Likewise.
6266 (*avx_mulv8hi3): Likewise.
6267 (*avxv8hi3_highpart): Likewise.
6268 (*avx_umulv8hi3_highpart): Likewise.
6269 (*avx_umulv2siv2di3): Likewise.
6270 (*avx_mulv2siv2di3): Likewise.
6271 (*avx_pmaddwd): Likewise.
6272 (*avx_mulv4si3): Likewise.
6273 (*avx_ashr<mode>3): Likewise.
6274 (*avx_lshr<mode>3): Likewise.
6275 (*avx_ashl<mode>3): Likewise.
6276 (*avx_<code><mode>3): Likewise.
6277 (*avx_eq<mode>3): Likewise.
6278 (*avx_gt<mode>3): Likewise.
6279 (*avx_nand<mode>3): Likewise.
6280 (*avx_nand<mode>3): Likewise.
6281 (*avx_<code><mode>3): Likewise.
6282 (*avx_<code><mode>3): Likewise.
6283 (*avx_packsswb): Likewise.
6284 (*avx_packssdw): Likewise.
6285 (*avx_packuswb): Likewise.
6286 (*avx_punpckhbw): Likewise.
6287 (*avx_punpcklbw): Likewise.
6288 (*avx_punpckhwd): Likewise.
6289 (*avx_punpcklwd): Likewise.
6290 (*avx_punpckhdq): Likewise.
6291 (*avx_punpckldq): Likewise.
6292 (*avx_pinsr<avxmodesuffixs>): Likewise.
6293 (*avx_pinsrq): Likewise.
6294 (*avx_loadld): Likewise.
6295 (*vec_extractv2di_1_rex64_avx): Likewise.
6296 (*vec_extractv2di_1_avx): Likewise.
6297 (*vec_dupv2di_avx): Likewise.
6298 (*vec_concatv2si_avx): Likewise.
6299 (*vec_concatv4si_1_avx): Likewise.
6300 (*vec_concatv2di_avx): Likewise.
6301 (*vec_concatv2di_rex64_avx): Likewise.
6302 (*avx_uavgv16qi3): Likewise.
6303 (*avx_uavgv8hi3): Likewise.
6304 (*avx_psadbw): Likewise.
6305 (avx_movmskp<avxmodesuffixf2c>256): Likewise.
6306 (*avx_phaddwv8hi3): Likewise.
6307 (*avx_phadddv4si3): Likewise.
6308 (*avx_phaddswv8hi3): Likewise.
6309 (*avx_phsubwv8hi3): Likewise.
6310 (*avx_phsubdv4si3): Likewise.
6311 (*avx_phsubswv8hi3): Likewise.
6312 (*avx_pmaddubsw128): Likewise.
6313 (*avx_pmulhrswv8hi3): Likewise.
6314 (*avx_pshufbv16qi3): Likewise.
6315 (*avx_psign<mode>3): Likewise.
6316 (*avx_palignrti): Likewise.
6317 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6318 (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6319 (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6320 (*avx_mpsadbw): Likewise.
6321 (*avx_packusdw): Likewise.
6322 (*avx_pblendvb): Likewise.
6323 (*avx_pblendw): Likewise.
6324 (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6325 (avx_ptest256): Likewise.
6326 (avx_roundp<avxmodesuffixf2c>256): Likewise.
6327 (*avx_rounds<ssemodesuffixf2c>): Likewise.
6328 (*avx_aesenc): Likewise.
6329 (*avx_aesenclast): Likewise.
6330 (*avx_aesdec): Likewise.
6331 (*avx_aesdeclast): Likewise.
6332 (avx_vzeroupper): Likewise.
6333 (avx_vzeroupper_rex64): Likewise.
6334 (avx_vpermil<mode>): Likewise.
6335 (avx_vpermilvar<mode>3): Likewise.
6336 (avx_vpermil2<mode>3): Likewise.
6337 (avx_vperm2f128<mode>3): Likewise.
6338 (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6339 (avx_vbroadcastss256): Likewise.
6340 (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
6341 (avx_vinsertf128<mode>): Likewise.
6342 (vec_set_lo_<mode>): Likewise.
6343 (vec_set_hi_<mode>): Likewise.
6344 (vec_set_lo_<mode>): Likewise.
6345 (vec_set_hi_<mode>): Likewise.
6346 (vec_set_lo_v16hi): Likewise.
6347 (vec_set_hi_v16hi): Likewise.
6348 (vec_set_lo_v32qi): Likewise.
6349 (vec_set_hi_v32qi): Likewise.
6350 (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6351 (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
6352 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
6353 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
6354 (vec_init<mode>): Likewise.
6355 (*vec_concat<mode>_avx): Likewise.
6356 (blendbits): Support V8SF and V4DF.
6357 (sse2_movq128): Support AVX.
6358 (<sse>_movnt<mode>): Likewise.
6359 (sse2_movntv2di): Likewise.
6360 (sse_rcpv4sf2): Likewise.
6361 (sse_sqrtv4sf2): Likewise.
6362 (sse_rsqrtv4sf2): Likewise.
6363 (<sse>_comi): Likewise.
6364 (<sse>_ucomi): Likewise.
6365 (sse_cvtss2si): Likewise.
6366 (sse_cvtss2si_2): Likewise.
6367 (sse_cvtss2siq): Likewise.
6368 (sse_cvtss2siq_2): Likewise.
6369 (sse_cvttss2si): Likewise.
6370 (sse_cvttss2siq): Likewise.
6371 (sse2_cvtsd2si): Likewise.
6372 (sse2_cvtsd2si_2): Likewise.
6373 (sse2_cvtsd2siq): Likewise.
6374 (sse2_cvtsd2siq_2): Likewise.
6375 (sse2_cvttsd2si): Likewise.
6376 (sse2_cvttsd2siq): Likewise.
6377 (sse2_cvtdq2pd): Likewise.
6378 (*sse2_cvtpd2dq): Likewise.
6379 (*sse2_cvttpd2dq): Likewise.
6380 (*sse2_cvtpd2ps): Likewise.
6381 (sse2_cvtps2pd): Likewise.
6382 (sse3_movshdup): Likewise.
6383 (sse3_movsldup): Likewise.
6384 (sse_storehps): Likewise.
6385 (*sse4_1_extractps): Likewise.
6386 (sse2_storelpd): Likewise.
6387 (vec_dupv2df_sse3): Likewise.
6388 (*vec_concatv2df_sse3): Likewise.
6389 (*sse4_1_pextrb): Likewise.
6390 (*sse4_1_pextrb_memory): Likewise.
6391 (*sse2_pextrw): Likewise.
6392 (*sse4_1_pextrw_memory): Likewise.
6393 (*sse4_1_pextrd): Likewise.
6394 (*sse4_1_pextrq): Likewise.
6395 (sse2_pshufd_1): Likewise.
6396 (sse2_pshuflw_1): Likewise.
6397 (sse2_pshufhw_1): Likewise.
6398 (*sse2_storeq_rex64): Likewise.
6399 (*vec_dupv4si): Likewise.
6400 (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
6401 (sse2_pmovmskb): Likewise.
6402 (*sse2_maskmovdqu): Likewise.
6403 (*sse2_maskmovdqu_rex64): Likewise.
6404 (sse_ldmxcsr): Likewise.
6405 (sse_stmxcsr): Likewise.
6406 (abs<mode>2): Likewise.
6407 (sse4_1_movntdqa): Likewise.
6408 (sse4_1_phminposuw): Likewise.
6409 (sse4_1_extendv8qiv8hi2): Likewise.
6410 (*sse4_1_extendv8qiv8hi2): Likewise.
6411 (sse4_1_extendv4qiv4si2): Likewise.
6412 (*sse4_1_extendv4qiv4si2): Likewise.
6413 (sse4_1_extendv2qiv2di2): Likewise.
6414 (*sse4_1_extendv2qiv2di2): Likewise.
6415 (sse4_1_extendv4hiv4si2): Likewise.
6416 (*sse4_1_extendv4hiv4si2): Likewise.
6417 (sse4_1_extendv2hiv2di2): Likewise.
6418 (*sse4_1_extendv2hiv2di2): Likewise.
6419 (sse4_1_extendv2siv2di2): Likewise.
6420 (*sse4_1_extendv2siv2di2): Likewise.
6421 (sse4_1_zero_extendv8qiv8hi2): Likewise.
6422 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
6423 (sse4_1_zero_extendv4qiv4si2): Likewise.
6424 (*sse4_1_zero_extendv4qiv4si2): Likewise.
6425 (sse4_1_zero_extendv2qiv2di2): Likewise.
6426 (*sse4_1_zero_extendv2qiv2di2): Likewise.
6427 (sse4_1_zero_extendv4hiv4si2): Likewise.
6428 (*sse4_1_zero_extendv4hiv4si2): Likewise.
6429 (sse4_1_zero_extendv2hiv2di2): Likewise.
6430 (*sse4_1_zero_extendv2hiv2di2): Likewise.
6431 (sse4_1_zero_extendv2siv2di2): Likewise.
6432 (*sse4_1_zero_extendv2siv2di2): Likewise.
6433 (sse4_1_ptest): Likewise.
6434 (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
6435 (sse4_2_pcmpestri): Likewise.
6436 (sse4_2_pcmpestrm): Likewise.
6437 (sse4_2_pcmpistri): Likewise.
6438 (sse4_2_pcmpistrm): Likewise.
6439 (aesimc): Likewise.
6440 (aeskeygenassist): Likewise.
6441
64422008-08-28 Uros Bizjak <ubizjak@gmail.com>
6443
6444 * config/i386/predicates.md (vzeroall_operation): New.
6445
6446 * config/i386/sse.md (avx_vzeroall): New.
6447 (*avx_vzeroall): Likewise.
6448
f67358da 64492008-08-28 Paul Brook <paul@codesourcery.com>
95879c72
L
6450 Mark Shinwell <shinwell@codesourcery.com>
6451 Richard Earnshaw <richard.earnshaw@arm.com>
f67358da
PB
6452
6453 * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
6454 (TARGET_MIN_ANCHOR_OFFSET): New.
6455 (arm_override_options): Set correct anchor ranges for Thumb-1
6456 and Thumb-2 if required.
6457 (legitimize_pic_address): Handle case involving a TLS symbol
6458 reference with an addend.
6459 (arm_optimization_options): Enable section anchors at -O1 and
6460 above.
6461 * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
6462 * config/arm/arm-protos.h (arm_optimization_options): New.
6463
728a0142
NC
64642008-08-28 Nick Clifton <nickc@redhat.com>
6465
cf7442bb
NC
6466 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
6467 * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
6468 attribute.
6469
724df8d2 6470 * config/v850/v850.h (IRA_COVER_CLASSES): Define.
8a88c276 6471 * config/v850/v850.md (return): Remove frame size restriction.
724df8d2 6472
d43b42f9
NC
6473 * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
6474
888142a6
NC
6475 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
6476
b34126ed
NC
6477 * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
6478
728a0142
NC
6479 * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
6480
874101ec
PB
64812008-08-28 Paul Brook <paul@codesourcery.com>
6482
6483 * config/arm/vfp11.md: Update license notice.
6484 * config/arm/cortex-r4.md: Ditto.
6485
99781d25
RG
64862008-08-28 Richard Guenther <rguenther@suse.de>
6487
6488 PR tree-optimization/37207
6489 * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
6490 tuplification bug.
6491
5bdc1946
DS
64922008-08-28 Dodji Seketeli <dodji@redhat.com>
6493
6494 PR c++/36741
6495 * tree.c (int_fits_type_p): Don't forget unsigned integers
6496 of type sizetype which higher end word equals -1.
6497
0fca40f5
IR
64982008-08-28 Ira Rosen <irar@il.ibm.com>
6499
6500 * target.h (struct vectorize): Add new target builtin.
8a88c276 6501 * tree-vectorizer.c (destroy_loop_vec_info): Call
0fca40f5
IR
6502 vect_free_slp_instance instead of vect_free_slp_node.
6503 * tree-vectorizer.h (enum slp_load_perm_type): New.
6504 (struct _slp_instance): Add new fields.
6505 (SLP_INSTANCE_LOAD_PERMUTATION): New.
6506 (SLP_INSTANCE_LOADS): New.
6507 (vect_free_slp_tree): Remove.
8a88c276 6508 (vect_free_slp_instance): Declare.
0fca40f5
IR
6509 (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
6510 (vectorizable_load): Add argument.
6511 (vect_transform_slp_perm_load): New.
8a88c276 6512 * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
0fca40f5
IR
6513 vectorizable_load.
6514 (vect_get_place_in_interleaving_chain): New function.
6515 (vect_free_slp_tree): Make static.
6516 (vect_free_slp_instance): New function.
8a88c276 6517 (vect_build_slp_tree): Add new arguments. Allow load permutations and
0fca40f5
IR
6518 collect the load location in the interleaving chain.
6519 (vect_supported_slp_permutation_p): New function.
6520 (vect_supported_load_permutation_p): Likewise.
6521 (vect_analyze_slp_instance): In case of loads permutation, call
8a88c276 6522 vect_supported_load_permutation_p to check that the permutation is
0fca40f5
IR
6523 supported.
6524 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
6525 * tree-vect-transform.c (vect_transform_stmt): Add new argument.
6526 (vect_create_mask_and_perm): New function.
6527 (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
8a88c276
AS
6528 (vectorizable_load): Add an argument. Don't keep the created vectors
6529 statements in the node if permutation is required. Call
0fca40f5 6530 vect_transform_slp_perm_load to generate the permutation.
8a88c276 6531 (vect_transform_stmt): Add new argument. Call vectorizable_load with
0fca40f5 6532 additional argument.
8a88c276
AS
6533 (vect_schedule_slp_instance): In case of loads permutation, allocate
6534 vectorized statements structure for all the related SLP nodes. Call
0fca40f5 6535 vect_transform_stmt with addditional argument.
8a88c276
AS
6536 (vect_transform_loop): Call vect_transform_stmt with correct arguments.
6537 * config/spu/spu.c (spu_builtin_vec_perm): New.
0fca40f5
IR
6538 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
6539 * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
6540 * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
6541 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
6542
a75150ae
CF
65432008-08-28 Chris Fairles <chris.fairles@gmail.com>
6544
95879c72 6545 * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach,
a75150ae
CF
6546 __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
6547 __gthread_cond_signal, __gthread_cond_timedwait,
6548 __gthread_cond_timedwait_recursive): New functions.
6549 * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
6550 Likewise.
6551 * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
6552 thread interfaces.
6553
0b45fd7a
RG
65542008-08-28 Richard Guenther <rguenther@suse.de>
6555
6556 PR middle-end/37005
6557 * fold-const.c (maybe_canonicalize_comparison_1): Require
6558 undefined overflow only for canonicalizing A +- CST cmp CST.
6559 Make sure to not generate new constants that are not inside
6560 their TYPE_MIN/MAX_VALUE range.
6561 (maybe_canonicalize_comparison): Remove undefined overflow
6562 checking from here.
6563 (fold_binary): Remove now duplicate folding.
6564
fd990e64
PC
65652008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
6566
6567 * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
6568 use not updated in the last change.
6569
d4d46566
KK
65702008-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
6571
6572 * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
6573 (IRA_COVER_CLASSES): Add FPUL_REGS.
6574
1bfb8f51
MLI
65752008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6576
6577 PR 37217
843724f7 6578 * c-common.c (conversion_warning): Check for null operands.
1bfb8f51 6579
e9527cfd
MLI
65802008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6581
6582 PR c/31673
6583 * c-decl.c (check_for_loop_decls): Improve error message. Give
6584 hint.
6585
4ccd12e5
MLI
65862008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6587
6588 PR c/37186
6589 * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
6590 (convert_for_assignment): Pass corrent OPT_W* parameter to
6591 WARN_FOR_ASSIGNMENT.
6592
8d5f60ac
PC
65932008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
6594
6595 PR c++/35321
6596 * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
6597
a8221440
PB
65982008-08-27 Paul Brook <paul@codesourcery.com>
6599
6600 * config.gcc: Loosen checks for arm uclinux eabi targets.
6601
f5d09f36
PB
66022008-08-27 Paul Brook <paul@codesourcery.com>
6603
6604 * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
6605 _clzsi2.
6606 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
6607
7cf1a11c
DG
66082008-08-26 Douglas Gregor <doug.gregor@gmail.com>
6609
6610 * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
6611 the enumerators of an ENUMERAL_TYPE.
6612 * dbxout.c (dbxout_type): Ditto.
6613
24713e85
AP
66142008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
6615
6616 PR rtl-opt/37219
6617 * fwprop.c (fwprop): Check that the loop_father is the outer loop.
6618 (fwprop_addr): Check that the loop_father is not the outer loop.
6619
66202008-08-26 Paul Brook <paul@codesourcery.com>
a8e17e9e
PB
6621
6622 * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
6623 Remove documentation entry for fmul type.
6624 Use fmuls to annotate single-precision multiplication patterns,
6625 fmuld to annotate double-precision multiplication patterns,
6626 fmacs to annotate single-precision multiply-accumulate patterns
6627 and fmacd to annotate double-precision multiply-accumulate patterns.
6628 * config/arm/vfp11.md: Update reservations accordingly.
6629 * config/arm/arm.md: Note that certain values of the "type"
6630 attribute are documented in vfp.md.
6631 * config/arm/arm1020e.md: Remove out of date duplicate comment.
6632 (v10_cvt): Use new fmul types.
6633
4ae8027b 66342008-08-26 Paul Brook <paul@codesourcery.com>
f08d75a9
PB
6635
6636 * config/arm/vfp.md: Move pipeline description for VFP11 to...
6637 * config/arm/vfp11.md: ...here. New.
6638 * config/arm/arm.md: Include vfp11.md.
6639
69abac81
HPN
66402008-08-26 Hans-Peter Nilsson <hp@axis.com>
6641
6642 * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
6643 parameter to inform call.
6644
5d2b84f8
JL
66452008-08-26 Jeff Law <law@redhat.com>
6646
6647 * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
6648 avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
6649 preferred class when copying a constant into a partial word register.
6650
4e9b57fa
BE
66512008-08-26 Ben Elliston <bje@au.ibm.com>
6652
6653 * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
6654 * cp/typeck.c: Likewise.
6655 * cp/tree.c: Likewise.
6656 * gimple-low.c: Likewise.
6657 * jump.c: Likewise.
6658
058e97ec
VM
66592008-08-26 Vladimir Makarov <vmakarov@redhat.com>
6660
6661 * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
6662 ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
6663
6664 * doc/passes.texi: Describe IRA.
6665
6666 * doc/tm.texi (IRA_COVER_CLASSES,
6667 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
6668
6669 * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
6670 (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
6671 -fira-propagate-cost, -fno-ira-share-save-slots,
6672 -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
6673
6674 * flags.h (ira_algorithm): New enumeration.
6675 (flag_ira_algorithm, flag_ira_verbose): New external variable
6676 declarations.
6677
6678 * postreload.c (gate_handle_postreload): Don't do post reload
6679 optimizations unless the reload is completed.
6680
6681 * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
6682 IRA.
6683
6684 * tree-pass.h (pass_ira): New external variable declaration.
6685
6686 * reload.h: Add 2008 to the Copyright.
8a88c276 6687
058e97ec
VM
6688 * cfgloopanal.c: Include params.h.
6689 (estimate_reg_pressure_cost): Decrease cost for IRA optimization
6690 mode.
8a88c276 6691
058e97ec
VM
6692 * params.h (IRA_MAX_LOOPS_NUM): New macro.
6693
6694 * toplev.c (ira.h): New include.
6695 (flag_ira_algorithm, flag_ira_verbose): New external variables.
6696 (backend_init_target): Call ira_init.
6697 (backend_init): Call ira_init_once.
6698 (finalize): Call finish_ira_once.
6699
6700 * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
6701 flag_ira_share_save_slots, flag_ira_share_spill_slots): New
6702 external variables.
6703
6704 * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
6705 may_move_out_cost): New external variable declarations.
6706 (move_table): New typedef.
8a88c276 6707
058e97ec
VM
6708 * caller-save.c: Include headers output.h and ira.h.
6709 (no_caller_save_reg_set): New global variable.
6710 (save_slots_num, save_slots): New variables.
6711 (reg_save_code, reg_restore_code, add_stored_regs): Add
6712 prototypes.
6713 (init_caller_save): Set up no_caller_save_reg_set.
6714 (init_save_areas): Reset save_slots_num.
6715 (saved_hard_reg): New structure.
6716 (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
6717 (initiate_saved_hard_regs, new_saved_hard_reg,
6718 finish_saved_hard_regs, saved_hard_reg_compare_func): New
6719 functions.
6720 (setup_save_areas): Add code for sharing stack slots.
6721 (all_blocks): New variable.
6722 (save_call_clobbered_regs): Process pseudo-register too.
6723 (mark_set_regs): Process pseudo-register too.
6724 (insert_one_insn): Put the insn after bb note in a empty basic
6725 block. Add insn check.
8a88c276 6726
058e97ec
VM
6727 * global.c (eliminable_regset): Make it external.
6728 (mark_elimination): Use DF_LR_IN for IRA.
6729 (pseudo_for_reload_consideration_p): New.
6730 (build_insn_chain): Make it external. Don't ignore spilled
6731 pseudos for IRA. Use pseudo_for_reload_consideration_p.
6732 (gate_handle_global_alloc): New function.
6733 (pass_global_alloc): Add the gate function.
6734
6735 * opts.c (decode_options): Set up flag_ira. Print the warning for
6736 -fira.
6737 (common_handle_option): Process -fira-algorithm and -fira-verbose.
6738
6739 * timevar.def (TV_IRA, TV_RELOAD): New passes.
6740
6741 * regmove.c (regmove_optimize): Don't do replacement of output for
6742 IRA.
6743
6744 * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
6745 New external variable declarations.
6746
6747 * local-alloc.c (update_equiv_regs): Make it external. Return
6748 true if jump label rebuilding should be done. Rescan new_insn for
6749 notes.
6750 (gate_handle_local_alloc): New function.
6751 (pass_local_alloc): Add the gate function.
6752
6753 * alias.c (value_addr_p, stack_addr_p): New functions.
6754 (nonoverlapping_memrefs_p): Use them for IRA.
6755
6756 * common.opt (fira, fira-algorithm, fira-coalesce,
6757 fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
6758 fira-verbose): New options.
6759
6760 * regclass.c (reg_class_subclasses, contains_reg_of_mode,
6761 move_cost, may_move_in_cost, may_move_out_cost): Make the
6762 variables external.
6763 (move_table): Remove typedef.
6764 (init_move_cost): Make it external.
6765 (allocate_reg_info, resize_reg_info, setup_reg_classes): New
6766 functions.
6767
6768 * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
6769 setup_reg_classes): New function prototypes.
6770 (eliminable_regset): New external variable declaration.
6771 (build_insn_chain, update_equiv_regs): New function prototypes.
8a88c276 6772
058e97ec
VM
6773 * Makefile.in (IRA_INT_H): New definition.
6774 (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
6775 ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
6776 (reload1.o, toplev.o): Add dependence on ira.h.
6777 (cfgloopanal.o): Add PARAMS_H.
6778 (caller-save.o): Add dependence on output.h and ira.h.
6779 (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
6780 ira-emit.o, ira-lives.o): New entries.
6781
6782 * passes.c (pass_ira): New pass.
6783
6784 * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
6785
6786 * reload1.c (ira.h): Include the header.
6787 (changed_allocation_pseudos): New bitmap.
6788 (init_reload): Initiate the bitmap.
6789 (compute_use_by_pseudos): Permits spilled registers in FROM.
6790 (temp_pseudo_reg_arr): New variable.
6791 (reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
6792 IRA. Call alter_reg with the additional parameter. Don't clear
6793 spilled_pseudos for IRA. Restore original insn chain for IRA.
6794 Clear changed_allocation_pseudos at the end of reload.
6795 (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
6796 (hard_regno_to_pseudo_regno): New variable.
6797 (count_pseudo): Check spilled pseudos. Set up
6798 hard_regno_to_pseudo_regno.
6799 (count_spilled_pseudo): Check spilled pseudos. Update
6800 hard_regno_to_pseudo_regno.
6801 (find_reg): Use better_spill_reload_regno_p. Check
6802 hard_regno_to_pseudo_regno.
6803 (alter_reg): Set up spilled_pseudos. Add a new parameter. Add
6804 code for IRA.
6805 (eliminate_regs_1): Use additional parameter for alter_reg.
6806 (finish_spills): Set up pseudo_previous_regs only for spilled
6807 pseudos. Call reassign_pseudos once for all spilled pseudos, pass
6808 more arguments. Don't clear live_throughout and dead_or_set for
6809 spilled pseudos. Use additional parameter for alter_reg. Call
6810 mark_allocation_change. Set up changed_allocation_pseudos.
6811 Remove sanity check.
6812 (emit_input_reload_insns, delete_output_reload): Use additional
6813 parameter for alter_reg. Call mark_allocation_change.
6814 (substitute, gen_reload_chain_without_interm_reg_p): New
6815 functions.
6816 (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
8a88c276 6817
058e97ec 6818 * testsuite/gcc.dg/20080410-1.c: New file.
8a88c276 6819
058e97ec
VM
6820 * config/s390/s390.h (IRA_COVER_CLASSES,
6821 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
6822
6823 * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
6824
6825 * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
6826
6827 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
6828
6829 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
6830
6831 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8a88c276 6832
058e97ec 6833 * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
8a88c276 6834
058e97ec
VM
6835 2008-08-24 Jeff Law <law@redhat.com>
6836 * ira.c (setup_reg_class_intersect_union): Prefer smallest class
6837 when ignoring unavailable registers.
6838
6839 2008-08-24 Jeff Law <law@redhat.com>
6840 * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
6841 FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
6842 * ira.c (setup_eliminable_regset): Check stack_realign_needed.
6843 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
6844
6845 2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
6846 * ira-build.c (allocno_range_compare_func): Stabilize sort.
6847
6848 2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
6849 * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
6850 * reload1.c (find_reg): Process registers in register allocation order.
6851
6852 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
6853 * toplev.c (backend_init_target): Move ira_init call from
6854 here...
6855 (lang_dependent_init_target): ...to here.
6856
6857 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
6858 * ira.c (setup_class_subset_and_memory_move_costs): Don't
6859 calculate memory move costs for NO_REGS.
6860
6861 2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
6862 * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
6863 STACK_REGS is defined.
6864
6865 2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
6866 * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
6867
6868 2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
6869 * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
6870
6871 2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
6872 * config/sh/sh.h (IRA_COVER_CLASSES): Define.
6873 * config/sh/sh.md (movsicc_true+3): Check if emit returns a
6874 barrier.
6875
8ff27c24
VK
68762008-08-26 Victor Kaplansky <victork@il.ibm.com>
6877 Dorit Nuzman <dorit@il.ibm.com>
6878
6879 * gcc/config/spu/spu.md (vec_extract_evenv4si,
6880 vec_extract_evenv4sf, vec_extract_evenv8hi,
6881 vec_extract_evenv16qi, vec_extract_oddv4si,
6882 vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
6883 vec_interleave_highv4sf, vec_interleave_lowv4sf,
6884 vec_interleave_highv4si, vec_interleave_lowv4si,
6885 vec_interleave_highv8hi, vec_interleave_lowv8hi,
6886 vec_interleave_highv16qi, vec_interleave_lowv16qi,
6887 vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
6888
e57903b8
JJ
68892008-08-25 Janis Johnson <janis187@us.ibm.com>
6890
6891 PR target/36756
6892 * config/rs6000/rs6000.c (optimization_options): Don't default to
6893 section anchors without toplevel reorder.
6894
b704f034
UW
68952008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6896
6897 * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
6898 (mfc_end_critical_section): Likewise.
6899
4f538d42
UW
69002008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6901
6902 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
6903 all type qualifiers from element type to vector type.
6904
7cede643
DD
69052008-08-25 David Daney <ddaney@avtrex.com>
6906
6907 * config/mips/mips.md (immediate_insn): Move up in file, fix
6908 comment typo, reformat.
6909 (fetchop_bit, atomic_hiqi_op memory_barrier,
6910 sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
6911 sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
6912 sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
6913 sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
6914 sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
6915 sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
6916 sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
6917 sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
6918 sync_old_nand<mode>, sync_new_nand<mode>,
6919 sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
6920 test_and_set_12): Moved to sync.md.
6921 (sync.md): Include.
6922 * config/mips/sync.md: New file.
6923
e02aa5ec
RH
69242008-08-25 Richard Henderson <rth@redhat.com>
6925
6926 * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
6927 (regsave): Likewise.
6928 (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
6929 (output_cfi_directive): Likewise.
6930 (div_data_align): New.
6931 (output_cfi): Use it.
6932
d97e6aca
AN
69332008-08-24 Adam Nemet <anemet@caviumnetworks.com>
6934
6935 * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
6936 * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
6937 (TARGET_OCTEON): New macro.
6938 (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
6939 (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
6940 (ISA_HAS_POP): New macro.
6941 * config/mips/driver-native.c (host_detect_local_cpu): Handle
6942 Octeon.
6943 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
6944 Handle Octeon.
6945 * config/mips/mips.md (cpu): Add octeon.
6946 (type): Add pop attribute value.
6947 (popcount<mode>2): New pattern.
6948 * doc/invoke.texi (-march=@var{arch}): Add octeon.
6949
5e45130d
JH
69502008-08-24 Jan Hubicka <jh@suse.cz>
6951
6952 * doc/invoke.texi (-fipa-cp-clone): New option.
6953 (-fipa-cp): Update docs.
6954 (--param ipcp-unit-growth):New.
6955 * ipa-cp.c: Include fibheap.h, params.h
6956 (ipcp_initialize_node_lattices): When not cloning, all externally
6957 visible functions are bottom.
6958 (ipcp_need_redirect_p): Accept clones.
6959 (ipcp_insert_stage): Use cost driven heuristics.
6960 (max_count, dead_nodes): New static vars.
6961 (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
6962 ipcp_const_param_count): New functions.
6963 * common.opt (ipa-cp-clone): New command line option.
6964 * params.def (ipcp-unit-growth): New.
6965
657c0925
JH
69662008-08-24 Jan Hubicka <jh@suse.cz>
6967
6968 * tree-inline.c (tree_function_versioning): Look harder
6969 for referenced vars.
6970
692daa90
RL
69712008-08-24 Razya Ladelsky <razya@il.ibm.com>
6972
95879c72
L
6973 PR tree-optimization/37185
6974 * matrix-reorg.c (transform_access_sites): Update changed stmt.
692daa90 6975
0dbca537
JH
69762008-08-23 Jan Hubicka <jh@suse.cz>
6977
6978 * ipa-cp.c (ipcp_analyze_node): New function.
6979 (ipcp_update_cloned_node): Use it.
6980 (ipcp_init_stage): Likewise.
6981 * ipa-inline.c (function_insertion_hook_holder): New static var.
6982 (analyze_function): Break out from ....
6983 (inline_generate_summary): Here; register insertion hook.
6984 (cgraph_decide_inlining): Remove hook.
6985 (add_new_function): New function.
6986
5c69a0df
JH
69872008-08-23 Jan Hubicka <jh@suse.cz>
6988
6989 * opts.c (decode_options): Revert accidental change enabling ipa-cp.
6990
0f1961a2
JH
69912008-08-23 Jan Hubicka <jh@suse.cz>
6992
6993 * ipa-cp.c (constant_val_insert): Remove.
6994 (ipcp_propagate_one_const): Remove.
6995 (ipcp_create_replace_map): Always insert replacements to the map.
6996 (ipcp_insert_stage): Do not try to insert statements by hand.
6997 * tree-inline.c (insert_init_stmt): Break out from ...
6998 (setup_one_parameter): ... here; allow NULL BB pointer.
6999 (tree_function_versioning): Use setup_one_parameter to process
7000 replacement map.
7001
00fc2333
JH
70022008-08-23 Jan Hubicka <jh@suse.cz>
7003
7004 * tree.c (decl_address_ip_invariant_p): New function.
7005 * tree.h (decl_address_ip_invariant_p): Declare.
7006 * gimple.c (strip_invariant_refs): Break out from ...
7007 (is_gimple_invariant_address): ... here
7008 (is_gimple_ip_invariant_address): New function.
7009 (is_gimple_ip_invariant): New function.
7010 * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
7011 Declare.
7012
7013 * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
7014 (ipcp_lat_is_insertable): All constants are insertable.
7015 (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
7016 IPA_CONST_VALUE_REF.
7017 (ipcp_initialize_node_lattices): Propagate all types of operands.
7018 (build_const_val): Do not handle IPA_CONST_VALUE_REF.
7019 (ipcp_create_replace_map): Reformat.
7020 (ipcp_need_redirect_p): Simplify.
7021 (ipcp_insert_stage): Check that argument is used before clonning.
4ae8027b
UB
7022 * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
7023 IPA_CONST_REF.
00fc2333
JH
7024 (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
7025 (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
7026 (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
7027 * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
7028 (jump_func_type): Remove IPA_CONST_VALUE_REF.
02bb8bce
UB
7029 * tree-inline.c (tree_function_versioning): Add variables referenced
7030 by replacing trees.
00fc2333 7031
98e146ab
JH
70322008-08-23 Jan Hubicka <jh@suse.cz>
7033
7034 PR target/37094
7035 * i386.c (standard_80387_constant_p): Use optimize_size.
7036
8b7b9d66
IR
70372008-08-23 Ira Rosen <irar@il.ibm.com>
7038
7039 PR tree-optimization/37161
7040 * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
7041 * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
7042 (vect_determine_vectorization_factor): Move the scalar type
7043 retrieval to vect_get_smallest_scalar_type.
7044 (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
7045 scalar type. Remove redundant computation.
7046 * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
7047 (vect_get_slp_defs): Take the type of RHS into account if
7048 necessary by calling vect_get_smallest_scalar_type. Call
7049 vect_get_constant_vectors with additional argument.
7050
f4185118
MLI
70512008-08-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7052
7053 PR 35648
7054 * doc/invoke.texi (Wwrite-strings): Clarify description.
8a88c276 7055
f5d3c7e1
IR
70562008-08-23 Ira Rosen <irar@il.ibm.com>
7057
7058 PR tree-optimization/37174
7059 * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
7060 def stmt is a part of the loop before accessing its stmt_vec_info.
7061
d3dd4dbd
AS
70622008-08-22 Anatoly Sokolov <aesok@post.ru>
7063
7064 PR target/11259
7065 * config/avr/avr.md (UNSPEC_SWAP): New constants.
7066 (*swap): New insn pattern.
7067 (*ashlqi3): Rename from ashlqi3 insn pattern.
7068 (ashlqi3): New expanders.
7069 (*lshrqi3): Rename from lshrqi3 insn pattern.
8a88c276 7070 (lshrqi3): New expanders.
d3dd4dbd
AS
7071 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
7072 lshrqi3_const5, lshrqi3_const6): New splitters.
7073 (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
7074 lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
7075 peephole2 patterns.
7076
36159cf8
RG
70772008-08-22 Richard Guenther <rguenther@suse.de>
7078
7079 PR tree-optimization/37078
7080 * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
7081 [+INF, +INF] ranges.
7082
d3cbd7de
RG
70832008-08-22 Richard Guenther <rguenther@suse.de>
7084
7085 PR tree-optimization/37143
7086 * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
7087 a conversion statement instead of a copy.
7088
a3d4a22b
UB
70892008-08-22 Uros Bizjak <ubizjak@gmail.com>
7090
7091 PR target/37184
7092 * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
7093 CCCmode, CCOmode and CCSmode destination modes.
7094
7095 PR target/37191
7096 * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
7097 from different units in a single alternative.
7098 (*vec_extractv2sf_1): Ditto.
7099 (*vec_extractv2si_0): Ditto.
7100 (*vec_extractv2si_1): Ditto.
7101 * config/i386/sse.md (sse2_storehpd): Ditto.
7102 (sse2_storelpd): Ditto.
7103 (sse2_loadhpd): Ditto.
7104 (sse2_loadlpd): Ditto.
7105
7106 PR target/37197
7107 * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
7108 (popcountsi2): Ditto.
7109 (clzdi2_abm): Ditto.
7110 (popcountdi2): Ditto.
7111 (clzhi2_abm): Ditto.
7112 (popcounthi2): Ditto.
7113
beeab17c
RG
71142008-08-22 Richard Guenther <rguenther@suse.de>
7115
7116 PR middle-end/36548
7117 PR middle-end/37125
7118 * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
7119 if the multiplication does not overflow.
7120
1a456b49
NS
71212008-08-21 Nathan Sidwell <nathan@codesourcery.com>
7122
7123 * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
7124
042628f9
RH
71252008-08-21 Richard Henderson <rth@redhat.com>
7126
7127 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
7128 spurrious comma from test.
7129 * configure: Rebuild.
7130
2985f531
MLI
71312008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7132
7133 PR 30457
7134 * builtins.c (fold_builtin_next_arg): Add warning about undefined
7135 behaviour.
8a88c276 7136
3d10ed6c
AH
71372008-08-21 Aldy Hernandez <aldyh@redhat.com>
7138
7139 * c-tree.h (grokfield): New argument.
7140 * c-decl.c (grokfield): Handle new location argument.
4ae8027b 7141 * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
3d10ed6c 7142
c76a1f18
RG
71432008-08-21 Richard Guenther <rguenther@suse.de>
7144
7145 * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
7146
129a37fc
JH
71472008-08-21 Jan Hubicka <jh@suse.cz>
7148
7149 * cgraph.c (first_cgraph_function_insertion_hook): New variable.
a3d4a22b
UB
7150 (cgraph_add_function_insertion_hook,
7151 cgraph_remove_function_insertion_hook,
129a37fc 7152 cgraph_call_function_insertion_hooks): New functions.
a3d4a22b
UB
7153 * cgraph.h (cgraph_add_function_insertion_hook,
7154 cgraph_remove_function_insertion_hook,
129a37fc
JH
7155 cgraph_call_function_insertion_hooks): Declare.
7156 * ipa-reference.c (function_insertion_hook_holder): New variable.
7157 (check_operand, look_for_address_of): When checking late, do not care
7158 about module bitmaps.
7159 (add_new_function): New function.
7160 (generate_summary): Register hooks; zero module bitmaps.
7161 (propagate): Unregister hooks.
7162 * ipa-pure-const.c (function_insertion_hook_holder): New variable.
7163 (add_new_function): New function.
7164 (generate_summary): Register hook.
7165 (propagate): Remove hook.
7166
7167 * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
7168
7169 * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
7170 * ipa-cp.c (ipcp_update_cloned_node): New function.
7171 (build_const_val): Handle functions correctly; bring type logic
7172 into sync with tree-inline.c
7173 (ipcp_init_stage): Take care of computing stuff needed by
7174 indirect inlining; update clones.
7175 (ipcp_generate_summary): Break out of ipcp_driver.
7176 (ipcp_driver): Do only execution and transformation.
7177 (pass_ipa_cp): Make IPA_PASS.
7178 * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
7179 offset to address.
7180 * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
7181 ipcp, some info is already available.
7182 * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
7183 * tree-inline.c (remap_ssa_name): Unshare expression.
7184
1e52075c
RG
71852008-08-21 Richard Guenther <rguenther@suse.de>
7186
7187 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
7188 a PHI ask VN if it is already available.
7189 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
7190 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
7191
729edaa1
RG
71922008-08-21 Richard Guenther <rguenther@suse.de>
7193
7194 PR middle-end/36817
7195 * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
7196 makes sure to produce a result of the correct type.
7197
812dbce5
JH
71982008-08-21 Jan Hubicka <jh@suse.cz>
7199 Backport from LTO branch:
7200
7201 2008-05-05 Kenneth Zadeck <zadeck@naturalbridge.com>
7202 Jan Hubicka <jh@suse.cz>
8a88c276 7203
812dbce5
JH
7204 * ipa-pure-const.c
7205 (init_state, finish_state, set_function_state, generate_summary):
7206 New functions.
7207 (scan_stmt): Renamed from scan_function. Changed to keep state in
7208 local static vars rather than cgraph aux field.
7209 (propagate): Renamed from static_execute. Changed to keep state in
7210 local static vars rather than cgraph aux field.
7211 (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
7212 * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
7213
7214 2008-07-15 Kenneth Zadeck <zadeck@naturalbridge.com>
7215
7216 * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
8a88c276 7217 * ipa-reference.c (init_function_info, generate_summary,
812dbce5
JH
7218 propagate): New functions.
7219 (analyze_function): Call init_function_info.
7220 (static_execute): Stripped into generate_summary and propagate.
7221 (pass_ipa_reference): Made into ipa_opt_pass.
7222
08298a8c
RG
72232008-08-21 Richard Guenther <rguenther@suse.de>
7224
7225 PR tree-optimization/37181
7226 * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
7227 folding result.
7228 (extract_range_from_unary_expr): Likewise.
7229
509c9d60
MLI
72302008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7231
7232 * diagnostic.c (pedwarn_at): Rename as pedwarn.
7233 (pedwarn): Delete.
7234 * toplev.h (pedwarn_at): Likewise.
7235 * builtins.c: Update all calls to pedwarn.
7236 * c-lex.c: Likewise.
7237 * toplev.c: Likewise.
7238 * c-tree.h: Likewise.
7239 * c-decl.c: Likewise.
7240 * c-errors.c: Likewise.
7241 * c-typeck.c: Likewise.
7242 * c-common.c: Likewise.
7243 * c-parser.c: Likewise.
7244
0dd8c9bc
JM
72452008-08-20 Joseph Myers <joseph@codesourcery.com>
7246
7247 PR target/31070
7248 * config/sparc/sparc.c (function_arg_slotno): Handle structure
7249 with MODE_VECTOR_INT mode.
7250
87fe2bd0
MLI
72512008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7252
7253 PR middle-end/179
7254 * tree-ssa.c (warn_uninit): Do not warn for variables that can be
7255 initialized outside the current module.
7256 (warn_uninitialized_var): Ignore left-hand side when walking the
7257 trees. Ignore address expressions. Examine VUSE operands in gimple
7258 statements with a variable declaration on the right-hand side.
7259
05cee290
RS
72602008-08-20 Richard Sandiford <rdsandiford@googlemail.com>
7261
7735154d 7262 PR bootstrap/37155
05cee290
RS
7263 * rtlanal.c (subreg_offset_representable_p): Revert last change.
7264
9c591bd0
MLI
72652008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7266
7267 PR 35701
7268 * c-common.c (conversion_warning): Do not warn if applying bit-and
7269 operator to unsigned constant that fits in the target type.
7270
0011dedb
MLI
72712008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7272
7273 PR c++/35602
7274 * c-common.c (conversion_warning): Do not warn for artificial
7275 expressions.
7276
73019a42
RG
72772008-08-20 Richard Guenther <rguenther@suse.de>
7278
7279 * tree-vrp.c (op_with_constant_singleton_value_range): New function.
7280 (extract_range_from_binary_expr): Fall back to constant propagation.
7281 (extract_range_from_unary_expr): Likewise.
7282
e2104f59
RG
72832008-08-20 Richard Guenther <rguenther@suse.de>
7284
7285 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
7286 with TREE_THIS_VOLATILE on shared nodes.
7287 (fold_stmt_r): Likewise.
7288
5dc4a7f4
JJ
72892008-08-20 Jakub Jelinek <jakub@redhat.com>
7290
7291 PR c/37171
7292 * c-parser.c (c_parser_attributes): For keywords use canonical
7293 spelling for attr_name.
7294
d3d28d26
MLI
72952008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7296
7297 * value-prof.c (check_counter): Revert wrong call to error.
8a88c276 7298
5b6148c5
MLI
72992008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7300
7301 * profile.c: Update calls to inform.
7302 * value-prof.c: Update calls to inform.
8a88c276 7303
1f5b3869
MLI
73042008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7305
7306 * diagnostic.c (inform): Add an explicit location_t parameter.
7307 * toplev.h (inform): Update declaration.
7308 * builtins.c: Update all calls to inform.
7309 * c-common.c: Likewise.
7310 * c-decl.c: Likewise.
7311 * c-opts.c: Likewise.
7312 * c-pch.c: Likewise.
7313 * c-pragma.c: Likewise.
7314 * c-typeck.c: Likewise.
7315 * coverage.c: Likewise.
7316 * opts.c: Likewise.
7317 * toplev.c: Likewise.
7318 * tree-cfg.c: Likewise.
7319 * tree-ssa.c: Likewise.
7320
89da39ee
L
73212008-08-20 H.J. Lu <hongjiu.lu@intel.com>
7322
7323 PR target/37169
7324 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
7325 V2DI mode, for SSE4.1, use movq instead of vector set if the
7326 second element is zero and inter-unit moves are OK.
7327
4fedf870
RG
73282008-08-20 Richard Guenther <rguenther@suse.de>
7329
7330 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
7331 properly handle conversion/copy chains after tuplification.
7332
e2081a1d
RG
73332008-08-20 Richard Guenther <rguenther@suse.de>
7334
7335 * passes.c (init_optimization_passes): Move the second
7336 forwprop pass before alias computation. Remove the second
7337 DCE pass. Remove the first dominator and phi copy/const
7338 prop passes.
7339
6e60703f
NC
73402008-08-20 Nick Clifton <nickc@redhat.com>
7341
7342 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
7343 support of this feature. Do not assume that a sufficiently new
7344 assembler will support the feature regardless of the target type.
7345 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
89da39ee 7346 * configure: Regenerate.
6e60703f 7347
c4ab2baa
RG
73482008-08-20 Richard Guenther <rguenther@suse.de>
7349
7350 * tree-vrp.c (found_in_subgraph): Remove.
7351 (live): New global static.
7352 (live_on_edge): New function.
7353 (blocks_visited): Remove.
7354 (register_edge_assert_for_2): Use live_on_edge.
7355 (find_conditional_asserts): Remove code dealing with
7356 found_in_subgraph. Do not walk the CFG.
7357 (find_switch_asserts): Likewise.
7358 (find_assert_locations_1): Renamed from find_assert_locations.
7359 Move finding assert locations for conditional and switch
7360 statements first. Update live bitmap. Do not walk the CFG.
7361 (find_assert_locations): New function.
7362 (insert_range_assertions): Remove entry of CFG walk.
7363 Adjust call to find_assert_locations.
7364 * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
7365 that only can appear because of fake exit edges but assert we
7366 never try to insert on those.
7367 (fini_pre): Do not remove fake exit edges here...
7368 (execute_pre): ...but here, before committing edge inserts.
7369
a4b8a65f
RG
73702008-08-19 Richard Guenther <rguenther@suse.de>
7371
7372 * passes.c (init_optimization_passes): Exchange store-ccp
7373 with a ccp pass.
7374
e49cf927 73752008-08-19 Rafael Espíndola <espindola@google.com>
21fe7edc 7376
a3d4a22b
UB
7377 * varasm.c (weak_decls): Move earlier in the file.
7378 (assemble_external): Add weak decls to the weak_decls list.
7379 (declare_weak): Don't add decls to the weak_decls list.
21fe7edc 7380
b8aaf506
L
73812008-08-19 H.J. Lu <hongjiu.lu@intel.com>
7382
7383 PR target/37157
7384 * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
7385 before (sse2_shufpd_<mode>).
7386
e92cbe3a
JJ
73872008-08-19 Jakub Jelinek <jakub@redhat.com>
7388
7389 PR debug/37156
7390 * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
7391 * tree.c (block_nonartificial_location): Likewise.
7392
53f3815c
RG
73932008-08-19 Richard Guenther <rguenther@suse.de>
7394
7395 PR tree-optimization/35972
7396 PR tree-optimization/23094
7397 * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
7398 parameter.
7399 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
7400 handle MISALIGNED_INDIRECT_REF.
7401 (get_ref_from_reference_ops): New helper.
7402 (vn_reference_lookup_pieces): Walk the use-def chain using the
7403 alias-oracle if requested.
7404 * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
7405 walking the use-def chain.
7406 (compute_avail): But not here.
7407 (create_component_ref_by_pieces_1): Properly handle
7408 MISALIGNED_INDIRECT_REF.
7409 (do_regular_insertion): Handle fully redundant
7410 expressions after PHI-translation also for SSA_NAME values, not
7411 only constants. Correctly use edoubleprime for that.
7412
5d593372
IR
74132008-08-19 Ira Rosen <irar@il.ibm.com>
7414
7415 * tree-vectorizer.c (supportable_widening_operation): Support
7416 multi-step conversion, return the number of steps in such conversion
7417 and the required intermediate types.
7418 (supportable_narrowing_operation): Likewise.
7419 * tree-vectorizer.h (vect_pow2): New function.
7420 (supportable_widening_operation): Change argument types.
7421 (supportable_narrowing_operation): Likewise.
7422 (vectorizable_type_promotion): Add an argument.
7423 (vectorizable_type_demotion): Likewise.
8a88c276 7424 * tree-vect-analyze.c (vect_analyze_operations): Call
5d593372
IR
7425 vectorizable_type_promotion and vectorizable_type_demotion with
7426 additional argument.
7427 (vect_get_and_check_slp_defs): Detect patterns.
7428 (vect_build_slp_tree): Add an argument, don't fail in case of multiple
8a88c276 7429 types.
02bb8bce
UB
7430 (vect_analyze_slp_instance): Don't fail in case of multiple types.
7431 Call vect_build_slp_tree with correct arguments. Calculate unrolling
7432 factor according to the smallest type in the loop.
5d593372 7433 (vect_detect_hybrid_slp_stmts): Include statements from patterns.
8a88c276
AS
7434 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
7435 supportable_widening_operation with correct arguments.
7436 * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
5d593372
IR
7437 operands lists according to the number of vector statements in left
7438 or right node, if exists.
7439 (vect_gen_widened_results_half): Remove unused argument.
8a88c276 7440 (vectorizable_conversion): Call supportable_widening_operation,
5d593372 7441 supportable_narrowing_operation, and vect_gen_widened_results_half
8a88c276 7442 with correct arguments.
5d593372 7443 (vectorizable_assignment): Change documentation, support multiple
8a88c276 7444 types in SLP.
5d593372
IR
7445 (vectorizable_operation): Likewise.
7446 (vect_get_loop_based_defs): New function.
7447 (vect_create_vectorized_demotion_stmts): Likewise.
7448 (vectorizable_type_demotion): Support loop-aware SLP and general
7449 multi-step conversion. Call vect_get_loop_based_defs and
7450 vect_create_vectorized_demotion_stmts for transformation.
7451 (vect_create_vectorized_promotion_stmts): New function.
7452 (vectorizable_type_promotion): Support loop-aware SLP and general
7453 multi-step conversion. Call vect_create_vectorized_promotion_stmts
8a88c276 7454 for transformation.
5d593372 7455 (vectorizable_store): Change documentation, support multiple
8a88c276 7456 types in SLP.
5d593372 7457 (vectorizable_load): Likewise.
8a88c276 7458 (vect_transform_stmt): Pass SLP_NODE to
5d593372
IR
7459 vectorizable_type_promotion and vectorizable_type_demotion.
7460 (vect_schedule_slp_instance): Move here the calculation of number
7461 of vectorized statements for each node from...
7462 (vect_schedule_slp): ... here.
7463 (vect_transform_loop): Call vect_schedule_slp without the last
7464 argument.
7465
45ea82c1
DN
74662008-08-19 Dorit Nuzman <dorit@il.ibm.com>
7467
7468 PR bootstrap/37152
8a88c276 7469 * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
45ea82c1
DN
7470 to == in assert statement.
7471 (vectorizable_reduction): Fix typo.
7472
c3a4ca03
L
74732008-08-18 H.J. Lu <hongjiu.lu@intel.com>
7474
7475 PR bootstrap/37153
7476 * value-prof.c (check_counter): Dereference pointer to overall
7477 count when printing it.
7478
3aa71f9d
L
74792008-08-18 H.J. Lu <hongjiu.lu@intel.com>
7480
7481 * profile.h: Really add it.
7482
f7bc085c
L
74832008-08-18 H.J. Lu <hongjiu.lu@intel.com>
7484
7485 * mcf.c: Really add it.
7486
52c76998
PY
74872008-08-18 Paul Yuan <yingbo.com@gmail.com>
7488 Vinodha Ramasamy <vinodha@google.com>
7489
7490 * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
7491 count_scale.
7492 * value-prof.c (check_counter): Fix the counter if
7493 flag_profile_correction is true.
7494 (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
7495 tree_mod_subtract_transform):
7496 Follow check_counter parameter change.
7497 * common.opt (fprofile-correction): New option.
7498 * mcf.c: New file.
3aa71f9d 7499 * profile.h: Likewise.
52c76998
PY
7500 * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
7501 (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
7502 is_inconsistent, set_bb_counts, read_profile_edge_counts): New
7503 functions.
7504 (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
7505 flag_profile_correction is set.
7506
808cc417
RS
75072008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
7508
7509 * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
7510
1a87cf0c
TB
75112008-08-18 Tomas Bily <tbily@suse.cz>
7512
7513 * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
7514 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
7515 CONVERT_EXPR_P.
7516 * tree-data-ref.c (split_constant_offset_1): Likewise.
7517 * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
7518 * tree-sra.c (sra_walk_expr): Likewise.
7519 * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
7520 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
7521 * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
7522 * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
7523 Likewise.
7524 * gimple.c (gimple_assign_unary_nop_p): Likewise.
7525 * tree-vect-transform.c (vectorizable_type_demotion)
7526 (vectorizable_type_promotion): Likewise.
8a88c276 7527 * tree-inline.c (expand_call_inline):
1a87cf0c
TB
7528 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
7529 (forward_propagate_addr_expr_1, forward_propagate_comparison)
7530 (tree_ssa_forward_propagate_single_use_vars): Likewise.
7531 * expr.c (expand_expr_real_1): Likewise.
7532 * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
7533 (gimple_assign_unary_useless_conversion_p): Likewise.
7534 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
7535 * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
7536 * fold-const.c (fold_unary): Likewise.
7537 * tree.h (CONVERT_EXPR_P): Likewise.
7538 * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
7539 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
8a88c276 7540 * tree-vrp.c:
1a87cf0c
TB
7541 (register_edge_assert_for_2, extract_range_from_unary_expr)
7542 (register_edge_assert_for_1): Likewise.
8a88c276 7543
9c02cf68
MLI
75442008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7545
7546 * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
7547 dconst_third_ptr, dconst_sqrt2_ptr): Declare.
7548 (enum real_value_const): Delete.
7549 (get_real_const): Delete.
7550 * real.c (get_real_const): Delete.
7551 (dconst_e_ptr): Define.
7552 (dconst_third_ptr): Define.
7553 (dconst_sqrt2_ptr): Define.
7554 * builtins.c: Update all callers.
7555
e4658728
RG
75562008-08-18 Richard Guenther <rguenther@suse.de>
7557
7558 * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
7559 statement iterator after statement removal.
7560
3b7abfda
AT
75612008-08-18 Andreas Tobler <a.tobler@schweiz.org>
7562
7563 * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
7564 (detect_processor_freebsd): Likewise.
7565 (host_detect_local_cpu): Call newly added functions for FreeBSD.
7566
2f9864e6
RG
75672008-08-18 Richard Guenther <rguenther@suse.de>
7568
7569 * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
7570 and loads have the correct types.
7571
d2e796ad
MLI
75722008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7573
7574 PR cpp/7263
7575 * c-opts.c (cpp_opts): Remove static.
7576 * c-parser.c (cpp_opts): Declare it extern.
7577 (disable_extension_diagnostics): Handle cpp options.
7578 (enable_extension_diagnostics): Likewise.
7579
cbe5f3b3
MLI
75802008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7581
7582 * diagnostics.c (permerror_at): Rename as permerror.
7583 (permerror): Delete.
7584 * toplev.h: Likewise.
7585
11b08ee9
RG
75862008-08-18 Richard Guenther <rguenther@suse.de>
7587
7588 * passes.c (init_optimization_passes): Remove cleanup_cfg1,
7589 sdse1 and addressables2 passes. Replace dce1 with cddce1.
7590 Move call_cdce before build_alias. Move copyrename2,
7591 cunrolli and ccp2 beafore build_alias. Re-add addressable2
7592 right after final inlining.
7593 * tree-cfg.c (build_gimple_cfg): Do not dump function here.
7594 (pass_build_cfg): But instead via TODO_dump_func.
7595
400196f1
RG
75962008-08-18 Richard Guenther <rguenther@suse.de>
7597
7598 * tree-sra.c (generate_element_init_1): Deal with NULL constructor
7599 element index.
7600 (scalarize_init): If we failed to generate some initializers
7601 do not generate zeros for not instantiated members. Instead
7602 rely on the copy out.
7603 * tree-ssa-operands.c (get_addr_dereference_operands): Warn
7604 about missing flow-sensitive alias info only if we have
7605 aliases computed.
7606
0859c412
NC
76072008-08-17 Nick Clifton <nickc@redhat.com>
7608
7609 * doc/extend.texi (Function Attributes): Fix typo in description
7610 if hot function attribute.
7611
e21d5757
DJ
76122008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
7613 Richard Sandiford <rdsandiford@googlemail.com>
7614
7615 * doc/install.texi (--with-mips-plt): Document.
7616 * doc/invoke.texi (-mplt, -mno-plt): Document.
7617 * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
7618 and handle ${with_mips_plt}.
7619 * config/mips/mips.opt (mplt): New option.
7620 * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
7621 (TARGET_ABICALLS_PIC2): Likewise.
7622 (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
7623 (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
7624 (ASM_SPEC): Use !mabi=* instead of !mabi*.
7625 (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
7626 to decide whether to output ".option picX" directives.
7627 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
7628 Pass -call_nonpic rather than -KPIC for -mplt.
7629 (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
7630 on the command line. Also remove it when -mabi=64 is used without
7631 -msym32.
7632 * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
7633 * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
7634 TARGET_ABICALLS_PIC0.
7635 (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
7636 TARGET_ABICALLS.
7637 (mips16_build_function_stub): Only output ".option pic" directives
7638 and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
7639 (mips16_build_call_stub): Fix comment and remove redundant
7640 ".set at"/"set .noat" directives.
7641 (mips_function_rodata_section): Use the default behaviour for
7642 TARGET_ABSOLUTE_ABICALLS.
7643 (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
7644 (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
7645 (mips_restore_gp): Do nothing if the current function doesn't use
7646 a global pointer.
7647 (mips_expand_prologue): Only save $gp if the current function uses it.
7648 Use a normal move for TARGET_ABICALLS_PIC0.
7649 (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
7650
4817c43b
RS
76512008-08-17 Richard Sandiford <rdsandiford@googlemail.com>
7652
7653 * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
7654 of function when handling GLOBAL_POINTER_REGNUM.
7655
b38f3813
EB
76562008-08-16 Eric Botcazou <ebotcazou@adacore.com>
7657
7658 PR ada/20548
7659 * common.opt (-fstack-check): Do not declare the variable here.
7660 (-fstack-check=): New option variant.
7661 * doc/invoke.texi (Code Gen Options): Document it.
7662 * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
7663 (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
7664 (STACK_CHECK_STATIC_BUILTIN): New macro.
7665 * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
7666 * opts.c: Include expr.h.
7667 (common_handle_option) <OPT_fold_stack_check_>: New case.
7668 <OPT_fstack_check>: Likewise.
7669 * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
7670 consistently in the test for variable-sized types. Adjust for
7671 new behaviour of flag_stack_check.
7672 * explow.c: Include except.h.
7673 (allocate_dynamic_stack_space): Do not take into account
7674 STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
7675 * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
7676 for variable-sized parameters. Treat all parameters whose size is
7677 greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
7678 stack checking is enabled.
7679 * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
7680 size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
7681 if generic stack checking is enabled.
7682 (expand_function_end): Adjust for new behaviour of flag_stack_check.
7683 * reload1.c (reload): Likewise.
7684 * stmt.c (expand_decl): Assert that all automatic variables have
7685 fixed size at this point and remove dead code.
7686 * flags.h (stack_check_type): New enumeration type.
7687 (flag_stack_check): Declare.
7688 * toplev.c (flag_stack_check): New global variable.
7689 * Makefile.in (opts.o): Add dependency on EXPR_H.
7690 (explow.o): Add dependency on except.h.
7691
3898bf50
AH
76922008-08-16 Andy Hutchinson <hutchinsonandy@aim.com>
7693
8a88c276 7694 * config/avr/avr.c (avr_override_options): Reduce value of
3898bf50
AH
7695 PARAM_INLINE_CALL_COST.
7696
e675826d
EB
76972008-08-15 Eric Botcazou <ebotcazou@adacore.com>
7698
7699 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
7700 to BLKmode, try to fetch an inner memory reference. Use 'mode' in
7701 lieu of TYPE_MODE (type) throughout.
7702
853ff9e2
JM
77032008-08-15 Joseph Myers <joseph@codesourcery.com>
7704
7705 * config/arm/arm.c (add_minipool_backward_ref): Check for
7706 8-byte-aligned entries in second case of forcing insertion after a
7707 particular entry. Change third case to avoid inserting
7708 non-8-byte-aligned entries before 8-byte-aligned ones.
7709
a214f4d6
RG
77102008-08-15 Richard Guenther <rguenther@suse.de>
7711
7712 * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
7713 strip components for unknown size accesses.
7714
9381e3f1
WG
77152008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com>
7716
7717 * config/s390/2097.md New file.
7718 * config/s390/s390.md ("z10prop" attribute): Define none,
89da39ee
L
7719 z10_super, z10_super_E1, z10_super_A1, z10_super_c,
7720 z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
7721 z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
7722 possible values and apply them to insns as appropriate.
7723 ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
7724 ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
7725 fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
4ae8027b 7726 fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
9381e3f1
WG
7727 ("bfp" mode attribute): Removed. Every occurence replaced
7728 with <mode>.
7729 * config/s390/s390.c (struct "z10_cost"): Updated entries.
7730 * config/s390/2084.md (insn_reservation "x_itof"): Updated
4ae8027b 7731 type attribute.
9381e3f1 7732
4265559a
MLI
77332008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7734
89da39ee 7735 PR c/28152
4265559a
MLI
7736 * c-parser.c (c_lex_one_token): Do not store the canonical spelling
7737 for keywords.
8a88c276 7738
32ff1243
DN
77392008-08-14 Dorit Nuzman <dorit@il.ibm.com>
7740
7741 * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
7742 additional argument. Support reduction when duplication is needed due
7743 to data-types of different sizes in the loop.
7744 (get_initial_def_for_induction): Fix printout.
7745 (vect_get_vec_def_for_stmt_copy): Support case where the
7746 vec_stmt_for_operand is a phi node.
8a88c276 7747 (vectorizable_reduction): Support reduction when duplication is needed
32ff1243 7748 due to data-types of different sizes in the loop.
8a88c276 7749 (vectorizable_call): Remove restriction to not vectorize in case we
32ff1243
DN
7750 have data-types of different sizes in the loop.
7751 (vectorizable_conversion): Likewise.
7752 (vectorizable_operation): Likewise.
7753 (vectorizable_type_demotion): Likewise.
7754 (vectorizable_type_promotion): Likewise.
8a88c276 7755 (vectorizable_induction): Add restriction to not vectorize in case
32ff1243
DN
7756 we have data-types of different sizes in the loop.
7757
ed6fa129
UB
77582008-08-14 Christophe Saout <christophe@saout.de>
7759 Uros Bizjak <ubizjak@gmail.com>
7760
7761 PR target/37101
7762 * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
7763 (*vec_concatv2di_rex64_sse4_1): Ditto.
7764 (*vec_concatv2di_rex64_sse): Ditto.
7765
2e1d2474
JJ
77662008-08-14 Jakub Jelinek <jakub@redhat.com>
7767
7768 PR middle-end/37103
7769 * fold-const.c (fold_widened_comparison): Do not allow
7770 sign changes that change the result even if shorter type
7771 is wider than arg1_unw's type.
7772
e026fa18
KH
77732008-08-13 Kazu Hirata <kazu@codesourcery.com>
7774
7775 * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
7776 Skip if the multilib testing specifies -march that does not
7777 agree with the one specified in the testcase.
7778
92693034
JM
77792008-08-13 Joseph Myers <joseph@codesourcery.com>
7780
7781 * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
7782 zero extend SImode values being converted to TFmode before passing
7783 to libcalls.
7784
9f3c9256
UW
77852008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7786
7787 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
7788 __PPU__ when targeting the Cell/B.E. PPU processor.
7789
7aec7a38
EB
77902008-08-13 Eric Botcazou <ebotcazou@adacore.com>
7791
7792 * gimple.h (gimple_call_set_chain): Accept SSA variables.
7793 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
7794 Rematerialize the static chain, if any.
7795 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
7796 static chain.
7797
70a1c2f9
L
77982008-08-13 H.J. Lu <hongjiu.lu@intel.com>
7799
7800 * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
7801 (new_loc_descr): Likewise.
7802 (add_loc_descr): Likewise.
7803 (size_of_loc_descr): Likewise.
7804 (size_of_locs): Likewise.
7805 (output_loc_operands): Likewise.
7806 (output_loc_sequence): Likewise.
7807 (new_reg_loc_descr): New.
7808 (build_cfa_loc): Use it.
7809 (build_cfa_aligned_loc): Likewise.
7810 (one_reg_loc_descriptor): Likewise.
7811 (based_loc_descr): Likewise.
7812
4003301d
MLI
78132008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7814
7815 PR 30551
7816 * doc/invoke.texi (Wmain): Update.
7817 * c-decl.c (start_decl): warn_main is only 0 or 1.
7818 (start_function): Likewise. Fix formatting.
7819 (finish_function): Delete redundant warning.
7820 * c.opt (Wmain): Add Var(warn_main) and Init(-1).
7821 * c-opts (c_common_handle_option): -Wall only has effect if
7822 warn_main is uninitialized. OPT_Wmain is automatically
7823 handled. -pedantic also enables Wmain.
7824 (c_common_post_options): Handle all logic for Wmain here.
7825 * c-common.c (warn_main): Delete.
4ae8027b 7826 (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
4003301d
MLI
7827 * c-common.h (warn_main): Delete.
7828
6cd7942d
L
78292008-08-13 H.J. Lu <hongjiu.lu@intel.com>
7830
7831 PR middle-end/36701
7832 * expr.c (emit_group_store): Allocate stack temp with the
7833 largest alignment when copying from register to stack.
7834
99f536cc
RG
78352008-08-13 Richard Guenther <rguenther@suse.de>
7836
7837 * tree.h (maybe_fold_offset_to_address): Declare.
7838 * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
7839 (ccp_fold): Handle pointer conversions the same as fold_stmt.
7840 Likewise for POINTER_PLUS_EXPR.
7841 (maybe_fold_offset_to_reference): Enable disabled code.
7842 (maybe_fold_offset_to_address): New function.
7843 (fold_stmt_r): Use it.
7844 (fold_gimple_assign): Likewise.
7845 * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
7846 (gimplify_expr): Likewise.
7847
e3f05c4e
MLI
78482008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7849
7850 * toplev.h (pedwarn_at): Fix declaration.
8a88c276 7851
c71cfaaf
JM
78522008-08-13 Joseph Myers <joseph@codesourcery.com>
7853
7854 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
7855 LINK_SPEC): Use %R in -Y P argument.
7856
85790e66
MLI
78572008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7858
7859 PR c/15236
7860 * diagnostic.c (pedwarn_at): New.
7861 * toplev.h (pedwarn_at): Declare.
7862 * c-tree.h (build_enumerator): Update declaration.
7863 * c-decl.c (finish_enum): Update comment.
7864 (build_enumerator): Take a location parameter. Give a pedwarn but do
7865 not perform any conversion.
7866 * c-parser.c (c_parser_enum_specifier): Set correct location for
7867 enumerator.
7868
374035cb
MLI
78692008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7870
7871 PR 35635
7872 * c-common.c (conversion_warning): Use a switch. Ignore boolean
7873 expressions except for conversions to signed:1 bitfields. Handle
7874 COND_EXPR with constant operands.
8a88c276 7875
25c6036a
RG
78762008-08-13 Richard Guenther <rguenther@suse.de>
7877
7878 PR tree-optimization/15255
7879 * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
7880 (struct oecount_s): New struct and VEC types.
7881 (cvec): New global.
7882 (oecount_hash): New function.
7883 (oecount_eq): Likewise.
7884 (oecount_cmp): Likewise.
7885 (zero_one_operation): New function.
7886 (build_and_add_sum): Likewise.
7887 (undistribute_ops_list): Perform un-distribution of multiplication
7888 and division on the chain of summands.
7889 (should_break_up_subtract): Also break up subtracts for factors.
7890 (reassociate_bb): Delete dead visited statements.
7891 Call undistribute_ops_list. Re-sort and optimize if it did something.
7892 * passes.c (init_optimization_passes): Move DSE before
7893 reassociation.
7894 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
7895 PHI nodes.
7896
e1765251
JJ
78972008-08-12 Janis Johnson <janis187@us.ibm.com>
7898
db79b0cd
JJ
7899 * doc/invoke.texi (-fipa-pta): Say the option is experimental.
7900
e1765251
JJ
7901 * doc/invoke.texi: Revert unintended checkin.
7902
4d2b059d
NF
79032008-08-12 Nathan Froyd <froydnj@codesourcery.com>
7904
7905 PR libgomp/26165
4d2b059d
NF
7906 * gcc.c (include_spec_function): Tweak call to find_a_file.
7907
4c29307d
JJ
79082008-08-12 Jakub Jelinek <jakub@redhat.com>
7909
c0285905
JJ
7910 PR middle-end/37014
7911 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
7912 and TRUTH_ORIF_EXPR.
7913 * dojump.c (do_jump): Likewise.
7914
4c29307d
JJ
7915 PR tree-optimization/37084
7916 * tree-inline.c (copy_bb): Call gimple_regimplify_operands
7917 if id->regimplify, don't assume stmt is a cast assignment.
7918
bad4f40b
AS
79192008-08-12 Anatoly Sokolov <aesok@post.ru>
7920
ed6fa129 7921 * final.c (final_scan_insn): Use app_enable/app_disable functions.
bad4f40b 7922
905cd1b9
UW
79232008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7924
7925 PR bootstrap/37097
7926 * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
7927 by last change.
7928
b8972354
UW
79292008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7930
7931 * defaults.h (TARGET_FLOAT_FORMAT): Remove.
7932 (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
7933
7934 * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
7935 * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
7936 * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
7937 * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
7938 * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
7939
7940 * doc/tm.texi (Storage Layout): Remove documentation for
7941 TARGET_FLOAT_FORMAT.
7942
7943 * simplify-rtx.c (simplify_binary_operation_1): Replace
7944 TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
7945
4099e2c2
UW
79462008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7947
7948 * real.h (struct real_format): New member has_sign_dependent_rounding.
7949 * real.c (ieee_single_format, mips_single_format, motorola_single_format,
7950 spu_single_format, ieee_double_format, mips_double_format,
7951 motorola_double_format, ieee_extended_motorola_format,
7952 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
7953 ieee_extended_intel_96_round_53_format, ibm_extended_format,
7954 mips_extended_format, ieee_quad_format, mips_quad_format,
7955 vax_f_format, vax_d_format, vax_g_format): Initialize it.
7956 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
7957
7958 * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
7959 MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
7960 * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
7961 MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
7962 (ROUND_TOWARDS_ZERO): Likewise.
7963
7964 * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
7965 (FLOAT_MODE_FORMAT): New macro.
7966 (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
7967 (MODE_COMPOSITE_P): ... this new macro.
7968 (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
7969 MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
7970 * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
7971
7972 * flags.h: Include "real.h".
7973
7974 * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
7975 REAL_MODE_FORMAT_COMPOSITE_P.
7976 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
7977
7978 * doc/tm.texi (Storage Layout): Remove documentation of
7979 MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
7980 MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of
7981 ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
7982 they only apply to libgcc2.a.
7983
e0bddf10
UW
79842008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7985
7986 * config/spu/float_disf.c: New file.
7987 * config/spu/float_unsdisf.c: New file.
7988 * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
7989 (LIB2FUNCS_EXCLUDE): Define.
7990
3e479de3
UW
79912008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7992 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
7993
7994 * real.h (struct real_format): New member round_towards_zero.
7995 * real.c (round_for_format): Respect fmt->round_towards_zero.
7996 (ieee_single_format, mips_single_format, motorola_single_format,
7997 spu_single_format, ieee_double_format, mips_double_format,
7998 motorola_double_format, ieee_extended_motorola_format,
7999 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
8000 ieee_extended_intel_96_round_53_format, ibm_extended_format,
8001 mips_extended_format, ieee_quad_format, mips_quad_format,
8002 vax_f_format, vax_d_format, vax_g_format): Initialize it.
8003 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
8004
8005 * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
8006 real_format to choose rounding mode when calling MPFR functions.
8007 (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
8008 (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
8009
8010 * real.h (real_to_decimal_for_mode): Add prototype.
8011 * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
8012 Respect target rounding mode when generating decimal representation.
8013 (real_to_decimal): New stub for backwards compatibility.
8014 * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
8015 real_to_decimal_for_mode instead of real_to_decimal.
8016
8017 * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
8018
88f091f5
UW
80192008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8020 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
8021
8022 * real.c (spu_single_format): New variable.
8023 * real.h (spu_single_format): Declare.
8024
8025 * config/spu/spu.c (spu_override_options): Install SFmode format.
8026 (spu_split_immediate): Use integer mode to operate on pieces of
8027 floating-point values in all cases.
8028
8029 * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
8030 ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
8031 ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
8032
4230d0fe
UW
80332008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8034
8035 * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
8036
359e19d5
UW
80372008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8038
8039 * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
8040
2d7231a3
JJ
80412008-08-12 Jakub Jelinek <jakub@redhat.com>
8042
8043 PR c++/36688
8044 * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
8045 on the VAR_DECL instead of TYPE_READONLY on its type.
8046
ad2dd72a
IR
80472008-08-12 Ira Rosen <irar@il.ibm.com>
8048
8049 * tree-vectorizer.c: Depend on langhooks.h.
8050 (supportable_widening_operation): Add two arguments. Support double
8051 type conversions.
8052 (supportable_narrowing_operation): Likewise.
8a88c276 8053 * tree-vectorizer.h (supportable_widening_operation): Add two
ad2dd72a
IR
8054 arguments.
8055 (supportable_narrowing_operation): Likewise.
8056 * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
8057 supportable_widening_operation with correct arguments.
8058 * tree-vect-transform.c (vectorizable_conversion): Likewise.
8059 (vectorizable_type_demotion): Support double type conversions.
8060 (vectorizable_type_promotion): Likewise.
8061 * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
8062
7edfb083
MM
80632008-08-11 Michael Matz <matz@suse.de>
8064
8065 * i386/i386.c (override_options): Move initialisation from
8066 flag_schedule_insns_after_reload to here from ...
8067 (optimization_options): ... here.
8068
6f21ff3e
JJ
80692008-08-11 Jakub Jelinek <jakub@redhat.com>
8070
8071 PR rtl-optimization/36998
8072 * dwarf2out.c (compute_barrier_args_size_1,
8073 compute_barrier_args_size): Temporarily remove assertions.
8074
de9a4397
MLI
80752008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8076
8077 PR middle-end/20644
8078 * tree-ssa.c (struct walk_data): Add new flag
8079 warn_possibly_uninitialized.
8080 (warn_uninitialized_var): Use it.
8081 (warn_uninitialized_vars): New.
8082 (execute_early_warn_uninitialized): Call it.
8083 (execute_late_warn_uninitialized): Likewise.
8084
d47c3b4e
AP
80852008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
8086
8087 PR middle-end/36238
8088 * reload1.c (gen_reload): Guard calls to get_secondary_mem
8089 for memory subregs.
8090
5e04ef8f
JH
80912008-08-09 Jan Hubicka <jh@suse.cz>
8092
8093 PR target/37055
8094 * optabs.c (maybe_emit_unop_insn): Remove produced code if
8095 expansion failed.
8096 (expand_fix): Be prepared for expansion to fail.
8097 (expand_sfix_optab): Remove instructions if expansion failed.
8098
708fa3b5
AS
80992008-08-09 Anatoly Sokolov <aesok@post.ru>
8100
8101 * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
8102 avr31 architecture.
8103 * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
8104 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8105
08d0963a
RS
81062008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8107
8108 * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
8109 mips/t-libgcc-mips16 to tmake_file.
8110 * config/mips/mips-protos.h (mips_call_type): New enum.
8111 (mips_pic_base_register, mips_got_load): Declare.
8112 (mips_restore_gp): Take an rtx argument.
8113 (mips_use_pic_fn_addr_reg_p): Declare.
8114 (mips_expand_call): Replace the sibcall_p argument with
8115 a mips_call_type argument. Add a lazy_p parameter.
8116 (mips_split_call): Declare.
8117 * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
8118 (MIPS16_PIC_TEMP): Likewise.
8119 (reg_class): Delete M16_NA_REGS.
8120 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
8121 (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
8122 (mips_split_hi_p): Declare.
8123 * config/mips/mips.c (mips_split_hi_p): New array.
8124 (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
8125 (mips_got_symbol_type_p): New function.
8126 (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
8127 (mips16_stub_function_p): New function.
8128 (mips16_local_function_p): Likewise.
8129 (mips_use_pic_fn_addr_reg_p): Likewise.
8130 (mips_cannot_force_const_mem): Return false for HIGHs.
8131 Extend CONST_INT and symbolic handling to MIPS16, using
8132 mips_symbol_insns to check that the base symbol type is a
8133 legitimate constant. Reject GOT-based constants if
8134 TARGET_MIPS16_PCREL_LOADS.
8135 (mips_const_insns): Check targetm.cannot_force_const_mem when
8136 decomposing a symbolic base and a large offset.
8137 (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
8138 When calling a function that needs $25 from MIPS16 code,
8139 move the target address into $25 separately and add a USE
8140 to the call insn.
8141 (mips16_gp_pseudo_reg): Insert the initializer immediately
8142 before the first real insn.
8143 (mips_pic_base_register, mips_got_load): New functions.
8144 (mips_split_symbol): Generalize the name of the LO_SUM_OUT
8145 parameter to LOW_OUT. Say that it can be any valid SET_SRC
8146 when splitting a load-address operation. Split SYMBOL_GOT_DISP
8147 constants and highs of SYMBOL_GOT_PAGE_OFST constants.
8148 (mips_call_tls_get_addr): Update the call to mips_expand_call,
8149 also passing NULL_RTX rather than const0_rtx as the aux argument.
8150 (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
8151 instead of TARGET_EXPLICIT_RELOCS.
8152 (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
8153 (mips_load_call_address): Replace the sibcall_p argument with
8154 a mips_call_type argument. Use mips_got_load.
8155 (mips16_local_alias): New structure.
8156 (mips16_local_aliases): New variable.
8157 (mips16_local_aliases_hash): New function.
8158 (mips16_local_aliases_eq): Likewise.
8159 (mips16_local_alias): Likewise.
8160 (mips16_stub_function): Likewise.
8161 (mips16_build_function_stub): Create a local alias for the target
8162 function. Handle TARGET_ABICALLS. For PIC abicalls, emit a
8163 .cpload directive and an R_MIPS_NONE relocation for the target
8164 function, then load the alias rather than the function itself.
8165 Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
8166 (mips16_copy_fpr_return_value): Use mips16_stub_function and
8167 mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol.
8168 (mips16_build_call_stub): Replace the FN parameter with an
8169 FN_PTR parameter. Force the address into a register if it
8170 isn't a call_insn_operand; don't rely on the caller to do this.
8171 If a call to a locally-defined and locally-binding MIPS16
8172 function must be made indirectly, redirect the call to the
8173 function's local alias. Use mips16_stub_function_p,
8174 mips16_stub_function, mips_expand_call and use_reg.
8175 Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
8176 Use explicit %hi and %lo accesses where possible.
8177 Use MIPS_CALL to generate the correct code form of a
8178 jal instruction. Add clobbers of $18 instead of uses.
8179 Update the call to mips_emit_call_insn.
8180 (mips_expand_call): Replace the SIBCALL_P argument with a
8181 mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
8182 Take a LAZY_P parameter. Call mips16_build_call_stub first,
8183 allowing it to modify the call address. Update the calls to
8184 mips_load_call_address and mips_emit_call_insn.
8185 (mips_split_call): New function.
8186 (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if
8187 !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of
8188 SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
8189 (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
8190 (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
8191 if TARGET_MIPS16.
8192 (mips_cprestore_slot): New function.
8193 (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16
8194 and use mips_cprestore_slot.
8195 (mips_output_function_prologue): Handle TARGET_MIPS16 for
8196 LOADGP_OLDABI.
8197 (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
8198 then use a copygp_mips16 instruction to set up $28.
8199 (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
8200 (mips16_lay_out_constants): Call split_all_insns_noflow.
8201 (mips_reorg_process_insns): Explicitly set all_noreorder_p to
8202 false if TARGET_MIPS16.
8203 (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
8204 (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the
8205 mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
8206 (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
8207 MIPS16 code. Allow MIPS16 o32 PIC.
8208 (mips_override_options): Allow MIPS16 o32 PIC.
8209 * config/mips/mips.md: Lower CONST_GP_P moves into register moves
8210 after reload if TARGET_USE_GOT.
8211 (UNSPEC_COPYGP): New constant.
8212 (length): Use a default length of 8 for MIPS16 GOT loads.
8213 (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
8214 (*got_page<mode>): Check mips_split_hi_p.
8215 (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
8216 (unspec_got<mode>, unspec_call<mode>): New expanders.
8217 (load_got<mode>, load_call<mode>): Remove the length attributes.
8218 Use a got attribute instead of a type attribute.
8219 (copygp_mips16): New insn.
8220 (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
8221 (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
8222 (sibcall, sibcall_value, call, call_value): Update the calls
8223 to mips_expand_call.
8224 (call_internal, call_value_internal): Use mips_split_call.
8225 (call_value_multiple_internal): Likewise.
8226 (call_split): Move after call_internal (the insn it is split from).
8227 (call_internal_direct, call_value_internal_direct): Turn into
8228 define_insn_and_splits. Split if TARGET_SPLIT_CALLS.
8229 (call_direct_split, call_value_direct_split): New patterns.
8230 * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
8231 and use M16_REGS instead of M16_NA_REGS.
8232 * config/mips/predicates.md (const_call_insn_operand): Replace
8233 the TARGET_ABSOLUTE_ABICALLS-based check with a more general
8234 mips_use_pic_fn_addr_reg_p check.
8235 (move_operand): Reject HIGHs if mips_split_hi_p.
8236 * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
8237 (__mips16_floatunsisf): Inline __mips16_floatsisf.
8238 (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
8239 * config/mips/libgcc-mips16.ver: New file.
8240 * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
8241 $(srcdir)/config/mips/libgcc-mips16.ver.
8242
7462a715
RS
82432008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8244
02bb8bce
UB
8245 * config/mips/mips.c (mips_unspec_address_offset): Move earlier
8246 in file.
7462a715
RS
8247 (mips_unspec_address, mips_unspec_offset_high): Likewise.
8248 (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
8249 (mips16_cfun_returns_in_fpr_p): Likewise.
8250
57972505
RS
82512008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8252
8253 * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
8254 * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
8255 rather than 4 to PC.
8256
e538e028
RS
82572008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8258
8259 * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
8260 (FUNCTION_PROFILER): Save the static chain pointer into $2
8261 beforehand and restore it aftewards.
8262 (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target
8263 address directly into $25 and call the function through $25;
8264 do not clobber $3. Pad the DImode version to cover the space
8265 left by the deleted $25 <- $3 move.
8266 (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
8267 the removal of the $25 <- $3 move.
8268 (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
8269 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
8270
b2b61607
RS
82712008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
8272 Daniel Jacobowitz <dan@codesourcery.com>
8273
8274 * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
8275 * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
8276 (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
8277 * config/mips/mips.c (mips_start_function_definition): New function.
8278 (mips_end_function_definition): Likewise.
8279 (mips_output_function_prologue): Use mips_start_function_definition.
8280 (mips_output_function_epilogue): Use mips_end_function_definition.
8281 (build_mips16_function_stub): Use mips_start_function_definition
8282 and mips_end_function_definition.
8283 (build_mips16_call_stub): Likewise.
8284
7c9577be
RG
82852008-08-09 Richard Guenther <rguenther@suse.de>
8286
8287 * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
8288 * gimple.h (gimple_call_fn): Adjust comment.
8289 (gimple_call_set_fndecl): New function.
8290 (gimple_call_fndecl): Adjust for GIMPLE_CALL no
8291 longer having bare FUNCTION_DECL operand.
8292 (gimple_call_return_type): Likewise.
8293 * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
8294
8295 * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
8296 (gimple_mod_pow2): Likewise.
8297 (gimple_mod_subtract): Likewise.
8298 (gimple_ic): Likewise.
8299 (gimple_stringop_fixed_value): Likewise.
8300 (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
8301 longer having bare FUNCTION_DECL operand.
8302 * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
8303 * omp-low.c (optimize_omp_library_calls): Likewise.
8304 * cgraphunit.c (update_call_expr): Likewise.
8305 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
8306 (execute_convert_to_rsqrt): Likewise.
8307 * cfgexpand.c (gimple_to_tree): Simplify.
8308 (release_stmt_tree): Fix for GIMPLE_CALL no longer having
8309 bare FUNCTION_DECL operand.
8310 * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
8311 (convert_gimple_call): Use gimple_call_fndecl.
8312 * c-common.c (c_warn_unused_result): Likewise.
8313
ca085fd7
MLI
83142008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8315
8316 PR c/17880
8317 * c-typeck.c (digest_init): Call verify_sequence_points from here.
8318 (c_finish_return): Likewise.
8319 (c_start_case): Likewise.
4ae8027b 8320 * c-common.c (warn_for_collisions_1): Use explicit location in warning.
ca085fd7
MLI
8321 * c-parser.c (c_parser_condition): New. Call
8322 verify_sequence_points.
8323 (c_parser_paren_condition): Call c_parser_condition.
8324 (c_parser_for_statement): Call c_parser_condition.
8325
71205d17
MLI
83262008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8327
8328 PR 36901
8a88c276 8329 * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
71205d17
MLI
8330 * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
8331 Moved from diagnostic.h
8332 (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
8333 DK_PERMERROR.
8334 (emit_diagnostic): New.
8335 (warning0, pedwarn0): Delete.
8a88c276 8336 (warning, warning_at, pedwarn, permerror): Return bool.
71205d17
MLI
8337 * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
8338 Moved to diagnostic.c.
8339 (struct diagnostic_context): Use correct type for
8340 classify_diagnostic.
8341 (diagnostic_report_diagnostic): Update declaration.
8342 (emit_diagnostic): Declare.
8a88c276 8343 * errors.c (warning): Return bool.
71205d17
MLI
8344 * errors.h (warning): Update declaration.
8345 * toplev.h (warning0, pedwarn0): Delete.
8346 (warning, warning_at, pedwarn, permerror): Return bool.
8347 * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
8348 * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
8349 inform. Update all calls.
8350 (diagnose_mismatched_decls): Check return value of warning/pedwarn
8351 before giving informative note.
8a88c276
AS
8352 (implicit_decl_warning): Likewise.
8353 * c-typeck.c (build_function_call): Likewise.
8354 * tree-sssa.c (warn_uninit): Likewise.
71205d17
MLI
8355 * builtins.c (gimplify_va_arg_expr): Likewise.
8356
c73d5dd9
MLI
83572008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8358
8359 PR 7651
8360 * doc/invoke.texi (-Wextra): Move warning from here...
8361 (-Wuninitialized): ... to here.
8a88c276 8362
e73f7547
MLI
83632008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8364
8365 PR 28875
8366 * flags.h (set_Wunused): Delete
8367 * toplev.c (process_options): Handle Wunused flags here.
8368 * opts.c (maybe_warn_unused_parameter): Delete.
8369 (common_handle_option): Replace set_Wunused by warn_unused.
8370 (set_Wextra): Do not handle Wunused-parameter here.
8371 (set_Wunused): Delete.
8372 * c-opts.c (c_common_handle_option): Replace set_Wunused by
8373 warn_unused.
8374 * common.opt (Wunused): Add Var and Init.
8375 (Wunused-function): Likewise.
8376 (Wunused-label): Likewise.
8377 (Wunused-parameter): Likewise.
8378 (Wunused-value): Likewise.
8379 (Wunused-variable): Likewise.
8a88c276 8380
d40c9e33
PB
83812008-08-08 Peter Bergner <bergner@vnet.ibm.com>
8382
e73f7547
MLI
8383 * doc/invoke.texi: Add cpu_type power7.
8384 * config.in (HAVE_AS_VSX): New.
8385 * config.gcc: Add cpu_type power7.
8386 * configure.ac (HAVE_AS_VSX): Check for assembler support of the
8387 VSX instructions.
8388 * configure: Regenerate.
8389 * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
8390 power5.
8391 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
8392 (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
8393 (EXTRA_SPECS): Add asm_cpu_power7 spec string.
8394
7910ae0c
DN
83952008-08-08 Dorit Nuzman <dorit@il.ibm.com>
8396
8397 * tree-vect-transform.c (vectorizable_conversion): Pass the integral
8398 type to vectorize.builtin_conversion.
8399 (vectorizable_conversion): Likewise.
8400 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
8401 integral type as input.
8402 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
8403 FIX_TRUNC_EXPR.
8404 (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
8405 and ALTIVEC_BUILTIN_VCTSXS.
8406 (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
8a88c276 8407 formatting.
7910ae0c 8408
174ef36d
RG
84092008-08-08 Richard Guenther <rguenther@suse.de>
8410
8411 * tree-ssa-ccp.c (likely_value): Calls are not all varying.
8412 (surely_varying_stmt_p): Calls are varying only if they are
8413 non-builtin and not indirect or have no result.
8414 (ccp_fold): Re-instantiate code before the tuples merge.
8415
0f336c35
RG
84162008-08-08 Richard Guenther <rguenther@suse.de>
8417
8418 PR tree-optimization/37056
8419 * gimple.h (gimple_assign_rhs_class): New helper function.
8420 * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
8421 unary operations properly.
8422
b2077fd2
JH
84232008-08-07 Jan Hubicka <jh@suse.cz>
8424
8425 * i386.h (ix86_size_cost): Declare.
8426 (ix86_cur_cost): New function macro.
8427 * i386.md (peepholes expanding size and splitters): Predicate by
8428 optimize_insn_for_speed_p.
8429 (peepholes reduce size and splitters): Predicate by
8430 optimize_insn_for_size_p.
8431 * i386.c (ix86_size_cost): Rename from ...
8432 (size_cost): This one.
8433 (override_options): Update.
8434 (decide_alg): Likewise.
8435 (ix86_expand_clear): Use RTL profile.
8436 (ix86_pad_returns): Use RTL profile.
8437
a8ba47cb
JH
84382008-08-07 Jan Hubicka <jh@suse.cz>
8439
8440 * recog.c (split_all_insns): Set RTL profile
8441 (peephole2_optimize): Likewise.
8442 * function.c (thread_prologue_and_epilogue_insns): Likewise.
8443 * combine.c (combine_instructions): Likewise.
8444
03c3034e
KG
84452008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8446
8447 * c-common.c (c_common_reswords): Also warn about keyword "bool".
8448
b412869c 84492008-08-07 Bob Wilson <bob.wilson@acm.org>
8a88c276 8450
ed6fa129
UB
8451 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
8452 value in a6 after the set_frame_ptr insn.
8a88c276 8453
09828811
RH
84542008-08-07 Richard Henderson <rth@redhat.com>
8455
8456 PR debug/37033
8457 * gcc.c (cpp_options): Pass along -g*.
8458
874d42b9
JM
84592008-08-07 Joseph Myers <joseph@codesourcery.com>
8460
8461 * config/arm/arm.c (output_move_neon): Update comment describing
8462 big-endian vector layout.
8463 (arm_assemble_integer): Do not handle big-endian NEON vectors
8464 specially.
8465 * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
8466 neon_vget_lane<mode>_sext_internal,
8467 neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
8468 element indices for big-endian.
8469
058514b3
RH
84702008-08-07 Richard Henderson <rth@redhat.com>
8471
8472 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
8473 * configure, config.in: Rebuild.
8474 * debug.h (dwarf2out_do_cfi_asm): Declare.
8475 * c-cppbuiltin.c (c_cpp_builtins): Use it.
8476 * dwarf2out.c (dwarf2out_do_cfi_asm): New.
8477 (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
8478 dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
8479
9940eebd
JM
84802008-08-07 Joseph Myers <joseph@codesourcery.com>
8481
8482 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
8483 movv2si_internal): Combine into mov<mode>_internal.
8484 (movv2si_internal_2): Remove.
8485
bdfd2026
JH
84862008-08-07 Jan Hubicka <jh@suse.cz>
8487
8488 PR target/37048
8a88c276 8489 * i386.md (single stringop patterns): Enable unconditionally.
bdfd2026 8490
b53b23dc
L
84912008-08-07 H.J. Lu <hongjiu.lu@intel.com>
8492
8493 PR target/36992
4ae8027b 8494 * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
b53b23dc
L
8495
8496 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
8497 (bdesc_args): Add IX86_BUILTIN_MOVQ128.
8498
8499 * config/i386/sse.md (sse2_movq128): New.
8500
8501 * doc/extend.texi: Document __builtin_ia32_movq128.
8502
9aa4d3c1
RG
85032008-08-07 Richard Guenther <rguenther@suse.de>
8504
8505 PR middle-end/37042
8506 * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
8507 pointers can access anything.
8508
18bd082d
JH
85092008-08-06 Jan Hubicka <jh@suse.cz>
8510
8511 * optabs.c (emit_unop_insn): Break out to ...
8512 (maybe_emit_unop_insn): ... this one.
8513 (expand_sfix_optab): Use maybe variant.
8514 * optabs.h (maybe_emit_unop_insn): Declare.
8515
8516 * i386.md (mov0 patterns): Enable by default.
8517 (FP conversion expanders): Disable expansion of code expanding
8518 sequences when instruction should be optimized for size.
8519 (single strinop patterns): Enable when optimizing for size.
8520 (string expanders): Disable expanding of code expanding sequences
8521 when optimizning instruction for size.
8522 * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
8523 per BB basis.
8524 (ix86_fp_comparison_sahf_cost): Likewise.
8525 (ix86_expand_branch): Likewise.
8526 (ix86_expand_ashl_const): Likewise.
8527 (ix86_split_ashl): Likewise.
8528 (ix86_expand_strlen): Likewise.
8529 (ix86_emit_fp_unordered_jump): Likewie.
8530
2696a995
KG
85312008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8532
8533 * c-common.c: Fix typo.
8534 (c_common_reswords): Activate more C++ keyword warnings.
8535
8536 * matrix-reorg.c (compute_offset): Avoid C++ keywords.
8537
7e99f74b 85382008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
ed6fa129 8539
7e99f74b
MLI
8540 PR 26785
8541 * diagnostic.c (permerror_at): New.
8542 * toplev.h (permerror_at): Declare.
8a88c276 8543
4eee6569
VK
85442008-08-06 Victor Kaplansky <victork@il.ibm.com>
8545 Ira Rosen <irar@il.ibm.com>
8546
8547 * tree-vect-transform.c (vect_model_simple_cost): Return
8548 immediately if stmt is pure SLP.
8549 (vect_model_store_cost): Ditto.
8550 (vect_model_load_cost): Ditto.
8551 (vectorizable_store): Remove PURE_SLP check before call
8552 to vect_model_store_cost.
8553 (vect_model_store_cost): When checking whether stmt describe
8554 strided access, add a check that it is not slp_node.
8555
2d12797c
MLI
85562008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8557
8558 PR 8715
8559 * c-common.c (warn_for_sign_compare): New. Handle separately the
8560 case that 'constant' is zero.
8561 * c-typeck.c (build_binary_op): Move code to c-common.c
8a88c276 8562
0a2aaacc
KG
85632008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8564
8565 * config/alpha/alpha.c (alpha_preferred_reload_class,
8566 alpha_secondary_reload, alpha_emit_set_const_1, function_value,
8567 alpha_output_mi_thunk_osf): Avoid C++ keywords.
8568 * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
8569 * config/arm/arm.md: Likewise.
8570 * config/avr/avr-protos.h (preferred_reload_class,
8571 test_hard_reg_class, avr_simplify_comparison_p,
8572 out_shift_with_cnt, class_max_nregs): Likewise.
8573 * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
8574 output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
8575 preferred_reload_class, test_hard_reg_class): Likewise.
8576 * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
8577 bfin_memory_move_cost, bfin_secondary_reload,
8578 bfin_output_mi_thunk): Likewise.
8579 * config/crx/crx.c (crx_secondary_reload_class,
8580 crx_memory_move_cost): Likewise.
8581 * config/frv/frv-protos.h (frv_secondary_reload_class,
8582 frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
8583 * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
8584 frv_secondary_reload_class, frv_class_likely_spilled_p,
8585 frv_class_max_nregs): Likewise.
8586 * config/h8300/h8300.c (h8300_classify_operand,
8587 h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
8588 Likewise.
8589 * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
8590 * config/ia64/ia64.c (ia64_preferred_reload_class,
8591 ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
8592 * config/iq2000/iq2000.c (gen_int_relational): Likewise.
8593 * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
8594 Likewise.
8595 * config/m68hc11/m68hc11.c (preferred_reload_class,
8596 m68hc11_memory_move_cost): Likewise.
8597 * config/mcore/mcore.c (mcore_secondary_reload_class,
8598 mcore_reload_class): Likewise.
8599 * config/mips/mips.c (mips_hard_regno_mode_ok_p,
8600 mips_class_max_nregs, mips_cannot_change_mode_class,
8601 mips_preferred_reload_class, mips_secondary_reload_class,
8602 mips_output_mi_thunk): Likewise.
8603 * config/mmix/mmix.c (mmix_preferred_reload_class,
8604 mmix_preferred_output_reload_class, mmix_secondary_reload_class):
8605 Likewise.
8606 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
8607 Likewise.
8608 * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
8609 pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
8610 * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8611 * config/rs6000/rs6000.c (paired_expand_vector_init,
8612 rs6000_secondary_reload_class, rs6000_output_mi_thunk,
8613 compare_section_name, rs6000_memory_move_cost): Likewise.
8614 * config/s390/s390.c (s390_emit_compare_and_swap,
8615 s390_preferred_reload_class, s390_secondary_reload,
8616 legitimize_pic_address, legitimize_tls_address,
8617 legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
8618 s390_class_max_nregs): Likewise.
8619 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
8620 * config/s390/s390.md: Likewise.
8621 * config/score/score-protos.h (score_secondary_reload_class,
8622 score_preferred_reload_class): Likewise.
8623 * config/score/score.c (score_preferred_reload_class,
8624 score_secondary_reload_class): Likewise.
8625 * config/score/score3.c (score3_output_mi_thunk,
8626 score3_preferred_reload_class, score3_secondary_reload_class,
8627 score3_hard_regno_mode_ok): Likewise.
8628 * config/score/score3.h (score3_preferred_reload_class,
8629 score3_secondary_reload_class): Likewise.
8630 * config/score/score7.c (score7_output_mi_thunk,
8631 score7_preferred_reload_class, score7_secondary_reload_class,
8632 score7_hard_regno_mode_ok): Likewise.
8633 * config/score/score7.h (score7_preferred_reload_class,
8634 score7_secondary_reload_class): Likewise.
8635 * config/sh/sh.c (prepare_move_operands, output_far_jump,
8636 output_branchy_insn, add_constant, gen_block_redirect,
8637 sh_insn_length_adjustment, sh_cannot_change_mode_class,
4ae8027b 8638 sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
0a2aaacc
KG
8639 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
8640 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
8641 xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
8642 xstormy16_preferred_reload_class): Likewise.
8643 * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
8644 xtensa_expand_atomic, override_options,
8645 xtensa_preferred_reload_class, xtensa_secondary_reload_class):
8646 Likewise.
8647 * reorg.c (try_merge_delay_insns): Likewise.
8648 * tree.c (merge_dllimport_decl_attributes): Likewise.
8649
8650 * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
8651
1b77ee03
MM
86522008-08-06 Michael Matz <matz@suse.de>
8653
8654 * Makefile.in (write_entries_to_file): Quote words.
8655 * gengtype.c: (read_input_line): Skip over leading white-space.
8656
6d656178
MG
86572008-08-06 Marc Gauthier <marc@tensilica.com>
8658
8659 * config.gcc: Match more processor names for Xtensa.
8660 * configure.ac: Likewise.
8661 * doc/install.texi (Specific): Likewise.
8662 * configure: Regenerate.
8663
82d6e6fc
KG
86642008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8665
8666 * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
8667 * calls.c (avoid_likely_spilled_reg): Likewise.
8668 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
8669 * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
8670 * config/i386/i386.c (ix86_expand_special_args_builtin,
8671 ix86_secondary_reload): Likewise.
8672 * except.c (struct eh_region, gen_eh_region_catch,
8673 remove_unreachable_regions, duplicate_eh_regions,
8674 assign_filter_values, build_post_landing_pads,
8675 sjlj_find_directly_reachable_regions, remove_eh_handler,
8676 reachable_next_level, foreach_reachable_handler,
8677 can_throw_internal_1, can_throw_external_1,
8678 collect_one_action_chain): Likewise.
8679 * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
8680 * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
8681 * function.c (update_temp_slot_address, instantiate_new_reg,
8682 instantiate_virtual_regs_in_rtx,
8683 instantiate_virtual_regs_in_insn): Likewise.
8684 * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
8685 * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
8686 gimplify_cleanup_point_expr): Likewise.
8687 * ipa-cp.c (ipcp_lattice_changed): Likewise.
8688 * passes.c (next_pass_1): Likewise.
8689 * print-tree.c (print_node_brief, print_node): Likewise.
8690 * profile.c (branch_prob): Likewise.
8691 * tree-dump.c (dump_register): Likewise.
8692 * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
8693 Likewise.
8694 * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
8695 copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
8696 copy_edges_for_bb, copy_cfg_body, copy_tree_r,
8697 copy_arguments_for_versioning, copy_static_chain): Likewise.
8698 * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
8699 add_new_name_mapping, register_new_name_mapping): Likewise.
8700 * tree-mudflap.c (mf_xform_derefs): Likewise.
8701 * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
8702 get_init_expr, combine_chains): Likewise.
8703 * tree-pretty-print.c (dump_generic_node): Likewise.
8704 * tree-ssa-structalias.c (create_variable_info_for): Likewise.
8705 * tree-vrp.c (simplify_cond_using_ranges): Likewise.
8706 * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
8707 * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
8708
01973e26
L
87092008-08-06 H.J. Lu <hongjiu.lu@intel.com>
8710
8711 PR middle-end/37010
8712 * calls.c (expand_call): Use the biggest preferred stack
8713 boundary.
8714
46662f25
MM
87152008-08-06 Michael Matz <matz@suse.de>
8716
8717 PR target/36613
8718 * reload.c (push_reload): Merge in,out,in_reg,out_reg members
8719 for reused reload, instead of overwriting them.
8720
e94a448f
L
87212008-08-06 H.J. Lu <hongjiu.lu@intel.com>
8722
8723 PR middle-end/37009
8724 * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
8725 for incoming stack boundary.
8726
8727 * function.c (assign_parm_find_entry_rtl): Update
8728 parm_stack_boundary.
8729
8730 * function.h (rtl_data): Add parm_stack_boundary.
8731
8732 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
8733 parm_stack_boundary for incoming stack boundary.
8734
e088f04b
JM
87352008-08-06 Joseph Myers <joseph@codesourcery.com>
8736
8737 * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
8738 for unrepresentable subregs or treat them as equal to other regs
8739 or subregs with the same register number.
8740
753b34d7
AH
87412008-08-06 Aldy Hernandez <aldyh@redhat.com>
8742
8743 PR middle-end/35432
8744 * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
8745 if want_value.
8746
c3702ff9
JH
87472008-08-06 Jan Hubicka <jh@suse.cz>
8748
8749 * predict.c (maybe_hot_frequency_p): When profile is absent, all
8750 frequencies might be hot.
8751
e0a17959
AK
87522008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
8753
8754 * reload.c (find_reloads): Force constants into literal pool
8755 also if they are wrapped in a SUBREG.
8756
c275297b
MK
87572008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
8758
8759 PR target/35659
8760 * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
8761 * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
8762 Don't allow predicated instructions for data speculation.
8763 * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
8764 declaration.
8765
a0d33ff8
MK
87662008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
8767
8768 * haifa-sched.c (extend_global): Split to extend_global_data and
8769 extend_region_data. Update all uses.
8770 (extend_all): Rename to extend_block_data.
8771
07da1cfc
MK
87722008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
8773
8774 * sched-rgn.c (new_ready): Check if instruction can be
8775 speculatively scheduled before attempting speculation.
8776 (debug_rgn_dependencies): Remove wrongful assert.
8777
c7133425
BW
87782008-08-05 Bob Wilson <bob.wilson@acm.org>
8779
8780 * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
8a88c276 8781
fa1615d7 87822008-08-05 Bob Wilson <bob.wilson@acm.org>
8a88c276 8783
fa1615d7
BW
8784 * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
8785 (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
8786 va_size, and type_size.
8a88c276 8787
8bd20621
JM
87882008-08-04 Jason Merrill <jason@redhat.com>
8789
8790 PR c++/37016
8791 * tree-ssa.c (useless_type_conversion_p_1): Call langhook
8792 if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
8793
8a24bf04
RH
87942008-08-05 Richard Henderson <rth@redhat.com>
8795
8796 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
8797 * configure: Rebuild.
8798
7352e27c
AP
87992008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
8800
8801 PR tree-opt/37024
8802 * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
8803 instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
8804 is a conversion.
8805
d4ea4622
RH
88062008-08-05 Richard Henderson <rth@redhat.com>
8807
8808 * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
8809 * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
8810 * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
8811 * common.opt (fdwarf2-cfi-asm): New.
8812 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
8813 * config.in, configure: Rebuild.
8814 * dwarf2asm.c (dw2_asm_output_data_raw): New.
02bb8bce
UB
8815 (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
8816 New.
d4ea4622
RH
8817 (dw2_force_const_mem): Externalize.
8818 * dwarf2asm.h: Update.
8819 * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
8820 generate a real label.
8821 (output_cfi_directive): New.
8822 (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
8823 (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
8824 (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
8825 and .cfi_lsda.
8826 (dwarf2out_end_epilogue): Emit .cfi_endproc.
8827 (output_loc_operands_raw, output_loc_sequence_raw): New.
8828 (output_cfa_loc_raw): New.
8a88c276 8829
302c3d8e
PB
88302008-08-05 Paul Brook <paul@codesourcery.com>
8831
8832 * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
8833 * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
8834 (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
8835 (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3.
8836 * config/arm/arm.h (TARGET_VFPD32): Define.
8837 (TARGET_VFP3): Use TARGET_VFPD32.
8838 (fputype): Add FPUTYPE_VFP3D16.
8839 (LAST_VFP_REGNUM): Use TARGET_VFPD32.
8840 * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
8841 * config/arm/arm-cores.def: Add cortex-r4f.
8842 * config/arm/arm-tune.md: Regenerate.
8843
e3834d38
UW
88442008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8845
8846 * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
8847 Reword some comments throughout the file.
8848
8849 (MFC_MIN_DMA_LIST_ELEMENTS): New define.
8850 (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
02bb8bce
UB
8851 (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
8852 MFC_MIN_DMA_LIST_ELEMENTS.
8853 (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
8854 MFC_MAX_DMA_LIST_ELEMENTS.
e3834d38
UW
8855
8856 (MFC_START_ENABLE): Remove PPU-only define.
8857 (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
8858 (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
8859
8860 (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
8861 (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
8862 (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
8863 (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
8864 (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
8865 (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
8866 (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
8867
8868 (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
8869 (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
8870 (mfc_sdcrt, mfc_sdcrtst): Likewise.
8871 (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
8872
8873 (spu_read_machine_status): Fix typo.
8874
9e071d06
UW
88752008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8876
8877 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
8878 SUBREG of multi-word hard register.
8879 * config/spu/spu.c (valid_subreg): Likewise.
8880 (adjust_operand): Handle SUBREGs of multi-word hard registers.
8881
7eeef08e
RG
88822008-08-04 Richard Guenther <rguenther@suse.de>
8883
8884 * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
8885 the candidate with the stripped base if that base is different
8886 from the original base even for offset zero.
8887
8f45dcf8
RG
88882008-08-04 Richard Guenther <rguenther@suse.de>
8889
8890 PR middle-end/36691
8891 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
8892 check for no_overflow.
8893
26c86972
RG
88942008-08-04 Richard Guenther <rguenther@suse.de>
8895
8896 * tree-vect-transform.c (vectorizable_call): Fix tuplification.
8897
795dc4fc
PB
88982008-08-04 Paul Brook <paul@codesourcery.com>
8899
8900 * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
8901 (arm_order_regs_for_local_alloc): New function.
8902 * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
8903 prototype.
8904 * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
8905
6fc3c2b2
L
89062008-08-04 H.J. Lu <hongjiu.lu@intel.com>
8907
8908 PR target/37012
8909 * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
8910 instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
8911 (ix86_expand_epilogue): Likewise.
8912
5b2314f6
L
89132008-08-04 H.J. Lu <hongjiu.lu@intel.com>
8914
8915 * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
8916 in comments.
8917
b7c9c5ab
UB
89182008-08-03 Uros Bizjak <ubizjak@gmail.com>
8919
8920 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
8921 to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
8922 (*movv2sf_internal_rex64): Ditto.
8923
22660666
JH
89242008-08-03 Jan Hubicka <jh@suse.cz>
8925
8926 * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
8927 expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
8928 * expmed.c (expand_smod_pow2): Likewise.
8929
5617c135
UB
89302008-08-03 Uros Bizjak <ubizjak@gmail.com>
8931
8932 PR target/36992
8933 * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
8934 alternative 0 of operand 1.
8935 (*vec_concatv2di_rex64_sse): Ditto.
8936 (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
8937 of operand 1.
8938 (*sse2_storeq_rex64): Penalize allocation of "r" registers.
8939 * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
8940 of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
8941 (*movv2sf_internal_rex64): Ditto.
8942
ba63dfb9
RG
89432008-08-02 Richard Guenther <rguenther@suse.de>
8944
8945 PR target/35252
8946 * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
8947 (ssedoublesizemode): New mode attribute.
8948 (sse_shufps): Call gen_sse_shufps_v4sf.
8949 (sse_shufps_1): Macroize.
8950 (sse2_shufpd): Call gen_Sse_shufpd_v2df.
8951 (sse2_shufpd_1): Macroize.
8952 (vec_extract_odd, vec_extract_even): New expanders.
8953 (vec_interleave_highv4sf, vec_interleave_lowv4sf,
8954 vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
8955 * i386.c (ix86_expand_vector_init_one_nonzero): Call
8956 gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
8957 (ix86_expand_vector_set): Likewise.
8958 (ix86_expand_reduc_v4sf): Likewise.
8959
c9234c8d
DK
89602008-08-01 Doug Kwan <dougkwan@google.com>
8961
8962 * matrix-reorg.c: Re-enable all code.
8963 (struct malloc_call_data): Change CALL_STMT to gimple type.
8964 (collect_data_for_malloc_call): Tuplify.
5617c135 8965 (struct access_site_info): Change STMT to gimple type.
c9234c8d
DK
8966 (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
8967 and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
8968 (struct free_info): Change STMT to gimple type.
5617c135 8969 (struct matrix_access_phi_node): Change PHI to gimple type.
c9234c8d
DK
8970 (get_inner_of_cast_expr): Remove.
8971 (may_flatten_matrices_1): Tuplify.
8972 (may_flatten_matrices): Ditto.
8973 (mark_min_matrix_escape_level): Ditto.
5617c135 8974 (ssa_accessed_in_tree): Refactor statement RHS related code into ...
c9234c8d
DK
8975 (ssa_accessed_in_call_rhs): New
8976 (ssa_accessed_in_assign_rhs): New
8977 (record_access_alloc_site_info): Tuplify.
8978 (add_allocation_site): Ditto.
8979 (analyze_matrix_allocation_site): Ditto.
8980 (analyze_transpose): Ditto.
8981 (get_index_from_offset): Ditto.
8982 (update_type_size): Ditto.
8983 (analyze_accesses_for_call_expr): Tuplify and renamed into ...
8984 (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
8985 (analyze_accesses_for_phi_node): Tuplify.
8986 (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
8987 (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
8988 (analyze_matrix_accesses): Tuplify.
8989 (check_var_data): New call-back type for check_var_notmodified_p.
8990 (check_var_notmodified_p): Tuplify and use call-back struct to
8991 return statement found.
8992 (can_calculate_expr_before_stmt): Factor out statement related code
8993 into ...
8994 (can_calculate_stmt_before_stmt): New.
5617c135 8995 (check_allocation_function): Tuplify.
c9234c8d
DK
8996 (find_sites_in_func): Ditto.
8997 (record_all_accesses_in_func): Ditto.
8998 (transform_access_sites): Ditto.
8999 (transform_allocation_sites): Ditto.
9000 (matrix_reorg): Re-enable.
9001 (gate_matrix_reorg): Re-enable.
9002
07b11a21
JJ
90032008-08-01 Jakub Jelinek <jakub@redhat.com>
9004
9005 * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
9006 for labels for which it hasn't been set yet. If it has been set,
9007 stop walking insns and continue with next worklist item.
9008 (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
9009 if the only BARRIER is at the very end of a function.
9010
d015f7cc
L
90112008-08-01 H.J. Lu <hongjiu.lu@intel.com>
9012
9013 * cfgexpand.c (expand_stack_alignment): Assert that
9014 stack_realign_drap and drap_rtx must match.
9015
9016 * function.c (instantiate_new_reg): If DRAP is used to realign
9017 stack, replace virtual_incoming_args_rtx with internal arg
9018 pointer.
9019
678e7c65
RG
90202008-08-01 Richard Guenther <rguenther@suse.de>
9021
9022 * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
9023 loop information only if we initialized it.
9024 (execute_pre): Call fini_pre with in_fre.
9025 * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
9026 if we do not unroll because we hit max-completely-peeled-insns.
9027 Use our estimation for consistency, do allow shrinking.
9028
2568f82a
L
90292008-08-01 H.J. Lu <hongjiu.lu@intel.com>
9030
9031 * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
9032 with MIN_STACK_BOUNDARY.
9033 (ix86_update_stack_boundary): Likewise.
9034 (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
9035 STACK_BOUNDARY.
9036
9037 * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
9038 (MIN_STACK_BOUNDARY): This.
9039
df8fa700
RG
90402008-08-01 Richard Guenther <rguenther@suse.de>
9041
9042 PR middle-end/36997
9043 * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
9044
5c3554b7
RG
90452008-08-01 Richard Guenther <rguenther@suse.de>
9046
9047 PR tree-optimization/36988
9048 * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
9049 do not matter if that doesn't change volatile qualification.
9050
47ad7893
PB
90512008-08-01 Paolo Bonzini <bonzini@gnu.org>
9052
9053 * configure.ac: Do not generate libada-mk. Do not subst
9054 host_cc_for_libada.
9055 * libada-mk.in: Remove.
9056 * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
9057 * configure: Regenerate.
9058
90592008-08-01 Basile Starynkevitch <basile@starynkevitch.net>
9060
8e352cd3
BS
9061 * tree-pass.h: Added comment about not dumping passes with name
9062 starting with star in struct opt_pass.
9063 * passes.c (register_dump_files_1): Don't do dump for a pass with
9064 name starting with star.
9065 * doc/passes.texi (Pass manager): Mention pass names and special
9066 meaning of star prefix to avoid dump.
9067
f2d6ca50
AN
90682008-07-31 Adam Nemet <anemet@caviumnetworks.com>
9069
9070 * config.gcc (mipsisa64r2*-*-linux*): New configuration. Set ISA
9071 to MIPS64r2.
9072 * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
9073 (ISA_MIPS64R2): New macro.
9074 (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
9075 (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
9076 ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
9077 ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
9078 ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
9079 ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
9080 ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
9081 (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
9082 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
9083 Move up to keep list alphabetically sorted.
9084 (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
9085 * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
9086 processor.
9087 * doc/invoke.texi (MIPS Options): Add -mips64r2.
9088 (-march=@var{arch}): Add mips64r2.
9089
24f9c418
L
90902008-07-31 H.J. Lu <hongjiu.lu@intel.com>
9091
9092 * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
9093
90d245c5
SE
90942008-07-31 Steve Ellcey <sje@cup.hp.com>
9095
9096 * expr.c (expand_assignment): Check for complete type.
9097
d2d93c32
L
90982008-07-31 H.J. Lu <hongjiu.lu@intel.com>
9099
9100 PR debug/36977
9101 * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
9102
9103 * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
9104 for stack alignment.
9105
5617c135 9106 * function.h (rtl_data): Add stack_realign_tried. Update comments.
d2d93c32 9107
c983efce
KK
91082008-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
9109
9110 * config/sh/sh.c (sh_canonical_va_list_type): Remove.
5617c135 9111 (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
c983efce 9112
88e2c810
JJ
91132008-07-31 Jakub Jelinek <jakub@redhat.com>
9114
9115 PR rtl-optimization/36419
9116 * dwarf2out.c (barrier_args_size): New variable.
9117 (compute_barrier_args_size, compute_barrier_args_size_1): New
9118 functions.
9119 (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
9120 if not called yet in the current function, use barrier_args_size
9121 array to find the new args_size value.
9122 (dwarf2out_frame_debug): Free and clear barrier_args_size.
9123
fc74cbc4
L
91242008-07-31 H.J. Lu <hongjiu.lu@intel.com>
9125
9126 PR debug/36980
9127 * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
9128 rule 19.
9129
d7831fdb
L
91302008-07-31 H.J. Lu <hongjiu.lu@intel.com>
9131
9132 PR debug/36976
9133 * dwarf2out.c (dwarf2out_args_size_adjust): New.
9134 (dwarf2out_stack_adjust): Use it.
9135 (dwarf2out_frame_debug_expr): Likewise.
9136
12aea97a
RG
91372008-07-31 Richard Guenther <rguenther@suse.de>
9138
9139 PR tree-optimization/36978
9140 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
9141 the generated condition.
9142
2dc74010
RG
91432008-07-31 Richard Guenther <rguenther@suse.de>
9144
9145 * passes.c (init_optimization_passes): Always call
9146 pass_early_warn_uninitialized.
5617c135 9147 * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
2dc74010
RG
9148 * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
9149 * doc/passes.texi (Warn for uninitialized variables): Adjust.
9150
b3e200e1
JJ
91512008-07-31 Jakub Jelinek <jakub@redhat.com>
9152
f9555f40
JJ
9153 PR c/36970
9154 * builtins.c (maybe_emit_free_warning): New function.
9155 (expand_builtin): Process BUILT_IN_FREE even at -O0. Call
9156 maybe_emit_free_warning for BUILT_IN_FREE.
9157
1e1d3887
JJ
9158 PR debug/36278
9159 * dwarf2out.c (get_context_die): New function.
9160 (force_decl_die, force_type_die): Use it.
9161 (dwarf2out_imported_module_or_decl): Likewise. If base_type_die
9162 returns NULL, force generation of DW_TAG_typedef and put that into
9163 DW_AT_import.
9164
b3e200e1
JJ
9165 PR preprocessor/36649
9166 * c-pch.c (c_common_read_pch): Save and restore
9167 line_table->trace_includes across PCH restore.
9168
01ddebf2
EB
91692008-07-30 Eric Botcazou <ebotcazou@adacore.com>
9170
9171 PR ada/36554
9172 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
9173
e49cf927 91742008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
b8c71e40
RAE
9175
9176 PR 36974
b3e200e1 9177 * final.c (call_from_call_insn): Handle COND_EXEC.
b8c71e40 9178
90c700cd
L
91792008-07-30 H.J. Lu <hongjiu.lu@intel.com>
9180
9181 * builtins.c (std_gimplify_va_arg_expr): Replace
9182 PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
9183 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
9184
2e3f842f
L
91852008-07-30 Joey Ye <joey.ye@intel.com>
9186 H.J. Lu <hongjiu.lu@intel.com>
9187
9188 * builtins.c (expand_builtin_setjmp_receiver): Replace
9189 virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
9190 (expand_builtin_apply_args_1): Likewise.
9191 (expand_builtin_longjmp): Need DRAP for stack alignment.
9192 (expand_builtin_apply): Likewise.
9193
9194 * caller-save.c (setup_save_areas): Call assign_stack_local_1
9195 instead of assign_stack_local to allow alignment reduction.
9196
9197 * calls.c (emit_call_1): Need DRAP for stack alignment if
9198 return pops.
9199 (expand_call): Replace virtual_incoming_args_rtx with
9200 crtl->args.internal_arg_pointer.
9201 * stmt.c (expand_nl_goto_receiver): Likewise.
9202
9203 * cfgexpand.c (get_decl_align_unit): Estimate stack variable
9204 alignment and store to stack_alignment_estimated and
9205 max_used_stack_slot_alignment.
9206 (expand_one_var): Likewise.
9207 (expand_stack_alignment): New function.
9208 (tree_expand_cfg): Initialize max_used_stack_slot_alignment
9209 and stack_alignment_estimated fields in rtl_data. Call
9210 expand_stack_alignment at end.
9211
9212 * defaults.h (INCOMING_STACK_BOUNDARY): New.
9213 (MAX_STACK_ALIGNMENT): Likewise.
9214 (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
9215 (SUPPORTS_STACK_ALIGNMENT): Likewise.
9216
9217 * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
9218 stack alignment when generating virtual registers.
9219
9220 * function.c (assign_stack_local): Renamed to ...
9221 (assign_stack_local_1): This. Add a parameter to indicate
9222 if it is OK to reduce alignment.
9223 (assign_stack_local): Use it.
9224 (instantiate_new_reg): Instantiate virtual incoming args rtx
9225 to vDRAP if stack realignment and DRAP is needed.
9226 (assign_parms): Collect parameter/return type alignment and
9227 contribute to stack_alignment_estimated.
9228 (locate_and_pad_parm): Likewise.
9229 (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
9230 with crtl->args.internal_arg_pointer.
9231
9232 * function.h (rtl_data): Add new field drap_reg,
9233 max_used_stack_slot_alignment, stack_alignment_estimated,
9234 stack_realign_needed, need_drap, stack_realign_processed and
9235 stack_realign_finalized.
9236 (stack_realign_fp): New macro.
9237 (stack_realign_drap): Likewise.
9238
9239 * global.c (compute_regsets): Frame pointer is needed when
9240 stack is realigned. Can eliminate frame pointer when stack is
9241 realigned and dynamic realigned argument pointer isn't used.
9242
9243 * reload1.c (update_eliminables): Frame pointer is needed
9244 when stack is realigned.
9245 (init_elim_table): Can eliminate frame pointer when stack is
9246 realigned and dynamic realigned argument pointer isn't used.
9247
9248 * rtl.h (assign_stack_local_1): Declare new funtion.
9249
9250 * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
9251 (TARGET_GET_DRAP_RTX): Likewise.
9252 (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
9253 TARGET_GET_DRAP_RTX.
9254
5617c135 9255 * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
2e3f842f
L
9256
9257 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
9258 STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
9259
92602008-07-30 Xuepeng Guo <xuepeng.guo@intel.com>
9261 H.J. Lu <hongjiu.lu@intel.com>
9262
9263 * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
9264 vdrap_reg, stack_realign and drap_reg_saved.
9265 (add_cfi): Don't allow redefining CFA when DRAP is used.
9266 (reg_save): Handle stack alignment.
9267 (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
9268 alignment. Don't generate DWARF information for (set fp sp)
9269 when DRAP is used.
9270 (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
9271 to INVALID_REGNUM.
9272 (int_loc_descriptor): Move prototype forward. Also define if
9273 DWARF2_UNWIND_INFO is true.
9274 (output_cfa_loc): Handle DW_CFA_expression.
9275 (build_cfa_aligned_loc): New.
9276 (based_loc_descr): Update assert for stack realign. For local
9277 variables, use sp+offset when stack is aligned without drap and
9278 fp+offset when stack is aligned with drap. For arguments, use
9279 cfa+offset when drap is used to align stack.
9280
92812008-07-30 Joey Ye <joey.ye@intel.com>
9282 H.J. Lu <hongjiu.lu@intel.com>
9283
9284 * config/i386/i386.c (ix86_force_align_arg_pointer_string):
9285 Break long line.
9286 (ix86_gen_andsp): New.
9287 (ix86_user_incoming_stack_boundary): Likewise.
9288 (ix86_default_incoming_stack_boundary): Likewise.
9289 (ix86_incoming_stack_boundary): Likewise.
9290 (ix86_can_eliminate): Likewise.
9291 (find_drap_reg): Likewise.
9292 (ix86_update_stack_boundary): Likewise.
9293 (ix86_get_drap_rtx): Likewise.
9294 (ix86_finalize_stack_realign_flags): Likewise.
9295 (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
9296 (TARGET_GET_DRAP_RTX): Likewise.
9297 (override_options): Overide option value for new options.
9298 (ix86_function_ok_for_sibcall): Remove check for
9299 force_align_arg_pointer.
9300 (ix86_handle_cconv_attribute): Likewise.
9301 (ix86_function_regparm): Likewise.
5617c135 9302 (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
2e3f842f
L
9303 (ix86_va_start): Replace virtual_incoming_args_rtx with
9304 crtl->args.internal_arg_pointer.
9305 (ix86_select_alt_pic_regnum): Check DRAP register.
9306 (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
9307 (ix86_compute_frame_layout): Compute frame layout wrt stack
9308 realignment.
5617c135 9309 (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
2e3f842f
L
9310 (ix86_expand_prologue): Decide if stack realignment is needed
9311 and generate prologue code accordingly.
9312 (ix86_expand_epilogue): Generate epilogue code wrt stack
9313 realignment is really needed or not.
8a88c276 9314
2e3f842f
L
9315 * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
9316 (ABI_STACK_BOUNDARY): Likewise.
9317 (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
9318 (STACK_REALIGN_DEFAULT): Likewise.
9319 (INCOMING_STACK_BOUNDARY): Likewise.
9320 (MAX_STACK_ALIGNMENT): Likewise.
9321 (ix86_incoming_stack_boundary): Likewise.
9322 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
9323 (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
9324 (CAN_ELIMINATE): Defined with ix86_can_eliminate.
9325 (machine_function): Remove force_align_arg_pointer.
9326
9327 * config/i386/i386.md (BX_REG): New.
9328 (R13_REG): Likewise.
9329
9330 * config/i386/i386.opt (mforce_drap): New.
9331 (mincoming-stack-boundary): Likewise.
9332 (mstackrealign): Add Init(-1).
9333
9334 * config/i386/i386-protos.h (ix86_can_eliminate): New
9335
93362008-07-30 H.J. Lu <hongjiu.lu@intel.com>
9337
9338 * doc/extend.texi: Update force_align_arg_pointer.
9339
9340 * doc/invoke.texi: Document -mincoming-stack-boundary. Update
9341 -mstackrealign.
9342
9343 * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
9344 (INCOMING_STACK_BOUNDARY): Likewise.
9345 (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
9346 (TARGET_GET_DRAP_RTX): Likewise.
9347
22129589
AS
93482008-07-30 Andreas Schwab <schwab@suse.de>
9349
9350 PR rtl-optimization/36929
9351 * dse.c (replace_inc_dec): Use emit_insn_before instead of
9352 add_insn_before and fix argument order.
9353 (replace_inc_dec_mem): Handle NULL rtx.
9354
35596784
AJ
93552008-07-30 Andrew Jenner <andrew@codesourcery.com>
9356
9357 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
22129589 9358 function.
35596784
AJ
9359 (arm_compute_initial_elimination_offset): Use it.
9360 (arm_compute_save_reg_mask): Include static chain save slot when
9361 calculating alignment.
9362 (arm_get_frame_offsets): Ditto.
9363 (thumb1_compute_save_reg_mask): Ensure we have a low register saved
9364 that we can use to decrement the stack when the stack decrement
9365 could be too big for an immediate value in a single insn.
9366 (thumb1_expand_prologue): Avoid using r12 for stack decrement.
9367
5f8ecf45
RG
93682008-07-30 Richard Guenther <rguenther@suse.de>
9369
9370 PR tree-optimization/36967
9371 * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
9372 Release defs of statements we remove.
9373
44bfa35b
NF
93742008-07-30 Nathan Froyd <froydnj@codesourcery.com>
9375
22129589
AS
9376 * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
9377 instead of NULL_RTVEC.
44bfa35b 9378
54ce9cc2
NF
93792008-07-30 Nathan Froyd <froydnj@codesourcery.com>
9380
9381 PR target/35866
9382
9383 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
9384 vector modes.
9385
e49cf927 93862008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
f410e1b3 9387
5617c135
UB
9388 * final.c (call_from_call_insn): New.
9389 (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
f410e1b3 9390
00afcaa0
PB
93912008-07-30 Paolo Bonzini <bonzini@gnu.org>
9392
9393 * configure.ac: Substitute ADA_CFLAGS.
9394 * configure: Regenerate.
9395 * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
9396 * Makefile.in: Remove mention of X_* variables.
9397 * config/pa/x-ada-hpux10: Remove.
9398 * config/pa/x-ada: Remove.
9399
9400 * doc/fragments.texi: Update.
9401
f90354fd 94022008-07-30 Olivier Hainque <hainque@adacore.com>
c67a9338
OH
9403
9404 * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
9405 * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
9406 __dso_handle explicitly here.
9407
6715192c
MLI
94082008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9409
9410 PR 34389
9411 * c-typeck.c (build_binary_op): Encapsulate code into...
9412 * c-common.c (shorten_binary_op): ...this new function.
9413 (conversion_warning): Use the new function. Handle non-negative
9414 constant in bitwise-and.
9415 * c-common.h (shorten_binary_op): Declare.
22129589 9416
473e1062
OH
94172008-07-30 Olivier Hainque <hainque@adacore.com>
9418
9419 * scan.c (make_sstring_space): Add explicit conversions of
9420 allocator's return value.
9421 * fix-header.c (recognized_function): Likewise.
9422
70b1e376
RW
94232008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9424
9425 * doc/cpp.texi: Update to GFDL 1.2.
9426 * doc/gcc.texi: Do not list GPL as Invariant Section.
9427 * doc/gccint.texi: Likewise. Update copyright years.
9428 * doc/install.texi: Update copyright years.
9429
d161cb2d
AM
94302008-07-30 Alan Modra <amodra@bigpond.net.au>
9431
9432 PR target/36955
9433 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
9434 a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
9435
54dfd46b
JH
94362008-07-29 Jan Hubicka <jh@suse.cz>
9437
9438 * c-decl.c (merge_decls): Do not handle DECL_INLINE.
9439 (grokdeclarator): Likewise.
9440 * langhooks.c (lhd_warn_unused_global_decl): Use
9441 DECL_DECLARED_INLINE_P.
9442 * print-tree.c (print_node): Remove DECL_INLINE check.
9443
ce94d354
RG
94442008-07-29 Richard Guenther <rguenther@suse.de>
9445
9446 PR tree-optimization/36945
9447 * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
9448 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
9449 Record invariant addresses un-decomposed.
9450 (copy_reference_ops_from_call): Record reference call
9451 arguments properly. Simplify.
9452 * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
9453 helper split out from ...
9454 (create_component_ref_by_pieces): ... here. Simplify.
9455 Prepare for recursive invocation for call arguments.
9456 (create_expression_by_pieces): Adjust call to
9457 create_component_ref_by_pieces.
9458 (compute_avail): Process operand 2 of reference ops.
9459
0f3a057a
RG
94602008-07-29 Richard Guenther <rguenther@suse.de>
9461
5617c135 9462 * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
0f3a057a 9463
11cc4546
JJ
94642008-07-29 Jakub Jelinek <jakub@redhat.com>
9465
9466 * c-format.c (check_format_types): Revert unwanted checkin.
9467
e90acd93
JH
94682008-07-29 Jan Hubicka <jh@suse.cz>
9469
9470 * flags.h (flag_really_no_inline): Remove.
9471 * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
9472 * toplev.c (flag_really_no_inline): Remove.
9473 * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
9474 * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
9475 (cgraph_decide_inlining_incrementally): Likewise.
9476 (compute_inline_parameters): Likewise.
9477 * opts.c (decode_options): Simplify.
9478 * c-opts.c (c_common_post_options): Do not set flag_no_inline.
9479 * common.opt (finline): Initialize to 1.
9480 * tree-inline.c (inlinable_function_p): Check flag_no_inline.
9481
94822008-07-29 Jan Hubicka <jh@suse.cz>
bf08ebeb
JH
9483
9484 * predict.c (always_optimize_for_size_p): New function.
9485 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
9486 optimize_edge_for_size_p, optimize_edge_for_speed_p,
9487 optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
9488 functions.
9489 (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
9490 * function.c (prepare_function_start): Set default profile.
9491 * function.h (rtl_data): Add maybe_hot_insn_p.
9492 * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
9493 (construct_exit_block): Likewise.
9494 (tree_expand_cfg): Likewise.
9495 * basic-block.h
9496 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
9497 optimize_edge_for_size_p, optimize_edge_for_speed_p,
9498 optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
9499 (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
9500 Declare.
9501
e27fb29c
MLI
95022008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9503
9504 PR 34985
9505 * c-decl.c (merge_decls): Merge USED flags.
22129589 9506
8c54989a
KK
95072008-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
9508
9509 * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
9510 valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
9511 next_stack, lab_false and lab_over trees.
9512
4d2ad64c
RG
95132008-07-28 Richard Guenther <rguenther@suse.de>
9514
9515 PR tree-optimization/36957
9516 * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
9517 (useless_type_conversion_p): Remove.
9518 (types_compatible_p): Remove.
9519 * gimple.h (tree_ssa_useless_type_conversion): Declare.
9520 (useless_type_conversion_p): Declare.
9521 (types_compatible_p): Declare.
9522 (gimple_expr_type): Return the base type only if it is
9523 trivially convertible to the subtype.
9524
f6e377f8
AT
95252008-07-28 Andreas Tobler <a.tobler@schweiz.org>
9526
9527 * configure.ac: Use the m4_do macro to concatenate the warnings into
9528 one string in ACX_PROG_CC_WARNING_OPTS,
02bb8bce
UB
9529 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
9530 ACX_PROG_CC_WARNINGS_ARE_ERRORS.
f6e377f8
AT
9531 * configure: Regenerate.
9532
1961418e
RG
95332008-07-28 Richard Guenther <rguenther@suse.de>
9534
9535 * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
9536 (insert_fake_stores): Remove.
9537 (realify_fake_stores): Likewise.
9538 (execute_pre): Remove dead code.
5617c135 9539 * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
1961418e
RG
9540 (find_func_aliases): Deal with it here instead.
9541 Re-enable gcc_unreachable call.
9542
726a989a
RB
95432008-07-28 Richard Guenther <rguenther@suse.de>
9544
9545 Merge from gimple-tuples-branch.
9546
9547 * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
9548 * gimple.def: New file.
9549 * gsstruct.def: Likewise.
9550 * gimple-iterator.c: Likewise.
9551 * gimple-pretty-print.c: Likewise.
9552 * tree-gimple.c: Removed. Merged into ...
9553 * gimple.c: ... here. New file.
9554 * tree-gimple.h: Removed. Merged into ...
9555 * gimple.h: ... here. New file.
9556
9557 * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
9558 * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
9559 --enable-checking=gimple flag.
9560 * config.in: Likewise.
9561 * configure: Regenerated.
9562
9563 * tree-ssa-operands.h: Tuplified.
9564 * tree-vrp.c: Likewise.
9565 * tree-loop-linear.c: Likewise.
9566 * tree-into-ssa.c: Likewise.
9567 * tree-ssa-loop-im.c: Likewise.
9568 * tree-dump.c: Likewise.
9569 * tree-complex.c: Likewise.
9570 * cgraphbuild.c: Likewise.
9571 * tree-ssa-threadupdate.c: Likewise.
9572 * tree-ssa-loop-niter.c: Likewise.
9573 * tree-pretty-print.c: Likewise.
9574 * tracer.c: Likewise.
9575 * gengtype.c: Likewise.
9576 * tree-loop-distribution.c: Likewise.
9577 * tree-ssa-loop-unswitch.c: Likewise.
9578 * cgraph.c: Likewise.
9579 * cgraph.h: Likewise.
9580 * tree-ssa-loop-manip.c: Likewise.
9581 * value-prof.c: Likewise.
9582 * tree-ssa-loop-ch.c: Likewise.
9583 * tree-tailcall.c: Likewise.
9584 * value-prof.h: Likewise.
9585 * tree.c: Likewise.
9586 * tree.h: Likewise.
9587 * tree-pass.h: Likewise.
9588 * ipa-cp.c: Likewise.
9589 * tree-scalar-evolution.c: Likewise.
9590 * tree-scalar-evolution.h: Likewise.
9591 * target.h: Likewise.
9592 * lambda-mat.c: Likewise.
9593 * tree-phinodes.c: Likewise.
9594 * diagnostic.h: Likewise.
9595 * builtins.c: Likewise.
9596 * tree-ssa-alias-warnings.c: Likewise.
9597 * cfghooks.c: Likewise.
9598 * fold-const.c: Likewise.
9599 * cfghooks.h: Likewise.
9600 * omp-low.c: Likewise.
9601 * tree-ssa-dse.c: Likewise.
9602 * ipa-reference.c: Likewise.
9603 * tree-ssa-uncprop.c: Likewise.
9604 * toplev.c: Likewise.
9605 * tree-gimple.c: Likewise.
9606 * tree-gimple.h: Likewise.
9607 * tree-chrec.c: Likewise.
9608 * tree-chrec.h: Likewise.
9609 * tree-ssa-sccvn.c: Likewise.
9610 * tree-ssa-sccvn.h: Likewise.
9611 * cgraphunit.c: Likewise.
9612 * tree-ssa-copyrename.c: Likewise.
9613 * tree-ssa-ccp.c: Likewise.
9614 * tree-ssa-loop-ivopts.c: Likewise.
9615 * tree-nomudflap.c: Likewise.
9616 * tree-call-cdce.c: Likewise.
9617 * ipa-pure-const.c: Likewise.
9618 * c-format.c: Likewise.
9619 * tree-stdarg.c: Likewise.
9620 * tree-ssa-math-opts.c: Likewise.
9621 * tree-ssa-dom.c: Likewise.
9622 * tree-nrv.c: Likewise.
9623 * tree-ssa-propagate.c: Likewise.
9624 * ipa-utils.c: Likewise.
9625 * tree-ssa-propagate.h: Likewise.
9626 * tree-ssa-alias.c: Likewise.
9627 * gimple-low.c: Likewise.
9628 * tree-ssa-sink.c: Likewise.
9629 * ipa-inline.c: Likewise.
9630 * c-semantics.c: Likewise.
9631 * dwarf2out.c: Likewise.
9632 * expr.c: Likewise.
9633 * tree-ssa-loop-ivcanon.c: Likewise.
9634 * predict.c: Likewise.
9635 * tree-ssa-loop.c: Likewise.
9636 * tree-parloops.c: Likewise.
9637 * tree-ssa-address.c: Likewise.
9638 * tree-ssa-ifcombine.c: Likewise.
9639 * matrix-reorg.c: Likewise.
9640 * c-decl.c: Likewise.
9641 * tree-eh.c: Likewise.
9642 * c-pretty-print.c: Likewise.
9643 * lambda-trans.c: Likewise.
9644 * function.c: Likewise.
9645 * langhooks.c: Likewise.
9646 * ebitmap.h: Likewise.
9647 * tree-vectorizer.c: Likewise.
9648 * function.h: Likewise.
9649 * langhooks.h: Likewise.
9650 * tree-vectorizer.h: Likewise.
9651 * ipa-type-escape.c: Likewise.
9652 * ipa-type-escape.h: Likewise.
9653 * domwalk.c: Likewise.
9654 * tree-if-conv.c: Likewise.
9655 * profile.c: Likewise.
9656 * domwalk.h: Likewise.
9657 * tree-data-ref.c: Likewise.
9658 * tree-data-ref.h: Likewise.
9659 * tree-flow-inline.h: Likewise.
9660 * tree-affine.c: Likewise.
9661 * tree-vect-analyze.c: Likewise.
9662 * c-typeck.c: Likewise.
9663 * gimplify.c: Likewise.
9664 * coretypes.h: Likewise.
9665 * tree-ssa-phiopt.c: Likewise.
9666 * calls.c: Likewise.
9667 * tree-ssa-coalesce.c: Likewise.
9668 * tree.def: Likewise.
9669 * tree-dfa.c: Likewise.
9670 * except.c: Likewise.
9671 * except.h: Likewise.
9672 * cfgexpand.c: Likewise.
9673 * tree-cfgcleanup.c: Likewise.
9674 * tree-ssa-pre.c: Likewise.
9675 * tree-ssa-live.c: Likewise.
9676 * tree-sra.c: Likewise.
9677 * tree-ssa-live.h: Likewise.
9678 * tree-predcom.c: Likewise.
9679 * lambda.h: Likewise.
9680 * tree-mudflap.c: Likewise.
9681 * ipa-prop.c: Likewise.
9682 * print-tree.c: Likewise.
9683 * tree-ssa-copy.c: Likewise.
9684 * ipa-prop.h: Likewise.
9685 * tree-ssa-forwprop.c: Likewise.
9686 * ggc-page.c: Likewise.
9687 * c-omp.c: Likewise.
9688 * tree-ssa-dce.c: Likewise.
9689 * tree-vect-patterns.c: Likewise.
9690 * tree-ssa-ter.c: Likewise.
9691 * tree-nested.c: Likewise.
9692 * tree-ssa.c: Likewise.
9693 * lambda-code.c: Likewise.
9694 * tree-ssa-loop-prefetch.c: Likewise.
9695 * tree-inline.c: Likewise.
9696 * tree-inline.h: Likewise.
9697 * tree-iterator.c: Likewise.
9698 * tree-optimize.c: Likewise.
9699 * tree-ssa-phiprop.c: Likewise.
9700 * tree-vect-transform.c: Likewise.
9701 * tree-object-size.c: Likewise.
9702 * tree-outof-ssa.c: Likewise.
9703 * cfgloop.c: Likewise.
9704 * system.h: Likewise.
9705 * tree-profile.c: Likewise.
9706 * cfgloop.h: Likewise.
9707 * c-gimplify.c: Likewise.
9708 * c-common.c: Likewise.
9709 * tree-vect-generic.c: Likewise.
9710 * tree-flow.h: Likewise.
9711 * c-common.h: Likewise.
9712 * basic-block.h: Likewise.
9713 * tree-ssa-structalias.c: Likewise.
9714 * tree-switch-conversion.c: Likewise.
9715 * tree-ssa-structalias.h: Likewise.
9716 * tree-cfg.c: Likewise.
9717 * passes.c: Likewise.
9718 * ipa-struct-reorg.c: Likewise.
9719 * ipa-struct-reorg.h: Likewise.
9720 * tree-ssa-reassoc.c: Likewise.
9721 * cfgrtl.c: Likewise.
9722 * varpool.c: Likewise.
9723 * stmt.c: Likewise.
9724 * tree-ssanames.c: Likewise.
9725 * tree-ssa-threadedge.c: Likewise.
9726 * langhooks-def.h: Likewise.
9727 * tree-ssa-operands.c: Likewise.
9728 * config/alpha/alpha.c: Likewise.
9729 * config/frv/frv.c: Likewise.
9730 * config/s390/s390.c: Likewise.
9731 * config/m32c/m32c.c: Likewise.
9732 * config/m32c/m32c-protos.h: Likewise.
9733 * config/spu/spu.c: Likewise.
9734 * config/sparc/sparc.c: Likewise.
9735 * config/i386/i386.c: Likewise.
9736 * config/sh/sh.c: Likewise.
9737 * config/xtensa/xtensa.c: Likewise.
9738 * config/stormy16/stormy16.c: Likewise.
9739 * config/ia64/ia64.c: Likewise.
9740 * config/rs6000/rs6000.c: Likewise.
9741 * config/pa/pa.c: Likewise.
9742 * config/mips/mips.c: Likewise.
9743
0d48657d
SB
97442008-07-28 Simon Baldwin <simonb@google.com>
9745
9746 * c-pragma.c (handle_pragma_message): New function.
9747 (init_pragma): Register handle_pragma_message.
9748 * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
9749 documentation.
9750
21e6dd8f
VK
97512008-07-27 Victor Kaplansky <victork@il.ibm.com>
9752
9753 PR tree-optimization/35252
9754 * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
9755 REALPART_EXPR to be considered as same load operation.
9756
330e765e
EB
97572008-07-27 Eric Botcazou <ebotcazou@adacore.com>
9758
9759 PR tree-optimization/36830
9760 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
9761 (expressions_equal_p): Return false if only one operand is null.
9762
f0947430
GP
97632008-07-26 Gerald Pfeifer <gerald@pfeifer.com>
9764
9765 * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
9766 version requirements.
9767
4326ea40
OH
97682008-07-26 Olivier Hainque <hainque@adacore.com>
9769
9770 * collect2.c (symkind): New enum. Symbol kinds we care about.
9771 (is_ctor_dtor): Return symkind instead of int. Adjust prototype,
9772 code and head comment accordingly.
9773 (scan_prog_file): Use symkind names instead of bare integers.
22129589 9774
c37f4ba4
JH
97752008-07-25 Jan Hubicka <jh@suse.cz>
9776
5617c135
UB
9777 * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
9778 DECL_INLINE.
c37f4ba4
JH
9779 * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
9780 (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
9781 * dojump.c (clear_pending_stack_adjust): Likewise.
9782 * print-tree.c (print_node): Ignore DECL_INLINE.
9783 * tree-inline.c (inlinable_function_p): Likewise.
22129589 9784
a51fa0f4
MM
97852008-07-25 Michael Meissner <gnu@the-meissners.org>
9786
9787 * doc/extend.texi (hot attribute): Document that the hot attribute
9788 turns on -O3 for some ports.
9789 (cold attribute): Document that the cold attribute turns on -Os
9790 for some ports
9791
9792 * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
9793 reflect function specific option support.
9794
9795 * target.h (struct target_option_hooks): Add fields to say whether
9796 the cold attribute implies -Os and the hot attribute implies -O3.
9797
9798 * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
9799 By default, do not turn on -Os for cold functions.
9800 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
9801 not turn on -O3 for hot functions.
9802
9803 * c-common.c (handle_hot_attribute): Use target hook to determine
9804 if hot functions should enable -O3.
9805 (handle_cold_attribute): Use target hook to determine if cold
9806 functions should enable -Os.
9807
9808 * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
9809 (override_options): Move disable scheduling to
9810 optimization_options.
9811 (optimization_options): Disable scheduling here, not
9812 override_options.
9813 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9814 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9815
9816 * config/ia64/ia64.c (ia64_override_options): Move setting
9817 scheduling flags to ia64_optimization_options.
9818 (ia64_optimization_options): Disable scheduling options here, and
9819 not in ia64_override_options.
9820 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9821 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
9822
98232008-07-25 H.J. Lu <hongjiu.lu@intel.com>
9824
9825 PR target/36936
9826 * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
9827
1fc8feb5
MJ
98282008-07-25 Martin Jambor <mjambor@suse.cz>
9829
9830 PR tree-optimization/36926
9831 * ipa-prop.c (ipa_analyze_call_uses): Call
9832 ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
9833
42dec64c
JM
98342008-07-25 Joseph Myers <joseph@codesourcery.com>
9835
9836 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
9837 movv2si_internal): Add mem = reg alternative.
9838
7a946186
AT
98392008-07-25 Andreas Tobler <a.tobler@schweiz.org>
9840
9841 PR bootstrap/36918
9842 * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
9843 DEFAULT_PCC_STRUCT_RETURN to 127.
9844
7e8b322a
JH
98452008-07-24 Jan Hubicka <jh@suse.cz>
9846
9847 * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
9848 (build_cgraph_edges): Likewise.
9849 * cgraph.c (cgraph_node): Do not update assembler hash.
9850 (cgraph_remove_node): Drop non-unit-at-a-time code.
9851 * tree-pass.h (pass_O0_always_inline): Remove.
9852 * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
9853 * toplev.c (process_options): Flag unit-at-a-time does not imply
9854 no section anchors.
9855 * cgraphunit.c: Update comments.
9856 (decide_is_function_needed): Drop non-unit-at-a-time mode.
9857 (cgraph_assemble_pending_functions): Remove.
9858 (cgraph_reset_node): Drop non-unit-at-a-time code.
9859 (cgraph_finalize_function): Likewise.
9860 (cgraph_analyze_function): Likewise.
9861 (cgraph_finalize_compilation_unit): Likewise.
9862 (cgraph_expand_function): Likewise.
9863 (cgraph_optimize): Likesise.
9864 (save_inline_function_body): Likewise.
9865 * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
9866 * tree-ssa-alias.c (maybe_be_aliased): Likewise.
9867 * ipa-inline.c: Update comments.
9868 (enum inlining_mode): remove INLINE_SPEED.
9869 (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
9870 (cgraph_mark_inline_edge): Likewise.
9871 (try_inline): Likewise.
9872 (cgraph_decide_inlining_incrementally): Likewise.
9873 (cgraph_gate_inlining): Remove.
9874 (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
9875 (cgraph_gate_early_inlining): Likewise.
9876 (gate_inline_passes): Remove.
9877 (pass_inline_parameters, pass_ipa_inline): Remove gates.
22129589 9878 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
7e8b322a
JH
9879 pass_O0_always_inline): Remove.
9880 * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
9881 * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
9882 * opts.c (no_unit_at_a_time_default): Remove.
9883 (decode_options): Remove flag_unit_at_a_time reset and warning.
9884 * opts.h (no_unit_at_a_time_default): Remove.
9885 * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
9886 early in GNU dialect.
9887 (merge_decls): Update comment; drop unit-at-a-time check.
9888 (finish_decl): Likewise.
9889 (grok_declaration): Remove flag_inline_trees code.
9890 (finish_functions): Return on function returning non-void on all
9891 statics.
9892 * ipa-tye-escape.c (gate_type_escape_vars): Remove.
9893 * cfgexpand.c (expand_one_static_var): Remove.
9894 (expand_one_var): Remove expand_one_static_var call.
9895 (expand_used_vars_for_block): Remove flag_unit_a_time check.
9896 * c-opts.c (c_common_post_options): Remove flag_inline_trees code
9897 and flag_unit_at_a-time compatibility checks.
9898 * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
9899 * tree-inline.c (flag_inline_trees): Remove.
9900 (inlinable_function_p): Don't check it.
9901 (expand_call_inline): Remove non-unit-at-a-time code.
9902 * tree-inline.h (flag_inline_trees): Remove.
9903 * tree-optimize.c (execute_early_local_optimizations): Remove
9904 unit-at-a-time checks.
9905 (tree_rest_of_compilation): Likewise.
9906 * combine.c (setup_incoming_promotions): Likewise.
9907 * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
9908 * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
9909 * passes.c (pass_inline_parameters): Update comments; remove
9910 O0_alwaysinline pass.
9911 (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
9912 (execute_one_pass): Likewise.
9913 * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
9914 (ix86_function_sseregparm): Likewise.
9915 * arm.c (arm_function_in_section_p): Likewise.
9916 * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
9917 * varpool.c: Update comments.
9918 (decide_is_variable_needed): Remove unit-at-a-time checks.
9919 (varpool_finalize_decl): Likewise.
9920
9ccd8574
KK
99212008-07-24 Kaz Kojima <kkojima@gcc.gnu.org>
9922
9923 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
9924 to 2 instead of -1.
5617c135 9925 (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
9ccd8574 9926
56b7e765
KT
99272008-07-24 Kai Tietz <kai.tietz@onevision.com>
9928
9929 * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
9930 imp symbol extension.
9931
22129589 9932 2008-07-23 Ian Lance Taylor <iant@google.com>
11522353
ILT
9933
9934 * tree-vrp.c (infer_value_range): Ignore asm statements when
9935 looking for memory accesses for -fdelete-null-pointer-checks.
9936
e816b6b5
BE
99372008-07-24 Ben Elliston <bje@au.ibm.com>
9938
9939 * config/spu/spu-c.c (__vector_keyword): New variable.
9940 (vector_keyword): Likewise.
9941 (spu_categorize_keyword): New function.
9942 (spu_macro_to_expand): Likewise.
9943 (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
9944 compiling an ISO C dialect.
9945
ce26ee21
BE
99462008-07-24 Ben Elliston <bje@au.ibm.com>
9947
9948 * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
9949 conventional usage.
9950
7326a39e
AL
99512008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
9952
9953 * configure: Regenerate.
9954 * configure.ac: Require texinfo 4.7.
9955 * doc/install.texi: Document texinfo 4.7 requirement.
9956
3e293154
MJ
99572008-07-23 Martin Jambor <mjambor@suse.cz>
9958
22129589 9959 * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
3e293154
MJ
9960 rather than for DECL_SAVED_TREE.
9961 * ipa-prop.c: Include diagnostic.h.
22129589 9962 (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
3e293154
MJ
9963 thoroughly.
9964 (ipa_detect_param_modifications): Function rewritten from scratch.
9965 (ipa_compute_jump_functions): Changed accesses to modification flags.
9966 (ipa_free_node_params_substructures): Update flags destruction.
9967 (ipa_node_duplication_hook): Update flags duplication.
9968 (ipa_print_all_params_modified): Updated flag access.
9969 * ipa-prop.h (struct ipa_param_flags): New structure.
22129589
AS
9970 (struct ipa_node_params): New field modification_analysis_done,
9971 modified_flags changed into param_flags.
9972 (ipa_is_ith_param_modified): Changed to use new flags.
3e293154
MJ
9973 * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
9974
9975 * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
9976 ipa-cp.c and split into two functions.
9977 (ipa_print_node_jump_functions): New function.
9978 (compute_scalar_jump_functions): New function.
9979 (type_like_member_ptr_p): New function.
9980 (compute_pass_through_member_ptrs): New function.
9981 (fill_member_ptr_cst_jump_function): New function.
9982 (determine_cst_member_ptr): New function.
9983 (compute_cst_member_ptr_arguments): New function.
9984 (ipa_compute_jump_functions): Complete rewrite.
9985 * ipa-prop.h (enum jump_func_type): Make explicit that we depend
9986 on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
9987 (struct ipa_member_ptr_cst): New structure.
9988 (union jump_func_value): New field member_cst.
9989 * ipa-cp.c (ipcp_lat_is_insertable): New function.
9990 (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
9991 jump function types.
9992 (ipcp_print_all_lattices): Slight fprintf rearrangement.
9993 (ipcp_print_all_structures): Call ipa_print_all_jump_functions
9994 instead of ipcp_print_all_jump_functions.
9995 (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
9996 only for replacable scalars.
9997
9998 * doc/invoke.texi (Optimize options): Add description of
9999 -findirect-inlining.
10000 * common.opt (flag_indirect_inlining): New flag.
22129589 10001 * opts.c (decode_options): Set flag_indirect_inlining when
3e293154
MJ
10002 optimize >= 3.
10003
10004 * ipa-inline.c: Include ipa-prop.h.
10005 (inline_indirect_intraprocedural_analysis): New function.
10006 (inline_generate_summary): Allocate parameter and argument info
10007 structures, call inline_indirect_intraprocedural_analysis on each
22129589 10008 node when doing indirect inlining and deallocate indirect inlining
3e293154
MJ
10009 data structures in the end.
10010 * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
10011 (free_all_ipa_structures_after_iinln): New function.
22129589 10012 (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
3e293154
MJ
10013 done.
10014 * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
10015
10016 * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
10017 (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
10018 of computing the frequency separately.
10019 (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
10020 of computing the frequency separately.
22129589 10021 * ipa-cp.c (ipcp_print_all_structures): Replace a call to
3e293154
MJ
10022 ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
10023 * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
10024 (ipa_get_stmt_member_ptr_load_param): New function.
10025 (ipa_is_ssa_with_stmt_def): New function.
10026 (ipa_note_param_call): New function.
10027 (ipa_analyze_call_uses): New function.
10028 (ipa_analyze_stmt_uses): New function.
10029 (ipa_analyze_params_uses): New function.
10030 (ipa_free_node_params_substructures): Also free the param_calls linked
10031 list.
02bb8bce
UB
10032 (ipa_node_duplication_hook): Also duplicate the param_calls
10033 linked list.
3e293154
MJ
10034 (ipa_print_node_param_flags): New function.
10035 (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
10036 (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
10037 * ipa-prop.h (struct ipa_param_flags): New field called.
10038 (struct ipa_param_call_note): New structure.
10039 (struct ipa_node_params): New fields param_calls and
10040 uses_analysis_done.
10041 (ipa_is_ith_param_called): New function.
10042 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
10043 ipa_analyze_params_uses and dump parameter flags.
10044
10045 * ipa-inline.c (cgraph_decide_recursive_inlining): Call
10046 ipa_propagate_indirect_call_infos if performing indirect inlining,
10047 pass a new parameter new_edges to it.
10048 (add_new_edges_to_heap): New fucntion.
10049 (cgraph_decide_inlining_of_small_functions): New vector
10050 new_indirect_edges for newly found indirect edges , call
10051 ipa_propagate_indirect_call_infos after inlining.
10052 (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
10053 inlining if performing indirect inlining. Call
10054 free_all_ipa_structures_after_iinln when doing so too.
10055 (inline_generate_summary): Do not call
10056 free_all_ipa_structures_after_iinln here.
10057 * ipa-prop.c (update_jump_functions_after_inlining): New function.
10058 (print_edge_addition_message): New function.
10059 (update_call_notes_after_inlining): New function.
10060 (propagate_info_to_inlined_callees): New function.
10061 (ipa_propagate_indirect_call_infos): New function.
10062 * ipa-prop.h: Include cgraph.h
10063 (struct ipa_param_call_note): Fields reordered, new field processed.
10064 * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
10065 flag indirect_call.
10066 * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
10067 rediscovered call statements.
10068 * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
10069 (dump_cgraph_node): Dump also the indirect_call flag.
10070 (cgraph_clone_edge): Copy also the indirect_call flag.
10071 * tree-inline.c (copy_bb): Do not check for fndecls from call
10072 expressions, check for edge availability when moving clones.
10073 (get_indirect_callee_fndecl): New function.
10074 (expand_call_inline): If callee declaration is not apprent from
10075 the statement, try calling get_indirect_callee_fndecl. Do not
10076 issue warnings or call sorry when not inlinings an indirect edge.
10077 * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
10078
10079 * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
10080 bit more frandly to matching.
10081 * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
10082 * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
10083 * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
22129589 10084
e62fe68a
MM
100852008-07-23 Michael Meissner <gnu@the-meissners.org>
10086
10087 PR 36907
10088 * opth-gen.awk: Suppress function specific features when building
10089 target libraries.
10090 * optc-gen.awk: Ditto.
10091
fcf73884
MLI
100922008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10093
10094 PR 35058
10095 * diagnostic.c (pedwarn): Add opt parameter.
10096 (pedwarn0): New.
10097 * c-tree.h (pedwarn_init): Add opt parameter.
10098 (pedwarn_c90): Likewise.
10099 (pedwarn_c99): Likewise.
10100 * c-errors.c (pedwarn_c99): Likewise.
10101 (pedwarn_c90): Likewise.
10102 * toplev.h (pedwarn): Update declaration.
10103 (pedwarn0): Declare.
10104 * c-lex.c: All calls to pedwarn changed.
10105 * builtins.c: All calls to pedwarn changed.
10106 * toplev.c: All calls to pedwarn changed.
10107 * c-decl.c: All calls to pedwarn changed.
10108 * c-typeck.c: All calls to pedwarn changed.
10109 * c-common.c: All calls to pedwarn changed.
10110 * c-parser.c: All calls to pedwarn changed.
22129589 10111
f5ae72a9
MM
101122008-07-23 Michael Meissner <gnu@the-meissners.org>
10113 Karthik Kumar <karthikkumar@gmail.com>
10114
10115 * attribs.c (file scope): Include c-common.h.
10116 (decl_attributes): Add support for #pragma GCC optimize and
10117 #pragma GCC option.
10118
10119 * targhooks.c (default_can_inline_p): New function that is the
10120 default for the TARGET_CAN_INLINE_P target hook.
10121
10122 * targhooks.h (default_can_inline_p): Add declaration.
10123
10124 * tree.c (cl_optimization_node): New static tree for building
10125 OPTIMIZATION_NODE tree.
10126 (cl_target_option_node): New static tree for building
10127 TARGET_OPTION_NODE tree.
10128 (cl_option_hash_table): New hash table for hashing
10129 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10130 (cl_option_hash_hash): New function to provide the hash value for
10131 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10132 (cl_option_hash_eq): New function to provide an equality test for
10133 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
10134 (tree_code_size): Add support for OPTIMIZATION_NODE and
10135 TARGET_OPTION_NODE trees.
10136 (tree_code_structure): Add support for OPTIMIZATION_NODE and
10137 TARGET_OPTION_NODE trees.
10138 (build_optimization_node): Build a tree that has all of the
10139 current optimization options.
10140 (build_target_option_node): Build a tree that has the target
10141 options that might be changed on a per function basis.
10142
10143 * tree.h (file scope): Include options.h.
10144 (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
10145 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
10146 (TREE_OPTIMIZATION): Ditto.
10147 (TREE_TARGET_SPECIFIC): Ditto.
10148 (struct tree_function_decl): Add fields for remembering the
10149 current optimization options and target specific options.
10150 (struct tree_optimization_option): New tree variant that remembers
10151 the optimization options.
10152 (struct tree_target_option): New tree variant that remembers the
10153 target specific flags that might change for compiling a particular
10154 function.
10155 (union tree_node): Include tree_optimization_option and
10156 tree_target_option fields.
10157 (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
10158 TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
10159 TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
10160 TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
10161 TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
10162 optimization and target options.
10163 (optimization_default_node): New macro to refer to global_trees
10164 field.
10165 (optimization_current_node): Ditto.
10166 (optimization_cold_node): Ditto.
10167 (optimization_hot_node): Ditto.
10168 (target_option_default_node): Ditto.
10169 (target_option_current_node): Ditto.
10170 (current_option_pragma): Ditto.
10171 (current_optimize_pragma): Ditto.
10172
10173 * target.h (struct gcc_target): Add valid_option_attribute_p,
10174 target_option_save, target_option_restore, target_option_print,
10175 target_option_pragma_parse, and can_inline_p hooks.
10176
10177 * toplev.h (parse_optimize_options): Add declaration.
10178 (fast_math_flags_struct_set_p): Ditto.
10179
10180 * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
10181 adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
10182 optimize is used.
10183
10184 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
10185 tree_can_inline_p hook to see if one function can inline another.
10186 (cgraph_decide_inlining): Ditto.
10187 (cgraph_decide_inlining_incrementally): Ditto.
10188
10189 * opts.c (decode_options): Add support for running multiple times
10190 to allow functions with different target or optimization options
10191 than was specified on the command line.
10192 (fast_math_flags_struct_set_p): New function that is similar to
10193 fast_math_flags_set_p, except it uses the values in the
10194 cl_optimization structure instead of global variables.
10195
10196 * optc-gen.awk: Add support for TargetSave to allow a back end to
10197 declare new fields that need to be saved when using function
10198 specific options. Include flags.h and target.h in the options.c
10199 source. Add support for Save to indicate which options can be set
10200 for individual functions. Generate cl_optimize_save,
10201 cl_optimize_restore, cl_optimize_print, cl_target_option_save,
10202 cl_target_option_restore, cl_target_option_print functions to
10203 allow functions to use different optimization or target options.
10204
10205 * opt-functions.awk (var_type_struct): Return the type used for
10206 storing the field in a structure.
10207
10208 * opth-gen.awk: Add support for TargetSave to allow a back end to
10209 declare new fields that need to be saved when using function
10210 specific options. Add support for Save to indicate which options
10211 can be set for individual functions. Only generate one extern for
10212 Mask fields. Generate cl_optimization and cl_target_option
10213 structures to remember optimization and target options.
10214
10215 * treestruct.def (TS_OPTIMIZATION): Add support for garbage
10216 collecting new tree nodes.
10217 (TS_TARGET_OPTION): Ditto.
10218
10219 * c-decl.c (merge_decls): Merge function specific target and
10220 optimization options.
10221
10222 * function.c (invoke_set_current_function_hook): If the function
10223 uses different optimization options, change the global variables
10224 to reflect this.
10225
10226 * coretypes.h (struct cl_optimization): Add forward reference.
10227 (struct cl_target_option): Ditto.
10228
10229 * c-pragma.c (option_stack): New static vector to remember the
10230 current #pragma GCC option stack.
10231 (handle_pragma_option): New function to support #pragma GCC option
10232 to change target options.
10233 (optimize_stack): New static vector to remember the current
10234 #pragma GCC optimize stack.
10235 (handle_pragma_optimize): New function to support #pragma GCC
10236 optimize to change optimization options.
10237 (init_pragma): Add support for #pragma GCC optimize and #pragma
10238 GCC option.
10239
10240 * tree.def (OPTIMIZATION_NODE): New tree code for remembering
10241 optimization options.
10242 (TARGET_OPTION_NODE): New tree code for remembering certain target
10243 options.
10244
10245 * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
10246 TARGET_OPTION_NODE trees.
10247
10248 * common.opt (-O): Add Optimization flag.
10249 (-Os): Ditto.
10250 (-fmath-errno): Ditto.
10251 (-falign-functions): Add UInteger flag to make sure flag gets full
10252 int in cl_optimization structure.
10253 (-falign-jumps): Ditto.
10254 (-falign-labels): Ditto.
10255 (-falign-loops): Ditto.
10256 (-fsched-stalled-insns): Ditto.
10257 (-fsched-stalled-insns-dep): Ditto.
10258
10259 * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
10260 definition.
10261 (TARGET_OPTION_SAVE): Ditto.
10262 (TARGET_OPTION_RESTORE): Ditto.
10263 (TARGET_OPTION_PRINT): Ditto.
10264 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
10265 (TARGET_CAN_INLINE_P): Ditto.
10266 (TARGET_INITIALIZER): Add new hooks.
10267
10268 * tree-inline.c (tree_can_inline_p): New function to determine
10269 whether one function can inline another. Check if the functions
10270 use compatible optimization options, and also call the backend
10271 can_inline_p hook.
10272
10273 * tree-inline.h (tree_can_inline_p): Add declaration.
10274
10275 * c-common.c (c_common_attribute): Add support for option and
10276 optimize attributes.
10277 (handle_option_attribute): Add support for the option attribute to
10278 allow the user to specify different target options for compiling a
10279 specific function.
10280 (handle_optimize_attribute): Add support for the optimize
10281 attribute to allow the user to specify different optimization
10282 options for compiling a specific function.
10283 (handle_hot_attribute): Turn on -O3 optimization for this one
10284 function if it isn't the default optimization level.
10285 (handle_cold_attribute): Turn on -Os optimization for this one
10286 function if it insn't the default optimization.
10287 (const_char_p): New const char * typedef.
10288 (optimize_args): New static vector to remember the optimization
10289 arguments.
10290 (parse_optimize_options): New function to set up the optimization
5617c135 10291 arguments from either the optimize attribute or #pragma GCC optimize.
f5ae72a9
MM
10292
10293 * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
10294 (builtin_define_std): Ditto.
10295
10296 * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
5617c135 10297 Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
f5ae72a9
MM
10298 (x86_64-*-*): Ditto.
10299
10300 * Makefile.in (TREE_H): Add options.h.
10301 (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
10302
10303 * doc/extend.texi (option attribute): Document new attribute.
10304 (optimize attribute): Ditto.
10305 (hot attribute): Document hot attribute sets -O3.
10306 (cold attribute): Document cold attribute sets -Os.
10307 (#pragma GCC option): Document new pragma.
10308 (#pragma GCC optimize): Ditto.
10309
10310 * doc/options.texi (TargetSave): Document TargetSave syntax.
10311 (UInteger): Document UInteger must be used for certain flags.
10312 (Save): Document Save option to create target specific options
10313 that can be saved/restored on a function specific context.
10314
5617c135 10315 * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
f5ae72a9
MM
10316 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
10317
5617c135 10318 * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
f5ae72a9
MM
10319 (TARGET_OPTION_SAVE): Ditto.
10320 (TARGET_OPTION_RESTORE): Ditto.
10321 (TARGET_OPTION_PRINT): Ditto.
10322 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
10323 (TARGET_CAN_INLINE_P): Ditto.
10324
10325 * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
10326 -mfpmath=sse,387.
10327 (-mfpmath=both): Ditto.
10328
103292008-07-23 Michael Meissner <gnu@the-meissners.org>
10330 Karthik Kumar <karthikkumar@gmail.com>
10331
5617c135 10332 * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
f5ae72a9
MM
10333 (TARGET_POPCNT): Ditto.
10334 (TARGET_SAHF): Ditto.
10335 (TARGET_AES): Ditto.
10336 (TARGET_PCLMUL): Ditto.
10337 (TARGET_CMPXCHG16B): Ditto.
10338 (TARGET_RECIP): Move switch into target_flags.
10339 (TARGET_FUSED_MADD): Ditto.
10340 (ix86_arch_features): Make an unsigned char type.
10341 (ix86_tune_features): Ditto.
10342 (OVERRIDE_OPTIONS): Add bool argument to override_options call.
10343 (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
10344 (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
10345
10346 * config/i386/i386.opt (arch): New TargetSave field to define
5617c135 10347 fields that need to be saved for function specific option support.
f5ae72a9
MM
10348 (tune): Ditto.
10349 (fpmath): Ditto.
10350 (branch_cost): Ditto.
10351 (ix86_isa_flags_explicit): Ditto.
10352 (tune_defaulted): Ditto.
10353 (arch_specified): Ditto.
10354 (-m128-long-double): Add Save flag to save option for target
10355 specific option support.
10356 (-m80387): Ditto.
10357 (-maccumulate-outgoing-args): Ditto.
10358 (-malign-double): Ditto.
10359 (-malign-stringops): Ditto.
10360 (-mfancy-math-387): Ditto.
10361 (-mhard-float): Ditto.
10362 (-mieee-fp): Ditto.
10363 (-minline-all-stringops): Ditto.
10364 (-minline-stringops-dynamically): Ditto.
10365 (-mms-bitfields): Ditto.
10366 (-mno-align-stringops): Ditto.
10367 (-mno-fancy-math-387): Ditto.
10368 (-mno-push-args): Ditto.
10369 (-mno-red-zone): Ditto.
10370 (-mpush-args): Ditto.
10371 (-mred-zone): Ditto.
10372 (-mrtd): Ditto.
10373 (-msseregparm): Ditto.
10374 (-mstack-arg-probe): Ditto.
10375 (-m32): Ditto.
10376 (-m64): Ditto.
10377 (-mmmx): Ditto.
10378 (-m3dnow): Ditto.
10379 (-m3dnowa): Ditto.
10380 (-msse): Ditto.
10381 (-msse2): Ditto.
10382 (-msse3): Ditto.
10383 (-msse4.1): Ditto.
10384 (-msse4.2): Ditto.
10385 (-msse4): Ditto.
10386 (-mno-sse4): Ditto.
10387 (-msse4a): Ditto.
10388 (-msse5): Ditto.
10389 (-mrecip): Move flag into target_flags.
10390 (-mcld): Ditto.
10391 (-mno-fused-madd): Ditto.
10392 (-mfused-madd): Ditto.
10393 (-mabm): Move flag into ix86_isa_flags.
10394 (-mcx16): Ditto.
10395 (-mpopcnt): Ditto.
10396 (-msahf): Ditto.
10397 (-maes): Ditto.
10398 (-mpclmul): Ditto.
10399
10400 * config/i386/i386-c.c: New file for #pragma support.
10401 (ix86_target_macros_internal): New function to #define or #undef
10402 target macros based when the user uses the #pragma GCC option to
10403 change target options.
10404 (ix86_pragma_option_parse): New function to add #pragma GCC option
10405 support.
10406 (ix86_target_macros): Move defining the target macros here from
10407 TARGET_CPU_CPP_BUILTINS in i386.h.
10408 (ix86_register_pragmas): Register the #pragma GCC option hook. If
10409 defined, initialize any subtarget #pragmas.
10410
10411 * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
10412 REGISTER_TARGET_PRAGMAS.
10413
10414 * config/i386/t-i386: New file for x86 dependencies.
10415 (i386.o): Make dependencies mirror the include files used.
10416 (i386-c.o): New file, add dependencies.
10417
5617c135 10418 * config/i386/i386-protos.h (override_options): Add bool argument.
f5ae72a9
MM
10419 (ix86_valid_option_attribute_tree): Add declaration.
10420 (ix86_target_macros): Ditto.
10421 (ix86_register_macros): Ditto.
10422
10423 * config/i386/i386.c (ix86_tune_features): Move initialization of
10424 the target masks to initial_ix86_tune_features to allow functions
10425 to have different target options. Make type unsigned char,
10426 instead of unsigned int.
10427 (initial_ix86_tune_features): New static vector to hold processor
10428 masks for the tune variables.
10429 (ix86_arch_features): Move initialization of the target masks to
10430 initial_ix86_arch_features to allow functions to have different
5617c135 10431 target options. Make type unsigned char, instead of unsigned int.
f5ae72a9
MM
10432 (initial_ix86_arch_features): New static vector to hold processor
10433 masks for the arch variables.
10434 (enum ix86_function_specific_strings): New enum to describe the
10435 string options used for attribute((option(...))).
10436 (ix86_target_string): New function to return a string that
10437 describes the target options.
10438 (ix86_debug_options): New function to print the current options in
10439 the debugger.
10440 (ix86_function_specific_save): New function hook to save the
5617c135 10441 function specific global variables in the cl_target_option structure.
f5ae72a9
MM
10442 (ix86_function_specific_restore): New function hook to restore the
10443 function specific variables from the cl_target_option structure to
10444 the global variables.
10445 (ix86_function_specific_print): New function hook to print the
10446 target specific options in the cl_target_option structure.
10447 (ix86_valid_option_attribute_p): New function hook to validate
10448 attribute((option(...))) arguments.
10449 (ix86_valid_option_attribute_tree): New function that is common
10450 code between attribute((option(...))) and #pragma GCC option
5617c135 10451 support that parses the options and returns a tree holding the options.
f5ae72a9
MM
10452 (ix86_valid_option_attribute_inner_p): New helper function for
10453 ix86_valid_option_attribute_tree.
10454 (ix86_can_inline_p): New function hook to decide if one function
10455 can inline another on a target specific basis.
10456 (ix86_set_current_function); New function hook to switch target
10457 options if the user used attribute((option(...))) or #pragma GCC
10458 option.
10459 (ix86_tune_defaulted): Move to static file scope from
10460 override_options.
10461 (ix86_arch_specified): Ditto.
10462 (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
10463 ix86_isa_flags.
10464 (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
10465 (OPTION_MASK_ISA_ABM_SET): Ditto.
10466 (OPTION_MASK_ISA_POPCNT_SET): Ditto.
10467 (OPTION_MASK_ISA_CX16_SET): Ditto.
10468 (OPTION_MASK_ISA_SAHF_SET): Ditto.
10469 (OPTION_MASK_ISA_AES_UNSET): Ditto.
10470 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
10471 (OPTION_MASK_ISA_ABM_UNSET): Ditto.
10472 (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
10473 (OPTION_MASK_ISA_CX16_UNSET): Ditto.
10474 (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
10475 (struct ptt): Move to static file scope from override_options.
10476 (processor_target_table): Ditto.
10477 (cpu_names): Ditto.
5617c135 10478 (ix86_handle_option): Add support for options that are now isa options.
f5ae72a9
MM
10479 (override_options): Add support for declaring functions that
10480 support different target options than were specified on the
10481 command line. Move struct ptt, processor_target_table, cpu_names,
10482 ix86_tune_defaulted, ix86_arch_specified to static file scope.
10483 Add bool argument. Fix up error messages so the appropriate error
10484 is given for either command line or attribute.
10485 (ix86_previous_fndecl): New static to remember previous function
10486 declaration to see if we need to change target options.
10487 (ix86_builtins_isa): New array to record the ISA of each builtin
10488 function.
10489 (def_builtin): Always create the builtin function, even if the
10490 current ISA doesn't support it.
10491 (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
10492 tests for those builtins.
10493 (ix86_init_builtins): Remove TARGET_MMX test for calling
10494 ix86_init_mmx_sse_builtins.
10495 (ix86_expand_builtin): If the current ISA doesn't support a given
10496 builtin, signal an error.
10497 (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
10498 (TARGET_SET_CURRENT_FUNCTION): Ditto.
10499 (TARGET_OPTION_SAVE): Ditto.
10500 (TARGET_OPTION_RESTORE): Ditto.
10501 (TARGET_OPTION_PRINT): Ditto.
10502 (TARGET_CAN_INLINE_P): Ditto.
10503
e49cf927 105042008-07-22 Rafael Ávila de Espíndola <espindola@google.com>
3571ae2e 10505
5617c135
UB
10506 * c-typeck.c (build_external_ref): Don't call assemble_external.
10507 * final.c (output_operand): Call assemble_external.
3571ae2e 10508
2e762884
DD
105092008-07-21 DJ Delorie <dj@redhat.com>
10510
10511 * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
10512 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
10513
a03f1b22
UW
105142008-07-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10515
10516 * config/spu/spu.md ("div<mode>3"): Convert into expander, move
10517 original insn and splitter contents into ...
10518 ("*div<mode>3_fast"): ... this new pattern. Enable only if
10519 flag_unsafe_math_optimizations. Add dummy scratch register.
10520 ("*div<mode>3_adjusted"): New insn and splitter. Enable only if
10521 !flag_unsafe_math_optimizations. Returns number with next
10522 highest magnitude if this is still less or equal to the true
10523 quotient in magnitude.
10524
e49cf927 105252008-07-21 Rafael Ávila de Espíndola <espindola@google.com>
aa14403d
RAE
10526
10527 * Makefile.in: Replace toplev.h with TOPLEV_H.
10528 * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
10529 * c-lex.c (fe_file_change): Don't set in_system_header.
10530 * c-parser.c (c_token): Remove in_system_header.
10531 (c_lex_one_token): Don't set in_system_header.
10532 (c_parser_set_source_position_from_token): Don't set in_system_header.
10533 * diagnostic.c (diagnostic_report_diagnostic): Use location from
10534 diagnostic_info.
10535 (warning_at): New.
10536 * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
10537 * flags.h (in_system_header): Remove.
10538 * function.c (saved_in_system_header): Remove.
10539 (push_cfun): Don't set in_system_header.
10540 (pop_cfun): Don't set in_system_header.
10541 (push_struct_function): Don't set in_system_header.
10542 * input.h (expanded_location): Add sysp.
10543 (in_system_header_at): New.
10544 (in_system_header): New.
10545 * toplev.c (in_system_header): Remove.
10546 * toplev.h: Include input.h
10547 (warning_at): New.
10548 * tree-cfg.c (execute_warn_function_return): Call warning_at.
10549 * tree-ssa.c (warn_uninit): Call warning_at.
10550 (warn_uninitialized_var): Update calls to warn_uninit.
10551 (warn_uninitialized_phi): Update calls to warn_uninit.
10552 * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
10553 (expand_location): Initialize xloc.sysp.
10554 * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
10555 (tree_decl_with_vis): Remove in_system_header_flag.
10556
c499b300
AK
105572008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
10558
10559 PR target/36822
10560 * recog.c (asm_operand_ok): Change the order of the extra
10561 memory constraint checks.
10562
34a87fd4
AP
105632008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
10564
10565 PR tree-opt/36879
10566 * tree-switch-conversion.c (build_one_array): Call
22129589 10567 varpool_mark_needed_node and varpool_finalize_decl
34a87fd4
AP
10568 instead of assemble_variable.
10569
c72321c9
JH
105702008-07-19 Jan Hubicka <jh@suse.cz>
10571
10572 * cgraph.c (cgraph_add_new_function): Do early local passes.
10573 * tree-nrv.c (gate_pass_return_slot): New gate.
10574 (pass_nrv): Add the gate.
10575 * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
10576 functions.
10577 (coalesce_ssa_name): Coalesce SSA names.
10578 * tree-ssa-live.c (remove_unused_locals): Be more conservative when
10579 not optimizing so unused user vars remains visible.
10580 * common.opt (flag_tree_ter): Always enable by default.
10581 * tree-ssa-ter.c: Include flags.h
02bb8bce
UB
10582 (is_replaceable_p): Check that locations match; when aliasing
10583 is missing be conservative about loads.
c72321c9
JH
10584 * tree-optimize.c (gate_init_datastructures): Remove.
10585 (pass_init_datastructures): New.
10586 * passes.c: Reorder passes so we always go into SSA.
10587
d6cc6ec9
JH
105882008-07-19 Jan Hubicka <jh@suse.cz>
10589
02bb8bce
UB
10590 * doc/extend.texi (flatten attribute): Remove note about
10591 unit-at-a-time.
d6cc6ec9
JH
10592 * doc/invoke.texi (--combine): Likewise.
10593 (-finline-functions-called-once): Update levels when enabled.
10594 (-funit-at-a-time): Document new behaviour.
10595 (-ftoplevel-reorder): Document that it is enabled -O0 and imply
10596 -fno-section-anchors when disabled explicitly.
10597 (inline params): They are not ignored now.
10598 (precompiled headers): Remove unit-at-a-time as being incompatible.
10599 * opts.c (decode_options): Handle unit-at-a-time as alias;
10600 imply -fno-section-anchors when toplevel reorder is disabled
10601 explicitly.
10602 * common.opt (ftoplevel-reorder): Set default value to 2.
10603 (funit-at-a-time): Set default value to 1.
10604 * config/rs6000/rs6000.c (optimization_options): Set section anchors
10605 to 2.
10606
1856c8dc
JH
106072008-07-19 Jan Hubicka <jh@suse.cz>
10608
10609 * builtins.c (expand_builtin_int_roundingfn,
10610 expand_builtin_int_roundingfn_2): Do not take subtarget argument;
10611 it is not useful.
10612
bb9e4199
RG
106132008-07-19 Richard Guenther <rguenther@suse.de>
10614
10615 PR bootstrap/36864
10616 * tree-ssa-sccvn.h (get_constant_value_id): Declare.
10617 * tree-ssa-sccvn.c (get_constant_value_id): New function.
10618 * tree-ssa-pre.c (get_expr_value_id): For newly created
10619 constant value-ids make sure to add the expression to its
10620 expression-set.
10621
a7ea9e29
JJ
106222008-07-19 Jakub Jelinek <jakub@redhat.com>
10623
10624 PR middle-end/36877
10625 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
10626 return value of the builtin is ignored.
10627
95331614
OH
106282008-07-19 Olivier Hainque <hainque@adacore.com>
10629
10630 * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
10631 bits, a C conformant malloc implementation has to provide.
10632 * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
10633
ea471af0
JM
106342008-07-19 Joseph Myers <joseph@codesourcery.com>
10635
10636 PR target/36780
10637 PR target/36827
10638 * reload.c (find_reloads_subreg_address): Only reload address if
10639 reloaded == 0, not for reloaded != 1.
10640
10641 Revert:
10642 2008-07-16 Joseph Myers <joseph@codesourcery.com>
10643 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10644 (m32c_legitimate_address_p): Handle "++rii" addresses created by
10645 m32c_legitimize_reload_address.
10646
10647 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
10648 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
10649 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
10650
fa8884d8
OH
106512008-07-19 Olivier Hainque <hainque@adacore.com>
10652
10653 * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
10654 argument, saying whether nested array are to be collapsed
10655 into a single array type DIE with multiple subscripts.
10656 (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
10657 issues, centralize the nested array types collapsing control and
10658 disable the transformation for Ada.
22129589 10659
72ea2555
UB
106602008-07-18 Uros Bizjak <ubizjak@gmail.com>
10661
10662 PR target/36786
10663 * config/i386/i386.md (x86_64_shift_adj_1): Rename from
10664 x86_64_shift_adj.
10665 (x86_64_shift_adj_2): New expander.
10666 (x86_64_shift_adj_3): Ditto.
10667 * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
10668 to split TImode operands.
10669 (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
10670 (ix86_split_lshr): Ditto.
10671
c466b2cd
KVH
106722008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
10673
10674 * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
10675 and __CHAR32_TYPE__.
10676 * c-typeck.c (digest_init): Support char16_t and char32_t.
10677 (set_nonincremental_init_from_string): Idem.
10678
c565a1e7
L
106792008-07-18 H.J. Lu <hongjiu.lu@intel.com>
10680
10681 PR middle-end/36859
10682 * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
10683 PREFERRED_STACK_BOUNDARY.
10684 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
10685
5ae53a25
L
106862008-07-18 H.J. Lu <hongjiu.lu@intel.com>
10687
10688 PR middle-end/36858
10689 * function.c (locate_and_pad_parm): Cap boundary earlier.
10690
711b2998
JB
106912008-07-17 Julian Brown <julian@codesourcery.com>
10692
10693 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
10694 no-op for targets which don't use DLLs.
10695
0eae6bab
MJ
106962008-07-17 Martin Jambor <mjambor@suse.cz>
10697
10698 * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
10699 that nodes are relevant by examining the node->analyzed flag.
10700 (ipcp_init_stage): Check which nodes are relevant, assert that the
10701 relevant ones are also required.
10702 (ipcp_propagate_stage): Check on the side arrays are properly
10703 allocated.
10704 (ipcp_print_all_jump_functions): Make sure not to touch any node
10705 that is not analyzed or an edge that does not have a corresponding
10706 entry in the on-the-side vectors.
10707 (ipcp_function_scale_print): Likewise.
10708 (ipcp_update_callgraph): Check that the node is relevant.
10709 (ipcp_insert_stage): Check that the node is relevant. Check there is
10710 an info for every node and edge.
10711 * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
10712 (ipa_print_all_tree_maps): Likewise and a new variable info.
10713 (ipa_print_all_params_modified): Likewise.
10714 * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
10715
19327a1a
RZ
107162008-07-17 Roman Zippel <zippel@linux-m68k.org>
10717
10718 PR target/25343
10719 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
10720
b08c5108
PB
107212008-07-17 Paolo Bonzini <bonzini@gnu.org>
10722
10723 PR rtl-optimization/36753
10724 * fwprop.c (use_killed_between): Don't shortcut
10725 single-definition global registers.
10726
7386e3ee
JH
107272008-07-16 Jan Hubicka <jh@suse.cz>
10728
10729 * cgraph.h (varpool_empty_needed_queue): Declare.
10730 * cgraphunit.c (output_in_order): Mark all variables as needed;
10731 empty the queue.
10732 * varpool.c (varpool_assemble_node): Update debug queue.
10733 (varpool_assemble_pending_decls): Don't do it here.
10734 (varpool_empty_needed_queue): New function.
10735
de498dd4
KG
107362008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10737
10738 * recog.c (peephole2_optimize): Fix formatting.
10739
48c54229
KG
107402008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10741
10742 * c-pch.c (get_ident): Avoid C++ keywords.
10743 * combine-stack-adj.c (single_set_for_csa): Likewise.
10744 * final.c (asm_insn_count, final_scan_insn, alter_subreg,
10745 output_asm_insn): Likewise.
10746 * reload.c (push_secondary_reload, find_reusable_reload,
10747 push_reload, combine_reloads, find_reloads,
10748 debug_reload_to_stream): Likewise.
10749 * reload.h (struct reload): Likewise.
10750 * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
10751 allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
10752 emit_output_reload_insns): Likewise.
10753 * targhooks.c (default_secondary_reload): Likewise.
10754 * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
10755
55d796da
KG
107562008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10757
10758 * recog.c (validate_change_1, validate_change,
10759 validate_unshare_change, validate_replace_rtx_1, struct
10760 funny_match, constrain_operands, peephole2_optimize): Avoid C++
10761 keywords.
10762 * reload.c (push_secondary_reload, secondary_reload_class,
10763 scratch_reload_class, find_valid_class, find_reusable_reload,
10764 push_reload, find_dummy_reload, find_reloads_address_1,
10765 find_reloads_address_part, find_equiv_reg): Likewise.
10766 * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
10767 choose_reload_regs): Likewise.
10768 * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
10769 Likewise.
10770 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
10771 * sched-ebb.c (add_deps_for_risky_insns): Likewise.
10772 * sched-rgn.c (concat_INSN_LIST): Likewise.
10773 * stor-layout.c (mode_for_size, mode_for_size_tree,
10774 smallest_mode_for_size): Likewise.
10775
d858f359
KG
107762008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10777
10778 * cfg.c (dump_reg_info): Avoid C++ keywords.
10779 * dwarf2asm.c (dw2_force_const_mem,
10780 dw2_asm_output_encoded_addr_rtx): Likewise.
72ea2555 10781 * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
d858f359
KG
10782 * expmed.c (expand_shift): Likewise.
10783 * global.c (find_reg): Likewise.
10784 * graph.c (draw_edge): Likewise.
10785 * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
10786 * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
10787 widen_clz, widen_bswap, expand_parity, expand_unop,
10788 emit_cmp_and_jump_insn_1): Likewise.
10789 * postreload.c (reload_cse_simplify_operands): Likewise.
10790 * ra.h (add_neighbor): Likewise.
10791 * reg-stack.c (remove_regno_note, change_stack): Likewise.
10792 * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
10793 record_reg_classes, copy_cost, record_address_regs,
10794 invalid_mode_change_p): Likewise.
10795 * regrename.c (regrename_optimize, scan_rtx_reg,
10796 dump_def_use_chain, find_oldest_value_reg,
10797 replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
10798
1bc39d2f
DE
107992008-07-16 David Edelsohn <edelsohn@gnu.org>
10800
10801 * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
10802 MASK_POWERPC64 for power4 in previous commit.
10803
bb95b4e7
OH
108042008-07-16 Olivier Hainque <hainque@adacore.com>
10805
10806 * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
10807 instead of bare conversion to cast const-ness away.
10808
e2b2d01e
AS
108092008-07-16 Anatoly Sokolov <aesok@post.ru>
10810
10811 * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
10812 XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
10813 * config/xtensa/xtensa.c (xtensa_function_value): New function.
10814 (TARGET_FUNCTION_VALUE): Define.
10815
9a8d7941
DE
108162008-07-16 David Edelsohn <edelsohn@gnu.org>
10817
10818 * config/rs6000/rs6000.c (processor_target_table): Add
10819 MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
10820
61945d8c
JM
108212008-07-16 Joseph Myers <joseph@codesourcery.com>
10822
10823 PR target/36827
10824 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
10825 (m32c_legitimate_address_p): Handle "++rii" addresses created by
10826 m32c_legitimize_reload_address.
10827
e49cf927 108282007-07-16 Rafael Ávila de Espíndola <espindola@google.com>
238fe3c5 10829
5617c135
UB
10830 * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
10831 DECL_IN_SYSTEM_HEADER in sync.
238fe3c5 10832
2dfb6ce1
DB
108332008-07-15 Daniel Berlin <dberlin@dberlin.org>
10834
10835 * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
10836 * tree-ssa-pre.c (pre_expr_eq): Ditto
10837 (get_constant_for_value_id): Take a type as an argument.
10838 (fully_constant_expression): Pass in type.
10839 (find_or_generate_expression): Short circuit constant case.
10840 (create_expression_by_pieces): Remove special casing of
10841 pointer_plus.
10842 (do_regular_insertion): Short circuit constant case.
10843 (do_partial_partial_insertion): Ditto.
10844
141368f0
KK
108452008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
10846
10847 PR target/36782
10848 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
10849
25ae96c7 108502008-07-15 Bob Wilson <bob.wilson@acm.org>
22129589 10851
25ae96c7
BW
10852 * config/xtensa/libgcc-xtensa.ver: New file.
10853 * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
22129589 10854
60564289
KG
108552008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10856
10857 * df-problems.c (df_set_note): Avoid C++ keywords.
10858 * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
10859 * dse.c (record_store, remove_useless_values): Likewise.
10860 * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
10861 gen_reg_rtx_offset, operand_subword, change_address_1,
10862 change_address, adjust_address_1, offset_address,
10863 widen_memory_access, emit_copy_of_insn_after): Likewise.
10864 * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
10865 * fwprop.c (should_replace_address, propagate_rtx_1,
10866 propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
10867 Likewise.
10868 * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
10869 gcse_emit_move_after, update_ld_motion_stores): Likewise.
10870 * lcm.c (compute_insert_delete, pre_edge_lcm,
10871 compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
10872 * lower-subreg.c (resolve_reg_notes): Likewise.
10873 * mode-switching.c (optimize_mode_switching): Likewise.
10874
32e9fa48
KG
108752008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10876
10877 * bt-load.c (add_btr_def, migrate_btr_def,
10878 branch_target_load_optimize): Avoid C++ keywords.
10879 * caller-save.c (insert_restore, insert_save, insert_one_insn):
10880 Likewise.
10881 * combine.c (subst, simplify_set, make_extraction,
72ea2555 10882 make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
32e9fa48 10883 * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
72ea2555 10884 fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
32e9fa48 10885
ac7ee6ad
RG
108862008-07-15 Richard Guenther <rguenther@suse.de>
10887
10888 PR middle-end/36369
10889 * c-common.c (strict_aliasing_warning): Do not warn for
10890 TYPE_REF_CAN_ALIAS_ALL pointers.
10891 (c_common_get_alias_set): may_alias types are not special.
10892 * tree.c (build_pointer_type_for_mode): Look up the may_alias
10893 attribute and set can_ref_all accordingly.
10894 (build_reference_type_for_mode): Likewise.
10895 * doc/extend.texi (may_alias): Clarify.
10896
96c72efe
KK
108972008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
10898
10899 PR target/36780
10900 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
10901 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
10902
cb8cc791
AP
109032008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
10904
10905 PR target/31568
10906 * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
10907 gcc_assert, instead call output_operand_lossage.
10908
e65d1ec6
KT
109092008-07-15 Kai Tietz <kai.tietz@onevision.com>
10910
10911 * builtins.c (std_canonical_va_list): Treat structure based
10912 va_list types.
10913
6926c713
BE
109142008-07-15 Ben Elliston <bje@au.ibm.com>
10915
10916 * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
10917
e49cf927 109182007-07-14 Rafael Ávila de Espíndola <espindola@google.com>
df0ed6c5
RAE
10919
10920 * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
10921 is set.
10922
f258e5e5
JH
109232008-07-14 Jan Hubicka <jh@suse.cz>
10924
10925 * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
10926 * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
10927 fix predicates and constraints.
10928 * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
10929 * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
10930
8abc1906
DK
109312008-07-14 Doug Kwan <dougkwan@google.com>
10932
10933 * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
10934 additional option file arm/eabi.opt.
10935 * config/arm/eabi.h (File): New configuration file for EABI targets.
10936 * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
10937 SUBSUBTARGET_EXTRA_SPECS.
10938 (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
10939 * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
10940 from STARTFILE_SPEC so that it can be referenced in an override.
10941 (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
10942 (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
10943 can be referenced in an override.
10944 (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
10945 * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
10946 so that it can be referenced in an override.
10947 (LINK_SPEC): Use BPABI_LINK_SPEC.
10948 * config/arm/eabi.opt (File): New.
10949
e63ea00c
RW
109502008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10951
10952 * Makefile.in (TARGET_DEF_H): Add targhooks.h.
10953 (FIXED_VALUE_H): New variable.
10954 (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
10955 input.h, fixed-value.h.
10956 (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
10957 (BASIC_BLOCK_H): Use $(BITMAP_H).
10958 (FUNCTION_H): Add varray.h.
10959 (IPA_REFERENCE_H): Use $(BITMAP_H).
10960 (CGRAPH_H): Add $(BASIC_BLOCK_H).
10961 (DF_H): Use $(BITMAP_H).
10962 (GGC_H): Add statistics.h.
10963 (INSN_ADDR_H): New.
10964 (INSN_ATTR_H): Use it.
10965 (SYSTEM_H): Add safe-ctype.h, filenames.h.
10966 (INPUT_H): New.
10967 (SYMTAB_H): Add $(OBSTACK_H).
10968 (CPP_INTERNAL_H): New.
10969 (TREE_DUMP_H): Add tree-pass.h.
10970 (TREE_FLOW_H): Use $(BITMAP_H)
10971 (PRETTY_PRINT_H): Use $(INPUT_H).
10972 (EBITMAP_H): Rename from typo-ed EBIMAP_H.
10973 (GSTAB_H): New.
10974 (BITMAP_H): New.
10975 (many object files): Fix lots of header dependencies throughout.
10976
a4e4a2d6
RW
109772008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10978
10979 * Makefile.in (write_entries_to_file, write_entries_to_file_split):
10980 New macros.
10981 (s-gtyp-input): Use them to write tmp-gi.list.
10982 (echo_to_gi.list): Remove.
10983
caf55296
RG
109842008-07-14 Richard Guenther <rguenther@suse.de>
10985
10986 * tree-ssa-sccvn.c (pre_info): Remove.
10987 (switch_to_PRE_table): Likewise.
72ea2555 10988 (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info.
caf55296
RG
10989 (set_hashtable_value_ids): Do not create value-ids for the
10990 optimistic tables.
10991 (run_scc_vn): Remove double test. Remove bogus special-case
10992 in value-number printing.
10993 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
10994 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
10995 SSA_NAME_VALUE.
10996 * tree-flow-inline.h (get_value_handle): Remove.
10997 * tree-flow.h (get_value_handle): Remove.
10998
145544ab
MJ
109992008-07-14 Martin Jambor <mjambor@suse.cz>
11000
11001 * tree-switch-conversion.c (gen_inbound_check): Make sure the type
11002 in which we generate arithmetics is not a subrange.
11003
9bfb0f01
MJ
110042008-07-14 Martin Jambor <mjambor@suse.cz>
11005
11006 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
11007
f709638a
RG
110082008-07-14 Richard Guenther <rguenther@suse.de>
11009
72ea2555 11010 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
f709638a 11011
1f9e1fc6
AK
110122008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
11013
11014 PR target/36745
11015 * config/s390/s390.c: (s390_secondary_reload): Add a secondary
11016 reload for symbol refs moved to r0 with -fPIC.
11017 (legitimize_pic_address): Use the target register as temporary
11018 reg if possible.
11019 (emit_symbolic_move): Adjust comment.
11020 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
11021 New expanders.
11022
5950c3c9
BE
110232008-07-14 Ben Elliston <bje@au.ibm.com>
11024
11025 * c-common.h (C_CPP_HASHNODE): New macro.
11026 * coretypes.h (struct cpp_token): Forward declare.
11027 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11028 the context-sensitive keyword method.
11029 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
11030 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
11031 expand_bool_pixel): New.
11032 (altivec_categorize_keyword): New function.
11033 (init_vector_keywords): New function.
11034 (rs6000_macro_to_expand): Likewise.
11035 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
11036 compiling an ISO C dialect.
11037
b463e8de
DB
110382008-07-13 Daniel Berlin <dberlin@dberlin.org>
11039
72ea2555 11040 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
b463e8de
DB
11041 (create_expression_by_pieces): Fix typo.
11042 (do_regular_insertion): Use debug counter here too.
11043
f49e46d8
HPN
110442008-07-14 Hans-Peter Nilsson <hp@axis.com>
11045
11046 PR target/35492.
11047 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
11048 CONST_OK_FOR_LETTER_P. All port-local users changed.
11049 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
11050 implement Kp matching power-of-two.
11051 (CONSTRAINT_LEN): Define to match.
11052 * config/cris/cris.md: Replace all use of constraint K with Kc.
11053 ("*btst*): Use Kp for operand 0 of last alternative.
11054
5d94a6d0
JDA
110552008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11056
11057 PR testsuite/36440
11058 * tree-call-cdce.c (check_target_format): Accept MIPS single, double
11059 and quad formats.
11060
4d16a7b7
JH
110612008-07-13 Jan Hubicka <jh@suse.cz>
11062
11063 * tree.c (decl_assembler_name_equal): Expect assembler name of decl
11064 to be mangled too.
11065
f4c91e0d
RG
110662008-07-13 Richard Guenther <rguenther@suse.de>
11067
11068 PR middle-end/36811
11069 * langhooks.c (lhd_print_error_function): Deal with recursive
11070 BLOCK trees.
11071
266ad5c8
JH
110722008-07-12 Jan Hubicka <jh@suse.cz>
11073
11074 * cgraph.c (assembler_name_hash): New static var.
11075 (hash_node_by_assembler_name, eq_assembler_name): New.
11076 (cgraph_node_for_asm): Use hashtable.
11077 (cgraph_remove_node): Maintain hashtable.
11078 (change_decl_assembler_name): Sanity check that names are not changing
11079 after aliasing was processed.
11080 * cgraph.h (varpoon_node): Add next GGC marker.
11081 * tree.c (decl_assembler_name_equal): Constify.
11082 (decl_assembler_name_hash): New.
11083 * tree.h (decl_assembler_name_equal): Constify.
11084 (decl_assembler_name_hash): Update.
11085
a5a12a83
DD
110862008-07-12 David Daney <ddaney@avtrex.com>
11087
11088 * config/mips/driver-native.c (host_detect_local_cpu): Handle
11089 sb1 and r5000 cpus.
11090
2feaae20
RS
110912008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
11092
11093 * doc/md.texi: Document the MIPS "v" constraint.
11094 * config/mips/mips.h (reg_class): Revert last change.
11095 (REG_CLASS_NAMES): Likewise.
11096 (REG_CLASS_CONTENTS): Likewise.
11097 * config/mips/mips.c (mips_regno_to_class): Likewise.
11098 * config/mips/constraints.md (v): Likewise, but add documentation.
11099 Add a comment to say that this constraint should not be used in
11100 gcc code.
11101
a428e1d4
DD
111022008-07-11 DJ Delorie <dj@redhat.com>
11103
11104 * config/h8300/h8300.md (length): Fix branch offset limit.
11105
22129589 111062008-07-11 Anatoly Sokolov <aesok@post.ru>
1cf0a7f1
AS
11107
11108 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
11109 * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
11110 (avr_hard_regno_scratch_ok): New function.
11111 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
11112 * config/avr/avr.md (all peepholes that request a scratch register):
11113 Remove avr_peep2_scratch_safe use.
11114
eea1139b
ILT
111152008-07-11 Tom Tromey <tromey@redhat.com>
11116 Ian Lance Taylor <iant@google.com>
11117
11118 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
11119 (struct c_common_resword): Define.
11120 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
11121 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
11122 (c_common_reswords, num_c_common_reswords): Declare.
11123 * c-common.c (c_common_reswords): New global const array.
11124 (num_c_common_reswords): New const int.
11125 * c-parser.c (struct resword, reswords): Don't define.
11126 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
11127 (c_parse_init): Clarify mask code. Use c_common_reswords rather
11128 than reswords. If warning about C++ keywords, give them a special
11129 RID code.
11130 (c_lex_one_token): Warn about C++ keywords. Call
11131 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
11132 (c_parser_external_declaration): Look for RID_xxx rather than
11133 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
11134 (c_parser_statement_after_labels): Likewise.
11135 (c_parser_objc_class_instance_variables): Likewise.
11136 (c_parser_objc_class_declaration): Likewise.
11137 (c_parser_objc_try_catch_statement): Likewise.
11138 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
11139 (declspecs_add_type): Likewise.
11140
ec4d7730
AG
111412008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
11142
11143 * ggc-page.c (alloc_page):
11144 Substituting xmalloc, xcalloc with
11145 XNEWVEC and XCNEWVAR macros which add the
11146 needed casts.
11147
941a9479
RG
111482008-07-11 Richard Guenther <rguenther@suse.de>
11149
11150 PR tree-optimization/36765
11151 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
11152 aliases from HEAP vars to SMTs.
11153
8dd9a120
KG
111542008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11155
11156 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
11157 * configure.ac (loose_warn): Move -Wc++-compat from here...
11158 (strict_warn): ...to here.
11159 * configure: Regenerate.
11160
e68152b6
JM
111612008-07-10 Joseph Myers <joseph@codesourcery.com>
11162
11163 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
11164 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
11165 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
11166 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
11167 excluding more specific h8300-*-* and sh-*-* targets.
11168
6999afe1
DB
111692008-07-10 Daniel Berlin <dberlin@dberlin.org>
11170
72ea2555 11171 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
6999afe1
DB
11172 (eliminate): Ditto.
11173 (execute_pre): Call loop_optimizer_finalize in early exit.
11174
a182fb6b
JJ
111752008-07-10 Jakub Jelinek <jakub@redhat.com>
11176
b826efd9
JJ
11177 PR middle-end/36790
11178 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
11179 uids in the bitmap, not just VAR_DECL uids.
11180
a182fb6b
JJ
11181 PR rtl-optimization/36419
11182 * combine-stack-adj.c (adjust_frame_related_expr): New function.
11183 (combine_stack_adjustments_for_block): Call it if needed. Delete
11184 correct insn.
11185 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
11186 DW_CFA_GNU_args_size if CSA pass merged some adjustments into
11187 prologue sp adjustment.
11188
15e1dac0
PM
111892008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
11190
11191 PR other/28322
a182fb6b 11192 * opts.c (print_ignored_options): Report postponed diagnostics for
15e1dac0 11193 unknown -Wno-* options as warnings, not errors.
a182fb6b
JJ
11194 (postpone_unknown_option_error): Renamed to...
11195 (postpone_unknown_option_warning): ... this.
15e1dac0 11196
62d33f08
DK
111972008-07-09 Doug Kwan <dougkwan@google.com>
11198
11199 Revert:
11200 2008-07-08 Doug Kwan <dougkwan@google.com>
11201
11202 * config/arm/arm.opt (mandroid): New option.
11203 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
11204 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
11205 (CC1_SPEC): Same.
11206 (CC1PLUS_SPEC): Same.
11207 (LIB_SPEC): Same.
11208 (STARTFILE_SPEC): Same.
11209 (ENDFILE_SPEC): Same.
11210 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
11211 used.
11212
256f27f1
RS
112132008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
11214
11215 PR target/35802
11216 * config/mips/mips.h (reg_class): Remove V1_REG.
11217 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
11218 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
11219 instead of V1_REGS.
11220 (mips_get_tp): New function.
11221 (mips_legitimize_tls_address): Use it.
11222 * config/mips/constraints.md (v): Delete.
11223 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
11224 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
11225 After reload, split into a move and ...
11226 (*tls_get_tp_<mode>_split): ...this new instruction.
11227
432b5555
DD
112282008-07-09 David Daney <ddaney@avtrex.com>
11229
11230 * config/mips/driver-native.c: Include coretypes.h and tm.h.
11231
d406b663
JJ
112322008-07-09 Jakub Jelinek <jakub@redhat.com>
11233
11234 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
11235 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
11236 Add c argument.
11237 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
11238 htab_delete should be called. Don't free c.
11239 (lookup_tmp_var): Create temp_htab lazily.
11240 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
11241 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
11242 callers.
11243 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
11244 lower_omp_ordered, lower_omp_critical, lower_omp_for,
22129589 11245 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
d406b663
JJ
11246 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
11247 * tree-sra.c (generate_element_init): Likewise.
11248 * tree-mudflap.c (execute_mudflap_function_ops,
11249 execute_mudflap_function_decls): Likewise.
11250 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
11251 * tree-gimple.h (struct gimplify_ctx): New type.
11252 (push_gimplify_context): Adjust prototype.
11253
b0a0ab2d
DB
112542008-07-09 Daniel Berlin <dberlin@dberlin.org>
11255
11256 * tree-ssa-pre.c (phi_translate_1): Update placement of
11257 add_to_value calls.
11258
dbc42c44
AS
112592008-07-09 Anatoly Sokolov <aesok@post.ru>
11260
11261 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
11262 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
11263 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
11264 * targhooks.c (default_hard_regno_scratch_ok): New function.
11265 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
11266 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
11267 * recog.c: Include "target.h".
11268 (peep2_find_free_register): Add check for global regs. Add target
11269 specific check.
11270 * Makefile.in (recog.o): Depend on target.h.
11271
28f16d05
KK
112722008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
11273
11274 * config/sh/sh.c (sh_canonical_va_list_type): New.
11275 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
11276
1ebc7e68
RA
112772008-07-09 Raksit Ashok <raksit@google.com>
11278
11279 * doc/invoke.texi (Option Summary): Mention new option
11280 -Wdisallowed-function-list=...
11281 (Warning Options): Document -Wdisallowed-function-list=...
11282 * common.opt (Wdisallowed-function-list=): New flag.
11283 * flags.h (warn_disallowed_functions): External definition of new
11284 boolean warning flag.
11285 (warn_if_disallowed_function_p): Declare new function.
11286 * opts.c (warning_disallowed_functions): New static variable.
11287 (warn_disallowed_functions): New boolean warning flag.
11288 (warn_if_disallowed_function_p): New function.
11289 (add_comma_separated_to_vector): Rename
11290 add_instrument_functions_exclude_list to this.
11291 (common_handle_option): Handle new option. Rename calls to
11292 add_instrument_functions_exclude_list into calls to
11293 add_comma_separated_to_vector.
11294 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
11295 based on flag warn_disallowed_functions.
11296
47d268d0
CB
112972008-07-09 Christian Bruel <christian.bruel@st.com>
11298
11299 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
11300 instead of get_attr_length.
11301
8ad97cfc
KG
113022008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11303
11304 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
11305 keywords.
11306 * genemit.c (gen_insn): Likewise.
11307 * gengtype.c (note_def_vec): Likewise.
11308 * gengtype.h (note_def_vec): Likewise.
11309 * genoutput.c (struct data, output_insn_data, process_template,
11310 gen_expand, gen_split, note_constraint): Likewise.
11311 * genrecog.c (new_decision, add_to_sequence, factor_tests,
11312 make_insn_sequence): Likewise.
11313 * gensupport.c (record_insn_name): Likewise.
11314
588021c0
DK
113152008-07-08 Doug Kwan <dougkwan@google.com>
11316
11317 * config/arm/arm.opt (mandroid): New option.
11318 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
11319 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
11320 (CC1_SPEC): Same.
11321 (CC1PLUS_SPEC): Same.
11322 (LIB_SPEC): Same.
11323 (STARTFILE_SPEC): Same.
11324 (ENDFILE_SPEC): Same.
11325 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
11326 used.
11327
9946ca2d
RA
113282008-07-08 Raksit Ashok <raksit@google.com>
11329
11330 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
11331 (set_storage_via_setmem): Fix expected_align parameter.
11332 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
11333 missing from the list.
11334 * doc/md.texi (movmem): Explicitly state that expected alignment is
11335 to be expressed in bytes.
11336 (setmem): Explicitly state that expected alignment is to be expressed
11337 in bytes.
11338
10932211
JM
113392008-07-08 Joseph Myers <joseph@codesourcery.com>
11340
11341 * reload.c (find_reloads_subreg_address): Do not require validity
11342 of address in original mode before reloading address.
11343
7039a415
TS
113442008-07-07 Tianwei Sheng <tianweis@google.com>
11345
11346 * df-core.c (df_remove_problem): Adjust the access to avoid out of
11347 bounds array access.
11348
4c44c315
JJ
113492008-07-08 Jakub Jelinek <jakub@redhat.com>
11350
72ea2555 11351 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
4c44c315 11352
c9145754 113532008-07-05 Daniel Berlin <dberlin@dberlin.org>
22129589 11354
c9145754
DB
11355 Fix PR tree-optimization/23455
11356 Fix PR tree-optimization/35286
11357 Fix PR tree-optimization/35287
11358 * Makefile.in (OBJS-common): Remove tree-vn.o.
72ea2555 11359 (tree-vn.o): Remove.
c9145754
DB
11360 * dbgcnt.def: Add treepre_insert debug counter.
11361 * gcc/tree-flow.h (add_to_value): Updated for other changes.
11362 (debug_value_expressions): Ditto.
11363 (print_value_expressions): Ditto.
11364 * tree-pretty-print.c (dump_generic_node): Updated for
11365 VALUE_HANDLE removal.
11366 * tree-ssa-dom.c (record_equality): Ditto.
11367 (cprop_operand): Ditto.
11368 (lookup_avail_expr): Ditto.
11369 * tree-ssa-threadedge.c
11370 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
11371 (simplify_control_stmt_condition): Ditto.
11372 * tree.c (tree_code_size): Ditto.
11373 (tree_node_structure): Ditto.
11374 (iterative_hash_expr): Ditto.
11375 * tree.def: Ditto.
11376 * tree.h (VALUE_HANDLE_ID): Ditto.
11377 (VALUE_HANDLE_EXPR_SET): Ditto.
11378 (struct tree_value_handle): Ditto.
11379 (union tree_node): Ditto.
11380 * treestruct.def: Ditto.
11381 * tree-vn.c: Removed.
11382 * tree-ssa-pre.c: Rewritten entirely.
11383 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
11384 (constant_value_ids): Ditto.
11385 (vn_nary_op_t): Moved to header.
11386 (vn_phi_t): Ditto.
11387 (vn_reference_op_t): Ditto
11388 (vn_reference_t): Ditto.
11389 (next_value_id): New variable.
11390 (VN_INFO): Add an assert.
11391 (vn_constant_eq): New function.
11392 (vn_constant_hash): Ditto.
11393 (get_or_alloc_constant_value_id): Ditto.
11394 (value_id_constant_p): Ditto.
11395 (vn_reference_compute_hash): De-staticify.
11396 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
72ea2555
UB
11397 Disable some code with a FIXME. Remove VALUE_HANDLE use.
11398 (valueize_refs): Update opcode if it changes from ssa name to constant.
c9145754
DB
11399 (vn_reference_lookup_1): Add new argument.
11400 (vn_reference_lookup): Ditto.
11401 (vn_reference_lookup_pieces): New function.
72ea2555 11402 (vn_reference_insert): Add return type. Modify to deal with value ids.
c9145754
DB
11403 (vn_reference_insert_pieces): New function.
11404 (vn_nary_op_compute_hash): De-staticify.
11405 (vn_nary_op_eq): Ditto.
11406 (vn_nary_op_lookup_pieces): New function.
22129589 11407 (vn_nary_op_lookup): Add new argument.
c9145754 11408 (vn_nary_op_insert_pieces): New function.
72ea2555 11409 (vn_nary_op_insert): Add return type. Modify to deal with value ids.
c9145754
DB
11410 (vn_phi_insert): Ditto.
11411 (visit_unary_op): Update for callee changes.
11412 (visit_binary_op): Ditto.
11413 (visit_reference_op_load): Ditto.
11414 (visit_reference_op_store): Ditto.
11415 (init_scc_vn): Init next_value_id, constant_to_value_id and
22129589 11416 constant_value_ids.
c9145754
DB
11417 (free_scc_vn): Free them.
11418 (set_hashtable_value_ids): New function.
11419 (run_scc_vn): Use it.
11420 (get_max_value_id): New function.
11421 (get_next_value_id): Ditto.
11422 (expressions_equal_p): Moved from tree-vn.c
11423 (sort_vuses): Ditto.
11424 (sort_vuses_heap): Ditto.
11425 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
11426 above).
11427 * tree.c (iterative_hash_hashval_t): Made non-static
11428 * tree.h (iterative_hash_hashval_t): Declare it.
22129589 11429
771578a0
MJ
114302008-07-08 Martin Jambor <mjambor@suse.cz>
11431
11432 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
11433 instead of ipa_create_node_params.
11434 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
11435 ipa_check_create_edge_args, free them with
11436 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
11437
11438 * ipa-prop.c: Include flags.h and tree-inline.h.
11439 (ipa_node_params_vector): New variable.
11440 (ipa_edge_args_vector): New variable.
11441 (edge_removal_hook_holder): New variable.
11442 (node_removal_hook_holder): New variable.
11443 (edge_duplication_hook_holder): New variable.
11444 (node_duplication_hook_holder): New variable.
11445 (ipa_detect_param_modifications): Check for presence of modified flags.
11446 (ipa_compute_jump_functions): Check for presence of jump functions.
11447 (ipa_free_edge_args_substructures): New function.
11448 (ipa_create_node_params): Removed.
11449 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
11450 (ipa_free_node_params_substructures): New function.
11451 (ipa_free_all_node_params): Changed to deallocate the on-the-side
11452 vector.
11453 (ipa_edge_removal_hook): New function.
11454 (ipa_node_removal_hook): New function.
11455 (duplicate_array): New function.
11456 (ipa_edge_duplication_hook): New function.
11457 (ipa_node_duplication_hook): New function.
11458 (ipa_register_cgraph_hooks): New function.
11459 (ipa_unregister_cgraph_hooks): New function.
11460 (free_all_ipa_structures_after_ipa_cp): New function.
22129589 11461
771578a0
MJ
11462 * ipa-prop.h: Include vec.h.
11463 (ipa_node_params_t): New typedef with vector types for it.
11464 (ipa_edge_args_t): New typedef with vector types for it.
11465 (IPA_NODE_REF): Changed to access an on-the-side vector.
11466 (IPA_EDGE_REF): Changed to access an on-the-side vector.
11467 (ipa_check_create_node_params): New function.
11468 (ipa_check_create_edge_args): New function.
22129589 11469
771578a0
MJ
11470 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
11471 all users.
22129589 11472
d2e506f2
TT
114732008-07-07 Tom Tromey <tromey@redhat.com>
11474
11475 * configure, config.in: Rebuilt.
11476 * configure.ac: Don't check for scandir or alphasort.
11477
bcbdbbb0
JM
114782008-07-07 Joseph Myers <joseph@codesourcery.com>
11479
11480 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
11481 types immediately after creating them.
11482
5cef5bf5
JM
114832008-07-07 Joseph Myers <joseph@codesourcery.com>
11484
11485 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
11486
fc93bcb6
FP
114872008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
11488
72ea2555
UB
11489 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
11490 dump_constraint_graph.
11491 (dump_constraint_edge): New function.
11492 (dump_constraint_graph): New function.
11493 (debug_constraint_graph): New function.
11494 (dump_constraint): Removed useless comparison.
11495 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
11496 (dump_constraint_graph): Declare.
11497 (debug_constraint_graph): Declare.
11498 * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
fc93bcb6 11499
8432ea85
KT
115002008-07-07 Kai Tietz <kai.tietz@onevision.com>
11501
11502 * config/i386/i386.c (is_va_list_char_pointer): New.
11503 (ix86_va_start): Replace compare with ms_va_list_type_node
11504 by is_va_list_char_pointer.
11505 (ix86_gimplify_va_arg): Likewise.
11506
9088c1cc
MJ
115072008-07-07 Martin Jambor <mjambor@suse.cz>
11508
11509 * cgraph.c (cgraph_edge_max_uid): New variable.
11510 (struct cgraph_edge_hook_list): New type.
11511 (struct cgraph_node_hook_list): New type.
11512 (struct cgraph_2edge_hook_list): New type.
11513 (struct cgraph_2node_hook_list): New type.
11514 (first_cgraph_edge_removal_hook): New variable.
11515 (first_cgraph_node_removal_hook): New variable.
11516 (first_cgraph_edge_duplicated_hook): New variable.
11517 (first_cgraph_node_duplicated_hook): New variable.
11518 (cgraph_add_edge_removal_hook): New function.
11519 (cgraph_remove_edge_removal_hook): New function.
11520 (cgraph_call_edge_removal_hooks): New function.
11521 (cgraph_add_node_removal_hook): New function.
11522 (cgraph_remove_node_removal_hook): New function.
11523 (cgraph_call_node_removal_hooks): New function.
11524 (cgraph_add_edge_duplication_hook): New function.
11525 (cgraph_remove_edge_duplication_hook): New function.
11526 (cgraph_call_edge_duplication_hooks): New function.
11527 (cgraph_add_node_duplication_hook): New function.
11528 (cgraph_remove_node_duplication_hook): New function.
11529 (cgraph_call_node_duplication_hooks): New function.
11530 (cgraph_create_edge): Assign to edge uid.
11531 (cgraph_remove_edge): Call edge removal hooks.
11532 (cgraph_node_remove_callees): Call edge removal hooks.
11533 (cgraph_node_remove_callers): Call edge removal hooks.
11534 (cgraph_remove_node): Call node removal hooks.
11535 (cgraph_clone_edge): Call edge duplication hooks.
11536 (cgraph_clone_node): Call node duplication hooks.
11537
11538 * cgraph.h (cgraph_edge): New field uid.
11539 (cgraph_edge_hook): New type.
11540 (cgraph_node_hook): New type.
11541 (cgraph_2edge_hook): New type.
11542 (cgraph_2node_hook): New type.
11543
c71618c6
AT
115442008-07-07 Andreas Tobler <a.tobler@schweiz.org>
11545
11546 * config.in: Regenerate.
11547
3def1397
VP
115482008-07-07 Vladimir Prus <vladimir@codesourcery.com>
11549
11550 * gcc.c (print_sysroot): New.
11551 (option_map, display_help, process_command): Handle the
11552 -print-sysroot option.
11553 (main): Print the sysroot if requested.
11554 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
22129589 11555
40a420d5
RW
115562008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11557
11558 PR target/34780
11559 * unwind-pe.h (size_of_encoded_value): add attribute unused.
11560
85776d60
DJ
115612008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
11562
72ea2555 11563 * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
85776d60
DJ
11564 (assign_parm_setup_block_p): Also check mode of entry_parm.
11565
bf87f41c
RG
115662008-07-07 Richard Guenther <rguenther@suse.de>
11567
11568 * tree-ssa-structalias.h (set_used_smts): Remove.
11569 * tree-ssa-structalias.c (used_smts): Likewise.
11570 (set_used_smts): Likewise.
11571 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
11572 call to set_used_smts.
11573
e5bae89b
RG
115742008-07-07 Richard Guenther <rguenther@suse.de>
11575
11576 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
11577 (new_var_info): Set it to false.
11578 (solution_set_add): Correctly handle pointers outside a var and
11579 inside a field.
11580 (type_safe): Treat variables with is_full_var properly.
11581 (do_sd_constraint): Likewise.
11582 (do_ds_constraint): Likewise.
11583 (process_constraint): Remove zeroing offset for !use_field_sensitive.
11584 (get_constraint_for_ptr_offset): New function.
11585 (get_constraint_for_component_ref): For addresses at least include
11586 the last field of the variable. Handle is_full_vars properly.
11587 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
11588 (handle_ptr_arith): Remove.
11589 (find_func_aliases): Simplify assignment handling.
11590 (create_function_info_for): For parameter and result varinfos set
11591 is_full_var flag.
11592 (create_variable_info_for): Set is_full_var flag whenever we
11593 just created a single varinfo for a decl.
11594 (init_alias_vars): Initialize use_field_sensitive from
11595 max-fields-for-field-sensitive parameter.
11596
115340c7
RG
115972008-07-07 Richard Guenther <rguenther@suse.de>
11598
11599 PR tree-optimization/36713
11600 * tree-flow-inline.h (is_call_used): New function.
11601 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
11602 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
11603 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
11604
511e41e5
MK
116052008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
11606
11607 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
22129589 11608
bd0e50ee
MS
116092008-07-07 Mark Shinwell <shinwell@codesourcery.com>
11610
11611 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
11612
368b55f6
NS
116132008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
11614 Nathan Sidwell <nathan@codesourcery.com>
11615
11616 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
11617 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
11618 tmake_file.
11619 * config/m68k/t-linux: New.
11620 * doc/install.texi: Document m68k-*-linux is now multilibbed by
11621 default.
11622
116232008-07-07 Nathan Sidwell <nathan@codesourcery.com>
11624
11625 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
11626 * config/m68k/m68k-devices.def: Remove multilibs that only differ
11627 by MAC/EMAC.
11628
63ab5b8c
KG
116292008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11630
11631 * gcc.c (execute): Fix -Wc++-compat warning.
11632
9eb578c8
L
116332008-07-06 H.J. Lu <hongjiu.lu@intel.com>
11634
11635 PR target/36720
11636 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
11637 constant for little endian.
11638
60730ade
RS
116392008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
11640
11641 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
11642 mips_base_mips16 instead of TARGET_MIPS16.
11643 (mips_base_mips16): Declare.
11644 * config/mips/mips.c (mips_base_mips16): Make global.
11645 (was_mips16_p): Remove GTY marker.
11646 (was_mips16_pch_p): New variable.
11647 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
11648 (mips_override_options): Force to non-MIPS16 mode initially.
11649 Do not complain about MIPS16 PIC incompatibilities here.
11650 Only allow -mgpopt if -mexplicit-relocs is in force for
11651 non-MIPS16 code.
11652
bba09b5a
AT
116532008-07-06 Andreas Tobler <a.tobler@schweiz.org>
11654
11655 * configure.ac: Check for caddr_t, define to char * if not defined.
11656 * configure: Regenerate.
11657 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
11658 (mmap_gt_pch_use_address): Likewise.
11659 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
11660
ee7d4b57
RG
116612008-07-06 Richard Guenther <rguenther@suse.de>
11662
11663 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
11664 (new_var_info): Deal with it.
11665 (solution_set_add): Likewise.
11666 (bitpos_of_field): Make signed, fix.
11667 (struct fieldoff): Remove type and decl fields. Make size field
11668 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
11669 flags.
11670 (fieldoff_compare): Deal with it.
11671 (push_fields_onto_fieldstack): Remove has_union argument, glob
11672 adjacent non-pointer fields together.
11673 (create_function_info_for): Do not set has_union.
11674 (create_variable_info_for): Simplify.
11675
35cbb299
KT
116762008-07-06 Kai Tietz <kai.tietz@onevision.com>
11677
11678 * config.gcc (extra_headers): Add cross-stdarg.h for target
11679 x86_64-*-* and i?86-*-*.
11680 * config/i386/cross-stdarg.h: New.
11681 * builtins.c (std_fn_abi_va_list): New.
11682 (std_canonical_va_list_type): New.
11683 (stabilize_va_list): Replace va_list_type_node use by
11684 mtarget.canonical_va_list_type.
11685 (gimplify_va_arg_expr): Likewise.
11686 (expand_builtin_va_copy): Replace va_list_type_node use by
11687 mtarget.fn_abi_va_list.
11688 * tree-sra.c (is_va_list_type): New helper.
11689 (decl_can_be_decomposed_p): Replace
11690 va_list_type_node use by is_va_list_type.
11691 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
11692 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
11693 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
11694 * config/i386/i386-protos.h (ix86_get_valist_type): New.
11695 (ix86_enum_va_list): New.
11696 * config/i386/i386.c (sysv_va_list_type_node): New.
11697 (ms_va_list_type_node): New.
11698 (ix86_function_type_abi): Remove sorry.
11699 (ix86_build_builtin_va_list_abi): New.
11700 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
11701 for 64-bit targets.
11702 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
11703 (ix86_init_builtins_va_builtins_abi): New.
11704 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
11705 for 64-bit targets.
11706 (ix86_handle_abi_attribute): New.
11707 (attribute_spec): Add sysv_abi and ms_abi.
11708 (ix86_fn_abi_va_list): New.
11709 (ix86_canonical_va_list_type): New.
11710 (ix86_enum_va_list): New.
11711 (TARGET_FN_ABI_VA_LIST): New.
11712 (TARGET_CANONICAL_VA_LIST_TYPE): New.
11713 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
11714 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
11715 (TARGET_CANONICAL_VA_LIST_TYPE): New.
11716 (TARGET_ENUM_VA_LIST): New.
11717 * expr.h (std_fn_abi_va_list): New.
11718 (std_canonical_va_list_type): New.
11719 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
11720 (TARGET_CANONICAL_VA_LIST_TYPE): New.
11721 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
11722 TARGET_CANONICAL_VA_LIST_TYPE.
11723 * target.h (struct gcc_target): Add fn_abi_va_list hook
11724 and canonical_va_list_type hook.
11725
0e4b00d6
AP
117262008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11727
11728 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
11729 integral and pointer types.
11730
33c7eedf
RS
117312008-07-04 Roger Sayle <roger@eyesopen.com>
11732
72ea2555 11733 * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
33c7eedf
RS
11734 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
11735
0dcd6f42
KK
117362008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
11737
11738 PR target/36684
72ea2555 11739 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
0dcd6f42 11740
04e78aa9
JJ
117412008-07-04 Jakub Jelinek <jakub@redhat.com>
11742
11743 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
11744 build_gimple_modify_stmt.
11745 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
11746 gimple operand. Use fold_build* instead of build*.
11747
0e1f4c6b
RG
117482008-07-04 Richard Guenther <rguenther@suse.de>
11749
11750 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
11751 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
11752 properly to compute the reachability set if we do field-sensitive PTA.
11753 * invoke.texi (max-fields-for-field-sensitive): Document default.
11754 * opts.c (decode_options): Set max-fields-for-field-sensitive to
11755 100 for optimize >= 2.
11756
bf8e9c49
KG
117572008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11758
11759 * ggc-zone.c (lookup_page_table_if_allocated,
11760 set_page_table_entry, zone_find_object_size, alloc_small_page,
11761 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
11762 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
11763 -Wc++-compat and/or -Wcast-qual warnings.
11764
1d3155fc
AM
117652008-07-04 Alan Modra <amodra@bigpond.net.au>
11766
11767 PR target/36634
11768 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
11769 pic_offset_table_rtx to be marked as used here.
11770 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
11771 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
11772 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
11773 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
11774 !TARGET_SECURE_PLT.
11775
aebde504
KG
117762008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11777
11778 * alloc-pool.c (hash_descriptor, eq_descriptor,
11779 alloc_pool_descriptor): Fix -Wc++-compat warnings.
11780 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
11781 Likewise.
11782 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
11783 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
72ea2555 11784 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
aebde504
KG
11785 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
11786 Likewise.
11787
52778e2a
EB
117882008-07-03 Eric Botcazou <ebotcazou@adacore.com>
11789
11790 * tree-flow.h (loop_only_exit_p): Declare.
11791 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
11792 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
11793 the number of iterations if it is constant. Otherwise, if this is the
11794 only possible exit of the loop, use the conservative estimate on the
11795 number of iterations of the entire loop if available.
11796
f92518d7
RS
117972008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
11798
11799 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
11800 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
11801 Add synchronization functions.
11802 * config/sync.c: New file.
11803 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
11804 (LIBGCC_SYNC_CFLAGS): Likewise.
11805
dcde22ac
UB
118062008-07-03 Uros Bizjak <ubizjak@gmail.com>
11807
11808 PR target/36710
11809 * config/i386/i386.md (mode): Add TF to "mode" attribute.
11810 (*pushtf_sse): New insn pattern.
11811 (pushtf splitters): New splitters.
11812
9d7e5c4d
MM
118132008-07-03 Michael Meissner <gnu@the-meissners.org>
11814
11815 PR middle-end/35736
11816 * predict.c (build_predict_expr): Use void_type_node for the tree
11817 type, instead of NULL_TREE.
11818
192f2d33
L
118192008-07-03 H.J. Lu <hongjiu.lu@intel.com>
11820
11821 * config/i386/i386.c (contains_aligned_value_p): Return true
11822 for TCmode.
11823 (ix86_data_alignment): Align TCmode to 128bits.
11824 (ix86_local_alignment): Likewise.
11825
70d3fcab
AH
118262008-07-03 Andrew Haley <aph@redhat.com>
11827
11828 PR bootstrap/33304
11829 * vec.h (VEC_TA): New.
11830 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
11831 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
11832 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
11833 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
11834 (C_COMMON_FIXED_TYPES): Remove first arg.
11835 (C_COMMON_FIXED_MODE_TYPES): Likewise.
11836 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
11837 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
11838 not to use empty macro arguments.
11839
1935a7ef
JM
118402008-07-02 Joseph Myers <joseph@codesourcery.com>
11841
11842 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
11843 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
11844 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
11845 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
11846 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
11847 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
11848 config/ia64/crtn.asm, config/m68hc11/larith.asm,
11849 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
11850 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
11851 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
11852 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
11853 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
11854 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
11855 config/rs6000/e500crtres64gpr.asm,
11856 config/rs6000/e500crtres64gprctr.asm,
11857 config/rs6000/e500crtrest32gpr.asm,
11858 config/rs6000/e500crtrest64gpr.asm,
11859 config/rs6000/e500crtresx32gpr.asm,
11860 config/rs6000/e500crtresx64gpr.asm,
11861 config/rs6000/e500crtsav32gpr.asm,
11862 config/rs6000/e500crtsav64gpr.asm,
11863 config/rs6000/e500crtsav64gprctr.asm,
11864 config/rs6000/e500crtsavg32gpr.asm,
11865 config/rs6000/e500crtsavg64gpr.asm,
11866 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
11867 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
11868 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
11869 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
11870 config/sparc/sol2-cn.asm: Remove .file directives.
11871
1b929c9a
RS
118722008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
11873
11874 * resource.c (mark_referenced_resources): Look inside
11875 UNSPEC_VOLATILEs and ASM_INPUTs.
11876
65c5f2a6
ILT
118772008-07-02 Ian Lance Taylor <iant@google.com>
11878
11879 * rtlanal.c (add_reg_note): New function.
11880 * rtl.h (add_reg_note): Declare.
11881 * auto-inc-dec.c (attempt_change): Use add_reg_note.
11882 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
11883 * builtins.c (expand_builtin_longjmp): Likewise.
11884 (expand_builtin_nonlocal_goto): Likewise.
11885 * calls.c (emit_call_1, expand_call): Likewise.
11886 * cfgexpand.c (add_reg_br_prob_note): Likewise.
11887 * cfglayout.c (fixup_reorder_chain): Likewise.
11888 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
11889 (commit_one_edge_insertion): Likewise.
11890 * combine.c (move_deaths, distribute_notes): Likewise.
11891 * df-problems.c (df_set_note): Likewise.
11892 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
11893 (set_unique_reg_note): Likewise.
11894 (emit_copy_of_insn_after): Likewise.
11895 * expr.c (expand_expr_real): Likewise.
11896 * gcse.c (add_label_notes): Likewise.
11897 * haifa-sched.c (create_check_block_twin): Likewise.
11898 * jump.c (mark_jump_label_1): Likewise.
11899 * loop-doloop.c (add_test, doloop_modify): Likewise.
11900 * loop-unswitch.c (compare_and_jump_seq): Likewise.
11901 * lower-subreg.c (move_eh_region_note): Likewise.
11902 * optabs.c (emit_libcall_block): Likewise.
11903 * predict.c (predict_insn): Likewise.
11904 (combine_predictions_for_insn): Likewise.
11905 * recog.c (peephole2_optimize): Likewise.
11906 * regmove.c (try_auto_increment): Likewise.
11907 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
11908 * reload.c (find_reloads): Likewise.
11909 * reload1.c (fixup_eh_region_note): Likewise.
11910 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
11911 * reorg.c (delete_prior_computation): Likewise.
11912 (delete_computation, dbr_schedule): Likewise.
11913 * config/pa/pa.c (legitimize_pic_address): Likewise.
11914 * config/sh/sh.c (sh_reorg): Likewise.
11915
ff473280
L
119162008-07-02 H.J. Lu <hongjiu.lu@intel.com>
11917
11918 PR target/36669
11919 * config/libgcc-glibc.ver: Add %exclude.
11920 * config/m32r/libgcc-glibc.ver: Likwise.
11921 * config/s390/libgcc-glibc.ver: Likwise.
11922 * config/sh/libgcc-glibc.ver: Likwise.
11923 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
11924
11925 * config/i386/libgcc-glibc.ver: New.
11926
11927 * config/i386/libgcc-x86_64-glibc.ver: Removed.
11928
119292008-07-02 H.J. Lu <hongjiu.lu@intel.com>
11930
11931 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
11932 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
11933 i[34567]86-*-linux*, x86_64-*-linux*. Add
11934 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
11935 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
11936 x86_64-*-linux*. Add i386/t-linux to tmake_file for
11937 i[34567]86-*-linux*, x86_64-*-linux*.
11938
11939 * libgcc-std.ver: Add empty GCC_4.4.0.
11940
11941 * mkmap-symver.awk: Support multiple versions per symbol.
11942
11943 * config/i386/i386.c (ix86_init_builtins): Always define
11944 __builtin_fabsq and __builtin_copysignq with fallbacks.
11945 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
11946 and __builtin_copysignq if SSE2 isn't available.
11947
11948 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
11949 (LIBGCC2_TF_CEXT): Likwise.
11950 (TF_SIZE): Likwise.
11951
11952 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
11953
11954 * config/i386/sfp-machine.h: Moved to libgcc.
11955
11956 * config/i386/sfp-machine.h: New.
11957 * config/i386/t-linux: Likwise.
11958
11959 * config/i386/t-darwin: Remove softfp_wrap_start and
11960 softfp_wrap_end.
11961 * config/i386/t-darwin64: Likewise.
11962
11963 * config/i386/t-fprules-softfp64: Renamed to ...
11964 * config/i386/t-fprules-softfp: This.
11965
11966 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
11967 and softfp_wrap_end.
11968
09357846
JM
119692008-07-02 Jason Merrill <jason@redhat.com>
11970
6010fae7
JM
11971 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
11972
09357846
JM
11973 * tree.c (ctor_to_list): New fn.
11974 * tree.h: Declare it.
11975 (CONSTRUCTOR_ELT): New macro.
11976 (CONSTRUCTOR_NELTS): New macro.
11977
795a337a
RG
119782008-07-02 Richard Guenther <rguenther@suse.de>
11979
11980 * tree-ssa-structalias.c (struct variable_info): Reorder
11981 to fill padding on 64bit hosts. Make collapsed_to an int.
11982 (get_varinfo_fc): Deal with that.
11983 (new_var_info): Likewise.
11984 (collapse_rest_of_var): Likewise.
11985
c9db365d
JS
119862008-07-02 Joshua Sumali <jsumali@redhat.com>
11987
11988 * doc/install.texi (--enable-java-home): Document.
11989 (--enable-aot-compile-rpm): Likewise.
11990 (--with-arch-directory): Likewise.
11991 (--with-os-directory): Likewise.
11992 (--with-origin-name): Likewise.
11993 (--with-arch-suffix): Likewise.
11994 (--with-jvm-root-dir): Likewise.
11995 (--with-jvm-jar-dir): Likewise.
11996 (--with-python-dir): Likewise.
11997
9e11641d
RG
119982008-07-02 Richard Guenther <rguenther@suse.de>
11999
12000 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
12001 from decls explicitly. Merge operand checking from tuples.
12002
3fe1efe4
MJ
120032008-07-02 Martin Jambor <mjambor@suse.cz>
12004
12005 * tree-switch-conversion.c: Included timevar.h which I forgot before.
22129589 12006
a167a676
MJ
120072008-07-02 Martin Jambor <mjambor@suse.cz>
12008
12009 * tree-switch-conversion.c: Included timevar.h
12010 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
12011
12012 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
12013
b1ae1681
MJ
120142008-07-02 Martin Jambor <mjambor@suse.cz>
12015
12016 * tree-switch-conversion.c: Corrected various comments and
12017 whitespace issues
12018 (build_constructors): Fixed minor formatting mistakes.
12019
12020 * invoke.texi (Optimize Options): Corrected the
12021 switch-conversion-max-branch-ratio parameter.
12022
5bc4fa7c
MS
120232008-07-02 Mark Shinwell <shinwell@codesourcery.com>
12024
12025 * final.c (asm_insn_count): Return zero for an empty asm body.
12026
5f0d975b
RG
120272008-07-02 Richard Guenther <rguenther@suse.de>
12028
12029 * bitmap.h (bitmap_set_bit): Return bool.
12030 (bitmap_clear_bit): Likewise.
12031 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
12032 write to the bitmap if it would.
12033 (bitmap_clear_bit): Likewise.
12034 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
12035 bitmap_set_bit return value.
12036 (add_pred_graph_edge): Likewise.
12037 (add_graph_edge): Likewise.
12038 (do_sd_constraint): Likewise.
12039 (do_ds_constraint): Likewise.
12040
7a6942ad
KG
120412008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12042
12043 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
12044 Fix -Wc++-compat and/or -Wcast-qual warnings.
12045 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
12046 gen_regparm_prefix): Likewise.
12047 * vmsdbgout.c (write_modbeg, lookup_filename,
12048 vmsdbgout_source_line, vmsdbgout_init): Likewise.
12049
20384976
DS
120502008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
12051
12052 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
12053 defaults.h definition apply.
12054
4d2a9850
DJ
120552008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
12056
12057 * function.c (assign_parm_remove_parallels): New.
12058 (assign_parm_setup_block_p): Do not return true for non-BLKmode
12059 PARALLELs.
12060 (assign_parm_setup_block): Do not handle them.
12061 (assign_parm_setup_reg, assign_parm_setup_stack): Call
12062 assign_parm_remove_parallels.
12063
f83c7f63
DJ
120642008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
12065
12066 * c-typeck.c (convert_for_assignment): Use
12067 vector_targets_convertible_p.
12068 * c-common.c (vector_targets_convertible_p): New.
12069 * c-common.h (vector_targets_convertible_p): New prototype.
12070 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
12071 opaque_p_V2SI_type_node.
12072
103a6411
SE
120732008-07-01 Steve Ellcey <sje@cup.hp.com>
12074
12075 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
12076 RFmode constants.
12077
f3e10a2b
UB
120782008-07-01 Uros Bizjak <ubizjak@gmail.com>
12079
12080 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
12081 TFmode constants via two element DImode vector for hosts with
12082 HOST_BITS_PER_WIDE_INT < 64.
12083 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
12084 also for HOST_BITS_PER_WIDE_INT < 64.
12085
c0d459f0
RG
120862008-07-01 Richard Guenther <rguenther@suse.de>
12087
12088 PR tree-optimization/36666
12089 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
12090 (get_constraint_exp_from_ssa_var): Split into ...
12091 (get_constraint_exp_for_temp): ... this ...
12092 (get_constraint_for_ssa_var): ... and that.
12093 Return constraint expressions for all touched sub-fields
12094 if the results address is not taken.
12095 (process_constraint): Remove assertion that aggregate
12096 assignments do not happen at this place.
12097 (get_constraint_for_component_ref): Add address_p argument.
12098 Return constraint expressions for all touched sub-fields
12099 if the results address is not taken.
12100 (do_deref): Use get_constraint_exp_for_temp.
12101 (get_constraint_for_1): Rename from ...
f3e10a2b 12102 (get_constraint_for): ... this. Add the old function as wrapper.
c0d459f0
RG
12103 (do_structure_copy): Use get_constraint_for_1.
12104
b6e99746 121052008-07-01 Martin Jambor <mjambor@suse.cz>
c0d459f0 12106
dcde22ac
UB
12107 * Makefile.in (tree-switch-conversion.o): Add.
12108 (OBJS-common): Add tree-swtch-conversion.o.
12109 * passes.c (init_optimization_passes): Add pass_convert_switch.
12110 * tree-pass.h: (pass_convert_switch): Add.
12111 * tree-switch-conversion.c: New file.
12112 * gcc.dg/tree-ssa/cswtch.c: New testcase.
12113 * common.opt (ftree-cswtch): New option.
12114 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12115 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
12116 * opts.c (decode_options): Set flag_tree_switch_conversion when
12117 optimization level is >= 2.
12118 * doc/invoke.texi (Optimize Options): Added description of
12119 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
b6e99746 12120
3043c804
KG
121212008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12122
12123 * config/darwin-driver.c (darwin_default_min_version): Fix
12124 -Wc++-compat warnings.
12125
f3e10a2b 121262008-06-30 Uros Bizjak <ubizjak@gmail.com>
33af070f
UB
12127
12128 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
12129 of operand 0.
12130
727683a5
KZ
121312008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
12132
f3e10a2b 12133 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
22129589 12134
370f38e8
KZ
121352008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
12136
a8f77bad 12137 PR rtl-optimization/34744
f3e10a2b 12138 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
dcde22ac 12139 (df_scan_free_internal): Free data structures not
370f38e8
KZ
12140 allocated in storage pools.
12141 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
f3e10a2b 12142 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
370f38e8
KZ
12143 df_scan_free_mws_vec.
12144 * dse.c (dse_step6): Free offset_map_p and offset_map_n
12145 unconditionally.
12146
5bb77598
L
121472008-06-30 H.J. Lu <hongjiu.lu@intel.com>
12148
12149 * config/i386/i386.c (contains_aligned_value_p): Return true
12150 for __float128.
33af070f 12151 (ix86_function_arg_boundary): Return its natural boundary
5bb77598
L
12152 for __float128.
12153 (return_in_memory_32): Don't check TDmode.
12154 (ix86_split_to_parts): Support splitting into 4 parts and
12155 support TFmode for 32bit target.
12156 (ix86_split_long_move): Support splitting into 4 parts.
12157 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
12158 for SSE2.
33af070f 12159 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
5bb77598
L
12160 (ix86_init_builtins): Here.
12161 (ix86_scalar_mode_supported_p): Always return true for TFmode.
12162 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
22129589 12163 'q' and 'w', respectively.
5bb77598
L
12164
12165 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
12166 TARGET_64BIT.
12167 (movtf_internal): Likewise.
12168 (<code>tf2): Likewise.
12169 (*absnegtf2_sse): Likewise.
12170 (copysign<mode>3): Likewise.
12171 (copysign<mode>3_const): Likewise.
12172 (copysign<mode>3_var): Likewise.
12173 (define_split UNSPEC_COPYSIGN): Likewise.
12174 * config/i386/sse.md (*nandtf3): Likewise.
12175 (<code>tf3): Likewise.
12176 (*<code>tf3): Likewise.
12177
38aa4d08
JY
121782008-06-30 Joey Ye <joey.ye@intel.com>
12179 H.J. Lu <hongjiu.lu@intel.com>
12180
12181 * global.c (compute_regsets): Set frame_pointer_needed here.
33af070f 12182 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
38aa4d08 12183
aad416fb
AL
121842008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
12185
12186 * doc/install.texi (specific): Expand Windows build notes.
12187
e2cefdd9
IR
121882008-06-30 Ira Rosen <irar@il.ibm.com>
12189
12190 PR tree-optimization/36648
12191 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
12192 number of prolog iterations by step. Fix the comment.
12193
183ae595
RG
121942008-06-30 Richard Guenther <rguenther@suse.de>
12195
12196 PR middle-end/36671
12197 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
12198 handle calls from ECF_MALLOC functions.
12199 (handle_pure_call): ECF_MALLOC functions do not return
12200 call-used memory.
12201 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
12202
c2058aa4
AS
122032008-06-29 Andreas Schwab <schwab@suse.de>
12204
6ae89ea8
AS
12205 * config/m68k/m68k.c (print_operand): Always print a float
12206 constant in hex.
12207 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
12208 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
12209 Remove macros.
12210
c2058aa4
AS
12211 * config/rs6000/x-linux64: Remove never used file.
12212
faf2ecc5
RG
122132008-06-29 Richard Guenther <rguenther@suse.de>
12214
12215 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
12216 prototype.
12217 (struct alias_info): Move ...
12218 * tree-ssa-alias.c: ... here.
12219 (update_alias_info): Declare.
12220 (compute_may_aliases): Call it.
12221 (update_alias_info): New function.
12222 * tree-ssa-structalias.c (update_alias_info): Move ...
12223 * tree-ssa-alias.c (update_alias_info_1): ... here.
12224 * tree-ssa-structalias.c (process_constraint_1): Remove
12225 unused from_call argument. Rename to ...
12226 (process_constraint): ... this. Delete old wrapper.
12227 (make_constraint_to): Adjust callers.
12228 (handle_const_call): Likewise.
12229 (handle_pure_call): Likewise.
12230 (init_base_vars): Likewise.
12231 (handle_lhs_call): Likewise. Remove unnecessary constraint.
12232 (find_func_aliases): We don't need structure copies for
12233 complex types.
12234 (make_constraint_from_anything): Remove.
12235 (create_variable_info_for): For globals make constraints
12236 from escaped, not from anything.
12237 (compute_points_to_sets): Do not call update_alias_info.
12238 (ipa_pta_execute): Use make_constraint_from.
12239
572e5ae3
KG
122402008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12241
12242 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
12243 (bitmap.o-warn, dominance.o-warn): New.
12244 * configure.ac (cxx_compat_warn): Delete.
12245 (loose_warn): Add -Wcast-qual and -Wc++-compat.
12246 * system.h: Remove #pragma diagnostic for -Wcast-qual and
12247 -Wc++-compat.
12248 * configure: Regenerate.
12249
12250 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
12251 warnings.
12252
4dc6c528
KG
122532008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12254
12255 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
12256 * df-scan.c (df_notes_rescan): Likewise.
12257 * ggc-page.c (set_page_table_entry): Likewise.
12258 * intl.c (gcc_gettext_width): Likewise.
12259 * varasm.c (get_unnamed_section, get_noswitch_section,
12260 get_section): Likewise.
12261
d1c1c79f
AJ
122622008-06-28 Andrew Jenner <andrew@codesourcery.com>
12263
12264 * regrename.c (build_def_use): Don't copy RTX.
12265
38bb2b65
SL
122662008-06-28 Sandra Loosemore <sandra@codesourcery.com>
12267
12268 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
12269 (Type Attributes): Fix nesting of @table and @subsection. Adjust
12270 punctuation. Use @ref instead of @xref.
12271 (Function Names): Remove stray @display/@end display.
12272 (C++ Attributes): Use @ref instead of @xref.
12273 (Deprecated Features): Fix punctuation around @xref.
12274 (Backwards Compatibility): Likewise.
12275 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
12276
624b157f
JM
122772008-06-28 Joseph Myers <joseph@codesourcery.com>
12278
12279 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
12280 constants for E500 double.
12281
ffba3fd0
UW
122822008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12283
12284 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
12285 element type of const_vector.
12286
f3e10a2b 122872008-06-28 Uros Bizjak <ubizjak@gmail.com>
7ae14d31
UB
12288
12289 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
12290 Remove FLAGS_REG clobber from expander pattern.
12291 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
12292 (anddi3, andsi3, andhi3, andqi3): Ditto.
12293 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
12294 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
12295 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
12296 (ashlsi3, ashlhi3, ashlqi3): Ditto.
12297 (ashrsi3, ashrhi3, ashrqi3): Ditto.
12298 (lshrsi3, lshrhi3, lshrqi3): Ditto.
12299 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
12300 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
12301
15c15196
RG
123022008-06-28 Richard Guenther <rguenther@suse.de>
12303
12304 * tree-ssa-structalias.c (callused_id, var_callused,
12305 callused_tree): Add.
12306 (handle_pure_call): New function.
12307 (find_func_aliases): Call it.
12308 (find_what_p_points_to): Handle the call-used set.
12309 (clobber_what_escaped): Likewise.
12310 (compute_call_used_vars): New function.
12311 (init_base_vars): Init the call-used variable.
12312 (do_sd_constraint): Do not propagate the solution from CALLUSED
12313 but use CALLUSED as a placeholder.
12314 (solve_graph): Likewise.
12315 * tree-flow-inline.h (gimple_call_used_vars): New function.
12316 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
12317 (compute_call_used_vars): Declare.
12318 * tree-ssa-alias.c (set_initial_properties): Call
12319 compute_call_used_vars.
12320 (reset_alias_info): Clear call-used variables.
12321 (add_call_clobber_ops): Assert we are not called for const/pure
12322 functions. Remove handling of them.
12323 (add_call_read_ops): Handle pure functions by adding the
12324 call-used set of variables as VUSEs.
12325 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
12326 (delete_tree_ssa): Free it.
12327 * tree-dfa.c (remove_referenced_var): Clear the var from the
12328 call-used bitmap.
12329
ff1c393b
KT
123302008-06-28 Kai Tietz <kai.tietz@onevision.com>
12331
12332 * tree.c (build_varargs_function_type_list): New.
12333 (build_function_type_list_1): New.
12334 (build_function_type_list): Use build_function_type_list_1.
12335 * tree.h (build_varargs_function_type_list): New.
12336
d74032d9
UW
123372008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12338
12339 PR target/34856
12340 * config/spu/spu.c (spu_builtin_splats): Do not generate
12341 invalid CONST_VECTOR expressions.
12342 (spu_expand_vector_init): Likewise.
12343
61698f54
RS
123442008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
12345
12346 * optabs.c (libfunc_decls): New variable.
12347 (libfunc_decl_hash, libfunc_decl_eq): New functions.
12348 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
12349 for the same function twice.
12350
f3e10a2b 123512008-06-27 Uros Bizjak <ubizjak@gmail.com>
934f2a96
UB
12352
12353 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
12354 ix86_expand_binary_operator directly.
12355 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
12356 for operand 2.
12357 (*ashrti3_1): Ditto.
12358 (*lshrti3_1): Ditto.
12359 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
12360 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
12361 using only one splitter. Conditionaly execute splitter before or
12362 after peephole2 pass.
12363 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
12364 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
12365 Use only one alternative in asm template.
12366 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
12367 in asm template.
12368 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
12369 "J" operand constraint for operand 2.
12370 (*ashldi3_cconly_rex64): Ditto.
12371 (*ashrdi3_cmp_rex64): Ditto.
12372 (*ashrdi3_cconly_rex64): Ditto.
12373 (*lshrdi3_cmp_rex64): Ditto.
12374 (*lshrdi3_cconly_rex64): Ditto.
12375 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
12376 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
12377 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
12378 gen_x86_shrd_1.
12379
b357f682
JJ
123802008-06-27 Jakub Jelinek <jakub@redhat.com>
12381
7ae14d31
UB
12382 * gimplify.c (omp_is_private): Don't return true if decl is not
12383 already private on #pragma omp for or #pragma omp parallel for.
ca2b1311 12384
b357f682
JJ
12385 PR debug/36617
12386 * tree-cfg.c (struct move_stmt_d): Replace block field with
12387 orig_block and new_block fields.
12388 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
12389 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
12390 (move_block_to_fn): Replace vars_map and new_label_map arguments
12391 with struct move_stmt_d pointer.
12392 (replace_block_vars_by_duplicates): New function.
12393 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
12394 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
12395 all subblocks of ORIG_BLOCK to the new function. Call
12396 replace_block_vars_by_duplicates.
12397 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
12398 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
12399 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
12400 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
12401 (expand_omp): Temporarily set input_location to the location of
12402 region's controlling stmt.
12403 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
12404 BIND_EXPR, push ctx->block_vars and gimplification vars into
12405 the BIND_EXPR and its block's BLOCK_VARS instead of directly
12406 into dest function.
12407 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
12408 there are any BLOCK_VARS.
12409 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
12410 OMP_PARALLEL or OMP_TASK stmt.
12411 (lower_omp): Save and restore input_location around the lower_omp_1
12412 call.
12413
b7091901
RG
124142008-06-27 Richard Guenther <rguenther@suse.de>
12415
12416 PR tree-optimization/36400
12417 PR tree-optimization/36373
12418 PR tree-optimization/36344
12419 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
12420 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
12421 (update_alias_info): Remove call clobbering code.
12422 (make_constraint_to): New helper function.
12423 (make_escape_constraint): Likewise.
12424 (handle_rhs_call): Use it on all pointer containing arguments.
12425 Also mark the static chain escaped.
12426 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
12427 instead of ANYTHING.
12428 (make_constraint_from): New helper split out from ...
12429 (make_constraint_from_anything): ... here.
12430 (find_func_aliases): Add constraints for escape sites.
12431 (intra_create_variable_infos): Make constraints from NONLOCAL
12432 for parameters.
12433 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
12434 as ANYTHING.
12435 (clobber_what_p_points_to): Remove.
12436 (clobber_what_escaped): New function.
12437 (init_base_vars): Init NONLOCAL and ESCAPED.
12438 (do_sd_constraint): Do not propagate the solution from ESCAPED
12439 but use ESCAPED as a placeholder.
12440 (solve_graph): Likewise.
12441 * tree-flow.h (clobber_what_p_points_to): Remove.
12442 (clobber_what_escaped): Declare.
12443 * tree-ssa-alias.c (set_initial_properties): Call it.
12444 Remove code clobbering escaped pointers.
12445
70cf5bc1
RS
124462008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
12447
12448 * function.c (allocate_struct_function): Only allocate a unique
12449 funcdef_no if the decl is nonzero.
12450
c5cb5d18
RS
124512008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
12452
12453 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
12454 * config/mips/mips.c (mips_split_const_insns): New function.
12455 * config/mips/mips.md (move_type): New attribute.
7ae14d31 12456 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
c5cb5d18
RS
12457 (dword_mode): New attribute.
12458 (type): Avoid long line. Map "move_type"s to "type"s,
12459 choosing "multi" for doubleword moves if appropriate.
12460 Swap MTC/MFC comments to match their declaration order.
12461 (extended_mips16): Default to "yes" if "move_type" is "sll0",
12462 "type" is "branch" or "jal" is "direct".
12463 (length): Handle "extended_mips16" first. Make the default
12464 "0" for "ghost" instructions. Set the length from "move_type".
12465 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
12466 of "type", with "sll0" for the register alternative. Remove the
12467 "extended_mips16" attribute.
12468 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
12469 of "type", with "shift_shift" for the register alternative.
12470 Remove the "length" attribute.
12471 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
12472 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
12473 of "type", with "andi" for the register alternative.
12474 (*zero_extendqihi2): Likewise.
12475 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
12476 of "andi" instead of a "type" of "arith".
12477 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
12478 instead of "type".
12479 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
12480 (mov_<store>r, *mov<mode>_ra): Likewise.
12481 (extendsidi2): Use "move_type" instead of "type", with "move"
12482 for the register alternative.
12483 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
12484 of "type", with "signext" for the register alternative.
12485 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
12486 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
12487 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
12488 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
12489 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
12490 (unnamed branch insn): Likewise.
12491 (*movdi_gp32_fp64): Fold into...
12492 (*movdi_32bit): ...here.
12493 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
12494 (*movdf_hardfloat): ...this new pattern.
12495 (*movdf_softfloat): Remove redundant FPR alternatives.
12496 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
12497 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
12498 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
12499 the "move" attribute.
12500 (*movdi_32bit): Use "move_type" instead of "type" and remove the
12501 "length" attribute. Use "fpload" and "fpstore" instead of "load"
12502 and "store" for COP loads and stores.
12503 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
12504 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
12505 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
12506 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
12507 (*movtf_mips16, *movv2sf): Likewise.
12508 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
12509 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
12510 (mfhc1<mode>): Use "move_type" instead of "move".
12511 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
12512 (loadgp_blockage): Remove the "length" attribute.
12513 (blockage, set_got_version, update_got_version): Likewise.
12514 (call_internal): Remove the "extended_mips16" attribute.
12515 (call_value_internal, call_value_multiple_internal): Likewise.
12516 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
12517 instead of "move".
12518 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
12519 the "length" attribute.
12520
5ead67f6
KG
125212008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12522
12523 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
12524 -Wcast-qual warnings.
12525 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
12526 handle_pragma_pop_macro): Likewise.
12527 * collect2.c (resolve_lib_name): Likewise.
12528 * config/arc/arc.c (arc_init): Likewise.
12529 * config/arm/arm.c (neon_builtin_compare,
12530 locate_neon_builtin_icode): Likewise.
7ae14d31 12531 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
5ead67f6
KG
12532 * config/bfin/bfin.c (bfin_init_machine_status,
12533 bfin_optimize_loop): Likewise.
12534 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
12535 * config/cris/cris.c (cris_init_expanders): Likewise.
12536 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
12537 * config/darwin.c (machopic_indirection_eq,
7ae14d31 12538 machopic_indirection_name, machopic_output_indirection): Likewise.
5ead67f6
KG
12539 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
12540 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
12541 frv_optimize_membar): Likewise.
12542 * config/i386/cygwin.h (mingw_scan,
12543 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
12544 * config/i386/cygwin1.c (mingw_scan): Likewise.
12545 * config/i386/i386.c (machopic_output_stub): Likewise.
12546 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
12547 i386_pe_unique_section): Likewise.
12548 * config/ia64/ia64.c (ia64_init_machine_status,
12549 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
12550 Likewise.
12551 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
12552 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
12553 * config/m68k/m68k.c (m68k_handle_option,
12554 m68k_sched_md_init_global): Likewise.
7ae14d31
UB
12555 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
12556 mcore_unique_section): Likewise.
5ead67f6 12557 * config/mips/mips.c (mips_block_move_straight,
7ae14d31
UB
12558 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
12559 Likewise.
5ead67f6
KG
12560 * config/mmix/mmix.c (mmix_init_machine_status,
12561 mmix_encode_section_info): Likewise.
7ae14d31 12562 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
5ead67f6
KG
12563 * config/rs6000/rs6000.c (rs6000_init_machine_status,
12564 print_operand_address, output_toc, redefine_groups,
12565 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
12566 * config/s390/s390.c (s390_init_machine_status): Likewise.
12567 * config/score/score.c (score_block_move_straight,
12568 score_block_move_loop_body): Likewise.
12569 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
12570 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
12571 * emit-rtl.c (find_auto_inc): Likewise.
12572 * gcc.c (translate_options, process_command): Likewise.
12573 * reorg.c (dbr_schedule): Likewise.
12574 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
12575 * xcoffout.c (xcoffout_declare_function): Likewise.
12576
d1caaa76
DB
125772008-06-27 Daniel Berlin <dberlin@dberlin.org>
12578
12579 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
12580 ipa-pta working again.
12581
edae5fe3
DE
125822008-06-27 David Edelsohn <edelsohn@gnu.org>
12583
12584 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
12585 genautomata.
12586
125872008-06-27 Edmar Wienskoski <edmar@freescale.com>
12588
12589 * config.gcc (powerpc*-*-*): Add new core e500mc.
12590 * config/rs6000/e500mc.md: New file.
12591 * config/rs6000/rs6000.c (processor_costs): Add new costs for
12592 e500mc.
12593 (rs6000_override_options): Add e500mc case to
12594 processor_target_table. Altivec and Spe options not allowed
12595 with e500mc. Add isel instruction to e500mc by
12596 default. Initialize rs6000_cost for e500mc.
12597 (rs6000_issue_rate): Set issue rate for e500mc.
12598 * config/rs6000/rs6000.h (processor_type): Add
12599 PROCESSOR_PPCE500MC.
12600 (ASM_CPU_SPEC): Add e500mc.
12601 Set TARGET_ISEL to rs6000_isel.
12602 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
12603 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
12604 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
12605 Include e500mc.md.
12606 * doc/invoke.texi: Add e500mc to list of cpus.
12607
098b9c46
LB
126082008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12609
12610 PR c/34867
12611 * c-lex.c (lex_charconst): Initialize unsignedp.
12612
b7d565dd 126132008-06-27 Olivier Hainque <hainque@adacore.com>
1a13360e
OH
12614
12615 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
12616 documented assumptions.
12617
4b570560
L
126182008-06-26 H.J. Lu <hongjiu.lu@intel.com>
12619
12620 * dwarf2out.c: Remove trailing white spaces. Break long line
12621 in comments.
12622
e2ff10a9
RS
126232008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
12624
12625 * libfuncs.h (LTI_synchronize): New libfunc_index.
12626 (synchronize_libfunc): Declare.
12627 * builtins.c (expand_builtin_synchronize): Consider using
12628 synchronize_libfunc before falling back on an asm blockage.
12629 * config/mips/mips.c: Include libfuncs.h
12630 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
12631
f78c3290
NF
126322008-06-26 Nathan Froyd <froydnj@codesourcery.com>
12633
12634 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
12635 parameter. Copy stack_reg to r11 where appropriate.
12636 (no_global_regs_above): Add gpr parameter.
12637 (rs6000_stack_info): Only add padding for SPE save area if we
12638 are saving SPE GPRs and CR.
12639 (saveres_routine_syms): New variable.
12640 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
12641 Define.
12642 (rs6000_savres_routine_sym): New function.
12643 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
12644 split out of...
12645 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
12646 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
12647 Tweak FPR out-of-line saving.
12648 (rs6000_make_savres_rtx): New function.
12649 (rs6000_use_multiple_p): New function.
12650 (rs6000_savres_strategy): New function.
12651 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
12652 out-of-line if appropriate.
12653 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
12654 if we are optimizing for size.
12655 (GP_SAVE_INLINE): Define.
12656 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
12657 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
12658 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
12659 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
12660 (*save_fpregs_<mode>): Add use of r11.
12661 (*restore_gpregs_<mode>): New insn.
12662 (*return_and_restore_gpregs_<mode>): New insn.
12663 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
12664 use r11.
12665 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
12666 (*restore_gpregs_spe): New insn.
12667 (*return_and_restore_gpregs_spe): New insn.
12668 * config/rs6000/predicates.md (save_world_operation): Fix check.
12669
e24c4814
SB
126702008-06-26 Steven Bosscher <steven@gcc.gnu.org>
12671
12672 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
12673 this point, so assert that.
12674
25e87727
SB
126752008-06-26 Steven Bosscher <steven@gcc.gnu.org>
12676
12677 * cfganal.c: Include vec.h and vecprim.h.
12678 (compute_idf): Import from...
12679 * tree-into-ssa (compute_idf): ...here.
12680 * basic-block.h (compute_idf): Export.
12681
74b0ec7c
JM
126822008-06-26 Joseph Myers <joseph@codesourcery.com>
12683
12684 * c-decl.c (merge_decls): Use !current_function_decl to check for
12685 extern declaration of C99 inline function being at file scope.
12686
f3d14ed5
JDA
126872008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
12688
12689 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
12690
f883e0a7
KG
126912008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12692
12693 * alias.c (record_alias_subset, init_alias_analysis): Fix
12694 -Wc++-compat and/or -Wcast-qual warnings.
12695 * attribs.c (lookup_attribute_spec): Likewise.
12696 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
12697 copy_bb, connect_traces,
12698 find_rarely_executed_basic_blocks_and_cr): Likewise.
12699 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
12700 note_btr_set, migrate_btr_defs): Likewise.
12701 * builtins.c (result_vector, expand_builtin_memcpy,
12702 expand_builtin_mempcpy_args, expand_builtin_strncpy,
12703 builtin_memset_read_str, expand_builtin_printf,
12704 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
12705 Likewise.
12706 * caller-save.c (mark_set_regs): Likewise.
12707 * calls.c (expand_call, emit_library_call_value_1): Likewise.
12708 * cgraph.c (cgraph_edge): Likewise.
12709 * combine.c (likely_spilled_retval_1): Likewise.
12710 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
12711 htab_counts_entry_del, get_coverage_counts): Likewise.
12712 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
12713 new_cselib_val): Likewise.
12714 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
12715 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
12716 Likewise.
12717 * df-core.c (df_compact_blocks): Likewise.
12718 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
12719 * df-scan.c (df_grow_reg_info, df_ref_create,
12720 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
12721 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
12722 df_record_entry_block_defs, df_record_exit_block_uses,
12723 df_bb_verify): Likewise.
12724 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
12725 DF_REF_EXTRACT_MODE_CONST): New.
12726 * dominance.c (get_immediate_dominator, get_dominated_by,
12727 nearest_common_dominator, root_of_dom_tree,
12728 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
12729 -Wc++-compat and/or -Wcast-qual warnings.
12730 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
12731 record_store, replace_read, check_mem_read_rtx, scan_insn,
12732 dse_step1, dse_record_singleton_alias_set): Likewise.
12733 * dwarf2asm.c (dw2_force_const_mem): Likewise.
12734
1b4572a8
KG
127352008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12736
12737 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
12738 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
12739 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
12740 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
12741 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
12742 add_ranges_num, add_ranges_by_labels, file_info_cmp,
12743 file_name_acquire, output_file_names, add_const_value_attribute,
12744 premark_used_types_helper, file_table_eq, file_table_hash,
12745 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
12746 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
12747 -Wcast-qual warnings.
12748 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
12749 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
12750 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
12751 gen_reg_rtx, start_sequence, init_emit): Likewise.
12752 * et-forest.c (et_new_occ, et_new_tree): Likewise.
12753 * except.c (init_eh_for_function, gen_eh_region,
12754 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
12755 arh_to_landing_pad, arh_to_label, add_action_record,
12756 add_call_site, switch_to_exception_section): Likewise.
12757 * expmed.c (synth_mult): Likewise.
12758 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
12759 store_expr): Likewise.
12760 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
12761 Likewise.
12762 * function.c (assign_stack_temp_for_type,
12763 allocate_struct_function, match_asm_constraints_1): Likewise.
12764 * gcov-io.c (gcov_allocate): Likewise.
12765 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
12766 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
12767 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
12768 record_one_set, insert_expr_in_table, insert_set_in_table,
12769 dump_hash_table, compute_hash_table_work, alloc_hash_table,
12770 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
12771 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
12772 -Wcast-qual warnings.
12773
7cbb2a85
KG
127742008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12775
12776 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
12777 -Wcast-qual warnings.
12778 * gcc.c (process_command): Likewise.
12779 * genattrtab.c (oballoc): Use XOBNEW.
12780 (oballocvec): Define.
12781 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
12782 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
12783 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
12784 -Wc++-compat and/or -Wcast-qual warnings.
12785 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
12786 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
12787 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
12788 gen_presence_absence_set, gen_automaton, gen_regexp_el,
12789 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
12790 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
12791 add_excls, process_presence_absence_names,
12792 process_presence_absence_patterns, add_presence_absence,
12793 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
12794 get_free_state, add_arc, get_free_automata_list_el,
12795 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
12796 transform_3, cache_presence, create_ainsns, create_automata,
12797 create_state_ainsn_table, dfa_insn_code_enlarge,
12798 output_trans_func, output_min_issue_delay_func,
12799 output_dead_lock_func, output_reset_func,
12800 output_get_cpu_unit_code_func, output_dfa_start_func,
12801 expand_automata): Likewise.
12802 * genextract.c (gen_insn): Likewise.
12803 * gengtype-lex.l: Likewise.
12804 * gengtype.c (read_input_list, adjust_field_type,
12805 process_gc_options): Likewise.
12806 * genoutput.c (note_constraint): Likewise.
12807 * genpreds.c (mangle, add_constraint): Likewise.
12808 * genrecog.c (process_define_predicate, new_decision,
12809 add_to_sequence): Likewise.
12810 * gensupport.c (record_insn_name): Likewise.
12811
d3bfe4de
KG
128122008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12813
12814 * config/i386/driver-i386.c (detect_caches_amd,
12815 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
12816 and/or -Wcast-qual warnings.
12817 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
12818 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
12819 gt_pch_save): Likewise.
12820 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
12821 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
12822 * global.c (compute_regsets): Likewise.
12823 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
12824 finish_graph_dump_file): Likewise.
12825 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
12826 unlink_bb_notes): Likewise.
12827 * integrate.c (get_hard_reg_initial_val): Likewise.
12828 * ipa-prop.c (ipa_push_func_to_list): Likewise.
12829 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
12830 * local-alloc.c (update_equiv_regs): Likewise.
12831 * loop-invariant.c (check_invariant_table_size,
12832 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
12833 Likewise.
12834 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
12835 altered_reg_used, mark_altered): Likewise.
12836 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
12837 insert_var_expansion_initialization,
12838 combine_var_copies_in_loop_exit, apply_opt_in_copies,
12839 release_var_copies): Likewise.
12840 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
12841 analyze_matrix_decl, add_allocation_site, analyze_transpose,
12842 analyze_accesses_for_phi_node, check_var_notmodified_p,
12843 check_allocation_function, find_sites_in_func,
12844 record_all_accesses_in_func, transform_access_sites,
12845 transform_allocation_sites): Likewise.
12846 * omp-low.c (new_omp_region, create_omp_child_function_name,
12847 check_omp_nesting_restrictions, check_combined_parallel,
12848 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
12849 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
12850 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
12851 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
12852 Likewise.
12853 * opts-common.c (prune_options): Likewise.
12854 * opts.c (add_input_filename, print_filtered_help,
12855 get_option_state): Likewise.
12856 * params.c (add_params): Likewise.
12857 * passes.c (set_pass_for_id, next_pass_1,
12858 do_per_function_toporder, pass_fini_dump_file): Likewise.
12859 * postreload.c (reload_cse_simplify_operands): Likewise.
12860 * predict.c (tree_predicted_by_p, tree_predict_edge,
12861 clear_bb_predictions, combine_predictions_for_bb): Likewise.
12862
1634b18f
KG
128632008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12864
12865 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
12866 warnings.
12867 * recog.c (check_asm_operands, validate_change_1): Likewise.
12868 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
12869 subst_asm_stack_regs): Likewise.
12870 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
12871 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
12872 * regmove.c (reg_is_remote_constant_p): Likewise.
12873 * regrename.c (regrename_optimize, scan_rtx_reg,
12874 kill_clobbered_value, kill_set_value, kill_autoinc_value):
12875 Likewise.
12876 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
12877 regstat_compute_calls_crossed): Likewise.
12878 * reload1.c (init_reload, new_insn_chain,
12879 has_nonexceptional_receiver, reload, copy_reloads,
12880 calculate_needs_all_insns, init_elim_table): Likewise.
12881 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
12882 * rtl.c (shallow_copy_rtx_stat): Likewise.
12883 * rtlanal.c (parms_set): Likewise.
12884 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
12885 sbitmap_resize, sbitmap_vector_alloc): Likewise.
12886 * sched-ebb.c (earliest_block_with_similiar_load,
12887 add_deps_for_risky_insns): Likewise.
12888 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
12889 schedule_region): Likewise.
12890 * see.c (eq_descriptor_pre_extension,
12891 hash_descriptor_pre_extension, hash_del_pre_extension,
12892 eq_descriptor_properties, hash_descriptor_properties,
12893 hash_del_properties, see_seek_pre_extension_expr,
12894 see_initialize_data_structures, see_print_register_properties,
12895 see_print_pre_extension_expr, see_delete_merged_def_extension,
12896 see_delete_unmerged_def_extension, see_emit_use_extension,
12897 see_pre_delete_extension, see_map_extension, see_commit_changes,
12898 see_analyze_merged_def_local_prop,
12899 see_analyze_merged_def_local_prop,
12900 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
12901 see_set_prop_merged_def, see_set_prop_unmerged_def,
12902 see_set_prop_unmerged_use, see_print_one_extension,
12903 see_merge_one_use_extension, see_merge_one_def_extension,
12904 see_store_reference_and_extension, see_update_uses_relevancy,
12905 see_update_defs_relevancy): Likewise.
12906 * statistics.c (hash_statistics_hash, hash_statistics_eq,
12907 hash_statistics_free, curr_statistics_hash): Likewise.
12908 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
12909 expand_asm_operands, expand_return, case_bit_test_cmp,
12910 expand_case): Likewise.
12911 * stor-layout.c (start_record_layout): Likewise.
12912 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
12913 gt_pch_save_stringpool): Likewise.
12914 * tree-data-ref.c (hash_stmt_vertex_info,
12915 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
12916 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
12917
f3e10a2b 129182008-06-25 Uros Bizjak <ubizjak@gmail.com>
0edb82cb
UB
12919
12920 PR target/36627
12921 * config/i386/i386.md : Change constraints of HImode and QImode
12922 immediate operands from "i" to "n". Change SImode "ni" constraint to
12923 "i" and SImode "rmi" constraint to "g". Remove all constraints
12924 from const0_operand and const1_operand predicated operands.
12925 (i): Change QImode and HImode attribute from "i" to "n".
12926 (*subqi_2): Change HImode operands to QImode.
12927 (*subqi_3): Ditto.
12928
5cff8550
OH
129292008-06-25 Olivier Hainque <hainque@adacore.com>
12930
12931 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
12932 sed substitutions.
12933
185ab3b6
RG
129342008-06-25 Richard Guenther <rguenther@suse.de>
12935
12936 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
12937 not overflow the result type.
12938
8ef834ca
RG
129392008-06-25 Richard Guenther <rguenther@suse.de>
12940
12941 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
12942 (vn_lookup): Likewise.
12943
ee1f1270
RG
129442008-06-25 Richard Guenther <rguenther@suse.de>
12945
12946 PR tree-optimization/35518
12947 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
12948 * tree-sra.c (instantiate_element): Use fold_build3 to build
12949 BIT_FIELD_REFs.
12950 (try_instantiate_multiple_fields): Likewise.
12951
423addc5
AP
129522008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
12953
12954 * config/rs6000/rs6000.md: Change all string instruction's clobber to
12955 be early clobbers.
12956
d2492102
AP
129572008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
12958
12959 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
12960 use_backchain_to_restore_sp to true
12961 if the offset of the link register save area would go over the 32k - 1
12962 offset limit of the load
12963 instructions.
12964
917db97b
HPN
129652008-06-25 Hans-Peter Nilsson <hp@axis.com>
12966
12967 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
12968 anchor for the type-punning blurb. Cross-reference "Structures
12969 unions enumerations and bit-fields implementation". Provide a
12970 cast-through-pointer example. Make final sentence self-contained.
12971 * doc/implement-c.texi (Structures unions enumerations and
12972 bit-fields implementation): Cross-reference the type-punning blurb
12973 in the -fstrict-aliasing documentation.
12974
cba2d79f
AP
129752008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
12976
12977 PR middle-end/36594
12978 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
12979 the memory instead of the memory itself for the save area.
12980
8de8de02 129812008-06-24 Olivier Hainque <hainque@adacore.com>
0edb82cb 12982 Nicolas Roche <roche@adacore.com>
8de8de02
OH
12983
12984 * gengtype.c (srcdir_len): size_t instead of int.
12985 (get_file_realbasename): New function. For F a filename, the real
12986 basename of F, with all the path components stripped.
12987 (get_file_srcdir_relative_path): New function. For F a filename, the
12988 relative path to F from $(srcdir).
12989 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
12990 get_file_realbasename. Adjust the head comment.
12991 (get_prefix_langdir_index): New function. For F a filename, return the
12992 lang_dir_names[] relative index of the language directory that is
12993 a prefix in F.
12994 (get_file_langdir): For F a filename, return the name of the language
12995 directory where F is located.
12996 (get_file_gtfilename): New function. The gt- output file name for an
12997 input filename F.
12998 (get_output_file_with_visibility): Replace in-line computations with
12999 uses of get_file_gtfilename and get_prefix_langdir_index.
13000 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
13001
a80a2701
JJ
130022008-06-24 Jakub Jelinek <jakub@redhat.com>
13003
13004 PR tree-optimization/36504
13005 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
13006 references without base address.
13007
b5f772ce
UB
130082008-06-23 Uros Bizjak <ubizjak@gmail.com>
13009
0edb82cb 13010 PR middle-end/36584
b5f772ce
UB
13011 * calls.c (expand_call): Increase alignment for recursive functions.
13012
f9f6caf5
AS
130132008-06-23 Anatoly Sokolov <aesok@post.ru>
13014
13015 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
13016 (TARGET_FUNCTION_VALUE): New define.
13017 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
13018 * config/avr/avr.h (FUNCTION_VALUE): Remove.
13019
f2a55e41
UB
130202008-06-23 Uros Bizjak <ubizjak@gmail.com>
13021
13022 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
13023 (fmod<mode>3): Ditto.
13024 (remainderxf3): Ditto.
13025 (remainder<mode>3): Ditto.
13026
53983ae9
JJ
130272008-06-23 Jakub Jelinek <jakub@redhat.com>
13028
923ba36f
JJ
13029 PR target/36533
13030 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
13031 REG is a hard register.
13032
53983ae9
JJ
13033 PR tree-optimization/36508
13034 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
13035 499, don't check it at all in release compilers.
13036
cc774ffb
UB
130372008-06-23 Uros Bizjak <ubizjak@gmail.com>
13038
13039 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
13040 together with SSE_TARGET_MATH to disable insn pattern.
13041 (*fop_<MODEF:mode>_2_i387): Ditto.
13042 (*fop_<MODEF:mode>_3_i387): Ditto.
13043
34babc73
AH
130442008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
13045
13046 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
22129589 13047
2c68ba8e
LB
130482008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
13049
13050 PR middle-end/34906
13051 * gimplify.c (gimplify_asm_expr): Check the return code of
13052 parse_output_constraint call, set function return and is_inout
13053 value if it failed.
13054
d75d71e0
ILT
130552008-06-22 Ian Lance Taylor <iant@google.com>
13056
13057 * c-lex.c (narrowest_unsigned_type): Change itk to int.
13058 (narrowest_signed_type): Likewise.
13059 * c-typeck.c (c_common_type): Change local variable mclass to enum
13060 mode_class, twice.
13061 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
13062 tcc_comparison, not the tree code itself.
13063 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
13064 (c_expand_expr): Cast modifier to enum expand_modifier.
13065 * c-common.h (C_RID_CODE): Add casts.
13066 (C_SET_RID_CODE): Define.
13067 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
13068 (c_lex_one_token): Add cast to avoid warning.
13069 (c_parser_objc_type_name): Rename local typename to type_name.
13070 (check_no_duplicate_clause): Change code parameter to enum
13071 omp_clause_code.
13072 (c_parser_omp_var_list_parens): Change kind parameter to enum
13073 omp_clause_code.
13074 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
13075 c_parser_omp_list_var_parens.
13076 (c_parser_omp_threadprivate): Likewise.
13077 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
13078 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
13079 * c-format.c (NO_FMT): Define.
13080 (printf_length_specs): Use NO_FMT.
13081 (asm_fprintf_length_specs): Likewise.
13082 (gcc_diag_length_specs): Likewise.
13083 (scanf_length_specs): Likewise.
13084 (strfmon_length_specs): Likewise.
13085 (gcc_gfc_length_specs): Likewise.
13086 (printf_flag_specs): Change 0 to STD_C89.
13087 (asm_fprintf_flag_specs): Likewise.
13088 (gcc_diag_flag_specs): Likewise.
13089 (gcc_cxxdiag_flag_specs): Likewise.
13090 (scanf_flag_specs): Likewise.
13091 (strftime_flag_specs): Likewise.
13092 (strfmon_flag_specs): Likewise.
13093 (print_char_table): Likewise.
13094 (asm_fprintf_char_table): Likewise.
13095 (gcc_diag_char_table): Likewise.
13096 (gcc_tdiag_char_table): Likewise.
13097 (gcc_cdiag_char_table): Likewise.
13098 (gcc_cxxdiag_char_table): Likewise.
13099 (gcc_gfc_char_table): Likewise.
13100 (scan_char_table): Likewise.
13101 (time_char_table): Likewis.
13102 (monetary_char_table): Likewise.
13103 * c-format.h (BADLEN): Likewise.
13104
c0ed0531
ILT
131052008-06-21 Ian Lance Taylor <iant@google.com>
13106
13107 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
13108 Define END_OF_BASE_TREE_CODES around inclusion.
13109 * tree.c (tree_code_type): New global array.
13110 (tree_code_length, tree_code_name): Likewise.
13111 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
13112 $(lang_tree_files).
13113 (all-tree.def, s-alltree): New targets.
13114 (gencheck.h, s-gencheck): Remove.
13115 (tree.o): Depend upon all-tree.def.
13116 (build/gencheck.o): Remove gencheck.h dependency.
13117 (mostlyclean): Don't remove gencheck.h.
13118 * c-common.h (enum c_tree_code): Remove.
13119 * c-lang.c (tree_code_type): Remove.
13120 (tree_code_length, tree_code_name): Remove.
13121 * gencheck.c (tree_codes): Include all-tree.def, rather than
13122 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
13123 after it is used.
13124 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
13125 than tree.def.
13126 * cp/cp-tree.h (enum cplus_tree_code): Remove.
13127 (operator_name_info): Size to MAX_TREE_CODES.
13128 (assignment_operator_name_info): Likewise.
13129 * cp/cp-lang.c (tree_code_type): Remove.
13130 (tree_code_length, tree_code_name): Remove.
13131 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
13132 (assignment_operator_name_info): Likewise.
13133 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
13134 MAX_TREE_CODES.
13135 * cp/mangle.c (write_expression): Likewise.
13136 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
13137 * fortran/f95-lang.c (tree_code_type): Remove.
13138 (tree_code_length, tree_code_name): Remove.
13139 * java/java-tree.h (enum java_tree_code): Remove.
13140 * java/lang.c (tree_code_type): Remove.
13141 (tree_code_length, tree_code_name): Remove.
13142 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
13143 * objc/objc-act.h (enum objc_tree_code): Remove.
13144 * objc/objc-lang.c (tree_code_type): Remove.
13145 (tree_code_length, tree_code_name): Remove.
13146 * objcp/objcp-lang.c (tree_code_type): Remove.
13147 (tree_code_length, tree_code_name): Remove.
13148 * ada/ada-tree.h (enum gnat_tree_code): Remove.
13149 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
13150 * ada/misc.c (tree_code_type): Remove.
13151 (tree_code_length, tree_code_name): Remove.
13152
830b4fec
BF
131532008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
13154
13155 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
13156 the grand_bitmap_obstack.
13157
3d9a9f94
KG
131582008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13159
13160 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
13161 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
b5f772ce 13162 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3d9a9f94
KG
13163 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
13164 move_stmt_r, new_label_mapper): Likewise.
13165 * tree-complex.c (cvc_lookup): Likewise.
13166 * tree-dfa.c (create_function_ann): Likewise.
13167 * tree-dump.c (dump_register): Likewise.
13168 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
13169 find_phi_replacement_condition): Likewise.
13170 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
13171 tree_function_versioning): Likewise.
13172 * tree-into-ssa.c (cmp_dfsnum): Likewise.
13173 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
13174 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
13175 get_nonlocal_debug_decl, convert_nonlocal_reference,
13176 convert_nonlocal_omp_clauses, get_local_debug_decl,
13177 convert_local_reference, convert_local_omp_clauses,
13178 convert_nl_goto_reference, convert_nl_goto_receiver,
13179 convert_tramp_reference, convert_call_expr): Likewise.
13180 * tree-outof-ssa.c (contains_tree_r): Likewise.
13181 * tree-parloops.c (reduction_phi, initialize_reductions,
13182 eliminate_local_variables_1, add_field_for_reduction,
13183 add_field_for_name, create_phi_for_local_result,
13184 create_call_for_reduction_1, create_loads_for_reductions,
13185 create_stores_for_reduction, create_loads_and_stores_for_name):
13186 Likewise.
13187 * tree-phinodes.c (allocate_phi_node): Likewise.
cc774ffb
UB
13188 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
13189 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3d9a9f94
KG
13190 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
13191 * tree-ssa-coalesce.c (compare_pairs): Likewise.
13192 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
13193 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
13194 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
22129589 13195 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
3d9a9f94
KG
13196 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
13197 vn_nary_op_insert): Likewise.
13198 * tree-ssa.c (redirect_edge_var_map_add,
13199 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
13200 * tree-vectorizer.c (vectorize_loops): Likewise.
13201 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
13202 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
13203 tree_cons_stat, build1_stat, build_variant_type_copy,
13204 decl_init_priority_lookup, decl_fini_priority_lookup,
13205 decl_priority_info, decl_restrict_base_lookup,
13206 decl_restrict_base_insert, decl_debug_expr_lookup,
13207 decl_debug_expr_insert, decl_value_expr_lookup,
13208 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
13209 type_hash_add, get_file_function_name, tree_check_failed,
13210 tree_not_check_failed, tree_range_check_failed,
13211 omp_clause_range_check_failed, build_omp_clause,
13212 build_vl_exp_stat): Likewise.
13213 * value-prof.c (gimple_histogram_value,
13214 gimple_duplicate_stmt_histograms): Likewise.
13215 * var-tracking.c (attrs_list_insert, attrs_list_copy,
13216 unshare_variable, variable_union_info_cmp_pos, variable_union,
13217 dataflow_set_different_1, dataflow_set_different_2,
13218 vt_find_locations, variable_was_changed, set_variable_part,
cc774ffb 13219 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3d9a9f94
KG
13220 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
13221 section_entry_hash, object_block_entry_eq,
13222 object_block_entry_hash, create_block_symbol,
13223 initialize_cold_section_name, default_function_rodata_section,
13224 strip_reg_name, set_user_assembler_name, const_desc_eq,
13225 build_constant_desc, output_constant_def, lookup_constant_def,
13226 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
13227 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
13228 default_internal_label): Likewise.
13229 * varray.c (varray_init, varray_grow): Likewise.
13230 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
13231
a055f99f
UB
132322008-06-20 Uros Bizjak <ubizjak@gmail.com>
13233
13234 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
13235 operators for "test" insn. Macroize insn using SWI mode macro.
13236 (*jcc_fused_2): Ditto.
13237 (*jcc_fused_3): Macroize insn using SWI mode macro.
13238 (*jcc_fused_4): Ditto.
13239
a7849637
BF
132402008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
13241
a055f99f
UB
13242 * tree-ssa-pre.c: Fix typo in comment.
13243 (init_antic, fini_antic): Add explicit funtions for
13244 initializing and deinitializing ANTIC and AVAIL sets.
13245 (create_expression_by_pieces): Fix typo in comment.
13246 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
13247 (execute_pre): Eventually dump details about ANTIC_IN.
a7849637 13248
e1e4cdc4
KG
132492008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13250
13251 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
13252 * gcc.c (translate_options, init_spec, store_arg, read_specs,
13253 add_to_obstack, file_at_path, find_a_file, execute,
13254 add_preprocessor_option, add_assembler_option, add_linker_option,
13255 process_command, insert_wrapper, do_option_spec, do_self_spec,
13256 spec_path, do_spec_1, is_directory, main, used_arg,
13257 getenv_spec_function): Likewise.
13258 * tlink.c (symbol_hash_lookup, file_hash_lookup,
13259 demangled_hash_lookup, symbol_push, file_push, frob_extension):
13260 Likewise.
13261
1ba4e523
KZ
132622008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
13263
13264 * doc/rtl.texi: Updated subreg section.
a7849637 13265
2368a460
JJ
132662008-06-19 Jakub Jelinek <jakub@redhat.com>
13267
13268 PR c++/36523
13269 * cgraphunit.c (cgraph_process_new_functions): Don't clear
13270 node->needed and node->reachable.
13271 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
13272 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
13273 (expand_task_call): Don't call expand_task_copyfn.
13274 (expand_task_copyfn): Renamed to...
13275 (finalize_task_copyfn): ... this.
13276
dea33aa7
JH
132772008-06-19 Jan Hubicka <jh@suse.cz>
13278
13279 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
13280 clobbering framepointer.
13281
bad5e2b5
JH
132822008-06-19 Jan Hubicka <jh@suse.cz>
13283
13284 * tree-optimize.c (execute_early_local_optimizations): Set
13285 cgraph_state only at first invocation.
13286
00066bc0
KG
132872008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13288
13289 * system.h (-Wc++-compat): Activate as a warning, no an error.
13290
f1469150
UB
132912008-06-19 Uros Bizjak <ubizjak@gmail.com>
13292
13293 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
13294 instead of "#" in insn asm template.
13295 (*jcc_fused_2): Ditto.
13296
354f84af
UB
132972008-06-19 Uros Bizjak <ubizjak@gmail.com>
13298
13299 * config/i386/i386.h (ix86_tune_indices)
13300 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
13301 (TARGET_FUSE_CMP_AND_BRANCH): New define.
13302 * config/i386/i386.md (*jcc_fused_1): New insn pattern
13303 (*jcc_fused_2): Ditto.
13304 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
f1469150 13305 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
354f84af
UB
13306 (print operand): Handle 'E' and 'e' code.
13307
720705d2
AS
133082008-06-19 Anatoly Sokolov <aesok@post.ru>
13309
13310 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
13311 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13312 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13313
f30cfcb1
BRF
133142008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
13315
13316 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
13317 node->decl.
13318 (cgraph_expand_function): Use local copy of decl.
13319 (cgraph_expand_all_functions): Remove redundant initialization of
13320 order_pos.
13321 (cgraph_optimize): Reword internal_error message.
13322
133232008-06-19 Chung-Lin Tang <ctang@marvell.com>
23668cf7
CLT
13324
13325 * arm-protos.h (arm_return_in_memory): Remove public
13326 arm_return_in_memory() prototype.
13327 * arm.c (arm_return_in_memory): Add static prototype, add target
13328 hook macro, change definition and comments.
13329 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
13330
7292b8e4
BE
133312008-06-19 Ben Elliston <bje@au.ibm.com>
13332
13333 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
13334 real.c: Remove references to IEEE 754R.
13335 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
13336 * doc/libgcc.texi (Decimal float library routines): Likewise.
13337
7b0518e3
UW
133382008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13339
13340 * targhooks.h (struct gcc_target): New member unwind_word_mode.
13341 (default_unwind_word_mode): Add prototype.
13342 * targhooks.c (default_unwind_word_mode): New function.
13343 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
13344 instead of word_mode.
13345 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
13346 (TARGET_INITIALIZER): Use it.
13347
13348 * c-common.c (handle_mode_attribute): Support "unwind_word"
13349 mode attribute.
13350 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
13351
13352 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
13353 word_mode to access SjLj_Function_Context member "data".
13354 (sjlj_emit_dispatch_table): Likewise. Also, perform type
13355 conversion from targetm.eh_return_filter_mode () to
13356 targetm.unwind_word_mode () if they differ.
13357
13358 * builtin-types.def (BT_UNWINDWORD): New primitive type.
13359 (BT_FN_UNWINDWORD_PTR): New function type.
13360 (BT_FN_WORD_PTR): Remove.
13361 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
13362 * except.c (expand_builtin_extend_pointer): Convert pointer to
13363 targetm.unwind_word_mode () instead of word_mode.
13364
13365 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
13366 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
13367 (spu_unwind_word_mode): New function.
13368 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
13369 (TARGET_UNWIND_WORD_MODE): Define.
13370 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
13371
aa5d9939
UW
133722008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13373
13374 * config/spu/spu.c (reg_align): Remove.
13375 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
13376 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
13377 (spu_split_store): Likewise.
13378
f30cfcb1 133792008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
a7816b82
BF
13380
13381 * gcc/tree-vn.c: Fix typo in comment.
13382
45f09afb
JH
133832008-06-18 Jan Hubicka <jh@suse.cz>
13384
13385 * cgraphunit.c (cgraph_optimize): Output debug info when doing
13386 toplevel reorder too.
13387
a7bf199e
JH
133882008-06-18 Jan Hubicka <jh@suse.cz>
13389
13390 * c-opts.c (c_common_post_options): PCH is not compatible with
13391 no-unit-at-a-time.
13392 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
13393 -fno-toplevel-reorder by default now.
13394
3f737aa9
RW
133952008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13396
13397 PR documentation/30739
13398 * doc/install.texi (Prerequisites): Document dependency on awk.
13399
ba03a350
UB
134002008-06-18 Uros Bizjak <ubizjak@gmail.com>
13401 Ian Lance Taylor <iant@google.com>
13402
13403 PR rtl-optimization/35604
13404 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
13405 only want to change jump destinations, not eventual label comparisons.
13406
fdd7f241
JH
134072008-06-16 Jan Hubicka <jh@suse.cz>
13408
13409 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
13410 syntax errors.
13411 (cgraph_analyze_function): Likewise.
13412
f0c882ab
JH
134132008-06-16 Jan Hubicka <jh@suse.cz>
13414
13415 * cgraph.h (cgraph_mark_if_needed): New function.
13416 * cgraphunit.c (cgraph_mark_if_needed): New function.
13417 * c-decl.c (duplicate_decl): Use it.
13418
ff2c88a5
JH
134192008-06-16 Jan Hubicka <jh@suse.cz>
13420
13421 * cgraph.c (cgraph_add_new_function): When in expansion state, do
13422 lowering.
13423
b7352f3f
JH
134242008-06-16 Jan Hubicka <jh@suse.cz>
13425
13426 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
13427
900e3ae5
DJ
134282008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
13429 Kazu Hirata <kazu@codesourcery.com>
13430 Maxim Kuvyrkov <maxim@codesourcery.com
13431
13432 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
13433 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
13434 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
13435 EXTRA_SPEC_FUNCTIONS.
13436 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
13437 (DRIVER_SELF_SPECS): Adjust.
13438 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
13439 * config/mips/st.h, config/mips/t-st: New.
13440 * config/mips/driver-native.c, config/mips/x-native: New.
13441 * doc/invoke.texi (MIPS): Document 'native' value for -march and
13442 -mtune options.
13443
b51469a5
MK
134442008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
13445
13446 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
13447 from it.
13448 (ISA_HAS_FP_CONDMOVE): New macro.
13449 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
13450 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
13451 (ISA_HAS_NMADD3_NMSUB3): New macro.
13452 * config/mips/mips.c (mips_rtx_costs): Update.
13453 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
13454 compiling for ST Loongson 2E/2F.
13455 (madd<mode>): Rename to madd4<mode>. Update.
13456 (madd3<mode>): New pattern.
13457 (msub<mode>): Rename to msub4<mode>. Update.
13458 (msub3<mode>): New pattern.
13459 (nmadd<mode>): Rename to nmadd4<mode>. Update.
13460 (nmadd3<mode>): New pattern.
13461 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
13462 (nmadd3<mode>_fastmath): New pattern.
13463 (nmsub<mode>): Rename to nmsub4<mode>. Update.
13464 (nmsub3<mode>): New pattern.
13465 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
13466 (nmsub3<mode>_fastmath): New pattern.
13467 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
13468
50e94c7e
SB
134692008-06-18 Steven Bosscher <steven@gcc.gnu.org>
13470
13471 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
13472 (DF_REF_INSN_INFO): New.
13473 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
13474 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
13475 with a NULL DF_REF_INSN_INFO.
13476 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
13477 DF_INSN_SET.
13478 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
13479 DF_INSN_INFO_EQ_USES): New.
13480 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
13481 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
13482 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
13483 * df-core.c: Update comment for above changes.
13484 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
13485 DF_INSN_UID_* macros.
13486 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
13487 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
13488 insn rtx. Update all callers.
13489 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
13490 df_ref_create_structure, df_insn_refs_collect): Likewise.
13491 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
13492 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
13493 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
13494 macros to access the insn refs.
13495 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
13496 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
13497 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
13498 for accessing the refs.
13499 (try_fwprop_subst): Likewise.
13500 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
13501 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
13502 for accessing the refs.
13503 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
13504 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
13505 to look at the insn refs.
13506 (record_uses): Likewise.
13507 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
13508 function anymore.
13509 (mark_artificial_uses): Don't mark_insn for artificial refs.
13510 (mark_reg_rependencies): Likewise.
13511
13512 * doc/rtl.texi: Remove documentation of ADDRESSOF.
13513
18c04407
RW
135142008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13515
13516 * configure: Regenerate.
13517
7995ad77
EW
135182008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
13519
13520 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
22129589
AS
13521 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13522 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7995ad77 13523
e416eb8f
EW
135242008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
13525
13526 * config/avr/avr.c (avr_mcu_t): Add attiny167.
22129589
AS
13527 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13528 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
e416eb8f 13529
59928a83
EW
135302008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
13531
13532 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
22129589
AS
13533 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13534 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
59928a83 13535
b40bf772
BF
135362008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
13537
13538 * tree-ssa-sccvn.c: Fix format of comments.
13539
135402008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
a33a598c
BF
13541
13542 * cgraph.c: Remove unneeded forward declarations of eq_node()
13543 and hash_node().
13544
4a8cae83
SB
135452008-06-17 Steven Bosscher <steven@gcc.gnu.org>
13546
13547 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
13548 REG_RETVAL notes.
13549 (see_update_relevancy): Likewise.
13550 * fwprop.c (try_fwprop_subst): Likewise.
13551 * rtlanal.c (noop_move_p): Likewise.
13552 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
13553 notes to non-existing libcall blocks.
13554 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
13555 Remove orig_set.
13556 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
13557 (dead_libcall_p): Remove.
13558 (delete_trivially_dead_insns): Don't use it.
13559 * web.c (union_defs): Remove comment about keeping nops.
13560 * gcse.c (hash_scan_insn): Don't take libcall pointers.
13561 (compute_hash_table_work): Don't track libcall notes.
13562 (do_local_cprop): Don't take libcall pointers. Don't update
13563 libcall notes.
13564 (adjust_libcall_notes): Deleted.
13565 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
13566 ever have existed in the first place).
13567 (replace_store_insn): Don't try to remove libcall notes.
13568 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
13569 (resolve_reg_notes): Don't call them.
13570 (resolve_simple_move): Likewise.
13571 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
13572 Don't remove REG_RETVAL notes.
13573 * emit-rtl.c (try_split): Don't update libcall notes.
13574 (emit_copy_of_insn_after): Dito.
13575 * cselib.c (cselib_current_insn_in_libcall): Remove.
13576 (cselib_process_insn): Don't set/clear it.
13577 (new_elt_loc_list): Don't record it.
13578 (cselib_init): Don't initialize it.
13579 * cselib.c (struct elt_loc_list): Remove in_libcall field.
13580 * loop-invariant.c (find_invariant_insn): Don't look for libcall
13581 notes.
13582 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
13583 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
13584 (init_deps): Don't initialize it.
13585 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
13586 * combine.c (delete_noop_moves): Don't update libcall notes.
13587 (can_combine_p): Remove now pointless #if 0 block.
13588 (try_combine): Remove another obsolete #if 0 block.
13589 (distribute_notes): Don't distribute libcall notes.
13590 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
13591 * dce.c (libcall_dead_p): Remove.
13592 (delete_unmarked_insns): Don't handle libcall blocks.
13593 (preserve_libcall_for_dce): Remove.
13594 (prescan_insns_for_dce): Don't special-case libcall block insns.
22129589 13595 * reload1 (reload): Don't handle libcall notes.
4a8cae83
SB
13596 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
13597 documentation.
13598
ec346900
EW
135992008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
13600
13601 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
13602 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
13603 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13604
951a5379
EW
136052008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
13606
13607 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
13608 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
22129589 13609 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
951a5379 13610
2d09b640
RW
136112008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13612
13613 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
13614
54269f05
IR
136152008-06-16 Ira Rosen <irar@il.ibm.com>
13616
13617 PR tree-optimization/36493
13618 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
13619 the arguments list. Use VECTYPE to create vector pointer.
13620 (vectorizable_store): Fail if accesses through a pointer to vectype
13621 do not alias the original memory reference operands.
13622 Call vect_create_data_ref_ptr without the removed argument.
13623 (vectorizable_load): Likewise.
13624 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
13625 removed argument.
13626
f4df5771
AH
136272008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
13628
13629 PR target/36336
22129589 13630 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
f4df5771
AH
13631 reg_equiv_constant.
13632
58684fa0
MK
136332008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13634
13635 * config/mips/loongson2ef.md: New file.
13636 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
13637 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
13638 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
13639 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
13640 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
13641 and loongson_2f.
13642 (loongson2ef.md): New include.
13643 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
13644 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
13645 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
13646 (loongson_gt_<mode>, loongson_extract_halfword)
13647 (loongson_insert_halfword_0, loongson_insert_halfword_2)
13648 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
13649 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
13650 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
13651 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
13652 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
13653 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
13654 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
13655 (vec_interleave_low<mode>): Define type attribute.
13656 * config/mips/mips.c (mips_ls2): New static variable.
13657 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
13658 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
13659 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
13660 Implement target scheduling hooks.
13661 (mips_multipass_dfa_lookahead): Update to handle tuning for
13662 Loongson 2E/2F.
13663 (mips_sched_init): Initialize data for Loongson scheduling.
13664 (mips_ls2_variable_issue): New static function.
13665 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
13666 Add sanity check.
13667 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
13668 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
13669 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
13670 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
13671 Handle ST Loongson 2E/2F cores.
13672 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
13673
1cbc62c0
RW
136742008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13675
13676 * omp-low.c (extract_omp_for_data): Fix comment typo.
13677 * c.opt: Fix typo.
13678
6ccde948
RW
136792008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13680
13681 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
13682 FIXME note about gcc/config.guess.
13683 * doc/options.texi (Option file format): Remove non-ASCII bytes.
13684 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
13685 * doc/cppopts.texi: Likewise.
13686 * doc/extend.texi: Likewise.
13687 * doc/gcc.texi: Likewise.
13688 * doc/gccint.texi: Likewise.
13689 * doc/gcov.texi: Likewise.
13690 * doc/gty.texi: Likewise.
13691 * doc/hostconfig.texi: Likewise.
13692 * doc/install.texi: Likewise.
13693 * doc/invoke.texi: Likewise.
13694 * doc/loop.texi: Likewise.
13695 * doc/makefile.texi: Likewise.
13696 * doc/md.texi: Likewise.
13697 * doc/passes.texi: Likewise.
13698 * doc/tm.texi: Likewise.
13699 * doc/tree-ssa.texi: Likewise.
13700 * doc/trouble.texi: Likewise.
13701
93581857
MS
137022008-06-15 Mark Shinwell <shinwell@codesourcery.com>
13703 Nathan Sidwell <nathan@codesourcery.com>
13704 Maxim Kuvyrkov <maxim@codesourcery.com>
13705 Richard Sandiford <rdsandiford@googlemail.com>
22129589 13706
93581857
MS
13707 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
13708 * config/mips/mips-protos.h (mips_expand_vector_init): New.
13709 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
13710 builtins.
13711 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
13712 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
13713 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
13714 V8QImode cases.
13715 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
13716 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
13717 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
13718 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
13719 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
13720 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
13721 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
13722 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
13723 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
13724 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
13725 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
13726 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
13727 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
13728 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
13729 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
13730 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
13731 (mips_builtins): Add Loongson builtins.
13732 (mips_loongson_2ef_bdesc): New.
13733 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
13734 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
13735 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
13736 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
13737 New.
13738 (mips_expand_vector_init): New.
13739 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
13740 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
13741 if appropriate.
13742 * config/mips/mips.md: Add unspec numbers for Loongson
13743 builtins. Include loongson.md.
13744 (MOVE64): Include Loongson vector modes.
13745 (SPLITF): Include Loongson vector modes.
13746 (HALFMODE): Handle Loongson vector modes.
13747 * config/mips/loongson.md: New.
13748 * config/mips/loongson.h: New.
13749 * config.gcc: Add loongson.h header for mips*-*-* targets.
13750 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
13751
397fda80
JM
137522008-06-14 Joseph Myers <joseph@codesourcery.com>
13753
13754 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
13755 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
13756 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
13757 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
13758 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
13759 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
13760 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
13761 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
13762 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
13763 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
13764 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
13765 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
13766 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
13767 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
13768 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
13769 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
13770 Remove use_fixproto=yes.
13771 (ia64*-*-hpux*): Remove comment about using fixproto.
13772 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
13773
b15a9f63
RW
137742008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13775
13776 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
13777 library rebuilds.
13778 * configure: Regenerate.
13779
9133c85e
EB
137802008-06-13 Eric Botcazou <ebotcazou@adacore.com>
13781
13782 PR middle-end/36520
13783 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
13784 before evaluating it.
13785
6cf59865
JJ
137862008-06-13 Jakub Jelinek <jakub@redhat.com>
13787
13788 PR c/36507
13789 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
13790 nested inline functions.
13791 (start_decl, start_function): Don't invert DECL_EXTERNAL
13792 for nested inline functions.
13793
a9a53350
RS
137942008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
13795
13796 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
13797 splits that must be made for correctness.
13798
fd0eb897
RS
137992008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
13800
13801 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
13802 (AVAIL_NON_MIPS16): Likewise.
13803 (mips_builtin_description): Replace target_flags with a predicate.
13804 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
13805 (dspr2_32): New availability predicates.
13806 (MIPS_BUILTIN): New macro.
13807 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
13808 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
13809 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
13810 Replace the TARGET_FLAGS parameters with AVAIL parameters.
13811 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
13812 (mips_dsp_32only_bdesc): Merge into...
13813 (mips_builtins): ...this new array.
13814 (mips_bdesc_map, mips_bdesc_arrays): Delete.
13815 (mips_init_builtins): Update after above changes.
13816 (mips_expand_builtin_1): Merge into...
13817 (mips_expand_builtin): ...here and update after above changes.
13818
ef0a4b67
PB
138192008-06-12 Paul Brook <paul@codesourcery.com>
13820
13821 * longlong.h (__arm__): Define count_leading_zeros.
13822 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
13823 (clzsi2, clzdi2): New functions.
13824 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
13825 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
13826 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
13827 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
13828 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
13829 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
13830 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
13831 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
13832 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
13833 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
13834
03b3e271
KH
138352008-06-12 Kazu Hirata <kazu@codesourcery.com>
13836
13837 * config/m68k/m68k.c (m68k_tune_flags): New.
13838 (override_options): Compute m68k_tune_flags.
13839 (MULL_COST, MULW_COST): Update for various variants of CFV2.
13840 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
13841
3ac4c44a
JJ
138422008-06-12 Jakub Jelinek <jakub@redhat.com>
13843
13844 PR middle-end/36506
ba03a350 13845 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3ac4c44a 13846
955f6531
EB
138472008-06-12 Eric Botcazou <ebotcazou@adacore.com>
13848
13849 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
13850 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
13851
bd323ce5
EB
138522008-06-12 Eric Botcazou <ebotcazou@adacore.com>
13853
13854 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
13855 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
13856
c34938a8
JJ
138572008-06-12 Jakub Jelinek <jakub@redhat.com>
13858
13859 PR middle-end/36506
13860 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
13861 reductions.
13862
b3778556
RG
138632008-06-12 Richard Guenther <rguenther@suse.de>
13864
13865 PR tree-optimization/36345
13866 * tree-flow.h (struct ptr_info_def): Align escape_mask,
13867 add memory_tag_needed flag.
13868 (may_alias_p): Declare.
13869 * tree-ssa-alias.c (may_alias_p): Export.
13870 (set_initial_properties): Use memory_tag_needed flag.
13871 (update_reference_counts): Likewise.
13872 (reset_alias_info): Reset memory_tag_needed flag.
13873 (create_name_tags): Check memory_tag_needed flag.
13874 (dump_points_to_info_for): Dump it.
13875 * tree-ssa-structalias.c (struct variable_info): Remove
13876 directly_dereferenced flag.
13877 (new_var_info): Do not initialize it.
13878 (process_constraint_1): Do not set it.
13879 (update_alias_info): Set is_dereferenced flag.
13880 (set_uids_in_ptset): Use may_alias_p.
13881 (set_used_smts): Check memory_tag_needed flag.
13882 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
13883 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
13884 memory_tag_needed flag.
13885 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
13886 from broken design.
13887
394a378c
KT
138882008-06-12 Kai Tietz <kai.tietz@onevision.com>
13889
ba03a350
UB
13890 * config/i386/i386.c (ix86_compute_frame_layout): Disable
13891 red zone for w64 abi.
394a378c
KT
13892 (ix86_expand_prologue): Likewise.
13893 (ix86_force_to_memory): Likewise.
13894 (ix86_free_from_memory): Likewise.
13895
567f0b17
EW
138962008-06-11 Edmar Wienskoski <edmar@freescale.com>
13897
13898 PR target/36425
13899 * config/rs6000/rs6000.c (rs6000_override_options): Set
ba03a350 13900 rs6000_isel conditionally to the absence of comand line override.
567f0b17
EW
13901 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
13902 Remove duplicate rs6000_isel setting.
13903 * config/rs6000/eabispe.h: Ditto.
13904
4653cae5
RG
139052008-06-11 Richard Guenther <rguenther@suse.de>
13906
13907 * alias.c (get_alias_set): Use the element alias-set for arrays.
13908 (record_component_aliases): For arrays and vectors do nothing.
13909 * c-common.c (strict_aliasing_warning): Handle the cases
13910 of alias set zero explicitly.
13911 * Makefile.in (dfp.o-warn): Add -Wno-error.
13912
8981c15b
JM
139132008-06-11 Joseph Myers <joseph@codesourcery.com>
13914
13915 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
13916 tune_32 tune_64.
13917 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
13918 tune_32 tune_64 to supported_defaults. Allow values not
13919 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
13920 x86_64. Do not override cpu_32 or cpu_64 values from target name.
13921 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
13922 with_cpu_64 to generic for 64-bit-supporting configurations, not
13923 with_cpu. Remove FIXMEs.
13924 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
13925 --with-arch-64, --with-tune-32, --with-tune-64): Document.
13926 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
13927 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
13928 arch_32 and arch_64.
13929
056c8fae 139302008-06-11 Eric Botcazou <ebotcazou@adacore.com>
ba03a350 13931 Olivier Hainque <hainque@adacore.com>
056c8fae
EB
13932
13933 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
13934 Use DECL_SIZE_UNIT to retrieve the size of the field.
13935
af06585a
JM
139362008-06-11 Joseph Myers <joseph@codesourcery.com>
13937
13938 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
13939 with function calls after declarations. Lay out
13940 neon_float_type_node before further use.
13941
fd73537b
RG
139422008-06-11 Richard Guenther <rguenther@suse.de>
13943
13944 * tree-flow.h (may_point_to_global_var): Declare.
13945 * tree-ssa-alias.c (may_point_to_global_var): New function.
13946 * tree-ssa-sink.c (is_hidden_global_store): Use it.
13947
6b7b0ba1
KH
139482008-06-10 Kazu Hirata <kazu@codesourcery.com>
13949
13950 * configure.ac: Teach that fido supports .debug_line.
13951 * configure: Regenerate.
13952
711b2510
TT
139532008-06-10 Tom Tromey <tromey@redhat.com>
13954
13955 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
13956 debug hook.
13957
bc6d4c3f
JM
139582008-06-10 Joseph Myers <joseph@codesourcery.com>
13959
13960 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
13961 (encode_decimal64, decode_decimal64, encode_decimal128,
13962 decode_decimal128): Reverse order of 32-bit parts of value if host
13963 and target endianness differ.
13964
0178d644 139652008-06-10 Vinodha Ramasamy <vinodha@google.com>
ba03a350
UB
13966
13967 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
0178d644
VR
13968 Avoid division by 0.
13969 (tree_mod_pow2_value_transform): Likewise.
13970 (tree_ic_transform): Likewise.
13971 (tree_stringops_transform): Likewise.
13972 (tree_mod_subtract_transform): Likewise.
13973 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
13974 (copy_edges_for_bb): Likewise.
13975 (initialize_cfun): Likewise.
13976
88b9490b
UB
139772008-06-10 Uros Bizjak <ubizjak@gmail.com>
13978
13979 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
13980 nonmemory_operand. Add "N" operand constraint.
13981 (*btsi): Ditto.
13982 (*jcc_btdi_mask_rex64): New instruction and split pattern.
13983 (*jcc_btsi_mask): Ditto.
13984 (*jcc_btsi_mask_1): Ditto.
13985
0627bfb4
JM
139862008-06-10 Joseph Myers <joseph@codesourcery.com>
13987
13988 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
13989 TYPE_CANONICAL for copied element type.
13990
33ee5810
UB
139912008-06-10 Uros Bizjak <ubizjak@gmail.com>
13992
13993 PR target/36473
13994 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
13995 Add m_CORE2 and m_GENERIC.
13996 * config/i386/predicates.md (bt_comparison_operator): New predicate.
13997 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
13998 (*btsi): Ditto.
13999 (*jcc_btdi_rex64): New instruction and split pattern.
14000 (*jcc_btsi): Ditto.
14001 (*jcc_btsi_1): Ditto.
14002 (*btsq): Fix Intel asm dialect operand order.
14003 (*btrq): Ditto.
14004 (*btcq): Ditto.
14005
3115c00d
AH
140062008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
14007
14008 PR middle-end/36447
22129589 14009 * simplify-rtx.c (simplify_subreg): Add check for shift count
3115c00d
AH
14010 greater than size.
14011
21dfc6dc
RS
140122008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
14013
14014 * doc/md.texi: Synchronize with later constraints.md change.
14015 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
14016 with a C implementation.
14017 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
14018 MFLO handling.
14019 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
14020 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
14021 when moving to and from MD_REGNUM.
14022 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
14023 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
14024 Handle byte and halfword moves.
14025 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
14026 separately.
14027 * config/mips/constraints.md (h): Turn into NO_REGS.
14028 (l, x): Update documentation.
14029 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
14030 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
14031 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
14032 (HILO): New mode iterator.
14033 (MOVE128): Add TI.
14034 (any_div): New code iterator.
14035 (u): Extend code attribute to div and udiv.
14036 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
14037 d_operand in the splitters. Remove redundant CONST_INT checks.
14038 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
14039 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
14040 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
14041 accordingly, using normal moves instead of unspecs to move LO into
14042 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
14043 (<u>mulsidi3): Handle expansion in C code.
14044 (<u>mulsidi3_32bit_internal): Rename to...
14045 (<u>mulsidi3_32bit): ...this.
14046 (<u>mulsidi3_32bit_r4000): Fix insn separator.
14047 (*<u>mulsidi3_64bit): Rename to...
14048 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
14049 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
14050 to set LO and HI to the multiplication result. Use a normal move
14051 for MFLO and an unspec for MFHI.
14052 (*<u>mulsidi3_64bit_parts): Replace with...
14053 (<u>mulsidi3_64bit_hilo): ...this new instruction.
14054 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
14055 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
14056 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
14057 instead of HI. Split the instruction into a separate multiplication
14058 and MFHI if !TARGET_FIX_R4000.
14059 (<su>muldi3_highpart): Likewise.
14060 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
14061 and the "=h" clobber.
14062 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
14063 (<u>mulditi3): New expander.
14064 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
14065 (madsi): Remove "=h" clobber.
14066 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
14067 Force the modulus result to be a GPR and split the instruction into
14068 a division followed by an MFHI after reload.
14069 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
14070 (*lea_high64): Use d_operand in the define_peephole2. Likewise
14071 the MIPS16 HIGH define_split.
14072 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
14073 of acc<->gpr moves to "multi".
14074 (*movdi_64bit): Replace the single "x" alternative with
14075 alternatives for moving into and out of "a".
14076 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
14077 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
14078 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
14079 Use d_operand in the splitters. Remove redundant CONST_INT checks.
14080 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
14081 (movti): New expander.
14082 (*movti, *movti_mips16): New insns.
14083 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
14084 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
14085 (mthi<GPR:mode>_<HILO:mode>): Likewise.
14086 * config/mips/predicates.md (fpr_operand): Delete.
14087 (d_operand): New predicate.
14088
0e462a95
MM
140892008-06-09 Michael Meissner <michael.meissner@amd.com>
14090
14091 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
14092 failure on some Bourne shells.
14093 (x86_64-*-*): Ditto.
14094
d3c1d2a0
KT
140952008-06-09 Kai Tietz <kai.tietz@onevision.com>
14096
14097 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
14098
2bd58b1b
EB
140992008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
14100
14101 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
14102 (sparc-sun-solaris2*): Likewise.
14103
2c2b1710
AC
141042008-06-09 Arnaud Charlet <charlet@adacore.com
14105
14106 * doc/install.texi: Update requirements to build the Ada compiler.
14107
fed6152d
SB
141082008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
14109
14110 * df-scan.c (struct df_scan_problem_data): Remove the
14111 mw_link_pool alloc pool.
14112 (df_scan_free_internal): Don't free it.
14113 (df_scan_alloc): Don't allocate it.
14114 * df.h (struct df_link): Update comment.
14115
c427220a
NS
141162008-06-08 Nathan Sidwell <nathan@codesourcery.com>
14117
14118 * except.h: Correct checks for when SJLJ exceptions must be used.
14119
cf0fd618
MLI
141202008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14121
14122 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
14123 default.
22129589 14124
f8c33439
JM
141252008-06-08 Joseph Myers <joseph@codesourcery.com>
14126
14127 PR tree-optimization/36218
14128 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
14129 configure for the build system.
14130 (BUILD_LDFLAGS): Define.
14131 * configure: Regenerate.
14132 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
14133
91635d08
AS
141342008-07-08 Anatoly Sokolov <aesok@post.ru>
14135
14136 PR target/36424
14137 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
22129589
AS
14138 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
14139 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
91635d08 14140
ae06ac00
DS
141412008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
14142
14143 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
14144
cd985f66
JM
141452008-06-07 Joseph Myers <joseph@codesourcery.com>
14146
14147 * config.gcc (Obsolete configurations): Remove list of
14148 configurations.
14149 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
14150 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
14151 targets matched by those patterns.
14152 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
14153 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
14154 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
14155 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
14156 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
14157 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
14158 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
14159 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
14160 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
14161 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
14162 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
14163 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
14164 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
14165 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
14166 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
14167 Make code for Solaris 7 and greater unconditional for Solaris.
14168 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
14169 Remove --with-* handling.
14170 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
14171 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
14172 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
14173 LINK_OS_WINDISS_SPEC): Remove.
14174 * config/rs6000/sysv4.opt (mwindiss): Remove.
14175 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
14176 * configure: Regenerate.
14177 * doc/cpp.texi: Don't mention BeOS.
14178 * doc/extend.texi (interrupt): Don't mention MS1.
14179 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
14180 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
14181 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
14182 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
14183 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
14184 Remove.
14185 * doc/invoke.texi (MT Options): Remove.
14186 (-mwindiss): Remove.
14187 (CRIS Options): Remove cris-axis-aout references.
14188 (HPPA Options): Don't mention hppa1.1-*-pro.
14189 * doc/md.texi: (MorphoTech family): Remove.
14190 * libgcc2.c: Don't handle UWIN.
14191 * config/alpha/t-unicosmk: Remove.
14192 * config/alpha/unicosmk.h: Remove.
14193 * config/arm/kaos-arm.h: Remove.
14194 * config/arm/kaos-strongarm.h: Remove.
14195 * config/arm/strongarm-coff.h: Remove.
14196 * config/arm/strongarm-elf.h: Remove.
14197 * config/arm/strongarm-pe.h: Remove.
14198 * config/arm/t-strongarm-pe: Remove.
14199 * config/arm/t-xscale-coff: Remove.
14200 * config/arm/t-xscale-elf: Remove.
14201 * config/arm/xscale-coff.h: Remove.
14202 * config/arm/xscale-elf.h: Remove.
14203 * config/chorus.h: Remove.
14204 * config/cris/aout.h: Remove.
14205 * config/cris/aout.opt: Remove.
14206 * config/cris/t-aout: Remove.
14207 * config/i386/beos-elf.h: Remove.
14208 * config/i386/kaos-i386.h: Remove.
14209 * config/i386/ptx4-i.h: Remove.
14210 * config/i386/sco5.h: Remove.
14211 * config/i386/sco5.opt: Remove.
14212 * config/i386/sysv4-cpp.h: Remove.
14213 * config/i386/sysv5.h: Remove.
14214 * config/i386/t-beos: Remove.
14215 * config/i386/t-sco5: Remove.
14216 * config/i386/t-uwin: Remove.
14217 * config/i386/uwin.asm: Remove.
14218 * config/i386/uwin.h: Remove.
14219 * config/kaos.h: Remove.
14220 * config/mips/windiss.h: Remove.
14221 * config/mt: Remove directory.
14222 * config/pa/pa-osf.h: Remove.
14223 * config/pa/pa-pro-end.h: Remove.
14224 * config/pa/t-pro: Remove.
14225 * config/ptx4.h: Remove.
14226 * config/rs6000/beos.h: Remove.
14227 * config/rs6000/kaos-ppc.h: Remove.
14228 * config/rs6000/t-beos: Remove.
14229 * config/rs6000/windiss.h: Remove.
14230 * config/sh/kaos-sh.h: Remove.
14231 * config/sol2-6.h: Remove.
14232 * config/sparc/sol26-sld.h: Remove.
14233 * config/sparc/sysv4-only.h: Remove.
14234 * config/vax/bsd.h: Remove.
14235 * config/vax/t-memfuncs: Remove.
14236 * config/vax/ultrix.h: Remove.
14237 * config/vax/vaxv.h: Remove.
14238 * config/windiss.h: Remove.
14239
f3e10a2b 142402008-06-06 Uros Bizjak <ubizjak@gmail.com>
88057dc8
UB
14241
14242 PR rtl-optimization/36438
14243 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
14244 for vector shifts with constant scalar shift operands.
14245
d0ae31b0
SM
142462008-06-06 Sandip Matte <sandip@rmicorp.com>
14247
14248 * doc/invoke.texi: Document -march=xlr.
14249 * config/mips/xlr.md: New file.
14250 * config/mips/mips.md: Include it.
14251 (cpu): Add "xlr".
14252 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
14253 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
14254 (mips_rtx_cost_data): Likewise.
14255
619fe064
NF
142562008-06-06 Nathan Froyd <froydnj@codesourcery.com>
14257
14258 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
14259 PRE_INC and PRE_DEC cases.
14260
67339062
JJ
142612008-06-06 Jakub Jelinek <jakub@redhat.com>
14262
c6eb958c
JJ
14263 PR rtl-optimization/36419
14264 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
14265 the emitting jump insn.
14266
67339062
JJ
14267 PR target/36362
14268 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
14269 is not bool, boolify the whole *expr_p and convert to the desired type.
14270
a68ab351
JJ
142712008-06-06 Jakub Jelinek <jakub@redhat.com>
14272
88057dc8 14273 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
a68ab351
JJ
14274 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
14275 Add omp_private_outer_ref hook, add another argument to
14276 omp_clause_default_ctor hook.
14277 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
14278 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
14279 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
14280 hook_tree_tree_tree_tree_null.
14281 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
14282 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
14283 * hooks.c (hook_tree_tree_tree_tree_null): New function.
14284 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
14285 * tree.def (OMP_TASK): New tree code.
14286 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
14287 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
14288 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
14289 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
14290 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
14291 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
14292 OMP_CLAUSE_COLLAPSE_EXPR): Define.
14293 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
14294 (OMP_DIRECTIVE_P): Add OMP_TASK.
14295 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
14296 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
14297 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
14298 and OMP_CLAUSE_UNTIED entries.
14299 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
14300 num_ops to 2.
14301 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14302 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
14303 * tree-pretty-print.c (dump_omp_clause): Handle
14304 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
14305 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
14306 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
14307 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
14308 warning about unsigned iterators. Change decl/init/cond/incr
14309 arguments to TREE_VECs, check arguments for all collapsed loops.
14310 (c_finish_omp_taskwait): New function.
14311 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
14312 ws_clauses.
14313 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
14314 default_function_array_conversion on init. Add par_clauses argument.
14315 If decl is present in parallel's lastprivate clause, change it to
14316 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
14317 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
14318 collapse count in clauses.
14319 (c_parser_omp_for, c_parser_omp_parallel): Adjust
14320 c_parser_omp_for_loop callers.
14321 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
14322 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
14323 (c_parser_omp_clause_name): Handle collapse and untied clauses.
14324 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
14325 functions.
14326 (c_parser_omp_clause_schedule): Handle schedule(auto).
14327 Include correct location in the error message.
14328 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
14329 and PRAGMA_OMP_CLAUSE_UNTIED.
14330 (OMP_TASK_CLAUSE_MASK): Define.
14331 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
14332 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
14333 * tree-nested.c (convert_nonlocal_omp_clauses,
14334 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
14335 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
14336 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14337 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
14338 OMP_CLAUSE_DECL.
14339 (conver_nonlocal_reference, convert_local_reference,
14340 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
14341 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
14342 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
14343 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
14344 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
14345 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
14346 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
14347 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
14348 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
14349 OMP_CLAUSE_UNTIED.
14350 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
14351 * c-common.h (c_finish_omp_taskwait): New prototype.
14352 * gimple-low.c (lower_stmt): Handle OMP_TASK.
14353 * tree-parloops.c (create_parallel_loop): Create 1 entry
14354 vectors for OMP_FOR_{INIT,COND,INCR}.
14355 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
14356 (make_edges): Handle OMP_TASK.
14357 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
14358 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14359 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
14360 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
14361 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
14362 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
14363 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
14364 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
14365 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
14366 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
14367 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
14368 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
14369 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
14370 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
14371 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
14372 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
14373 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
14374 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
14375 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
14376 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
14377 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
14378 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
14379 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
14380 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
14381 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
14382 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
14383 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
14384 original iterator is present in lastprivate clause or if
14385 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
14386 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14387 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
14388 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
14389 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
14390 if it is set, lookup var in outer contexts too. Handle
14391 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
14392 to be implicitly determined firstprivate for task regions.
14393 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
14394 if it is set, lookup var in outer contexts too. Set
14395 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
14396 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
14397 OMP_CLAUSE_UNTIED. Take region_type as last argument
14398 instead of in_parallel and in_combined_parallel.
14399 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
14400 Adjust callers.
14401 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
88057dc8 14402 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
a68ab351
JJ
14403 (new_omp_context): Set default_kind to
14404 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
14405 (omp_region_type): New enum.
14406 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
14407 fields, add region_type.
14408 (new_omp_context): Take region_type as argument instead of is_parallel
14409 and is_combined_parallel.
14410 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
14411 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
14412 ctx->is_combined_parallel checks.
14413 (gimplify_omp_task): New function.
14414 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
14415 OMP_CLAUSE_UNTIED.
14416 * omp-low.c (extract_omp_for_data): Use schedule(static)
14417 for schedule(auto). Handle pointer and unsigned iterators.
14418 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
14419 Add loops argument. Extract data for collapsed OMP_FOR loops.
14420 (expand_parallel_call): Assert sched_kind isn't auto,
14421 map runtime schedule to index 3.
14422 (struct omp_for_data_loop): New type.
14423 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
14424 Add loop, loops, collapse and iter_type fields.
14425 (workshare_safe_to_combine_p): Disallow combined for if
14426 iter_type is unsigned long long. Don't combine collapse > 1 loops
14427 unless all bounds and steps are constant. Adjust extract_omp_for_data
14428 caller.
14429 (expand_omp_for_generic): Handle pointer, unsigned and long long
14430 iterators. Handle collapsed OMP_FOR loops. Adjust
14431 for struct omp_for_data changes. If libgomp function doesn't return
14432 boolean_type_node, add comparison of the return value with 0.
14433 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
14434 pointer, unsigned and long long iterators. Adjust for struct
14435 omp_for_data changes.
14436 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
14437 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
14438 unsigned long long. Allocate loops array, pass it to
14439 extract_omp_for_data. For collapse > 1 loops use always
14440 expand_omp_for_generic.
14441 (omp_context): Add sfield_map and srecord_type fields.
14442 (is_task_ctx, lookup_sfield): New functions.
14443 (use_pointer_for_field): Use is_task_ctx helper. Change first
14444 argument's type from const_tree to tree. Clarify comment.
14445 In OMP_TASK disallow copy-in/out sharing.
14446 (build_sender_ref): Call lookup_sfield instead of lookup_field.
14447 (install_var_field): Add mask argument. Populate both record_type
14448 and srecord_type if needed.
14449 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
14450 in srecord_type.
14451 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
14452 and DECL_FIELD_OFFSET.
14453 (scan_sharing_clauses): Adjust install_var_field callers. For
14454 firstprivate clauses on explicit tasks allocate the var by value in
14455 record_type unconditionally, rather than by reference.
14456 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
14457 Use is_taskreg_ctx instead of is_parallel_ctx.
14458 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
14459 (create_omp_child_function_name): Add task_copy argument, use
14460 *_omp_cpyfn* names if it is true.
14461 (create_omp_child_function): Add task_copy argument, if true create
14462 *_omp_cpyfn* helper function.
14463 (scan_omp_parallel): Adjust create_omp_child_function callers.
14464 Rename parallel_nesting_level to taskreg_nesting_level.
14465 (scan_omp_task): New function.
14466 (lower_rec_input_clauses): Don't run constructors for firstprivate
22129589 14467 explicit task vars which are initialized by *_omp_cpyfn*.
a68ab351
JJ
14468 Pass outer var ref to omp_clause_default_ctor hook if
14469 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
14470 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
14471 OMP_CLAUSE_REDUCTION_INIT.
14472 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
14473 avoid duplicate setting of fields. Handle
14474 OMP_CLAUSE_PRIVATE_OUTER_REF.
14475 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
14476 copy-out if TREE_READONLY, only copy-in.
14477 (expand_task_copyfn): New function.
14478 (expand_task_call): New function.
14479 (struct omp_taskcopy_context): New type.
14480 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
14481 New functions.
14482 (lower_omp_parallel): Rename to...
14483 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
14484 Call create_task_copyfn if srecord_type is needed. Adjust
14485 sender_decl type.
14486 (task_shared_vars): New variable.
14487 (check_omp_nesting_restrictions): Warn if work-sharing,
14488 barrier, master or ordered region is closely nested inside OMP_TASK.
14489 Add warnings for barrier if closely nested inside of work-sharing,
14490 ordered, or master region.
14491 (scan_omp_1): Call check_omp_nesting_restrictions even for
14492 GOMP_barrier calls. Rename parallel_nesting_level to
14493 taskreg_nesting_level. Handle OMP_TASK.
14494 (lower_lastprivate_clauses): Even if some lastprivate is found on a
14495 work-sharing construct, continue looking for them on parent parallel
14496 construct.
14497 (lower_omp_for_lastprivate): Add lastprivate clauses
14498 to the beginning of dlist rather than end. Adjust for struct
14499 omp_for_data changes.
14500 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
14501 not after it. Handle collapsed OMP_FOR loops, adjust for
88057dc8 14502 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
a68ab351
JJ
14503 (get_ws_args_for): Adjust extract_omp_for_data caller.
14504 (scan_omp_for): Handle collapsed OMP_FOR
14505 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
14506 (lower_omp_single_simple): If libgomp function doesn't return
14507 boolean_type_node, add comparison of the return value with 0.
14508 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
14509 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
14510 (parallel_nesting_level): Rename to...
14511 (taskreg_nesting_level): ... this.
14512 (is_taskreg_ctx): New function.
14513 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
14514 of is_parallel_ctx.
14515 (execute_lower_omp): Rename parallel_nesting_level to
14516 taskreg_nesting_level.
14517 (expand_omp_parallel): Rename to...
14518 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
14519 Call omp_task_call for OMP_TASK regions.
14520 (expand_omp): Adjust caller, handle OMP_TASK.
14521 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
14522
14523 * bitmap.c (bitmap_default_obstack_depth): New variable.
14524 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
14525 if argument is NULL and bitmap_default_obstack is already initialized.
14526 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
14527 at the end.
14528 * matrix-reorg.c (matrix_reorg): Likewise.
14529
c4fe74e0
UB
145302008-06-06 Uros Bizjak <ubizjak@gmail.com>
14531
14532 * config/i386/i386.md (*indirect_jump): Macroize using P
14533 mode iterator. Remove !TARGET_64BIT from insn constraints.
14534 (*tablejump_1): Ditto.
14535 (*indirect_jump_rex64): Remove insn pattern.
14536 (*tablejump_1_rex64): Ditto.
14537 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
14538 and eh_return_si insn patterns.
14539
9f09b13f
RG
145402008-06-06 Richard Guenther <rguenther@suse.de>
14541
14542 * tree-ssa-structalias.c (merge_smts_into): Remove.
14543 (find_what_p_points_to): Do not bother to compute the
14544 points-to set for pt_anything pointers.
14545 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
14546 for pt_anything pointers is ok.
14547
9fbe48c0
JH
145482008-06-06 Jan Hubicka <jh@suse.cz>
14549
14550 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
14551
fa10beec
RW
145522008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14553
14554 * cgraph.c: Fix typos in comments.
14555 (cgraph_availability_names): Fix string typo.
14556 * fold-const.c: Fix typos in comments.
14557 (fold_binary): Fix typo in warning.
14558 * genautomata.c: Fix typos in comments.
14559 (check_presence_pattern_sets): Fix typo in local variable.
14560 (output_description): Fix typo in output.
14561 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
14562 * hwint.h: Likewise.
14563 * matrix-reorg.c (check_allocation_function): Likewise.
14564 * omega.c (smooth_weird_equations): Likewise.
14565 * auto-inc-dec.c: Fix typos in comments.
14566 * bb-reorder.c: Likewise.
14567 * builtins.c: Likewise.
14568 * c-common.c: Likewise.
14569 * c-cppbuiltin.c: Likewise.
14570 * c-parser.c: Likewise.
14571 * c-pretty-print.c: Likewise.
14572 * cfgcleanup.c: Likewise.
14573 * cfgexpand.c: Likewise.
14574 * cfghooks.c: Likewise.
14575 * cfglayout.c: Likewise.
14576 * cfgloopmanip.c: Likewise.
14577 * cgraphunit.c: Likewise.
14578 * coverage.c: Likewise.
14579 * dbxout.c: Likewise.
14580 * df-byte-scan.c: Likewise.
14581 * df-core.c: Likewise.
14582 * df-problems.c: Likewise.
14583 * df-scan.c: Likewise.
14584 * dfp.c: Likewise.
14585 * dominance.c: Likewise.
14586 * domwalk.c: Likewise.
14587 * dse.c: Likewise.
14588 * dwarf2out.c: Likewise.
14589 * emit-rtl.c: Likewise.
14590 * et-forest.c: Likewise.
14591 * function.c: Likewise.
14592 * function.h: Likewise.
14593 * gcc.c: Likewise.
14594 * gcov-io.c: Likewise.
14595 * gcov.c: Likewise.
14596 * gcse.c: Likewise.
14597 * genattrtab.c: Likewise.
14598 * ggc-page.c: Likewise.
14599 * gimplify.c: Likewise.
14600 * gthr-lynx.h: Likewise.
14601 * haifa-sched.c: Likewise.
14602 * ipa-cp.c: Likewise.
14603 * ipa-inline.c: Likewise.
14604 * ipa-prop.h: Likewise.
14605 * ipa-pure-const.c: Likewise.
14606 * ipa-struct-reorg.c: Likewise.
14607 * ipa-struct-reorg.h: Likewise.
14608 * ipa-type-escape.c: Likewise.
14609 * ipa.c: Likewise.
14610 * loop-doloop.c: Likewise.
14611 * mips-tfile.c: Likewise.
14612 * mkmap-flat.awk: Likewise.
14613 * mkmap-symver.awk: Likewise.
14614 * modulo-sched.c: Likewise.
14615 * omp-low.c: Likewise.
14616 * optabs.c: Likewise.
14617 * optabs.h: Likewise.
14618 * opts.c: Likewise.
14619 * passes.c: Likewise.
14620 * postreload-gcse.c: Likewise.
14621 * postreload.c: Likewise.
14622 * predict.c: Likewise.
14623 * pretty-print.h: Likewise.
14624 * profile.c: Likewise.
14625 * protoize.c: Likewise.
14626 * ra-conflict.c: Likewise.
14627 * real.c: Likewise.
14628 * recog.c: Likewise.
14629 * regclass.c: Likewise.
14630 * regs.h: Likewise.
14631 * reload.c: Likewise.
14632 * rtl-error.c: Likewise.
14633 * rtlanal.c: Likewise.
14634 * scan.h: Likewise.
14635 * sched-rgn.c: Likewise.
14636 * see.c: Likewise.
14637 * stmt.c: Likewise.
14638 * target.h: Likewise.
14639 * tree-dfa.c: Likewise.
14640 * tree-eh.c: Likewise.
14641 * tree-flow-inline.h: Likewise.
14642 * tree-inline.c: Likewise.
14643 * tree-into-ssa.c: Likewise.
14644 * tree-loop-distribution.c: Likewise.
14645 * tree-nested.c: Likewise.
14646 * tree-parloops.c: Likewise.
14647 * tree-pass.h: Likewise.
14648 * tree-pretty-print.c: Likewise.
14649 * tree-profile.c: Likewise.
14650 * tree-scalar-evolution.c: Likewise.
14651 * tree-sra.c: Likewise.
14652 * tree-ssa-alias-warnings.c: Likewise.
14653 * tree-ssa-ccp.c: Likewise.
14654 * tree-ssa-coalesce.c: Likewise.
14655 * tree-ssa-dom.c: Likewise.
14656 * tree-ssa-dse.c: Likewise.
14657 * tree-ssa-forwprop.c: Likewise.
14658 * tree-ssa-live.c: Likewise.
14659 * tree-ssa-live.h: Likewise.
14660 * tree-ssa-loop-im.c: Likewise.
14661 * tree-ssa-loop-ivopts.c: Likewise.
14662 * tree-ssa-loop-niter.c: Likewise.
14663 * tree-ssa-loop-prefetch.c: Likewise.
14664 * tree-ssa-phiopt.c: Likewise.
14665 * tree-ssa-phiprop.c: Likewise.
14666 * tree-ssa-sccvn.c: Likewise.
14667 * tree-ssa-ter.c: Likewise.
14668 * tree-ssa-threadupdate.c: Likewise.
14669 * tree-ssa.c: Likewise.
14670 * tree-vect-analyze.c: Likewise.
14671 * tree-vect-transform.c: Likewise.
14672 * tree-vectorizer.c: Likewise.
14673 * tree-vn.c: Likewise.
14674 * tree-vrp.c: Likewise.
14675 * tree.c: Likewise.
14676 * tree.def: Likewise.
14677 * tree.h: Likewise.
14678 * unwind-dw2-fde.c: Likewise.
14679 * unwind.inc: Likewise.
14680 * value-prof.c: Likewise.
14681 * vmsdbgout.c: Likewise.
14682
6bf2f78a
DE
146832008-06-05 David Edelsohn <edelsohn@gnu.org>
14684
14685 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
14686 always place FP constants in the TOC for TARGET_POWERPC64.
14687 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
14688
4f011e1e
JM
146892008-06-05 Joseph Myers <joseph@codesourcery.com>
14690
14691 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
14692 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
14693 enable for TARGET_E500_DOUBLE.
14694 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
14695 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
14696 floating-point modes like integer modes for E500 double.
14697 (rs6000_legitimate_offset_address_p): Likewise.
14698 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
14699 addressing for DDmode for E500 double.
14700 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
14701 modes as using 64-bits of registers for E500 double.
14702 (spe_build_register_parallel): Do not handle DDmode or TDmode.
14703 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
14704 specially for E500 double.
14705 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
14706 TDmode for E500 double.
14707 (rs6000_gimplify_va_arg): Only handle SDmode in registers
14708 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
14709 (rs6000_split_multireg_move): Do not handle TDmode specially for
14710 E500 double.
14711 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
14712 using 64-bit registers for E500 double.
14713 (emit_frame_save): Do not handle DDmode specially for E500 double.
14714 (gen_frame_mem_offset): Likewise.
14715 (rs6000_function_value): Do not call spe_build_register_parallel
14716 for DDmode or TDmode.
14717 (rs6000_libcall_value): Likewise.
14718 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
14719 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
14720 for E500 double.
14721
bd7415db
L
147222008-06-04 H.J. Lu <hongjiu.lu@intel.com>
14723
14724 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
14725 in comments.
14726
9e8c2a98
JG
147272008-06-04 Junjie Gu <jgu@tensilica.com>
14728
14729 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
14730 comparison for frame pointers.
14731
28734c39
AH
147322008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
14733
14734 PR target/27386
88057dc8 14735 * config/avr/avr.h (PUSH_ROUNDING): Remove.
28734c39 14736
515e442a
AH
147372008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
14738
14739 PR target/30243
14740 * builtins.c (expand_builtin_signbit): Don't take lowpart when
22129589 14741 register is already smaller or equal to required mode.
515e442a 14742
c2699190
XDL
147432008-06-04 Xinliang David Li <davidxl@google.com>
14744
22129589 14745 * tree-call-cdce.c: New file.
c2699190
XDL
14746 (cond_dead_built_in_calls): New static variable.
14747 (input_domain): New struct.
14748 (check_pow): New function.
14749 (check_builtin_call): Ditto.
14750 (check_target_format): Ditto.
14751 (is_call_dce_candidate): Ditto.
14752 (gen_one_condition): Ditto.
14753 (gen_conditions_for_domain): Ditto.
14754 (get_domain): Ditto.
14755 (gen_conditions_for_pow_cst_base): Ditto.
14756 (gen_conditions_for_pow_int_base): Ditto.
14757 (gen_conditions_for_pow): Ditto.
14758 (get_no_error_domain): Ditto.
14759 (gen_shrink_wrap_conditions): Ditto.
14760 (shrink_wrap_one_built_in_call): Ditto.
14761 (shink_wrap_conditional_dead_built_in_calls): Ditto.
14762 (tree_call_cdce): Ditto.
14763 (gate_call_cdce): Ditto.
14764 (pass_call_cdce): New gimple pass.
14765 * passes.c: (init_optimization_passes): New pass.
14766 * tree-pass.h: New pass declaration.
14767 * opts.c (decode_options): New flag setting.
14768 * common.opt: Add -ftree-builtin-call-dce flag.
14769 * Makefile.in: Add new source file.
14770 * tempvar.def: New tv_id.
14771 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
14772
7946578b
RG
147732008-06-04 Richard Guenther <rguenther@suse.de>
14774
88057dc8 14775 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
7946578b
RG
14776 (is_call_clobbered): Always check var_ann->call_clobbered.
14777 (mark_call_clobbered): Always set var_ann->call_clobbered.
14778 (clear_call_clobbered): Always clear var_ann->call_clobbered.
14779 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
14780 (reset_alias_info): Clear call clobbering info on MTAGs and
14781 globals as well.
14782 (set_pt_anything): Set pt_global_mem.
14783 (create_tag_raw): Adjust comment.
14784 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
14785
884316ff 147862008-06-04 Joseph Myers <joseph@codesourcery.com>
88057dc8 14787 Maxim Kuvyrkov <maxim@codesourcery.com>
884316ff
JM
14788
14789 * config/m68k/m68k.opt (mxgot): New option.
14790 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
14791 (m68k_output_addr_const_extra): New.
14792 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
14793 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
14794 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
14795 * doc/invoke.texi (M680x0 Options): Document -mxgot.
14796
0e19bf42
RG
147972008-06-04 Richard Guenther <rguenther@suse.de>
14798
14799 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
14800 negative or non-representable offsets.
14801
999d3194
L
148022008-06-03 H.J. Lu <hongjiu.lu@intel.com>
14803
88057dc8 14804 * config/i386/i386.c (ix86_gen_leave): New.
999d3194
L
14805 (ix86_gen_pop1): Likewise.
14806 (ix86_gen_add3): Likewise.
14807 (ix86_gen_sub3): Likewise.
14808 (ix86_gen_sub3_carry): Likewise.
14809 (ix86_gen_one_cmpl2): Likewise.
14810 (ix86_gen_monitor): Likewise.
14811 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
14812 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
14813 ix86_gen_one_cmpl2 and ix86_gen_monitor.
14814 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
14815 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
14816 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
14817 (ix86_expand_epilogue): Updated.
14818 (print_operand): Handle integer register operand for 'z'.
14819 (ix86_expand_strlensi_unroll_1): Likewise.
14820 (ix86_expand_strlen): Likewise.
14821 (ix86_expand_builtin): Likewise.
14822 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
14823 mov{q}/mov{l} and add{q}/add{l}.
14824
90b48492
KT
148252008-06-03 Kai Tietz <kai.tietz@onevision.com>
14826
d1abda32
KT
14827 * config/i386/i386.md (P): New mode iterator.
14828 (SFmode push_operand splitter): Macroize DImode and SImode pushes
14829 using P mode iterator.
458e816d
KT
14830 (DFmode push_operand splitter): Ditto.
14831 (XFmode push_operand splitter): Ditto.
d1abda32
KT
14832 (DFmode float_extend SFmode push_operand splitter): Ditto.
14833 (XFmode float_extend SFmode push_operand splitter): Do not generate
458e816d
KT
14834 SImode pushes for 64bit target. Macroize Dimode and SImode
14835 pushes using P mode iterator.
14836 (XFmode float_extend DFmode push_operand splitter): Ditto.
90b48492 14837
8a762fcb
KT
148382008-06-03 Kai Tietz <kai.tietz@onevision.com>
14839
14840 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
88057dc8 14841 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
8a762fcb
KT
14842 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
14843 return type to int.
14844 (ix86_call_abi_override): Remove check for call_used_regs.
14845
db736800
RG
148462008-06-03 Richard Guenther <rguenther@suse.de>
14847
14848 * tree-ssa-structalias.c (find_func_aliases): Add constraints
14849 for the lhs of calls if the return type contains pointers.
14850
7c800926
KT
148512008-06-03 Kai Tietz <kai.tietz@onevision.com>
14852
14853 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
14854 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
88057dc8 14855 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
7c800926
KT
14856 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
14857 of cfun and DEFAULT_ABI to deceide abi mode.
14858 (DEFAULT_ABI): New.
14859 (REG_PARM_STACK_SPACE): Removed.
14860 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
14861 (STACK_BOUNDARY): Use default target to deceide stack boundary.
14862 * config/i386/i386-protos.h (ix86_cfun_abi): New.
14863 (ix86_function_abi): Likewise.
14864 (ix86_function_type_abi): Likewise.
14865 (ix86_call_abi_override): Likewise.
14866 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
14867 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
14868 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
14869 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
14870 specific defines.
14871 (X86_64_REGPARM_MAX): New.
14872 (X86_64_SSE_REGPARM_MAX): New.
14873 (X64_REGPARM_MAX): New.
14874 (X64_SSE_REGPARM_MAX): New.
14875 (X86_32_REGPARM_MAX): New.
14876 (X86_32_SSE_REGPARM_MAX): New.
14877 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
14878 (ix86_function_regparm): Handle user calling abi.
14879 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
14880 by DEFAULT_ABI versus SYSV_ABI check.
14881 (ix86_reg_parm_stack_space): New.
14882 (ix86_function_type_abi): New.
14883 (ix86_call_abi_override): New.
14884 (ix86_function_abi): New.
14885 (ix86_cfun_abi): New.
14886 (init_cumulative_args): Call abi specific initialization.
14887 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
14888 (function_arg_64): Extend SSE_REGPARM_MAX check.
14889 (function_arg (): Remove TARGET_64BIT_MS_ABI.
14890 (ix86_pass_by_reference): Likewise.
14891 (ix86_function_value_regno_p): Likewise.
14892 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
14893 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
14894 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
14895 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
14896 (setup_incoming_varargs_64): Adjust regparm for call abi.
14897 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
14898 (ix86_va_start): Likewise.
14899 (ix86_gimplify_va_arg): Likewise.
14900 (ix86_expand_prologue): Likewise.
14901 (output_pic_addr_const): Likewise.
14902 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
14903 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
14904 (x86_output_mi_thunk): Likewise.
14905 (x86_function_profiler): Likewise.
14906 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
14907 (SYSV_ABI, MS_ABI): New constants.
14908 (DEFAULT_ABI): New.
14909 (init_regs): Add prototype of function in regclass.c file.
14910 (OVERRIDE_ABI_FORMAT): New.
14911 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
14912 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
14913 (OUTGOING_REG_PARM_STACK_SPACE): New.
14914 (ix86_reg_parm_stack_space): New prototype.
14915 (CUMULATIVE_ARGS): Add call_abi member.
14916 (machine_function): Add call_abi member.
88057dc8
UB
14917 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
14918 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
7c800926 14919
22129589 149202008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
1bf29643
AH
14921
14922 PR target/34879
14923 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
14924 (avr_builtin_setjmp_frame_value): New function.
14925 * config/avr/avr.md (nonlocal_goto_receiver): Define.
14926 (nonlocal_goto): Define.
14927
de9f679d
RS
149282008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
14929
14930 * config/mips/mips.c (mips_emit_loadgp): Return early if
14931 there is nothing do to, otherwise emit a blockage if
14932 !TARGET_EXPLICIT_RELOCS || crtl->profile.
14933 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
14934
236ec2d7
RW
149352008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14936
14937 * configure.ac: Drop unneeded backslash ending up in config.in.
14938 * acinclude.m4: Likewise.
14939 * config.in: Regenerate.
14940
3250d724
JH
149412008-05-26 Jan Hubicka <jh@suse.cz>
14942
14943 * predict.c (maybe_hot_frequency_p): Break out of...
14944 (maybe_hot_bb_p): ... here.
14945 (maybe_hot_edge_p): New.
14946 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
14947 * basic-block.h (maybe_hot_edge_p): Declare.
14948
69002843
UB
149492008-05-31 Uros Bizjak <ubizjak@gmail.com>
14950
14951 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
14952 (*cmpfp_<mode>_cc): Ditto.
14953 (*fp_jcc_8<mode>_387): Ditto.
14954 (*fop_<MODEF:mode>_2_i387): Ditto.
14955 (*fop_<MODEF:mode>_3_i387): Ditto.
14956 (*fop_xf_2_i387): Ditto.
14957 (*fop_xf_3_i387): Ditto.
14958
5f9e56b3
TB
149592008-06-02 Tomas Bily <tbily@suse.cz>
14960
69002843 14961 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5f9e56b3 14962
fa21a761
RS
149632008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
14964
14965 * config/mips/mips.c (mips_valid_offset_p): New function.
14966 (mips_valid_lo_sum_p): Likewise.
14967 (mips_classify_address): Use them.
14968 (mips_force_address): New function.
14969 (mips_legitimize_address): Use it.
14970 * config/mips/mips.md (MOVE128): New mode iterator.
14971 (movtf): Require TARGET_64BIT. Remove empty strings.
14972 (*movtf_internal): Rename to...
14973 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
14974 of "R" and use {,fp}{load,store} attributes instead of "multi".
14975 Use a separate define_split.
14976 (*movtf_mips16): New pattern.
14977
2f7e2abb
RS
149782008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
14979
14980 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
14981 * config/mips/mips.c (mips_expand_before_return): New function.
14982 (mips_expand_epilogue): Call it.
14983 * config/mips/mips.md (return): Turn into a define_expand.
14984 (*return): New insn.
14985
c41c1387
RS
149862008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
14987
14988 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
14989 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
14990 functions. Do not emit uses and clobbers of CONCATs; individually
14991 use and clobber their operands.
14992 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
14993 gen_clobber, emit_use and gen_use.
14994 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
14995 (expand_builtin_return): Likewise.
14996 * cfgbuild.c (count_basic_blocks): Likewise.
14997 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
14998 * explow.c (emit_stack_restore): Likewise.
14999 * expmed.c (extract_bit_field_1): Likewise.
15000 * expr.c (convert_move, emit_move_complex_parts): Likewise.
15001 (emit_move_multi_word, store_constructor): Likewise.
15002 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
15003 (thread_prologue_and_epilogue_insns): Likewise.
15004 * lower-subreg.c (resolve_simple_move): Likewise.
15005 * optabs.c (widen_operand, expand_binop): Likewise.
15006 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
15007 * reload.c (find_reloads): Likewise.
15008 * reload1.c (eliminate_regs_in_insn): Likewise.
15009 * stmt.c (expand_nl_goto_receiver): Likewise.
15010 * config/alpha/alpha.md (builtin_longjmp): Likewise.
15011 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
15012 * config/arm/arm.c (arm_load_pic_register): Likewise.
15013 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
15014 * config/arm/arm.md (untyped_return): Likewise.
15015 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
15016 * config/avr/avr.c (expand_prologue): Likewise.
15017 * config/bfin/bfin.c (do_unlink): Likewise.
15018 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
15019 * config/cris/cris.c (cris_expand_prologue): Likewise.
15020 * config/darwin.c (machopic_indirect_data_reference): Likewise.
15021 (machopic_legitimize_pic_address): Likewise.
15022 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
15023 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
15024 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
15025 (ix86_expand_convert_uns_didf_sse): Likewise.
15026 (ix86_expand_vector_init_general): Likewise.
15027 * config/ia64/ia64.md (eh_epilogue): Likewise.
15028 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
15029 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
15030 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
15031 (config/iq2000/iq2000.c): Likewise.
15032 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
15033 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
15034 (builtin_longjmp): Likewise.
15035 * config/mn10300/mn10300.md (call, call_value): Likewise.
15036 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
15037 * config/pdp11/pdp11.md (abshi2): Likewise.
15038 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
15039 * config/s390/s390.c (s390_emit_prologue): Likewise.
15040 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
15041 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
15042 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
15043 * config/sh/sh.c (prepare_move_operands): Likewise.
15044 (output_stack_adjust, sh_expand_epilogue): Likewise.
15045 (sh_set_return_address, sh_expand_t_scc): Likewise.
15046 * config/sparc/sparc.c (load_pic_register): Likewise.
15047 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
15048 * config/spu/spu.c (spu_expand_epilogue): Likewise.
15049 * config/v850/v850.c (expand_epilogue): Likewise.
15050
794cb45e
AS
150512008-05-31 Anatoly Sokolov <aesok@post.ru>
15052
15053 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
15054 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
15055 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
22129589
AS
15056 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
15057 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
794cb45e 15058 stack pointer register.
22129589 15059 (output_movhi): Remove code for interrupt specific writing to the
794cb45e
AS
15060 stack pointer register.
15061
39f8a3b0
RG
150622008-05-31 Richard Guenther <rguenther@suse.de>
15063
15064 PR tree-optimization/34244
15065 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
15066 (tree_expr_nonzero_warnv_p): Likewise.
15067 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
15068 ssa_name_nonnegative_p.
15069 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
15070 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
15071 not tree_expr_nonzero_warnv_p.
15072
15073 PR tree-optimization/36262
15074 Revert
15075 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
15076
69002843
UB
15077 PR tree-optimization/34244
15078 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
15079 (record_numbers_of_iterations): New function.
15080 (execute_vrp): Cache the numbers of iterations of loops.
15081 * tree-scalar-evolution.c (scev_reset_except_niters):
15082 New function.
15083 (scev_reset): Use scev_reset_except_niters.
15084 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
39f8a3b0 15085
2643f14e
BS
150862008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
15087
15088 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15089 __WORKAROUND_RETS when appropriate.
15090
ca3a2165
UB
150912008-05-31 Uros Bizjak <ubizjak@gmail.com>
15092
15093 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
15094 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
15095 mode iterator.
15096 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
15097 *fop_df_comm_sse insn patterns using MODEF mode iterator.
15098 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
15099 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
15100 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
15101 *fop_df_1_mixed insn patterns using MODEF mode iterator.
15102 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
15103 *fop_df_1_sse insn patterns using MODEF mode iterator.
15104 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
15105 *fop_df_1_i387 insn patterns using MODEF mode iterator.
15106 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
15107 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
15108 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
15109 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
15110 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
15111 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
15112 (*fop_xf_4_i387): Use <MODE> for mode attribute.
15113 (*fop_xf_5_i387): Ditto.
15114 (*fop_xf_6_i387): Ditto.
15115
acdfeac3
RG
151162008-05-30 Richard Guenther <rguenther@suse.de>
15117
15118 * builtins.c (build_string_literal): Avoid generating
15119 a non-gimple_val result.
15120
97c3860d
DD
151212008-05-30 DJ Delorie <dj@redhat.com>
15122
15123 * exec-tool.in: Use an environment variable (private) instead of a
15124 file (shared) as a semaphore, so as to not break parallel builds.
15125
856905c2
SB
151262008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
15127
15128 * optabs.c (maybe_encapsulate_block): Remove.
15129 (emit_libcall_block): Adjust accordingly.
15130 * optabs.h (maybe_encapsulate_block): Remove prototype.
15131
15132 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
15133 Don't use maybe_encapsulate_block.
15134
0cdc04e8
SB
151352008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
15136
15137 * config/rs6000/rs6000.c (rs6000_legitimize_address,
15138 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
15139 rtx is a SYMBOL_REF before calling get_pool_constant.
15140
bfab40f8
EB
151412008-05-30 Eric Botcazou <ebotcazou@adacore.com>
15142
15143 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
15144
c100de59
DS
151452008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
15146
15147 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
15148 rather than OS names to choose INO_T_EQ definition.
15149 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
ca3a2165 15150 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
c100de59 15151
c776a6d0
DF
151522008-05-29 Daniel Franke <franke.daniel@gmail.com>
15153
15154 PR target/36348
15155 * config/darwin-f.c: New.
15156 * config/t-darwin: Added rule to build darwin-f.o.
15157 * config.gcc: Defined new variable, fortran_target_objs.
15158 (*-*-darwin*): Set fortran_target_objs.
15159 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
ca3a2165 15160 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
c776a6d0
DF
15161 * configure: Regenerated.
15162
a20007a4
L
151632008-05-29 H.J. Lu <hongjiu.lu@intel.com>
15164
15165 PR target/35771
15166 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
15167 canonical type if needed.
15168
4efa7ef9
EB
151692008-05-29 Eric Botcazou <ebotcazou@adacore.com>
15170
15171 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
15172
2f571334
RG
151732008-05-29 Richard Guenther <rguenther@suse.de>
15174
15175 PR tree-optimization/36343
15176 PR tree-optimization/36346
15177 PR tree-optimization/36347
15178 * tree-flow.h (clobber_what_p_points_to): Declare.
15179 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
15180 pointed-to variable is dereferenced is irrelevant to whether
15181 the pointer can access the pointed-to variable.
15182 (clobber_what_p_points_to): New function.
15183 * tree-ssa-alias.c (set_initial_properties): Use it.
15184 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
15185 call clobber check for NMTs.
15186
68bb68ca 151872008-05-28 Seongbae Park <seongbae.park@gmail.com>
22129589 15188
68bb68ca
SP
15189 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
15190 for printing gcov_type.
15191
b608a1bc
SP
151922008-05-28 Seongbae Park <seongbae.park@gmail.com>
15193
15194 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
15195 and the eh region information.
15196 * value-prof.c (gimple_move_stmt_histograms): New function.
15197 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
15198
77da4248
AT
151992008-05-28 Andreas Tobler <a.tobler@schweiz.org>
15200
15201 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
15202
3dfb6f59
SP
152032008-05-28 Seongbae Park <seongbae.park@gmail.com>
15204
15205 * value-prof.c (tree_ic_transform): Print counts.
15206 * tree-profile.c (tree_gen_ic_func_profiler):
ca3a2165
UB
15207 Clear __gcov_indreict_call_callee variable to avoid misattribution
15208 of the profile.
3dfb6f59 15209
e49cf927 152102008-05-28 Rafael Espíndola <espindola@google.com>
5a976da0
RAE
15211
15212 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
15213 invalid sharing.
15214
38154e4f
RG
152152008-05-28 Richard Guenther <rguenther@suse.de>
15216
15217 PR tree-optimization/36339
15218 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
15219 and clobbering code out of the loop.
15220
963fc8d0
AK
152212008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
15222
15223 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
15224 letters defined.
15225
15226 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
15227 s390_contiguous_bitmask_p, s390_symref_operand_p,
15228 s390_check_symref_alignment, s390_reload_larl_operand,
15229 s390_reload_symref_address): New functions.
15230 (s390_branch_condition_mnemonic): Support compare and branch
15231 instructions.
15232 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
15233 and 'W' constraints.
15234 (s390_secondary_reload): Add secondary reloads for unaligned
15235 symbol refs or symbol refs to floating point or QI/TI mode
15236 integer values.
15237 (legitimate_address_p): Accept symbol references as addresses.
15238 (s390_expand_insv): Use rotate and insert selected bits
15239 instruction for insv when building for z10.
15240 (print_operand_address): Handle symbol ref addresses.
ca3a2165 15241 (print_operand): Output modifier 'c' added for signed byte values.
963fc8d0
AK
15242 (s390_encode_section_info): Mark symbol refs with
15243 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
15244
15245 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
15246 (length attribute): RRF, RRR have 4 byte length.
15247 (FPALL, INTALL): New mode iterators added.
15248 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
15249 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
15250 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
15251 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
15252 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
15253 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
15254 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
15255 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
15256 instructions.
15257 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
15258 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
15259 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
15260 reload<INTALL:mode><P:mode>_toreg_z10,
15261 reload<FPALL:mode><P:mode>_tomem_z10,
15262 reload<FPALL:mode><P:mode>_toreg_z10,
15263 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
15264 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
15265 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
15266 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
15267 definition.
15268 (movmem, clrmem, cmpmem): New splitters added.
15269
15270 * config/s390/predicates.md (larl_operand): Use
15271 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
15272 SYMBOL_REF_ALIGN1_P.
15273 (s390_signed_integer_comparison,
15274 s390_unsigned_integer_comparison): New predicates.
15275
15276 * config/s390/s390-protos.h (s390_check_symref_alignment,
15277 s390_contiguous_bitmask_p, s390_reload_larl_operand,
15278 s390_reload_symref_address,
15279 s390_compare_and_branch_condition_mask): Prototypes added.
15280
15281 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
15282 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
15283 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
15284
93538e8e
AK
152852008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
15286
15287 * config/s390/s390.c (z10_cost): New cost function for z10.
ca3a2165 15288 (s390_handle_arch_option, override_options): Support -march=z10 switch.
93538e8e
AK
15289 (s390_issue_rate): Adjust issue rate for z10.
15290 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
15291 (processor_flags): Add PF_Z10.
15292 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
15293 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
15294 * gcc/config.gcc: Add z10.
15295
540f6bda
RG
152962008-05-28 Richard Guenther <rguenther@suse.de>
15297
15298 PR tree-optimization/36291
15299 * tree-flow. h (struct gimple_df): Remove var_anns member.
15300 * tree-flow-inline.h (gimple_var_anns): Remove.
15301 (var_ann): Simplify.
15302 * tree-dfa.c (create_var_ann): Simplify.
15303 (remove_referenced_var): Clear alias info from var_anns of globals.
15304 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
15305 (delete_tree_ssa): Clear alias info from var_anns of globals.
15306 Do not free var_anns.
15307 (var_ann_eq): Remove.
15308 (var_ann_hash): Likewise.
15309
33db2060
MS
153102008-05-28 Mark Shinwell <shinwell@codesourcery.com>
15311
15312 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
15313 and loongson2f entries.
15314 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
15315 * config/mips/mips.h (processor_type): Add Loongson-2E
15316 and Loongson-2F entries.
15317 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
15318 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
15319 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
15320 * doc/invoke.texi (MIPS Options): Document loongson2e
15321 and loongson2f processor names.
15322
23ac85e7
L
153232008-05-27 H.J. Lu <hongjiu.lu@intel.com>
15324
15325 PR target/35767
15326 PR target/35771
15327 * config/i386/i386.c (ix86_function_arg_boundary): Use
15328 alignment of canonical type.
15329 (ix86_expand_vector_move): Check unaligned memory access for
15330 all SSE modes.
15331
3395aa05
L
153322008-05-27 H.J. Lu <hongjiu.lu@intel.com>
15333
15334 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
15335 Moved to the front of file.
15336
3ce6e42e
XG
153372008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
15338 H.J. Lu <hongjiu.lu@intel.com>
15339
15340 * dwarf2out.c (current_fde): New.
15341 (add_cfi): Use it.
15342 (lookup_cfa:): Likewise.
15343 (dwarf2out_end_epilogue): Likewise.
15344 (dwarf2out_note_section_used): Likewise.
15345
a3299096
MM
153462008-05-27 Michael Matz <matz@suse.de>
15347
15348 PR c++/27975
15349 * c.opt (Wenum-compare): New warning option.
15350 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
15351
bd42a56b
MM
153522008-05-27 Michael Matz <matz@suse.de>
15353
15354 PR middle-end/36326
15355 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
15356 non-BLKmode types.
15357 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
15358 into memory as tail calls.
15359
a46fc136
RG
153602008-05-27 Richard Guenther <rguenther@suse.de>
15361
15362 PR tree-optimization/36339
15363 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
15364 pointers cause all addressable variables to be call clobbered.
15365
6fe2f65a
RG
153662008-05-27 Richard Guenther <rguenther@suse.de>
15367
15368 PR tree-optimization/36245
ca3a2165 15369 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
6fe2f65a 15370
fb492564
AK
153712008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
15372
15373 * config/s390/s390.md: Replace all occurences of the 'm'
15374 constraint with 'RT'.
15375
3af8e996
AK
153762008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
15377
15378 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
15379 definitions added.
15380 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
15381 "*movdi_64".
15382 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
15383 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
15384 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
15385
7ac28727
AK
153862008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
15387
15388 * reload.c: (find_reloads): Skip alternatives according to the
15389 "enabled" attribute. Constify the constraint variable.
15390 * recog.c (get_attr_enabled): Add default implementation.
15391 (extract_insn): Set the alternative_enabled_p array
15392 in the recog_data struct.
15393 (preprocess_constraints, constrain_operands): Skip
15394 alternatives according to the "enabled" attribute
15395 * recog.h (struct recog_data): New field alternative_enabled_p.
15396 (skip_alternative): New inline function.
ca3a2165 15397 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
7ac28727
AK
15398 (record_reg_classes): Skip alternative according to the
15399 "enabled" attribute.
15400
15401 * doc/md.texi: Add documention for the "enabled" attribute.
15402
a4edaf83
AK
154032008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
15404
15405 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
15406 * postreload.c (reload_cse_simplify_operands): Replace 'm'
15407 constraint with TARGET_MEM_CONSTRAINT.
15408 * recog.c (asm_operand_ok, preprocess_constraints,
15409 constrain_operands): Likewise.
15410 * regclass.c (record_reg_classes): Likewise.
ca3a2165 15411 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
a4edaf83 15412 * reload1.c (maybe_fix_stack_asms): Likewise.
ca3a2165 15413 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
a4edaf83
AK
15414 * recog.h: Adjust comment.
15415 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
ca3a2165 15416 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
a4edaf83
AK
15417 * doc/md.texi: Add a note to description of 'm' constraint.
15418 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
15419
469dfae9
EB
154202008-05-27 Eric Botcazou <ebotcazou@adacore.com>
15421
15422 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
15423 that the bitfield is of integral type before testing its precision.
15424
986a8d90 154252008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
22129589 15426 Sa Liu <saliu@de.ibm.com>
986a8d90 15427
22129589 15428 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
986a8d90
TS
15429 __modti3, __udivti3, __umodti3 and __udivmodti4.
15430 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
15431 that implement TImode mul and div functions.
15432 * config/spu/multi3.c: New. Implement __multi3.
15433 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
15434 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
15435 functions on SPU.
15436
02135bc1
SB
154372008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
15438
15439 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
15440 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
15441 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
15442 tls_sysv_suffix): New mode and mode attribute iterators.
15443 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
15444 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
15445 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
15446 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
15447 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
15448 iterators.
15449
ba977e1a
EB
154502008-05-26 Eric Botcazou <ebotcazou@adacore.com>
15451
15452 PR tree-optimization/36329
15453 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
15454 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
15455 * cgraphbuild.c (initialize_inline_failed): Use the latter
15456 macro in lieu of the former.
15457 * ipa-inline.c (cgraph_mark_inline): Likewise.
15458 (cgraph_decide_inlining_of_small_function): Likewise.
15459 (cgraph_decide_inlining): Likewise.
15460 (cgraph_decide_inlining_incrementally): Likewise.
15461
4d492420 154622008-05-26 Tristan Gingold <gingold@adacore.com>
ca3a2165 15463 Anatoly Sokolov <aesok@post.ru>
4d492420
TG
15464
15465 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
15466 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
22129589 15467 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
4d492420
TG
15468 optimization for 'avr6' architecture.
15469
319a58c6
AH
154702008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
15471
15472 PR target/34932
15473 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
15474
26fa9076
RG
154752008-05-26 Richard Guenther <rguenther@suse.de>
15476
15477 * tree-ssa-sccvn.c (expr_has_constants): Declare.
ca3a2165 15478 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
26fa9076 15479
76fe54f0
L
154802008-05-26 H.J. Lu <hongjiu.lu@intel.com>
15481
15482 PR middle-end/36253
ca3a2165 15483 * caller-save.c (insert_restore): Verify alignment of spill space.
76fe54f0 15484 (insert_save): Likewise.
76fe54f0 15485 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
76fe54f0
L
15486 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
15487 (STACK_SLOT_ALIGNMENT): Likewise.
76fe54f0
L
15488 * function.c (LOCAL_ALIGNMENT): Removed.
15489 (get_stack_local_alignment): New.
15490 (assign_stack_local): Use it. Set alignment on stack slot.
15491 (assign_stack_temp_for_type): Use get_stack_local_alignment.
76fe54f0
L
15492 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
15493 (STACK_SLOT_ALIGNMENT): New.
76fe54f0
L
15494 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
15495 stack slot in XFmode.
15496
15497 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
15498
e5f005e1
KT
154992008-05-26 Kai Tietz <kai.tietz@onevision.com>
15500
15501 PR/36321
15502 * config/i386/i386.md (allocate_stack_worker_64): Make sure
15503 argument operand in rax isn't removed.
15504
fcb4587e
RG
155052008-05-26 Richard Guenther <rguenther@suse.de>
15506
15507 PR middle-end/36300
15508 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
15509 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
15510
25497730
DF
155112008-05-26 Daniel Franke <franke.daniel@gmail.com>
15512
15513 PR bootstrap/36331
15514 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
15515
e8a25ca8
DH
155162008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
15517
15518 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
15519 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
15520
3651f7ad
EB
155212008-05-25 Eric Botcazou <ebotcazou@adacore.com>
15522
ca3a2165 15523 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3651f7ad
EB
15524 build a trampoline if we don't want one.
15525 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
15526 return zero for nested functions if we don't want a trampoline.
15527
b885a4c1
DF
155282008-05-26 Daniel Franke <franke.daniel@gmail.com>
15529
15530 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
15531
670637ee
DF
155322008-05-26 Daniel Franke <franke.daniel@gmail.com>
15533
15534 PR fortran/18428
15535 * c.opt: Removed undocumented option '-lang-fortran'.
15536 * c-common.h: Removed global variable 'lang_fortran'.
15537 * c-opts.c (c_common_handle_option): Removed code to handle
15538 option '-lang-fortran'. Updated includes.
15539 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
15540 definition of '__GFORTRAN__'.
15541 (define__GNUC__): Reimplemented to use BASEVER and
15542 cpp_define_formatted.
15543 (builtin_define_with_value_n): Removed.
15544 * c-incpath.h: Renamed to ...
15545 * incpath.h: ... this.
15546 * c-incpath.c: Renamed to ...
15547 * incpath.c: ... this. Updated includes.
15548 * fix-header.c: Updated includes.
15549 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
15550 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
15551 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
15552
4cea6c02
EB
155532008-05-25 Eric Botcazou <ebotcazou@adacore.com>
15554
15555 * tree.h: Update the table of flags used on tree nodes.
15556 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
15557 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
15558 (FORCED_LABEL): Add access check.
15559 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
15560 (ASM_INPUT_P): Likewise.
15561 (ASM_VOLATILE_P): Likewise.
15562 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
15563 (OMP_SECTION_LAST): Access private_flag directly.
15564 (OMP_RETURN_NOWAIT): Likewise.
15565 (OMP_PARALLEL_COMBINED): Likewise.
15566 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
15567 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
15568 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
15569 deprecated_flag directly.
15570
3bffa195
L
155712008-05-25 H.J. Lu <hongjiu.lu@intel.com>
15572
15573 * final.c (frame_pointer_needed): Removed.
15574 * flags.h (frame_pointer_needed): Likewise.
15575
15576 * function.h (rtl_data): Add frame_pointer_needed.
15577 (frame_pointer_needed): New.
15578
93fea8d3
AL
155792008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
15580
15581 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
15582
29470771
SB
155832008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
15584
15585 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
15586 SRC is a REG.
15587
dd25a747
AM
155882008-05-25 Alan Modra <amodra@bigpond.net.au>
15589
15590 * c-common.c (strip_array_types): Move function to..
15591 * tree.c: ..here.
15592 (get_inner_array_type): Delete.
15593 * c-common.h (strip_array_types): Move declaration to..
15594 * tree.h: ..here.
15595 (get_inner_array_type): Delete.
15596 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
15597 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
15598 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
15599 * config/pa/pa.c (emit_move_sequence): Likewise.
15600
c36c9821
L
156012008-05-24 H.J. Lu <hongjiu.lu@intel.com>
15602
15603 * config/i386/i386.md (*sse_prologue_save_insn): Set length
15604 attribute to 34.
15605
88280cf9
AH
156062008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
15607
15608 * function.c: Include target hook for nonlocal_goto frame value.
15609
7c88f67a
RG
156102008-05-24 Richard Guenther <rguenther@suse.de>
15611
ca3a2165
UB
15612 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
15613 variable can be only accessed through a pointer or a union.
7c88f67a 15614
32101f99
KG
156152008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15616
15617 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
15618 * doc/extend.texi: Likewise.
15619
80b093df
DD
156202008-05-23 DJ Delorie <dj@redhat.com>
15621
c9db440d
DD
15622 * config/m32c/jump.md (untyped_call): Add.
15623
80b093df
DD
15624 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
15625 for A24 to PSImode.
15626 (m32c_address_cost): Detail costs for indirect offsets.
15627
e49cf927 156282008-05-23 Rafael Espíndola <espindola@google.com>
fbcfcb3c
RAE
15629
15630 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
15631 if a node is a SUBREG.
15632 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
15633 is a SUBREG.
15634
007e61c2
PB
156352008-05-23 Paul Brook <paul@codesourcery.com>
15636 Carlos O'Donell <carlos@codesourcery.com>
15637
15638 * doc/extend.texi: Clarify use of __attribute__((naked)).
15639 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15640 * target.h (gcc_target): Add allocate_stack_slots_for_args.
15641 * function.c (use_register_for_decl): Use
15642 targetm.calls.allocate_stack_slots_for_args.
ca3a2165
UB
15643 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
15644 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
007e61c2
PB
15645 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
15646
a2acd8bf
EB
156472008-05-23 Eric Botcazou <ebotcazou@adacore.com>
15648
15649 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
15650
c201998a
SM
156512008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
15652
15653 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
15654 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
15655 is only rounded once.
15656
833248d2
RG
156572008-05-23 Richard Guenther <rguenther@suse.de>
15658
ca3a2165 15659 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
833248d2 15660
922e3e33
UB
156612008-05-23 Uros Bizjak <ubizjak@gmail.com>
15662 Jakub Jelinek <jakub@redhat.com>
15663
15664 PR target/36079
15665 * configure.ac: Handle --enable-cld.
15666 * configure: Regenerated.
15667 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
15668 * config/i386/i386.h (struct machine_function): Add needs_cld field.
15669 (ix86_current_function_needs_cld): New define.
15670 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
15671 (cld): New isns pattern.
15672 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
15673 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
15674 * config/i386/i386.opt (mcld): New option.
15675 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
15676 TARGET_CLD and ix86_current_function_needs_cld.
15677 (override_options): Use -mcld by default for 32-bit code if
15678 USE_IX86_CLD.
15679
15680 * doc/install.texi (Options specification): Document --enable-cld.
15681 * doc/invoke.texi (Machine Dependent Options)
ca3a2165
UB
15682 [i386 and x86-64 Options]: Add -mcld option.
15683 (Intel 386 and AMD x86-64 Options): Document -mcld option.
922e3e33 15684
71995c2c
KT
156852008-05-23 Kai Tietz <kai.tietz@onevison.com>
15686 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
15687 (return_in_memory_64): Likewise.
15688 (return_in_memory_ms_64): Likewise.
15689
3bf5906b
KG
156902008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15691
15692 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
15693 * builtins.c (fold_builtin_fpclassify): New.
15694 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
15695 * builtins.def (BUILT_IN_FPCLASSIFY): New.
15696 * c-common.c (handle_type_generic_attribute): Adjust to accept
15697 fixed arguments before an elipsis.
15698 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
15699 * doc/extend.texi: Document __builtin_fpclassify.
15700
c63cac47
AH
157012008-05-22 Aldy Hernandez <aldyh@redhat.com>
15702
15703 * omp-low.c (gate_expand_omp_ssa): Remove.
15704 (pass_expand_omp_ssa): Remove.
15705 (gate_expand_omp): Do not check for flag_openmp_ssa.
15706 * common.opt (-fopenmp-ssa): Remove.
15707 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
15708
3217af3e
KK
157092008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
15710
15711 * config/sh/sh.opt (mfixed-range): New option.
15712 * config/sh/sh-protos.h (sh_fix_range): Declare.
15713 * config/sh/sh.c (sh_fix_range): New function.
15714 * config/sh/sh.h (sh_fixed_range_str): Declare.
15715 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
15716 is not empty.
15717 * doc/invoke.texi (SH Options): Document -mfixed-range.
15718
42b18a21
KT
157192008-05-22 Kai Tietz <kai.tietz@onevision.com>
15720
15721 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
15722 it before the redeclaration.
15723
97822902
AS
157242008-05-22 Anatoly Sokolov <aesok@post.ru>
15725
15726 * config/avr/avr.c (get_sequence_length): Add new function.
15727 (expand_prologue, expand_epilogue): Remove duplicate code.
15728
e49cf927 157292008-05-22 Rafael Espíndola <espindola@google.com>
4799e6aa
RAE
15730
15731 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
15732 sharing.
15733
9d3a9de1
L
157342008-05-22 H.J. Lu <hongjiu.lu@intel.com>
15735
15736 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
15737 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
15738
15739 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
15740 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
15741 (vect_update_misalignment_for_peel): Likewise.
15742 (vector_alignment_reachable_p): Likewise.
15743 * tree-vect-transform.c (vectorizable_load): Likewise.
15744 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
922e3e33
UB
15745 (get_vectype_for_scalar_type): Pass mode of scalar_type
15746 to UNITS_PER_SIMD_WORD.
9d3a9de1
L
15747
15748 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
15749 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
15750 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
15751 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
15752 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
15753
f8b52c2f
IR
157542008-05-22 Ira Rosen <irar@il.ibm.com>
15755
15756 PR tree-optimization/36293
15757 * tree-vect-transform.c (vect_transform_strided_load): Don't check
15758 if the first load must be skipped because of a gap.
15759
1842e4d4
RG
157602008-05-22 Richard Guenther <rguenther@suse.de>
15761
15762 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
15763 more cases of offset disambiguation that is possible if
15764 strict-aliasing rules apply.
15765 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
15766 for basic offset and type-based disambiguation.
15767
31ebe593
L
157682008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15769
15770 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
15771 ix86_expand_vector_set on V16QImode for SSE4.1.
15772
c24d4112
TT
157732008-05-21 Tom Tromey <tromey@redhat.com>
15774
15775 * c.opt (Wimport): Mark as undocumented.
15776 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
15777 -Wno-import.
15778 (Warning Options): Likewise.
15779 * doc/cppopts.texi: Don't mention -Wimport.
15780
4e8d7177
SP
157812008-05-21 Sebastian Pop <sebastian.pop@amd.com>
15782
15783 PR tree-optimization/36287
15784 PR tree-optimization/36286
15785 * lambda-code.c (build_access_matrix): Do not use the loop->num
15786 for computing the number of induction variables: use the loop depth
15787 instead.
15788
6110c44a
KT
157892008-05-21 Kai Tietz <kai.tietz@onevision.com>
15790
15791 PR/36280
15792 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
15793 option -f(no-)leading-underscore.
15794
e73caa00
L
157952008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15796
15797 * config/i386/i386.c (ix86_expand_vector_init_general): Use
15798 GET_MODE_NUNITS (mode).
15799
4adf8008
PB
158002008-05-21 Peter Bergner <bergner@vnet.ibm.com>
15801
15802 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
15803 (-mmulhw): Add 464 to description.
15804 (-mdlmzb): Likewise.
15805 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
15806 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
15807 464fp entries.
15808 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
15809 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
15810 * config/rs6000/rs6000.md: Update comments for 464.
15811
00a25a2d
JJ
158122008-05-21 Janis Johnson <janis187@us.ibm.com>
15813
15814 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
15815
80980aec
L
158162008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15817
15818 * config/i386/sse.md (vec_extractv4sf): Removed.
15819 (vec_extractv2df): Likewise.
15820 (vec_extractv2di): Likewise.
15821 (vec_extractv4si): Likewise.
15822 (vec_extractv8hi): Likewise.
15823 (vec_extractv16qi): Likewise.
15824 (vec_extract<mode>): New.
15825
349587b8
L
158262008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15827
15828 * config/i386/sse.md (vec_setv4sf): Removed.
15829 (vec_setv2df): Likewise.
15830 (vec_setv2di): Likewise.
15831 (vec_setv4si): Likewise.
15832 (vec_setv8hi): Likewise.
15833 (vec_setv16qi): Likewise.
15834 (vec_set<mode>): New.
15835
0864e1e8
L
158362008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15837
15838 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
15839 goto for vec_concat and vec_interleave.
15840
f8caa3a8
L
158412008-05-21 H.J. Lu <hongjiu.lu@intel.com>
15842
15843 * config/i386/sse.md (vec_initv4sf): Removed.
15844 (vec_initv2df): Likewise.
15845 (vec_initv2di): Likewise.
15846 (vec_initv4si): Likewise.
15847 (vec_initv8hi): Likewise.
15848 (vec_initv16qi): Likewise.
15849 (vec_init<mode>): New.
15850
fb291f50
JM
158512008-05-21 Joseph Myers <joseph@codesourcery.com>
15852
15853 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
15854
dae4174e
TT
158552008-05-21 Tom Tromey <tromey@redhat.com>
15856
15857 * ggc-zone.c (lookup_page_table_if_allocated): New function.
15858 (zone_find_object_offset): Likewise.
15859 (gt_ggc_m_S): Likewise.
15860 (highest_bit): Likewise.
15861 * ggc-page.c (gt_ggc_m_S): New function.
15862 * stringpool.c (string_stack): Remove.
15863 (init_stringpool): Update.
15864 (ggc_alloc_string): Use ggc_alloc.
15865 (maybe_delete_ident): New function.
15866 (ggc_purge_stringpool): Likewise.
15867 (gt_ggc_m_S): Remove.
15868 * ggc-common.c (ggc_protect_identifiers): New global.
15869 (ggc_mark_roots): Call ggc_purge_stringpool. Use
15870 ggc_protect_identifiers.
15871 * ggc.h (ggc_protect_identifiers): Declare.
15872 (gt_ggc_m_S): Update.
15873 (ggc_purge_stringpool): Declare.
15874 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
15875 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
15876 special case.
15877 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
15878
ccbdd3bc
DM
158792008-05-21 David S. Miller <davem@davemloft.net>
15880
15881 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
15882 tmake_file.
15883
e8a2a782
EB
158842008-05-21 Eric Botcazou <ebotcazou@adacore.com>
15885
15886 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
15887 once finished.
15888
06d19617
DD
158892008-05-20 David Daney <ddaney@avtrex.com>
15890
15891 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
922e3e33
UB
15892 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
15893 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
06d19617
DD
15894 UNSPEC_UPDATE_GOT_VERSION): Renumber.
15895 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
15896 (atomic_hiqi_op): New define_code_iterator.
922e3e33 15897 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
06d19617
DD
15898 mips_expand_compare_and_swap_12.
15899 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
922e3e33 15900 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
06d19617
DD
15901 (sync_<optab><mode>, sync_old_<optab><mode>,
15902 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
922e3e33 15903 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
06d19617
DD
15904 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
15905 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
922e3e33 15906 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
06d19617
DD
15907 (test_and_set_12): New insn.
15908 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
15909 sync_new_<optab><mode>, sync_old_nand<mode>,
15910 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
15911 clobber to operand 0 for SI and DI mode insns.
15912 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
15913 mips_gen_fn_4): New typedefs.
15914 (mips_gen_fn_ptrs): Define new union type.
15915 (mips_expand_compare_and_swap_12): Remove declaration.
15916 (mips_expand_atomic_qihi): Declare function.
15917 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
15918 (mips_expand_atomic_qihi): ... this. Use new generator function
15919 parameter.
15920 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
15921 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
ca3a2165 15922 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
06d19617
DD
15923 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
15924 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
15925 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
15926 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
15927 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
15928 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
ca3a2165
UB
15929 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
15930 New macros.
06d19617 15931
a35f6a35
L
159322008-05-20 H.J. Lu <hongjiu.lu@intel.com>
15933
15934 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
15935 the missing break.
15936
9b678d96
AS
159372008-05-20 Anatoly Sokolov <aesok@post.ru>
15938
15939 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
15940 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
15941 (avr_attribute_table): Add 'OS_main' function attribute.
15942 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
15943 functions with 'OS_main' attribute.
15944
6be34936
RG
159452008-05-20 Richard Guenther <rguenther@suse.de>
15946
15947 PR tree-optimization/35204
15948 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
15949 helper, split out from ...
15950 (DFS): ... here. Make the DFS walk non-recursive.
15951
9857228c
SP
159522008-05-20 Sebastian Pop <sebastian.pop@amd.com>
15953 Jan Sjodin <jan.sjodin@amd.com>
15954
15955 PR tree-optimization/36181
15956 * tree-parloops.c (loop_has_vector_phi_nodes): New.
15957 (parallelize_loops): Don't parallelize when the loop has vector
15958 phi nodes.
15959
9f275479
JS
159602008-05-20 Jan Sjodin <jan.sjodin@amd.com>
15961 Sebastian Pop <sebastian.pop@amd.com>
15962
922e3e33
UB
15963 * tree-loop-linear.c (gather_interchange_stats): Look in the access
15964 matrix, and never look at the tree representation of the memory
15965 accesses.
9f275479 15966 (linear_transform_loops): Computes parameters and access matrices.
922e3e33
UB
15967 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
15968 when fails.
9f275479
JS
15969 (access_matrix_get_index_for_parameter): New.
15970 * tree-data-ref.h (struct access_matrix): New.
15971 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
15972 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
15973 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
15974 am_vector_index_for_loop): New.
15975 (struct data_reference): Add field access_matrix.
15976 (DR_ACCESS_MATRIX): New.
15977 (compute_data_dependences_for_loop): Update declaration.
15978 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
15979 * lambda.h (lambda_vector_vec_p): Declared.
15980 * lambda-code.c: Depend on pointer-set.h.
15981 (lambda_collect_parameters_from_af, lambda_collect_parameters,
15982 av_for_af_base, av_for_af, build_access_matrix,
15983 lambda_compute_access_matrices): New.
15984 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
15985
f30fad61
JM
159862008-05-20 Joseph Myers <joseph@codesourcery.com>
15987
15988 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
15989 $SOURCEDIR/include.
15990
5b78fc3e
JS
159912008-05-20 Jan Sjodin <jan.sjodin@amd.com>
15992 Sebastian Pop <sebastian.pop@amd.com>
15993
15994 PR tree-optimization/36206
15995 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
15996 FOLD_CONVERSIONS.
15997 (instantiate_scev_1): Rename flags to fold_conversions.
15998 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
15999 outeside instantiation_loop.
16000 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
16001 (evolution_function_is_affine_or_constant_p): Removed.
16002 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
16003 instantiate_scev.
16004 (analyze_siv_subscript): Pass in the loop nest number.
22129589 16005 Call evolution_function_is_affine_in_loop instead of
5b78fc3e
JS
16006 evolution_function_is_affine_p.
16007 (analyze_overlapping_iterations): Pass in the loop nest number.
16008
160092008-05-20 Jan Sjodin <jan.sjodin@amd.com>
16010 Sebastian Pop <sebastian.pop@amd.com>
16011
16012 PR tree-optimization/36206
16013 * tree-chrec.h (chrec_fold_op): New.
922e3e33
UB
16014 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
16015 and other trees.
5b78fc3e 16016
498f1c82
NS
160172008-05-20 Nathan Sidwell <nathan@codesourcery.com>
16018
16019 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
16020 (DIRS_EQ): New.
922e3e33
UB
16021 (remove_duplicates): Do not set inode on non-inode systems.
16022 Use DIRS_EQ.
498f1c82 16023
9c63c208
SL
160242008-05-20 Sandra Loosemore <sandra@codesourcery.com>
16025
16026 * config.gcc (tm_file): Update comments about relative pathnames.
16027
01902653
RG
160282008-05-20 Richard Guenther <rguenther@suse.de>
16029
922e3e33 16030 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
01902653
RG
16031 * tree-ssa-sccvn.c (process_scc): Likewise.
16032 * tree-ssa-sink.c (execute_sink_code): Likewise.
16033 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
16034 * tree-vrp.c (process_assert_insertions): Likewise.
16035 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
16036 (perform_tree_ssa_dce): Likewise.
16037 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
16038 (dump_dominator_optimization_stats): Likewise.
16039 * tree-vectorizer.c (vectorize_loops): Likewise.
16040
4628e602
RG
160412008-05-20 Richard Guenther <rguenther@suse.de>
16042
16043 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
16044
3b23a6d3
KT
160452008-05-20 Kai Tietz <kai.tietz@onevision.com>
16046
16047 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
16048 (ix86_i386elf_return_in_memory): Likewise.
16049 (ix86_i386interix_return_in_memory): Likewise.
16050 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
16051 (SUBTARGET_RETURN_IN_MEMORY): New.
16052 * config/i386/i386elf.h: Likewise.
16053 * config/i386/ptx4-i.h: Likewise.
16054 * config/i386/sol2-10.h: Likewise.
16055 * config/i386/sysv4.h: Likewise.
16056 * config/i386/vx-common.h: Likewise.
16057 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
16058 * config/i386/i386.c (ix86_return_in_memory): Made static and
16059 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
16060 (ix86_i386elf_return_in_memory): Removed.
16061 (ix86_i386interix_return_in_memory): Removed.
16062 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
16063 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
16064
be9ed5d5
AO
160652008-05-20 Alexandre Oliva <aoliva@redhat.com>
16066
16067 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
16068
bc300fec
XDL
160692008-05-19 Xinliang David Li <davidxl@google.com>
16070
22129589 16071 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
bc300fec
XDL
16072 * opts.c: Ditto.
16073 * common.opt: Ditto.
16074 * doc/invoke.texi: Ditto.
16075
df8e1fdc
EB
160762008-05-19 Eric Botcazou <ebotcazou@adacore.com>
16077
16078 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
fa74fa39 16079 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
df8e1fdc 16080
06a5f1ec
L
160812008-05-19 H.J. Lu <hongjiu.lu@intel.com>
16082
9479cae3 16083 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
06a5f1ec
L
16084 sizes of operand array from 8/4 to 4/2.
16085 (ix86_expand_vector_init_general): Change size of operand array
16086 from 32 to 16. Remove op0, op1 and half_mode.
16087
63e46cce
L
160882008-05-19 H.J. Lu <hongjiu.lu@intel.com>
16089
16090 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
16091 (ix86_expand_vector_init_interleave): Likewise.
ca3a2165
UB
16092 (ix86_expand_vector_init_general): Use them. Assert
16093 word_mode == SImode when n_words == 4.
63e46cce 16094
83689be0
UB
160952008-05-19 Uros Bizjak <ubizjak@gmail.com>
16096
16097 * config/i386/i386.c (ix86_secondary_reload): New static function.
16098 (TARGET_SECONDARY_RELOAD): New define.
16099 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
16100 * config/i386/i386.md (reload_outqi): Remove.
16101
05f41289
KG
161022008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16103
16104 PR middle-end/35509
05f41289
KG
16105 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
16106 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
16107 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
16108 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
16109 (fold_builtin_1): Likewise.
16110 * builtins.def (BUILT_IN_ISINF_SIGN): New.
16111 c-common.c (check_builtin_function_arguments): Handle
16112 BUILT_IN_ISINF_SIGN.
16113 * doc/extend.texi: Document __builtin_isinf_sign.
16114 * fold-const.c (operand_equal_p): Handle COND_EXPR.
16115
45a7844f
EB
161162008-05-18 Eric Botcazou <ebotcazou@adacore.com>
16117
16118 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
16119 EH cleanup at the end of the pass, search for those that have been
16120 turned into forwarder blocks and do the cleanup on their successor.
16121
a86907b2
RG
161222008-05-18 Richard Guenther <rguenther@suse.de>
16123
16124 * tree-cfg.c (verify_gimple_expr): Allow conversions from
16125 pointers to sizetype and vice versa.
16126
e29cc9b4
XDL
161272008-05-18 Xinliang David Li <davidxl@google.com>
16128
16129 * gcc/tree-ssa-dce.c: Coding style fix.
22129589 16130 (check_pow): Documentation comment.
e29cc9b4
XDL
16131 (check_log): Documenation comment. Coding style fix.
16132 (is_unnecessary_except_errno_call): Ditto.
16133 (gen_conditions_for_pow): Ditto.
16134 (gen_conditions_for_log): Ditto.
16135 (gen_shrink_wrap_conditions): Ditto.
16136 (shrink_wrap_one_built_in_calls): Ditto.
16137 * gcc/doc/invoke.texi: Better documentation string.
22129589 16138 * ChangeLog: Fix wrong change log entries from
e29cc9b4
XDL
16139 May 17 checkin on function call DCE.
16140
eb6cbf91
KK
161412008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
16142
371a0575 16143 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
eb6cbf91 16144
bfe69700
KZ
161452008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
16146
16147 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
16148 * df-problems.c (simulation routines): Fixed block comment to
16149 properly say how to add forwards scanning functions.
22129589 16150
7c7d3047
EB
161512008-05-17 Eric Botcazou <ebotcazou@adacore.com>
16152
16153 * tree-inline.c (setup_one_parameter): Remove dead code.
16154
1e17e15a
EB
161552008-05-17 Eric Botcazou <ebotcazou@adacore.com>
16156
16157 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
16158 a BIT_AND_EXPR only for an INTEGER_TYPE.
16159
e29cc9b4
XDL
161602008-05-17 Xinliang David Li <davidxl@google.com>
16161
16162 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
22129589
AS
16163 (check_pow, check_log, is_unnecessary_except_errno_call): New
16164 functions to check for eliminating math functions that are pure
e29cc9b4
XDL
16165 except for setting errno.
16166 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
16167 general condition expressions for shrink-wrapping pow/log calls.
16168 (gen_shrink_wrap_conditions): Ditto.
16169 (shrink_wrap_one_built_in_call): Ditto.
16170 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
16171 (mark_operand_necessary): If debugging, output if OP is necessary.
16172 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
16173 unnecessary.
16174 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
16175 opt level >= 2.
16176 * gcc/common.opt: New user flag -ftree-builtin-dce.
16177 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
16178
b61eacd6
DM
161792008-05-16 David S. Miller <davem@davemloft.net>
16180
371a0575 16181 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
b61eacd6
DM
16182 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16183
c62b3659
UB
161842008-05-16 Uros Bizjak <ubizjak@gmail.com>
16185
16186 PR target/36246
16187 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
16188
07b5bc83
KZ
161892008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16190
16191 * ifcvt.c (dead_or_predicable): Rename
16192 df_simulate_one_insn_backwards to df_simulate_one_insn.
16193 * recog.c (peephole2_optimize): Ditto.
83689be0
UB
16194 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
16195 Ditto.
07b5bc83
KZ
16196 * df.h: Rename df_simulate_one_insn_backwards to
16197 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
16198 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
16199 scanning of defs and uses.
16200 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
16201 (df_simulate_one_insn_forwards): Removed.
16202
f1f07a96
DK
162032008-05-16 Doug Kwan <dougkwan@google.com>
16204
16205 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
16206 QNaN & SNaN.
16207 (real_from_string): Handle NaNs and Inf as approriate.
16208
105f48ae
DN
162092008-05-16 Nathan Froyd <froydnj@codesourcery.com>
16210
16211 * doc/gty.texi (Source Files Containing Type Information): Note
16212 that headers should appear first in the gtfiles list.
16213
162142008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16215
16216 * tree.def (COND_EXEC): Properly documented this code.
16217
162182008-05-16 Diego Novillo <dnovillo@google.com>
16219
16220 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
16221 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
16222 the new field.
16223
908ff6a3
KZ
162242008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16225
16226 * tree-ssa-dse (max_stmt_uid): Removed.
22129589 16227 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
908ff6a3
KZ
16228 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
16229 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
16230 * function.h (cfun.last_stmt_uid): New field.
16231 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
371a0575
UB
16232 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
16233 New functions.
908ff6a3
KZ
16234 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
16235 (create_stmt_ann): Initialize the ann->uid field.
16236 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
16237 with new calls.
16238 * tree-flow.h (renumber_gimple_stmt_uids): New function.
16239
9defb1fe
DN
162402008-05-16 Nathan Froyd <froydnj@codesourcery.com>
16241
16242 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
16243 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
16244 (init_empty_tree_cfg): Call it.
16245
162462008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16247
c62b3659
UB
16248 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
16249 Update all users.
9defb1fe 16250
3e894af1
KZ
162512008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
16252
16253 * doc/invoke.text (-fdump-tree-*-verbose): New option.
16254 * tree-dump.c (dump_options): New verbose option.
16255 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
16256 Add verbose dump.
16257 * tree-pass.h (TDF_VERBOSE): New dump flag.
c62b3659 16258 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3e894af1 16259 (tree-flow.h): Added include.
c62b3659 16260 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
3e894af1 16261
16869606
BS
162622008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
16263
4fc4d850
BS
16264 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
16265
16869606 16266 From Jie Zhang <jie.zhang@analog.com>
908ff6a3 16267 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16869606
BS
16268 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
16269 mcpu=bf561-none and mcpu=bf561-0.2.
16270 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16271 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
16272 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16273 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
371a0575 16274 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
c62b3659 16275 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
16869606
BS
16276 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
16277 option.
16278 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
16279 (cputype_selected): Remove.
16280 (bfin_handle_option): Don't use cputype_selected.
16281 (override_options): When no mcpu option, enable all workarounds.
16282 Don't use bfin_workarounds.
16283 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
16284 processor type.
16285 (DEFAULT_CPU_TYPE): Don't define.
16286
d0569f9f
RG
162872008-05-16 Richard Guenther <rguenther@suse.de>
16288
16289 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
16290 on deletion of the last stmt.
16291
d0208f9b
L
162922008-05-15 H.J. Lu <hongjiu.lu@intel.com>
16293
16294 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
16295 V8HImode for SSE2 and V16QImode for SSE4.1.
16296
1920df6c
KZ
162972008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
16298
16299 * cgraph.h (compute_inline_parameters): Made public.
16300 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
16301 variable_generate_summary, function_write_summary,
371a0575
UB
16302 variable_write_summary, variable_read_summary. Added generate_summary,
16303 write_summary, read_summary.
1920df6c
KZ
16304 * cgraphunit.c (cgraph_process_new_functions): Changed call from
16305 pass_ipa_inline.function_generate_summary, to
22129589 16306 compute_inline_parameters.
1920df6c
KZ
16307 * ipa-inline.c (compute_inline_parameters): Made public and added
16308 node parameter.
16309 (compute_inline_parameters_for_current): New function.
c62b3659 16310 (pass_inline_param): Now calls compute_inline_parameters_for_current.
1920df6c
KZ
16311 (inline_generate_summary): Removed parameter and made to loop over
16312 all cgraph nodes.
16313 (pass_ipa_inline): Updated for new IPA_PASS structure.
16314 * passes.c (execute_ipa_summary_passes): Now is called once per
16315 pass rather than once per node*pass.
22129589 16316
470a4c97
AS
163172008-05-15 Anatoly Sokolov <aesok@post.ru>
16318
22129589 16319 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
470a4c97
AS
16320 avr_have_mul_p, avr_asm_only_p): Remove variables.
16321 (avr_override_options): Remove initialization of removed variables.
22129589
AS
16322 (avr_file_start): Convert removed variables to fields of
16323 'struct base_arch_s *avr_current_arch'.
470a4c97
AS
16324 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
16325 (AVR_HAVE_MUL): (Ditto.).
16326 (AVR_HAVE_MOVW): (Ditto.).
22129589
AS
16327 (AVR_HAVE_LPMX): (Ditto.).
16328 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
470a4c97
AS
16329 avr_asm_only_p): Remove declaration.
16330
f4dea66f
DN
163312008-05-15 Diego Novillo <dnovillo@google.com>
16332
c62b3659 16333 * config/arm/arm.c (arm_return_in_memory): Fix return type.
f4dea66f
DN
16334 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
16335
36dafbd1
AN
163362008-05-15 Adam Nemet <anemet@caviumnetworks.com>
16337
16338 PR middle-end/36194
c62b3659
UB
16339 * combine.c (check_conversion): Rename back to check_promoted_subreg.
16340 Don't call record_truncated_value from here.
16341 (record_truncated_value): Turn it into a for_each_rtx callback.
16342 (record_truncated_values): New function.
16343 (combine_instructions): Call note_uses with record_truncated_values.
22129589 16344 Change name of check_conversion to check_promoted_subreg.
36dafbd1 16345
91a5b394
JJ
163462008-05-15 Janis Johnson <janis187@us.ibm.com>
16347
16348 * doc/sourcebuild.texi: Document support for torture tests.
16349
2819ae08
UB
163502008-05-15 Uros Bizjak <ubizjak@gmail.com>
16351
16352 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
16353 to alternative 4 of operand 2.
16354
9fe0cb7d
RG
163552008-05-15 Richard Guenther <rguenther@suse.de>
16356
16357 * tree-pass.h (current_pass): Declare.
16358 (get_pass_for_id): Likewise.
16359 * passes.c (passes_by_id, passes_by_id_size): New globals.
16360 (set_pass_for_id): New function.
16361 (get_pass_for_id): Likewise.
16362 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
16363 (execute_function_todo): Flush per function statistics.
16364 * toplev.c (compile_file): Init statistics.
16365 (general_init): Do early statistics initialization.
16366 (finalize): Finish statistics.
16367 * statistics.h (statistics_early_init): Declare.
16368 (statistics_init): Likewise.
16369 (statistics_fini): Likewise.
16370 (statistics_fini_pass): Likewise.
16371 (statistics_counter_event): Likewise.
16372 (statistics_histogram_event): Likewise.
16373 * statistics.c: New file.
16374 * Makefile.in (OBJS-common): Add statistics.o.
16375 (statistics.o): Add dependencies.
16376 * doc/invoke.texi (-fdump-statistics): Document.
16377
16378 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
16379 (insert): Likewise.
16380 (execute_pre): Use statistics_counter_event.
16381 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
16382 (substitute_and_fold): Increment it. Use statistics_counter_event.
16383
77f377f7
DN
163842008-05-15 Diego Novillo <dnovillo@google.com>
16385
16386 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
16387
16388 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
16389 * tree-ssa-alias.c (new_type_alias): Remove references to
16390 sub-variables from comment.
16391 * tree-ssa-operands.c (swap_tree_operands): Likewise.
16392
89b7851e
L
163932008-05-15 H.J. Lu <hongjiu.lu@intel.com>
16394
16395 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
16396 attribute to 1 only for insertps alternative.
16397
8fa477f7
BS
163982008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
16399
16400 * config/bfin/bfin.md (loadbytes): New pattern.
16401 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
16402 (bfin_init_builtins): Initialize it.
16403 (bdesc_1arg): Add it.
16404
4e8c438f
SL
164052008-05-15 Sa Liu <saliu@de.ibm.com>
16406
16407 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
16408 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
16409 * testsuite/lib/target-supports.exp: Add
16410 check_effective_target_fortran_integer_16.
16411
7ba20e60
BS
164122008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
16413
16414 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
16415 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
16416 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
16417 (TARGET_RETURN_IN_MEMORY): Define.
16418
81d19c06
RG
164192008-05-15 Richard Guenther <rguenther@suse.de>
16420
16421 PR middle-end/36244
16422 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
16423 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
16424 represent unmodifiable vars.
16425
9f59420d
RG
164262008-05-15 Richard Guenther <rguenther@suse.de>
16427
16428 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
16429 INDIRECT_REF and TARGET_MEM_REF.
16430 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
16431 TARGET_MEM_REF.
16432
6784c6e0
UB
164332008-05-15 Uros Bizjak <ubizjak@gmail.com>
16434 H.J. Lu <hongjiu.lu@intel.com>
16435
16436 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
16437 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
16438 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
16439 insn alternatives. Add missing alternatives.
16440 (*vec_concatv2di_rex64_sse4_1): Likewise.
16441 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
16442 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
16443 Require TARGET_SSE.
16444
8ded35f9
RG
164452008-05-15 Richard Guenther <rguenther@suse.de>
16446
16447 PR tree-optimization/36009
16448 PR tree-optimization/36204
16449 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
16450 (determine_invariantness_stmt): Record the loop a store is
16451 always executed in.
16452 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
16453 dependency.
16454
45ff5eda
RG
164552008-05-15 Richard Guenther <rguenther@suse.de>
16456
16457 PR tree-optimization/34330
16458 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
16459 through the pointer will alias the SMT.
16460
c5fcd670
AT
164612008-05-14 Andreas Tobler <a.tobler@schweiz.org>
16462
16463 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
16464
a3f63c28
L
164652008-05-14 H.J. Lu <hongjiu.lu@intel.com>
16466
16467 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
16468
71d46ca5
MM
164692008-05-14 Michael Meissner <michael.meissner@amd.com>
16470 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
16471
16472 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
16473 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
16474 (vashl_optab): New optab for vector/vector shifts.
16475 (vashr_optab): Ditto.
16476 (vlshr_optab): Ditto.
16477 (vrotl_optab): Ditto.
16478 (vrotr_optab): Ditto.
16479 (optab_subtype): New enum for optab_for_tree_code call.
16480 (optab_for_tree_code): Add enum optab_subtype argument.
16481
16482 * optabs.c (optab_for_tree_code): Take an additional argument to
16483 distinguish between a vector shift by a scalar and vector shift by
16484 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
16485 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
16486 vector shift by a vector.
16487 (expand_widen_pattern_expr): Pass additional argument to
16488 optab_for_tree_code.
16489
16490 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
16491 vrotl_optab, vrotr_optab.
16492
16493 * expr.c (expand_expr_real_1): Update calls to
16494 optab_for_tree_code to distinguish between vector shifted by a
16495 scalar and vector shifted by a vector.
16496 * tree-vectorizer.c (supportable_widening_operation): Ditto.
16497 (supportable_narrowing_operation): Ditto.
16498 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
16499 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
16500 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
16501 (vect_create_epilog_for_reduction): Ditto.
16502 (vectorizable_reduction): Ditto.
16503 (vectorizable_operation): Ditto.
16504 (vect_strided_store_supported): Ditto.
16505 (vect_strided_load_supported): Ditto.
16506 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
16507 * expmed.c (expand_shift): Ditto.
16508
16509 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
16510 scalar type.
16511 (ashr@var{m}3): Ditto.
16512 (vashl@var{m}3): Document new vector/vector shift standard name.
16513 (vashr@var{m}3): Ditto.
16514 (vlshr@var{m}3): Ditto.
16515 (vrotl@var{m}3): Ditto.
16516 (vrotr@var{m}3): Ditto.
16517
6784c6e0 16518 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
71d46ca5
MM
16519 (PPERM_INVERT): Ditto.
16520 (PPERM_REVERSE): Ditto.
16521 (PPERM_REV_INV): Ditto.
16522 (PPERM_ZERO): Ditto.
16523 (PPERM_ONES): Ditto.
16524 (PPERM_SIGN): Ditto.
16525 (PPERM_INV_SIGN): Ditto.
16526 (PPERM_SRC1): Ditto.
16527 (PPERM_SRC2): Ditto.
16528
16529 * config/i386/sse.md (mulv2di3): Add SSE5 support.
16530 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
16531 allows a memory operand to be the value being added, and split it
16532 to improve vectorization.
16533 (sse5_pmacsdqh_mem): Ditto.
16534 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
16535 (sse5_mulv2div2di3_high): Ditto.
16536 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
16537 (vec_pack_trunc_v4si): Ditto.
16538 (vec_pack_trunc_v2di): Ditto.
16539 (sse5_pcmov_<mode>): Remove code that tried to use use
16540 andps/andnps instead of pcmov.
16541 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
16542 pmacsdqh instructions.
16543 (vec_widen_smult_lo_v4si): Ditto.
16544
16545 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
16546 (PPERM_INVERT): Ditto.
16547 (PPERM_REVERSE): Ditto.
16548 (PPERM_REV_INV): Ditto.
16549 (PPERM_ZERO): Ditto.
16550 (PPERM_ONES): Ditto.
16551 (PPERM_SIGN): Ditto.
16552 (PPERM_INV_SIGN): Ditto.
16553 (PPERM_SRC1): Ditto.
16554 (PPERM_SRC2): Ditto.
16555 (ix86_expand_sse_movcc): Move the SSE5 test after the if
16556 true/false tests.
16557 (ix86_expand_int_vcond): If SSE5 generate all possible integer
16558 comparisons.
16559 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
16560 says ignore whether the last reference is a memory operand.
16561
165622008-05-14 Michael Meissner <michael.meissner@amd.com>
16563 Paolo Bonzini <bonzini at gnu dot org>
16564
16565 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
16566 shift patterns.
16567
6784c6e0 16568 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
71d46ca5
MM
16569 (vlshr<mode>3): Rename from vlshr<mode>3.
16570 (vashr<mode>3): Rename from vashr<mode>3.
16571 (mulv4sf3): Change the names of vector shift patterns.
16572 (mulv4si3): Ditto.
16573 (negv4sf2): Ditt.
16574
16575 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
16576 shift insns.
16577
6784c6e0 16578 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
71d46ca5
MM
16579 (SI_SHLHI): Ditto.
16580 (SI_SHL): Ditto.
16581 (SI_SHLI): Ditto.
16582 (SI_ROTH): Ditto.
16583 (SI_ROTHI): Ditto.
16584 (SI_ROT): Ditto.
16585 (SI_ROTI): Ditto.
16586 (SPU_RL_0): Ditto.
16587 (SPU_RL_1): Ditto.
16588 (SPU_RL_2): Ditto.
16589 (SPU_RL_3): Ditto.
16590 (SPU_RL_4): Ditto.
16591 (SPU_RL_5): Ditto.
16592 (SPU_RL_6): Ditto.
16593 (SPU_RL_7): Ditto.
16594 (SPU_SL_0): Ditto.
16595 (SPU_SL_1): Ditto.
16596 (SPU_SL_2): Ditto.
16597 (SPU_SL_3): Ditto.
16598 (SPU_SL_4): Ditto.
16599 (SPU_SL_5): Ditto.
16600 (SPU_SL_6): Ditto.
16601 (SPU_SL_7): Ditto.
16602
16603 * config/spu/spu.md (v): New iterator macro to add v for vector types.
16604 (floatunssidf2_internal): Change vector/vector shift names.
16605 (floatunsdidf2_internal): Ditto.
16606 (mulv8hi3): Ditto.
16607 (ashrdi3): Ditto.
16608 (ashrti3): Ditto.
16609 (cgt_df): Ditto.
16610 (cgt_v2df): Ditto.
16611 (dftsv): Ditto.
16612 (vashl<mode>3): Rename from ashl<mode>3.
16613 (vashr<mode>3): Rename from ashr<mode>3.
16614 (vlshr<mode>3): Rename from lshr<mode>3.
16615 (vrotl<mode>3): Rename from rotl<mode>3.
16616
550c9cf0
MM
166172008-05-14 Michael Meissner <michael.meissner@amd.com>
16618
16619 PR target/36224
6784c6e0
UB
16620 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
16621 multiply gives the wrong value when doing widening multiplies.
550c9cf0
MM
16622 (vec_widen_smult_lo_v4si): Ditto.
16623
84b8030f
KZ
166242008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
16625
16626 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
16627 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
22129589 16628 emit_library_call_value.
84b8030f
KZ
16629 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
16630 * tree.h (ECF_LIBCALL_BLOCK): Removed.
22129589 16631 * calls.c (initialize_argument_information, precompute_arguments,
84b8030f
KZ
16632 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
16633 (precompute_arguments): Removed flags parameter.
16634 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
22129589 16635
f403a4a2
RG
166362008-05-14 Richard Guenther <rguenther@suse.de>
16637
16638 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
16639 Make sure to register the store if the use is a PHI_NODE.
16640
da19297d
OH
166412008-05-14 Olivier Hainque <hainque@adacore.com>
16642
16643 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
16644 memory if the component is to be referenced in BLKmode according
16645 to get_inner_reference.
16646
1fd03c70
AN
166472008-05-14 Adam Nemet <anemet@caviumnetworks.com>
16648
16649 * calls.c (emit_library_call_value_1): Restore code clearing
6784c6e0 16650 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1fd03c70 16651
349c3166
OH
166522008-05-14 Olivier Hainque <hainque@adacore.com>
16653 Nicolas Roche <roche@adacore.com>
16654
16655 * configure.ac: Add support for a "gcc_subdir" variable in
16656 config-lang.in, to denote a subdirectory where the language/GCC
16657 integration files are to be found.
16658 * configure: Regenerate.
16659
2b8775f3
IR
166602008-05-14 Ira Rosen <irar@il.ibm.com>
16661
16662 PR tree-optimization/36098
16663 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
16664 value for the first load in the group in case of a gap.
16665 (vect_build_slp_tree): Check that there are no gaps in loads.
16666
d70dcf29
KZ
166672008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
16668
16669 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
16670 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
16671 expand_copysign_bit, ): Change call to emit_no_conflict_block to
16672 emit_insn and remove unneeded code to construct extra args.
16673 (emit_no_conflict_block): Removed.
16674 * optabls.h: (emit_no_conflict_block): Removed.
16675 * cse.c (cse_extended_basic_block): Remove search for
6784c6e0 16676 REG_NO_CONFLICT note.
d70dcf29
KZ
16677 * global.c: Removed incorrect comment added in revision 117.
16678 * expr.c (convert_move): Change call to emit_no_conflict_block to
16679 emit_insn.
16680 * recog.c: Change comments so that they do not mention
16681 REG_NO_CONFLICT.
16682 * local_alloc.c (combine_regs): Removed last parameter.
16683 (no_conflict_p): Removed.
16684 (block_alloc): Removed note, no_conflict_combined_regno and set
16685 local vars. Removed all code to process REG_NO_CONFLICT blocks.
16686 (combine_regs): Removed already_dead and code to look for
16687 REG_NO_CONFLICT notes.
16688 * lower_subreg (remove_retval_note): Removed code to look for
16689 REG_NO_CONFLICT block.
16690 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
16691 (resolve_clobber): Remove code to process libcalls that have
16692 REG_NO_CONFLICT notes.
16693 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
16694 case.
6784c6e0
UB
16695 * combine.c (can_combine_p, distribute_notes): Removed
16696 REG_NO_CONFLICT case.
16697 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
16698 to emit_insns.
d70dcf29
KZ
16699 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
16700 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6784c6e0 16701 Ditto.
d70dcf29 16702 * reg-notes.def (NO_CONFLICT): Removed.
c5fcd670 16703
cc44abe6
DM
167042008-05-14 David S. Miller <davem@davemloft.net>
16705
16706 * config/sparc/sparc.c (sparc_profile_hook): If
6784c6e0 16707 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
cc44abe6
DM
16708 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
16709 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
16710
0beb3d66
AK
167112008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
16712
16713 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
16714
08e64088
UB
167152008-05-13 Uros Bizjak <ubizjak@gmail.com>
16716
16717 PR target/36222
16718 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
16719 and op1 expansion before vector concat to have less live pseudos.
16720
af7ae5d1
L
167212008-05-13 H.J. Lu <hongjiu.lu@intel.com>
16722
16723 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
16724 ix86_expand_vector_set if supported.
16725
5db9ba0c
DN
167262008-05-13 Diego Novillo <dnovillo@google.com>
16727 Kenneth Zadeck <zadeck@naturalbridge.com>
16728
16729 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
16730
16731 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
16732 phinodes_print_statistics, init_ssanames, fini_ssanames,
08e64088
UB
16733 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
16734 release_ssa_name, release_defs, replace_ssa_name_symbol,
5db9ba0c
DN
16735 ssanames_print_statistics): Move ...
16736 * tree-flow.h: ... here.
08e64088
UB
16737 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
16738 Use FN instead of cfun.
5db9ba0c 16739 (make_ssa_name_fn): Rename from make_ssa_name.
08e64088 16740 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
5db9ba0c 16741 * tree-flow-inline.h (make_ssa_name): Move from
08e64088 16742 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
5db9ba0c
DN
16743 * omp-low.c (expand_omp_parallel):
16744 * tree-flow-inline.h (redirect_edge_var_map_result):
6784c6e0
UB
16745 * tree-ssa.c (init_tree_ssa): Add argument FN.
16746 Use it instead of cfun. Update all users.
5db9ba0c 16747
899015a0
TT
167482008-05-13 Tom Tromey <tromey@redhat.com>
16749
16750 PR preprocessor/22168:
16751 * doc/cpp.texi (Top): Update menu.
16752 (Alternatives to Wrapper #ifndef): New node.
16753 (Other Directives): Document deprecation.
16754 (Obsolete Features): Remove menu.
16755 (Assertions): Merge node into Obsolete Features.
16756 (Obsolete once-only headers): Move earlier; rename to Alternatives
16757 to Wrapper #ifndef.
16758 * doc/cppopts.texi: Update.
16759 * c.opt (Wdeprecated): Enable for C and ObjC.
16760 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
16761 (C++ Dialect Options): Move -Wno-deprecated from here to...
16762 (Warning Options): ... here.
16763
8ebc39d8
RG
167642008-05-13 Richard Guenther <rguenther@suse.de>
16765
16766 PR middle-end/36227
16767 * fold-const.c (fold_sign_changed_comparison): Do not allow
16768 changes in pointer-ness.
16769
ef0a7607
KK
167702008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
16771
16772 PR target/24713
16773 * config/sh/sh.c (sh_expand_prologue): Don't clear
16774 RTX_FRAME_RELATED_P for push insns.
16775
9c218cfc
AH
167762008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
16777
16778 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
16779
4c75f709
AS
167802008-05-12 Anatoly Sokolov <aesok@post.ru>
16781
16782 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
16783 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
16784 Use 'machine->is_leaf' instead of 'leaf_func_p'.
16785
fcc9fe1e
L
167862008-05-12 H.J. Lu <hongjiu.lu@intel.com>
16787
16788 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
16789 (*vec_concatv4sf_sse): This.
16790 (*sse2_concatv2si): Renamed to ...
16791 (*vec_concatv2si_sse2): This.
16792 (*sse1_concatv2si): Renamed to ...
16793 (*vec_concatv2si_sse): This.
16794 (*vec_concatv2di_rex): Renamed to ...
16795 (*vec_concatv2di_rex64): This.
16796 (*vec_concatv2si_sse4_1): New.
16797 (*vec_concatv2di_rex64_sse4_1): Likewise.
16798
162bfc7e
UB
167992008-05-12 Uros Bizjak <ubizjak@gmail.com>
16800
16801 PR rtl-optimization/36111
16802 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
16803 that was created for swappable operands.
16804
3d4e720a
ST
168052008-05-12 Samuel Tardieu <sam@rfc1149.net>
16806
16807 PR ada/36001
16808 * Makefile.in: Substitute GNATMAKE and GNATBIND.
16809 * configure.ac: Add call to ACX_PROG_GNAT.
16810
fc54bc84
VR
168112008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
16812
16813 * optc-gen.awk: Fix comment typo.
16814
2a157700
AL
168152008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
16816
16817 * pretty-print.c (pp_integer_with_precision): Use
16818 HOST_LONG_LONG_FORMAT.
16819
4e00d960
KZ
168202008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
16821
16822 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
22129589 16823
b282a8d3
L
168242008-05-10 H.J. Lu <hongjiu.lu@intel.com>
16825
16826 * config/i386/i386.c (bdesc_ptest): Removed.
16827 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
16828 (bdesc_args): Add __builtin_ia32_ptestz128,
16829 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
16830 (ix86_init_mmx_sse_builtins): Updated.
16831 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
16832 (ix86_expand_builtin): Updated.
16833
17d23165
RS
168342008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
16835
16836 * tree-cfg.c (valid_fixed_convert_types_p): New function.
16837 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
16838
d35910bf
UB
168392008-05-10 Uros Bizjak <ubizjak@gmail.com>
16840
16841 * value-prof.c (interesting_stringop_to_profile): Do not
16842 return early for BUILT_IN_MEMPCPY.
16843
17b29c0a
L
168442008-05-09 H.J. Lu <hongjiu.lu@intel.com>
16845
16846 * calls.c (expand_call): Don't use callgraph to increase
16847 preferred_stack_boundary.
16848
16849 * cgraph.h (cgraph_rtl_info): Use unsigned on
16850 preferred_incoming_stack_boundary.
16851
16852 * final.c (rest_of_clean_state): Use unsigned on
16853 preferred_stack_boundary.
16854
4822e563
TT
168552008-05-09 Tom Tromey <tromey@redhat.com>
16856
16857 PR preprocessor/22231:
16858 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
16859 proceeding.
16860
53a8f709
UB
168612008-05-09 Uros Bizjak <ubizjak@gmail.com>
16862
16863 PR tree-optimization/36129
162bfc7e 16864 * tree-ssa-ccp.c: Include value-prof.h.
53a8f709
UB
16865 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
16866 built-in function was folded to a constant.
162bfc7e 16867 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
53a8f709 16868
3f227a8c
JS
168692008-05-09 Jan Sjodin <jan.sjodin@amd.com>
16870 Sebastian Pop <sebastian.pop@amd.com>
16871
16872 * tree-scalar-evolution.c: Document instantiate_scev.
16873 (instantiate_parameters_1): Renamed instantiate_scev_1.
16874 Don't use the same loop for instantiation_loop and evolution_loop.
16875 (instantiate_scev): New.
16876 (instantiate_parameters): Moved...
16877 (resolve_mixers): Update call to instantiate_scev_1 to pass the
16878 same loop twice. Maintains the semantics for this function.
16879 * tree-scalar-evolution.h (instantiate_scev): Declare.
16880 (instantiate_parameters): ...here. Now static inline.
16881 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
16882 instead of resolve_mixers.
16883
a3e19be6
MK
168842008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
16885
16886 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
16887
1043771b
TB
168882008-05-09 Tomas Bily <tbily@suse.cz>
16889
16890 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
16891 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
16892 * tree-ssa-structalias.c (get_constraint_for): Likewise.
16893 * c-common.c (c_common_truthvalue_conversion): Likewise.
16894 * tree-object-size.c (compute_object_offset): Likewise.
16895 * tree-inline.c (estimate_num_insns_1): Likewise.
16896 * varasm.c (const_hash_1, compare_constant, copy_constant)
16897 (compute_reloc_for_constant, output_addressed_constants)
16898 (initializer_constant_valid_p): Likewise.
16899 * c-omp.c (check_omp_for_incr_expr): Likewise.
16900 * gimplify.c (gimplify_expr): Likewise.
16901 * c-typeck.c (c_finish_return): Likewise.
16902 * tree-vectorizer.c (supportable_widening_operation)
16903 (supportable_narrowing_operation): Likewise.
16904 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
16905 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
16906 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
16907 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
16908 (descr_info_loc): Likewise.
16909 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
16910 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
16911 (fold_unary): Likewise.
16912 * builtins.c (get_pointer_alignment): Likewise.
16913 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
16914 (instantiate_parameters_1): Likewise.
16915 * tree.c (expr_align, stabilize_reference): Likewise.
16916 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
16917 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
16918 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
16919 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
16920 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
162bfc7e
UB
16921 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
16922 Likewise.
1043771b
TB
16923 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
16924 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
16925 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
16926 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
16927 (forward_propagate_comparison)
16928 (tree_ssa_forward_propagate_single_use_vars): Likewise.
16929 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
16930 * emit-rtl.c (component_ref_for_mem_expr)
16931 (set_mem_attributes_minus_bitpos): Likewise.
16932 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
162bfc7e
UB
16933 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
16934 Likewise.
1043771b
TB
16935 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
16936 (build_function_call, pointer_diff, build_compound_expr)
16937 (c_finish_return): Likewise.
16938 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
162bfc7e
UB
16939 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
16940 Likewise.
1043771b
TB
16941 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
16942 * expr.c (is_aligning_offset): Likewise.
16943 * tree-ssa-alias.c (is_escape_site): Likewise.
16944 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
16945 (check_all_va_list_escapes): Likewise.
16946 * tree-ssa-loop-ivopts.c (determine_base_object)
16947 (determine_common_wider_type): Likewise.
16948 * dojump.c (do_jump): Likewise.
16949 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
16950 * tree-gimple.c (is_gimple_cast): Likewise.
16951 * fold-const.c (decode_field_reference, )
16952 (fold_sign_changed_comparison, fold_unary, fold_comparison)
16953 (fold_binary): Likewise.
16954 * tree-ssa-alias-warnings.c (find_alias_site_helper)
16955 (already_warned_in_frontend_p): Likewise.
16956 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
16957 * tree.c (really_constant_p, get_unwidened): Likewise.
16958 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
16959 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
162bfc7e
UB
16960 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
16961 Likewise.
16962 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
16963 CONVERT_EXPR_P.
1043771b
TB
16964 (CONVERT_EXPR_P): Define.
16965 (CASE_CONVERT): Define.
22129589 16966
5ba5ab9b
KZ
169672008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
16968
16969 PR middle-end/36117
162bfc7e
UB
16970 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
16971 (delete_unmarked_insns): When deleting a call, call
5ba5ab9b
KZ
16972 delete_unreachable_blocks.
16973 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
162bfc7e
UB
16974 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
16975
1353232d
RG
169762008-05-08 Richard Guenther <rguenther@suse.de>
16977
16978 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
16979 (-ftree-salias): Likewise.
16980 (salias-max-implicit-fields): Remove param documentation.
16981 (salias-max-array-elements): Likewise.
16982 * tree-pass.h (pass_create_structure_vars): Remove.
16983 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
16984 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
16985 * tree-ssa-alias.c (create_structure_vars): Remove.
16986 (gate_structure_vars): Likewise.
16987 (pass_create_structure_vars): Likewise.
16988 (gate_build_alias): Likewise.
16989 (pass_build_alias): Adjust to run always and dump the function.
16990 * common.opt (ftree-salias): Hide.
16991 * passes.c (init_optimization_passes): Remove
16992 pass_create_structure_vars, adjust comment.
16993 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
16994 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
16995 * opts.c (decode_options): Do not set flag_tree_salias.
16996 (common_handle_option): Add OPT_ftree_salias to the backward
16997 compatibility section.
16998
31de5b77
RG
169992008-05-08 Richard Guenther <rguenther@suse.de>
17000
17001 * tree-flow-inline.h (var_can_have_subvars): Move ...
17002 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
17003 * tree-flow.h (var_can_have_subvars): Remove.
17004 (push_fields_onto_fieldstack): Remove.
17005 (sort_fieldstack): Likewise.
17006 (struct fieldoff): Move ...
17007 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
17008 alias_set and base_for_components fields.
17009 (sort_fieldstack): Make static.
17010 (push_fields_onto_fieldstack): Likewise. Remove code that
17011 handles anything but RECORD_TYPEs. Remove alias_set and
17012 base_for_components handling.
17013 (create_variable_info_for): Adjust.
17014
c1a3620a 170152008-05-08 Seongbae Park <seongbae.park@gmail.com>
b70837af 17016
c1a3620a
SP
17017 * common.opt (Wframe-larger-than=): Shorten the help message
17018 to one line.
17019 * doc/invoke.texi (Wframe-larger-than=): Add more description.
17020
e49cf927 170212008-05-08 Rafael Espíndola <espindola@google.com>
04b03edb
RAE
17022
17023 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
17024 trap.
17025 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
17026 trap and that both operands are gimple values.
17027 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
17028 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
17029 is a fp operation.
17030
96c92f47
RS
170312008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
17032
17033 * read-rtl.c (join_c_conditions): Return the first string if the
17034 two strings are equal.
17035
e663da80
RS
170362008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
17037
17038 * gensupport.h (pred_data): Add a "num_codes" field.
17039 (add_predicate_code): Declare.
17040 * gensupport.c (add_predicate_code): New function.
17041 (std_pred_table): Add an "allows_const_p" field.
17042 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
17043 Remove the (incomplete) list of such codes from the codes field.
17044 (init_predicate_table): Use add_predicate_code. Add all
17045 RTX_CONST_OBJs if allows_const_p is true.
17046 * genrecog.c (process_define_predicate): Use add_predicate_code.
17047
977502ff
DD
170482008-05-08 David Daney <ddaney@avtrex.com>
17049 Richard Sandiford <rsandifo@nildram.co.uk>
22129589 17050
977502ff
DD
17051 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
17052 special case of constant zero operands.
17053 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
17054 old and new values. Special case constant zero values.
17055 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
17056 fails.
17057 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
17058 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
17059
627ab861
PB
170602008-05-08 Paolo Bonzini <bonzini@gnu.org>
17061
17062 PR target/36090
17063 * simplify-rtx.c (simplify_plus_minus): Create CONST of
17064 similar RTX_CONST_OBJ before CONST_INT.
17065
41ccb5d1
SE
170662008-05-08 Steve Ellcey <sje@cup.hp.com>
17067
17068 * stmt.c (expand_stack_restore): Change sa mode if needed.
17069
e8d6aaee
RG
170702008-05-08 Richard Guenther <rguenther@suse.de>
17071
17072 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
17073 return type to bool.
17074 (ix86_sol10_return_in_memory): Likewise.
17075 (ix86_i386elf_return_in_memory): Likewise.
17076 (ix86_i386interix_return_in_memory): Likewise.
17077 * config/i386/i386.c (ix86_return_in_memory): Likewise.
17078 (ix86_sol10_return_in_memory): Likewise.
17079 (ix86_i386elf_return_in_memory): Likewise.
17080 (ix86_i386interix_return_in_memory): Likewise.
17081
033df0b9
KT
170822008-05-08 Kai Tietz <kai.tietz@onevision.com>
17083
d7822892 17084 PR bootstrap/36180
033df0b9
KT
17085 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
17086 fndecl argument.
d7822892
UB
17087 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
17088 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
17089 declared in front.
033df0b9 17090
5611cf0b
RG
170912008-05-08 Richard Guenther <rguenther@suse.de>
17092
17093 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
17094 * tree-data-ref.h (struct dr_alias): Remove subvars field.
17095 (DR_SUBVARS): Remove.
17096 * tree-dfa.c (dump_subvars_for): Remove.
17097 (debug_subvars_for): Likewise.
17098 (dump_variable): Do not dump subvars.
17099 (remove_referenced_var): Do not remove subvars.
17100 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
17101 (lookup_subvars_for_var): Remove.
17102 (get_subvars_for_var): Likewise.
17103 (get_subvars_at): Likewise.
17104 (get_first_overlapping_subvar): Likewise.
17105 (overlap_subvar): Likewise.
17106 * tree-flow.h (subvar_t): Remove.
17107 (struct var_ann_d): Remove subvars field.
17108 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
17109 argument. Remove special handling of SFTs.
17110 (compute_tag_properties): Likewise.
17111 (set_initial_properties): Likewise.
17112 (compute_call_clobbered): Likewise.
17113 (count_mem_refs): Likewise.
17114 (compute_memory_partitions): Likewise.
17115 (compute_flow_insensitive_aliasing): Likewise.
17116 (setup_pointers_and_addressables): Likewise.
17117 (new_type_alias): Likewise.
17118 (struct used_part): Remove.
17119 (used_portions): Likewise.
17120 (struct used_part_map): Likewise.
17121 (used_part_map_eq): Likewise.
17122 (used_part_map_hash): Likewise.
17123 (free_used_part_map): Likewise.
17124 (up_lookup): Likewise.
17125 (up_insert): Likewise.
17126 (get_or_create_used_part_for): Likewise.
17127 (create_sft): Likewise.
17128 (create_overlap_variables_for): Likewise.
17129 (find_used_portions): Likewise.
17130 (create_structure_vars): Likewise.
17131 * tree.def (STRUCT_FIELD_TAG): Remove.
17132 * tree.h (MTAG_P): Adjust.
17133 (struct tree_memory_tag): Remove base_for_components and
17134 unpartitionable flags.
17135 (struct tree_struct_field_tag): Remove.
17136 (SFT_PARENT_VAR): Likewise.
17137 (SFT_OFFSET): Likewise.
17138 (SFT_SIZE): Likewise.
17139 (SFT_NONADDRESSABLE_P): Likewise.
17140 (SFT_ALIAS_SET): Likewise.
17141 (SFT_UNPARTITIONABLE_P): Likewise.
17142 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
17143 (union tree_node): Remove sft field.
17144 * alias.c (get_alias_set): Remove special handling of SFTs.
17145 * print-tree.c (print_node): Remove handling of SFTs.
17146 * tree-dump.c (dequeue_and_dump): Likewise.
17147 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
17148 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
17149 * tree-predcom.c (set_alias_info): Do not set subvars.
17150 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
17151 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
17152 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
17153 (add_vars_for_offset): Remove.
17154 (add_virtual_operand): Remove special handling of SFTs.
17155 (add_call_clobber_ops): Likewise.
17156 (add_call_read_ops): Likewise.
17157 (get_asm_expr_operands): Likewise.
17158 (get_modify_stmt_operands): Likewise.
17159 (get_expr_operands): Likewise.
17160 (add_to_addressable_set): Likewise.
17161 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
17162 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
162bfc7e 17163 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5611cf0b
RG
17164 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
17165 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
17166 (tree_node_structure): Likewise.
17167 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
17168 handling of SFTs.
17169 (find_what_p_points_to): Likewise.
17170
fb4b5171
SL
171712008-05-08 Sa Liu <saliu@de.ibm.com>
17172
17173 * config/spu/spu.md: Fixed subti3 pattern.
fb4b5171 17174
1b674de0
RG
171752008-05-08 Richard Guenther <rguenther@suse.de>
17176
17177 PR middle-end/36154
17178 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
17179 sure to create a representative for trailing arrays for PTA.
17180
b13e7b6c
RG
171812008-05-08 Richard Guenther <rguenther@suse.de>
17182
17183 PR middle-end/36172
17184 * fold-const.c (operand_equal_p): Two objects which types
17185 differ in pointerness are not equal.
17186
d7822892 171872008-05-08 Kai Tietz <kai.tietz@onevision.com>
81464b2c
KT
17188
17189 * calls.c (compute_argument_block_size): Add argument tree fndecl.
17190 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
17191 (emit_library_call_value_1): Add new variable fndecl initialized by
17192 NULL_TREE. It should be the decl type of orgfun, but this information
17193 seems not to be available here, so it uses the default calling abi.
17194 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
17195 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
17196 by TARGET_RETURN_IN_MEMORY.
17197 * config/i386/i386-interix.h: Likewise.
17198 * config/i386/i386.h: Likewise.
17199 * config/i386/i386elf.h: Likewise.
17200 * config/i386/ptx4-i.h: Likewise.
17201 * config/i386/sol2-10.h: Likewise.
17202 * config/i386/sysv4.h: Likewise.
17203 * config/i386/vx-common.h: Likewise.
17204 * config/cris/cris.h: Removed #if 0 clause.
d7822892 17205 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
81464b2c
KT
17206 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
17207 argument.
17208 (ix86_sol10_return_in_memory): Likewise.
17209 (ix86_i386elf_return_in_memory): New.
17210 (ix86_i386interix_return_in_memory): New.
17211 * config/mt/mt-protos.h (mt_return_in_memory): New.
17212 * config/mt/mt.c: Likewise.
17213 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
17214 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
17215 * config/bfin/bfin.h: Likewise.
17216 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
17217 argument.
17218 * config/bfin/bfin.c: Likewise.
17219 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
17220 * config/alpha/unicosmk.h: Likewise.
17221 * config/i386/cygming.h: Likewise.
17222 * config/iq2000/iq2000.h: Likewise.
17223 * config/mips/mips.h: Likewise.
17224 * config/mn10300/mn10300.h: Likewise.
17225 * config/rs6000/rs6000.h: Likewise.
17226 * config/score/score.h: Likewise.
17227 * config/spu/spu.h: Likewise.
17228 * config/v850/v850.h: Likewise.
17229 * defaults.h: Likewise.
17230 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
d7822892
UB
17231 * expr.c (emit_block_move): Adjust use of
17232 OUTGOING_REG_PARM_STACK_SPACE.
81464b2c
KT
17233 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
17234 OUTGOING_REG_PARM_STACK_SPACE.
17235 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
17236
4218dc2d
JJ
172372008-05-08 Jakub Jelinek <jakub@redhat.com>
17238
17239 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
17240 on OMP_RETURN for OMP_FOR.
17241
1f16b47c
JJ
17242 PR debug/35896
17243 * dwarf2out.c (dw_expand_expr, common_check): Removed.
17244 (fortran_common): New function.
17245 (gen_variable_die): Call fortran_common instead of common_check,
17246 adjust for it returning tree instead of rtx. Formatting.
17247
4218dc2d 172482008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
becfd6e5 17249
d7822892
UB
17250 PR rtl/7335
17251 PR rtl/33826
17252 * see.c (see_copy_insn): Copy new pure const attributes for new call.
17253 * c-decl.c (merge_decls): Ditto.
17254 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
17255 to RTL_CONST_OR_PURE_CALL_P.
17256 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
17257 Initialized DECL_LOOPING_CONST_PURE.
17258 (process_call_operands): Set tree_side_effects properly.
17259 * tree.h (TREE_READONLY_DECL_P): Removed.
17260 (DECL_IS_PURE): Renamed to DECL_PURE_P.
17261 (DECL_LOOPING_OR_CONST_P): New macro.
17262 (struct tree_function_decl): Added looping_const_or_pure_p.
17263 (ECF_*) Renumbered.
17264 (ECF_LOOPING_OR_CONST_P): New macro.
17265 * rtlanal.c (pure_const_p): Removed.
17266 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
17267 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
17268 to RTL_CONST_CALL_P.
17269 * ipa-pure-const.c (pure_const_state_e): Added looping field.
17270 (check_decl, check_tree, check_call, scan_function): Initialize
17271 looping.
17272 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
17273 (static_execute): Set looping true for recursive functions.
17274 Undo setting state to IPA_NEITHER for recursive functions.
22129589 17275 * cse.c (cse_insn):
d7822892 17276 * ifcvt.c (noce_can_store_speculate_p): Changed
22129589 17277 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
d7822892
UB
17278 RTL_CONST_OR_PURE_CALL_P.
17279 * dse.c (scan_insn): Ditto.
17280 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
17281 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
17282 RTL_CONST_OR_PURE_CALL_P.
17283 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
17284 pure_call_p to RTL_CONST_CALL_P.
17285 * gimplify.c (gimplify_call_expr): Clear side effects for
17286 non-looping pure and constant calls.
17287 * calls.c (emit_call_1): Set rtl flags from ecf flags.
17288 (flags_from_decl_or_type): Set ecf flags from decl flags.
17289 (initialize_argument_information): Turn off
17290 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
17291 Change const to pure if callee_copies is true rather than just
17292 turning off const.
17293 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
17294 way of marking pure calls.
17295 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
17296 Remove hack that was supposed to fix pr7335 and remove old
17297 way of marking pure calls.
17298 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
17299 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
17300 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
17301 RTL_CONST_OR_PURE_CALL_P.
17302 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
17303 * loop-invariant.c (find_exits, find_invariant_bb): Changed
17304 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
17305 * sched-deps.c (schedule_analyze): Ditto.
17306 * rtl.h (struct rtx_def): Use call field, unchanging field, and
17307 return_val field of calls to represent pure and const function info.
17308 (CONST_OR_PURE_CALL_P): Deleted macro.
17309 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
17310 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
17311 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
17312 TREE_READONLY.
17313 * tree-optimize.c (execute_fixup_cfg): Added test for
17314 ECF_LOOPING_CONST_OR_PURE.
17315 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
17316 DECL_PURE_P.
17317 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
17318 effects for looping pure or const calls.
22129589 17319 (verify_gimple_expr): Added verification code.
d7822892
UB
17320 * config/alpha/alpha.c (alpha_legitimize_address,
17321 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
17322 RTL_CONST_CALL_P.
17323 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
17324 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
17325 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
17326 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
17327 RTL_CONST_OR_PURE_CALL_P.
17328 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
17329 and const calls to be deleted.
becfd6e5 17330
d7822892 173312008-05-07 Uros Bizjak <ubizjak@gmail.com>
ffbaf337
UB
17332
17333 PR target/35714
17334 * config/i386/mmx.md (mmx_subv2sf3): New expander.
17335 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
17336 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
17337 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
17338 to handle nonimmediate operands.
17339 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
17340 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
17341 to handle nonimmediate operands.
17342 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
17343 (mmx_pmulhrwv4hi3): New expander. Use
17344 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17345 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
17346 (sse2_umulv1siv1di3): New expander. Use
17347 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17348 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
17349 (mmx_eq<mode>3): New expander. Use
17350 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17351 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
17352 (mmx_uavgv8qi3): New expander. Use
17353 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17354 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
17355 (mmx_uavgv4hi3): New expander. Use
17356 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17357
17358 * config/i386/sse.md
3a3f9d87 17359 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17360 to handle nonimmediate operands.
3a3f9d87 17361 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17362 to handle nonimmediate operands.
3a3f9d87 17363 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17364 to handle nonimmediate operands.
3a3f9d87 17365 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17366 to handle nonimmediate operands.
3a3f9d87 17367 (sse2_unpckhpd_exp): New expander. Use
ffbaf337 17368 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 17369 (sse2_unpcklpd_exp): New expander. Use
ffbaf337 17370 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 17371 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 17372 to handle nonimmediate operands.
ffbaf337
UB
17373 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
17374 to handle nonimmediate operands.
17375 (*sse2_<plusminus_insn><mode>3): Rename from
17376 sse2_<plusminus_insn><mode>3 insn pattern.
17377 (sse2_<plusminus_insn><mode>3): New expander. Use
17378 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17379 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
17380 (sse2_umulv2siv2di3): New expander. Use
17381 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17382 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
17383 (sse4_1_mulv2siv2di3): New expander. Use
17384 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17385 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
17386 (sse2_pmaddwd): New expander. Use
17387 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17388 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
17389 (sse2_eq<mode>3): New expander. Use
17390 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17391 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
17392 (sse4_1_eqv2di3): New expander. Use
17393 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17394 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
17395 (sse2_uavgv16qi3): New expander. Use
17396 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17397 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
17398 (sse2_uavgv16qi3): New expander. Use
17399 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17400 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
17401 (sse2_uavgv8hi3): New expander. Use
17402 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17403 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
17404 (ssse3_pmulhrswv8hi3): New expander. Use
17405 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17406 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
17407 (ssse3_pmulhrswv4hi3): New expander. Use
17408 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17409
17410 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
17411 (<sse>_vmmul<mode>3): Ditto.
17412 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
17413 (divv2df3): Ditto.
17414 (ssse3_pmaddubsw128): Use register_operand for operand 1.
17415 (ssse3_pmaddubsw): Ditto.
17416
3a3f9d87
UB
17417 * config/i386/i386.c (struct_builtin_description)
17418 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
17419 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
17420 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
17421 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
17422 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
17423 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
17424 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
17425 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
17426 (ix86_fixup_binary_operands): Assert that src1
ffbaf337
UB
17427 and src2 must have the same mode when swapped.
17428 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
17429 and ix86_binary_operator_ok. Do not force operands in registers
17430 when optimizing.
17431
95622280
JH
174322008-05-07 Jan Hubicka <jh@suse.cz>
17433
17434 * cgraph.c (dump_cgraph_node): Update.
17435 * cgraph.h (cgraph_local_info): Break out inline summary.
17436 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
17437 hook.
17438 * ipa-inline (inline_summary): New accestor function.
17439 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
17440 cgraph_decide_inlining, compute_inline_parameters): Update.
17441 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
17442
96fcacb7
MK
174432008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
17444
17445 Cleanup ColdFire scheduling support and add V4 pipeline model.
17446
17447 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
17448 (define_attr cpu): Add cfv4 value.
17449 (define_attr type, define_attr type1): Merge into a single 'type'
17450 attribute. Update all uses.
17451 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
17452 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
17453 Update all uses.
17454 (define_attr opx_mem, define_attr opy_mem): Remove.
17455 (define_attr op_mem): Clean up, update comment.
17456 (define_attr size): Use specific values instead of general int.
17457 (define_attr guess, define_attr split): Remove. Update all uses.
17458 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
17459 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
17460 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
17461 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
17462 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
17463 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
17464 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
17465 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
17466 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
17467 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
17468 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
17469 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
17470 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
17471 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
17472 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
17473 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
17474 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
17475 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
17476 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
17477 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
17478 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
17479 Update or set attributes.
17480 (stack_tie): New fake instruction.
17481
17482 * config/m68k/m68k.h (TUNE_CFV4): New macro.
17483 (m68k_sched_attr_size): Update declaration.
17484 (m68k_sched_attr_type2): Remove.
17485 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
17486 Declare new bypass predicates.
17487
17488 * config/m68k/m68k.c (m68k_sched_issue_rate,
17489 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
17490 implementations.
17491 (TARGET_SCHED_ISSUE_RATE,
17492 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
17493 (override_options): Handle scheduling for ColdFire V4 core.
17494 (m68k_expand_prologue): Emit stack_tie.
17495 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
17496 'OP_TYPE_FPN'. Update all uses.
17497 (sched_guess_p): Remove.
17498 (sched_address_type): Handle symbolic addresses.
17499 (sched_get_operand): New static function.
17500 (sched_operand_type): Merge into sched_attr_op_type.
17501 (sched_attr_op_type): Handle FP registers, handle quick constants,
17502 update.
17503 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
17504 (m68k_sched_attr_size): Update. Move logic to ...
17505 (sched_get_attr_size_int): New static function.
17506 (sched_get_opxy_mem_type): New static function.
17507 (m68k_sched_attr_op_mem): Update.
17508 (m68k_sched_attr_type2): Remove.
17509 (sched_cfv4_bypass_data): New static variable.
17510 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
17511 (m68k_sched_issue_rate): Implement scheduler hook.
17512 (struct _sched_ib: enabled_p): New field.
17513 (m68k_sched_variable_issue): Update. Handle V4.
17514 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
17515 sched_dump_class_func_t, sched_dump_split_class,
17516 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
17517 sched_dump_dfa_class, m68k_sched_dump): Remove.
17518 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
17519 hook.
17520 (m68k_sched_init_global): Remove statisctics dumping, introduce
17521 sanity check that all instructions have pipeline reservations. Handle
17522 ColdFire V4 core.
17523 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
17524 Handle ColdFire V4 core.
17525 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
17526 New static functions.
17527 (m68k_sched_address_bypass_p): New bypass predicate.
17528 (sched_get_indexed_address_scale): New static function.
17529 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
17530
17531 * cf.md: Update comments.
17532 (define_attr type2): Remove. Use 'type' attribute instead.
17533 Update all uses.
17534 (cf_ib): Rename to cfv123_ib. Update all uses.
17535 (cf_oep): Rename to cfv123_oep. Update all uses.
17536 (cf_chr): Rename to cfv123_chr. Update all uses.
17537 (cf_mem): Rename to cfv123_mem. Update all uses.
17538 (cf_mac): Move to more appropriate place.
17539 (cfv123_guess): New automaton and cpu_unit.
17540 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
17541 Update uses of 'size' attribute. Handle before reload scheduling.
17542 (cfv123_guess): New dummy reservation for unhandled instructions.
17543 (cfv4_*): Pipeline description of ColdFire V4 core.
17544 (ignore): New reservation to handle 'ignore' type.
17545
2ee510b4
ILT
175462008-05-07 Ian Lance Taylor <iant@google.com>
17547
17548 PR middle-end/36013
17549 * gimplify.c (find_single_pointer_decl_1): Don't look through
17550 indirections.
17551 (find_single_pointer_decl): Adjust comments.
17552
c18c98c0
JJ
175532008-05-07 Jakub Jelinek <jakub@redhat.com>
17554
f61edbf6
JJ
17555 PR middle-end/36137
17556 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
17557 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
17558
c18c98c0
JJ
17559 PR middle-end/36106
17560 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
17561 integral type rather than floating point, then VIEW_CONVERT_EXPR
17562 to the floating point type.
17563
c18c98c0 175642008-05-07 Uros Bizjak <ubizjak@gmail.com>
537d4fa6
UB
17565
17566 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
17567 TFmode op0 to register.
17568
5f04ff80
AM
175692008-05-07 Alan Modra <amodra@bigpond.net.au>
17570
17571 * c-decl.c (grokdeclarator): Comment typo.
17572
c6c6b7aa
AH
175732008-05-06 Aldy Hernandez <aldyh@redhat.com>
17574
17575 * tree-flow.h: Remove prototype for computed_goto_p.
17576 * tree-cfg.c (computed_goto_p): Make static.
17577
4317a2fa
L
175782008-05-06 H.J. Lu <hongjiu.lu@intel.com>
17579
17580 PR target/35657
d0b48c67 17581 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4317a2fa
L
17582 (contains_aligned_value_p): This. Handle _Decimal128.
17583 (ix86_function_arg_boundary): Only align _Decimal128 to its
17584 natural boundary and handle it properly.
17585
c43f07af
MJ
175862008-05-06 Martin Jambor <mjambor@suse.cz>
17587
4317a2fa
L
17588 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
17589 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
17590 (ipcp_method_set_orig_node): Removed.
17591 (ipcp_cval_get_cvalue_type): Removed.
17592 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
17593 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
17594 (ipcp_cval_set_cvalue_type): Removed.
17595 (ipcp_cval_get_cvalue): Removed.
17596 (ipcp_cval_set_cvalue): Removed.
17597 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
17598 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
17599 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
17600 (ipcp_cval_meet): Renamed to ipa_lattice_meet
17601 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
17602 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
17603 (ipcp_get_ith_lattice): Changed parameters.
17604 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
17605 (ipcp_lattice_from_jfunc): Changed parameters.
c43f07af
MJ
17606 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
17607 (ipcp_method_cval_print): Added temporary variable info.
17608 (ipcp_redirect): Removed already unused local variable caller.
17609 (ipcp_redirect): New temporary variable orig_callee_info
17610 (ipcp_redirect): Removed newly unused local variable callee.
17611 (ipcp_redirect): Removed (a bit confusing) local variable type.
17612 (ipcp_insert_stage): Added local variable info.
22129589 17613 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
c43f07af
MJ
17614 renamed too
17615 (ipcp_formal_create): Removed.
17616 (ipcp_method_cval_set): Removed.
17617 (ipcp_propagate_stage): Renamed lattice variables.
17618 (ipcp_method_cval_set_cvalue_type): Removed.
17619 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
22129589 17620 (ipcp_print_all_lattices): Changed printed strings to refer to
c43f07af
MJ
17621 lattices rather than cvals.
17622 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
17623 (ipcp_propagate_const): Changed formal parameters.
17624 (build_const_val): Changed formal parameters.
17625 (ipcp_insert_stage): Removed useless variable cvalue
17626 (build_const_val): Changed formal parameters.
17627 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
17628 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
17629 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
17630 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
22129589 17631 (ipcp_print_func_profile_counts): Changed string from "method" to
c43f07af
MJ
17632 "function"
17633 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
17634 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
17635 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
17636 (ipcp_structures_print): Renamed to ipcp_print_all_structures
17637 (ipcp_profile_print): Renamed to ipcp_print_profile_data
17638 (ipcp_lat_is_const): Changed parameters and made inline.
17639 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
17640 (ipcp_redirect): Renamed to ipcp_need_redirect_p
22129589 17641 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
c43f07af
MJ
17642 the predicate condition directly
17643 (ipcp_propagate_stage): Added local variable args. Removed local
17644 variable callee. (Both are mere code simplifications.)
17645 (ipcp_method_dont_insert_const): Renamed to
17646 ipcp_node_not_modifiable_p.
17647 (ipcp_node_not_modifiable_p): Made inline.
17648 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
17649 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
17650 (ipcp_print_all_lattices): Removed variable cvalue
17651 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
17652 Updated comments.
17653
2b9d6cf3
OH
176542008-05-06 Olivier Hainque <hainque@adacore.com>
17655
17656 * tree-sra.c (try_instantiate_multiple_fields): Early return
17657 if field has POINTER_TYPE.
17658
18efb179
KT
176592008-05-06 Kai Tietz <kai.tietz@onevision.com>
17660
17661 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
17662 by using 'q' specifier for instruction.
17663 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
17664
38ce04d9
AS
176652008-05-06 Anatoly Sokolov <aesok@post.ru>
17666
17667 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
17668 Change mode of zero_extract from QImode to HImode.
17669 (sign bit tests peepholes): (Ditto.).
17670
333d8f61
UB
176712008-05-06 Uros Bizjak <ubizjak@gmail.com>
17672
17673 * config/i386/mmx.md: Remove double backslashes from asm templates.
d0b48c67 17674 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
333d8f61
UB
17675 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
17676 to handle nonimmediate operands.
d0b48c67 17677 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
333d8f61
UB
17678 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
17679 to handle nonimmediate operands.
d0b48c67
UB
17680 (*mmx_<code>v2sf3_finite): New insn pattern.
17681 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
333d8f61
UB
17682 (mmx_<code>v2sf3): New expander. Use
17683 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17684 (mmx_<plusminus_insn><mode>3): New expander. Use
17685 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17686 (*mmx_<plusminus_insn><mode>3): New insn pattern.
333d8f61
UB
17687 (mmx_add<mode>3): Removed.
17688 (mmx_ssadd<mode>3): Ditto.
17689 (mmx_usadd<mode>3): Ditto.
17690 (mmx_sub<mode>3): Ditto.
17691 (mmx_sssub<mode>3): Ditto.
17692 (mmx_ussub<mode>3): Ditto.
d0b48c67 17693 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
333d8f61
UB
17694 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
17695 to handle nonimmediate operands.
d0b48c67 17696 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
333d8f61
UB
17697 insn pattern.
17698 (mmx_smulv4hi3_highpart): New expander. Use
17699 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17700 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
333d8f61
UB
17701 insn pattern.
17702 (mmx_umulv4hi3_highpart): New expander. Use
17703 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17704 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
333d8f61
UB
17705 (mmx_<code>v4hi3): New expander. Use
17706 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17707 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
333d8f61
UB
17708 (mmx_<code>v8qi3): New expander. Use
17709 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 17710 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
333d8f61
UB
17711 (mmx_<code><mode>3): New expander. Use
17712 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
17713
3716f233
JH
177142008-05-05 Jan Hubicka <jh@suse.cz>
17715
17716 PR tree-optimization/36118
17717 * passes.c (pass_init_dump_file): Fix dump header.
17718
1aee3ab6
AP
177192008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
17720
17721 PR middle-end/36141
333d8f61
UB
17722 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
17723 VCE for function decls.
1aee3ab6 17724
0d07fcad
L
177252008-05-05 H.J. Lu <hongjiu.lu@intel.com>
17726
17727 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
17728
d1c3b587
L
177292008-05-05 H.J. Lu <hongjiu.lu@intel.com>
17730
17731 * config/i386/i386.md (sat_plusminus): New.
17732 (plusminus_insn): Likewise.
17733 (plusminus_mnemonic): Likewise.
17734 (addsub): Removed.
17735 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
17736 (*<addsub><mode>3_cc_overflow): Renamed to ...
17737 (*<plusminus_insn><mode>3_cc_overflow): This.
17738 (*<addsub>si3_zext_cc_overflow): Renamed to ...
17739 (*<plusminus_insn>si3_zext_cc_overflow): This.
17740
0d07fcad 17741 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
d1c3b587
L
17742 (<plusminus_insn><mode>3): This.
17743 (*<addsub><mode>3): Renamed to ...
17744 (*<plusminus_insn><mode>3): This.
17745 (<sse>_vm<addsub><mode>3): Renamed to ...
17746 (<sse>_vm<plusminus_insn><mode>3): This.
17747 (sse3_h<addsub>v4sf3): Renamed to ...
17748 (sse3_h<plusminus_insn>v4sf3): This.
17749 (sse3_h<addsub>v2df3): Renamed to ...
17750 (sse3_h<plusminus_insn>v2df3): This.
17751 (<plusminus_insn><mode>3): New.
17752 (*<plusminus_insn><mode>3): Likewise.
17753 (sse2_<plusminus_insn><mode>3): Likewise.
17754 (add<mode>): Removed.
17755 (*add<mode>3): Likewise.
17756 (sse2_ssadd<mode>3): Likewise.
17757 (sse2_usadd<mode>3): Likewise.
17758 (sub<mode>3): Likewise.
17759 (*sub<mode>3): Likewise.
17760 (sse2_sssub<mode>3): Likewise.
17761 (sse2_ussub<mode>3): Likewise.
17762
23688481
BK
177632008-05-05 Benjamin Kosnik <bkoz@redhat.com>
17764
d1c3b587
L
17765 * gthr-single.h: Add in required interface elements as per gthr.h.
17766 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
17767 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
22129589 17768 Generalize UNUSED macro.
d1c3b587
L
17769 (__gthread_once): Add.
17770 (__gthread_key_create): Add.
333d8f61 17771 (__gthread_key_delete): Add.
d1c3b587 17772 (__gthread_getspecific): Add.
333d8f61 17773 (__gthread_setspecific): Add.
22129589 17774
e06f0ff9
AP
177752008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
17776
23688481
BK
17777 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
17778 the same size types for the indirect reference on the rhs, then
17779 create a VCE.
e06f0ff9 17780
8c32cbc9
UB
177812008-05-05 Uros Bizjak <ubizjak@gmail.com>
17782
17783 * config/i386/i386.md
17784 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
17785 one insn template instead of template series.
17786 (*xordi_1_rex64): Ditto.
17787 (*xordi_2_rex64): Ditto.
17788
06d10aaf
IR
177892008-05-05 Ira Rosen <irar@il.ibm.com>
17790
8c32cbc9 17791 PR tree-optimization/36119
06d10aaf
IR
17792 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
17793 in case of SLP.
17794
24c05141
JH
177952008-06-04 Jan Hubicka <jh@suse.cz>
17796
17797 tree-optimization/36100
17798 * tree-pass.h (pass_O0_always_inline): Declare.
17799 * ipa-inline.c (inline_transform): Remove dead code.
17800 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
17801 pass_O0_always_inline): New.
17802 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
17803
8fa8585d
KT
178042008-05-04 Kai Tietz <kai.tietz@onevision.com>
17805
17806 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
17807 mnemonic in this_param move for TARGET_64BIT.
17808
62d2739a
UB
178092008-05-04 Uros Bizjak <ubizjak@gmail.com>
17810
17811 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
17812 (*strmovsi_rex_1): Ditto.
17813 (*strsetsi_1): Ditto.
17814 (*strsetsi_rex_1): Ditto.
17815
17816 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
17817 adddicc expanders using SWI mode iterator.
17818
4d31c3e1
L
178192008-05-04 H.J. Lu <hongjiu.lu@intel.com>
17820
17821 PR target/36121
62d2739a
UB
17822 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
17823 argument handling.
4d31c3e1 17824
5f7ca34b
DM
178252008-05-04 David S. Miller <davem@davemloft.net>
17826
17827 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
17828 (sparc*-*-linux*): Use linux.h in tm_file.
17829 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
17830 compiler defaulting to 32-bit.
17831 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
17832 no longer needed.
17833 * config/sparc/linux.h: Remove definitions now obtained
17834 properly from linux.h
17835 * config/sparc/linux64.h: Likewise.
17836 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
17837 don't want this setting for 32-bit builds in a biarch compiler.
17838 * doc/install.texi: Add sparc-linux to list of targets
17839 supporting --enable-targets=all.
17840
5a3db6d5
AP
178412008-05-03 Andrew Pinski <pinskia@gmail.com>
17842
17843 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
17844
3c7ae64a
L
178452008-05-03 H.J. Lu <hongjiu.lu@intel.com>
17846
17847 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
17848 after V4SI_FTYPE_V8HI.
17849 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
17850 case V4SI_FTYPE_V2DF.
17851
4218dc2d 178522008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
75643ab1
KZ
17853
17854 * doc/invoke.texi (max-flow-memory-locations): Removed.
17855 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
22129589 17856
621b5ed6
RG
178572008-05-03 Richard Guenther <rguenther@suse.de>
17858
17859 PR middle-end/34973
17860 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
17861
11835124
DM
178622008-05-02 David S. Miller <davem@davemloft.net>
17863
17864 * config.gcc (need_64bit_hwint): Document libcpp dependency.
17865
e4d35515
SB
178662008-05-02 Simon Baldwin <simonb@google.com>
17867
17868 PR bootstrap/36108
17869 * c-common.h (warn_array_subscript_range): Removed.
17870 * c-common.c (warn_array_subscript_range): Ditto.
17871 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
17872 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
17873
bb1418c1
L
178742008-05-02 H.J. Lu <hongjiu.lu@intel.com>
17875
17876 * config/i386/i386.c (ix86_special_builtin_type): New.
17877 (bdesc_special_args): Likewise.
17878 (ix86_expand_special_args_builtin): Likewise.
17879 (ix86_init_mmx_sse_builtins): Updated.
17880 (ix86_expand_builtin): Updated.
17881 (ix86_expand_store_builtin): Removed.
17882 (ix86_expand_unop_builtin): Likewise.
17883
17884 * config/i386/mm3dnow.h (__v2sf): Moved to ...
17885 * config/i386/mmintrin.h (__v2sf): Here.
17886
17887 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
17888 const __v2sf.
17889 (_mm_loadl_pi): Likewise.
17890 (_mm_storeh_pi): Replace __v2si with __v2sf.
17891 (_mm_storel_pi): Likewise.
17892
17893 * doc/extend.texi: Correct __builtin_ia32_loadhps,
17894 __builtin_ia32_loadlps, __builtin_ia32_storehps,
17895 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
17896 __builtin_ia32_loadlpd.
17897
178982008-05-02 H.J. Lu <hongjiu.lu@intel.com>
17899
17900 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
17901 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
17902 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
17903 (ix86_init_mmx_sse_builtins): Updated.
17904 (ix86_expand_args_builtin): Likewise.
17905 (ix86_expand_builtin): Likewise.
17906 (ix86_expand_unop1_builtin): Renamed to ...
17907 (ix86_expand_unop_vec_merge_builtin): This.
17908
a12f79f5
JH
179092008-05-01 Jan Hubicka <jh@suse.cz>
17910
17911 PR bootstrap/36100
17912 * ipa-inline.c (inline_generate_summary): Make static.
17913 (inline_transform): Do not call inlining at -O0; make static.
17914 * passes.c (execute_todo): Add sanity check.
17915 (execute_one_ipa_transform_pass): Execute proper flags.
17916
b5487346
EB
179172008-05-01 Eric Botcazou <ebotcazou@adacore.com>
17918
17919 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
17920 (DECL_NONADDRESSABLE_P): Likewise.
17921 * alias.c (record_component_aliases): Fix comment.
17922
ca873b0e
SB
179232008-05-01 Simon Baldwin <simonb@google.com>
17924
17925 * c-common.h (warn_array_subscript_range): New function.
17926 * c-common.c (warn_array_subscript_range): Ditto.
17927 * tree-vrp.c (check_array_ref): Corrected code to agree with
17928 comment, ignoring only arrays of size 0 or size 1.
17929 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
17930
99c25ac1
L
179312008-05-01 H.J. Lu <hongjiu.lu@intel.com>
17932
17933 * config/i386/i386.c (ix86_builtin_type): Replace
17934 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
17935 (bdesc_args): Updated.
17936 (ix86_init_mmx_sse_builtins): Likewise.
17937 (ix86_expand_args_builtin): Likewise.
17938
17939 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
17940 with __v1di.
17941
17942 * doc/extend.texi: Correct __builtin_ia32_palignr.
17943
a44acfb9
L
179442008-05-01 H.J. Lu <hongjiu.lu@intel.com>
17945
17946 PR target/36095
17947 * config/i386/i386.c (bdesc_crc32): Removed.
17948 (ix86_expand_crc32): Likewise.
17949 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
17950 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
17951 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
17952 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
17953 UINT_FTYPE_UINT_UCHAR.
17954 (bdesc_args): Updated. Add crc32 builtins.
17955 (ix86_init_mmx_sse_builtins): Updated.
17956 (ix86_expand_args_builtin): Updated to support subreg.
17957
17958 * doc/extend.texi: Correct __builtin_ia32_crc32di.
17959
17653c00
JH
179602008-05-01 Jan Hubicka <jh@suse.cz>
17961
17962 * tree-pass.h (opt_pass): Add IPA_PASS.
17963 (varpool_node, cgraph_node): Forward declare.
17964 (ipa_opt_pass): Define.
17965 (pass_ipa_inline): Turn into ipa_opt_pass.
17966 (pass_apply_inline): Remove.
17967 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
17968 (apply_inline): Turn into ....
17969 (inline_transform): ... this one.
17970 (inline_generate_summary): New function.
17971 (pass_apply_inline): Remove.
17972 * function.h (ipa_opt_pass): Forward declare structure; typedef;
17973 vector.
17974 (struct function): Add ipa_transforms_to_apply.
17975 * passes.c (register_one_dump_file): Work on IPA_PASS.
17976 (init_optimization_passes): Remove pass_inline_parameters and
17977 pass_apply_inline.
17978 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
17979 (execute_one_pass) ... here; apply transforms when possible.
17980 (add_ipa_transform_pass, execute_ipa_summary_asses,
17981 execute_one_ipa_transform_pass): New.
17982 (execute_ipa_pass_list): Update for IPA_PASS type.
17983
bd9513ea
L
179842008-05-01 H.J. Lu <hongjiu.lu@intel.com>
17985
17986 * config/i386/i386.c (ix86_builtin_type): Add
17987 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
17988 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
17989 (bdesc_args): Add SSE4a builtins.
17990 (ix86_init_mmx_sse_builtins): Updated.
17991 (ix86_expand_args_builtin): Likewise.
17992 (ix86_expand_builtin): Likewise.
17993
858e5e79
L
179942008-05-01 H.J. Lu <hongjiu.lu@intel.com>
17995
17996 * config/i386/i386.c (ix86_builtin_type): Add
17997 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
17998 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
17999 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
18000 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
18001 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
18002 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
18003 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
18004 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
18005 and DI_FTYPE_DI_DI_INT.
18006 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
18007 (ix86_init_mmx_sse_builtins): Updated.
18008 (ix86_expand_args_builtin): Likewise.
18009 (ix86_expand_builtin): Likewise.
18010 (ix86_expand_binop_imm_builtin): Removed.
18011
18012 * doc/extend.texi: Correct __builtin_ia32_palignr128.
18013
a91ded4b
RG
180142008-04-30 Richard Guenther <rguenther@suse.de>
18015
18016 PR tree-optimization/32921
18017 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
18018
ad516a74
RS
180192008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
18020
18021 * config/arm/arm.c (arm_unwind_emit): Use
18022 crtl->all_throwers_are_sibcalls instead of
18023 cfun->all_throwers_are_sibcalls.
18024 (arm_output_fn_unwind): Likewise.
18025 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
18026 instead of cfun->uses_pic_offset_table.
18027 (frv_expand_prologue): Likewise.
18028 (frv_frame_pointer_required): Likewise.
18029 (frv_expand_fdpic_call): Likewise.
18030 (frv_emit_movsi): Likewise.
18031 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
18032 cfun->returns_pcc_struct instead of
18033 current_function_returns_pcc_struct.
18034 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
18035 instead of cfun->calls_eh_return.
18036 (m32c_pushm_popm): Likewise.
18037 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
18038 "extern" declaration.
18039
00d382a8
RG
180402008-04-30 Richard Guenther <rguenther@suse.de>
18041
18042 PR tree-optimization/21636
18043 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
18044 constant address.
18045 (evaluate_stmt): Print the likely value.
18046 (ccp_visit_stmt): Avoid excessive vertical spacing.
18047
e49cf927 180482008-04-30 Rafael Espíndola <espindola@google.com>
45e18420
RAE
18049
18050 * builtins.c (fold_call_expr): Return realret.
18051 * tree-ssa-threadedge.c
18052 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
18053 __builtin_object_size.
18054
fe7df9c4
SP
180552008-04-30 Seongbae Park <seongbae.park@gmail.com>
18056
18057 * gcc.c (wrapper_string): New variable.
18058 (insert_wrapper): New function.
18059 (execute): New option -wrapper.
18060 * doc/invoke.texi (Overall Options): New driver option -wrapper.
18061
18724e30
NF
180622008-04-30 Nathan Froyd <froydnj@codesourcery.com>
18063
62d2739a
UB
18064 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
18065 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
18066 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
18067 from...
18068 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
18069 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
18070 config/rs6000/e500crtres64gprctr.asm,
18071 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
18072 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
18073 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
18074 config/rs6000/e500crtsav64gprctr.asm,
18075 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
18076 config/rs6000/e500crtsavg64gprctr.asm: New files.
18077 * config/rs6000/t-ppccomm: Add build rules for new files.
18078 (LIB2FUNCS_STATIC_EXTRA): Add new files.
18079 * config/rs6000/t-netbsd: Add build rules for new files.
18080 (LIB2FUNCS_STATIC_EXTRA): New variable.
18081 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
18082 (CRTSAVRES_DEFAULT_SPEC): Likewise.
18083 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18724e30 18084
1b667c82
L
180852008-04-30 H.J. Lu <hongjiu.lu@intel.com>
18086
18087 * config/i386/i386.c (ix86_builtin_type): Add
18088 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
18089 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
18090 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
18091 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
18092 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
18093 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
18094 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
18095 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
18096 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
18097 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
18098 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
18099 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
18100 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
18101 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
18102 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
18103 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
18104 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
18105 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
18106 V1DI_FTYPE_V2SI_V2SI.
18107 (bdesc_2arg): Moved to ...
18108 (bdesc_args): Here.
18109 (ix86_init_mmx_sse_builtins): Updated.
18110 (ix86_expand_args_builtin): Updated. Take a pointer
18111 to const struct builtin_description. Handle comparison
18112 builtin functions.
62d2739a 18113 (ix86_expand_sse_compare): Take a new argument for swapping operands.
1b667c82
L
18114 (ix86_expand_builtin): Updated.
18115
18116 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
18117 (ssse3_pmaddubsw128): This.
18118 (ssse3_pmaddubswv4hi3): Renamed to ...
18119 (ssse3_pmaddubsw): This.
18120
62d2739a 18121 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1b667c82 18122 (__builtin_ia32_packssdw128): Likewise.
62d2739a 18123 (__builtin_ia32_packuswb128): Likewise.
1b667c82
L
18124 (__builtin_ia32_pmaddubsw): Likewise.
18125 (__builtin_ia32_pmaddubsw128): Likewise.
18126
d7b339dd
RG
181272008-04-30 Richard Guenther <rguenther@suse.de>
18128
18129 PR tree-optimization/14847
18130 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
18131 (recognize_bits_test): Use it.
18132 (recognize_single_bit_test): Likewise.
18133
6a3f3fea
MJ
181342008-04-30 Martin Jambor <mjambor@suse.cz>
18135
18136 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
18137 instead of setting number of formal parameters to zero.
22129589 18138 (ipcp_init_stage): Do not set the number of actual parameters to zero
6a3f3fea
MJ
18139 either.
18140 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
18141 which are called with variable number of arguments.
18142 (ipcp_insert_stage): Explicitely skipping all nodes which are
18143 called with variable number of arguments.
22129589 18144 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
6a3f3fea
MJ
18145 number of parameters.
18146
18147 * ipa-prop.h (struct ipa_node_params): Added flag
18148 called_with_var_arguments
18149 (ipa_set_param_count): Added. Changed sole setter to use it.
18150 (ipa_get_param_count): Added. All readers of param_count
18151 converted to use it instead.
18152 (ipa_set_called_with_variable_arg): Added.
18153 (ipa_is_called_with_var_arguments): Added.
18154 (ipa_get_ith_param): Added. All readers of param_decls converted
18155 to use it instead.
22129589
AS
18156 (ipa_set_cs_argument_count): Added, sole writer to argument_count
18157 changed to use it.
6a3f3fea
MJ
18158 (ipa_get_cs_argument_count): Added, all readers of argument_count
18159 changed to cal it.
22129589 18160 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
6a3f3fea 18161 to use it.
22129589 18162
6a3f3fea
MJ
18163 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
18164 (struct ipcp_lattice): Renamed cval_type to type
18165 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
18166
18167 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
18168 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
18169 (ipcp_insert_stage): Changed the type of variable cvalue to tree
18170 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
18171 (build_const_val): Changed the type of parameter cvalue to tree
18172 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
18173 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
22129589
AS
18174
18175 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
18176 constant
6a3f3fea
MJ
18177
18178 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
18179 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
18180 (ipa_add_method): Renamed to ipa_push_func_to_list
18181 (ipa_remove_method): Renamed to ipa_pop_func_from_list
18182 (ipa_callsite_param_count): Removed.
18183 (ipa_callsite_param_count_set): Removed.
18184 (ipa_callsite_param): Removed.
18185 (ipa_callsite_callee): Removed.
18186 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
18187 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
18188 (ipa_method_formal_count): Removed.
18189 (ipa_method_formal_count_set): Removed.
18190 (ipa_method_get_tree): Removed.
18191 (ipa_method_tree_map_create): Removed.
18192 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
18193 (ipa_create_param_decls_array): Creates the array itself
22129589 18194 (ipa_create_param_decls_array): Temporary variable info instead of
6a3f3fea
MJ
18195 a few dereferences.
18196 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
18197 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
18198 (get_type): Removed.
18199 (ipa_jf_get_info_type): Removed.
18200 (ipa_node_create): Renamed to ipa_create_node_params
18201 (ipa_free): Renamed to ipa_free_all_node_params
18202 (ipa_nodes_create): Renamed to ipa_create_all_node_params
18203 (ipa_edges_create): Renamed to ipa_create_all_edge_args
18204 (ipa_edges_free): Renamed to ipa_free_all_edge_args
18205 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
22129589 18206 (ipa_free_all_node_params): Deallocation to jump_functions moved to
6a3f3fea
MJ
18207 ipa_free_all_edge_args
18208 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
18209 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
18210 (ipa_create_methodlist_node): Removed.
18211 (ipa_methodlist_method): Removed.
18212 (ipa_methodlist_method_set): Removed.
18213 (ipa_methodlist_next_method): Removed.
18214 (ipa_methodlist_next_method_set): Removed.
18215 (ipa_method_is_modified): Removed.
18216 (ipa_method_modify_create): Removed.
22129589 18217 (ipa_method_modify_init): Temporary variable info instead of a few
6a3f3fea 18218 dereferences.
22129589 18219 (ipa_detect_param_modifications): Temporary variable info instead of
6a3f3fea 18220 a few dereferences.
22129589 18221 (ipa_compute_jump_functions): Temporary variable info instead of
6a3f3fea
MJ
18222 a few dereferences.
18223 (ipa_method_modify_set): Removed.
18224 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
22129589 18225 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
6a3f3fea
MJ
18226 than craph_node as the first parameter.
18227 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
18228 (ipa_method_modify_init): Removed.
22129589 18229 (ipa_compute_jump_functions): Added a temp variable instead of
6a3f3fea
MJ
18230 repeatadly dereferencing the cgraph_edge.aux pointer
18231 (ipa_callsite_param_set_type): Removed.
22129589 18232 (ipa_compute_jump_functions): i renamed to index and moved to
6a3f3fea
MJ
18233 an inner block
18234 (ipa_callsite_param_set_info_type_formal): Removed.
18235 (ipa_callsite_param_set_info_type): Removed.
18236 (ipa_callsite_param_map_create): Removed.
18237 (ipa_callsite_tree): Removed.
18238 (ipa_callsite_caller): Removed.
18239 (ipa_pop_func_from_list): return_method removed to return_func
18240
18241 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
18242 prefixed all values with IPA_. Changed all users.
22129589
AS
18243 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
18244 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
18245 and FORMAL_IPATYPE IPA_PASS_THROUGH.
6a3f3fea
MJ
18246 (union parameter_info): Renamed to jump_func_value.
18247 (union jump_func_value): Renamed value to constant
18248 (struct ipa_jump_func): Renamed info_type to value
18249 (struct ipa_node): Renamed to ipa_node_params
18250 (struct ipa_node_params): Renamed ipa_arg_num to param_count
18251 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
18252 (struct ipa_node_params): Renamed ipa_mod to modified_flags
18253 (struct ipa_edge): Renamed to ipa_edge_args
18254 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
18255 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
18256 (struct ipa_methodlist): Renamed to ipa_func_list
18257 (struct ipa_func_list): method_p renamed to node, next_method
18258 renamed to next
18259 (ipa_methodlist_p): Removed, switched all users to struct pointer
18260 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
18261
1c9c5e43
AM
182622008-04-30 Alan Modra <amodra@bigpond.net.au>
18263
18264 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
18265 (rs6000_emit_epilogue): Use backchain to restore only when we
18266 have a large frame. Make use of frame pointer to restore if we
18267 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
18268
cf2758e3
PB
182692008-04-29 Paolo Bonzini <bonzini@gnu.org>
18270
18271 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
18272 Add mode to zero_extract.
18273 (sign bit tests peepholes): (Ditto.).
18274
f318ff0a
L
182752008-04-29 H.J. Lu <hongjiu.lu@intel.com>
18276
18277 * config/i386/i386.c (ix86_builtins): Replace Prescott New
18278 Instructions in comments with SSE3.
18279 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
18280 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
18281 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
18282 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
18283 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
18284 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
18285 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
18286 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
18287 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
18288 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
18289 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
18290 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
18291 (bdesc_sse_args): Renamed to ...
18292 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
18293 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
18294 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
18295 IX86_BUILTIN_FABSQ.
18296 (bdesc_1arg): Moved to ...
18297 (bdesc_args): Here.
18298 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
18299 Instructions in comments with SSE3.
18300 (ix86_expand_sse_operands_builtin): Renamed to ...
18301 (ix86_expand_args_builtin): This. Updated.
18302 (ix86_expand_unop1_builtin): Update comments.
18303 (ix86_expand_builtin): Updated.
18304
ace4eb90
RG
183052008-04-29 Richard Guenther <rguenther@suse.de>
18306
18307 PR tree-optimization/36078
18308 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
18309 Update virtual SSA form after cleaning up the CFG.
18310
1447bf05
RG
183112008-04-29 Richard Guenther <rguenther@suse.de>
18312
18313 PR middle-end/15255
18314 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
18315
59e6913a
RG
183162008-04-29 Richard Guenther <rguenther@suse.de>
18317
18318 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
18319 (compute_may_aliases): Do not call finalize_ref_all_pointers.
18320 (compute_flow_insensitive_aliasing): Do not treat
18321 PTR_IS_REF_ALL pointers special.
18322 (get_smt_for): Likewise.
18323 (may_alias_p): Re-structure.
18324 (is_escape_site): A ref-all pointer conversion is not an escape site.
18325 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
18326 PTR_IS_REF_ALL pointers special.
18327 * tree-ssa-structalias.h (struct alias_info): Remove
18328 ref_all_symbol_mem_tag field.
18329 (PTR_IS_REF_ALL): Remove.
18330
81ad578e
RG
183312008-04-29 Richard Guenther <rguenther@suse.de>
18332
18333 PR middle-end/36077
18334 * fold-const.c (extract_muldiv_1): In combining division constants
18335 make sure to never overflow.
18336
4830ba1f
NC
183372008-04-29 Nick Clifton <nickc@redhat.com>
18338
18339 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
18340
b1c61c7e
RW
183412008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18342
18343 PR bootstrap/35169
18344 * optc-gen.awk: Work around HP-UX/IA awk bug.
18345
d6b68fcc
DS
183462008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
18347
18348 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
18349 2008-04-25 commit.
18350
0d5fd2b8
UB
183512008-04-28 Uros Bizjak <ubizjak@gmail.com>
18352
18353 PR target/36073
18354 * config/i386/i386.md
18355 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
18356 Change operand 1 predicate to nonimmediate_operand.
18357
623f8e39
JJ
183582008-04-28 Jakub Jelinek <jakub@redhat.com>
18359
18360 PR debug/36060
18361 * dwarf2out.c (struct die_struct): Mark as chain_circular through
18362 die_sub field.
18363 * gengtype.c (walk_type, write_func_for_structure): Handle
18364 chain_circular.
18365 * doc/gty.texi: Document chain_circular.
18366
82893cba
RG
183672008-04-28 Richard Guenther <rguenther@suse.de>
18368
18369 PR tree-optimization/36066
18370 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
18371 SCEV and loop.
18372
e356fac8
UB
183732008-04-28 Uros Bizjak <ubizjak@gmail.com>
18374
18375 PR target/36064
0d5fd2b8
UB
18376 * config/i386/i386.md
18377 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
e356fac8
UB
18378 Use match_scratch instead of match_operand for operands 3 and 4.
18379
d6e840ee
RG
183802008-04-27 Richard Guenther <rguenther@suse.de>
18381
18382 PR tree-optimization/18754
18383 PR tree-optimization/34223
18384 * tree-pass.h (pass_complete_unrolli): Declare.
18385 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
18386 loop size before and after unconditionally of UL_NO_GROWTH in effect.
18387 Rewrite loop into loop closed SSA form if it is not already.
18388 (tree_unroll_loops_completely): Re-structure to iterate over
18389 innermost loops with intermediate CFG cleanups.
18390 Unroll outermost loops only if requested or the code does not grow
18391 doing so.
18392 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
18393 loops are available.
18394 (tree_vectorize): Instead do so here.
18395 (tree_complete_unroll): Also unroll outermost loops.
18396 (tree_complete_unroll_inner): New function.
18397 (gate_tree_complete_unroll_inner): Likewise.
18398 (pass_complete_unrolli): New pass.
18399 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
18400 uses outside of the loop.
18401 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
22129589 18402 form if it is available.
d6e840ee
RG
18403 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
18404 * passes.c (init_optimization_passes): Schedule complete inner
18405 loop unrolling pass before the first CCP pass after final inlining.
18406
feb60f03
NS
184072008-04-27 Nathan Sidwell <nathan@codesourcery.com>
18408
18409 * targhooks.h (default_emutls_var_fields,
18410 default_emutls_var_init): Declare.
18411 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
18412 * target.h (struct gcc_target): Add struct emutls member.
18413 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
18414 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
18415 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
18416 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
18417 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
18418 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
18419 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
18420 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
18421 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
18422 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
18423 emit debug information.
18424 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
18425 * varasm.c: Include targhooks.h.
18426 (emutls_object_section, emutls_tmpl_section): New.
18427 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
18428 (EMUTLS_SEPARATOR): New.
18429 (prefix_name): New.
18430 (get_emutls_object_name): New.
18431 (default_emutls_var_fields): New, broken out of ...
18432 (get_emutls_object_type): ... here. Adjust to use target hooks.
18433 (get_emutls_init_templ_addr): Adjust to use target hooks.
18434 (emutls_decl): Adjust to use target hooks.
18435 (emutls_finish): Likewise.
18436 (default_emutls_var_init): New, broken out of ...
18437 (assemble_variable): ... here. Adjust to use target hooks.
18438 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
18439 SECCAT_EMUTLS_TMPL.
18440 * c-common.c (handle_section_attribute): Prevent overriding
18441 sections for emulated tls with special sections.
18442 * config/i386/i386.c (x86_64_elf_select_section): Add
18443 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
18444 (x86_64_elf_unique_section): Likewise.
18445 * config/vxworks.c: Include tree.h.
18446 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
18447 (vxworks_override_options): Set TLS scheme.
623f8e39 18448 * doc/tm.texi (Emulated TLS): New node.
feb60f03 18449
6bfb7f10
SB
184502008-04-26 Simon Baldwin <simonb@google.com>
18451
18452 PR c/35652
18453 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
18454 with propagated string constants.
18455
73e8165a
UB
184562008-04-26 Uros Bizjak <ubizjak@gmail.com>
18457
18458 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
18459 constraint for operand 2 when operand 0 is memory operand.
18460 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
18461 operand 0 is memory operand.
18462 (fix_trunc<mode>_i387_with_temp): Ditto.
18463 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
18464 operand 2 when operand 1 is memory operand.
18465 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
18466 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
18467 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
18468 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
18469 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
18470 operands 2,3 and 4 when operand 1 is memory operand.
18471 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
18472 is memory operand.
18473 (fistdi2_floor_with_temp): Ditto.
18474 (fist<mode>2_floor_with_temp): Ditto.
18475 (fistdi2_ceil_with_temp): Ditto.
18476 (fist<mode>2_ceil_with_temp): Ditto.
18477 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
18478
49bce30a
RS
184792008-04-26 David Daney <ddaney@avtrex.com>
18480
18481 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
18482 unspec_volitile.
18483 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
18484 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
18485 UNSPEC_UPDATE_GOT_VERSION): Renumber.
18486 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
18487 (compare_and_swap_12): New insn.
18488 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
18489 * config/mips/mips.c (mips_force_binary): New function.
18490 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
18491 (mips_expand_compare_and_swap_12): New function.
18492 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
18493
e3b5732b
JH
184942008-04-25 Jan Hubicka <jh@suse.cz>
18495
18496 PR testsuite/35843
18497 * cfgexpand.c (pass_expand): Turn into RTL pass.
18498 * passes.c (execute_one_pass): Do pass typechecking after execution.
18499 * tree-pass.h (pass_expand): Turn into RTL pass.
18500
18501 * function.h (struct rtl_data): Move here fields
18502 accesses_prior_frames, calls_eh_return, saves_all_registers,
18503 has_nonlocal_goto, has_asm_statement, is_thunk,
18504 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
18505 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
18506 arg_pointer_save_area_init from struct function; turn into bool.
18507 (struct function): Move
18508 calls_eh_return, saves_all_registers, has_nonlocal_goto,
18509 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
18510 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
18511 tail_call_emit, arg_pointer_save_area_init
18512 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
18513 (current_function_returns_struct, current_function_returns_pcc_struct,
18514 current_function_calls_setjmp, current_function_calls_alloca,
18515 current_function_accesses_prior_frames,
18516 current_function_calls_eh_return, current_function_is_thunk,
18517 current_function_stdarg, current_function_profile,
18518 current_function_limit_stack, current_function_uses_pic_offset_table,
18519 current_function_uses_const_pool, current_function_has_nonlocal_label,
18520 current_function_saves_all_registers,
18521 current_function_has_nonlocal_goto,
18522 current_function_has_asm_statement): Remove accesor macros.
18523 * ra-conflict.c (global_conflicts): Update.
18524 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
18525 (suitable_for_tail_call_opt_p): Update.
18526 * builtins.c (expand_builtin_return_addr): Update.
18527 (expand_builtin_setjmp_setup): Update.
18528 (expand_builtin_nonlocal_goto): Update.
18529 * final.c (final_start_function): Update.
18530 (profile_function): Update.
18531 (leaf_function_p): Update.
18532 (only_leaf_regs_used): Update.
18533 * df-scan.c (df_get_exit_block_use_set): Update.
18534 * dojump.c (clear_pending_stack_adjust): Update.
18535 * tree-stdarg.c (gate_optimize_stdarg): Update.
18536 * gimple-low.c (lower_function_body): Update.
18537 * global.c (compute_regsets): Update.
18538 (global_alloc): Update.
18539 * dwarf2out.c (dwarf2out_begin_prologue): Update.
18540 * expr.c (expand_assignment): Update.
18541 * dse.c (dse_step0): Update.
18542 (dse_step1): Update.
18543 * c-decl.c (store_parm_decls): Update.
18544 * local-alloc.c (combine_regs): Update.
18545 (find_free_reg): Update.
18546 * function.c (assign_parms_augmented_arg_list): Update.
18547 (assign_parm_find_data_types): Update.
18548 (assign_parms): Update.
18549 (allocate_struct_function): Update.
18550 (expand_function_start): Update.
18551 (expand_function_end): Update.
18552 (get_arg_pointer_save_area): Update.
18553 (thread_prologue_and_epilogue_insns): Update.
18554 (rest_of_match_asm_constraints): Update.
18555 * stor-layout.c (variable_size): Update.
18556 * gcse.c (gcse_main): Update.
18557 (bypass_jumps): Update.
18558 * gimplify.c (gimplify_function_tree): Update.
18559 * calls.c (emit_call_1): Update.
18560 (expand_call): Update.
18561 * bt-load.c (compute_defs_uses_and_gen): Update.
18562 * except.c (sjlj_assign_call_site_values): Update.
18563 (sjlj_emit_function_enter): Update.
18564 (can_throw_external): Update.
18565 (set_nothrow_function_flags): Update.
18566 (expand_builtin_unwind_init): Update.
18567 (expand_eh_return): Update.
18568 (convert_to_eh_region_ranges): Update.
18569 (output_function_exception_table): Update.
18570 * emit-rtl.c (gen_tmp_stack_mem): Update.
18571 * cfgexpand.c (expand_used_vars): Update.
18572 (tree_expand_cfg): Update.
18573 * cfgcleanup.c (rest_of_handle_jump): Update.
18574 * explow.c (allocate_dynamic_stack_space): Update.
18575 * varasm.c (assemble_start_function): Update.
18576 (force_const_mem): Update.
18577 (mark_constant_pool): Update.
18578 * tree-optimize.c (tree_rest_of_compilation): Update.
18579 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
18580 * tree-cfg.c (notice_special_calls): Update.
18581 (is_ctrl_altering_stmt): Update.
18582 (tree_can_make_abnormal_goto): Update.
18583 (tree_purge_dead_abnormal_call_edges): Update.
18584 * config/alpha/predicates.md: Update.
18585 * config/alpha/alpha.c (alpha_sa_mask): Update.
18586 (alpha_sa_size): Update.
18587 (alpha_does_function_need_gp): Update.
18588 (alpha_expand_prologue): Update.
18589 (alpha_start_function): Update.
18590 (alpha_output_function_end_prologue): Update.
18591 (alpha_expand_epilogue): Update.
18592 * config/frv/frv.c (frv_stack_info): Update.
18593 (frv_expand_epilogue): Update.
18594 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
18595 (s390_register_info): Update.
18596 (s390_frame_info): Update.
18597 (s390_init_frame_layout): Update.
18598 (s390_can_eliminate): Update.
18599 (save_gprs): Update.
18600 * config/spu/spu.c (spu_split_immediate): Update.
18601 (need_to_save_reg): Update.
18602 (spu_expand_prologue): Update.
18603 (spu_expand_epilogue): Update.
18604 * config/sparc/sparc.md: Update.
18605 * config/sparc/sparc.c (eligible_for_return_delay): Update.
18606 (sparc_tls_got): Update.
18607 (legitimize_pic_address): Update.
18608 (sparc_emit_call_insn): Update.
18609 (sparc_expand_prologue): Update.
18610 (output_return): Update.
18611 (print_operand): Update.
18612 (sparc_function_ok_for_sibcall): Update.
18613 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
18614 * config/m32r/m32r.md: Update.
18615 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
18616 (m32r_compute_frame_size): Update.
18617 (m32r_expand_prologue): Update.
18618 (m32r_expand_epilogue): Update.
18619 (m32r_legitimize_pic_address): Update.
18620 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
18621 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18622 * config/i386/i386.c (ix86_frame_pointer_required): Update.
18623 (gen_push): Update.
18624 (ix86_save_reg): Update.
18625 (ix86_compute_frame_layout): Update.
18626 (ix86_expand_prologue): Update.
18627 (ix86_expand_epilogue): Update.
18628 * config/sh/sh.c (output_stack_adjust): Update.
18629 (calc_live_regs): Update.
18630 (sh5_schedule_saves): Update.
18631 (sh_expand_prologue): Update.
18632 (sh_expand_epilogue): Update.
18633 (sh_setup_incoming_varargs): Update.
18634 (sh_allocate_initial_value): Update.
18635 (sh_get_pr_initial_val): Update.
18636 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
18637 * config/sh/sh.md (label:): Update.
18638 * config/avr/avr.c (out_movhi_mr_r): Update.
18639 * config/crx/crx.h (enum): Update.
18640 * config/xtensa/xtensa.h (along): Update.
18641 * config/stormy16/stormy16.c Update.
18642 (xstormy16_compute_stack_layout): Update.
18643 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
18644 (fr30_expand_prologue): Update.
18645 * config/cris/cris.c (cris_conditional_register_usage): Update.
18646 (cris_reg_saved_in_regsave_area): Update.
18647 (cris_initial_frame_pointer_offset): Update.
18648 (cris_simple_epilogue): Update.
18649 (cris_expand_prologue): Update.
18650 (cris_expand_epilogue): Update.
18651 (cris_expand_pic_call_address): Update.
18652 (cris_asm_output_symbol_ref): Update.
18653 (cris_asm_output_label_ref): Update.
18654 * config/cris/cris.md Update.
18655 * config/iq2000/iq2000.c (compute_frame_size): Update.
18656 (iq2000_expand_epilogue): Update.
18657 * config/mt/mt.h (save_direction): Update.
18658 * config/mn10300/mn10300.c (mn10300_function_value): Update.
18659 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
18660 (ia64_secondary_reload_class): Update.
18661 * config/m68k/m68k.c (m68k_save_reg): Update.
18662 (m68k_expand_prologue): Update.
18663 (m68k_expand_epilogue): Update.
18664 (legitimize_pic_address): Update.
18665 * config/rs6000/rs6000.c (rs6000_got_register): Update.
18666 (first_reg_to_save): Update.
18667 (first_altivec_reg_to_save): Update.
18668 (compute_vrsave_mask): Update.
18669 (compute_save_world_info): Update.
18670 (rs6000_stack_info): Update.
18671 (spe_func_has_64bit_regs_p): Update.
18672 (rs6000_ra_ever_killed): Update.
18673 (rs6000_emit_eh_reg_restore): Update.
18674 (rs6000_emit_allocate_stack): Update.
18675 (rs6000_emit_prologue): Update.
18676 (rs6000_emit_epilogue): Update.
18677 (rs6000_output_function_epilogue): Update.
18678 (output_profile_hook): Update.
18679 (rs6000_elf_declare_function_name): Update.
18680 * config/rs6000/rs6000.h (rs6000_args): Update.
18681 * config/rs6000/rs6000.md: Update.
18682 * config/mcore/mcore.c (mcore_expand_prolog): Update.
18683 * config/arc/arc.c (arc_output_function_epilogue): Update.
18684 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
18685 * config/darwin.c (machopic_function_base_name): Update.
18686 * config/score/score3.c (score3_compute_frame_size): Update.
18687 (rpush): Update.
18688 (rpop): Update.
18689 (score3_epilogue): Update.
18690 * config/score/score7.c (score7_compute_frame_size): Update.
18691 (score7_prologue): Update.
18692 (score7_epilogue): Update.
18693 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
18694 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
18695 * config/arm/arm.c (use_return_insn): Update.
18696 (require_pic_register): Update.
18697 (arm_load_pic_register): Update.
18698 (arm_compute_save_reg0_reg12_mask): Update.
18699 (arm_compute_save_reg_mask): Update.
18700 (thumb1_compute_save_reg_mask): Update.
18701 (output_return_instruction): Update.
18702 (arm_output_function_prologue): Update.
18703 (arm_output_epilogue): Update.
18704 (arm_get_frame_offsets): Update.
18705 (arm_expand_prologue): Update.
18706 (thumb_pushpop): Update.
18707 (thumb_exit): Update.
18708 (thumb1_expand_prologue): Update.
18709 (thumb1_expand_epilogue): Update.
18710 (arm_unwind_emit): Update.
18711 (arm_output_fn_unwind): Update.
18712 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
18713 * config/arm/arm.md: Update.
18714 * config/pa/pa.md: Update.
18715 * config/pa/pa.c (legitimize_pic_address): Update.
18716 (compute_frame_size): Update.
18717 (hppa_expand_prologue): Update.
18718 (hppa_expand_epilogue): Update.
18719 (borx_reg_operand): Update.
18720 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
18721 (HARD_REGNO_RENAME_OK): Update.
18722 * config/mips/mips.c (mips_global_pointer): Update.
18723 (mips_save_reg_p): Update.
18724 (mips_compute_frame_info): Update.
18725 (mips_frame_pointer_required): Update.
18726 (mips_expand_prologue): Update.
18727 (mips_expand_epilogue): Update.
18728 (mips_can_use_return_insn): Update.
18729 (mips_reorg_process_insns): Update.
18730 * config/v850/v850.c (compute_register_save_size): Update.
18731 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
18732 * config/mmix/mmix.c (along): Update.
18733 (mmix_expand_epilogue): Update.
18734 * config/bfin/bfin.c (legitimize_pic_address): Update.
18735 (must_save_p): Update.
18736 (stack_frame_needed_p): Update.
18737 (add_to_reg): Update.
18738 (bfin_expand_prologue): Update.
18739 * stmt.c (expand_asm_operands): Update.
18740 * reload1.c (reload): Update.
18741 (init_elim_table): Update.
18742
d1163987 187432008-04-25 Bob Wilson <bob.wilson@acm.org>
22129589 18744
d1163987 18745 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
22129589 18746
a5e11364
L
187472008-04-25 H.J. Lu <hongjiu.lu@intel.com>
18748
62d2739a 18749 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
a5e11364
L
18750 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
18751 (mov<mode>): Removed.
18752 (*movv4sf_internal): Likewise.
18753 (*movv2df_internal): Likewise.
18754
68d154b9
PG
187552008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
18756
18757 * config.gcc (crx-*-elf): Remove deprecation.
18758
e65e1476
DS
187592008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
18760
18761 * config/i386/cygming-crtend.c (register_frame_ctor): Register
18762 __gcc_deregister_frame with atexit.
18763 (deregister_frame_dtor): Remove.
18764
9553940c 187652008-04-24 Nathan Froyd <froydnj@codesourcery.com>
94f4765c
NF
18766 Nathan Sidwell <nathan@codesourcery.com>
18767
e6d8b0c6 18768 * config/rs6000/rs6000.opt (mspe): Remove Var property.
94f4765c 18769 (misel): Likewise.
e6d8b0c6 18770 * config/rs6000/rs6000.h (rs6000_spe): Declare.
94f4765c 18771 (rs6000_isel): Likewise.
e6d8b0c6 18772 * config/rs6000/rs6000.c (rs6000_spe): New variable.
94f4765c 18773 (rs6000_isel): New variable.
e6d8b0c6 18774 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
94f4765c 18775
5dc11954
JJ
187762008-04-24 Jakub Jelinek <jakub@redhat.com>
18777
18778 PR c++/35758
18779 * c-common.c (handle_vector_size_attribute): Call
18780 lang_hooks.types.reconstruct_complex_type instead of
18781 reconstruct_complex_type.
18782 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
18783 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
18784 * langhooks.h (struct lang_hooks_for_types): Add
18785 reconstruct_complex_type hook.
18786 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
18787 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
18788
83322951
RG
187892008-04-24 Richard Guenther <rguenther@suse.de>
18790
18791 * c-common.h (check_builtin_function_arguments): Declare.
18792 * c-common.c (validate_nargs): New function.
18793 (check_builtin_function_arguments): Likewise.
18794 * c-typeck.c (build_function_call): Call
18795 check_builtin_function_arguments.
18796 * builtins.c (fold_builtin_classify): Remove error reporting code.
18797 (fold_builtin_unordered_cmp): Likewise.
18798 (fold_builtin_1): Likewise.
18799 (fold_builtin_n): Likewise.
18800
194ac52a
JJ
188012008-04-24 Jakub Jelinek <jakub@redhat.com>
18802
18803 PR tree-optimization/36008
18804 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
18805 the original op1, rather than delta by step.
18806
9f9f72aa 188072008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
e6d8b0c6 18808 Sebastian Pop <sebastian.pop@amd.com>
9f9f72aa
AP
18809
18810 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
18811 eliminate_local_variables_stmt, eliminate_local_variables,
18812 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
18813 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
18814 of code delimited by two edges in the CFG.
18815 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
18816 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
22129589 18817 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
9f9f72aa
AP
18818 the case of parallelisation of reductions.
18819 (expr_invariant_in_region_p): New.
18820
18821 * tree-flow.h (gather_blocks_in_sese_region): Declared.
18822 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
18823
2aa43509 188242008-04-24 Ira Rosen <irar@il.ibm.com>
e6d8b0c6 18825 Richard Guenther <rguenther@suse.de>
2aa43509
IR
18826
18827 PR tree-optimization/36034
18828 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
18829 incapable of dealing with loads with gaps.
18830
e49cf927 188312008-04-24 Rafael Espíndola <espindola@google.com>
e80d7580
RAE
18832
18833 * tree-flow.h (vrp_evaluate_conditional): Change signature.
18834 * tree-ssa-propagate.c (fold_predicate_in): Update call to
18835 vrp_evaluate_conditional.
18836 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
e6d8b0c6
UB
18837 (vrp_evaluate_conditional): Split the cond argument.
18838 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
18839 (simplify_stmt_for_jump_threading): Update call to
e80d7580
RAE
18840 vrp_evaluate_conditional.
18841
0e37a1c2
IR
188422008-04-24 Ira Rosen <irar@il.ibm.com>
18843
18844 PR tree-optimization/35982
18845 * tree-vect-analyze.c (vect_check_interleaving): Check that the
18846 interleaved data-refs are of the same type.
18847
f9f9640f
DS
188482008-04-24 Danny Smith <dannysmith@users.net>
18849
e6d8b0c6
UB
18850 * c-format.c (check_format_info_main): Use strncmp rather than a
18851 magic prefix to handle multichar length specs.
f9f9640f
DS
18852 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
18853 Don't prefix "I64" and "I32" with '\0'.
18854
64ceac43
JJ
188552008-04-24 Jakub Jelinek <jakub@redhat.com>
18856
18857 PR target/36015
18858 * config/i386/i386.c (init_cumulative_args): Don't pass anything
18859 in registers for -m32 only if stdarg_p (fntype).
18860
4679504c
UB
188612008-04-24 Uros Bizjak <ubizjak@gmail.com>
18862
18863 PR rtl-optimization/36006
18864 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
18865 temp to op0 in order to avoid invalid rtx sharing.
18866
51eed280
PB
188672008-04-23 Paolo Bonzini <bonzini@gnu.org>
18868
18869 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
18870 check TREE_INVARIANT.
18871 * tree-gimple.c (is_gimple_address): New.
18872 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
18873 * tree-gimple.h (is_gimple_address): New.
18874 * tree.h (decl_address_invariant_p): New.
18875 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
18876 (build_string): Likewise.
18877 (decl_address_invariant_p): New, from is_gimple_invariant_address.
18878 (tree_invariant_p_1): Likewise.
18879 (save_expr): Use it.
18880 (tree_invariant_p): New.
18881 (skip_simple_arithmetic): Use it.
18882 (stabilize_reference_1): Use it.
18883 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
18884 simplify.
18885 (build1_stat): Drop code to compute TREE_INVARIANT.
18886 (build2_stat): Drop code to compute TREE_INVARIANT.
18887 (build3_stat): Drop code to compute TREE_INVARIANT.
18888 (build4_stat): Drop code to compute TREE_INVARIANT.
18889 (build5_stat): Drop code to compute TREE_INVARIANT.
18890 (build7_stat): Drop code to compute TREE_INVARIANT.
18891 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
18892 * tree.h (struct tree_base): Remove invariant_flag.
18893 (TREE_INVARIANT): Remove.
18894 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
18895 (fold_builtin_expect): Check TREE_CONSTANT.
18896 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
18897 * c-tree.h (c_expr_to_decl): Drop third parameter.
18898 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
18899 (build_c_cast): Don't set TREE_INVARIANT.
18900 (pop_init_level): Don't set TREE_INVARIANT.
18901 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
18902 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
18903 TREE_CONSTANT.
18904 (gimplify_init_constructor): Don't set TREE_INVARIANT.
18905 (gimplify_addr_expr): Adjust comment.
18906 * tree-mudflap.c (mf_build_string):
18907 * print-tree.c (print_node): Don't print TREE_INVARIANT.
18908 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
18909 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
18910 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
18911 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
18912 * langhooks.h (struct lang_hooks): Drop third parameter from
18913 expr_to_decl.
18914
17d2c090
RG
189152008-04-23 Richard Guenther <rguenther@suse.de>
18916
18917 PR tree-optimization/27799
18918 PR tree-optimization/32921
18919 PR tree-optimization/32624
18920 * tree-ssa-structalias.c (merge_smts_into): Only merge the
18921 SMTs aliases and the tag itself into the solution.
18922 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
18923 merge the points-to solution back into the SMT aliases.
18924 (may_alias_p): Use alias_set_subset_of instead of
18925 aliases_conflict_p. A pointer which points to
18926 memory with alias set zero may access any variable.
18927
a7a512be
RG
189282008-04-23 Richard Guenther <rguenther@suse.de>
18929
18930 * alias.c (alias_set_subset_of): Correctly handle asking
18931 if zero is a subset of an alias set with zero child.
18932 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
18933 (compute_flow_insensitive_aliasing): Correctly walk all
18934 pointers. Do not unnecessarily union sets.
18935
f3f75f69
RG
189362008-04-23 Richard Guenther <rguenther@suse.de>
18937
18938 PR middle-end/36021
18939 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
18940
09725d5e
TB
189412008-04-22 Tomas Bily <tbily@suse.cz>
18942
4679504c
UB
18943 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
18944 unreachable case.
18945 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
18946 NON_LVALUE_EXPR.
18947 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
18948 * tree-ssa-structalias.c (get_constraint_for): Likewise.
18949 * tree-inline.c (estimate_num_insns_1): Likewise.
18950 * varasm.c (const_hash_1, compare_constant, copy_constant)
18951 (compute_reloc_for_constant, output_addressed_constants): Likewise.
18952 * emit-rtl.c (component_ref_for_mem_expr)
18953 (set_mem_attributes_minus_bitpos): Likewise.
18954 * expr.c (highest_pow2_factor, expand_expr_real_1, )
18955 (is_aligning_offset): Likewise.
18956 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
18957 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
18958 * dojump.c (do_jump): Likewise.
18959 * builtins.c (get_pointer_alignment, get_memory_rtx)
18960 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
18961 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
09725d5e 18962
63cb92c1
JJ
189632008-04-23 Jakub Jelinek <jakub@redhat.com>
18964
18965 PR rtl-optimization/36017
18966 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
18967 expanding the library call.
18968
b2f06c39
ILT
189692008-04-22 Ian Lance Taylor <iant@google.com>
18970
18971 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
18972 than size_in_bytes.
18973
aafc759a
PH
189742008-04-22 Pat Haugen <pthaugen@us.ibm.com>
18975
18976 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
18977 of LR/CTR moves for Power6.
18978
4218dc2d 189792008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
5b4603fa
KZ
18980
18981 PR middle-end/36003
18982 * passes.c (init_optimization_passes): Remove
18983 pass_fast_rtl_byte_dce.
22129589 18984
6126672e
UB
189852008-04-22 Uros Bizjak <ubizjak@gmail.com>
18986
18987 PR target/29096
18988 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
18989 builtin functions to generate faster code.
18990 (_mm_cvtpu16_ps): Ditto.
18991 (_mm_cvtpi32x2_ps): Ditto.
18992
f6d2671e
NC
189932008-04-22 Nick Clifton <nickc@redhat.com>
18994
53ed2f0e
NC
18995 * common.opt (ftree-loop-distribution): Add Optimization
18996 attribute.
18997
7dd68986
NC
18998 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
18999 (frv_expand_builtin_va_start): Likewise.
19000
f6d2671e
NC
19001 * config/arm/arm.c (thumb_find_work_register): Fix location of
19002 argument register count.
19003
826fadba
MK
190042008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
19005
19006 Support scheduling for ColdFire V1 and V3 microarchitecture.
19007 Improve scheduling of multiplication instructions.
19008
19009 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
19010 (mac): New instruction attribute.
19011 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
19012 (m68k_sched_mac): New variable.
19013 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
19014 Handle cfv1 and cfv3.
19015 (max_insn_size): New static variable.
19016 (struct _sched_ib): New type.
19017 (sched_ib): New static variable.
19018 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
19019 to fields of 'struct _sched_ib sched_ib'. Update all uses.
19020 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
19021 Update.
19022 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
19023 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
19024 new variables. Update.
19025 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
19026 Add modeling of cfv3 instruction buffer. Update.
19027 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
19028 * config/m68k/m68k.h (TUNE_CFV3): New macro.
19029 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
19030 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
19031 a particular reservation applies to.
19032 (type2): Reorganize attribute values. Rename alu to alu_reg,
19033 alu_l to alu, move_l to omove. Join move to alu. Split mul
19034 to mul_l and mul_w.
19035 (cf_ib_*): Simplify description of instruction buffer.
19036 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
19037 (cf_mem): Split into cf_mem1 and cf_mem2.
19038 (cf_v2_move_??): Rename to cfv12_alu_??.
19039 (cf_v2_move_l_??): Rename to cfv12_omove_??.
19040 (cf_v2_mul_??): Remove reservations.
19041 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
19042 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
19043 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
19044 appropriate place.
19045 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
19046 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
19047 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
19048 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
19049 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
19050 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
19051 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
19052 expansions of the above reservations for instructions of sizes
19053 1, 2 and 3 words.
19054
c23da840
MK
190552008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
19056
19057 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
19058
27624b9e
AN
190592008-04-21 Adam Nemet <anemet@caviumnetworks.com>
19060
19061 * coverage.c: Include tree-pass.h.
19062 (coverage_counter_alloc): Print da_file_name to the dump file.
19063
4218dc2d 190642008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
27624b9e 19065
b60db1ba
KZ
19066 * sbitmap.c (sbitmap_range_empty_p): New function.
19067 * sbitmap.h (sbitmap_range_empty_p): New function.
27624b9e 19068 * bitmap.h: Now includes obstack.h.
b60db1ba 19069
27624b9e 190702008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
4218dc2d 19071 Kenneth Zadeck <zadeck@naturalbridge.com>
cc806ac1
RS
19072
19073 * dbgcnt.def (ra_byte_scan): Added.
19074 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
22129589 19075 when the last hit happens for a counter.
cc806ac1
RS
19076 * timevar.def (TV_DF_BYTE_LR): New variable.
19077 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
19078 * passes.c (pass_fast_rtl_byte_dce): New pass.
19079 * fwprop.c (update_df): Added mode to call df_ref_create.
19080 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19081 DF_REF_EXTRACT_OFFSET.
22129589 19082 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
cc806ac1
RS
19083 DF_BYTE_LR_OUT, df_byte_lr): New macro.
19084 (df_mm): New enum.
19085 (df_ref_extract): Added mode field.
19086 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
19087 DF_REF_EXTRACT_OFFSET.
19088 (DF_REF_EXTRACT_MODE): New macro.
19089 (df_byte_lr_bb_info): New structure.
22129589 19090 (df_print_byte_regset, df_compute_accessed_bytes,
cc806ac1
RS
19091 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
19092 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
19093 df_byte_lr_simulate_uses,
19094 df_byte_lr_simulate_artificial_refs_at_top,
19095 df_byte_lr_simulate_artificial_refs_at_end,
19096 df_compute_accessed_bytes): New function.
19097 (df_ref_create): Add parameter.
19098 (df_byte_lr_get_bb_info): New inline function.
19099 * df-scan.c (df_ref_record, df_uses_record,
19100 df_ref_create_structure): Added mode parameter.
22129589 19101 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
cc806ac1 19102 df_defs_record, df_uses_record, df_get_conditional_uses,
22129589 19103 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
cc806ac1
RS
19104 df_entry_block_defs_collect, df_exit_block_uses_collect):
19105 Added mode parameter to calls to df_ref_record, df_uses_record,
19106 df_ref_create_structure.
4679504c 19107 (df_ref_equal_p, df_ref_compare): Added test for modes.
cc806ac1
RS
19108 (df_ref_create_structure): Added code to set mode. Renamed
19109 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
19110 DF_REF_EXTRACT_OFFSET.
19111 * df-core.c (df_print_byte_regset): New function.
19112 * df-byte-scan.c: New file.
19113 * df-problems.c (df_rd_transfer_function): Removed unnecessary
22129589 19114 calls to BITMAP_FREE.
cc806ac1
RS
19115 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
19116 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
22129589
AS
19117 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
19118 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
cc806ac1
RS
19119 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
19120 df_byte_lr_local_compute, df_byte_lr_init,
22129589
AS
19121 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
19122 df_byte_lr_transfer_function, df_byte_lr_free,
cc806ac1 19123 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
22129589 19124 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
cc806ac1
RS
19125 df_byte_lr_simulate_uses,
19126 df_byte_lr_simulate_artificial_refs_at_top,
19127 df_byte_lr_simulate_artificial_refs_at_end): New function.
19128 * dce.c (byte_dce_process_block): New function.
19129 (dce_process_block): au is now passed in rather than computed
19130 locally. Changed loops that look at artificial defs to not look
22129589
AS
19131 for conditional or partial ones, because there never are any.
19132 (fast_dce): Now is able to drive byte_dce_process_block or
cc806ac1
RS
19133 dce_process_block depending on the kind of dce being done.
19134 (rest_of_handle_fast_dce): Add parameter to fast_dce.
19135 (rest_of_handle_fast_byte_dce): New function.
19136 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
19137 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
19138
3d4cb550
DF
191392008-04-21 Daniel Franke <franke.daniel@gmail.com>
19140
19141 PR fortran/35019
19142 * gcc.h: Added fortran options that take arguments to
19143 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
19144 macros.
19145
eea05d39
EB
191462008-04-20 Eric Botcazou <ebotcazou@adacore.com>
19147
19148 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
19149 scalarization if on the LHS and not a full access.
19150
def9bf34
RW
191512008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19152
eea05d39 19153 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
def9bf34 19154
e49cf927 191552008-04-18 Rafael Espíndola <espindola@google.com>
eea05d39 19156
b7d8d447
RAE
19157 * tree-vrp.c (find_case_label_index): Fix the binary search.
19158 (find_case_label_range): New.
19159 (vrp_visit_switch_stmt): Use find_case_label_range.
19160 (simplify_switch_using_ranges): Use find_case_label_range.
19161
ed3444e9
EB
191622008-04-18 Eric Botcazou <ebotcazou@adacore.com>
19163
19164 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
19165 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
19166
893174fa
TT
191672008-04-18 Tom Tromey <tromey@redhat.com>
19168
19169 PR libcpp/15500:
19170 * doc/cpp.texi (Implementation-defined behavior): Mention
19171 -finput-charset.
19172
6e3c5c30
ILT
191732008-04-18 Ian Lance Taylor <iant@google.com>
19174
19175 * fold-const.c (pointer_may_wrap_p): New static function.
19176 (fold_comparison): Add another test for pointer overflow. Use
19177 pointer_may_wrap_p to disable some false positives.
19178
b6baa67d 191792008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
22129589 19180
b6baa67d
KVH
19181 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
19182 (fname_as_string): Match updated cpp_interpret_string prototype.
19183 (fix_string_type): Support char16_t* and char32_t*.
19184 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
19185 derivative) nodes. Register as builtin if C++0x.
19186 (c_parse_error): Support CPP_CHAR{16,32}.
22129589 19187 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
b6baa67d
KVH
19188 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
19189 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
19190 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
19191 CTI_CHAR32_ARRAY_TYPE>: New elements.
19192 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
19193 char32_type_node, signed_char32_type_node, char16_array_type_node,
19194 char32_array_type_node): New defines.
19195 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
19196 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
19197 (lex_string): Support CPP_STRING{16,32}, match updated
19198 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
19199 (lex_charconst): Support CPP_CHAR{16,32}.
19200 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
19201 and CPP_STRING{16,32}.
19202
deb984e6
PB
192032008-04-18 Paolo Bonzini <bonzini@gnu.org>
19204
19205 PR bootstrap/35457
19206 * aclocal.m4: Regenerate.
19207 * configure: Regenerate.
19208
cb91fab0
JH
192092008-04-18 Jan Hubicka <jh@suse.cz>
19210
19211 * except.c (dw2_size_of_call_site_table,
19212 sjlj_size_of_call_site_table): Use vector API for call_site_record.
19213
19214 * cgraphbuild.c (build_cgraph_edges): Update.
19215 * tree-pass.h: Update comment.
19216 * final.c (leaf_function_p): Update.
19217 (leaf_renumber_regs): Update.
19218 (rest_of_clean_state): Update.
19219 * omp-low.c (expand_omp_parallel): Update.
19220 * ipa-reference.c (analyze_function): Update.
19221 * reorg.c (find_end_label): Update.
19222 (optimize_skip): Update.
19223 (fill_simple_delay_slots): Update.
19224 (fill_simple_delay_slots): Update.
19225 (make_return_insns): Update.
19226 (dbr_schedule): Update.
19227 * gimple-low.c (record_vars_into): Update.
19228 * cfgbuild.c (make_edges): Update.
19229 * function.c (assign_stack_local): Update.
19230 (assign_parm_adjust_stack_rtl): Update.
19231 (locate_and_pad_parm): Update.
19232 (allocate_struct_function): Do not initialize stack_alignment_needed
19233 and preferred_stack_boundary here.
19234 (stack_protect_prologue): Update.
19235 (stack_protect_epilogue): Update.
19236 (expand_function_start): Initialize stack_alignment_needed,
19237 preferred_stack_boundary and max_jumptable_ents.
19238 (expand_function_end): Update.
19239 (free_after_compilation): Do not NULLify epilogue_delay_list.
19240 * function.h (struct rtl_data): Add stack_protect_guard,
19241 stack_alignment_needed,
19242 preferred_stack_boundary, epilogue_delay_list.
19243 (struct function): Remove value_histograms, stack_alignment_needed,
19244 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
19245 last_label_uid,
19246 unexpanded_var_list, stack_protect_guard.
19247 (current_function_epilogue_delay_list): Remove.
19248 * ipa-type-escape.c (analyze_function): Update.
19249 * gimplify.c (pop_gimplify_context): Update comment.
19250 * calls.c (expand_call): Update.
19251 (emit_library_call_value_1): Update.
19252 * except.c (set_nothrow_function_flags): Update.
19253 * cfgexpand.c (get_decl_align_unit): Update.
19254 (create_stack_guard): Update.
19255 (estimated_stack_frame_size): Update.
19256 (expand_used_vars): Update.
19257 (tree_expand_cfg): Free histogram earliers, init expansion variables.
19258 * explow.c (allocate_dynamic_stack_space): Update.
19259 * tree-ssa-live.c (remove_unused_locals): Update.
19260 * varasm.c (mark_constant_pool): Update.
19261 * tree-inline.c (remap_decls): Update.
19262 (initialize_cfun): Update.
19263 (declare_return_variable): Update.
19264 (inline_forbidden_p): Update.
19265 (expand_call_inline): Update.
19266 (declare_inline_vars): Update.
19267 (tree_function_versioning): Update.
19268 * tree-flow.h (value_histograms): New.
19269 (VALUE_HISTOGRAMS): New macro.
19270 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
19271 last_label_uid.
19272 * tree-cfg.c (set_bb_for_stmt): Update.
19273 (replace_by_duplicate_decl): Update.
19274 (move_block_to_fn): Update.
19275 (new_label_mapper): Update.
19276 (dump_function_to_file): Update.
19277 * ipa-struct-reorg.c (build_data_structure): Update.
19278 * cfgrtl.c (print_rtl_with_bb): Update.
19279 * reload1.c (reload): Update.
19280 (reload): Update.
19281 * config/i386/i386.c (setup_incoming_varargs_64,
19282 ix86_compute_frame_layout): Update.
19283 * config/arc/arc.c (arc_output_function_epilogue): Update.
19284
799cff46
MS
192852008-04-18 Marius Strobl <marius@FreeBSD.org>
19286
19287 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
19288 for FreeBSD as well.
19289 * gthr-posix95.h: Likewise.
19290
de907943
RS
192912008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
19292
19293 PR rtl-optimization/35838
19294 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
19295 out the byte offset of the first subreg.
19296
c2b814b9
UB
192972008-04-17 Uros Bizjak <ubizjak@gmail.com>
19298
19299 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
19300 to split_ti instead of three separate calls with single member arrays.
19301 (subti3 splitter): Ditto.
19302 (adddi3 splitter): Ditto with split_di.
19303 (subdi3 splitter): Ditto.
19304 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
19305 two separate calls with single member arrays. Swap match_dup
19306 operands 1 and 2 to better fit into the array.
19307 (negdi2 splitter): Ditto with split_di.
19308 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
19309 two separate calls with single member arrays. Swap match_dup operands
19310 6 and 7 to better fit into the array.
19311
ec2e9a15
L
193122008-04-17 H.J. Lu <hongjiu.lu@intel.com>
19313
19314 * config/i386/i386.c (sse_builtin_type): New.
19315 (bdesc_sse_args): Likewise.
19316 (bdesc_sse_3arg): Removed.
19317 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
19318 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
19319 IX86_BUILTIN_ROUNDPS.
19320 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
19321 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
19322 IX86_BUILTIN_ROUNDPS.
19323 (ix86_expand_sse_4_operands_builtin): Removed.
19324 (ix86_expand_sse_operands_builtin): New.
19325 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
19326 and CODE_FOR_sse4_1_roundps.
19327 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
19328 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
19329
e6477eaa
AM
193302008-04-17 Alan Modra <amodra@bigpond.net.au>
19331
19332 PR target/35907
19333 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
19334 regs before frame pop when needed. If use_backchain_to_restore_sp
19335 then load backchain into a temp reg to restore vr and vrsave. Add
19336 code to restore vr after frame pop if possible.
19337
ba2e1892
RG
193382008-04-17 Richard Guenther <rguenther@suse.de>
19339
19340 * tree-vn.c (expressions_equal_p): Do not check type
19341 equality or compatibility before calling operand_equal_p.
19342 * fold-const.c (operand_equal_p): Check equivalence of
19343 integer constants before bailing out due to signedness or
19344 precision differences.
19345 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
19346 spurious differences in type qualification. Ignore types
19347 for COMPONENT_REFs at all.
19348
d60819f8
CB
193492008-04-17 Christian Bruel <christian.bruel@st.com>
19350
19351 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
19352 msw_skip comparison.
22129589 19353
3d5e00a0
JJ
193542008-04-16 Jakub Jelinek <jakub@redhat.com>
19355
12e19e05
JJ
19356 PR c/35739
19357 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
19358 reg type.
19359
3d5e00a0
JJ
19360 PR tree-optimization/35899
19361 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
19362 rather than TREE_OPERAND.
19363
17c340e0
UB
193642008-04-16 Uros Bizjak <ubizjak@gmail.com>
19365
19366 PR target/35944
19367 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
19368 temporary registers. Change operand predicate to general_operand.
19369 (remainderxf3): Ditto.
19370
e544c850
RG
193712008-04-16 Richard Guenther <rguenther@suse.de>
19372
19373 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
19374 * tree-affine.c (aff_combination_expand): Look through some
19375 conversions.
19376
3d57d7ce
DK
193772008-04-15 Doug Kwan <dougkwan@google.com>
19378
19379 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
19380 for hex printing.
19381 * tree-pretty-print.c (dump_generic_node): Ditto.
19382 * final.c (output_addr_const): Ditto.
19383 * dwarf2out.c (output_cfi): Ditto.
19384 * c-pretty-print.c (pp_c_integer_constant): Ditto.
19385 * print-rtl.c (print_rtx): Ditto.
19386 * print-tree.c (print_node_brief, print_node): Ditto.
19387 * c-common.c (match_case_to_enum_1): Ditto.
19388 * sched-vis.c (print_value): Ditto.
19389 * config/i386/i386.c (print_operand): Cast to long unsigned int
19390 for hex printing.
19391
d98c89de
DS
193922008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
19393 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
19394 MS Windows VirtualProtect function.
19395
69c32ec8
JH
193962008-04-15 Jan Hubicka <jh@suse.cz>
19397
19398 * gengtype.c (write_root): Param_is argument is OK.
19399 * expr.c (expand_expr_real_1): Update call of get_exception_*.
19400 * function.h: Include varray.h
19401 (rtl_eh): New stucture based on except.c one.
19402 (call_site_record): New forward declaration and vector type.
19403 * calls.c (emit_call_1): Do not call
19404 note_current_region_may_contain_throw.
19405 * except.c (eh_status): Remove cur_region, try_region since they are
19406 unused.
19407 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
19408 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
22129589 19409 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
69c32ec8
JH
19410 Remove call_site_data_used, call_site_data_size.
19411 Turn call_site_record into vector in function.h.
19412 (note_current_region_may_contain_throw): Remove.
19413 (get_exception_pointer, get_exception_filter): Do not take struct
19414 function argument; update.
19415 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
19416 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
19417 build_post_landing_pads, dw2_build_landing_pads,
19418 sjlj_assign_call_site_values, sjlj_mark_call_sites,
22129589 19419 sjlj_emit_function_enter, sjlj_emit_function_enter,
69c32ec8
JH
19420 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
19421 sjlj_build_landing_pads, finish_eh_generation,
19422 remove_exception_handler_label, remove_eh_handler,
19423 maybe_remove_eh_handler, add_reachable_handler,
17c340e0
UB
19424 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
19425 add_action_record, collect_one_action_chain, add_call_site,
19426 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
69c32ec8
JH
19427 sjlj_output_call_site_table, output_function_exception_table,
19428 * except.h (note_current_region_may_contain_throw): Remove
19429 (get_exception_pointer, get_exception_filter): Do not take struct
19430 function argument.
19431 * Makefile.in (GTFILES): Put varargs before struct function.
19432
bd1f29d9
EB
194332008-04-15 Eric Botcazou <ebotcazou@adacore.com>
19434
19435 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
19436 punt for STRING_CST.
19437 (get_constraint_for): Deal with STRING_CST here instead.
19438
3bb3bb2d
RG
194392008-04-15 Richard Guenther <rguenther@suse.de>
19440
19441 * tree-ssa-propagate.c (substitute_and_fold): Substitute
19442 statements in a basic-block with a backward walk. Do not
19443 substitute into dead statements but instead remove those.
19444
d9338cf0
RG
194452008-04-15 Richard Guenther <rguenther@suse.de>
19446
19447 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
19448 to zero, thus disable creation of SFTs.
19449
7e80c6bf
EB
194502008-04-15 Eric Botcazou <ebotcazou@adacore.com>
19451
19452 * tree-predcom.c (suitable_reference_p): Return false if the
19453 reference can throw.
19454
b97d8153
JJ
194552008-04-15 Jakub Jelinek <jakub@redhat.com>
19456
19457 PR c/35751
19458 * c-decl.c (finish_decl): If extern or static var has variable
19459 size, set TREE_TYPE (decl) to error_mark_node.
19460
e49cf927 194612008-04-15 Rafael Espíndola <espindola@google.com>
d0599470 19462
b97d8153 19463 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d0599470
RAE
19464 variable arg1.
19465
649caaad
RG
194662008-04-15 Richard Guenther <rguenther@suse.de>
19467
19468 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
19469 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
19470 (visit_reference_op_load): Do walk vuse-vdef chains on
19471 vn_reference_lookup.
19472 (visit_reference_op_store): But do not here.
19473 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
19474 vn_reference_lookup.
19475 (vn_lookup_with_vuses): But do so here.
19476
55d7d0fa
ILT
194772008-04-14 Ian Lance Taylor <iant@google.com>
19478
19479 * fold-const.c (fold_overflow_warning): Remove assertion.
19480
2c4eec69
BE
194812008-04-15 Ben Elliston <bje@au.ibm.com>
19482
19483 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
19484 temp1 local variables.
19485
194862008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
40f39798
ZM
19487
19488 PR target/35661
19489 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
19490 ".text.unlikely" section as executable.
19491
07acc7b3
JW
194922008-04-14 James E. Wilson <wilson@tuliptree.org>
19493
19494 * config/ia64/ia64.c (rtx_needs_barrier): Handle
19495 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
19496 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
19497 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
19498 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
19499 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
19500 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
19501
4c9db6e0
ILT
195022008-04-14 Ian Lance Taylor <iant@google.com>
19503
19504 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
19505 * fold-const.c (fold_comparison): If appropriate, test
19506 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
19507 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
19508 reassociating a pointer type.
19509 * doc/invoke.texi (Optimize Options): Document that
19510 -fstrict-overflow applies to pointer wraparound.
19511
305da3ec
JH
195122008-04-13 Jan Hubicka <jh@suse.cz>
19513
19514 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
19515
298ac1dd
AP
195162008-04-12 Andrew Pinski <pinskia@gmail.com>
19517
19518 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
19519 we are going to "save the world".
19520
70a7c7f1
HPN
195212008-04-13 Hans-Peter Nilsson <hp@axis.com>
19522
19523 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
19524 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
19525 operand 0 constraint, not "=".
19526
ad7aacba
JW
195272008-04-11 James E. Wilson <wilson@tuliptree.org>
19528
19529 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
19530
9d6facc7
L
195312008-04-11 H.J. Lu <hongjiu.lu@intel.com>
19532
19533 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
19534 of size of positions_needed * CHAR_BIT.
19535
4fe663b0
L
195362008-04-11 H.J. Lu <hongjiu.lu@intel.com>
19537
19538 PR middle-end/35897
19539 * dse.c (store_info): Change positions_needed to unsigned
19540 HOST_WIDE_INT.
19541 (lowpart_bitmask): New.
19542 (record_store): Cast to unsigned HOST_WIDE_INT for
19543 positions_needed. Assert width <= size of positions_needed *
19544 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
19545 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
19546 lowpart_bitmask to set mask.
19547
9fdd7520
BS
195482008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
19549
19550 * config/bfin/constraints.md: New file.
19551 * config/bfin/bfin.md: Include it.
19552 (adddi3): Use satisfies_constraint functions instead of the old macros.
19553 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
19554 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
19555 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
19556 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
19557 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
19558 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
19559 EXTRA_CONSTRAINT): Delete.
19560 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
19561 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
19562 of the old macros.
19563 * config/bfin/bfin.c: Include "tm-constrs.h".
19564 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
19565 Use satisfies_constraint functions instead of the old macros.
19566 * doc/md.texi (Blackfin Constraints): Update file name reference.
19567
0a4bf1d3
RG
195682008-04-11 Richard Guenther <rguenther@suse.de>
19569
19570 PR tree-optimization/35869
19571 * tree-vrp.c (execute_vrp): Move switch statement update after
19572 jump threading. Schedule another cfg cleanup run.
19573
21516d64
VR
195742008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
19575
19576 PR c/35744
19577 * attribs.c (decl_attributes): Return early on errorneous node.
19578
0598f31b
OR
195792008-04-10 Oleg Ryjkov <olegr@google.com>
19580
19581 * tree.h (struct tree_base): Added a new flag default_def_flag.
19582 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
19583
a1fcb9a1
KK
195842008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
19585
19586 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
19587
6ef5fab0
JDA
195882008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19589
19590 PR target/35768
19591 * pa.md: Define mode iterator P. Define mode attribute dwc.
19592 (dcacheflush): Update pattern to use iterator P and attribute dwc.
19593 (icacheflush): Likewise.
19594 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
19595 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
19596
e47f8bba
BE
195972008-04-11 Ben Elliston <bje@au.ibm.com>
19598
19599 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
19600
e49cf927 196012008-04-10 Rafael Espíndola <espindola@google.com>
2893f753 19602
b97d8153 19603 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2893f753
RAE
19604 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
19605 (extract_range_from_expr): The same.
19606
5fb79e4c
AN
196072008-04-10 Adam Nemet <anemet@caviumnetworks.com>
19608
19609 * config/mips/mips.md (GPR2): New mode iterator.
19610 (seq): Add comment.
19611 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
19612 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
19613 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
19614 Rewrite these to take two modes, the mode of comparison and the
19615 mode of the destination.
19616 * config/mips/mips.c (mips_expand_scc): Instead of having
19617 paradoxical subreg as destination, expand "narrowing" scc if mode
19618 of comparison is SI and target is requested in DI mode.
19619 (mips_emit_int_order_test): Update comment. Make mode of
19620 comparison match CMP0 rather than TARGET. When creating inverse
19621 target use mode of TARGET.
19622
63d628b2
AN
196232008-04-10 Adam Nemet <anemet@caviumnetworks.com>
19624
19625 * gcov-dump.c (tag_summary): Only print summaries for the first
19626 GCOV_COUNTERS_SUMMABLE counters.
19627
6dd18eb1
UB
196282008-04-10 Uros Bizjak <ubizjak@gmail.com>
19629
19630 * config/i386/i386.md (absneg): New code iterator.
19631 (absnegprefix): New code attribute.
19632 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
19633 patterns using absneg code iterator.
19634 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
19635 using absneg code iterator.
19636 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
19637 *neg<mode>2 patterns using absneg code iterator.
19638 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19639 *negextendsfdf2 patterns using absneg code iterator.
19640 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
19641 *negextendsfxf2 patterns using absneg code iterator.
19642 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
19643 *negextendsfdf2 patterns using absneg code iterator.
19644 * config/i386/sse.md (<code><mode>2): Macroize expander from
22129589 19645 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
6dd18eb1 19646
f40bee31
AK
196472008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
19648
19649 * config/s390/s390.h: Remove the remains of the recent search
19650 & replace action of current_function_outgoing_args_size.
19651
19aec6b0
IR
196522008-04-10 Ira Rosen <irar@il.ibm.com>
19653
19654 PR tree-optimization/35821
19655 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
19656 NEW_STMT_LIST is not NULL.
19657
ee8f0bd7
DE
196582008-04-09 David Edelsohn <edelsohn@gnu.org>
19659
19660 PR libstdc++/35597
19661 * toplev.c (process_options): Remove -ffunction-sections debugging
19662 warning.
19663
3a3a1fe1
PB
196642008-04-09 Peter Bergner <bergner@vnet.ibm.com>
19665
19666 PR middle-end/PR28690
19667 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
19668 than gen_rtx_fmt_ee to perform more canonicalizations.
19669
e0941605
JDA
196702008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19671
19672 PR driver/35665
19673 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
19674
2f9ea521
RG
196752008-04-09 Richard Guenther <rguenther@suse.de>
19676
19677 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
19678 (dump_function_to_file): Dump function arguments with types.
19679
02765a37
RG
196802008-04-08 Richard Guenther <rguenther@suse.de>
19681
19682 * fold-const.c (fold_widened_comparison): Do not allow
19683 sign-changes that change the result.
19684
a0f39282
JJ
196852008-04-08 Janis Johnson <janis187@us.ibm.com>
19686
19687 PR target/35839
19688 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
19689 kinds of indirect references.
19690
7f62878c
DE
196912008-04-08 David Edelsohn <edelsohn@gnu.org>
19692
19693 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
19694 GNU Fortran language string.
19695
e49cf927 196962008-04-08 Rafael Espíndola <espindola@google.com>
a1a6e271
RAE
19697
19698 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
19699 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
19700 * tree.h (tree_call_nonnegative_warnv_p): New.
19701
57b9e367
JH
197022008-04-08 Jan Hubicka <jh@suse.cz>
19703
19704 * function.c (free_after_compilation): Clear out regno_reg_rtx
19705 pointer.
19706
a95c8615
PB
197072008-04-08 Peter Bergner <bergner@vnet.ibm.com>
19708
19709 Revert
19710 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
19711
19712 PR middle-end/PR28690
19713 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
19714 same precedence as REG_POINTER and MEM_POINTER operands.
19715
903b3003
RG
197162008-04-08 Richard Guenther <rguenther@suse.de>
19717
19718 PR middle-end/35834
19719 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
19720 for adding index to base.
19721
0b03b302
KT
197222008-04-08 Kai Tietz <kai.tietz@onevision.com>
19723
19724 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
19725 (MINGW_ENABLE_EXECUTE_STACK): New.
19726 (IN_LIBGCC2): For libgcc include windows.h file for
19727 function declarations.
19728
582be0a1
HPN
197292008-04-08 Hans-Peter Nilsson <hp@axis.com>
19730
19731 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
19732 and tem2 if tem1 is not a REG or MULT.
19733
38173d38
JH
197342008-04-08 Jan Hubicka <jh@suse.cz>
19735
19736 * function.h (incomming_args): Break out of struct function.
19737 (function_subsections): Break out of struct function.
19738 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
19739 return_rtx and hard_reg_initial_vals from struct function.
19740 Kill inl_max_label_num.
19741 (current_function_pops_args, current_function_args_info,
19742 current_function_args_size, current_function_args_size,
19743 current_function_pretend_args_size,
19744 current_function_outgoing_args_size,
19745 current_function_internal_arg_pointer, current_function_return_rtx):
19746 Kill compatibility accestor macros.
19747 * builtins.c (expand_builtin_apply_args_1): Update.
19748 (expand_builtin_next_arg): Update.
19749 * df-scan.c (df_get_call_refs): Update.
19750 * dbxout.c (dbxout_function_end): Update.
19751 * dwarf2out.c (dwarf2out_switch_text_section): Update.
19752 (output_line_info): Update.
19753 (secname_for_decl): Update.
19754 (dwarf2out_var_location): Update.
19755 * function.c (free_after_compilation): Update.
19756 (assign_parm_find_stack_rtl): Update.
19757 (assign_parms): Update.
19758 (expand_dummy_function_end): Update.
19759 (expand_function_end): Update.
19760 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
19761 (expand_call): Update.
19762 (emit_library_call_value_1): Update.
19763 (store_one_arg): Update.
19764 * varasm.c (initialize_cold_section_name): Update.
19765 (unlikely_text_section): Update.
19766 (unlikely_text_section_p): Update.
19767 (assemble_start_function): Update.
19768 (assemble_end_function): Update.
19769 (default_section_type_flags): Update.
19770 (switch_to_section): Update.
19771 * integrate.c (set_decl_abstract_flags): Update.
19772 (get_hard_reg_initial_val): Update.
19773 (has_hard_reg_initial_val): Update.
19774 (allocate_initial_values): Update.
19775 * resource.c (init_resource_info): Update.
19776 * config/alpha/alpha.c (NUM_ARGS): Update.
19777 (direct_return): Update.
19778 (alpha_va_start): Update.
19779 (alpha_sa_size): Update.
19780 (alpha_initial_elimination_offset): Update.
19781 (alpha_expand_prologue): Update.
19782 (alpha_start_function): Update.
19783 (alpha_expand_epilogue): Update.
19784 (unicosmk_initial_elimination_offset):
19785 * config/alpha/alpha.md (call expander): Update.
19786 * config/s390/s390.c (s390_register_info): Update.
19787 (s390_register_info): Update.
19788 (s390_frame_info): Update.
19789 (s390_initial_elimination_offset): Update.
19790 (s390_build_builtin_va_list): Update.
19791 (s390_va_start): Update.
19792 * config/spu/spu.c (direct_return): Update.
19793 (spu_expand_prologue): Update.
19794 (spu_initial_elimination_offset): Update.
19795 (spu_build_builtin_va_list): Update.
19796 (spu_va_start): Update.
19797 * config/sparc/sparc.c (sparc_init_modes): Update.
19798 (sparc_compute_frame_size): Update.
19799 (function_value): Update.
19800 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
19801 * config/i386/i386.md (return expander): Update.
19802 * config/i386/i386.c (ix86_va_start): Update.
19803 (ix86_can_use_return_insn_p): Update.
19804 (ix86_compute_frame_layout): Update.
19805 (ix86_expand_epilogue): Update.
19806 * config/sh/sh.c (output_stack_adjust): Update.
19807 (calc_live_regs): Update.
19808 (sh_expand_prologue): Update.
19809 (sh_builtin_saveregs): Update.
19810 (sh_va_start): Update.
19811 (initial_elimination_offset): Update.
19812 (sh_allocate_initial_value): Update.
19813 (sh_function_ok_for_sibcall): Update.
19814 (sh_get_pr_initial_val): Update.
19815 * config/sh/sh.md (return expander): Update.
19816 * config/avr/avr.c (frame_pointer_required_p): UPdate.
19817 * config/crx/crx.c (crx_compute_frame): UPdate.
19818 (crx_initial_elimination_offset): UPdate.
19819 * config/xtensa/xtensa.c (compute_frame_size): Update
19820 (xtensa_builtin_saveregs): Update.
19821 (xtensa_va_start): Update.
19822 (order_regs_for_local_alloc): Update.
19823 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
19824 (xstormy16_expand_builtin_va_start): Update.
19825 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
19826 * config/m68hc11/m68hc11.md (return expanders): Update.
19827 * config/m68hc11/m68hc11.c (expand_prologue): Update.
19828 (expand_epilogue): Update.
19829 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
19830 (cris_simple_epilogue): Update.
19831 (cris_expand_prologue): Update.
19832 (cris_expand_epilogue): Update.
19833 * config/iq2000/iq2000.c (iq2000_va_start): Update.
19834 (compute_frame_size): Update.
19835 * config/mt/mt.c (mt_compute_frame_size): Update.
19836 * config/mn10300/mn10300.c (expand_prologue): Update.
19837 (expand_epilogue): Update.
19838 (initial_offset): Update.
19839 (mn10300_builtin_saveregs):
19840 * config/mn10300/mn10300.md (return expander): Update.
19841 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
19842 (ia64_initial_elimination_offset): Update.
19843 (ia64_initial_elimination_offset): Update.
19844 (ia64_expand_prologue): Update.
19845 * config/m68k/m68k.md (return expander): Update.
19846 * config/rs6000/rs6000.c (rs6000_va_start): Update.
19847 (rs6000_stack_info): Update.
19848 * config/mcore/mcore.c (layout_mcore_frame): Update.
19849 (mcore_expand_prolog): Update.
19850 * config/arc/arc.c (arc_compute_frame_size): Update.
19851 * config/score/score3.c (score3_compute_frame_size): Update.
19852 * config/score/score7.c (score7_compute_frame_size): Update.
19853 * config/arm/arm.c (use_return_insn): Update.
19854 (thumb_find_work_register): Update.
19855 (arm_compute_save_reg_mask): Update.
19856 (arm_output_function_prologue): Update.
19857 (arm_output_epilogue): Update.
19858 (arm_size_return_regs): Update.
19859 (arm_get_frame_offsets): Update.
19860 (arm_expand_prologue): Update.
19861 (thumb_exit): Update.
19862 (thumb_unexpanded_epilogue): Update.
19863 (thumb1_output_function_prologue): Update.
19864 * config/pa/pa.md (return expander): Update.
19865 * config/pa/pa.c (compute_frame_size): Update.
19866 (hppa_builtin_saveregs): Update.
19867 * config/mips/mips.c (mips_va_start): Update.
19868 (mips16_build_function_stub): Update.
19869 (mips_compute_frame_info): Update.
19870 (mips_restore_gp): Update.
19871 (mips_output_function_prologue): Update.
19872 (mips_expand_prologue): Update.
19873 * config/v850/v850.c (compute_frame_size): Update.
19874 (expand_prologue): * config/mmix/mmix.c (along): update.
19875 (mmix_initial_elimination_offset): update.
19876 (mmix_reorg): update.
19877 (mmix_use_simple_return): update.
19878 (mmix_expand_prologue): update.
19879 (mmix_expand_epilogue): Update.
19880 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
19881 (emit_link_insn): Update.
19882
5d9b8bb4
AS
198832008-04-08 Anatoly Sokolov <aesok@post.ru>
19884
22129589
AS
19885 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
19886 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
5d9b8bb4 19887 instructions.
22129589 19888 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
5d9b8bb4
AS
19889 atmega103 device.
19890
3e029763
JH
198912008-04-07 Jan Hubicka <jh@suse.cz>
19892
19893 * function.h (rtl): Rename to x_rtl.
19894 (crtl): New define.
19895 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
19896 frame_offset, stack_check_probe_note, arg_pointer_save_area,
19897 used_temp_slots avail_temp_slots, temp_slot_level,
19898 nonlocal_goto_handler_labels): Update accesstors.
19899 (rtl): New global variable.
19900 (struct function): Move some fileds to rtl_data.
19901 (get_arg_pointer_save_area): Update prototype.
19902 * builtins.c (expand_builtin_setjmp_receiver): Update call of
19903 get_arg_pointer_save_area.
19904 * expr.c (init_expr): Update
19905 * function.c (get_frame_size): Update
19906 (assign_stack_local): Update
19907 (expand_function_end): Update.
19908 (get_art_pointer_save_area): Update
22129589 19909 * function.h
3e029763
JH
19910 * emit-rtl.c (rtl): Declare.
19911 (regno_reg_rtx): Declare.
19912 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
19913 Update.
19914 (gen_reg_rtx): Update.
19915 * varasm.c (n_deferred_constatns): Update accestor.
19916 (init_varasm_status): Do not allocate varasm_status.
19917 (force_const_mem, get_pool_size, output_constant_pool): Update.
19918 * stmt.c (force_label_rtx): Do not use x_ prefixes.
19919 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
19920 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
19921 * sparc/sparc.h (INIT_EXPANDERS): Update.
19922 * ia64/ia64.h (INIT_EXPANDERS): Update.
19923
c3be2598
JW
199242008-04-07 James E. Wilson <wilson@tuliptree.org>
19925
19926 * reload.c (push_secondary_reload): Add missing break to for loop.
19927
46b71b03
PB
199282008-04-07 Peter Bergner <bergner@vnet.ibm.com>
19929
19930 PR middle-end/PR28690
19931 * rtlanal.c: Update copyright years.
19932 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
19933 as REG_POINTER and MEM_POINTER operands.
19934 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
19935 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
19936 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
19937 * gcse.c: Update copyright years.
19938 (pre_delete): Call gen_reg_rtx_and_attrs.
19939 (hoist_code): Likewise.
19940 (build_store_vectors): Likewise.
19941 (delete_store): Likewise.
19942 * loop-invariant.c (move_invariant_reg): Likewise.
19943 Update copyright years.
19944
64ef8953
UB
199452008-04-07 Uros Bizjak <ubizjak@gmail.com>
19946
19947 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
19948 control string instead of quoted.
19949
4218dc2d 199502008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
84159bd8 19951
64ef8953
UB
19952 * doc/rtl.texi: Rewrite of subreg section.
19953
8502420b
KT
199542008-04-07 Kai Tietz <kai.tietz@onevision.com>
19955
64ef8953
UB
19956 PR/35842
19957 * config/i386/i386.c (legitimize_pic_address): Add treating
19958 of dllimport SYM_REF's.
19959 (legitimize_dllimport_symbol): Add prototype.
8502420b 19960
39fcde8f
EB
199612008-04-07 Eric Botcazou <ebotcazou@adacore.com>
19962
19963 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
19964 reference in constructor with non self-referential type.
19965
9dd9bf80
EB
199662008-04-07 Eric Botcazou <ebotcazou@adacore.com>
19967
19968 Removal of Return with Depressed Stack Pointer support
19969 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
19970 (ECF_SP_DEPRESSED): Likewise.
19971 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
19972 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
19973 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
19974 (expand_call): Do not test ECF_SP_DEPRESSED.
19975 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
19976 * function.c (keep_stack_depressed): Delete.
19977 (handle_epilogue_set): Likewise.
19978 (update_epilogue_consts): Likewise.
19979 (emit_equiv_load): Likewise.
19980 (thread_prologue_and_epilogue_insns): Remove support for Return with
19981 Depressed Stack Pointer.
19982 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
19983
3633df5a
RG
199842008-04-06 Richard Guenther <rguenther@suse.de>
19985
19986 PR tree-optimization/35400
19987 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
19988 information from SSA_NAMEs.
19989
5dc77808
AS
199902008-04-06 Anatoly Sokolov <aesok@post.ru>
19991
19992 * config/avr/avr.h (avr_mega_p): Remove declaration.
19993 (AVR_MEGA): Remove macro.
19994 * config/avr/avr.c (avr_mega_p): Remove variable.
19995 (avr_override_options): Remove inicializion of avr_mega_p.
19996 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
19997 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
19998 (avr_jump_mode): (Ditto.).
19999 (avr_output_progmem_section_asm_op): (Ditto.).
20000 (avr_asm_init_sections): (Ditto.).
20001 (avr_asm_init_sections): (Ditto.).
20002 (avr_rtx_costs): (Ditto.).
20003 * config/avr/avr.md: (Ditto.).
22129589 20004 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
5dc77808
AS
20005 '__AVR_MEGA__'.
20006
8c51effa
RG
200072008-04-06 Richard Guenther <rguenther@suse.de>
20008
20009 PR tree-optimization/35842
20010 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
20011 is_gimple_invariant_address.
20012
3135ce84
FXC
200132008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
20014
20015 * gcc.c (default_compilers): Sync Fortran extensions list with
20016 that in fortran/lang-specs.h.
20017 * doc/invoke.texi: Likewise.
20018 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
20019 * dwarf2out.c (gen_compile_unit_die): Likewise.
20020
d7d7db8b
TC
200212008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
20022
20023 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
20024
27183bba
UB
200252008-04-05 Uros Bizjak <ubizjak@gmail.com>
20026
20027 PR target/12329
20028 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
20029 attribute is used for nested functions.
20030
9e016eba
JH
200312008-04-05 Jan Hubicka <jh@suse.cz>
20032
9fb7564e
JH
20033 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
20034
9e016eba
JH
20035 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
20036 letter argument.
20037 (dump_files): Update.
20038 (enable_rtl_dump_file): Do not accept letter argument.
20039 * tree-pass.h (dump_file_info): Remove letter argument.
20040 * toplev.c (decode_d_option): Update -da handling.
20041 * toplev.h (enable_rtl_dump_file): Update prototype.
20042 * passes.c (register_one_dump_file): Do not accept IPA argument; work
20043 it out based on pass type.
20044 (register_dump_files_1): Likewise.
20045 (init_optimization_passes): Update register_one_dump_file calls.
27183bba
UB
20046 (execute_one_pass): Sanity check that IPA passes are called at IPA
20047 level and RTL passes at RTL level.
9e016eba
JH
20048 (execute_pass_list): IPA pass can not be after or subpass of
20049 GIMPLE/RTL pass.
20050 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
20051 disallov RTL subpasses of IPA subpasses.
20052
23ef6d21
BE
200532008-04-05 Ben Elliston <bje@au.ibm.com>
20054
20055 * tree-cfg.c (need_fake_edge_p): Return false for calls to
20056 builtins that return exactly once and do not throw. Cache call to
20057 call_expr_flags.
20058
3c2397cd
AH
200592008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
20060
20061 PR rtl-optimization/34916
20062 PR middle-end/35519
20063 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
20064 between instruction pairs.
20065
9eb3a0dd
N
200662008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
20067
20068 * doc/invoke.texi: Document -mbitops for SH.
20069 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
20070 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
20071 * config/sh/sh.c (print_operand): Add %t operand code.
20072 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
20073 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
20074 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
20075 (extendqihi2): Likewise.
20076 (movqi_i): Likewise.
20077 (insv): Use bset, bclr and bst instructions for SH2A if possible.
20078 (extv): Use bld instruction for SH2A if possible.
20079 (extzv): Likewise.
20080 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
20081 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
20082 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
20083 (bset.b, bclr.b): Define peepholes.
20084 * config/sh/sh.opt (mbitops): New option.
20085
fdf4f148
JJ
200862008-04-04 Janis Johnson <janis187@us.ibm.com>
20087
20088 PR target/35620
20089 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
20090 and view convert expression.
20091
3088d404
JJ
200922008-04-04 Jakub Jelinek <jakub@redhat.com>
20093
20094 PR target/35364
20095 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
20096
8b96a312
L
200972008-04-04 H.J. Lu <hongjiu.lu@intel.com>
20098
20099 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
20100
20101 * config/i386/cpuid.h (bit_AES): New.
20102 (bit_PCLMUL): Likewise.
20103
20104 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
20105 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
20106 SSE2 if AES or PCLMUL is enabled.
20107 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
20108 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20109 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
20110 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
20111 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
20112 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
20113 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
20114 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
20115 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
20116 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
20117 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
20118 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
20119 __builtin_ia32_aeskeygenassist128 and
20120 __builtin_ia32_pclmulqdq128.
20121 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
20122 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
20123 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
20124
20125 * config/i386/i386.h (TARGET_AES): New.
20126 (TARGET_PCLMUL): Likewise.
20127 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
20128
20129 * config/i386/i386.md (UNSPEC_AESENC): New.
20130 (UNSPEC_AESENCLAST): Likewise.
20131 (UNSPEC_AESDEC): Likewise.
20132 (UNSPEC_AESDECLAST): Likewise.
20133 (UNSPEC_AESIMC): Likewise.
20134 (UNSPEC_AESKEYGENASSIST): Likewise.
c9a22ea1 20135 (UNSPEC_PCLMUL): Likewise.
8b96a312
L
20136
20137 * config/i386/i386.opt (maes): New.
20138 (mpclmul): Likewise.
20139
20140 * config/i386/sse.md (aesenc): New pattern.
20141 (aesenclast): Likewise.
20142 (aesdec): Likewise.
20143 (aesdeclast): Likewise.
20144 (aesimc): Likewise.
20145 (aeskeygenassist): Likewise.
20146 (pclmulqdq): Likewise.
20147
20148 * config/i386/wmmintrin.h: New.
20149
20150 * doc/extend.texi: Document AES and PCLMUL built-in function.
20151
20152 * doc/invoke.texi: Document -maes and -mpclmul.
20153
e8924938
PB
201542008-04-04 Paolo Bonzini <bonzini@gnu.org>
20155
20156 * function.c (free_after_parsing): Replace with
20157 cxx_push_function_context from C++ front-end.
20158 (allocate_struct_function): Don't call langhook.
20159 * langhooks.h (struct lang_hooks_for_functions): Delete.
20160 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
20161 member "function".
20162 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
20163 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
20164 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
20165 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
20166 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
20167 remove LANG_HOOKS_FUNCTION_INITIALIZER.
20168 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
20169
20170 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
20171 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
22129589 20172
05008a0c
JJ
201732008-04-04 Jakub Jelinek <jakub@redhat.com>
20174
20175 PR c/35440
20176 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
20177 for all types.
20178
c071e8bc
RG
201792008-04-04 Richard Guenther <rguenther@suse.de>
20180
20181 PR middle-end/35823
20182 * fold-const.c (optimize_minmax_comparison): Use the correct
20183 type for the constant in the simplified comparison.
20184
f4a1dd0d
ZM
201852008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
20186
20187 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
20188 Pass L2 size as "--param l2-cache-size" to the compiler.
20189 (decode_l2_cache): New function to decode L2 cache parameters using
20190 0x8000006 extended cpuid function.
20191 (detect_caches_amd): Determine parameters of L2 cache using
20192 decode_l2_caches function.
20193 (decode_caches_intel): Decode L2 cache parameters.
20194 (detect_caches_intel): Determine L2 cache parameters using
20195 decode_caches_intel and decode_l2_caches functions.
20196
3ee909cb
BW
201972008-04-03 Bob Wilson <bob.wilson@acm.org>
20198
20199 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
20200 secondary input reload for subword loads from the constant pool.
20201
6db07dcb
JJ
202022008-04-03 Janis Johnson <janis187@us.ibm.com>
20203
383e91e4
JJ
20204 PR target/35713
20205 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
20206 constants of the appropriate size for runtime calculations.
20207
6db07dcb
JJ
20208 PR c/35712
20209 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
20210 decimal-float literal constant zero.
20211
5da250fc
JJ
202122008-04-03 Jakub Jelinek <jakub@redhat.com>
20213
79addd1f
JJ
20214 PR c/35738
20215 * c-parser.c (c_parser_omp_atomic): Call
20216 default_function_array_conversion on the RHS.
20217
5da250fc
JJ
20218 PR middle-end/35818
20219 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
20220 call is_variable_sized if decl has incomplete type.
20221
940f3b52
L
202222008-04-03 H.J. Lu <hongjiu.lu@intel.com>
20223
20224 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
20225
6ac935c1
AN
202262008-04-03 Adam Nemet <anemet@caviumnetworks.com>
20227
20228 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
20229 iterators.
64ef8953 20230 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6ac935c1
AN
20231 (sgt<u>): Merge sgt and sgtu into new expander.
20232 (sgt, sgtu): Remove expanders.
64ef8953 20233 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6ac935c1
AN
20234 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
20235 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
20236 *sgtu_<mode>_mips16 into new pattern.
20237 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
20238 (sge<u>): Merge sge and sgeu into new expander.
20239 (sge, sgeu): Remove expanders.
20240 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
20241 new pattern.
20242 (*sge_<mode>, second *sge_<mode>): Remove patterns.
20243 (slt<u>): Merge slt and sltu into new expander.
20244 (slt, sltu): Remove expanders.
64ef8953 20245 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6ac935c1
AN
20246 (*slt_<mode>, *sltu_<mode>): Remove patterns.
20247 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
20248 *sltu_<mode>_mips16 into new pattern.
20249 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
20250 (sle<u>): Merge sle and sleu into new expander.
20251 (sle, sleu): Remove expanders.
64ef8953 20252 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6ac935c1
AN
20253 (*sle_<mode>, *sleu_<mode>): Remove patterns.
20254 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
20255 *sleu_<mode>_mips16 into new pattern.
20256 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
20257
6b0c2336
JH
202582008-04-03 Jan Hubicka <jh@suse.cz>
20259
20260 PR tree-optimization/35795
20261 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
20262 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
20263 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
20264 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
20265 * score/score3.c (score3_output_mi_thunk): Likewise.
20266 * score/score7.c (score7_output_mi_thunk): Likewise.
20267 * mips/mips.c (mips_output_mi_thunk): Likewise.
20268
b47ee386
RG
202692008-04-03 Richard Guenther <rguenther@suse.de>
20270
20271 * tree-vrp.c (extract_range_from_unary_expr): Handle all
20272 conversions. Simplify code.
20273
2a7428c0
KK
202742008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
20275
20276 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
20277
6cba282a
TT
202782008-04-03 Tom Tromey <tromey@redhat.com>
20279 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20280
20281 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
20282 * config/bfin/t-bfin-linux (generated_files): Add
20283 linux-sysroot-suffix.h.
20284 * doc/install.texi (Prerequisites): Require make 3.80.
20285 * doc/sourcebuild.texi (Front End Directory): Document new
20286 variable.
20287 * Makefile.in (generated_files): New variable.
20288 (ALL_HOST_OBJS): New variable.
20289 ($(ALL_HOST_OBJS)): New target.
20290
9ff420f1
PB
202912008-04-03 Paolo Bonzini <bonzini@gnu.org>
20292
6b0c2336
JH
20293 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
20294 (remap_block): Call id->transform_lang_insert_block instead
20295 of langhook.
20296 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
20297 Set id.transform_lang_insert_block to NULL.
20298 (clone_body): Move to cp/optimize.c
20299 * tree-inline.h (struct copy_body_data): Change
20300 transform_lang_insert_block to function pointer.
20301 (copy_generic_body, copy_decl_no_change): Export.
20302 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
20303 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
20304 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
20305
20306 * c-tree.h (insert_block): Kill.
20307 * c-decl.c (insert_block): Kill.
9ff420f1 20308
d2784db4
PB
203092008-04-03 Paolo Bonzini <bonzini@gnu.org>
20310
6b0c2336
JH
20311 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
20312 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
20313 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
20314 argument.
20315 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
20316 argument, call {push,pop}_function_context from here.
20317 * c-parser.c: Use c_{push,pop}_function_context.
20318
20319 * function.c (push_function_context_to): Move meat ...
20320 (push_function_context): ... here. Simplify.
20321 * function.c (pop_function_context_from): Move meat ...
20322 (pop_function_context): ... here. Simplify.
20323 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
20324 leave_nested).
20325 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
20326 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
20327 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
20328 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2784db4 20329
9e0aebca
BE
203302008-04-03 Ben Elliston <bje@au.ibm.com>
20331
20332 * expmed.c (extract_force_align_mem_bit_field): Remove.
20333
55187c8a
RG
203342008-04-03 Richard Guenther <rguenther@suse.de>
20335
20336 PR middle-end/35800
20337 * expr.h (try_casesi): Adjust prototype.
20338 * expr.c (try_casesi): Take fallback label as extra parameter.
20339 Use that for gen_casesi if default_label is NULL.
20340 * stmt.c (expand_case): Pass fallback label to try_casesi,
20341 make sure to fill gaps with a fallback label if default_label
20342 is not present.
20343
e49cf927 203442008-04-03 Dominique d'Humières <dominiq@lps.ens.fr>
d7087dd2
DH
20345
20346 PR target/35801
20347 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
20348
609023ff
BE
203492008-04-03 Ben Elliston <bje@au.ibm.com>
20350
20351 * expmed.c (extract_split_bit_field): Remove if (0) code.
20352 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
20353 (do_ds_constraint): Likewise.
20354
93d45d9e
JM
203552008-04-02 Joseph Myers <joseph@codesourcery.com>
20356
20357 * doc/cppopts.texi (-dU): Document.
20358 * c-common.h (flag_dump_macros): Update comment.
20359 * c-opts.c (handle_OPT_d): Handle -dU.
20360 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
20361 dump_queued_macros, cb_used_define, cb_used_undef): New.
20362 (init_pp_output): Handle -dU.
20363 (cb_line_change): Call dump_queued_macros.
20364 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
20365
e6b69d0e
AS
203662008-04-02 Anatoly Sokolov <aesok@post.ru>
20367
22129589 20368 * config/avr/predicates.md (io_address_operand): New predicate.
e6b69d0e
AS
20369 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
20370 * config/avr/avr.c (avr_io_address_p): Remove function.
22129589 20371 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
e6b69d0e
AS
20372 'avr_io_address_p' function.
20373 (out_movhi_r_mr): (Ditto.).
20374 (out_movqi_mr_r): (Ditto.).
20375 (out_movhi_mr_r): (Ditto.).
20376 (avr_address_cost): (Ditto.).
20377
7b198002
UB
203782008-04-02 Uros Bizjak <ubizjak@gmail.com>
20379
20380 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
20381 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
20382 in 32bit mode when XMM registers are available to avoid store
20383 forwarding stalls.
20384 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
20385 corresponding post-reload splitters.
20386
abe08645
L
203872008-04-02 H.J. Lu <hongjiu.lu@intel.com>
20388
20389 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
20390 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
20391 __builtin_ia32_roundss.
20392 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
20393 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
20394 __builtin_ia32_roundss.
20395 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
20396 IX86_BUILTIN_SHUFPD here.
20397
94237c92
L
203982008-04-02 H.J. Lu <hongjiu.lu@intel.com>
20399
20400 * config/i386/i386.md (plogic): New.
20401 (plogicprefix): Likewise.
20402
20403 * config/i386/mmx.md (mmx_<code><mode>3): New.
20404 (mmx_and<mode>3): Removed.
20405 (mmx_ior<mode>3): Likewise.
20406 (mmx_xor<mode>3): Likewise.
20407
20408 * config/i386/sse.md (<code><mode>3): New.
20409 (*<code><mode>3): Likewise.
20410 (*<code><mode>3): Likewise.
20411 (<code><mode>3): Likewise.
20412 (*sse_<code><mode>3): Likewise.
20413 (*sse2_<code><mode>3): Likewise.
20414 (<code>tf3): Likewise.
20415 (*<code>tf3): Likewise.
20416 (and<mode>3): Likewise.
20417 (*and<mode>3): Likewise.
20418 (ior<mode>3): Removed.
20419 (*ior<mode>3): Likewise.
20420 (xor<mode>3): Likewise.
20421 (*xor<mode>3): Likewise.
20422 (*and<mode>3): Likewise.
20423 (*ior<mode>3): Likewise.
20424 (*xor<mode>3): Likewise.
20425 (and<mode>3): Likewise.
20426 (*sse_and<mode>3): Likewise.
20427 (*sse2_and<mode>3): Likewise.
20428 (andtf3): Likewise.
20429 (*andtf3): Likewise.
20430 (ior<mode>3): Likewise.
20431 (*sse_ior<mode>3): Likewise.
20432 (*sse2_ior<mode>3): Likewise.
20433 (iortf3): Likewise.
20434 (*iortf3): Likewise.
20435 (xor<mode>3): Likewise.
20436 (*sse_xor<mode>3): Likewise.
20437 (*sse2_xor<mode>3): Likewise.
20438 (xortf3): Likewise.
20439 (*xortf3): Likewise.
20440
b7814a18
RG
204412008-04-02 Richard Guenther <rguenther@suse.de>
20442
20443 PR tree-optimization/14495
20444 PR tree-optimization/34793
20445 * tree-vrp.c (struct switch_update): New structure.
20446 (to_remove_edges, to_update_switch_stmts): New VECs.
20447 (simplify_switch_using_ranges): New function. Remove not taken
20448 case labels and edges.
20449 (simplify_stmt_using_ranges): Call it.
20450 (identify_jump_threads): Mark edges we have queued for removal
20451 so we don't thread them.
20452 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
20453 case label vector.
20454 * tree-cfg.c (group_case_labels): Deal with missing default label.
20455 (tree_verify_flow_info): Allow missing default label.
20456 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
20457 (emit_case_nodes): Likewise.
20458 (expand_case): Do not rely on the default label to be present.
20459 * expr.c (try_casesi): Deal with NULL default_label.
20460 (do_tablejump): Likewise.
20461
8aea0bf0
RG
204622008-04-02 Richard Guenther <rguenther@suse.de>
20463
20464 PR tree-optimization/14495
20465 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
20466 SWITCH_EXPR here ...
20467 (vrp_visit_switch_stmt): ... but here (new function).
20468 (find_case_label_index): New helper function.
20469 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
20470
3f1c2278
PB
204712008-04-02 Paolo Bonzini <bonzini@gnu.org>
20472
20473 * fwprop.c: Fix ISO-C99ism.
20474
da0f6381
PB
204752008-04-02 Paolo Bonzini <bonzini@gnu.org>
20476
20477 PR bootstrap/35752
20478 * Makefile.in (objdir): Set it here.
20479 * configure.ac: Not here. Find dynamic linker characteristics.
20480 * exec-tool.in: Use them.
20481 * aclocal.m4: Regenerate.
20482 * configure: Regenerate.
20483
4846b435
PB
204842008-04-02 Paolo Bonzini <bonzini@gnu.org>
20485
20486 * expr.c (expand_var): Delete it.
20487 * expr.h (expand_var): Delete prototype.
20488 * function.c (expand_function_start): Use expand_decl instead.
20489 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
20490 langhook.
20491
4fefbcdb
AH
204922008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
20493
20494 PR rtl-optimization/35542
20495 * fwprop.c (forward_propagate_and_simplify): Replace
20496 loc_reg_mentioned_in_p with reg_mentioned_p.
20497
460d667d
PB
204982008-04-02 Paolo Bonzini <bonzini@gnu.org>
20499
4fefbcdb 20500 PR rtl-optimization/35281
460d667d
PB
20501 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
20502 (propagate_rtx_1): Handle PR_HANDLE_MEM.
20503 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
20504 (varying_mem_p): Move above propagate_rtx.
20505 (all_uses_available_at): Do not check MEMs.
20506
e49cf927 205072008-04-02 Rafael Espíndola <espindola@google.com>
a26a02d7
RAE
20508
20509 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
20510 (register_edge_assert_for_2): Split the cond argument.
20511 (register_edge_assert_for_1): Adjust for the change in
20512 register_edge_assert_for_2.
20513 (register_edge_assert_for): Split the cond argument.
20514 (find_switch_asserts): Adjust for the change in
20515 register_edge_assert_for.
20516
e8930cc1
KT
205172008-04-02 Kai Tietz <kai.tietz@onevision.com>
20518
20519 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
b97d8153 20520 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
893125e0 20521 offsets for 64-bit mingw.
b97d8153 20522 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
893125e0 20523 abi for x86_64-pc-mingw.
e8930cc1 20524
70b7b037
RG
205252008-04-02 Richard Guenther <rguenther@suse.de>
20526
20527 * tree-vrp.c (extract_range_from_assert): Make sure to not
20528 produce range min/max with TREE_OVERFOW set.
20529 If merging a anti-range and a range keep the anti-range if
20530 the range covers all values of the type.
20531 (register_edge_assert_for_2): Only allow sign-changing
20532 conversions in detecting canonical range checks. Also
20533 register an assert for the unsigned name if useful.
20534
20535 PR tree-optimization/35787
20536 * tree-vrp.c (vrp_val_max): New function.
20537 (vrp_val_min): Likewise.
20538 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
20539 (vrp_val_is_min): Likewise.
20540 (supports_overflow_infinity): Use vrp_val_{min,max}.
20541 (negative_overflow_infinity): Likewise.
20542 (positive_overflow_infinity): Likewise.
20543 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
20544 (is_positive_overflow_infinity): Likewise.
20545 (is_overflow_infinity): Likewise.
20546 (avoid_overflow_infinity): Use vrp_val_{min,max} and
20547 vrp_val_is_{min,max}.
20548 (set_and_canonicalize_value_range): Canonicalize anti-ranges
20549 to ranges if possible. Avoid empty ranges.
20550
10743280
JDA
205512008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20552
20553 PR middle-end/35705
20554 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
20555 the expression is a function address.
20556
7151ffbe
GH
205572008-04-01 George Helffrich <george@gcc.gnu.org>
20558
623f8e39 20559 PR fortran/35154, fortran/23057
7151ffbe
GH
20560 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
20561 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
20562 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
20563 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
20564 in common.
20565 (dbxout_syms): Check for COMMON-based symbol and wrap in
20566 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
20567 in bracket for efficiency.
20568
20569 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
20570 using DW_TAG_common_block + member offset.
20571 (add_pubname_string): New function.
20572 (dw_expand_expr): New function to find block name and offset for
20573 COMMON var.
20574 (common_check): New function to check whether symbol in Fortran COMMON.
20575 (gen_variable_die): If COMMON, use DW_TAG_common_block.
20576
dc197ab9
VR
205772008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
20578
20579 PR c/35436
20580 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
20581
9e9b5341
BE
205822008-04-02 Ben Elliston <bje@au.ibm.com>
20583
20584 * config/v850/v850.md (casesi): Remove if (0) code.
20585 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20586 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
20587
380edc9f
UB
205882008-04-01 Uros Bizjak <ubizjak@gmail.com>
20589
20590 * config/i386/i386.md (rex64suffix): New mode attribute.
20591 (floathi<mode>2): Disable expander for SSE math.
20592 (*floathi<mode>2_1): New insn insn_and_split pattern.
20593 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
20594 corresponding post-reload splitters.
20595 (*floathi<mode>2_i387): New macroized insn pattern.
20596 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
20597 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
20598 insn_and_split pattern.
20599 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
20600 New macroized instruction patterns and corresponding post-reload
20601 splitters.
20602 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
20603 and corresponding post-reload splitters.
20604 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
20605 New macroized instruction patterns.
20606 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
20607 macroized instruction patterns and corresponding post-reload splitters.
20608 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
20609 corresponding post-reload splitters.
20610 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
20611 New macroized instruction patterns.
20612 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
20613 corresponding post-reload splitters.
20614 (*floatsi<mode>2_i387): New macroized instruction patterns.
20615
78e8956b
L
206162008-04-01 H.J. Lu <hongjiu.lu@intel.com>
20617
20618 * config/i386/i386.md (smaxmin): New.
20619 (umaxmin): Likewise.
20620 (maxminiprefix): Likewise.
20621 (maxminfprefix): Likewise.
20622 (<code><mode>3): Likewise.
20623 (smin<mode>3): Removed.
20624 (smax<mode>3): Likewise.
20625
20626 * config/i386/mmx.md (mmx_<code>v2sf3): New.
20627 (mmx_<code>v4hi3): Likewise.
20628 (mmx_<code>v8qi3): Likewise.
20629 (mmx_smaxv2sf3): Removed.
20630 (mmx_sminv2sf3): Likewise.
20631 (mmx_umaxv8qi3): Likewise.
20632 (mmx_smaxv4hi3): Likewise.
20633 (mmx_uminv8qi3): Likewise.
20634 (mmx_sminv4hi3): Likewise.
20635
20636 * config/i386/sse.md (<addsub><mode>3): New.
20637 (*<addsub><mode>3): Likewise.
20638 (<sse>_vm<addsub><mode>3): Likewise.
20639 (<maxmin><mode>3): Likewise.
20640 (*<maxmin><mode>3_finite): Likewise.
20641 (*<maxmin><mode>3): Likewise.
20642 (<sse>_vm<maxmin><mode>3): Likewise.
20643 (sse3_h<addsub>v4sf3): Likewise.
20644 (sse3_h<addsub>v2df3): Likewise.
20645 (<maxmin>v16qi3): Likewise.
20646 (*<maxmin>v16qi3): Likewise.
20647 (<maxmin>v8hi3): Likewise.
20648 (*<maxmin>v8hi3): Likewise.
20649 (*sse4_1_<maxmin><mode>3): Likewise.
20650 (*sse4_1_<maxmin><mode>3): Likewise.
20651 (add<mode>3): Removed.
20652 (*add<mode>3): Likewise.
20653 (<sse>_vmadd<mode>3): Likewise.
20654 (sub<mode>3): Likewise.
20655 (*sub<mode>3): Likewise.
20656 (<sse>_vmsub<mode>3): Likewise.
20657 (smin<mode>3): Likewise.
20658 (*smin<mode>3_finite): Likewise.
20659 (*smin<mode>3): Likewise.
20660 (<sse>_vmsmin<mode>3): Likewise.
20661 (smax<mode>3): Likewise.
20662 (*smax<mode>3_finite): Likewise.
20663 (*smax<mode>3): Likewise.
20664 (<sse>_vmsmax<mode>3): Likewise.
20665 (sse3_haddv4sf3): Likewise.
20666 (sse3_haddv2df3): Likewise.
20667 (sse3_hsubv4sf3): Likewise.
20668 (sse3_hsubv2df3): Likewise.
20669 (umaxv16qi3): Likewise.
20670 (*umaxv16qi3): Likewise.
20671 (smaxv8hi3): Likewise.
20672 (*smaxv8hi3): Likewise.
20673 (*sse4_1_smax<mode>3): Likewise.
20674 (*sse4_1_umax<mode>3): Likewise.
20675 (uminv16qi3): Likewise.
20676 (*uminv16qi3): Likewise.
20677 (sminv8hi3): Likewise.
20678 (*sminv8hi3): Likewise.
20679 (*sse4_1_smin<mode>3): Likewise.
20680 (*sse4_1_umin<mode>3): Likewise.
20681
e49cf927 206822008-04-01 Rafael Espíndola <espindola@google.com>
220f1c29
RAE
20683
20684 * tree-cfg.c (verify_expr): remove in_phi.
78e8956b 20685 (verify_stmt): Don't call walk_tree with verify_expr. Use
220f1c29
RAE
20686 is_gimple_min_invariant instead of is_gimple_val.
20687
7f9766e4
JM
206882008-04-01 Joseph Myers <joseph@codesourcery.com>
20689
20690 * doc/include/gpl_v3.texi: Update for manpage generation.
20691 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
20692 gpl.texi.
20693 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
20694 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
20695 gpl_v3.texi instead of gpl.texi.
20696 (gpl.pod): New.
20697
d4c32e1d
JJ
206982008-04-01 Jakub Jelinek <jakub@redhat.com>
20699
20700 PR pch/13675
20701 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
20702
e49cf927 207032008-04-01 Rafael Espíndola <espindola@google.com>
764a79ed
RAE
20704
20705 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
20706 (extract_code_and_val_from_cond): Use
20707 extract_code_and_val_from_cond_with_ops.
20708
113c63b8
JH
207092008-04-01 Jan Hubicka <jh@suse.cz>
20710
20711 * function.c (free_after_compilation): Free epilogue_delay_list.
20712 (prepare_function_start): Assert that previous compilation was freed.
20713
ec24c3a3
JH
207142008-04-01 Jan Hubicka <jh@suse.cz>
20715 Jim Wilson <wilson@tuliptree.org>
20716 Andreas Tobler <andreast@gcc.gnu.org>
20717
20718 PR middle-end/35781
20719 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
20720 rtl.emit instead cfun->emit.
20721 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
20722 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
20723
1b82c3aa
BE
207242008-04-01 Ben Elliston <bje@au.ibm.com>
20725
20726 * doc/c-tree.texi (Function Basics): Fix grammatical error.
20727
2f908293
SP
207282008-03-31 Seongbae Park <seongbae.park@gmail.com>
20729
20730 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
20731 New options
20732 (fprofile-use): Add var flag_profile_use
380edc9f
UB
20733 * coverage.c (coverage_begin_output): Do not open a gcno file for
20734 output only if -ftest-coverage is set.
2f908293 20735 Do not add getpwd() to gcda file path.
380edc9f 20736 (build_gcov_info): Check the new flag
2f908293
SP
20737 flag_profile_datafile_relative_path.
20738 (coverage_init): Use profile_data_prefix.
20739 Read profile counter only if flag_profile_use is set.
20740 * opts.c (common_handle_option): New option fprofile-use=,
20741 fprofile-dir=, fprofile-generate=.
20742 * toplev.c (profile_data_prefix): New variable definition.
20743 * toplev.h (profile_data_prefix): New declaration.
20744 * doc/invoke.tex (Option Summary, Optimization Options):
20745 Add new options.
20746
1def9c3f
JW
207472008-03-31 James E. Wilson <wilson@tuliptree.org>
20748
380edc9f
UB
20749 * varasm.c (output_constant_pool_1): In LABEL_REF check,
20750 use tmp consistently.
048ffb8f 20751
1def9c3f
JW
20752 PR target/35695
20753 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
20754 * config/ia64/ia64.c (rtx_needs_barrier): Handle
20755 UNSPEC_FR_RECIP_APPROX_RES.
20756 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
20757
bb686a19
VR
207582008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
20759
20760 PR c/35750
20761 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
20762
a12bdb97
AP
207632008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
20764
20765 PR middle-end/30186
20766 * fold-const.c (fold_indirect_ref_1): Support accessing non first
20767 element of the vector via a pointer.
20768
2d4bba80
ILT
207692008-03-31 Ian Lance Taylor <iant@google.com>
20770
380edc9f 20771 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2d4bba80 20772
bd60bab2
JH
207732008-03-31 Jan Hubicka <jh@suse.cz>
20774
20775 * builtins.c (expand_builtin_setjmp_receiver): Update call of
20776 get_arg_pointer_save_area.
20777 * expr.c (init_expr): Just clear out rtl.expr.
20778 * function.c (free_after_compilation): Clear out whole RTL structure.
20779 (get_func_frame_size): Merge into ...
20780 (get_frame_size): ... this one.
20781 (assign_stack_local_1): Merge into ...
20782 (assign_stack_local): ... this one.
20783 (expand_function_end): Update call of get_arg_pointer_save_area.
20784 (get_art_pointer_save_area): Remove cfun argument.
20785 * function.h (emit_status): regno_pointer_align does not need length
20786 attribute. Move x_regno_reg_rtx to ...
20787 (regno_reg_rtx): ... new global array.
20788 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
20789 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
380edc9f
UB
20790 apply_args_value, forced_labels, stack_pointer_delta):
20791 Update accestors.
bd60bab2
JH
20792 (struct varasm_status): Move here from varasm.c
20793 (struct rtl_data): New. Move here some fields from struct function.
20794 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
20795 frame_offset, stack_check_probe_note, arg_pointer_save_area,
20796 used_temp_slots avail_temp_slots, temp_slot_level,
20797 nonlocal_goto_handler_labels): Update accesstors.
20798 (rtl): New global variable.
20799 (struct function): Move some fileds to rtl_data.
20800 (get_arg_pointer_save_area): Update prototype.
20801 * emit-rtl.c (rtl): Declare.
20802 (regno_reg_rtx): Declare.
380edc9f
UB
20803 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
20804 Update.
bd60bab2
JH
20805 (gen_reg_rtx): Update.
20806 (init_virtual_regs): Do not tate emit_status argument.
20807 (init_emit): Do not allocate emit.
20808 * varasm.c (varasm_statuc): Move to function.h.
20809 (n_deferred_constatns): Update accestor.
20810 (init_varasm_status): Do not allocate varasm_status.
20811 (force_const_mem, get_pool_size, output_constant_pool): Update.
20812 * stmt.c (force_label_rtx): Do not use x_ prefixes.
20813 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
20814
66f91b93
ZD
208152008-03-31 Zdenek Dvorak <ook@ucw.cz>
20816
20817 PR rtl-optimization/35729
20818 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
20819 references.
20820
66e1ecfe
L
208212008-03-31 H.J. Lu <hongjiu.lu@intel.com>
20822
20823 PR target/32000
20824 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
20825 load/store if memory is unaligned.
20826 (*movti_rex64): Likewise.
20827
20828 * config/i386/predicates.md (misaligned_operand): New.
20829
550386ad
AP
208302008-03-31 Andrew Pinski <pinskia@gmail.com>
20831
20832 PR tree-opt/35431
20833 * tree-ssa-phiopt.c (conditional_replacement): Return early for
20834 complex types.
20835
4e483a22
JB
208362008-03-31 Jan Beulich <jbeulich@novell.com>
20837
20838 * config/ia64/constraints.md: Add 'j' constraint.
20839 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
20840 (movdi_internal): Likewise.
20841
39ffbac9
VR
208422008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
20843
20844 PR c/35748
20845 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
20846
23594c97
L
208472008-03-30 H.J. Lu <hongjiu.lu@intel.com>
20848
20849 PR target/35757
20850 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
20851 proper error message for the third argument on blendpd and
20852 blendps.
20853
20854 * config/i386/sse.md (blendbits): New.
20855 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
20856
8f0e2671
EB
208572008-03-30 Eric Botcazou <ebotcazou@adacore.com>
20858
20859 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
20860
96648603
RG
208612008-03-30 Richard Guenther <rguenther@suse.de>
20862
20863 PR middle-end/31023
20864 * fold-const.c (fold_sign_changed_comparison): Do leave
20865 conversions to base-types alone.
20866
3ac0963a
AP
208672008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
20868
20869 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
20870 the link register if one altivec register is be saved.
20871
744c6d6e
BE
208722008-03-30 Ben Elliston <bje@au.ibm.com>
20873
20874 * final.c (final_scan_insn): Remove if (0) code.
20875
dbc518f0
VR
208762008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
20877
20878 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
20879
ad387dad
L
208802008-03-28 H.J. Lu <hongjiu.lu@intel.com>
20881
20882 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
20883 of V4SFmode to ix86_binary_operator_ok.
20884
9aba5d22
UB
208852008-03-28 Uros Bizjak <ubizjak@gmail.com>
20886
20887 * config/i386/i386.c (override_options): Initialize
20888 ix86_veclib_handler to ix86_veclibabi_svml when
20889 -mveclibabi=svml is used.
20890 (ix86_veclibabi_svml): New function for SVML ABI style
20891 vectorization support.
20892 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
20893
e49cf927 208942008-03-28 Rafael Espíndola <espindola@google.com>
2d3cd5d5
RAE
20895
20896 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
20897 (tree_binary_nonnegative_warnv_p): Make it public.
20898 (tree_single_nonnegative_warnv_p): Make it public.
20899 (tree_invalid_nonnegative_warnv_p): Make it public.
20900 (tree_unary_nonzero_warnv_p): Make it public.
20901 (tree_binary_nonzero_warnv_p): Make it public
20902 (tree_single_nonzero_warnv_p): Make it public.
20903 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
20904 (extract_range_from_binary_expr): Split the expr argument.
20905 (extract_range_from_unary_expr): Split the expr argument.
20906 (extract_range_from_comparison): Split the expr argument.
20907 (extract_range_from_expr): Use the new aux functions.
20908 (vrp_evaluate_conditional_warnv): Use
20909 vrp_evaluate_conditional_warnv_with_ops.
20910 * tree.h (tree_unary_nonzero_warnv_p): Declare.
20911 (tree_binary_nonzero_warnv_p): Declare.
20912 (tree_single_nonzero_warnv_p): Declare.
20913 (tree_expr_nonzero_warnv_p): Declare.
20914 (tree_unary_nonnegative_warnv_p): Declare.
20915 (tree_binary_nonnegative_warnv_p): Declare.
20916 (tree_single_nonnegative_warnv_p): Declare.
20917 (tree_invalid_nonnegative_warnv_p): Declare.
20918
2ab8dbf4
RG
209192008-03-28 Richard Guenther <rguenther@suse.de>
20920
20921 PR tree-optimization/30317
20922 PR tree-optimization/30911
20923 PR tree-optimization/34793
20924 * tree-vrp.c (set_and_canonicalize_value_range): New function.
20925 (struct assert_locus_d): New member EXPR.
20926 (register_new_assert_for): Add EXPR parameter to support
20927 ASSERT_EXPR <name, expr OP limit>.
20928 (register_edge_assert_for_1): Adjust callers.
20929 (find_assert_locations): Likewise.
9aba5d22 20930 (process_assert_insertions_for): Build condition from expression.
2ab8dbf4
RG
20931 (extract_range_from_assert): Handle ASSERT_EXPRs
20932 of the form ASSERT_EXPR <name, expr OP limit>.
20933 (register_edge_assert_for_2): New helper registering
20934 asserts for comparisons. Recognize range tests of the form
20935 (unsigned)i - CST1 OP CST2.
20936 (register_edge_assert_for_1): Use it.
20937 (register_edge_assert_for): Likewise.
20938 (needs_overflow_infinity): Integer sub-types
20939 do not need overflow infinities.
20940 (vrp_val_is_max): The extreme values of integer sub-types
20941 are those of the base type.
20942 (vrp_val_is_min): Likewise.
20943 * tree.def (ASSERT_EXPR): Document extra allowed conditional
20944 expressions.
20945
fc4f3261
NC
209462008-03-28 Nick Clifton <nickc@redhat.com>
20947
f6d2671e 20948 PR target/31110
fc4f3261 20949 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9aba5d22 20950 Return GENERAL_REGS for stack adjustment reloads.
fc4f3261 20951
501fb355
AP
209522008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
20953
20954 PR target/31334
20955 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
20956 const_vector when all the vectors are constant.
20957
ff779f98
BW
209582008-03-27 Bob Wilson <bob.wilson@acm.org>
20959
20960 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
20961 comparisons.
20962 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
20963 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
20964 (scc_sf): New.
20965 (s<code>_sf): Use new scc_sf attribute for opcode names.
20966
e980df8e
TT
209672008-03-27 Tom Tromey <tromey@redhat.com>
20968
20969 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
20970 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
20971 config/spu/t-spu-elf, config/i386/t-interix,
20972 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
20973 config/i386/x-darwin, config/i386/x-mingw32,
20974 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
20975 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
20976 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
20977 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
20978 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
20979 config/rs6000/x-darwin, config/rs6000/t-rs6000,
20980 config/score/t-score-elf, config/arm/t-strongarm-pe,
20981 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
20982 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
20983 Revert automatic dependency patch.
20984
c84555eb
L
209852008-03-27 H.J. Lu <hongjiu.lu@intel.com>
20986
20987 PR target/35657
20988 * config/i386/i386.c (ix86_function_arg_boundary): Align
20989 decimal floating point to its natural boundary.
20990
ffd837fe
RG
209912008-03-27 Richard Guenther <rguenther@suse.de>
20992
20993 PR middle-end/35716
20994 * fold-const.c (fold_comparison): Restrict distinct decl
20995 comparison folding to VAR_DECLs and PARM_DECLs. Do not
20996 solely rely on operand_equal_p.
20997
6b4e94bc
RG
209982008-03-27 Richard Guenther <rguenther@suse.de>
20999
21000 PR c/32511
21001 * c-common.c (handle_weak_attribute): Reject combination of
21002 weak and inline.
21003
62bc00e2
RG
210042008-03-27 Richard Guenther <rguenther@suse.de>
21005
21006 PR tree-optimization/32810
21007 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
21008 conversions from DECL_INITIAL.
21009 (fold_const_aggregate_ref): Likewise from constructor elements.
21010
72425608
ZD
210112008-03-27 Zdenek Dvorak <ook@ucw.cz>
21012
21013 * tree-affine.h (aff_combination_expand): Declare.
21014 (get_inner_reference_aff): Likewise.
21015 * tree-affine.c (aff_combination_expand): Split out from
21016 tree_to_aff_combination_expand.
21017 (get_inner_reference_aff): New function.
21018 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9aba5d22
UB
21019 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
21020 (struct lim_aux_data): sm_done field removed.
21021 (mem_ref_loc_p, mem_ref_locs_p): New types.
21022 (struct mem_ref): Added id, stored, accesses_in_loop,
21023 indep_loop, dep_loop, indep_ref, dep_ref fields.
21024 Removed is_stored, locs and next fields.
21025 (memory_accesses): New variable.
21026 (movement_possibility): Do not allow moving statements
21027 that store to memory.
21028 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
21029 New functions.
21030 (determine_max_movement): For statements with memory references,
21031 find the outermost loop in that the reference is independent.
21032 (move_computations_stmt): Mark the virtual operands for renaming.
21033 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
21034 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
21035 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
21036 add_vop_ref_mapping, create_vop_ref_mapping_loop,
21037 create_vop_ref_mapping, analyze_memory_references,
21038 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
21039 get_all_locs_in_loop, ref_always_accessed_p,
21040 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
21041 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
21042 store_motion_loop, store_motion): New functions.
21043 (struct vop_to_refs_elt): New type.
21044 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
21045 memref_hash, memref_eq, hoist_memory_references): Rewritten.
21046 (schedule_sm): Replaced by...
21047 (execute_sm): ... this.
21048 (determine_lsm_ref, hoist_memory_references,
21049 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
21050 find_more_ref_vops, free_mem_ref, free_mem_refs,
21051 determine_lsm_loop, determine_lsm): Removed.
21052 (tree_ssa_lim_finalize): Free data structures used by store motion.
21053 (tree_ssa_lim): Call analyze_memory_references. Use
21054 store_motion instead of determine_lsm.
72425608 21055
a929bc28
PB
210562008-03-27 Paolo Bonzini <bonzini@gnu.org>
21057
21058 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
21059 rename tmake_file to m68hc11/t-m68hc11.
21060 (mcore): Set inhibit_libc to true.
21061 * config.host (alpha*-dec-*vms*): Set extra_programs.
21062 (interix3*): Don't use host_xmake_file.
21063 * configure.ac: Let config.gcc override inhibit_libc.
21064 * configure: Regenerate.
21065
21066 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
21067 * config/t-openbsd-thread: Remove commented out lines.
22129589 21068
a929bc28
PB
21069 * config/x-interix: Remove.
21070
21071 * config/m68hc11/t-m68hc11-gas: Rename to...
21072 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
21073
21074 * config/mcore/t-mcore: Remove T_CFLAGS.
21075 * config/mcore/t-mcore-pe: Likewise.
21076
60d26958
PB
210772008-03-27 Paolo Bonzini <bonzini@gnu.org>
21078
21079 * configure.ac: Replace custom __GNU_SOURCE test with
21080 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
21081 * aclocal.m4: Regenerate.
21082 * configure: Regenerate.
21083 * config.in: Regenerate.
21084
bd03c084
RG
210852008-03-27 Richard Guenther <rguenther@suse.de>
21086
21087 * fold-const.c (target.h): Include.
21088 (fold_comparison): Fold comparison of addresses of decls
21089 that bind locally or of constants. Consolidate address folding code.
21090 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
21091 results from fold_binary_to_constant.
21092 (compare_values_warnv): Likewise.
21093
87a72aa8
AP
210942008-03-27 Andrew Pinski <pinskia@gmail.com>
21095
21096 PR middle-end/35429
21097 * fold-const.c (fold_truthop): Check for integeral types when folding
21098 a == 0 && b == 0 and a != 0 || b != 0 .
21099
6e1b3420
EB
211002008-03-26 Eric Botcazou <ebotcazou@adacore.com>
21101
21102 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
21103
33558d94
AS
211042008-03-26 Andreas Schwab <schwab@suse.de>
21105
21106 * doc/invoke.texi: Fix use of @item vs. @itemx.
21107
f6a9a9af
TT
211082008-03-26 Tom Tromey <tromey@redhat.com>
21109
21110 * Makefile.in (build/gensupport.o, build/print-rtl.o,
21111 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
21112 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
21113 build/gencodes.o, build/genconditions.o, build/genconfig.o,
21114 build/genconstants.o, build/genemit.o, build/genextract.o,
21115 build/genflags.o, build/genmddeps.o, build/genopinit.o,
21116 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
21117 options.h.
21118
2041e75c
RG
211192008-03-26 Richard Guenther <rguenther@suse.de>
21120
21121 Revert
21122 2008-03-26 Richard Guenther <rguenther@suse.de>
21123
21124 * fold-const.c (target.h): Include.
21125 (fold_comparison): Fold comparison of addresses of two decls
21126 that bind locally. Consolidate address folding code.
21127
aefa9d43
KG
211282008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21129
21130 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
21131 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
21132 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
21133 dconstsqrt2, dconstthird, dconste and/or dconst10.
21134 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
21135 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
21136 dconstsqrt2, dconste): Delete.
21137 (init_emit_once): Likewise. Simplify initializing dconstm1.
21138 Constify variable.
21139 * real.c (get_real_const): New.
21140 * real.h (dconst3, dconst10, dconstm2, dconstthird,
21141 dconstsqrt2, dconste): Delete.
21142 (real_value_const, get_real_const): New.
21143
35dd7cc3
L
211442008-03-26 H.J. Lu <hongjiu.lu@intel.com>
21145
21146 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
21147
21148 * config/i386/i386.c (ix86_function_arg_boundary): Check
21149 BIGGEST_ALIGNMENT instead of 128.
21150 (setup_incoming_varargs_64): Likewise.
21151
f91ed78d
TT
211522008-03-26 Tom Tromey <tromey@redhat.com>
21153
21154 * Makefile.in (DEPFILES): Add missing '/'.
21155
4990038d
RG
211562008-03-26 Richard Guenther <rguenther@suse.de>
21157
21158 * fold-const.c (target.h): Include.
21159 (fold_comparison): Fold comparison of addresses of two decls
21160 that bind locally. Consolidate address folding code.
21161
813ab1d7
NC
211622008-03-26 Nick Clifton <nickc@redhat.com>
21163
21164 PR target/31232
21165 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
21166 not allow INT+INT as a legitimate addressing mode.
21167
cf3135aa
RG
211682008-03-26 Richard Guenther <rguenther@suse.de>
21169
21170 * tree-flow.h (widen_bitfield): Remove declaration.
21171 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
21172 (widen_bitfield): Remove function.
21173 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
21174 code.
21175
fd88fd09
AP
211762008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
21177
22ec849c 21178 PR target/31558
fd88fd09
AP
21179 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
21180 error_mark_node's.
21181
fb959f72
RS
211822008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
21183
21184 PR rtl-optimization/35232
21185 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
21186 (forget_old_reloads_1, forget_marked_reloads): Don't clear
21187 reg_reloaded_call_part_clobbered here.
21188 (reload_regs_reach_end_p): New function.
21189 (reload_reg_rtx_for_input): New variable.
21190 (reload_reg_rtx_for_output): Likewise.
21191 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
22129589 21192 when reassigning a pseudo register. Load reloadreg from
fb959f72
RS
21193 reload_reg_rtx_for_input, moving the mode and register
21194 calculation to...
21195 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
21196 instead of the original when deciding whether an input reload
21197 would be a no-op or whether an output reload can be deleted.
21198 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
21199 when setting up new_spill_reg_store. Load it from
21200 reload_reg_rtx_for_output, moving the mode and register
21201 calculation to...
21202 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
21203 instead of the original when deciding whether an output reload
21204 would be a no-op. Do the same when modifying insn notes.
21205 Use rtx_equal_p instead of == to compare the registers.
21206 (inherit_piecemeal_p): Take a mode and two register numbers
21207 as argument.
21208 (emit_reload_insns): Clear new_spill_reg_store for every hard
21209 register in the reload register. Remove spill registers
21210 from reg_reloaded_valid before considering whether to record
21211 inheritance information for them. Use reload_reg_rtx_for_output
21212 instead of reg_rtx when recording output reloads. Use
21213 reload_reg_rtx_for_input instead of reg_rtx when recording
21214 input reloads. Set or clear reg_reloaded_call_part_clobbered
21215 at the same time as setting reg_reloaded_valid.
21216 (delete_output_reload): Add a new_reload_reg parameter and use it
21217 instead of rld[j].reg_rtx.
21218 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
21219 calls accordingly.
21220
a8c86f3f
TT
212212008-03-25 Tom Tromey <tromey@redhat.com>
21222
21223 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
21224 (build/genattr.o): Likewise.
21225 (build/genattrtab.o): Likewise.
21226 (build/gencodes.o): Likewise.
21227 (build/genconfig.o): Likewise.
21228 (build/genconstants.o): Likewise.
21229 (build/genemit.o): Likewise.
21230 (build/genextract.o): Likewise.
21231 (build/genflags.o): Likewise.
21232
f4d3e7fd 212332008-03-25 Bob Wilson <bob.wilson@acm.org>
22129589 21234
f4d3e7fd
BW
21235 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
21236 instead of size_int for integer types.
21237 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
21238 to match type of MINUS_EXPR.
22129589 21239
55d059d3
TT
212402008-03-25 Tom Tromey <tromey@redhat.com>
21241
21242 * configure: Rebuilt.
21243 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
21244 Makefile.
21245
2fe3178b
TT
212462008-03-25 Tom Tromey <tromey@redhat.com>
21247
21248 * config/x-solaris (host-solaris.o): Update.
21249 * config/x-linux (host-linux.o): Update.
21250 * config/x-hpux (host-hpux.o): Update.
21251 * config/x-darwin (host-darwin.o): Update.
21252 * config/v850/t-v850e (v850-c.o): Update.
21253 * config/v850/t-v850 (v850-c.o): Update.
21254 * config/t-vxworks (vxworks.o): Update.
21255 * config/t-sol2 (sol2-c.o, sol2.o): Update.
4acc3f42 21256 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2fe3178b
TT
21257 * config/spu/t-spu-elf (spu-c.o): Update.
21258 (spu.o): Remove.
21259 * config/sh/t-symbian (sh-c.o): Update.
21260 (symbian.o): Update.
21261 * config/sh/t-sh (sh-c.o): Update.
21262 * config/score/t-score-elf (score7.o, score3.o): Update.
21263 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
21264 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
21265 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
21266 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
21267 (rs6000.o): Remove.
21268 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
21269 * config/m32c/t-m32c (m32c-pragma.o): Update.
21270 * config/ia64/t-ia64 (ia64-c.o): Update.
21271 * config/i386/x-mingw32 (host-mingw32.o): Update.
21272 * config/i386/x-i386 (driver-i386.o): Update.
21273 * config/i386/x-darwin (host-i386-darwin.o): Update.
21274 * config/i386/x-cygwin (host-cygwin.o): Update.
21275 * config/i386/t-nwld (nwld.o): Update.
21276 * config/i386/t-netware (netware.o): Update.
21277 * config/i386/t-interix (winnt.o): Update.
21278 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
21279 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
21280 msformat-c.o): Update.
21281 * config/bfin/t-bfin-linux (generated_files): Add
21282 linux-sysroot-suffix.h.
21283 * config/arm/t-wince-pe (pe.o): Update.
21284 * config/arm/t-strongarm-pe (pe.o): Update.
21285 * config/arm/t-pe (pe.o): Update.
21286 * config/arm/t-arm (arm-c.o): Update.
21287 * doc/install.texi (Prerequisites): Require make 3.80.
21288 * Makefile.in: Remove .o targets.
21289 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
21290 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
21291 (simple_generated_h, simple_generated_c): Move earlier.
21292 (generated_files): New variable.
21293 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
21294 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
21295 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
21296 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
21297 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
21298 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
21299 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
21300 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
21301 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
21302 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
21303 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
21304 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
21305 (.c.o): Remove.
21306 (COMPILE.base, COMPILE): New variables.
21307 (%.o): New pattern rule.
21308 (ALL_HOST_OBJS): New variable.
21309 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
21310 (dummy-checksum.o, cc1-checksum.o): Remove.
21311 (DRIVER_SHLIB): New variable.
21312 (DRIVER_DEFINES): Use it.
21313 (gencondmd.c): Move out of build/.
21314 (s-conditions): Update.
21315 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
21316 (ALL_BUILD_OBJS): Likewise.
21317 (build/%.o): Use BUILDCOMPILE.
21318 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
21319 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
21320 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
21321 build/gencheck.o, build/gencodes.o, build/genconditions.o,
21322 build/genconfig.o, build/genconstants.o, build/genemit.o,
21323 build/genextract.o, build/genflags.o, build/genmddeps.o,
21324 build/genopinit.o, build/genoutput.o, build/genpeep.o,
21325 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
21326 build/gen-protos.o, build/scan.o, build/fix-header.o,
21327 build/scan-decls.o): Simplify.
21328 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
21329 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
21330 prefix.o, toplev.o): Reduce to variable setting.
4acc3f42 21331 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
2fe3178b 21332 ($(out_object_file), gcc-options.o): New targets.
4acc3f42 21333 ($(ALL_HOST_OBJS)): New target. Include dependency files.
2fe3178b 21334 * configure: Rebuilt.
4acc3f42
UB
21335 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
21336 * doc/sourcebuild.texi (Front End Directory): Document new variable.
2fe3178b 21337
5ade1ed2
DG
213382008-03-25 Douglas Gregor <doug.gregor@gmail.com>
21339
4acc3f42
UB
21340 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
21341 complain when we hit an error, return ERROR_MARK_NODE.
5ade1ed2 21342
de6adfa2
N
213432008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
21344
21345 * config/sh/constraints.md (Pso, Psz): New constraints.
21346 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
21347 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
21348
f326a6cb
N
213492008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
21350
4acc3f42 21351 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
f326a6cb
N
21352 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
21353
b4b0018b
N
213542008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
21355
21356 * config/sh/sh.md (prefetch): Add condition for SH2A target.
22129589 21357 (prefetch_sh2a): New.
b4b0018b 21358
e990551a
JS
213592008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
21360 Naveen.H.S <naveen.hs@kpitcummins.com>
21361
21362 * config/sh/constraints.md (I28): New constraint.
21363 * config/sh/sh.c (broken_move): Add support for movi20s.
4acc3f42 21364 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
e990551a 21365
561642fa
AP
213662008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
21367 Jayant Sonar <Jayant.sonar@kpitcummins.com>
21368 Naveen.H.S <naveen.hs@kpitcummins.com>
21369
21370 * config/sh/sh.c (SH_ATTRIBUTES): Define.
21371 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
21372 (print_operand): Handle resbank in %@ operand code.
21373 (sh_encode_section_info): New.
21374 (push_regs): Add conditions for resbank.
21375 (sh_expand_epilogue): Likewise.
21376 (sh_insert_attributes): Likewise.
21377 (sh_attribute_table): Likewise.
21378 (sh_handle_resbank_handler_attribute): New.
21379 (sh2a_handle_function_vector_handler_attribute): New.
21380 (sh2a_is_function_vector_call): New.
21381 (sh2a_get_function_vector_number): New.
21382 (sh2a_function_vector_p): New.
21383 (sh_cfun_resbank_handler_p): New.
21384 * config/sh/sh.md (calli): Emit jsr/n if possible.
21385 (calli_tbr_rel): New.
21386 (calli_pcrel): Emit jsr/n if possible.
21387 (return_i): Emit rts/n if possible.
21388 (call_valuei_tbr_rel): New.
21389 (call_valuei_pcrel): Add condition for SH2A target.
21390 (call_value): Likewise.
21391 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
21392 (sh2a_get_function_vector_number): Likewise.
21393 (sh2a_is_function_vector_call): Likewise.
21394 * doc/extend.texi: Document TBR relative addressing of SH2A.
21395 (resbank): Add description for SH2A.
21396
1b24a790
RG
213972008-03-24 Richard Guenther <rguenther@suse.de>
21398
21399 PR c/22371
21400 * gimplify.c (gimplify_modify_expr): For frontend type-correct
21401 pointer assignments change conversions according to middle-end rules.
21402 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
21403 * configure.ac: Include type checking in yes.
21404 * configure: Regenerate.
21405
52249a2e
MLI
214062008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21407
21408 * diagnostic.c (diagnostic_count_diagnostic): Delete.
21409 (diagnostic_report_diagnostic): Update. Handle ICEs here.
22129589 21410
37ca4602
NS
214112008-03-24 Nathan Sidwell <nathan@codesourcery.com>
21412
21413 * gthr-vxworks.h (UNUSED): Define.
21414
2ff8644d
L
214152008-03-23 H.J. Lu <hongjiu.lu@intel.com>
21416
9aba5d22 21417 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2ff8644d 21418
1c42f5c6
ZM
214192008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
21420
21421 * doc/extend.texi (Function Attributes): Add missing comma in the
21422 example of the "alloc_size" attribute.
22129589 21423
808e68bb
UB
214242008-03-23 Uros Bizjak <ubizjak@gmail.com>
21425
21426 Revert:
21427 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
21428
21429 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
21430 32bit host.
21431
21432 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
21433
21434 PR target/35496
21435 * stor-layout.c (update_alignment_for_field): Set minimum alignment
21436 of the underlying type of a MS bitfield layout to the natural
21437 alignment of the type.
21438
21439 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
21440
21441 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
21442 to their natural alignment to avoid store forwarding stalls.
21443
1b738915
RG
214442008-03-22 Richard Guenther <rguenther@suse.de>
21445
21446 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
21447 For PHI nodes verify the address is invariant.
21448 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
21449 (get_symbol_constant_value): Use is_gimple_min_invariant.
21450 (maybe_fold_stmt_indirect): Likewise.
21451
18b526e8
RS
214522008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
21453
21454 PR rtl-optimization/33927
21455 * Makefile.in (dse.o): Depend on $(TM_P_H).
21456 * expr.h (extract_low_bits): Declare.
21457 * expmed.c (extract_low_bits): New function.
21458 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
21459 * dse.c: Include tm_p.h.
21460 (find_shift_sequence): Remove the read_reg argument and return the
21461 read value. Emit the instructions instead of returning them.
21462 Iterate on new_mode rather than calculating it each time.
21463 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
21464 source to NEW_MODE and extract_low_bits to convert the shifted
21465 value to READ_MODE.
21466 (replace_read): Allow the load and store to have different mode
21467 classes. Use extract_low_bits when SHIFT == 0. Create the shift
21468 or extraction instructions before trying the replacement. Update
21469 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
21470
48e55066
UB
214712008-03-22 Uros Bizjak <ubizjak@gmail.com>
21472
21473 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
21474 to their natural alignment to avoid store forwarding stalls.
21475
94e98316
AP
214762008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
21477
e8afc0cb 21478 PR target/27946
94e98316
AP
21479 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
21480 encouraging but not allowing gprs for input;
21481 change the input constraint to !f#r.
21482 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
21483 gprs for output;
21484 change the output constraint to !f#r.
21485
7fb1431b
UB
214862008-03-21 Uros Bizjak <ubizjak@gmail.com>
21487
21488 PR target/13958
21489 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
21490 corresponding post-reload splitters.
21491 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
21492 when x87 FP math is selected.
21493 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
21494 New function prototype.
21495 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
21496 unreachable function to ease macroization of insn patterns.
21497
ed2024ba
MJ
214982008-03-21 Martin Jambor <mjambor@suse.cz>
21499
21500 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
21501 reference dumps if ddr is NULL or dependence is unknown.
21502
06644a07
KK
215032008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
21504
21505 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
21506 unsigned extension into account.
21507 (ATOMIC_COMPARE_AND_SWAP): Likewise.
21508 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
21509 Do computations on a scratch register.
21510
ad6003f2
RG
215112008-03-21 Richard Guenther <rguenther@suse.de>
21512
21513 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
21514 Use is_gimple_min_invariant instead of TREE_INVARIANT.
21515 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
21516 * tree-ssa-dom.c (record_equality): Likewise.
21517 * tree-inline.c (copy_body_r): Likewise.
21518 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
21519 TREE_INVARIANT.
21520
2acdc1fb
KK
215212008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
21522
21523 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
21524 as 'delete_unused' argument.
21525
16ac8575
RG
215262008-03-20 Richard Guenther <rguenther@suse.de>
21527
21528 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
21529 special casing of constant qualifiers.
21530 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
21531 care about them in general.
21532 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
21533 regardless of their type.
21534 (fold_stmt_r): Forcefully fold *& if we end up with that.
21535
433d52fd
PB
215362008-03-20 Paul Brook <paul@codesourcery.com>
21537
21538 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
21539 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
21540 linker flags.
21541 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
21542 definition.
21543 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
21544 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
21545
7621f5d5
VR
215462008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
21547
21548 * common.opt (Wmudflap): New option.
21549 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
21550 (mx_register_decls): Likewise.
21551 (mudflap_finish_file): Likewise.
21552 * doc/invoke.texi: Document -Wno-mudflap.
21553
215542008-03-20 Kai Tietz <kai.tietz@onevision.com>
6590fc9f
KT
21555
21556 * c-format.c (replace_format_name_to_system_name): New.
21557 (cmp_attribs): New.
21558 (convert_format_name_to_system_name): New.
21559 (decode_format_attr): Add use of convert_format_name_to_system_name.
21560 (format_types_orig): Add gnu_ prefix to names.
21561 (check_format_info_main): Special treating of \0 escaped names for
21562 supporting multi-character format specifiers as I32, I64.
21563 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
21564 (gnu_target_overrides_format_attributes): New.
21565 * c-format.h: Add structure target_ovr_attr to hold
21566 system specific formatter names.
21567 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
21568 msformat-c.o file to c_target_objs and cxx_target_objs.
21569 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21570 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
21571 (TARGET_N_FORMAT_TYPES): New.
21572 * config/i386/msformat-c.c: New.
21573 * config/i386/t-cygming: Add build rule for msformat-c.o.
21574 * doc/extend.texi: Add new format names gnu_* and ms_* and
21575 further details.
21576 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
21577
4e359692
IR
215782008-03-20 Ira Rosen <irar@il.ibm.com>
21579
21580 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
21581 optimizations turned on under -O3.
21582 (ftree-vectorize): Add that the flag is turned on with -O3.
21583
41129be2
BE
215842008-03-20 Ben Elliston <bje@au.ibm.com>
21585
21586 * regmove.c (try_auto_increment): Fix spelling error in comment.
21587 * final.c (final_scan_insn): Likewise.
21588
1b1d8f88
UB
215892008-03-20 Uros Bizjak <ubizjak@gmail.com>
21590
21591 PR target/14552
21592 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
21593 allocator preferences for "y" and "r" class registers.
21594 ("*mov<mode>_internal"): Ditto.
21595 ("*movv2sf_internal_rex64"): Ditto.
21596 ("*movv2sf_internal"): Ditto.
21597
05e6ee93
MM
215982008-03-19 Michael Matz <matz@suse.de>
21599
21600 PR middle-end/35616
21601 * calls.c (expand_call): Check overlap of arguments with call
21602 address for sibcalls.
21603
cd7e0bd4
UB
216042008-03-19 Uros Bizjak <ubizjak@gmail.com>
21605
21606 PR target/35496
21607 * stor-layout.c (update_alignment_for_field): Set minimum alignment
21608 of the underlying type of a MS bitfield layout to the natural
21609 alignment of the type.
21610
8ddbbcae
JH
216112008-03-19 Jan Hubicka <jh@suse.cz>
21612
21613 PR other/35094
21614 * toplev.c (decode_d_option): Handle all CPP flags.
21615 * tree-vrp.c: Update tree_pass descriptors.
21616 * regrename.c: Update tree_pass descriptors.
21617 * fwprop.c: Update tree_pass descriptors.
21618 * doc/invoke.texi: Remove documentation of dropped -d? flags.
21619 * tree-into-ssa.c: Update tree_pass descriptors.
21620 * tree-dump.c: Update tree_pass descriptors.
21621 * tree-complex.c: Update tree_pass descriptors.
21622 * tree-dump.h: Update tree_pass descriptors.
21623 * see.c: Update tree_pass descriptors.
21624 * cgraphbuild.c: Update tree_pass descriptors.
21625 * tracer.c: Update tree_pass descriptors.
21626 * tree-loop-distribution.c: Update tree_pass descriptors.
21627 * cgraph.c: Update tree_pass descriptors.
21628 * postreload-gcse.c: Update tree_pass descriptors.
21629 * postreload.c: Update tree_pass descriptors.
21630 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
21631 * tree-tailcall.c: Update tree_pass descriptors.
21632 * tree-pass.h (tree_opt_pass): Rename to ...
21633 (opt_pass) ... this one; add "type" field and remove letter field.
21634 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
21635 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
21636 all_lowering_passes): Update declaration.
21637 * ipa-cp.c: Update tree_pass descriptors.
21638 * final.c: Update tree_pass descriptors.
21639 * omp-low.c: Update tree_pass descriptors.
21640 * tree-ssa-dse.c: Update tree_pass descriptors.
21641 * ipa-reference.c: Update tree_pass descriptors.
21642 * tree-ssa-uncprop.c: Update tree_pass descriptors.
21643 * auto-inc-dec.c: Update tree_pass descriptors.
21644 * reorg.c: Update tree_pass descriptors.
21645 * cgraphunit.c: Update tree_pass descriptors.
21646 * tree-ssa-copyrename.c: Update tree_pass descriptors.
21647 * tree-ssa-ccp.c: Update tree_pass descriptors.
21648 * df-core.c: Update tree_pass descriptors.
21649 * mode-switching.c: Update tree_pass descriptors.
21650 * tree-nomudflap.c: Update tree_pass descriptors.
21651 * modulo-sched.c: Update tree_pass descriptors.
21652 * ipa-pure-const.c: Update tree_pass descriptors.
21653 * cse.c: Update tree_pass descriptors.
21654 * web.c: Update tree_pass descriptors.
21655 * tree-stdarg.c: Update tree_pass descriptors.
21656 * tree-ssa-math-opts.c: Update tree_pass descriptors.
21657 * tree-ssa-dom.c: Update tree_pass descriptors.
21658 * tree-nrv.c: Update tree_pass descriptors.
21659 * tree-ssa-alias.c: Update tree_pass descriptors.
21660 * loop-init.c: Update tree_pass descriptors.
21661 * gimple-low.c: Update tree_pass descriptors.
21662 * ipa-inline.c: Update tree_pass descriptors.
21663 * tree-ssa-sink.c: Update tree_pass descriptors.
21664 * global.c: Update tree_pass descriptors.
21665 * ifcvt.c: Update tree_pass descriptors.
21666 * jump.c: Update tree_pass descriptors.
21667 * predict.c: Update tree_pass descriptors.
21668 * tree-ssa-loop.c: Update tree_pass descriptors.
21669 * recog.c: Update tree_pass descriptors.
21670 * dse.c: Update tree_pass descriptors.
21671 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
21672 * tree-eh.c: Update tree_pass descriptors.
21673 * regmove.c: Update tree_pass descriptors.
21674 * local-alloc.c
21675 * function.c: Update tree_pass descriptors.
21676 * tree-vectorizer.c: Update tree_pass descriptors.
21677 * gcse.c: Update tree_pass descriptors.
21678 * ipa-type-escape.c: Update tree_pass descriptors.
21679 * tree-if-conv.c: Update tree_pass descriptors.
21680 * init-regs.c: Update tree_pass descriptors.
21681 * ipa.c: Update tree_pass descriptors.
21682 * tree-ssa-phiopt.c: Update tree_pass descriptors.
21683 * rtl-factoring.c: Update tree_pass descriptors.
21684 * lower-subreg.c: Update tree_pass descriptors.
21685 * bt-load.c: Update tree_pass descriptors.
21686 * tree-dfa.c: Update tree_pass descriptors.
21687 * except.c: Update tree_pass descriptors.
21688 * emit-rtl.c: Update tree_pass descriptors.
21689 * cfgexpand.c: Update tree_pass descriptors.
21690 * tree-cfgcleanup.c: Update tree_pass descriptors.
21691 * cfgcleanup.c: Update tree_pass descriptors.
21692 * tree-ssa-pre.c: Update tree_pass descriptors.
21693 * tree-sra.c: Update tree_pass descriptors.
21694 * tree-mudflap.c: Update tree_pass descriptors.
21695 * tree-ssa-copy.c: Update tree_pass descriptors.
21696 * cfglayout.c: Update tree_pass descriptors.
21697 * tree-ssa-forwprop.c: Update tree_pass descriptors.
21698 * tree-ssa-dce.c: Update tree_pass descriptors.
21699 * tree-ssa.c: Update tree_pass descriptors.
21700 * regclass.c: Update tree_pass descriptors.
21701 * integrate.c: Update tree_pass descriptors.
21702 * tree-optimize.c: Update tree_pass descriptors.
21703 * tree-ssa-phiprop.c: Update tree_pass descriptors.
21704 * tree-object-size.c: Update tree_pass descriptors.
21705 * combine.c: Update tree_pass descriptors.
21706 * tree-outof-ssa.c: Update tree_pass descriptors.
21707 * bb-reorder.c: Update tree_pass descriptors.
21708 * stack-ptr-mod.c: Update tree_pass descriptors.
21709 * var-tracking.c: Update tree_pass descriptors.
21710 * tree-profile.c: Update tree_pass descriptors.
21711 * tree-vect-generic.c: Update tree_pass descriptors.
21712 * reg-stack.c: Update tree_pass descriptors.
21713 * sched-rgn.c: Update tree_pass descriptors.
21714 * tree-ssa-structalias.c: Update tree_pass descriptors.
21715 * tree-cfg.c: Update tree_pass descriptors.
21716 * passes.c (current_pass): Update declaration.
21717 (finish_optimization_passes): Update.
21718 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
21719 (register_one_dump_file, register_dump_files_1, next_pass_1):
5617c135 21720 Update arguments.
8ddbbcae
JH
21721 (init_optimization_passes): Update handling of new types.
21722 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
21723 * ipa-struct-reorg.c: Update tree_pass descriptors.
21724 * tree-ssa-reassoc.c: Update tree_pass descriptors.
21725 * combine-stack-adj.c: Update tree_pass descriptors.
21726 * cfgrtl.c: Update tree_pass descriptors.
21727 * dce.c: Update tree_pass descriptors.
21728 * tree-ssanames.c: Update tree_pass descriptors.
21729
8cb3ee37
RG
217302008-03-19 Richard Guenther <rguenther@suse.de>
21731
21732 PR middle-end/35609
4990038d
RG
21733 * tree-ssa.c (walk_data): New structure.
21734 (warn_uninitialized_var): If not always_executed warn with "maybe"
8cb3ee37
RG
21735 instead of "is".
21736 (execute_early_warn_uninitialized): Compute post-dominators.
21737 Initialize always_executed before processing each basic block.
21738
34614fff
MP
217392008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
21740
21741 PR target/35504
21742 * config/i386/i386.c (x86_this_parameter): Calculate correct location
21743 of "this" pointer when "regparm = N" or "fastcall" is in effect.
21744
c15477fb
RW
217452008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21746
21747 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
21748
ac5dc795
PB
217492008-03-18 Paolo Bonzini <bonzini@gnu.org>
21750
34614fff
MP
21751 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
21752 is true.
21753 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
21754 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
21755 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
21756 target after ignore has been set, and move there also the commputation
21757 of subtarget and original_target.
21758 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
21759 (LANG_HOOKS_INITIALIZER): Remove it.
21760 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
ac5dc795 21761
b80280f2
RG
217622008-03-18 Richard Guenther <rguenther@suse.de>
21763
21764 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
21765 found an expression with constants, note that in the VN for the lhs.
21766 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
21767 fold them to constants if possible. Run cleanup_cfg if done so.
21768 (execute_pre): Return todo.
21769 (do_pre): Likewise.
21770 (execute_fre): Likewise.
21771 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
21772 of constants.
21773 (get_prop_source_stmt): Look through pointer conversions.
21774
2e28e797
JH
217752008-03-18 Jan Hubicka <jh@suse.cz>
21776
21777 * tree-pretty-print.c: Include predict.h.
21778 (dump_generic_node): Dump predictor.
21779 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
21780 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
21781 * gimple-low.c (lower_stmt): Likewise.
21782 * expr.c (expand_expr_real): Likewise.
21783 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
21784 them.
21785 (build_predict_expr, build_predict_expr): New.
21786 * predict.h (predictor_name, build_predict_expr): Update.
21787 * c-typeck.c (c_finish_bc_stmt): Add prediction.
21788 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
21789 * predict.def (PRED_CONTINUE): Update hitrate.
21790 * tree.def (PREDICT_EXPR): Define.
21791 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
21792 do not handle BIND_EXPR.
21793 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
21794 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
21795 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
21796 operands.
21797
52f1c7ed
MM
217982008-03-18 Michael Matz <matz@suse.de>
21799
21800 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
21801
c8ae0bec
RG
218022008-03-18 Richard Guenther <rguenther@suse.de>
21803
21804 * tree-gimple.h (is_gimple_invariant_address): Declare.
21805 (is_gimple_constant): Likewise.
21806 * tree-gimple.c (is_gimple_constant): New function.
21807 (is_gimple_invariant_address): Likewise.
21808 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
21809 and is_gimple_invariant_address.
21810 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
21811 previous change.
21812 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
21813 an addressable base.
21814
8119fc93
JJ
218152008-03-18 Jakub Jelinek <jakub@redhat.com>
21816
21817 PR middle-end/35611
21818 * gimplify.c (gimplify_expr): Gimplify second operand of
21819 OMP_ATOMIC_LOAD.
21820
c4e5b5a8
RG
218212008-03-17 Richard Guenther <rguenther@suse.de>
21822
21823 PR tree-optimization/19637
21824 * fold-const.c (fold_unary): Remove restrictions of removing
21825 intermediate pointer-conversions (P2)(P1)P0.
21826 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
21827 conversion to void pointer.
21828 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
21829
fcb9237b
JW
218302008-03-16 James E. Wilson <wilson@tuliptree.org>
21831
21832 PR debug/31510
21833 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
21834 emulated thread local variables.
21835
461f8762
RG
218362008-03-16 Richard Guenther <rguenther@suse.de>
21837
21838 PR middle-end/35607
21839 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
21840 expand TREE_INVARIANT operations that are not gimple invariant.
21841
2a31c49c
HPN
218422008-03-16 Hans-Peter Nilsson <hp@axis.com>
21843
21844 * doc/extend.texi (Alignment): Say that the ABI controls
21845 the __alignof__ for non-strict-alignment targets rather
21846 than being a recommendation.
21847
80efdb6a
PB
218482008-03-15 Paul Brook <paul@codesourcery.com>
21849
21850 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
21851 annotations.
21852 (arm_output_fn_unwind): Mark functions that can not be unwound.
21853
ff069900
PB
218542008-03-15 Paul Brook <paul@codesourcery.com>
21855
21856 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
21857 extension instructions.
21858
87e1e42b
RG
218592008-03-15 Richard Guenther <rguenther@suse.de>
21860
21861 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
21862 and fold constant aggregate refs.
21863 (fold_const_aggregate_ref): Handle string constants
21864 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
21865 (evaluate_stmt): Simplify now that ccp_fold folds constant
21866 aggregate refs.
21867
ef87d898
PB
218682008-03-15 Paul Brook <paul@codesourcery.com>
21869
21870 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
21871 (extzv): Use gen_extzv_t2.
21872 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
21873
ed97ddc6
RG
218742008-03-15 Richard Guenther <rguenther@suse.de>
21875
21876 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
21877 (fold_const_aggregate_ref): Likewise.
21878 (get_value): Return NULL if we don't have any values.
21879 (ccp_finalize): Set const_val to NULL after freeing it.
21880 * tree-flow.h (get_symbol_constant_value): Declare.
21881 (fold_const_aggregate_ref): Likewise.
21882 * tree-ssa-sccvn.c (try_to_simplify): Use them.
21883
1fd89060
RG
218842008-03-15 Richard Guenther <rguenther@suse.de>
21885
21886 PR middle-end/35593
21887 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
21888 to not produce negative array indices if not allowed. Add
21889 parameter to indicate that.
21890 (maybe_fold_offset_to_component_ref): Allow negative array
21891 indices only for the first member of a structure.
21892 (maybe_fold_offset_to_reference): Allow negative array indices.
21893 (maybe_fold_stmt_addition): Likewise.
21894
693092fb 218952008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
cd7e0bd4 21896 Anatoly Sokolov <aesok@post.ru>
693092fb 21897
b97d8153 21898 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
693092fb
BH
21899 (avr_arch): Add ARCH_AVR6.
21900 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5617c135 21901 (initial_elimination_offset): Initialize and use 'avr_pc_size'
693092fb
BH
21902 instead of fixed value 2.
21903 (print_operand_address): Use gs() asm specifier instead of pm().
21904 (avr_assemble_integer): (Ditto.).
21905 (avr_output_addr_vec_elt): (Ditto.).
21906 (print_operand): Handle "!" code.
22129589 21907 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
693092fb
BH
21908 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
21909 (AVR_HAVE_EIJMP_EICALL): Define.
21910 (AVR_3_BYTE_PC): Redefine.
21911 (AVR_2_BYTE_PC): (Ditto.).
21912 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
21913 (LINK_SPEC): Add atmega2560 and atmega2561.
22129589 21914 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
693092fb 21915 (crtm2561.o).
22129589 21916 * config/avr/avr.md (call_insn): Use eicall instead of icall
693092fb
BH
21917 for 3 byte PC devices.
21918 (call_value_insn): (Ditto.).
21919 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
21920 (indirect_jump): Use only for for 2 byte PC devices.
21921 (*tablejump): (Ditto.).
21922 (*indirect_jump_avr6): Add insn.
21923 (*tablejump_rjmp): Don't use for 3 byte PC devices.
22129589 21924 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
693092fb
BH
21925 instead of ijmp for 3 byte PC devices.
21926 (__tablejump2__): (Ditto.).
b97d8153 21927 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
22129589 21928 (MULITLIB_DIRNAMES): (Ditto.).
693092fb
BH
21929 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
21930
ab555a5b
UB
219312008-03-15 Uros Bizjak <ubizjak@gmail.com>
21932
21933 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
21934 "sse2_umulsidi3". Use V1DI mode for operand 0.
21935 ("mmx_psadbw"): Use V1DI mode for operand 0.
21936 * config/i386/i386-modes.def (V1SI): New vector mode.
21937 * config/i386/i386.c (struct builtin_description)
21938 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
21939 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
21940 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
21941 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
21942 v1di_ftype_v8qi_v8qi type.
21943 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
21944
21945 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
21946 __builtin_ia32_pmuludq]: Fix the mode of return value.
21947
8f78ed0e
RG
219482008-03-15 Richard Guenther <rguenther@suse.de>
21949
21950 PR middle-end/35595
21951 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
21952 being a PHI_NODE.
21953
66e58b33 219542008-03-14 Bob Wilson <bob.wilson@acm.org>
22129589 21955
66e58b33
BW
21956 * doc/invoke.texi (Option Summary, Xtensa Options): Document
21957 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
21958 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
21959 unless TARGET_SERIALIZE_VOLATILE is enabled.
21960 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
21961 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
21962 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
21963
896c8b96
RG
219642008-03-14 Richard Guenther <rguenther@suse.de>
21965
21966 PR tree-optimization/34172
21967 * tree-flow.h (refs_may_alias_p): Declare.
21968 (get_single_def_stmt): Likewise.
21969 (get_single_def_stmt_from_phi): Likewise.
21970 (get_single_def_stmt_with_phi): Likewise.
21971 * tree-dfa.c (refs_may_alias_p): New function.
21972 (get_single_def_stmt): Likewise.
21973 (get_single_def_stmt_from_phi): Likewise.
21974 (get_single_def_stmt_with_phi): Likewise.
21975 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
21976 (vn_reference_lookup_1): New helper function.
21977 (vn_reference_lookup): Walk the virtual use-def chain to
21978 continue searching for a match if the def does not alias the
21979 reference we are looking for.
21980
75dd1ae2
DE
219812008-03-14 David Edelsohn <edelsohn@gnu.org>
21982
21983 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
21984 archive and Perzl. Update The Written Word listing.
21985
3d45dd59
RG
219862008-03-14 Richard Guenther <rguenther@suse.de>
21987
21988 PR tree-optimization/34043
21989 PR tree-optimization/33989
21990 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
21991 when doing FRE.
21992 (bitmap_find_leader): Use extra argument to verify dominance
21993 relationship inside a basic-block.
21994 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
21995 (find_leader_in_sets): Adjust.
21996 (create_component_ref_by_pieces): Take extra argument for
21997 dominance check, handle lookup failures.
21998 (find_or_generate_expression): Likewise.
21999 (create_expression_by_pieces): Likewise.
22000 (insert_into_preds_of_block): Adjust.
22001 (create_value_expr_from): If asked for, verify all operands
22002 are in the blocks AVAIL_OUT set.
22003 (make_values_for_stmt): Check for SSA_NAMEs that are life
22004 over an abnormal edge.
22005 (compute_avail): Remove such check.
22006 (do_SCCVN_insertion): New function.
22007 (eliminate): If we do not find a leader suitable for replacement
22008 insert a replacement expression from SCCVN if available.
22009 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
22010 (struct vn_ssa_aux): Add needs_insertion flag.
22011 * tree-ssa-sccvn.c (may_insert): New global flag.
22012 (copy_reference_ops_from_ref): Value-number union member access
22013 based on its size, not type and member if insertion is allowed.
22014 (visit_reference_op_load): For a weak match from union type
22015 punning lookup a view-converted value and insert a SSA_NAME
22016 for that value if that is not found.
22017 (visit_use): Make dumps shorter. Do not disallow value numbering
22018 SSA_NAMEs that are life over an abnormal edge to constants.
22019 (free_scc_vn): Release inserted SSA_NAMEs.
22020 (run_scc_vn): New flag to specify whether insertion is allowed.
22021 Process SSA_NAMEs in forward order.
22022 * tree-ssa-loop-im.c (for_each_index): Handle invariant
22023 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
22024 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
22025 pointer type to/from integral types that do not change the
22026 precision to regular conversions.
22027
52eaae97
UB
220282008-03-13 Uros Bizjak <ubizjak@gmail.com>
22029
22030 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
22031 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
22032 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
22033 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
75d8b30e
UB
22034 input arguments and the mode of return value. Built-in functions
22035 that operate on whole 64-bit MMX register now use V1DI mode.
52eaae97 22036
5f5f0635
AD
220372008-03-13 Alon Dayan <alond@il.ibm.com>
22038 Olga Golovanevsky <olga@il.ibm.com>
22039
22040 PR tree-optimization/35041
22041 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
22042 to locate the right position in a statement.
22043
1359ef39
UB
220442008-03-13 Uros Bizjak <ubizjak@gmail.com>
22045
22046 PR target/34000
22047 PR target/35553
22048 * config/i386/xmmintrin.h: Change all static inline functions to
22049 extern inline and add __gnu_inline__ attribute.
22050 * config/i386/bmintrin.h: Ditto.
22051 * config/i386/smmintrin.h: Ditto.
22052 * config/i386/tmmintrin.h: Ditto.
22053 * config/i386/mmintrin-common.h: Ditto.
22054 * config/i386/ammintrin.h: Ditto.
22055 * config/i386/emmintrin.h: Ditto.
22056 * config/i386/pmmintrin.h: Ditto.
22057 * config/i386/mmintrin.h: Ditto.
22058 * config/i386/mm3dnow.h: Ditto.
22059
d0fb20be
JJ
220602008-03-13 Jakub Jelinek <jakub@redhat.com>
22061
22062 PR middle-end/35185
22063 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
22064 (lower_omp_2): New function.
22065 (lower_omp_1, lower_omp): Rewritten.
22066
20cef83a
DS
220672008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
22068
22069 PR 35054
22070 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
22071 with the phrase "Microsoft Windows compilers".
22072 (Push/Pop Macro Pragmas): New subsection. Document
22073 #pragma push_macro and pragma pop_macro.
22074
5dea0c19
PB
220752008-03-12 Paul Brook <paul@codesourcery.com>
22076
22077 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
22078
d1b85efb
PB
220792008-03-12 Paul Brook <paul@codesourcery.com>
22080
22081 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
22082 (thumb2_alusi3_short): Exclude PLUS and MINUS.
22083 (thumb2_addsi_shortim): Rename ...
22084 (thumb2_addsi_short): ... to this. Allow register operands.
22085 (thumb2_subsi_short): New pattern.
22086 (thumb2_one_cmplsi2_short,
22087 thumb2_negsi2_short): New patterns and peepholes.
22088
09754904
PB
220892008-03-12 Paul Brook <paul@codesourcery.com>
22090
09754904
PB
22091 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
22092
a7438d6d
UB
220932008-03-12 Uros Bizjak <ubizjak@gmail.com>
22094
22095 * config/i386/i386.md (int_cond): New code iterator.
22096 (fp_cond): Ditto.
22097 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
22098 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
22099 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
22100 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
22101 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
22102 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
22103 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
22104 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
22105
954954d1
PB
221062008-03-12 Paul Brook <paul@codesourcery.com>
22107
22108 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
22109 instead of {arm,thumb}_compute_save_reg_mask.
22110 (output_return_instruction): Ditto.
22111 (thumb_unexpanded_epilogue): Ditto.
22112 (thumb1_expand_prologue): Ditto.
22113 (thumb1_output_function_prologue): Ditto.
22114 (arm_set_return_address): Ditto.
22115 (thumb_set_return_address): Ditto.
22116 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
22117 regs to achieve stack alignment.
22118 (thumb1_compute_save_reg_mask): Fix compiler warning.
22119 (arm_output_epilogue): Use offsets->saved_regs_mask.
22120 Adjust stack pointer by poping call clobered registers.
22121 (arm_expand_prologue): Use offsets->saved_regs_mask.
22122 Adjust stack pointer by pushing extra registers.
d0fb20be 22123 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
954954d1 22124
c83bd37c
PB
221252008-03-12 Paolo Bonzini <bonzini@gnu.org>
22126
22127 PR tree-opt/35422
22128 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
22129 conversion to the operands of a multiplication.
22130
67514449
RG
221312008-03-12 Richard Guenther <rguenther@suse.de>
22132
22133 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
22134 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
22135 * timevar.def (TV_TREE_PHIPROP): Add.
22136 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
22137 pass description. Use TV_TREE_PHIPROP.
22138 * tree-ssa-forwprop.c: Remove phiprop code.
22139
7c8f7639
JJ
221402008-03-12 Jakub Jelinek <jakub@redhat.com>
22141
22142 PR middle-end/35549
22143 * omp-low.c (maybe_lookup_decl): Constify first argument.
22144 (use_pointer_for_field): Change last argument from bool to
22145 omp_context *. Disallow shared copy-in/out in nested
22146 parallel if decl is shared in outer parallel too.
22147 (build_outer_var_ref, scan_sharing_clauses,
22148 lower_rec_input_clauses, lower_copyprivate_clauses,
22149 lower_send_clauses, lower_send_shared_vars): Adjust callers.
22150
62878103
VK
221512008-03-12 Victor Kaplansky <victork@il.ibm.com>
22152 Ira Rosen <irar@il.ibm.com>
22153
22154 * tree-vectorizer.c (free_stmt_vec_info): New function.
22155 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
22156 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
22157 * tree-vectorizer.h (free_stmt_vec_info): Declare.
22158 * tree-vect-transform.c (vectorizable_conversion): Free
22159 vec_oprnds0 if it was allocated.
22160 (vect_permute_store_chain): Remove unused VECs.
22161 (vectorizable_store): Free VECs that are allocated in the..
22162 function.
22163 (vect_transform_strided_load, vectorizable_load): Likewise.
22164 (vect_remove_stores): Simplify the code.
22165 (vect_transform_loop): Move code to vect_remove_stores().
22166 Call vect_remove_stores() and free_stmt_vec_info().
22167
9dbd54be
JDA
221682008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22169
22170 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
22171 TARGET_HPUX. Revise comment.
22172 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
22173 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
22174 Use sr4 variant of `be' instruction when not generating PIC code.
22175 (attr_length_call): Adjust for above change.
22176
76a7d3ca
AP
221772008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
22178
22179 * ipa-reference.c (static_execute): Remove module_statics_const and
22180 associated setting code.
22181
40cca4f9
UB
221822008-03-11 Uros Bizjak <ubizjak@gmail.com>
22183
22184 PR target/35540
22185 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1b1d8f88
UB
22186 predicate for operand 1.
22187 (paritysi2_cmp): Use register_operand predicate for operand 2.
40cca4f9
UB
22188 Use earlyclobber modifier for operand 1. Remove support for
22189 memory operands.
1b1d8f88 22190 (paritydi2_cmp): Use register_operand predicate for operand 3.
40cca4f9
UB
22191 Use earlyclobber modifier for operand 1. Remove support for
22192 memory operands.
22193
ec6237e4 221942008-03-11 Paul Brook <paul@codesourcery.com>
40cca4f9 22195 Vladimir Prus <vladimir@codesourcery.com>
ec6237e4
PB
22196
22197 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
22198 (arm_compute_save_reg0_reg12_mask): Always
22199 check if register 11 must be saved. Always safe hard frame pointer
22200 when frame_pointer_needeed.
22201 (arm_compute_save_reg_mask): Save IP and PC
22202 only with apcs frames.
22203 (arm_output_epilogue): Adjust Thumb2 codepath to
22204 be also invoked and work for ARM non-apcs frames.
22205 (arm_expand_prologue): Don't bother saving IP
22206 for non-apcs frame, since it's not clobbered by
22207 prologue code. Implement non-apcs frame
22208 layout.
22209
2f6025a1
PB
222102008-03-11 Paolo Bonzini <bonzini@gnu.org>
22211
22212 PR rtl-optimization/35281
22213 * expr.c (convert_move): Use a new pseudo for the intermediate
22214 from_mode->word_mode result.
22215
30e257e5
PB
222162008-03-11 Paolo Bonzini <bonzini@gnu.org>
22217
ec6237e4
PB
22218 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
22219 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
22220 * toplev.c (compile_file): Don't call it.
30e257e5 22221
ab669042
UB
222222008-03-11 Uros Bizjak <ubizjak@gmail.com>
22223
22224 PR middle-end/35526
22225 * expr.c (store_expr): Call emit_block_move if the mode
22226 of "temp" RTX is BLKmode.
22227
1ffe34d9 222282008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
ab669042 22229 Richard Guenther <rguenther@suse.de>
1ffe34d9
AP
22230
22231 PR tree-optimization/31358
22232 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
22233 the step with a NULL_TREE.
22234 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
22235 to sizetype if type is a pointer type.
22236 (add_candidate_1): Don't convert the base and step to
22237 the generic type if the orginal type is a pointer type.
22238 (add_iv_value_candidates): Use sizetype for the step
22239 if type is a pointer type.
22240 (cand_value_at): Likewise.
22241 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
22242 for pointer types.
22243 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
22244 Don't convert the tem affine to the type.
22245 (add_elt_to_tree): Use sizetype for the step if a pointer.
22246 Use POINTER_PLUS_EXPR for pointers.
22247 (aff_combination_to_tree): Use sizetype for the step if a
22248 pointer.
22249
dd6d5236
VM
222502008-03-10 Vladimir Makarov <vmakarov@redhat.com>
22251
22252 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
22253 Remove commutativity hint.
22254
8b46837c
JJ
222552008-03-10 Jakub Jelinek <jakub@redhat.com>
22256
5df27e4a
JJ
22257 PR c/35438
22258 PR c/35439
22259 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
22260 errorneous type. Check that v is a VAR_DECL.
22261
8b46837c
JJ
22262 PR middle-end/35099
22263 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
22264
725c2d32
L
222652008-03-10 H.J. Lu <hongjiu.lu@intel.com>
22266
22267 PR tree-optimization/35494
22268 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
22269 may be overriden at link and run time.
22270
3ba404df
RG
222712008-03-10 Richard Guenther <rguenther@suse.de>
22272
22273 PR tree-optimization/34677
22274 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
22275 (poolify_tree): Likewise.
22276 (modify_expr_template): Likewise.
22277 (poolify_modify_stmt): Likewise.
22278 (insert_fake_stores): Handle all component-ref style stores
22279 in addition to INDIRECT_REF. Also handle complex types.
22280 Do not poolify the inserted load.
22281 (realify_fake_stores): Do not rebuild the tree but only
22282 make it a SSA_NAME copy.
22283 (init_pre): Remove initialzation of modify_expr_template.
22284 Do not allocate modify_expr_node_pool.
22285 (fini_pre): Do not free modify_expr_node_pool.
22286
97e38a92
PB
222872008-03-10 Paul Brook <paul@codesourcery.com>
22288
22289 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
22290 to avoid conflicts.
22291
bd4dc3cd 222922008-03-10 Paul Brook <paul@codesourcery.com>
ab669042 22293 Mark Shinwell <shinwell@codesourcery.com>
bd4dc3cd 22294
bd4dc3cd
PB
22295 * config/arm/cortex-r4.md: New.
22296 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
22297 insn attributes.
22298 * config/arm/arm.md: Include cortex-r4.md.
22299 (insn): Add smmls, sdiv and udiv values.
22300 (generic_sched): Don't use generic scheduling for Cortex-R4.
22301 (arm_issue_rate): New function.
22302 (TARGET_SCHED_ISSUE_RATE): Define.
22303
9886a872
SP
223042008-03-10 Sebastian Pop <sebastian.pop@amd.com>
22305
22306 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
22307
e5eff6a3
RG
223082008-03-10 Richard Guenther <rguenther@suse.de>
22309
22310 * tree-ssa-pre.c (get_sccvn_value): Simplify.
22311 (compute_avail): Do not add stmt uses to AVAIL_OUT.
22312
0d4c700c
PB
223132008-03-10 Paolo Bonzini <bonzini@gnu.org>
22314
22315 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
22316 Set default to true.
22317
802e3f8c
RW
223182008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22319
22320 * c.opt (Wsynth): Deprecate.
22321 * doc/invoke.texi (Option Summary, Warning Options): Document
22322 -Wno-format-contains-nul.
22323
be3d4789
UB
223242008-03-09 Uros Bizjak <ubizjak@gmail.com>
22325
22326 PR target/35496
3b509e33 22327 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
be3d4789
UB
22328 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
22329
e83a75a7
IR
223302008-03-09 Ira Rosen <irar@il.ibm.com>
22331
22332 * config/rs6000/rs6000.c (builtin_description): Rename vector
22333 left shift operations.
22334 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
22335 (altivec_vsl<VI_char>): Rename to ...
22336 (ashl<mode>3): ... new name.
22337 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
22338 gen_ashlv4si3.
22339 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
22340
fc9161c1
RG
223412008-03-08 Richard Guenther <rguenther@suse.de>
22342
22343 * coverage.h (tree_coverage_counter_addr): Declare.
22344 * coverage.c (tree_coverage_counter_addr): New function.
22345 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
22346 before using again.
22347 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
22348 (tree_gen_one_value_profiler): Likewise.
22349 (tree_gen_ic_profiler): Likewise.
22350 (tree_gen_average_profiler): Likewise.
22351 (tree_gen_ior_profiler): Likewise.
22352
49a1fb2d
RG
223532008-03-08 Richard Guenther <rguenther@suse.de>
22354
22355 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
22356 (vn_binary_op_insert): Likewise.
22357 (vn_unary_op_lookup): Likewise.
22358 (vn_unary_op_insert): Likewise.
22359 (vn_nary_op_lookup): Declare.
22360 (vn_nary_op_insert): Likewise.
22361 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
22362 and binary hashes, use a single obstack for unary_op_pool
22363 and binary_op_pool.
22364 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
22365 a single struct vn_nary_op_s. Store tree code length and
22366 a variable number of operands.
22367 (struct vn_reference_op_struct): Remove unused op2.
22368 (vn_reference_op_eq): Do not compare op2.
22369 (vn_reference_op_compute_hash): Do not compute hash of op2.
22370 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
22371 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
22372 with vn_nary_op_compute_hash.
22373 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
22374 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
22375 vn_nary_op_lookup.
22376 (vn_unary_op_insert, vn_binary_op_insert): Replace with
22377 vn_nary_op_insert.
22378 (visit_unary_op): Call nary functions.
22379 (visit_binary_op): Likewise.
22380 (process_scc): Adjust for struct vn_tables_s changes.
22381 (allocate_vn_table): Likewise.
22382 (free_vn_table): Likewise.
22383 * tree-vn.c (vn_add): Call nary functions.
22384 (vn_lookup): Likewise.
22385
2725b75c
JJ
223862008-03-08 Jakub Jelinek <jakub@redhat.com>
22387
22388 PR target/35498
22389 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
22390 wdst back after sync_compare_and_swapqhi_internal.
22391
10a97ae6
UB
223922008-03-08 Uros Bizjak <ubizjak@gmail.com>
22393
22394 PR target/22152
22395 * config/i386/i386-modes.def (V1DI): New vector mode.
22396 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
22397 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
22398 (MMXMODE248): Ditto.
22399 (MMXMODE): Add V1DI mode.
22400 (mmxvecsize): Change DI mode to V1DI mode.
22401 ("mov<mode>): Use MMXMODEI8 mode iterator.
22402 ("*mov<mode>_internal_rex64"): Ditto.
22403 ("*mov<mode>_internal"): Ditto.
22404 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
22405 ("mmx_sub<mode>3"): Ditto.
22406 ("mmx_adddi3"): Remove insn pattern.
22407 ("mmx_subdi3"): Ditto.
22408 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
22409 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
22410 ("mmx_ashl<mode>3"): Ditto.
22411 ("mmx_lshrdi3"): Remove insn pattern.
22412 ("mmx_ashldi3"): Ditto.
22413 * config/i386/i386.c (classify_argument): Handle V1DImode.
22414 (function_arg_advance_32): Ditto.
22415 (function_arg_32): Ditto.
22416 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
22417 mmx_addv1di3 insn pattern.
22418 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
22419 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
22420 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
22421 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
22422 Remove definitions of built-in functions.
22423 (V1DI_type_node): New node.
22424 (v1di_ftype_v1di_int): Ditto.
22425 (v1di_ftype_v1di_v1di): Ditto.
22426 (v2si_ftype_v2si_si): Ditto.
22427 (v4hi_ftype_v4hi_di): Remove node.
22428 (v2si_ftype_v2si_di): Ditto.
22429 (ix86_init_mmx_sse_builtins): Handle V1DImode.
22430 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
22431 Redefine builtins using def_builtin_const with *_ftype_*_int node.
22432 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
22433 Add new builtins using def_builtin_const.
22434 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
22435 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
22436 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
22437 * config/i386/mmintrin.h (__v1di): New typedef.
22438 (_mm_add_si64): Cast arguments to __v1di type.
22439 (_mm_sub_si64): Ditto.
22440 (_mm_sll_pi16): Cast __count to __v4hi type.
22441 (_mm_sll_pi32): Cast __count to __v2si type.
22442 (_mm_sll_si64): Cast arguments to __v1di type.
22443 (_mm_srl_pi16): Cast __count to __v4hi type.
22444 (_mm_srl_pi32): Cast __count to __v2si type.
22445 (_mm_srl_si64): Cast arguments to __v1di type.
22446 (_mm_sra_pi16): Cast __count to __v4hi type.
22447 (_mm_sra_pi32): Cast __count to __v2si type.
22448 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
22449 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
22450 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
22451 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
22452 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
22453 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
22454 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
22455 (_mm_srai_pi32): Use __builtin_ia32_psradi.
22456 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
22457 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
22458 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
22459 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
22460
08c3b5b0
JM
224612008-03-07 Joseph Myers <joseph@codesourcery.com>
22462
22463 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
22464
efc05e3c
PB
224652008-03-07 Peter Bergner <bergner@vnet.ibm.com>
22466
22467 PR target/35373
22468 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
22469 reg+const addressing for Altivec modes. Don't generate reg+reg
22470 addressing for TFmode or TDmode quantities.
22471
cf7bc668
PB
224722008-03-07 Paolo Bonzini <bonzini@gnu.org>
22473
22474 * c-common.c (vector_types_convertible_p): Call langhook
22475 instead of comptypes.
22476
b0940154
AP
224772008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
22478
22479 PR tree-opt/35402
22480 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
22481 integral and scalar float variables which have a
22482 NULL DECL_INITIAL.
22483
48081aae
NF
224842008-03-06 Nathan Froyd <froydnj@codesourcery.com>
22485
22486 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
22487 dwarf_register_span hook when emitting unwind information for
22488 register-to-memory saves.
22489 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
22490 (rs6000_frame_related): Remove call to spe_synthesize_frame.
22491
251923f5
JJ
224922008-03-06 Jakub Jelinek <jakub@redhat.com>
22493
22494 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
22495 for the same VAR_DECL.
22496
e8645a40
TT
224972008-03-06 Tom Tromey <tromey@redhat.com>
22498
22499 * treelang: Delete.
22500 * doc/standards.texi (Standards): Don't mention treelang.
22501 * doc/invoke.texi (Overall Options): Don't mention treelang.
22502 * doc/install.texi (Prerequisites): Don't mention bison or
22503 treelang.
22504 (Configuration): Don't mention treelang.
22505 (Building): Likewise.
22506 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
22507
97efb03a
PB
225082008-03-06 Paolo Bonzini <bonzini@gnu.org>
22509
22510 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
22511 word-extractions out of a multi-word object.
22512
fc0f49f3
RG
225132008-03-06 Richard Guenther <rguenther@suse.de>
22514
22515 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
22516 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
22517 result type and precision.
22518 * expr.c (get_inner_reference): Set unsignedp based on the result
22519 type of BIT_FIELD_REF.
22520 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
22521 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
22522 (try_instantiate_multiple_fields): Likewise. Use the correct type
22523 for BIT_FIELD_REF.
22524 (sra_build_assignment): Likewise.
22525 (sra_build_elt_assignment): Likewise.
22526 (sra_explode_bitfield_assignment): Likewise.
22527 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
22528 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
22529 set BIT_FIELD_REF_UNSIGNED.
22530 (vectorizable_load): Likewise.
22531
e186ff69
AK
225322008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
22533
22534 * cse.c (cse_extended_basic_block): Invalidate artificial defs
22535 at bb start.
22536
4c067742
RG
225372008-03-06 Richard Guenther <rguenther@suse.de>
22538
22539 * alias.c (struct alias_set_entry): Move has_zero_child field
22540 to pack with alias_set.
22541
23880b97
L
225422008-03-05 H.J. Lu <hongjiu.lu@intel.com>
22543
22544 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
22545 32bit host.
22546
6ab81302
ILT
225472008-03-05 Ian Lance Taylor <iant@google.com>
22548
22549 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
22550
4218dc2d 225512008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
ca9052ce
KZ
22552
22553 * fwprop.c (update_df): Support width and offset parameters of
22554 df_ref_create.
22555 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
22556 global_conflicts): Change DF_REF_EXTRACT to either
22557 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
22558 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22559 * df-scan.c (df_ref_record, df_defs_record,
22560 df_ref_create_structure, df_def_record_1, df_uses_record,
22561 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
22562 df_bb_refs_collect, df_entry_block_defs_collect,
22563 df_exit_block_uses_collect): Support new width and offset fields.
22564 (ref_extract_pool): New storage pool.
22565 (df_free_ref): New function.
22566 (df_reg_chain_unlink, df_free_collection_rec,
22567 df_sort_and_compress_refs): Call df_free_ref.
22568 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
22569 of df_ref_extract.
22570 (df_ref_create_structure): Allocate df_ref_extract if offset and
22571 width fields are used.
22572 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
22129589 22573 (df_uses_record): Get offset and width from ZERO_EXTRACT
ca9052ce
KZ
22574 and SIGN_EXTRACT.
22575 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
22576 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
22577 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22578 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
22579 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
22580 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
22581 (df_ref_extract): New structure.
22582 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
22583 (df_ref_create): Add width and offset parameters.
22129589 22584
63d195d5
RG
225852008-03-05 Richard Guenther <rguenther@suse.de>
22586
22587 * tree-ssa-structalias.c (get_constraint_for_component_ref):
22588 Use ranges_overlap_p.
22589 (offset_overlaps_with_access): Rename
22590 to ranges_overlap_p and move ...
22591 * tree-flow-inline.h (ranges_overlap_p): ... here.
22592
22593 * tree.h (get_inner_reference, handled_component_p): Update
22594 comments.
22595
22596 * tree.h (record_component_aliases, get_alias_set,
22597 alias_sets_conflict_p, alias_sets_must_conflict_p,
22598 objects_must_conflict_p): Move declarations ...
22599 * alias.h (record_component_aliases, get_alias_set,
22600 alias_sets_conflict_p, alias_sets_must_conflict_p,
22601 objects_must_conflict_p): ... here.
22602 Include coretypes.h.
22603 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
22604
ea7e6d5a
AH
226052008-03-05 Aldy Hernandez <aldyh@redhat.com>
22606
22607 * cfg.c: Include tree-flow.h.
22608 (remove_edge_raw): Call redirect_edge_var_map_clear.
22609 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
22610 * tree-flow-inline.h (redirect_edge_var_map_def): New.
22611 (redirect_edge_var_map_result): New.
22612 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
22613 PENDING_STMT use with redirect_edge_var_map_*.
22614 * tree-ssa.c (edge_var_maps): New definition.
22615 (redirect_edge_var_map_add): New.
22616 (redirect_edge_var_map_clear): New.
22617 (redirect_edge_var_map_dup): New.
22618 (redirect_edge_var_map_vector): New.
22619 (redirect_edge_var_map_destroy): New.
22620 (ssa_redirect_edge): Replace PENDING_STMT use with
22621 redirect_edge_var_map_*.
22622 (flush_pending_stmts): Same.
22623 (delete_tree_ssa): Destroy edge var map.
22624 * tree-flow.h (struct _edge_var_map): New.
22625 Define edge_var_map vector type.
22626 Declare redirect_edge_var_map_* prototypes.
22627 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
22628 * tree-cfg.c (reinstall_phi_args): Replace
22629 PENDING_STMT use with redirect_edge_var_map_*.
22630
1bdcf037
RG
226312008-03-05 Richard Guenther <rguenther@suse.de>
22632
22633 PR tree-optimization/35472
22634 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
22635 whose single use_stmt has a overlapping set of loaded and
22636 stored symbols as that use_stmt might be a noop assignment then.
22637
fec5fe47
JS
226382008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
22639
22640 * gthr-rtems.h: Implement __gthread_mutex_destroy.
22641
e55f42fb
RG
226422008-03-05 Richard Guenther <rguenther@suse.de>
22643
22644 PR c++/35336
22645 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
22646 should be constants.
22647 * tree-cfg.c (verify_expr): Verify it.
22648 * fold-const.c (fold_truthop): Remove code generating
22649 BIT_FIELD_REFs of structure bases.
22650 (fold_binary): Likewise.
22651 (fold_ternary): Position and size of BIT_FIELD_REFs are
22652 always host integers.
22653 (make_bit_field_ref): Remove.
22654 (optimize_bit_field_compare): Remove.
22655 (all_ones_mask_p): Remove.
22656
1da266fe
GL
226572008-03-05 Gabor Loki <loki@gcc.gnu.org>
22658
22659 PR gcc/33009
22660 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
22661 (split_block_and_df_analyze): New. Split basic block and rebuild
22662 dataflow.
22663 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
22664 SPLIT_BLOCK.
22665 (split_pattern_seq): Likewise.
22666 (erase_matching_seqs): Likewise.
22667 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
22668
07c40d0b
GK
226692008-03-04 Geoff Keating <geoffk@apple.com>
22670
22671 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
22672 declaration and code.
22673 (tree_invalid_nonnegative_warnv_p): Likewise.
22674
4c754988
SB
226752008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
22676
22677 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
22678 examples. Truncate option-names then causing overfull hbox.
22679
399fe3e1
JDA
226802008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22681
22682 PR target/35222
22683 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
22684 on hpux10.
22685 * configure: Rebuilt.
22686
e49cf927 226872008-03-04 Rafael Espíndola <espindola@google.com>
e918a58a
RAE
22688
22689 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
22690 (tree_unary_nonnegative_warnv_p): New.
22691 (tree_binary_nonnegative_warnv_p): New.
22692 (tree_single_nonnegative_warnv_p): New.
22693 (tree_invalid_nonnegative_warnv_p): New.
22694 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
22695
ee8ea087
MLI
226962008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22697
22698 PR 28322
22699 * opts.c (handle_option): Postpone 'unknown option' errors only for
22700 warning options.
22701
b5220972
L
227022008-03-04 H.J. Lu <hongjiu.lu@intel.com>
22703
22704 PR target/35453
22705 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
22706 (_SIDD_XXX): This.
22707
e49cf927 227082008-03-04 Rafael Espíndola <espindola@google.com>
74dd418c
RAE
22709
22710 * fold-const.c (tree_unary_nonzero_warnv_p): New.
22711 (tree_binary_nonzero_warnv_p): New.
22712 (tree_single_nonzero_warnv_p): New.
22713 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
22714
5ce0e197
UB
227152008-03-04 Uros Bizjak <ubizjak@gmail.com>
22716
22717 PR middle-end/35456
22718 * fold-const.c (fold_cond_expr_with_comparison): Prevent
22719 transformations for modes that have signed zeros.
22720 * ifcvt.c (noce_try_abs): Ditto.
22721
2c7c6f54
JM
227222008-03-04 Joseph Myers <joseph@codesourcery.com>
22723
22724 * config/i386/i386.c (override_options): Force
22725 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
22726
b7884852
JH
227272008-03-04 Jan Hubicka <jh@suse.cz>
22728
22729 PR c++/35262
22730 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
22731 in last commit.
22732
ab65b56b
DS
227332008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
22734
22735 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
cd7e0bd4 22736 label to probe the stack.
ab65b56b 22737
c262f705
DS
227382008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
22739
22740 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
22741 (__gthr_win32_mutex_destroy): Declare.
22742 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
22743 __gthr_win32_mutex_destroy.
22744 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
22745
44682fab
JH
227462008-03-03 Jan Hubicka <jh@suse.cz>
22747
22748 PR c++/35262
22749 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
22750 aggressive on inlining cold calls.
22751
9a327766
RG
227522008-03-03 Richard Guenther <rguenther@suse.de>
22753
22754 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
22755 struct copies into the expression table.
22756 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
22757 (try_to_simplify): Likewise.
22758 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
22759 integral and pointer arguments which do not change the
22760 precision to NOP_EXPRs.
22761 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
22762 VIEW_CONVERT_EXPR case.
22763
6a732743
SP
227642008-03-02 Sebastian Pop <sebastian.pop@amd.com>
22765
22766 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
22767 defined in a loop at depth 0 is invariant.
22768 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
22769 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
22770 be called at loop depth 0.
22771
0e5997c0
JJ
227722008-03-02 Jakub Jelinek <jakub@redhat.com>
22773
22774 PR driver/35420
22775 * gcc.c (process_command): Update copyright notice dates.
22776 * gcov.c (print_version): Likewise.
22777 * gcov-dump.c (print_version): Likewise.
22778 * mips-tfile.c (main): Likewise.
22779 * mips-tdump.c (main): Likewise.
22780
393eda6a
MLI
227812008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22782
22783 PR 24924
22784 * c-common.c (flag_permissive): Delete.
22785 (constant_expression_warnings): Check flags first.
22786 (constant_expression_error): New.
22787 * c-common.h (flag_permissive): Delete.
22788 (constant_expression_error): Declare.
22789 * flags.h (flag_permissive): Declare. Update description.
22790 * diagnostic.c (pedwarn): Update.
22791 (permerror): New.
22792 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
22793 (permissive_error_kind): New.
22794 * toplev.c (flag_permissive): Define. Update description.
22795 * toplev.h (permissive_error_kind): Declare.
22796 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
22797 (pedwarn_c90): Use pedantic_warning_kind.
22798 * c-opts.c (c_common_post_options): flag_permissive does not affect
22799 flag_pedantic_errors.
22800
9677aa89
JM
228012008-03-02 Joseph Myers <joseph@codesourcery.com>
22802
22803 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
22804 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
22805 __absvsi2, __absvDI2): Use unsigned arithmetic.
22806
f3130d75 228072008-03-02 Andi Kleen <ak@suse.de>
ab669042 22808 Richard Guenther <rguenther@suse.de>
f3130d75
AK
22809
22810 * struct-equiv.c: Remove file.
22811 * cfg_cleanup.c (condjump_equiv_p): Remove.
22812 * Makefile.in (OBJS-common): Remove struct-equiv.o.
22813 (struct-equiv.o): Remove rule.
22814 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
22129589 22815 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
f3130d75
AK
22816 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
22817
89c3cbc6
AO
228182008-03-01 Alexandre Oliva <aoliva@redhat.com>
22819
22820 * ifcvt.c (noce_process_if_block): Try to handle only the then
22821 block if the else block exists but isn't suitable.
22822
5eb4a9af
JB
228232008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
22824
22825 PR gcc/35063
22826 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
22827 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
22828 regression from previous patch.
22829
4dabf736
JB
228302008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
22831
22832 PR gcc/35063
22833 * gthr.h: Add __gthread_mutex_destroy as a function that must be
22834 implemented.
22835 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
22836 * gthr-single.h (__gthread_mutex_destroy): Likewise.
22837 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
22838 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
22839 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
22840 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
22841 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
22842 (__gthread_mutex_destroy_function): Rename to
22843 __gthread_mutex_destroy.
22844 * gthr-dce.h (__gthread_mutex_destroy): Call
22845 pthread_mutex_destroy.
22846 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
22847 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
22848 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
22849
63642d5a
AO
228502008-03-01 Alexandre Oliva <aoliva@redhat.com>
22851
22852 * df-scan.c (df_ref_chain_change_bb): Simplify.
22853 (df_insn_change_bb): Add new_bb argument. Simplify. Call
22854 set_block_for_insn if there's any change.
22855 * df.h ((df_insn_change_bb): Fix prototype.
22856 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
22857 df_insn_change_bb, don't call set_block_for_insn.
22858 * emit-rtl.c (reorder_insns): Likewise.
22859 * haifa-sched.c (move_insn): Likewise.
22860
e0651058
AO
228612008-03-01 Alexandre Oliva <aoliva@redhat.com>
22862
22863 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
22864
d2b6be72
AO
228652008-03-01 Alexandre Oliva <aoliva@redhat.com>
22866
22867 * tree-flow-inline.h (next_readonly_imm_use): Return
22868 NULL_USE_OPERAND_P after the end.
22869
2fb5f2af
RG
228702008-03-01 Richard Guenther <rguenther@suse.de>
22871
22872 PR tree-optimization/35411
22873 * tree-sra.c (sra_build_assignment): Split conversion to
22874 final type to a separate statement if we are not assigning
22875 to a register.
22876
c17ee676
FXC
228772008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
22878
22879 * fold-const.c (fold_convertible_p): Correct the logic to follow
22880 that in fold_convert().
22881
f31c9f09
DG
228822008-02-29 Douglas Gregor <doug.gregor@gmail.com>
22883
22884 PR c++/35315
22885 * tree-inline.c (build_duplicate_type): When we make a
22886 duplicate type, make it unique in the canonical types system.
22887
966e8f4d
TT
228882008-02-29 Tom Tromey <tromey@redhat.com>
22889
22890 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
22891 input_file_stack_history, input_file_stack_restored): Remove.
22892 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
22893 * input.h (struct file_stack): Remove.
22894 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
22895 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
22896 Likewise.
22897 * diagnostic.h (struct diagnostic_context) <last_module>: Change
22898 type.
22899 (diagnostic_last_module_changed): Add 'map' argument.
22900 (diagnostic_set_last_function): Likewise.
22901 * diagnostic.c (undiagnostic_report_current_module): Iterate using
22902 line map, not input_file_stack.
22903 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
22904
3cbe0ba6
PB
229052008-02-29 Paul Brook <paul@codesourcery.com>
22906
22907 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
22908
d96ae4d4
PB
229092008-02-29 Paul Brook <paul@codesourcery.com>
22910
22911 * config/arm/ieee754-df.S (muldf3): Use RET macros.
22912
5be891a4
RG
229132008-02-29 Richard Guenther <rguenther@suse.de>
22914
22915 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
22916 vn_lookup_or_add.
22917 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
22918 value for comparing for a store match.
22919 (simplify_unary_expression): Do nothing for SSA_NAMEs.
22920 (try_to_simplify): Do not do a full-blown reference lookup.
22921
b0fbea13
KK
229222008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
22923
22924 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
22925 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
22926
22927 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
22928
0c96231b
SP
229292008-02-29 Sebastian Pop <sebastian.pop@amd.com>
22930
22931 * tree-loop-linear.c (try_interchange_loops): Compare memory access
22932 strides against cache sizes.
22933
d973ac5a
KK
229342008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
22935
22936 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
22937 constant to fpul.
22938
4613543f
RS
229392008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
22940
22941 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
22942 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
22943 is smaller than the original promoted value.
22944 (simplify_subreg): If OP is a SUBREG, try to preserve its
22945 SUBREG_PROMOTED_VAR_P information.
22946
cbfb21c1
SB
229472008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
22948
22949 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
22950 (VN_INFO_GET): Allocate new objects on the obstack.
22951 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
22952 for rpo_numbers_temp, for consistency.
22953 (free_scc_vn): Free the obstack.
22954
dea61d92
SP
229552008-02-28 Sebastian Pop <sebastian.pop@amd.com>
22956
22957 * doc/invoke.texi: Document -ftree-loop-distribution.
22958 * tree-loop-distribution.c: New.
22959 * tree-pass.h (pass_loop_distribution): New.
22960 * graphds.h (struct graph): Add htab_t indices.
22961 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
22962 * tree-vectorizer.c (rename_variables_in_loop): Extern.
22963 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
22964 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
22965 * tree-data-ref.c (debug_data_dependence_relations): New.
22966 (dump_data_dependence_relation): Also print data references.
22967 (free_data_ref): Extern.
22968 (same_access_functions): Moved...
22969 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
22970 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
22971 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
22972 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
22973 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
22974 (stmts_from_loop): Skip LABEL_EXPR.
5ce0e197
UB
22975 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
22976 New.
dea61d92
SP
22977 (build_rdg): Initialize rdg->indices htab.
22978 (free_rdg, stores_from_loop, ref_base_address,
22979 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
22980 have_similar_memory_accesses_1, ref_base_address_1,
22981 remove_similar_memory_refs): New.
22982 * tree-data-ref.h: Depend on tree-chrec.h.
22983 (debug_data_dependence_relations, free_data_ref): Declared.
22984 (same_access_functions): ... here.
5ce0e197
UB
22985 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
22986 New.
dea61d92
SP
22987 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
22988 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
22989 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
22990 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
22991 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
22992 rdg_vertex_for_stmt): Declared.
22993 (struct rdg_edge): Add level.
22994 (RDGE_LEVEL): New.
22995 (free_rdg, stores_from_loop, remove_similar_memory_refs,
5ce0e197
UB
22996 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
22997 Declared.
dea61d92
SP
22998 (rdg_has_similar_memory_accesses): New.
22999 * tree-vect-analyze.c: Remove unused static decls.
23000 * lambda.h (dependence_level): New.
23001 * common.opt (ftree-loop-distribution): New.
22129589 23002 * tree-flow.h (mark_virtual_ops_in_bb,
dea61d92
SP
23003 slpeel_tree_duplicate_loop_to_edge_cfg,
23004 rename_variables_in_loop): Declared.
23005 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
23006 (OBJS-common): Add tree-loop-distribution.o.
23007 (tree-loop-distribution.o): New rule.
23008 * tree-cfg.c (mark_virtual_ops_in_bb): New.
23009 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
23010 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
23011
dde75838
JM
230122008-02-28 Joseph Myers <joseph@codesourcery.com>
23013
23014 PR target/33963
23015 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
23016 other than structures and unions.
23017
3b302421
RG
230182008-02-28 Richard Guenther <rguenther@suse.de>
23019
23020 Revert:
23021 2008-02-26 Richard Guenther <rguenther@suse.de>
23022
23023 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23024 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23025 (lookup_decl_from_uid): Declare.
23026 (remove_decl_from_map): Likewise.
23027 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23028 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23029 (decl_for_uid_map): New global hashtable mapping DECL_UID
23030 to the decl tree.
23031 (init_ttree): Allocate it.
23032 (insert_decl_to_uid_decl_map): New helper function.
23033 (make_node_stat): Insert new decls into the map.
23034 (copy_node_stat): Likewise.
23035 (lookup_decl_from_uid): New function.
23036 (remove_decl_from_map): Likewise.
23037 (print_decl_for_uid_map_statistics): New helper.
23038 (dump_tree_statistics): Call it.
23039
23040 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23041 (referenced_var_iterator): Adjust.
23042 (FOR_EACH_REFERENCED_VAR): Adjust.
23043 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23044 (num_referenced_vars): Adjust.
23045 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23046 (first_referenced_var): Remove.
23047 (end_referenced_vars_p): Likewise.
23048 (next_referenced_var): Likewise.
23049 (referenced_var_iterator_set): New helper function.
23050 * tree-dfa.c (referenced_var_lookup): Adjust.
23051 (referenced_var_check_and_insert): Likewise.
23052 (remove_referenced_var): Likewise.
23053 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23054 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23055 (verify_call_clobbering): Likewise.
23056 (verify_memory_partitions): Likewise.
23057 (init_tree_ssa): Allocate bitmap instead of hashtable for
23058 referenced_vars.
23059 (delete_tree_ssa): Adjust.
23060 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23061 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23062 (compute_tag_properties): Likewise.
23063 (set_initial_properties): Likewise.
23064 (find_partition_for): Likewise.
23065 (update_reference_counts): Likewise.
23066 (dump_may_aliases_for): Likewise.
23067 * tree-ssa-operands.c (add_virtual_operand): Likewise.
23068 (add_call_clobber_ops): Likewise.
23069 (add_call_read_ops): Likewise.
23070 (get_asm_expr_operands): Likewise.
23071 * tree-into-ssa.c (dump_decl_set): Likewise.
23072 (update_ssa): Likewise.
23073 * tree-sra.c (scan_function): Likewise.
23074 (decide_instantiations): Likewise.
23075 (scalarize_parms): Likewise.
23076 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23077 (dsa_named_for): Likewise.
23078 * tree-ssa-structalias.c (update_alias_info): Likewise.
23079 (merge_smts_into): Likewise.
23080
2a1ed4fc
DD
230812008-02-27 David Daney <ddaney@avtrex.com>
23082
23083 PR target/34409
23084 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
23085 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
23086 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
23087 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
23088 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
23089
c92712d1
UB
230902008-02-27 Uros Bizjak <ubizjak@gmail.com>
23091
23092 PR target/25477
23093 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
23094 (BUILT_IN_NEXTTOWARD): Remove.
23095 (BUILT_IN_NEXTTOWARDF): Ditto.
23096 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
23097 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
23098
a8bafc43
TT
230992008-02-27 Tom Tromey <tromey@redhat.com>
23100
23101 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
23102 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
23103
8220334a
JB
231042008-02-27 Jan Beulich <jbeulich@novell.com>
23105
23106 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
23107 update the respective field on newdecl.
23108
8bf6e270
RE
231092008-02-27 Revital Eres <eres@il.ibm.com>
23110
23111 PR rtl-optimization/34999
23112 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
23113 crossing edges that ends with a call insn.
23114 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
23115 call insn and clear the EDGE_CROSSING flag of the crossing edge
23116 when fixing fallthru edges.
23117
7fb52af2
RG
231182008-02-27 Richard Guenther <rguenther@suse.de>
23119
3b302421 23120 PR middle-end/35390
7fb52af2
RG
23121 * fold-const.c (fold_unary): Return the correct argument,
23122 converted to the result type.
23123
70582b3a
RG
231242008-02-27 Richard Guenther <rguenther@suse.de>
23125
23126 PR middle-end/34971
23127 * expr.c (expand_expr_real_1): Assert on rotates that operate
23128 on partial modes.
23129 * fold-const.c (fold_binary): Use the types precision, not the
23130 bitsize of the mode if folding rotate expressions. Build rotates
23131 only for full modes.
23132
a25a8f3b
JJ
231332008-02-27 Jakub Jelinek <jakub@redhat.com>
23134
23135 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
23136 and CPP_PRAGMA_EOL.
23137 * c-pragma.c (pragma_ns_name): New typedef.
23138 (registered_pp_pragmas): New variable.
23139 (c_pp_lookup_pragma): New function.
23140 (c_register_pragma_1): If flag_preprocess_only, do nothing
23141 for non-expanded pragmas, for expanded ones push pragma's
23142 namespace and name into registered_pp_pragmas vector.
23143 (c_invoke_pragma_handler): Register OpenMP pragmas even when
23144 flag_preprocess_only, don't register GCC pch_preprocess
23145 pragma if flag_preprocess_only.
23146 * c-opts.c (c_common_init): Call init_pragma even if
23147 flag_preprocess_only.
23148 * c-pragma.c (c_pp_lookup_pragma): New prototype.
23149 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
23150 cpp_register_pragma if flag_preprocess_only.
23151
369239ef
RW
231522008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23153
23154 PR c/28800
23155 * c-parser.c (c_parser_translation_unit): Warn for empty
23156 translation unit, not empty source file.
23157
f5c630c3
PB
231582008-02-26 Paul Brook <paul@codesourcery.com>
23159
23160 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
23161 operand for Thumb-2.
23162 * config/arm/arm.h (reg_class): Add CORE_REGS.
23163 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
23164 (BASE_REG_CLASS): Use CORE_REGS.
23165 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
23166 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
23167 (REGNO_OK_FOR_INDEX_P): Exclude SP.
23168 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
23169 ARM_REGNO_OK_FOR_INDEX_P.
23170 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
23171 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
23172 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
23173 (ldm/stm peepholes): Ditto.
23174 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
23175 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
23176 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
23177 * config/arm/constraints.md: Enable "k" constraint on ARM.
23178
0d158b6e
BE
231792008-02-27 Ben Elliston <bje@au.ibm.com>
23180
23181 * config/rs6000/rs6000.c: Annotate cache line size field in all
23182 instances of struct processor_costs.
23183
7d817ebc
DE
231842008-02-26 David Edelsohn <edelsohn@gnu.org>
23185
23186 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
23187 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
23188 jump_bypass): New counters.
23189 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
23190 * dce.c (gate_ud_dce): Same.
23191 (gate_fast_dce): Same.
23192 * dse.c (gate_dse1): New function.
23193 (gate_dse2): New function.
23194 (gate_dse): Merge results of new gate functions.
23195 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
23196 (gate_handle_jump_bypass): Add dbg_cnt.
23197 (gate_handle_gcse): Add dbg_cnt.
23198 * ifcvt.c (gate_handle_if_conversion): Same.
23199 (gate_handle_if_after_combine): Same.
23200 (gate_handle_if_after_reload): Same.
23201 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
23202
a19b7d46
EW
232032008-02-26 Edmar Wienskoski <edmar@freescale.com>
23204
23205 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
23206 line sizes.
23207 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
23208
317c435f
JM
232092008-02-26 Jason Merrill <jason@redhat.com>
23210
23211 PR c++/35315
22129589 23212 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
317c435f
JM
23213 alone if it's the naming decl for the type's main variant.
23214
2d593c86
TT
232152008-02-26 Tom Tromey <tromey@redhat.com>
23216
23217 * system.h (USE_MAPPED_LOCATION): Poison.
23218 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
23219 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
23220 (make_goto_expr_edges): Likewise.
23221 (remove_bb): Likewise.
23222 (execute_warn_function_return): Likewise.
23223 * basic-block.h (struct edge_def) <goto_locus>: Change type to
23224 location_t.
23225 * c-common.c (fname_decl): Remove old location code.
23226 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
23227 location code.
23228 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
23229 variant.
23230 (ASM_INPUT_SOURCE_LOCATION): Likewise.
23231 (gen_rtx_ASM_INPUT): Likewise.
23232 (gen_rtx_ASM_INPUT_loc): Likewise.
23233 (get_rtx_asm_OPERANDS): Remove.
23234 * cfglayout.c (insn_locators_alloc): Remove old location code.
23235 (set_curr_insn_source_location): Likewise.
23236 (curr_insn_locator): Likewise.
23237 * print-tree.c (print_node): Remove old location code.
23238 * tree-mudflap.c (mf_varname_tree): Remove old location code.
23239 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
23240 * cfgexpand.c (expand_gimple_cond_expr): Don't use
23241 location_from_locus.
23242 (construct_exit_block): Remove old location code.
23243 * emit-rtl.c (force_next_line_note): Remove old location code.
23244 * profile.c (branch_prob): Remove old location code.
23245 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
23246 LOC_LINE): Remove old-location variants.
23247 * langhooks.c (lhd_print_error_function): Remove old location
23248 code.
23249 * configure, config.in: Rebuilt.
23250 * configure.ac (--enable-mapped-location): Remove.
23251 * c-decl.c (c_init_decl_processing): Remove old location code.
23252 (finish_function): Likewise.
23253 * recog.c (decode_asm_operands): Remove old location code.
23254 * c-pch.c (c_common_read_pch): Remove old location code.
23255 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
23256 variants.
23257 * gimple-low.c (lower_function_body): Remove old location code.
23258 * toplev.c (unknown_location): Remove.
23259 (push_srcloc): Remove old-location variant.
23260 (process_options): Remove old location code.
23261 (lang_dependent_init): Likewise.
23262 * input.h (UNKNOWN_LOCATION): Move definition.
23263 (location_t): Undeprecate.
23264 (source_locus): Remove.
23265 (location_from_locus): Remove.
23266 (struct location_s): Remove.
23267 Remove all old-location code.
23268 (input_line, input_filename): Remove.
23269 * final.c (final_scan_insn): Remove old location code.
23270 * diagnostic.c (diagnostic_build_prefix): Remove
23271 USE_MAPPED_LOCATION test.
23272 * tree.h (gimple_stmt) <locus>: Now a location_t.
23273 (tree_exp) <locus>: Likewise.
23274 (DECL_IS_BUILTIN): Remove old-location variant.
23275 (annotate_with_file_line, annotate_with_locus): Likewise.
23276 (expr_locus, set_expr_locus): Update.
23277 * tree.c (build1_stat): Remove old location code.
23278 (last_annotated_node): Remove.
23279 (annotate_with_file_line): Remove old-location variant.
23280 (annotate_with_locus): Likewise.
23281 (expr_location): Remove old location code.
23282 (set_expr_location): Likewise.
23283 (expr_has_location): Likewise.
23284 (expr_locus): Likewise.
23285 (set_expr_locus): Likewise.
23286 (expr_filename): Don't use location_from_locus.
23287 (expr_lineno): Likewise.
23288 * rtl-error.c (location_for_asm): Remove old location code.
23289 * c-lex.c (cb_line_change): Remove old location code.
23290 (fe_file_change): Likewise.
23291 (cb_def_pragma): Likewise.
23292 (c_lex_with_flags): Likewise.
23293 * gengtype.c (do_typedef): Don't special-case location types.
23294 (define_location_structures): Remove.
23295 (main): Don't call define_location_structures.
23296 * tree-pretty-print.c (dump_implicit_edges): Remove old location
23297 code.
23298
4f01eeb4
MLI
232992008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23300
cd7e0bd4 23301 PR 26264
4f01eeb4
MLI
23302 * builtins.def (BUILT_IN_STDARG_START): Remove.
23303 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
23304 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
23305 * tree-inline.c (inline_forbidden_p_1): Likewise.
22129589 23306
bbd59cf4
RG
233072008-02-26 Richard Guenther <rguenther@suse.de>
23308
23309 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23310 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23311 (lookup_decl_from_uid): Declare.
23312 (remove_decl_from_map): Likewise.
23313 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23314 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23315 (decl_for_uid_map): New global hashtable mapping DECL_UID
23316 to the decl tree.
23317 (init_ttree): Allocate it.
23318 (insert_decl_to_uid_decl_map): New helper function.
23319 (make_node_stat): Insert new decls into the map.
23320 (copy_node_stat): Likewise.
23321 (lookup_decl_from_uid): New function.
23322 (remove_decl_from_map): Likewise.
23323 (print_decl_for_uid_map_statistics): New helper.
23324 (dump_tree_statistics): Call it.
23325
23326 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23327 (referenced_var_iterator): Adjust.
23328 (FOR_EACH_REFERENCED_VAR): Adjust.
23329 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23330 (num_referenced_vars): Adjust.
23331 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23332 (first_referenced_var): Remove.
23333 (end_referenced_vars_p): Likewise.
23334 (next_referenced_var): Likewise.
23335 (referenced_var_iterator_set): New helper function.
23336 * tree-dfa.c (referenced_var_lookup): Adjust.
23337 (referenced_var_check_and_insert): Likewise.
23338 (remove_referenced_var): Likewise.
23339 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23340 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23341 (verify_call_clobbering): Likewise.
23342 (verify_memory_partitions): Likewise.
23343 (init_tree_ssa): Allocate bitmap instead of hashtable for
23344 referenced_vars.
23345 (delete_tree_ssa): Adjust.
23346 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23347 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23348 (compute_tag_properties): Likewise.
23349 (set_initial_properties): Likewise.
23350 (find_partition_for): Likewise.
23351 (update_reference_counts): Likewise.
23352 (dump_may_aliases_for): Likewise.
23353 * tree-ssa-operands.c (add_virtual_operand): Likewise.
23354 (add_call_clobber_ops): Likewise.
23355 (add_call_read_ops): Likewise.
23356 (get_asm_expr_operands): Likewise.
23357 * tree-into-ssa.c (dump_decl_set): Likewise.
23358 (update_ssa): Likewise.
23359 * tree-sra.c (scan_function): Likewise.
23360 (decide_instantiations): Likewise.
23361 (scalarize_parms): Likewise.
23362 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23363 (dsa_named_for): Likewise.
23364 * tree-ssa-structalias.c (update_alias_info): Likewise.
23365 (merge_smts_into): Likewise.
23366
16302daf
MLI
233672008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23368
23369 PR 34351
23370 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
23371 * c-opts.c (c_common_handle_option): Wall enables
23372 Wvolatile-register-var.
23373 * common.opt: Move Wvolatile-register-var to...
23374 * c.opt: ...here.
22129589 23375
e8fc888d
MLI
233762008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23377
23378 * common.opt (Wlarger-than=): New.
23379 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
23380 -Wlarger-than=.
23381 * opts.c (common_handle_option): Handle -Wlarger-than=.
23382 * optc-gen.awk: Likewise.
23383 * opth-gen.awk: Likewise.
23384 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
23385 * tree-optimize.c (tree_rest_of_compilation): Likewise.
22129589 23386
683d6ff9
MLI
233872008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23388
23389 * c-common.c (match_case_to_enum_1): Add appropriate
23390 OPT_W* parameter to warning.
23391 (c_do_switch_warnings): Likewise.
23392 * c-typeck.c (warning_init): Add one more parameter following
23393 'warning' function.
23394 (push_init_level): Update call to warning_init.
23395 (pop_init_level): Likewise.
23396 (add_pending_init): Likewise.
23397 (output_init_element: Likewise.
23398
369dcbd9
MLI
233992008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23400
23401 PR 28322
23402 * toplev.c (toplev_main): If there are warnings or error, print
23403 errors for ignored options.
23404 * opts.c (ignored_options): New static variable.
23405 (postpone_unknown_option_error): New.
23406 (print_ignored_options): New.
23407 (handle_option): Postpone errors for unknown -Wno-* options.
23408 * opts.h (print_ignored_options): Declare.
22129589 23409
23dc794c
RS
234102008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
23411
23412 * config/mips/mips.md (loadgp_blockage, blockage): Change type
23413 to "ghost".
23414
381a258b
RG
234152008-02-25 Richard Guenther <rguenther@suse.de>
23416
23417 Revert:
23418 2008-02-25 Richard Guenther <rguenther@suse.de>
23419
23420 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23421 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23422 (lookup_decl_from_uid): Declare.
23423 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23424 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23425 (decl_for_uid_map): New global hashtable mapping DECL_UID
23426 to the decl tree.
23427 (init_ttree): Allocate it.
23428 (insert_decl_to_uid_decl_map): New helper function.
23429 (make_node_stat): Insert new decls into the map.
23430 (copy_node_stat): Likewise.
23431 (lookup_decl_from_uid): New function.
23432 (print_decl_for_uid_map_statistics): New helper.
23433 (dump_tree_statistics): Call it.
23434
23435 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23436 (referenced_var_iterator): Adjust.
23437 (FOR_EACH_REFERENCED_VAR): Adjust.
23438 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23439 (num_referenced_vars): Adjust.
23440 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23441 (first_referenced_var): Remove.
23442 (end_referenced_vars_p): Likewise.
23443 (next_referenced_var): Likewise.
23444 (referenced_var_iterator_set): New helper function.
23445 * tree-dfa.c (referenced_var_lookup): Adjust.
23446 (referenced_var_check_and_insert): Likewise.
23447 (remove_referenced_var): Likewise.
23448 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23449 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23450 (verify_call_clobbering): Likewise.
23451 (verify_memory_partitions): Likewise.
23452 (init_tree_ssa): Allocate bitmap instead of hashtable for
23453 referenced_vars.
23454 (delete_tree_ssa): Adjust.
23455 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23456 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23457 (compute_tag_properties): Likewise.
23458 (set_initial_properties): Likewise.
23459 (find_partition_for): Likewise.
23460 (update_reference_counts): Likewise.
23461 (dump_may_aliases_for): Likewise.
23462 * tree-ssa-operands.c (add_virtual_operand): Likewise.
23463 (add_call_clobber_ops): Likewise.
23464 (add_call_read_ops): Likewise.
23465 (get_asm_expr_operands): Likewise.
23466 * tree-into-ssa.c (dump_decl_set): Likewise.
23467 (update_ssa): Likewise.
23468 * tree-sra.c (scan_function): Likewise.
23469 (decide_instantiations): Likewise.
23470 (scalarize_parms): Likewise.
23471 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23472 (dsa_named_for): Likewise.
23473 * tree-ssa-structalias.c (update_alias_info): Likewise.
23474 (merge_smts_into): Likewise.
23475
89453ec7
JB
234762008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
23477
23478 PR fortran/29549
23479 * doc/invoke.texi (-fcx-limited-range): Document new option.
23480 * toplev.c (process_options): Handle -fcx-fortran-rules.
cd7e0bd4 23481 * common.opt: Add documentation for -fcx-fortran-rules.
89453ec7 23482
8cc6d3e0
JB
234832008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
23484
23485 PR c/35162
23486 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
23487 actual behaviour and C99.
22129589 23488
cd679487
BE
234892008-02-26 Ben Elliston <bje@au.ibm.com>
23490
23491 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
23492 (ASM_CPU_POWER6_SPEC): Likewise.
23493 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
23494 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
23495 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
23496
7660c722
RG
234972008-02-25 Richard Guenther <rguenther@suse.de>
23498
23499 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
23500 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
23501 (lookup_decl_from_uid): Declare.
23502 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
23503 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
23504 (decl_for_uid_map): New global hashtable mapping DECL_UID
23505 to the decl tree.
23506 (init_ttree): Allocate it.
23507 (insert_decl_to_uid_decl_map): New helper function.
23508 (make_node_stat): Insert new decls into the map.
23509 (copy_node_stat): Likewise.
23510 (lookup_decl_from_uid): New function.
23511 (print_decl_for_uid_map_statistics): New helper.
23512 (dump_tree_statistics): Call it.
23513
23514 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
23515 (referenced_var_iterator): Adjust.
23516 (FOR_EACH_REFERENCED_VAR): Adjust.
23517 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
23518 (num_referenced_vars): Adjust.
23519 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
23520 (first_referenced_var): Remove.
23521 (end_referenced_vars_p): Likewise.
23522 (next_referenced_var): Likewise.
23523 (referenced_var_iterator_set): New helper function.
23524 * tree-dfa.c (referenced_var_lookup): Adjust.
23525 (referenced_var_check_and_insert): Likewise.
23526 (remove_referenced_var): Likewise.
23527 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
23528 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23529 (verify_call_clobbering): Likewise.
23530 (verify_memory_partitions): Likewise.
23531 (init_tree_ssa): Allocate bitmap instead of hashtable for
23532 referenced_vars.
23533 (delete_tree_ssa): Adjust.
23534 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
23535 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
23536 (compute_tag_properties): Likewise.
23537 (set_initial_properties): Likewise.
23538 (find_partition_for): Likewise.
23539 (update_reference_counts): Likewise.
23540 (dump_may_aliases_for): Likewise.
23541 * tree-ssa-operands.c (add_virtual_operand): Likewise.
23542 (add_call_clobber_ops): Likewise.
23543 (add_call_read_ops): Likewise.
23544 (get_asm_expr_operands): Likewise.
23545 * tree-into-ssa.c (dump_decl_set): Likewise.
23546 (update_ssa): Likewise.
23547 * tree-sra.c (scan_function): Likewise.
23548 (decide_instantiations): Likewise.
23549 (scalarize_parms): Likewise.
23550 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
23551 (dsa_named_for): Likewise.
23552 * tree-ssa-structalias.c (update_alias_info): Likewise.
23553 (merge_smts_into): Likewise.
23554
2e4e39f6
AK
235552008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
23556
23557 PR target/35258
23558 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
23559 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
23560 * alias.h (nonoverlapping_memrefs_p): Likewise.
23561
891984af
JB
235622008-02-25 Jan Beulich <jbeulich@novell.com>
23563
c92712d1 23564 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
891984af
JB
23565 * config/i386/netware-libgcc.exp: Add __bswap?i2,
23566 __emultls_get_address, __emultls_register_common,
23567 __floatundi?f, and _Unwind_GetIPInfo.
23568 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
23569 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
23570 (gen_regparm_prefix): Likewise.
23571 (i386_nlm_encode_section_info): Sync with
23572 config/i386/winnt.c:i386_pe_encode_section_info().
23573 (i386_nlm_maybe_mangle_decl_assembler_name): New.
23574 i386_nlm_mangle_decl_assembler_name): New.
23575 (netware_override_options): New.
23576 * config/i386/netware.h (netware_override_options): Declare.
23577 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
23578 (i386_nlm_mangle_decl_assembler_name): Declare.
23579 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
23580
98266db0
BE
235812008-02-25 Ben Elliston <bje@au.ibm.com>
23582
23583 PR other/32948
23584 * c-decl.c (grokdeclarator): Remove unused local variables
23585 `typedef_type' and `type_as_written'.
23586 * bb-reorder.c
23587 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
23588 unused local variable `has_hot_blocks'.
23589 (fix_crossing_conditional_branches): Remove unused local variable
23590 `prev_bb'.
22129589 23591
93e50125
UB
235922008-02-25 Uros Bizjak <ubizjak@gmail.com>
23593
23594 PR middle-end/19984
23595 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
23596 using DEF_C99_BUILTIN.
23597 (BUILT_IN_NANF): Ditto.
23598 (BUILT_IN_NANL): Ditto.
23599
0de5a32f 236002008-02-25 Ayal Zaks <zaks@il.ibm.com>
433331d4 23601 Revital Eres <eres@il.ibm.com>
0de5a32f
AZ
23602
23603 * modulo-sched.c (calculate_must_precede_follow): Address TODO
23604 regarding the order of two dependent insns in the same row.
23605
d4cba6d4
EB
236062008-02-25 Eric Botcazou <ebotcazou@adacore.com>
23607
23608 * stor-layout.c (layout_decl): Do not bump the alignment of a
23609 bit-field to more than byte alignment if it is packed.
23610
642639ce
DE
236112008-02-24 David Edelsohn <edelsohn@gnu.org>
23612
23613 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
23614 e300c2 and e300c3.
23615
faebccf9
DN
236162008-02-24 Diego Novillo <dnovillo@google.com>
23617
23618 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
23619
23620 PR 33738
23621 * tree-vrp.c (vrp_evaluate_conditional): With
23622 -Wtype-limits, emit a warning when comparing against a
23623 constant outside the natural range of OP0's type.
23624 * c.opt (Wtype-limits): Move ...
23625 * common.opt (Wtype-limits): ... here.
23626
88c7f01b 236272008-02-24 Edmar Wienskoski <edmar@freescale.com>
fa41c305
EW
23628
23629 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
23630 * config/rs6000/e300c2c3.md: New file.
23631 * config/rs6000/rs6000.c (processor_costs): Add new costs for
23632 e300c2 and e300c3.
23633 (rs6000_override_options): Add e300c2 and e300c3 cases to
23634 processor_target_table. Do not allow usage of Altivec or Spe
23635 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
23636 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
23637 * config/rs6000/rs6000.h (processor_type): Add
23638 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
23639 (ASM_CPU_SPEC): Add e300c2 and e300c3.
23640 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
23641 and ppce300c3. Include e300c2c3.md.
23642
153fbec8
DE
236432008-02-23 David Edelsohn <edelsohn@gnu.org>
23644
23645 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
23646 instead of TARGET_STRICT_ALIGN.
23647
03d4f106
JM
236482008-02-23 Joseph Myers <joseph@codesourcery.com>
23649
23650 * explow.c (memory_address): Assert that the generated address is
23651 valid.
23652
fb220235
FXC
236532008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
23654
23655 PR target/25477
23656 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
23657 * config/darwin-ppc-ldouble-patch.def: New file.
23658 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
23659 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
23660 SUBTARGET_INIT_BUILTINS if defined.
93e50125
UB
23661 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
23662 New functions.
fb220235 23663
f79db4f6
AP
236642008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
23665
23666 PR rtl-opt/33512
23667 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
23668 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
23669
bb1f73c2
AP
236702008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
23671
23672 PR pch/35027
23673 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
23674 file" warning condtional on -Winvalid-PCH.
23675
8ddcfde1
DJ
236762008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
23677
23678 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
23679
84495fd9
UB
236802008-02-23 Uros Bizjak <ubizjak@gmail.com>
23681
23682 PR target/22076
22129589 23683 PR target/34256
84495fd9
UB
23684 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
23685 prevent reload from using MMX registers.
23686 (*mov<mode>_internal): Ditto.
23687 (*movv2sf_internal_rex64): Ditto.
23688 (*movv2sf_internal): Ditto.
23689
73c17ad2
RW
236902008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23691
23692 PR documentation/31569
23693 * doc/install.texi2html: Use makeinfo --no-number-sections.
23694
61dd226f
NF
236952008-02-22 Nathan Froyd <froydnj@codesourcery.com>
23696
23697 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
23698 ensure that we can address an entire entity > 8 bytes. Don't
23699 generate reg+reg addressing for such data.
23700
2165fd38
NF
237012008-02-22 Nathan Froyd <froydnj@codesourcery.com>
23702
23703 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
23704 strings when optimizing for size, unless the target cares about
23705 alignment.
23706
ad5ebb34
TT
237072008-02-22 Tom Tromey <tromey@redhat.com>
23708
23709 * regclass.c (current_pass): Remove declaration.
23710
34d02d17
AS
237112008-02-22 Anatoly Sokolov <aesok@post.ru>
23712
23713 * config/avr/libgcc.S (__RAMPZ__): Define.
23714 (__do_copy_data): Add for devices with 128KB code memory.
23715
a4899c01
NF
237162008-02-22 Nathan Froyd <froydnj@codesourcery.com>
23717
23718 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
23719 Use spe_abi.
23720 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
23721
fe82487e
HPN
237222008-02-22 Hans-Peter Nilsson <hp@axis.com>
23723
23724 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
23725 GENNONACR_REGS.
23726
ae311566
RW
237272008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23728
23729 PR c/19999
23730 * c-typeck.c (build_binary_op): Warn about floating point
23731 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
23732
a2db2771
JJ
237332008-02-21 Janis Johnson <janis187@us.ibm.com>
23734
23735 PR target/34526
23736 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
23737 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
23738 add vrsave.
23739 (rs6000_override_options): Set altivec_abi as default, not override,
23740 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
23741 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
23742 is used; use new member spe_abi.
23743 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
23744 spe_abi and altivec_abi.
23745
89fd06fb
TB
237462008-02-22 Tomas Bily <tbily@suse.cz>
23747
23748 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
23749
703fdf5a
RW
237502008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23751
23752 PR bootstrap/35273
23753 * config.build (build_file_translate): Set to `CMD //c' only if
23754 it works.
23755 * Makefile.in (build_file_translate): Improve comment.
23756
0ca16832
JH
237572008-02-21 Jan Hubicka <jh@suse.cz>
23758
23759 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
23760 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
23761 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
23762
c754abbf
MM
237632008-02-21 Michael Matz <matz@suse.de>
23764
23765 PR target/35264
23766 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
23767
85845bb9
UB
237682008-02-21 Uros Bizjak <ubizjak@gmail.com>
23769
23770 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
23771 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
23772 as insn constraint.
23773 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
23774 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
23775 SSE_VEC_FLOAT_MODE_P as insn constraint.
23776 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
23777 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
23778 sse4a_movntdf using MODEF mode iterator.
23779 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
23780 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
23781 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
23782 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
23783 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
23784 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
23785 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
23786
dedd42d5
RG
237872008-02-21 Richard Guenther <rguenther@suse.de>
23788
23789 * tree.def (PAREN_EXPR): New tree code.
23790 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
23791 and PAREN_EXPR.
23792 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
23793 * expr.c (expand_expr_real_1): Likewise.
23794 * tree-inline.c (estimate_num_insns_1): Likewise.
23795 * tree-complex.c (expand_complex_move): Likewise.
23796 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
23797 as plain x.
23798
7a3cb3ab
KK
237992008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
23800
23801 PR target/35225
23802 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
23803
6d4d15b8
KK
238042008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
23805
23806 PR target/35190
23807 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
23808
23809 * config/sh/sh.c (find_barrier): Don't go past
23810 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
23811
6d4a8967
DD
238122008-02-20 DJ Delorie <dj@redhat.com>
23813
23814 * config/h8300/h8300.md (insv): Force source operand to be a register.
23815
23816 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
23817 as a jump, not as a plain insn.
22129589 23818
a214518f
SP
238192008-02-20 Seongbae Park <seongbae.park@gmail.com>
23820
23821 * doc/invoke.texi (Warning Options): Add new option
23822 -Wframe-larger-than=.
23823 (-Wframe-larger-than): Document.
23824
23825 * flags.h (warn_frame_larger_than, frame_larger_than_size):
23826 Add declarations for new option variables.
23827
23828 * final.c (final_start_function): Check the frame size
23829 before emission and issue a Wframe-larger-than warning.
23830
23831 * opts.c (warn_frame_larger_than, frame_larger_than_size):
23832 Add definitions for new option variables.
23833 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
23834
23835 * common.opt (Wframe-larger-than=): New option.
23836
993ac7c7
UB
238372008-02-20 Uros Bizjak <ubizjak@gmail.com>
23838
23839 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
23840 (<sse>_div<mode>3): Ditto.
23841 (<sse>_vmdiv<mode>3): Ditto.
23842 (<sse>_vmsqrt<mode>2): Ditto.
23843 (*smax<mode>3): Ditto.
23844 (sse5_frcz<mode>2): Ditto.
23845 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
23846 as insn constraint.
23847
4cd8e76f
RG
238482008-02-20 Richard Guenther <rguenther@suse.de>
23849
23850 PR middle-end/35265
23851 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
23852 be happy with INTEGRAL_TYPE_P.
23853
41bb1f06
RG
238542008-02-20 Richard Guenther <rguenther@suse.de>
23855
23856 * fold-const.c (split_tree): Associate floatig-point expressions
23857 if flag_associative_math is set.
23858
2dc0f633
RG
238592008-02-20 Richard Guenther <rguenther@suse.de>
23860
23861 * tree.h (fold_real_zero_addition_p): Declare.
23862 * fold-const.c (fold_real_zero_addition_p): Export.
23863 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
23864 floating-point operations with zero and one.
23865
1c8bd6a3
PB
238662008-02-20 Paolo Bonzini <bonzini@gnu.org>
23867
4b40b2a5
UB
23868 * doc/install.texi: Correct references to CFLAGS, replacing them
23869 with BOOT_CFLAGS. Document flags used during bootstrap for
23870 target libraries.
22129589 23871
d6023b50
UB
238722008-02-20 Uros Bizjak <ubizjak@gmail.com>
23873
23874 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
23875 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
23876 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
23877 insn constraint.
23878 (smin<mode>3): Ditto from similar patterns.
23879 (smax<mode>3): Ditto.
23880 (*ieee_smin<mode>3): Ditto.
23881 (*ieee_smax<mode>3): Ditto.
23882 * config/i386/sse.md (sse): New mode attribute.
23883 (mov<mode>): Macroize expander from movv4sf and movv2df using
23884 SSEMODEF2P mode iterator.
23885 (<sse>_movnt<mode>): Ditto from similar patterns. Use
23886 SSE_VEC_FLOAT_MODE_P as insn constraint.
23887 (storent<mode>): Ditto.
23888 (storent<mode>): Macroize expander from storentsf and storentdf using
23889 MODEF mode iterator.
23890 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
23891 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
23892 (abs<mode>2): Ditto from similar patterns.
23893 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
23894 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
23895 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
23896 (<sse>_vmsqrt<mode>2): Ditto.
23897 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
23898 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
23899 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
23900 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
23901 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
23902 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
23903 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
23904 insn constraint.
23905 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
23906 iterator and SSE_FLOAT_MODE_P as insn constraint.
23907 (<sse>_ucomi): Ditto from similar patterns.
23908 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
23909 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
23910 SSE_VEC_FLOAT_MODE_P as insn constraint.
23911 (vcond<mode>): Ditto from similar patterns.
23912 (and<mode>3, *and<mode>3): Ditto.
23913 (<sse>_nand<mode>3): Ditto.
23914 (ior<mode>3, *ior<mode>3): Ditto.
23915 (xor<mode>3, *xor<mode>3): Ditto.
23916 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
23917 iterator and SSE_FLOAT_MODE_P as insn constraint.
23918 (*nand<mode>3): Ditto from similar patterns.
23919 (*ior<mode>3): Ditto.
23920 (*xor<mode>3): Ditto.
23921
76a893cf
IR
239222008-02-20 Ira Rosen <irar@il.ibm.com>
23923
23924 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
23925 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
23926 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
23927
daac0317
JH
239282008-02-19 Jan Hubicka <jh@suse.cz>
23929
a8971bdb
UB
23930 * predict.c (tree_bb_level_predictions): Remove variable next
23931 mistakely introduced by previous commit.
daac0317 23932
3e4b9ad0
JH
239332008-02-19 Jan Hubicka <jh@suse.cz>
23934
23935 * predict.c (predict_paths_leading_to): Rewrite.
23936 (predict_paths_for_bb): New.
23937 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
23938
a0e527e3
RW
239392008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23940
23941 PR bootstrap/35218
23942 * Makefile.in (build_file_translate): New.
23943 (gcc-vers.texi): Use it for translating $(abs_srcdir).
23944 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
23945 * configure.ac (build_file_translate): Substitute it.
23946 * configure: Regenerate.
23947
9d5cee3d
JH
239482008-02-19 Jan Hubicka <jh@suse.cz>
23949
23950 PR rtl-optimization/34408
3e4b9ad0
JH
23951 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
23952 invalid sharing.
9d5cee3d 23953
8723e2fe
JH
239542008-02-19 Jan Hubicka <jh@suse.cz>
23955
23956 PR middle-end/28779
3e4b9ad0
JH
23957 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
23958 call_expr.
8723e2fe 23959
5ba5440f
L
239602008-02-19 H.J. Lu <hongjiu.lu@intel.com>
23961
23962 PR Ada/35186
23963 * config/i386/i386-modes.def: Revert the last DI alignment
23964 change until Ada people can look into it.
23965
c01c261d
NC
239662008-02-19 Nick Clifton <nickc@redhat.com>
23967
23968 * opts.c (print_specific_help): Fix typo in --help text.
23969
2e834acb
JJ
239702008-02-19 Jakub Jelinek <jakub@redhat.com>
23971
23972 PR target/35239
23973 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
23974 32-bit inline asm without asm alternatives for host GCC < 3.0.
23975
9cadd7f7
RG
239762008-02-19 Richard Guenther <rguenther@suse.de>
23977
23978 PR tree-optimization/34989
23979 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
23980 Allow propagation to INDIRECT_REF if we can simplify only.
23981
ffc30173
MLI
239822008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23983
23984 * c-common.c (warn_for_collisions_1): Use appropriate option when
23985 warning.
23986
b3eaaf1a
NC
239872008-02-19 Nick Clifton <nickc@redhat.com>
23988
23989 PR other/31349
a8971bdb 23990 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
b3eaaf1a
NC
23991 (handle_options): Fix indentation.
23992 (print_filtered_help): If no language-specific options were
23993 displayed tell the user how to list all the options supported by
23994 the language's front-end.
23995 (print_specific_help): Fix indentation and remove duplicate line.
23996 (common_handle_option): Handle the -v option.
23997 For --help enable the display of undocumented options if the -v
23998 switch has been included on the command line.
23999 For --help= check for overlaps in the arguments between the option
24000 classes and the language names and issue a warning when they
24001 cannot be disambiguated.
24002 * c.opt (v): Pass on to the common option handler.
24003
22129589 240042008-02-19 Revital Eres <eres@il.ibm.com>
de82c453
RE
24005
24006 * modulo-sched.c (sms_schedule): Change dump message when
24007 create_ddg function fails.
24008 (try_scheduling_node_in_cycle): Rename row to cycle.
24009 (print_partial_schedule): Rename CYCLE to ROW.
24010
32159434 240112008-02-19 Christian Bruel <christian.bruel@st.com>
a8971bdb
UB
24012 Zdenek Dvorak <ook@ucw.cz>
24013
24014 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
24015
0e93e1b4
UB
240162008-02-19 Uros Bizjak <ubizjak@gmail.com>
24017
24018 PR target/33555
24019 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
24020 (*x86_movdicc_0_m1_se): Ditto.
24021
02d353cf
UB
240222008-02-19 Uros Bizjak <ubizjak@gmail.com>
24023
24024 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
24025 (CMPtype): Define as __gcc_CMPtype.
24026 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
24027 (CMPtype): Define as __gcc_CMPtype.
24028
35dee980
HPN
240292008-02-19 Hans-Peter Nilsson <hp@axis.com>
24030
24031 Support valgrind 3.3 for --enable-checking=valgrind.
24032 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
24033 here.
24034 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
24035 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
24036 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
24037 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
24038 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
24039 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
24040 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
24041 respectively.
24042 * ggc-zone.c: Similar.
24043 * ggc-page.c: Similar.
24044
27e03cf1
PB
240452008-02-19 Paul Brook <paul@codesourcery.com>
24046
24047 PR target/35071
24048 * config/arm/ieee754-df.S: Fix do_it typo.
24049 * config/arm/ieee754-sf.S: Fix do_it typo.
24050
287a7d41
L
240512008-02-18 H.J. Lu <hongjiu.lu@intel.com>
24052
24053 PR target/35189
24054 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
24055 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
24056 (OPTION_MASK_ISA_SSE_SET): Likewise.
24057 (OPTION_MASK_ISA_SSE2_SET): Likewise.
24058 (OPTION_MASK_ISA_SSE3_SET): Likewise.
24059 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
24060 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
24061 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
24062 (OPTION_MASK_ISA_SSE4_SET): Likewise.
24063 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
24064 (OPTION_MASK_ISA_SSE5_SET): Likewise.
24065 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
24066 (OPTION_MASK_ISA_MMX_UNSET): Updated.
24067 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
24068 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
24069 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
24070 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
24071 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
24072 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
24073 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
24074 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
24075 (OPTION_MASK_ISA_SSE4): Removed.
24076 (ix86_handle_option): Turn on bits in ix86_isa_flags and
3b509e33 24077 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
287a7d41
L
24078 (override_options): Don't turn on implied SSE/MMX bits in
24079 ix86_isa_flags.
24080
feaffcaa
L
240812008-02-18 H.J. Lu <hongjiu.lu@intel.com>
24082
24083 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24084 32bit host.
24085
b2ae828d
JY
240862008-02-18 Joey Ye <joey.ye@intel.com>
24087
24088 PR middle-end/34921
24089 * tree-nested.c (insert_field_into_struct): Set type alignment
24090 to field alignment if the former is less than the latter.
24091
8d855c3d
JJ
240922008-02-18 Jakub Jelinek <jakub@redhat.com>
24093
24094 * BASE-VER: Set to 4.4.0.
24095
923158be
RW
240962008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24097
24098 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
24099 * doc/cfg.texi: Likewise.
24100 * doc/extend.texi: Likewise.
24101 * doc/gty.texi: Likewise.
24102 * doc/invoke.texi: Likewise.
24103 * doc/loop.texi: Likewise.
24104 * doc/md.texi: Likewise.
24105 * doc/passes.texi: Likewise.
24106 * doc/rtl.texi: Likewise.
24107 * doc/sourcebuild.texi: Likewise.
24108 * doc/tm.texi: Likewise.
24109 * doc/tree-ssa.texi: Likewise.
24110
f0a77246
RG
241112008-02-17 Richard Guenther <rguenther@suse.de>
24112
24113 PR middle-end/35227
24114 * tree-complex.c (init_parameter_lattice_values): Handle parameters
24115 without default definition.
24116
e09deb14
RG
241172008-02-17 Richard Guenther <rguenther@suse.de>
24118
24119 PR tree-optimization/35231
24120 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
24121 if A | B != 1.
24122
e6528d32
UB
241232008-02-17 Uros Bizjak <ubizjak@gmail.com>
24124
24125 Revert:
22129589 24126 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
e6528d32
UB
24127 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24128 libgcc_cmp_return mode.
24129
93e052a8
MLI
241302008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24131
24132 PR c/28368
24133 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
24134
2a49e6f8
RC
241352008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
24136
24137 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
24138 multilibs.
24139
0ee2ea09
RW
241402008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24141
24142 * doc/c-tree.texi: Use `@.' where appropriate.
24143 * doc/extend.texi: Likewise.
24144 * doc/install.texi: Likewise.
24145 * doc/invoke.texi: Likewise.
24146 * doc/loop.texi: Likewise.
24147 * doc/makefile.texi: Likewise.
24148 * doc/md.texi: Likewise.
24149 * doc/passes.texi: Likewise.
24150 * doc/standards.texi: Likewise.
24151 * doc/tm.texi: Likewise.
24152
ac84c062
JJ
241532008-02-15 Jakub Jelinek <jakub@redhat.com>
24154
24155 PR middle-end/35196
24156 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
24157 in entry_bb.
24158 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
24159 rather than in entry_bb.
24160
6a9e8571
UB
241612008-02-15 Uros Bizjak <ubizjak@gmail.com>
24162
24163 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
24164 libgcc_cmp_return mode.
24165
6837b3b8
JJ
241662008-02-15 Jakub Jelinek <jakub@redhat.com>
24167
24168 PR middle-end/35130
24169 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
24170 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
24171
2e58df6e 241722008-02-15 Richard Guenther <rguenther@suse.de>
6a9e8571 24173 Zdenek Dvorak <ook@ucw.cz>
2e58df6e
RG
24174
24175 PR tree-optimization/35164
24176 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
24177 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
24178 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
24179 Only propagate addresses which do not have abnormal SSA_NAMEs
24180 in their operands.
24181
206598fb
JM
241822008-02-15 Joseph Myers <joseph@codesourcery.com>
24183
24184 PR target/35088
24185 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
24186
18168b3f
JH
241872008-02-15 Jan Hubicka <jh@suse.cz>
24188
24189 PR middle-end/35149
24190 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
24191
6f6b8f81
UB
241922008-02-15 Uros Bizjak <ubizjak@gmail.com>
24193
24194 PR middle-end/34621
24195 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
24196 when calculating alignment_pad.
24197
979c67a5
UB
241982008-02-15 Uros Bizjak <ubizjak@gmail.com>
24199
24200 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
24201 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
24202 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
24203 and STACK_BOUNDARY define.
24204
101e174d
DS
242052008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
24206
24207 PR preprocessor/35061
24208 * c-pragma.c (handle_pragma_pop_macro): Check that
24209 pushed_macro_table has been allocated.
24210
928bc34f
EB
242112008-02-14 Eric Botcazou <ebotcazou@adacore.com>
24212
24213 PR middle-end/35136
24214 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
24215 (force_gimple_operand): Likewise.
24216 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
24217 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
24218 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
24219 (find_interesting_uses_address): Check addressability and alignment
24220 of the base expression only after substituting bases of IVs into it.
24221
a5bfb13a
MM
242222008-02-14 Michael Matz <matz@suse.de>
24223
24224 PR target/34930
24225 * function.c (instantiate_virtual_regs_in_insn): Reload address
24226 before falling back to reloading the whole operand.
24227
b49326f1
AK
242282008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
24229
24230 * config/s390/s390.c (s390_mainpool_start): Emit the pool
24231 before the first section switch note.
24232
021efafc
RW
242332008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24234
346341a4
RW
24235 * doc/bugreport.texi: Update copyright years.
24236 * doc/c-tree.texi: Likewise.
24237 * doc/cfg.texi: Likewise.
24238 * doc/cpp.texi: Likewise.
24239 * doc/cppinternals.texi: Likewise.
24240 * doc/fragments.texi: Likewise.
24241 * doc/frontends.texi: Likewise.
24242 * doc/gcc.texi: Likewise.
24243 * doc/gty.texi: Likewise.
24244 * doc/hostconfig.texi: Likewise.
24245 * doc/implement-c.texi: Likewise.
24246 * doc/libgcc.texi: Likewise.
24247 * doc/loop.texi: Likewise.
24248 * doc/makefile.texi: Likewise.
24249 * doc/options.texi: Likewise.
24250 * doc/passes.texi: Likewise.
24251 * doc/rtl.texi: Likewise.
24252 * doc/sourcebuild.texi: Likewise.
24253 * doc/standards.texi: Likewise.
24254 * doc/tree-ssa.texi: Likewise.
24255 * doc/trouble.texi: Likewise.
24256
021efafc
RW
24257 * doc/extend.texi: Use @: or add comma where appropriate.
24258 * doc/invoke.texi: Likewise.
24259 * doc/tm.texi: Likewise.
24260
583da60a
AM
242612008-02-14 Alan Modra <amodra@bigpond.net.au>
24262
24263 PR target/34393
24264 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
24265 to a reg.
24266
2a6627c2
JN
242672008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
24268
24269 * doc/md.texi (clz, ctz): Add reference.
24270 * doc/rtl.texi (clz, ctz): Likewise.
24271
1b0c753a
RW
242722008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24273
24274 PR other/35148
24275 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
24276 srcdir.
24277
03870a04
AK
242782008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
24279
24280 * config/s390/s390.c (struct constant_pool): New field
24281 emit_pool_after added.
24282 (s390_mainpool_start): Set the emit_pool_after flag according
24283 to the section switch notes.
24284 (s390_mainpool_finish): Consider emit_pool_after when emitting
24285 the literal pool at the end of the function.
24286 (s390_chunkify_start): Force literal pool splits at section
24287 switch notes.
24288
be71b673
MM
242892008-02-13 Michael Matz <matz@suse.de>
24290
24291 PR debug/35065
24292 * var-tracking.c (clobber_variable_part): Correctly traverse the
24293 list.
24294
fed39e22
MLI
242952008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24296
24297 PR 29673
24298 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
24299 Add -fdump-ipa-inline.
24300 * tree-dump.c (dump_files): Remove tree-inlined dump.
24301 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
22129589 24302
8665227f
RG
243032008-02-12 Richard Guenther <rguenther@suse.de>
24304
24305 PR tree-optimization/35171
24306 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
24307 default defs.
24308
8f768a5a
RG
243092008-02-12 Richard Guenther <rguenther@suse.de>
24310
24311 PR middle-end/35163
24312 * fold-const.c (fold_widened_comparison): Use get_unwidened in
24313 value-preserving mode. Disallow final truncation.
24314
81186f7b
EB
243152008-02-12 Eric Botcazou <ebotcazou@adacore.com>
24316
24317 PR middle-end/35136
24318 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
24319 code from here to...
24320 (force_gimple_operand): ...here.
24321
d7b8033f
JJ
243222008-02-12 Jakub Jelinek <jakub@redhat.com>
24323
e4521d11
JJ
24324 PR c++/35144
24325 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
24326 non-compatible pointers.
24327 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
24328 different FIELD_DECLs, try harder by comparing field offsets, sizes
24329 and types.
24330
d7b8033f
JJ
24331 PR inline-asm/35160
24332 * function.c (match_asm_constraints_1): Don't replace the same input
24333 multiple times.
24334
d6f77715
AS
243352008-02-12 Anatoly Sokolov <aesok@post.ru>
24336
24337 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
24338 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
24339 (expand_epilogue): Restore RAMPZ register.
24340 * config/avr/avr.md (RAMPZ_ADDR): New constant.
24341
35b35fd0
KT
243422008-02-11 Kai Tietz <kai.tietz@onevision.com>
24343
40049ccc 24344 * config/i386/cygwin.asm: (__alloca): Correct calling
35b35fd0
KT
24345 convention and alignment.
24346 (__chkstk): Force 8 byte stack alignment.
24347
a6e2d112 243482008-02-11 Uros Bizjak <ubizjak@gmail.com>
f8c5cff4 24349 Richard Guenther <rguenther@suse.de>
a6e2d112
UB
24350
24351 PR tree-optimization/33992
24352 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
24353 the zero we compare against.
24354
40049ccc
UB
243552008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
24356
24357 PR libfortran/35063
24358 * gthr-win32.h (__gthread_mutex_destroy_function): New function
24359 to CloseHandle after unlocking to prevent accumulation of handle
24360 count.
24361
4d811a05
JDA
243622008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24363
24364 PR middle_end/34150
24365 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
24366 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
24367 and update LABEL_NUSES during and after reload.
24368
e37f6a49
SB
243692008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
24370
24371 PR middle-end/34627
a3395528 24372 * combine.c (simplify_if_then_else): Make sure the comparison is
e37f6a49
SB
24373 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
24374
34917a10
RS
243752008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
24376
24377 PR bootstrap/35051
24378 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
24379 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
24380 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
24381 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
24382 * tree.h (get_type_static_bounds): Likewise.
24383
670b0231
RW
243842008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24385
24386 * doc/invoke.texi (Option Summary, C++ Dialect Options)
24387 (Objective-C and Objective-C++ Dialect Options, Warning Options):
24388 Make -Wfoo language annotations match what the compiler outputs.
24389
069c47ee
SL
243902008-02-08 Sa Liu <saliu@de.ibm.com>
24391
22129589 24392 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
069c47ee 24393 intrinsics spu_convts, spu_convtu, spu_convtf.
069c47ee 24394
ccd2a21e
HPN
243952008-02-08 Hans-Peter Nilsson <hp@axis.com>
24396
24397 * doc/extend.texi (Function Attributes) <noinline>: Mention
24398 asm ("") as method to keep calls.
24399
af47e6ac
MLI
244002008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24401
24402 PR other/32754
24403 * doc/options.texi (Options): Replace references to opts.sh with
24404 optc-gen.awk.
24405 * opts-common.c: Likewise.
24406 * optc-gen.awk: Likewise.
22129589 24407
96e2afa8
AK
244082008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
24409
24410 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
24411
244122008-02-07 Richard Henderson <rth@redhat.com>
32891ff6
RH
24413
24414 PR rtl-opt/33410
24415 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
22129589 24416 EXPR_LIST for the REG_EQUAL instead of a comparison with a
32891ff6
RH
24417 funny mode.
24418
c4ae80d9
UB
244192008-02-07 Uros Bizjak <ubizjak@gmail.com>
24420
24421 PR tree-optimization/35085
24422 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
24423 for operand entry oe2 in addition to operand entry oe3 in order to
24424 expose more opportunities for vectorizer sum reduction.
24425
72fb133f
KG
244262008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24427
24428 PR other/35107
24429 * Makefile.in (LIBS): Remove $(GMPLIBS).
24430 (cc1-dummy, cc1): Add $(GMPLIBS).
24431
20a415f8
JH
244322008-02-06 Jan Hubicka <jh@suse.cz>
24433
88b089d5 24434 PR target/23322
20a415f8
JH
24435 * i386.md (moddf_integer): Do not produce partial memory stalls for
24436 targets where it hurts.
24437
cc8d36a1
UB
244382008-02-06 Uros Bizjak <ubizjak@gmail.com>
24439
24440 PR target/35083
24441 * optabs.c (expand_float): Do not check for decimal modes when
24442 expanding unsigned integer through signed conversion.
24443
2ccd9cb2
NC
244442008-02-06 Nick Clifton <nickc@redhat.com>
24445
24446 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
24447 inside the clobber with a match_operand and duplicated operand
24448 number in the constraint.
24449 (ineqbranchsi): Delete redundant comment.
24450
ecb2366e
RC
244512008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
24452
22129589 24453 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
448b96d0
RC
24454 builtin_define ("__USE_INIT_FINI__").
24455 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
24456 -msx multilibs.
ecb2366e
RC
24457 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
24458
ccd4e386
RW
244592008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24460
24461 PR documentation/30330
24462 * doc/invoke.texi (C++ Dialect Options)
24463 (Objective-C and Objective-C++ Dialect Options, Warning Options):
24464 For each warning option -Wfoo that allows -Wno-foo, ensure both
24465 -Wfoo and -Wno-foo are listed in the option index. Fix index
24466 entry of -Wswitch-default, index -Wnormalized= including the
24467 `=', and -Wlarger-than-@var{len} including @var{len}.
24468
def7425b
UB
244692008-02-05 Uros Bizjak <ubizjak@gmail.com>
24470
24471 * config/i386/i386.md (floatunssisf2): Use
24472 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
24473 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
24474 Macroize expander using MODEF mode iterator.
24475
c1e7d240
DN
244762008-02-05 Diego Novillo <dnovillo@google.com>
24477
24478 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
24479
24480 PR 33738
def7425b 24481 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
c1e7d240 24482
3a204175
KG
244832008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24484
24485 PR other/35070
24486 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
24487
7074bc2e
L
244882008-02-05 H.J. Lu <hongjiu.lu@intel.com>
24489
24490 PR target/35084
24491 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
24492 to indicate if a message should be generated.
24493 (init_cumulative_args): Updated.
24494 (function_value_32): Likewise.
24495
0f5098ae
JM
244962008-02-05 Joseph Myers <joseph@codesourcery.com>
24497
24498 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
24499
4a534152
UB
245002008-02-05 Uros Bizjak <ubizjak@gmail.com>
24501
24502 PR target/35083
24503 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
24504 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
24505
3467b230
DN
245062008-02-04 Diego Novillo <dnovillo@google.com>
24507
24508 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
24509
24510 PR 33738
24511 * tree-vrp.c (vrp_evaluate_conditional): With
24512 -Wtype-limits, emit a warning when comparing against a
24513 constant outside the natural range of OP0's type.
24514
22199fd2
RG
245152008-02-04 Richard Guenther <rguenther@suse.de>
24516
24517 PR middle-end/33631
24518 * expr.c (count_type_elements): Give for unions instead of
24519 guessing.
24520
1a1640db
RG
245212008-02-04 Richard Guenther <rguenther@suse.de>
24522
24523 PR middle-end/35043
24524 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
24525 to TYPE_DOMAINs base type instead of using bitsizetype here.
24526
0fcedd9c
JM
245272008-02-03 Jason Merrill <jason@redhat.com>
24528
24529 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
24530
a31cfd58
RW
245312008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24532
24533 PR other/29972
24534 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
24535 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
24536 (RS/6000 and PowerPC Options): Fix typos and markup.
24537 * doc/passes.texi (Tree-SSA passes): Likewise.
24538
6994f254
MM
245392008-02-02 Michael Matz <matz@suse.de>
24540
24541 PR target/35045
24542 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
24543 from record_last_reg_set_info.
24544 (record_last_reg_set_info): Take an RTX argument, iterate over all
24545 constituent hardregs.
24546 (record_last_set_info, record_opr_changes): Change calls to
24547 new signature or to record_last_reg_set_info_regno.
24548
27f56cb1
GP
245492008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
24550
24551 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
24552
3e836a31
HPN
245532008-02-01 Hans-Peter Nilsson <hp@axis.com>
24554
24555 PR rtl-optimization/34773
24556 * reg-notes.def (EQUAL): Mention significance of combination of
24557 REG_EQUAL and REG_RETVAL.
24558 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
24559 insn that has a REG_RETVAL.
24560
d5be1dd4
RS
245612008-02-01 Roger Sayle <roger@eyesopen.com>
24562
24563 PR bootstrap/33781
24564 * configure.ac (--enable-fixed-point): Disable unless explicitly
24565 requested on IRIX.
24566 * configure: Regenerate.
24567
7c9c2f2a
RG
245682008-02-01 Richard Guenther <rguenther@suse.de>
24569
24570 PR other/35042
24571 * invoke.texi (-finline-limit): Remove no longer true parts
24572 of the documentation. Note that there is no default value.
24573
a18c20ec
AP
245742008-02-01 Andrew Pinski <pinskia@gmail.com>
24575 Mark Mitchell <mark@codesourcery.com>
24576 Ben Elliston <bje@au.ibm.com>
24577
24578 PR c/29326
24579 * doc/extend.texi (Other Builtins): Document.
24580
dc9a511d
TB
245812008-01-31 Tom Browder <tom.browder@gmail.com>
24582
24583 * doc/c-tree.texi (Types): Fix grammar.
24584 (Expression trees): Ditto.
24585 * doc/passes.texi (Tree-SSA passes): Ditto.
22129589 24586
dc9a511d
TB
24587 * doc/configterms.texi (Configure Terms): Fix typo.
24588 * doc/cpp.texi (Common Predefined Macros): Ditto.
24589 * doc/md.texi (Machine Constraints): Ditto.
22129589 24590
dc9a511d
TB
24591 * doc/makefile.texi (Makefile): Add comma.
24592
5dc81ee9
TB
245932008-01-31 Tom Browder <tom.browder@gmail.com>
24594 Gerald Pfeifer <gerald@pfeifer.com>
22129589 24595
5dc81ee9
TB
24596 * doc/sourcebuild.texi (Front End): Remove references to CVS
24597 and CVSROOT/modules.
24598 (Texinfo Manuals): Replace reference to CVS by one to SVN.
24599 (Back End): Remove reference to CVS.
24600
5ca3d30c
RS
246012008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
24602
24603 PR target/34900
24604 * config/mips/mips.c (gen_load_const_gp): New function, taking a
24605 comment from...
24606 (mips16_gp_pseudo_reg): ...here.
24607 * config/mips/mips.md (load_const_gp): Replace with...
24608 (load_const_gp_<mode>): ...this :P-based insn.
24609
89fe7f1b
MLI
246102008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24611
24612 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
24613 options. Minor fixes.
24614 (-std): Move reference to standards closer to where language
24615 standards are first mentioned.
22129589 24616
1f7f6676
RS
246172008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
24618
24619 PR rtl-optimization/34995
24620 * reload.c (alternative_allows_const_pool_ref): Take an rtx
24621 parameter and return a bool. If the rtx parameter is nonnull,
24622 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
24623 (find_reloads): Update call accordingly. Pass the new operand
24624 if it needed no address reloads, otherwise pass null.
24625
2ae7b972
RH
246262008-01-30 Richard Henderson <rth@redhat.com>
24627
24628 PR c/34993
24629 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
24630 for unbounded arrays.
24631
493f36a7
SR
246322008-01-30 Silvius Rus <rus@google.com>
24633
24634 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
24635
d6951cae
JH
246362008-01-30 Jan Hubicka <jh@suse.cz>
24637
24638 PR target/34982
24639 * i386.c (init_cumulative_args): Use real function declaration when
24640 calling locally.
24641
f36a5a88
RS
246422008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
24643
24644 PR rtl-optimization/34998
24645 * global.c (build_insn_chain): Treat non-subreg_lowpart
24646 SUBREGs of pseudos as clobbering all the words covered by the
24647 SUBREG, not just all the bytes.
24648 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
24649 original df_ref rather than an extract parameter.
24650 (global_conflicts): Update call accordingly.
24651
393c0058
AK
246522008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
24653
24654 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
24655 the overflow check to make it easier to read.
24656 (__fixtfdi): Change the type of the ll member in union
24657 long_double to UDItype_x.
24658
1033ffa8
JJ
246592008-01-30 Jakub Jelinek <jakub@redhat.com>
24660
2bafad93
JJ
24661 PR middle-end/34969
24662 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
24663 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
24664 * tree-inline.c (fold_marked_statements): Call
24665 cgraph_update_edges_for_call_stmt if folding a call statement.
24666 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
24667 debug_generic_stmt calls, reset it back afterwards.
24668
1033ffa8
JJ
24669 PR c/35017
24670 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
24671 static decls.
24672 * c-typeck.c (build_external_ref): Don't pedwarn about
24673 static vars in current function's scope.
24674
ed32d842
JM
246752008-01-29 Joseph Myers <joseph@codesourcery.com>
24676
24677 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
24678
ea429753
BF
246792008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
24680
24681 PR c/35002
24682 * ipa-struct-reorg.c: Fix spelling.
24683 * params.def: Ditto.
24684
4f5c64b8
RG
246852008-01-29 Richard Guenther <rguenther@suse.de>
24686
24687 PR middle-end/35006
24688 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
24689 field.
24690 * tree-inline.c (remap_type): Increment remapping_type_depth
24691 around remapping types.
24692 (copy_body_r): Only add referenced variables if they are referenced
24693 from code, not types.
24694
7b3e2d46
DG
246952008-01-29 Douglas Gregor <doug.gregor@gmail.com>
24696
24697 PR c++/34055
24698 PR c++/34103
24699 PR c++/34219
24700 PR c++/34606
24701 PR c++/34753
24702 PR c++/34754
24703 PR c++/34755
24704 PR c++/34919
24705 PR c++/34961
24706 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
24707 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
24708
12720317
AH
247092008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
24710
24711 PR target/34412
22129589 24712 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
12720317
AH
24713 pointer for tiny stack.
24714
b814cc0a
BF
247152008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
24716
24717 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
24718
f46ff798
BF
247192008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
24720
24721 * config/vx-common.h: Fix typo in comment.
24722
e8b0eabc
ILT
247232008-01-28 Ian Lance Taylor <iant@google.com>
24724
24725 PR c++/34862
24726 PR c++/33407
24727 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
24728 coalesce pointers if they have different DECL_NO_TBAA_P values.
24729 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
24730 between variables with different DECL_NO_TBAA_P values.
24731
2aa42e6e
NF
247322008-01-28 Nathan Froyd <froydnj@codesourcery.com>
24733
24734 PR 31535
24735 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
24736 are not legitimate small data references on SPE targets.
24737
4e2e9e9b
DD
247382008-01-28 David Daney <ddaney@avtrex.com>
24739
24740 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
24741
a26c7632
DD
247422008-01-28 David Daney <ddaney@avtrex.com>
24743
24744 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
24745
4f605349
JM
247462008-01-27 Joseph Myers <joseph@codesourcery.com>
24747
24748 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
24749 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
24750 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
24751 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
24752 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
24753 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
24754 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
24755 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
24756
9e148d6a
BF
247572008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
24758
24759 * basic-block.h (condjump_equiv_p): Fix comment.
24760
f749d3c6
BF
247612008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
24762
24763 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
24764 print_generic_stmt_indented): Fix comment.
24765
fed6d628
BF
247662008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
24767
24768 * configure.ac (__stack_chk_fail): Add detecion for availability
24769 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
24770 * configure: Regenerate.
24771
c01e4479
MK
247722008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
24773
24774 PR middle-end/34688
24775 * final.c (output_addr_const): Handle TRUNCATE.
24776
6e8c65f6
ZD
247772008-01-26 Zdenek Dvorak <ook@ucw.cz>
24778
24779 PR target/34711
24780 * tree-ssa-loop-ivopts.c (comp_cost): New type.
24781 (zero_cost, infinite_cost): New constants.
24782 (struct cost_pair): Change type of cost to comp_cost.
24783 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
24784 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
24785 New functions.
24786 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
24787 split_address_cost, ptr_difference_cost, difference_cost,
24788 get_computation_cost_at, get_computation_cost,
24789 determine_use_iv_cost_generic, determine_use_iv_cost_address,
24790 determine_use_iv_cost_condition, determine_use_iv_costs,
24791 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
24792 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
24793 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
24794 Change type of cost to comp_cost.
24795 (determine_iv_cost): Increase cost of non-original ivs, instead
24796 of decreasing the cost of original ones.
22129589 24797 (get_address_cost): Indicate the complexity of the addressing mode
6e8c65f6
ZD
24798 in comp_cost.
24799 (try_add_cand_for): Prefer using ivs not specific to some object.
24800 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
24801
c01e4479 248022008-01-26 Peter Bergner <bergner@vnet.ibm.com>
e41b2a33
PB
24803 Janis Johnson <janis187@us.ibm.com>
24804
24805 PR target/34814
24806 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
24807 (TARGET_INSTANTIATE_DECLS): Likewise.
24808 * target.h (expand_to_rtl_hook): New target hook.
24809 (instantiate_decls): Likewise.
24810 * function.c (instantiate_decl): Make non-static. Rename to...
24811 (instantiate_decl_rtl): ... this.
24812 (instantiate_expr): Use instantiate_decl_rtl.
24813 (instantiate_decls_1): Likewise.
24814 (instantiate_decls): Likewise.
24815 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
24816 * function.h (instantiate_decl_rtl): Add prototype.
24817 * cfgexpand.c (target.h): New include.
24818 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
24819 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
24820 (TARGET_INSTANTIATE_DECLS): Likewise.
24821 (TARGET_INITIALIZER): New target hooks added.
24822 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
24823 New prototype.
24824 * config/rs6000/rs6000.c (tree-flow.h): New include.
24825 (machine_function): Add sdmode_stack_slot field.
24826 (rs6000_alloc_sdmode_stack_slot): New function.
24827 (rs6000_instantiate_decls): Likewise.
24828 (rs6000_secondary_memory_needed_rtx): Likewise.
24829 (rs6000_check_sdmode): Likewise.
24830 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
24831 (TARGET_INSTANTIATE_DECLS): Likewise.
24832 (rs6000_hard_regno_mode_ok): Allow SDmode.
24833 (num_insns_constant): Likewise. Handle _Decimal32 constants.
24834 (rs6000_emit_move): Handle SDmode.
24835 (function_arg_advance): Likewise.
24836 (function_arg): Likewise.
24837 (rs6000_gimplify_va_arg): Likewise. Add special handling of
24838 SDmode var args for 32-bit compiles.
24839 (rs6000_secondary_reload_class): Handle SDmode.
24840 (rs6000_output_function_epilogue): Likewise.
24841 (rs6000_function_value): Simplify if statement.
24842 (rs6000_libcall_value): Likewise.
24843 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
24844 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
24845 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
24846 (movsd_hardfloat): New define_insn.
24847 (movsd_softfloat): Likewise.
24848 (movsd_store): Likewise.
24849 (movsd_load): Likewise.
24850 (extendsddd2): Likewise.
24851 (extendsdtd2): Likewise.
24852 (truncddsd2): Likewise.
24853 (movdd_hardfloat64): Fixup comment.
24854 (UNSPEC_MOVSD_LOAD): New constant.
24855 (UNSPEC_MOVSD_STORE): Likewise.
24856
6f536f74
JJ
248572008-01-26 Jakub Jelinek <jakub@redhat.com>
24858
24859 PR c++/34965
24860 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
24861 TRUTH_XOR_EXPR.
24862 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
24863 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
24864 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
24865 and TRUTH_XOR_EXPR.
24866
ba6a1b78
DE
248672008-01-26 David Edelsohn <edelsohn@gnu.org>
24868
24869 PR target/34794
24870 * config.gcc: Separate AIX 5.3 from AIX 6.1.
24871 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
24872 __LONGDOUBLE128 too.
24873 * config/rs6000/aix61.h: New file.
24874
1230d7f8
RS
248752008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
24876
24877 PR rtl-optimization/34959
24878 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
24879 popcount and parity rtxes the same mode as their operand.
24880 Truncate or extend the result to the return value's mode
24881 if necessary.
24882
dbc90b65
RS
248832008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
24884
24885 PR target/34981
24886 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
24887 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
24888 to GOT_VERSION_REGNUM.
24889 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
24890 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
24891 * config/mips/mips.c (mips_emit_call_insn): New function.
24892 (mips_call_tls_get_addr): Call mips_expand_call directly.
24893 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
24894 emit_call_insn.
24895 (mips16_build_call_stub): Likewise. Return the call insn or null.
24896 (mips_expand_call): Update the call to mips16_build_call_stub
24897 accordingly and a remove redundant condition. Assert that MIPS16
24898 stubs do not use lazy binding. Use mips_emit_call_insn and return
24899 the call insn.
24900 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
24901 TARGET_USE_GOT.
24902 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
24903 (mips_avoid_hazard): Remove hazard_set handling.
24904 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
24905 (UNSPEC_RESTORE_GP): ...this.
24906 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
24907 (FAKE_CALL_REGNO): Rename to...
24908 (GOT_VERSION_REGNUM): ...this.
24909 (type): Add "ghost" value. Add an associated insn reservation.
24910 (hazard_set): Remove.
24911 (exception_receiver): Rename to...
24912 (restore_gp): ...this and update the unspec identifier accordingly.
24913 (exception_receiver, nonlocal_got_receiver): New expanders.
24914 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
24915 FAKE_CALL_REGNO. Remove hazard_set attribute.
24916 (set_got_version, update_got_version): New patterns.
24917
763a27ee
DS
249182008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
24919
24920 PR target/34970
24921 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
24922
3725c0ca
JM
249232008-01-25 Joseph Myers <joseph@codesourcery.com>
24924
24925 PR other/31955
24926 * doc/install.texi2html: Generate gcc-vers.texi.
24927
0288980f
DD
249282008-01-25 DJ Delorie <dj@redhat.com>
24929
24930 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
24931
8d8da227
JM
249322008-01-25 Joseph Myers <joseph@codesourcery.com>
24933
24934 * config/c4x: Remove directory.
24935 * config.gcc (crx-*, mt-*): Mark obsolete.
24936 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
24937 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
24938 sh-*-rtemscoff*): Remove cases.
24939 * defaults.h (C4X_FLOAT_FORMAT): Remove.
24940 * real.c (encode_c4x_single, decode_c4x_single,
24941 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
24942 c4x_extended_format): Remove.
24943 * real.h (c4x_single_format, c4x_extended_format): Remove.
24944 * doc/extend.texi (interrupt, naked): Remove mention of attributes
24945 on C4x.
24946 (Pragmas): Remove comment about c4x pragmas.
24947 * doc/install.texi (c4x): Remove target-specific instructions.
24948 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
24949 * doc/md.texi (Machine Constraints): Remove C4x documentation.
24950 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
24951 refer to C4x source files as examples.
24952 (C4X_FLOAT_FORMAT): Remove documentation.
24953
fb7c3b05
BS
249542008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
24955
24956 * config/bfin/bfin.c (override_options): Reorder tests so that
24957 flag_pic gets enabled for -msep-data.
24958
dd3b33d7
RG
249592008-01-25 Richard Guenther <rguenther@suse.de>
24960
24961 PR middle-end/32244
24962 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
24963 to its bitfield precision if required.
24964
c256730c
JJ
249652008-01-25 Jakub Jelinek <jakub@redhat.com>
24966
24967 PR middle-end/33880
24968 * tree-nested.c (walk_omp_for): New function.
24969 (convert_nonlocal_reference, convert_local_reference): Call
24970 walk_omp_for on OMP_FOR.
24971 (convert_call_expr): Call walk_body on OMP_FOR's
24972 OMP_FOR_PRE_INIT_BODY.
24973
59805c3b
RG
249742008-01-25 Richard Guenther <rguenther@suse.de>
24975
24976 PR tree-optimization/34966
24977 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
24978 default defs and PHI_NODEs we have to insert after the
24979 defining statement.
24980
f84fe9b6
NC
249812008-01-24 Nick Clifton <nickc@redhat.com>
24982
24983 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
24984 Provide a default definition.
24985 (LIBGCC2_UNITS_PER_WORD): Likewise.
24986
24987 * config/stormy16/stormy16.c: Include df.h for the prototype
24988 for df_regs_ever_live_p.
24989 (xstormy16_expand_builtin_va_start): Convert the stack offset
24990 into a component_ref and then use POINTER_PLUS_EXPR to add it
24991 to the incoming_virtual_args_rtx.
24992 (xstormy16_gimplify_va_arg_expr): Rename to
24993 xstormy16_gimplify_va_arg_expr.
24994 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
24995 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
24996 xstormy16_gimplify_va_arg_expr.
24997 Fix up some formatting issues.
24998
24999 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
25000 Move to predicates.md.
25001 (xs_hi_general_operand): Likewise.
25002 (xs_hi_nonmemory_operand): Likewise.
25003 * config/stormy16/predicates.md:
25004 (xstormy16_carry_plus_operand): New predicate.
25005 (xs_hi_general_operand): New predicate.
25006 (xs_hi_nonmemory_operand): New predicate.
25007 * config/stormy16/stormy16-protos.h:
25008 (xstormy16_carry_plus_operand): Delete prototype.
25009 (xs_hi_general_operand): Likewise.
25010 (xs_hi_nonmemory_operand): Likewise.
25011
25012 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
25013 modifiers as they are no longer needed and they can trigger
25014 reload spill failures.
25015
25016 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
25017 with a match_operand in order to help reload.
25018
25019 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
25020 constraint with 'e' for the 8th alternative as this version of
25021 the mov.w instruction only accepts the lower 8 registers.
25022
d1f0728e
UB
250232008-01-25 Uros Bizjak <ubizjak@gmail.com>
25024
25025 PR target/34856
25026 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
25027 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
25028 vector elements.
25029
80e67011
JJ
250302008-01-25 Jakub Jelinek <jakub@redhat.com>
25031
25032 PR middle-end/33333
25033 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
25034
1525f2c3
GO
250352008-01-25 Golovanevsky Olga <olga@il.ibm.com>
25036
25037 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
25038 New functions.
25039 (remove_structure): Update allocations list before removing structure.
22129589 25040
bd91d743
OG
250412008-01-25 Golovanevsky Olga <olga@il.ibm.com>
25042
22129589 25043 * ipa-struct-reorg.c (is_safe_cond_expr,
bd91d743
OG
25044 create_new_stmts_for_cond_expr): Use integer_zerop function,
25045 that recognize not only zero-pointer, but zero-integer too.
25046
ae7a8ebc
BE
250472008-01-25 Ben Elliston <bje@au.ibm.com>
25048
25049 PR other/22232
25050 * fixproto: Escape "." in sed expression that strips leading "./".
25051
3371362c
L
250522008-01-24 H.J. Lu <hongjiu.lu@intel.com>
25053
25054 PR driver/34904
25055 * gcc.c (SWITCH_OK): Removed.
25056 (SWITCH_LIVE): Changed to bit.
25057 (SWITCH_FALSE): Likewise.
25058 (SWITCH_IGNORE): Likewise.
25059 (switchstr): Change live_cond to unsigned int.
25060 (process_command): Replace SWITCH_OK with 0.
25061 (do_self_spec): Likewise.
25062 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
25063 (give_switch): Likewise.
25064 (used_arg): Likewise.
25065 (do_spec_1): Set the SWITCH_IGNORE bit.
25066 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
25067 bits. Set the SWITCH_LIVE bit.
25068
5f1b2ee6
AK
250692008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
25070
25071 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
25072
986d97ed
RS
250732008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
25074
25075 PR tree-optimization/34472
25076 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
25077 parameter to a "bool *" and set *DATA to false if there is
25078 an unsafe access. Do not delete the structure here.
25079 (check_cond_exprs): Delete it here instead.
25080 (check_cond_exprs, exclude_cold_structs): Do not increase
25081 I when removing a structure.
25082
fcc44808
UB
250832008-01-24 Uros Bizjak <ubizjak@gmail.com>
25084
25085 PR target/34856
25086 * config/i386/i386.c (ix86_expand_vector_init): Consider only
25087 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
25088
134c2de3
JJ
250892008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
25090
25091 PR middle-end/34934
25092 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
25093 a fixed vector for stack.
25094
89bf8683
BE
250952008-01-24 Ben Elliston <bje@au.ibm.com>
25096
25097 PR c++/25701
25098 * doc/gcc.texi (Software development): Add a direntry for g++.
22129589 25099
02a4bca9
HPN
251002008-01-23 Hans-Peter Nilsson <hp@axis.com>
25101
6c660aeb
HPN
25102 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
25103 stale and straggling -fforce-addr comments above.
25104
02a4bca9
HPN
25105 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
25106 define.
25107 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
25108 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
25109
b4da9f9d
MM
251102008-01-23 Michael Matz <matz@suse.de>
25111
25112 PR debug/34895
25113 * dwarf2out.c (force_type_die): Use modified_type_die instead of
25114 gen_type_die.
25115
1b7af7b0
AK
251162008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
25117
25118 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
25119 malloc result type.
25120
19298da4
AS
251212008-01-23 Anatoly Sokolov <aesok@post.ru>
25122
25123 * config/avr/avr.c (avr_current_arch): New variable.
25124 (avr_arch_types): Add 'avr31' and 'avr51' entries.
25125 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
25126 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
22129589 25127 (avr_override_options): Init 'avr_current_arch'.
19298da4 25128 (base_arch_s): Move from here...
22129589
AS
25129 * config/avr/avr.h (base_arch_s): ... here. Add new members
25130 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19298da4 25131 'mega' to 'have_jmp_call'.
22129589 25132 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
5617c135 25133 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19298da4 25134 macros.
22129589 25135 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19298da4 25136 architectures.
22129589 25137 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5617c135 25138 MULTILIB_MATCHES): Ditto.
19298da4 25139
b86b3ea3
RG
251402008-01-23 Richard Guenther <rguenther@suse.de>
25141
25142 PR middle-end/31529
25143 * cgraphunit.c (cgraph_reset_node): Always mark the node
25144 not reachable if it is not queued already.
25145
fa8d4a0f
BS
251462008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
25147
25148 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
25149 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
25150 (cputype_selected): New static variable.
25151 (bfin_handle_option): Set it if -mcpu is used.
25152 (override_option): Select default set of workarounds if no cpu type
25153 selected on the command line.
25154 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
64882649
BS
25155
25156 From Michael Frysinger <michael.frysinger@analog.com>
25157 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
25158 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
25159
25160 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
25161 for bf547, bf523, bf524, and bf526.
25162 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
25163 bf526.
25164 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
25165 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
25166 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
25167 __ADSPBF547__ and __ADSPBF54x__ for bf547.
25168 * doc/invoke.texi (Blackfin Options): Document that
25169 -mcpu now accept bf547, bf523, bf524, and bf526.
25170
df1a98ae
EB
251712008-01-22 Eric Botcazou <ebotcazou@adacore.com>
25172
25173 PR rtl-optimization/34628
25174 * combine.c (try_combine): Stop and undo after the first combination
25175 if an autoincrement side-effect on the first insn has effectively
25176 been lost.
25177
1a23970d
DE
251782008-01-22 David Edelsohn <edelsohn@gnu.org>
25179
25180 PR target/34529
25181 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
25182 Offset addresses are not valid for Altivec or paired float modes.
25183
42a89d2d
JJ
251842008-01-22 Jakub Jelinek <jakub@redhat.com>
25185
61c3a446
JJ
25186 PR c++/34607
25187 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
25188 if DECL_INITIAL (decl) is error_mark_node.
25189
270e749d
JJ
25190 PR c++/34914
25191 * c-common.c (handle_vector_size_attribute): Only allow
25192 integral, scalar float and fixed point types. Handle OFFSET_TYPE
25193 the same way as pointer, array etc. types.
25194 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
25195
42a89d2d
JJ
25196 PR c++/34917
25197 * tree.c (build_type_attribute_qual_variant): Call
25198 build_qualified_type if attributes are equal, but quals are not.
25199
027b740e
MLI
252002008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25201
25202 PR 32102
25203 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
25204 * flags.h (warn_strict_aliasing): Remove.
25205 (warn_strict_overflow): Remove.
25206 * opts.c (warn_strict_aliasing): Remove.
25207 (warn_strict_overflow): Remove.
25208 * c-opts.c (c_common_handle_option): -Wall only sets
25209 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
25210 (c_common_post_options): Give default values to -Wstrict-aliasing
25211 and -Wstrict-overflow if they are uninitialized.
25212 * common.opt (Wstrict-aliasing): Specify Var and Init.
25213 (Wstrict-overflow): Likewise.
25214
4218dc2d 252152008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
963acd6f
KZ
25216
25217 PR rtl-optimization/26854
25218 PR rtl-optimization/34400
25219 PR rtl-optimization/34884
25220 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
25221 DF_RD->gen.
25222 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
25223 (df_rd_bb_info.expanded_lr_out): Deleted
25224 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
25225 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
25226 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
25227 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
25228 Removed code to allocate, initialize or free expanded_lr_out.
25229 (df_rd_bb_local_compute_process_def): Restructured to make more
25230 understandable.
25231 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
25232 sets if the sets are being trimmed.
25233
115e6e55
L
252342008-01-22 H.J. Lu <hongjiu.lu@intel.com>
25235
25236 PR bootstrap/32287
25237 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
25238 (as_vers): Likewise.
25239 * configure: Regenerated.
25240
f9d02384
MLI
252412008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25242
25243 PR middle-end/33092
25244 * tree-pass.h (pass_build_alias): New pass.
25245 * tree-ssa-alias.c (gate_build_alias): New.
25246 (pass_build_alias): New.
25247 * passes.c (init_optimization_passes): Add pass_build_alias after
25248 pass_create_structure_vars.
25249
0387c142
WG
252502008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
25251
25252 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
25253 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
25254 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
25255 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
25256 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
25257 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
25258 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
25259 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
25260 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
25261 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
25262 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
25263 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
25264 * config/s390/s390.md (FP_ALL): New mode iterator.
25265 (_d): New mode attribute.
25266 ("*signbit<mode>2>"): Changed mode of first operand.
25267 ("isinf<mode>2"): Changed mode of first operand.
25268 ("*TDC_insn"): Adaptation for DFP modes.
25269
1d4f5374
BE
252702008-01-22 Ben Elliston <bje@au.ibm.com>
25271
25272 * tree.c (check_qualified_type): Improve function description.
25273
33b45227
JM
252742008-01-21 Jason Merrill <jason@redhat.com>
25275
25276 PR c++/34196
25277 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
25278 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
25279 if it is set.
25280
79e168da
DD
252812008-01-21 DJ Delorie <dj@redhat.com>
25282
25283 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
25284 return zero.
25285
bb0c55f6
RG
252862008-01-21 Richard Guenther <rguenther@suse.de>
25287
25288 PR middle-end/34856
25289 * tree-cfg.c (verify_expr): Allow all invariant expressions
25290 instead of just constant class ones as reference argument.
25291 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
25292 like any other constant.
25293 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
25294
94c54fea
L
252952008-01-21 H.J. Lu <hongjiu.lu@intel.com>
25296
25297 * regmove.c (fixup_match_1): Update call crossed frequencies.
25298
c54e3854
RG
252992008-01-21 Richard Guenther <rguenther@suse.de>
25300
25301 PR c/34885
25302 * tree-inline.c (setup_one_parameter): Deal with mismatched
25303 types using a VIEW_CONVERT_EXPR.
25304
b158b5c6
AD
253052008-01-21 Alon Dayan <alond@il.ibm.com>
25306 Olga Golovanevsky <olga@il.ibm.com>
22129589 25307
b158b5c6
AD
25308 PR tree-optimization/34701
25309 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
25310 when the structure size is not a power of 2.
25311
4218dc2d 253122008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
604f825c
KZ
25313
25314 * doc/install.texi: Add doc for --enable-checking=df.
22129589 25315
539c54ba
KK
253162008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
25317
25318 PR rtl-optimization/34808
25319 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
25320
ecff8c1c
RS
253212008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
25322
25323 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
25324 input.
25325
4218dc2d 253262008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2b49e1a0
KZ
25327
25328 PR rtl-optimization/26854
25329 PR rtl-optimization/34400
25330 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
25331 DF_RD->gen.
25332 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
25333 (df_rd_bb_info.expanded_lr_out): New.
25334 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
25335 * loop_iv.c (iv_analysis_loop_init): Ditto.
25336 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
25337 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
25338 Added code to allocate, initialize or free expanded_lr_out.
25339 (df_rd_bb_local_compute_process_def): Restructured to make
25340 more understandable.
25341 (df_rd_confluence_n): Add code to do nothing with fake edges and
25342 code to no apply invalidate_by_call sets if the sets are being trimmed.
25343 (df_lr_local_finalize): Renamed to df_lr_finalize.
25344 (df_live_local_finalize): Renamed to df_live_finalize.
25345
0decaff6
RS
253462008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
25347
25348 PR target/34831
25349 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
25350 deciding whether to use reciprocal instructions.
25351
d0b9dbd5
UB
253522008-01-19 Uros Bizjak <ubizjak@gmail.com>
25353
25354 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
25355 dwarf2out_note_section_used if cold_text_section is NULL.
25356
135a171d
JJ
253572008-01-19 Jakub Jelinek <jakub@redhat.com>
25358
25359 PR gcov-profile/34610
25360 * tree-cfg.c (make_edges): Mark both outgoing edges from
25361 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
25362 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
25363 from OMP_FOR and OMP_CONTINUE outgoing edges.
25364
25365 * tree-profile.c (tree_profiling): Return early if
25366 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
25367 at the end.
25368 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
25369 from cfun to child_cfun.
25370 * function.h (struct function): Add after_tree_profile bit.
25371
0a84fec6
AS
253722008-01-19 Anatoly Sokolov <aesok@post.ru>
25373
25374 * config/avr/avr.S (_exit): Disable interrupt.
25375
5aa52064
KZ
253762008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
25377 Steven Bosscher <stevenb.gcc@gmail.com>
25378
25379 PR rtl-optimization/26854
25380 PR rtl-optimization/34400
25381 * df-problems.c (df_live_scratch): New scratch bitmap.
25382 (df_live_alloc): Allocate df_live_scratch when doing df_live.
25383 (df_live_reset): Clear the proper bitmaps.
25384 (df_live_bb_local_compute): Only process the artificial defs once
25385 since the order is not important.
25386 (df_live_init): Init the df_live sets only with the variables
25387 found live by df_lr.
25388 (df_live_transfer_function): Use the df_lr sets to prune the
22129589 25389 df_live sets as they are being computed.
5aa52064
KZ
25390 (df_live_free): Free df_live_scratch.
25391
28a08168
ILT
253922008-01-18 Ian Lance Taylor <iant@google.com>
25393
25394 * common.opt: Add fmerge-debug-strings.
25395 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
25396 flag_merge_debug_strings rather than flag_merge_constants.
25397 * doc/invoke.texi (Option Summary): Mention
25398 -fmerge-debug-strings.
25399 (Debugging Options): Document -fmerge-debug-strings.
25400
1ea193c2
ILT
254012008-01-18 Ian Lance Taylor <iant@google.com>
25402
25403 PR c++/33407
25404 * tree.h (DECL_IS_OPERATOR_NEW): Define.
25405 (struct tree_function_decl): Add new field operator_new_flag.
25406 * tree-inline.c (expand_call_inline): When inlining a call to
25407 operator new, force the return value to go into a variable, and
25408 set DECL_NO_TBAA_P on that variable.
25409 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
25410
74ab34d3
UB
254112008-01-18 Uros Bizjak <ubizjak@gmail.com>
25412
25413 PR debug/34484
25414 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
25415 DWARF2_DEBUGGING_INFO.
25416 (dwarf2out_note_section_used): Ditto. Add prototype.
25417 (have_multiple_function_sections, text_section_used,
25418 cold_text_section_used, *cold_text_sections): Move declarations
25419 before their uses.
25420
9a75e92d 254212008-01-17 Bob Wilson <bob.wilson@acm.org>
6c633d45
BW
25422
25423 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
25424 field and add signal_ra.
25425 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
25426 assignments to frame state pc. Move end of stack check after
25427 MD_FALLBACK_FRAME_STATE_FOR.
25428 (uw_update_context_1): Use frame state signal_regs if set, instead
25429 of checking signal_frame flag.
25430 (uw_update_context): Use frame state signal_ra if set.
25431 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
25432 * config/xtensa/linux-unwind.h: New file.
25433
9a75e92d 254342008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
4117d6f7
BF
25435
25436 * modulo-sched.c (get_sched_window): Fix comment typo.
25437
fae25b37
AM
254382008-01-17 Andrew MacLeod <amacleod@redhat.com>
25439
25440 PR tree-optimization/34648
25441 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
25442
2e152e16
AS
254432008-01-17 Anatoly Sokolov <aesok@post.ru>
25444
25445 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
25446 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
25447
185082a7
SP
254482008-01-17 Seongbae Park <seongbae.park@gmail.com>
25449
25450 PR rtl-optimization/34400
25451 * df-core.c (df_worklist_dataflow_overeager,
25452 df_worklist_dataflow_doublequeue): New functions.
25453 (df_worklist_dataflow): Two different worklist solvers.
25454 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
25455 New param.
25456
01a550c2
SP
254572008-01-16 Sebastian Pop <sebastian.pop@amd.com>
25458
25459 PR testsuite/34821
25460 * doc/invoke.texi: Document the dependence on pthread for fopenmp
25461 and ftree-parallelize-loops.
25462
80663107
MN
254632008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
25464
25465 PR rtl-optimization/34826
25466 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
25467
599824d2
AK
254682008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
25469
25470 * global.c (find_reg): Mark the eh regs as used if necessary.
25471 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
25472 * ra.h (struct allocno): no_eh_reg field added. Changed
25473 no_stack_reg type to bitfield.
25474
9328dd57
EB
254752008-01-17 Eric Botcazou <ebotcazou@adacore.com>
25476
25477 * tree.c (substitute_in_expr): Add missing 'break'.
25478
8a5b57cd
RG
254792008-01-17 Richard Guenther <rguenther@suse.de>
25480
25481 PR tree-optimization/34825
25482 * tree-ssa-math-opts.c (is_division_by): Do not recognize
25483 x / x as division to handle.
25484
e7ce29e7
JDA
254852008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25486
25487 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
25488 "-pthread" is specified.
25489 * pa-hpux11.h (LIB_SPEC): Likewise.
25490
9a75e92d 254912008-01-16 Janis Johnson <janis187@us.ibm.com>
37b87a3a
JJ
25492 Peter Bergner <bergner@vnet.ibm.com>
25493
25494 PR rtl-optimization/33796
25495 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
25496
6595ec51
JDA
254972008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25498
25499 PR libgfortran/34699
25500 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
25501 static links.
25502 * pa-hpux10.h (LINK_SPEC): Likewise.
25503 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
25504
bdb55eae
RG
255052008-01-16 Richard Guenther <rguenther@suse.de>
25506
25507 PR middle-end/32628
25508 * fold-const.c (fold_convert_const_int_from_int): Do not
25509 set overflow if that occured only because of a sign extension
25510 change when converting from/to a sizetype with the same
25511 precision and signedness.
25512
2e2c7ce2
UB
255132008-01-16 Uros Bizjak <ubizjak@gmail.com>
25514
25515 PR debug/34249
25516 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
25517 location address to the correct place. Update copyright year.
25518
d49c149d
SP
255192008-01-16 Sebastian Pop <sebastian.pop@amd.com>
25520
25521 * lambda-code.c (lambda_transform_legal_p): Handle the case of
25522 no dependences in the dependence_relations vector.
25523
a03c6d64
JH
255242008-01-16 Jan Hubicka <jh@suse.cz>
25525
25526 PR rtl-optimization/31396
25527 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
25528 * cfg.c (dump_reg_info): Print it.
25529 * regs.h (struct reg_info_t): add freq_calls_crossed.
25530 (REG_FREQ_CALLS_CROSSED): New macro.
25531 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
25532 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
25533 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
25534 regmove_optimize): Update call crossed frequencies.
25535 * local-alloc.c (struct qty): Add freq_calls_crossed.
25536 (alloc_qty): Copute freq_calls_crossed.
25537 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
25538 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
25539 * ra.h (struct allocno): Add freq_calls_crossed.
25540
daf49354
SP
255412008-01-16 Sebastian Pop <sebastian.pop@amd.com>
25542
25543 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
25544 libgomp when compiling with ftree-parallelize-loops.
25545 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
25546
a1a5996d
RG
255472008-01-16 Richard Guenther <rguenther@suse.de>
25548
25549 PR tree-optimization/34769
25550 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
25551 * tree.c (int_cst_value): Instead make this function more
25552 permissive in what it accepts as valid input. Document this
25553 function always sign-extends the value.
25554
de4af523 255552008-01-16 Jakub Jelinek <jakub@redhat.com>
d0b9dbd5 25556 Richard Guenther <rguenther@suse.de>
de4af523
JJ
25557
25558 PR c/34668
25559 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
25560 (gimple_fold_indirect_ref_rhs): ... this.
25561 (gimple_fold_indirect_ref): New function with foldings
25562 that preserve lvalueness.
25563 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
25564 * tree-flow.h (gimple_fold_indirect_ref): Declare.
25565 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
25566 to fold an INDIRECT_REF, fall back to the old use of
25567 fold_indirect_ref_1.
25568
6935bae7
SP
255692008-01-16 Sebastian Pop <sebastian.pop@amd.com>
25570
22129589 25571 * tree-data-ref.c (subscript_dependence_tester_1): Call
6935bae7
SP
25572 free_conflict_function.
25573 (compute_self_dependence): Same.
25574
a4b6974e
UB
255752008-01-16 Uros Bizjak <ubizjak@gmail.com>
25576
25577 PR debug/34249
25578 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
25579 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
25580 function global.
25581 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
25582 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
25583 for DWARF2_UNWIND_INFO targets.
25584
eb1387a0
RG
255852008-01-16 Richard Guenther <rguenther@suse.de>
25586
25587 PR c/34768
25588 * c-typeck.c (common_pointer_type): Do not merge inconsistent
25589 type qualifiers for function types.
25590
9326236d
JD
255912008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
25592
25593 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
25594 loop_iterator li from previous commit.
25595
255962008-01-15 Sebastian Pop <sebastian.pop@amd.com>
92a6bdbd
SP
25597
25598 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
25599
1d4af1e8
SP
256002008-01-12 Sebastian Pop <sebastian.pop@amd.com>
25601
25602 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
25603 (parallelize_loops): Don't parallelize irreducible components.
25604
8103eebf
MLI
256052008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25606
25607 PR c++/24924
25608 * c-opts (c_common_post_options): Do not enable CPP
25609 flag_pedantic_errors by default.
22129589 25610
d556d181
EB
256112008-01-14 Eric Botcazou <ebotcazou@adacore.com>
25612
25613 PR rtl-optimization/31944
25614 * cse.c (remove_pseudo_from_table): New function.
25615 (merge_equiv_classes): Use above function to remove pseudo-registers.
25616 (invalidate): Likewise.
25617
726612d2
RG
256182008-01-13 Richard Guenther <rguenther@suse.de>
25619
25620 PR middle-end/34601
25621 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
25622 instead of TYPE_MODE to deal with calls from expand_one_error_var.
25623
51134e52
UB
256242008-01-13 Uros Bizjak <ubizjak@gmail.com>
25625
25626 * gcse.c (cprop_jump): Call validate_unshare_change instead of
25627 validate_change to unshare the source of the PC set.
25628
3097760b
JH
256292008-01-12 Jan Hubicka <jh@suse.cz>
25630
25631 PR middle-end/32135
25632 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
25633 references above array bounds. This might trigger bounds checks for
25634 pointers to arrays.
25635
42b22da8
SP
256362008-01-12 Sebastian Pop <sebastian.pop@amd.com>
25637
25638 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
25639 new_replaceable_dependencies.
25640
5db2e9ca
DK
256412008-01-12 Doug Kwan <dougkwan@google.com>
25642
25643 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
25644 instead of OPT_Wreturn_type in warning due to ignored return type
25645 qualifiers.
25646 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
25647 options included in -Wextra.
25648 * c.opt: New option -Wignored_qualifiers.
25649 * doc/invoke.texi (Warning Options, -Wextra): Add new option
25650 -Wignore_qualifiers.
25651 (-Wignored-qualifiers): Document.
25652 (-Wreturn-type): Remove description of functionality now handled
25653 by -Wignored-qualifiers.
25654
52ef2874
EB
256552008-01-12 Eric Botcazou <ebotcazou@adacore.com>
25656
25657 PR ada/33788
25658 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
25659 NOP_EXPR if it is between integral types with the same precision.
25660
a60b56a4
JH
256612008-01-12 Jan Hubicka <jh@suse.cz>
25662
25663 PR other/28023
25664 * invoke.texi (max-inline-recursive-depth): Fix default value.
25665
29ac1d9a
ZD
256662008-01-12 Zdenek Dvorak <ook@ucw.cz>
25667
25668 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
25669 correct type.
25670
166b25dc 256712008-01-11 Bob Wilson <bob.wilson@acm.org>
22129589 25672
166b25dc 25673 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
22129589 25674
ad8151b7
JW
256752008-01-11 James E. Wilson <wilson@specifix.com>
25676
25677 PR target/26015
25678 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
25679
0d40cc60
AS
256802008-01-11 Anatoly Sokolov <aesok@post.ru>
25681
22129589
AS
25682 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
25683 save/restore frame pointer register and don't use 'call-prologues'
0d40cc60
AS
25684 optimization in function with "OS_task" attribute.
25685
15af420d
EB
256862008-01-11 Eric Botcazou <ebotcazou@adacore.com>
25687
25688 PR middle-end/31309
25689 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
25690 when copying to memory.
25691
c1e3e2d9
SB
256922008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
25693
25694 PR rtl-optimization/30905
25695 * cfgcleanup.c: Include dce.h
25696 (crossjumps_occured): New global variable.
25697 (try_crossjump_bb): Exit loop after finding a fallthru edge.
25698 If something changed, set crossjumps_occured to true.
25699 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
25700 Don't add/remove fake edges to exit here...
25701 (cleanup_cfg): ...but do it here, when crossjumping.
25702 Run a fast DCE when successful crossjumps occured in the latest
25703 iteration of try_optimize_cfg.
25704
8d0eca24
RG
257052008-01-11 Richard Guenther <rguenther@suse.de>
25706
25707 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
25708 (struct vn_unary_op_s): Likewise.
25709 (vn_reference_insert): Free old reference on hash collision.
25710
acfb3980
RA
257112008-01-10 Raksit Ashok <raksit@google.com>
25712
25713 PR rtl-optimization/27971
31bfe034
RA
25714 * combine.c (find_split_point): Split PLUS expressions which are
25715 inside a MEM rtx, and whose first operand is complex.
acfb3980 25716
b8a669d0
DD
257172008-01-10 DJ Delorie <dj@redhat.com>
25718
25719 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
25720 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
25721 (m32c_hard_regno_ok): Call the underlying function.
25722
d0f76c4b
RG
257232008-01-10 Richard Guenther <rguenther@suse.de>
25724
25725 PR middle-end/34683
25726 * tree-cfg.c (tree_merge_blocks): Do not go through the
25727 full-blown folding and stmt updating path if we just deal
25728 with virtual operands.
25729 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
25730 test for abnormal SSA_NAMEs.
25731
90d12f1f
AK
257322008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
25733
25734 PR middle-end/34641
25735 * reload.c (push_reload): Add assertions. All constants from
25736 reg_equiv_constant should have been used for replacing the respective
25737 pseudo earlier.
25738 (find_reloads_address): Invoke find_reloads_address_part for
25739 constant taken from the reg_equiv_constant array.
25740
71ae8557
SB
257412008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
25742
25743 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
25744 field (valnum) the first in the struct. Replace bools with
25745 unit bit fields.
25746
125e025e
RG
257472008-01-10 Richard Guenther <rguenther@suse.de>
25748
25749 PR tree-optimization/34651
25750 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
25751 types and ordering for masking and converting.
25752
64cbaace
SP
257532008-01-09 Sebastian Pop <sebastian.pop@amd.com>
25754
25755 PR tree-optimization/34017
25756 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
25757 also for PHI_NODE expressions.
25758
88743d3a
JH
257592008-01-09 Jan Hubicka <jh@suse.cz>
25760
25761 PR tree-optimization/34708
25762 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
25763 based on number of case labels.
25764 (init_inline_once): Remove switch_cost.
25765 * tree-inline.h (eni_weights_d): Remove switch_cost.
25766
c3e203cf
RG
257672008-01-09 Richard Guenther <rguenther@suse.de>
25768 Andrew Pinski <andrew_pinski@playstation.sony.com>
25769
25770 PR middle-end/30132
25771 * gimplify.c (gimplify_cond_expr): Do not create an addressable
25772 temporary if an rvalue is ok or an lvalue is not required.
25773
def49dd7
RG
257742008-01-09 Richard Guenther <rguenther@suse.de>
25775
25776 PR middle-end/34458
25777 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
25778 adjust return type.
25779
cbad2e09
RG
257802008-01-09 Richard Guenther <rguenther@suse.de>
25781
25782 PR middle-end/34679
25783 * tree.c (host_integerp): Check for sizetype only if the
25784 type is an integer type.
25785
59e5c37d
SB
257862008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
25787
25788 PR debug/26364
25789 * opts.c (decode_options): Disable inlining of functions called
25790 once if not in unit-at-a-time mode.
25791
712db60e
AO
257922008-01-09 Alexandre Oliva <aoliva@redhat.com>
25793
25794 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
25795
3fe2f42a
RG
257962008-01-08 Richard Guenther <rguenther@suse.de>
25797
25798 PR middle-end/31863
25799 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
25800 out early if the result will be unused.
25801
4d869718
UB
258022008-01-08 Uros Bizjak <ubizjak@gmail.com>
25803
25804 PR target/34709
25805 Revert:
25806
25807 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
25808 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
22129589
AS
25809 for TARGET_RECIP.
25810
cedbd764 258112008-01-08 Jan Sjodin <jan.sjodin@amd.com>
22129589 25812
4d869718
UB
25813 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
25814 for vectorization tuned.
22129589 25815
a9990582
RG
258162008-01-08 Richard Guenther <rguenther@suse.de>
25817
25818 PR tree-optimization/34683
25819 * tree-ssa-operands.c (operand_build_cmp): Export.
25820 * tree-ssa-operands.h (operand_build_cmp): Declare.
25821 * tree-vn.c (vuses_compare): Remove.
25822 (sort_vuses): Use operand_build_cmp.
25823 (sort_vuses_heap): Likewise.
25824 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
25825 to re-use old VEC if available. Do not sort already sorted VUSEs.
25826 (vdefs_to_vec): Do not sort already sorted VDEFs.
25827
c90eee44
JJ
258282008-01-08 Jakub Jelinek <jakub@redhat.com>
25829
25830 PR middle-end/34694
25831 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
25832
8bce96f5
UB
258332008-01-08 Uros Bizjak <ubizjak@gmail.com>
25834
25835 PR target/34702
25836 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
25837 limitations of reciprocal sequences on x86 targets.
25838
4eefcc98
RG
258392008-01-08 Richard Guenther <rguenther@suse.de>
25840
25841 PR tree-optimization/34683
25842 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
25843
b69d564b
JJ
258442008-01-07 Jakub Jelinek <jakub@redhat.com>
25845
25846 PR target/34622
25847 * config/darwin.c (darwin_mergeable_string_section): Don't use
25848 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
25849
6b761851
UB
258502008-01-07 Uros Bizjak <ubizjak@gmail.com>
25851
25852 PR target/34682
25853 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
25854 negxf2. Macroize expander using X87MODEF mode iterator. Change
25855 predicates of op0 and op1 to register_operand.
8bce96f5
UB
25856 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
25857 expander using X87MODEF mode iterator. Change predicates of
25858 op0 and op1 to register_operand.
6b761851
UB
25859 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
25860 corresponding patterns and macroize using MODEF macro. Change
25861 predicates of op0 and op1 to register_operand and remove
25862 "m" constraint. Disparage "r" alternative with "!".
25863 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
25864 macroize using X87MODEF macro. Change predicates of op0 and op1
25865 to register_operand and remove "m" constraint. Disparage "r"
25866 alternative with "!".
25867 (absneg splitter with memory operands): Remove.
25868 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
25869 patterns and macroize using X87MODEF mode iterator.
25870 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
25871 Change predicate of op1 to register_operand.
25872 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8bce96f5 25873 for memory operands.
6b761851 25874
5ca0373f
NF
258752008-01-07 Nathan Froyd <froydnj@codesourcery.com>
25876
25877 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
25878
2eac9a76
RG
258792008-01-07 Richard Guenther <rguenther@suse.de>
25880
25881 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
25882 fields.
25883
b61ea03d
RG
258842008-01-07 Richard Guenther <rguenther@suse.de>
25885
25886 PR tree-optimization/34683
25887 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
25888 VOPs of the needed size to save memory. Use VEC_quick_push
25889 to save compile-time.
25890 (vdefs_to_vec): Likewise.
25891
c4bd75cd 258922008-01-07 Sa Liu <saliu@de.ibm.com>
b61ea03d 25893
6b761851
UB
25894 * config/spu/spu.md (divdf3): Genetate inline code for double
25895 division. The implementation doesn't handle INF or NAN, therefore it
25896 only applies when -ffinite-math-only is given.
c4bd75cd 25897
ba551ec2
PC
258982008-01-06 Paolo Carlini <pcarlini@suse.de>
25899
25900 PR libstdc++/34680
25901 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
25902 * doc/cpp.texi ([Common Predefined Macros]): Document.
25903
43db7979
UB
259042008-01-06 Uros Bizjak <ubizjak@gmail.com>
25905
25906 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
25907 order to use commutative addition instead of subtraction.
25908
2c460d12
RE
259092008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
25910 Mircea Namolaru <namolaru@il.ibm.com>
25911 Vladimir Yanovsky <yanov@il.ibm.com>
25912 Revital Eres <eres@il.ibm.com>
25913
25914 PR tree-optimization/34263
25915 * tree-outof-ssa.c (process_single_block_loop_latch,
25916 contains_tree_r): New functions.
25917 (analyze_edges_for_bb): Call process_single_block_loop_latch
25918 function to empty single-basic-block latch block if possible.
25919
5a37a60c
UB
259202008-01-05 Uros Bizjak <ubizjak@gmail.com>
25921
25922 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
25923 for TARGET_RECIP.
25924 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
25925
1a8a3a5e
RS
259262008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
25927
25928 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
25929
2a4430a6
RS
259302008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
25931
25932 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
25933
58fcda21
JJ
259342008-01-05 Jakub Jelinek <jakub@redhat.com>
25935
25936 PR tree-optimization/34618
25937 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
25938 flag from T.
25939
f1bf33ce
UB
259402008-01-05 Uros Bizjak <ubizjak@gmail.com>
25941
25942 PR target/34673
25943 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
25944 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
25945 Update copyright year.
25946
25947 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
25948 Update copyright year.
25949 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
25950 using NR fixup.
25951
12a6309e
ZZ
259522008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
25953
25954 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
25955 edge does not point to current bb before changing need_assert.
25956
bdb69bee
RG
259572008-01-04 Richard Guenther <rguenther@suse.de>
25958
25959 PR middle-end/34029
25960 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
25961 for verifying purposes if they are is_gimple_min_invariant.
25962
ffed8a01
AH
259632008-01-04 Aldy Hernandez <aldyh@redhat.com>
25964
25965 PR tree-optimization/34448
25966 PR tree-optimization/34465
25967 * gimplify.c (gimplify_init_constructor): Add new parameter
25968 notify_temp_creation. Use it.
25969 (gimplify_modify_expr_rhs): Take volatiles into account when
25970 optimizing constructors.
25971 Do not optimize constructors if gimplify_init_constructor will dump to
25972 memory.
25973 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
25974 * gcc.c-torture/compile/pr34448.c: New.
25975
b5ca517c
JJ
259762008-01-04 Jakub Jelinek <jakub@redhat.com>
25977
25978 PR gcov-profile/34609
25979 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
25980 return_slot if result is TREE_ADDRESSABLE.
25981
6a3d1d49
RS
259822008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
25983
25984 * config/mips/mips.md (sqrt_condition): Tweak comment.
25985 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
25986
6fc3c3c0
TT
259872008-01-03 Tom Tromey <tromey@redhat.com>
25988
b5ca517c 25989 PR c/34457
6fc3c3c0
TT
25990 * c-common.c (c_type_hash): Handle VLAs.
25991
045685a9
JH
259922008-01-03 Jan Hubicka <jh@suse.cz>
25993
25994 PR tree-optimization/31081
25995 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
25996 0 when inlining and not inlining to first basic block.
25997 (remap_decl): When var is initialized to 0, don't set default_def.
25998 (expand_call_inline): Set entry_bb.
25999 * tree-inline.h (copy_body_data): Add entry_bb.
26000
2092ee7d
JJ
260012008-01-03 Jakub Jelinek <jakub@redhat.com>
26002
cac67c08
JJ
26003 PR c++/34619
26004 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
26005 before returning.
26006
2092ee7d
JJ
26007 PR tree-optimization/29484
26008 * tree-inline.c (inline_forbidden_p_2): New function.
26009 (inline_forbidden_p): Disallow inlining if some static var
26010 has an address of a local LABEL_DECL in its initializer.
26011 * doc/extend.texi (Labels as Values): Document &&foo behaviour
26012 vs. inlining.
26013
2726bafe 260142008-01-03 Sebastian Pop <sebastian.pop@amd.com>
097392de
SP
26015
26016 PR tree-optimization/34635
26017 * tree-data-ref.c (add_other_self_distances): Make sure that the
26018 evolution step is constant.
26019
99819c63
JJ
260202008-01-03 Jakub Jelinek <jakub@redhat.com>
26021
26022 PR middle-end/34608
12a6309e 26023 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
99819c63 26024
1463dfa4
RS
260252008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
26026
26027 * tree-sra.c (scalarize_init): Insert the generate_element_init
26028 statements after the generate_element_zero statements.
26029
ee6ec666
RG
260302008-01-02 Richard Guenther <rguenther@suse.de>
26031
26032 PR middle-end/34093
26033 PR middle-end/31976
26034 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
26035 for very large number of operands instead of ICEing.
26036
6893e828
AN
260372008-01-02 Arthur Norman <acn1@cam.ac.uk>
26038
12a6309e 26039 PR target/34013
d0fb20be 26040 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6893e828
AN
26041 while stack probing.
26042
1a7817e4
DG
260432008-01-01 Douglas Gregor <doug.gregor@gmail.com>
26044
6893e828 26045 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12a6309e 26046 in C++0x mode.
1a7817e4 26047
882e337b
VR
260482008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
26049
26050 PR libmudflap/26442
26051 * tree-mudflap.c (mx_register_decls): Guard warning by
26052 !DECL_ARTIFICIAL check.
26053
f02ffa12
JJ
260542008-01-01 Jakub Jelinek <jakub@redhat.com>
26055
26056 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
26057 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
26058 sse5_perm<mode>): Fix constraints.