]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR target/37610 (FAIL: g++.dg/eh/pr29166.C execution test)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
6e97481b
JJ
12008-12-03 Jakub Jelinek <jakub@redhat.com>
2
3 PR target/37610
4 * configure.ac (gcc_cv_readelf): Look for readelf.
5 (gcc_cv_as_cfi_advance_working): Check for working
6 cfi advances with code alignment factor > 1.
7 (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
8 don't work properly.
9 * configure: Regenerated.
10
0ce2b299
EB
112008-12-03 Eric Botcazou <ebotcazou@adacore.com>
12 Jakub Jelinek <jakub@redhat.com>
13 Andrew Pinski <andrew_pinski@playstation.sony.com>
14
15 PR rtl-optimization/38281
16 * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
17 set it to NULL_RTX afterwards.
18
19 * emit-rtl.c (set_insn_deleted): Fix formatting.
20
0767b03f
RS
212008-12-02 Richard Sandiford <rdsandiford@googlemail.com>
22
23 * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
24 error return value.
25 * config/mips/mips.md (IMOVE32): New mode iterator.
26 (movsi): Generalize with IMOVE32.
27 (*movsi_internal): Likewise.
1ba62f90 28 (*mov<mode>_mips16): Likewise.
0767b03f
RS
29 (*lwxs): Likewise.
30
c1af059c
NS
312008-12-02 Nathan Sidwell <nathan@codesourcery.com>
32 Maxim Kuvyrkov <maxim@codesourcery.com>
33
34 * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
35 PC-relative addressing when compiling for uclinux PIC.
36 (__cmpdf_internal, __cmpsf_internal): Hide.
37 (__cmpdf, __cmpsf): Use PIC call sequence.
38
664cd485
AT
392008-12-02 Andreas Tobler <a.tobler@schweiz.org>
40 Jack Howarth <howarth@bromo.med.uc.edu>
41
42 * config/i386/t-darwin64: Add m32 multilib support.
43
4cf57fd8
JH
442008-12-02 Jack Howarth <howarth@bromo.med.uc.edu>
45
46 * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
47
fe5c443e
JJ
482008-12-02 Jakub Jelinek <jakub@redhat.com>
49
50 PR middle-end/38343
51 * builtins.c (fold_builtin_memory_op): Convert len to sizetype
52 before using it in POINTER_PLUS_EXPR.
53
bd170bbc
RG
542008-12-02 Richard Guenther <rguenther@suse.de>
55
56 PR tree-optimization/38359
57 * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
58 non-negative x.
59
d47a0151
MJ
602008-12-02 Martin Jambor <mjambor@suse.cz>
61
62 PR middle-end/37861
63 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
64 for INDIRECT_REFs.
65 (forward_propagate_addr_into_variable_array_index): Check that the
66 offset is not computed from a MULT_EXPR, use is_gimple_assign rather
67 than the gimple code directly.
68
96e4a79f
BE
692008-12-02 Ben Elliston <bje@au.ibm.com>
70
71 * config/spu/float_disf.c (__floatdisf): Prototype.
72 * config/spu/float_unsdisf.c (__float_undisf): Likewise.
73 * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
74 * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
75
b72bbbcb
DD
762008-12-02 DJ Delorie <dj@redhat.com>
77
78 * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
79 (DWARF_CIE_DATA_ALIGNMENT): Define.
80
81 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
82 Invert add/sub for INCOMING_FRAME_SP_OFFSET.
83 (xstormy16_expand_prologue): Likewise.
84 (xstormy16_expand_builtin_va_start): Likewise.
85 (xstormy16_gimplify_va_arg_expr): Likewise.
86
0d2a6e08
JJ
872008-12-02 Jakub Jelinek <jakub@redhat.com>
88
89 PR middle-end/38343
90 * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
91 potentially returned from folding memcpy.
92 (expand_builtin_stpcpy_args): Similarly for folding strcpy.
93 (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
94
952008-12-02 Danny Smith <dannysmith@users.sourceforge.net>
bfb139b4
DS
96
97 PR target/38054
98 * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
99 decoration of function RTL names here on Ada language.
100
c6bb4c93
VM
1012008-12-01 Vladimir Makarov <vmakarov@redhat.com>
102
103 PR rtl-optimization/38280
104 * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
105 ira_rebuild_regno_allocno_list): New functions.
106 (regno_allocnos): New static variable.
107 (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
108 Call ira_rebuild_regno_allocno_list.
109
c3708565
DD
1102008-12-01 David Daney <ddaney@caviumnetworks.com>
111 Adam Nemet <anemet@caviumnetworks.com>
112
113 * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
114 LINUX_DRIVER_SELF_SPECS.
115
bf8ba8ab
VM
1162008-12-01 Vladimir Makarov <vmakarov@redhat.com>
117
118 PR rtl-optimization/37514
119 * reload1.c (reload_as_needed): Invalidate reg_last_reload
120 from previous insns.
121
193a3681
JJ
1222008-12-01 Jakub Jelinek <jakub@redhat.com>
123
956adfaf
JJ
124 PR c++/38348
125 * c-omp.c (c_finish_omp_for): Only transform pointer
126 ++ or -- into MODIFY_EXPR if second argument is non-NULL.
127
193a3681
JJ
128 PR rtl-optimization/38245
129 * tree-vrp.c (abs_extent_range): New function.
130 (extract_range_from_binary_expr): Compute range
131 for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
132 or includes zero or if vr1 is VR_RANGE and op0 has some
133 other range.
134
d04dceb5
UB
1352008-12-01 Uros Bizjak <ubizjak@gmail.com>
136
137 PR middle-end/37908
138 * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
139 case by calculating ~(new_reg & val) instead of (~new_reg & val).
140 * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
141 to (not:I48MODE (and:I48MODE (...))).
142 (sync_old_nand<mode>): Ditto.
143 (sync_new_nand<mode>): Ditto.
144
d40ba0b6
NC
1452008-12-01 Nick Clifton <nickc@redhat.com>
146
147 * config/stormy16/stormy16.md (CARRY_REG): New constant.
148 Replace uses of the "y" register class with direct references to
149 the CARRY_REG register.
150 * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
151 register with clobbers of the carry register.
152 (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
153 (xstormy16_split_cbranch): Remove redundant carry parameter.
154 (xstormy16_expand_arith): Likewise.
155 * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
156 (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
157 REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
158 (CARRY_REGNUM): Define.
159 * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
160 Update prototype.
161 (xstormy16_expand_arith): Likewise.
162
e8ddcbf9
CL
1632008-12-01 Chen Liqin <liqin.chen@sunplusct.com>
164
165 * config/score/score.h (IRA_COVER_CLASSES): Define.
166
72b415c5
EB
1672008-11-30 Eric Botcazou <ebotcazou@adacore.com>
168
169 PR target/38287
170 * config/sparc/sparc.md (divsi3 expander): Remove constraints.
171 (divsi3_sp32): Add new alternative with 'K' for operand #2.
172 (cmp_sdiv_cc_set): Factor common string.
173 (udivsi3_sp32): Add new alternative with 'K' for operand #2.
174 Add TARGET_V9 case.
175 (cmp_udiv_cc_set): Factor common string.
176
07c9463a
JDA
1772008-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
178
179 PR middle-end/38283
180 * varasm.c (emutls_finish): Fix common registration.
181
6ac16442
JJ
1822008-11-29 Jakub Jelinek <jakub@redhat.com>
183
184 PR target/29987
185 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
186
f66f9865
DE
1872008-11-29 David Edelsohn <edelsohn@gnu.org>
188
189 * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
190 operand wrapped in NOT. Emit NAND as (ior (not X) (not Y)).
191 (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
192 * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
193 Call rs6000_emit_sync with CODE=NOT and unmodified operands.
194 Ignore sub-word case for now.
195 (sync_nand<mode>_internal): Represent NAND in RTL.
196 (sync_old_nand<mode): Same.
197 (sync_old_name<mode>_internal): Same.
198 (sync_new_nand<mode>): Same.
199 (sync_new_nand<mode>_internal): Same.
200 (sync_boolcshort_internal): Expect NAND.
201
249ae8f0
RG
2022008-11-28 Richard Guenther <rguenther@suse.de>
203
204 PR tree-optimization/37955
205 PR tree-optimization/37742
206 * tree-vect-transform.c (vectorizable_store): Remove assert for
207 compatible aliases.
208 (vectorizable_load): Likewise.
209
75af9746
RG
2102008-11-27 Richard Guenther <rguenther@suse.de>
211
212 * tree-ssa-structalias.c (intra_create_variable_infos): Make
213 a constraint for the static chain parameter.
214
bf85bc3d
BS
2152008-11-27 Bernd Schmidt <bernd.schmidt@analog.com>
216
217 * config/bfin/bfin.opt (micplb): New option.
218 * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
219 * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
220 ENABLE_WA_INDIRECT_CALLS): New macros.
221 * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
222 all 54x CPUs.
223 (indirect_call_p): New function.
224 (workaround_speculation): Handle anomaly 05-00-0426 when
225 ENABLE_WA_INDIRECT_CALLS is true.
226 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
227 __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
228 * doc/invoke.texi (Blackfin Options): Document -micplb.
229
58ad17cf
DD
2302008-11-26 DJ Delorie <dj@redhat.com>
231
232 * config/m32c/mov.md ("extendhipsi2"): New.
233
234 * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
235
236 * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
237 * config/m32c/mov.md (zero_extendqihi2): Likewise.
238
6411cd38
AN
2392008-11-26 Adam Nemet <anemet@caviumnetworks.com>
240
241 * config/mips/mips.md (clear_hazard): Rename to
242 clear_hazard_<mode>. Use mode-specific addition.
243 (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
244 or gen_clear_hazard_di depending on the size of Pmode.
245
15a43677
DD
2462008-11-26 DJ Delorie <dj@redhat.com>
247
248 * configure.ac: Test m32c-elf-gas for .loc.
249 * configure: Likewise.
250
d4038ca2
JJ
2512008-11-26 Janis Johnson <janis187@us.ibm.com>
252
253 PR testsuite/28870
254 * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
255 dg-timeout-factor.
256
13fd8947
UB
2572008-11-26 Uros Bizjak <ubizjak@gmail.com>
258
259 * config/i386/sync.md (memory_barrier_nosse): Disable also for
260 TARGET_64BIT. Remove special asm template for TARGET_64BIT case.
261 (memory_barrier): Do not generate memory_barrier_nosse instruction
262 for TARGET_64BIT.
263 * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
264
39dfdd20
FU
2652008-11-26 Fredrik Unger <fred@tree.se>
266
267 * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
268 function name from __floatundisf.
269 * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
270 DFtype.
271
3dc21182 2722008-11-25 Daniel Berlin <dberlin@dberlin.org>
39dfdd20 273 Richard Guenther <rguenther@suse.de>
3dc21182
DB
274
275 PR tree-optimization/37869
276 * tree-ssa-structalias.c (struct constraint_graph): Remove
277 pt_used and number_incoming members.
278 (build_pred_graph): Do not allocate them.
279 (condense_visit): Do not use them.
280 (label_visit): Likewise.
281 (free_var_substitution_info): Do not free them.
282
30ea859e
VM
2832008-11-25 Vladimir Makarov <vmakarov@redhat.com>
284
285 * doc/invoke.texi (ira-max-loops-num): Change semantics.
286
287 * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
288
289 * ira-color.c (allocno_spill_priority): New function.
290 (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
291 Print more info about the spilled allocno.
292 (push_allocnos_to_stack): Use allocno_spill_priority. Add more
293 checks on bad spill.
294
295 * ira-build.c (loop_node_to_be_removed_p): Remove.
296 (loop_compare_func, mark_loops_for_removal): New functions.
297 (remove_uneccesary_loop_nodes_from_loop_t): Use member
298 to_remove_p.
299 (remove_unnecessary_allocnos): Call mark_loops_for_removal.
300
301 * ira.c (ira): Don't change flag_ira_algorithm.
302
303 * params.def (ira-max-loops-num): Change the value.
304
5a1c3c10
MK
3052008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com>
306
307 * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
308 Disable unsupported alternative for ColdFire,
309 add new alternative that ColdFire can handle.
310
32fc3abf
EB
3112008-11-25 Eric Botcazou <ebotcazou@adacore.com>
312
313 * regrename.c (merge_overlapping_regs): Add registers artificially
314 defined at the top of the basic block to the set of live ones just
315 before the first insn.
316
d35a1ef1
L
3172008-11-25 H.J. Lu <hongjiu.lu@intel.com>
318 Joey Ye <joey.ye@intel.com>
319
320 PR middle-end/37843
321 * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
322 false if we need to align the outgoing stack.
323 (ix86_update_stack_boundary): Check parm_stack_boundary.
324
b0ff8d7a
RG
3252008-11-25 Richard Guenther <rguenther@suse.de>
326
327 PR middle-end/38151
328 PR middle-end/38236
329 * tree-ssa-alias.c (struct alias_info): Remove written_vars.
330 Remove dereferenced_ptrs_store and dereferenced_ptrs_load
331 in favor of dereferenced_ptrs.
332 (init_alias_info): Adjust.
333 (delete_alias_info): Likewise.
334 (compute_flow_insensitive_aliasing): Properly
335 include all aliased variables.
336 (update_alias_info_1): Use dereferenced_ptrs.
337 (setup_pointers_and_addressables): Likewise.
338 (get_smt_for): Honor ref-all pointers and pointers with known alias
339 set properly.
340 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
341
decc2ec3
UB
3422008-11-25 Uros Bizjak <ubizjak@gmail.com>
343
b5d9f5d4 344 PR target/38254
13fd8947 345 * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
decc2ec3
UB
346 (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
347
467a1bf1
MK
3482008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
349
350 * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
351
370d36c6
RS
3522008-11-24 Richard Sandiford <rdsandiford@googlemail.com>
353
354 * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
355
5ad2f1a5
MK
3562008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com>
357
358 PR target/35018
359 * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
360 (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
361
148153c1
UB
3622008-11-24 Uros Bizjak <ubizjak@gmail.com>
363
364 * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
365 UNSPECV_CMPXCHG_[12].
366 * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
367 UNSPECV_CMPXCHG_[12].
368
369 PR target/36793
370 * config/i386/sync.md (memory_barrier): New expander.
371
72a2609f
JJ
3722008-11-24 Jakub Jelinek <jakub@redhat.com>
373
374 PR middle-end/37135
375 * dse.c (find_shift_sequence): Optimize extraction from a constant.
376
e4b95210
JDA
3772008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
378
379 * pa.c (function_arg): Revert 2008-10-26 change.
380
74e6a475
HD
3812008-11-23 Helge Deller <deller@gmx.de>
382
383 * pa/linux-atomic.c (EBUSY): Define if not _LP64.
384 (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
385 succeeded and lws_ret is not equal to oldval.
386
8d8f087a
KK
3872008-11-23 Kaz Kojima <kkojima@gcc.gnu.org>
388
389 * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
390
714832c9
AS
3912008-11-22 Andreas Schwab <schwab@suse.de>
392
393 * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
394 -dA and -dP.
395
9d50ba21
AN
3962008-11-22 Adam Nemet <anemet@caviumnetworks.com>
397
398 * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
399 Use constant 1 as the operand.
400 * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
401 Rename gen_rdhwr to gen_rdhwr_synci_step_si or
402 gen_rdhwr_synci_step_di depending on the size of Pmode.
403
a00ce5fe
UB
4042008-11-22 Uros Bizjak <ubizjak@gmail.com>
405
406 PR target/38222
407 * config/i386/i386.md (SWI248): New mode iterator.
408 (SWI32): Remove mode iterator.
409 (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
410 popcounthi2 insn patterns. Macroize pattern using SWI248 mode
411 iterator. Generate popcnt mnemonic without mode extensions
412 for Darwin x86 targets.
413 (*popcount<mode>2_cmp): Ditto.
414 (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
415 extensions for Darwin x86 targets.
416
f06fb22b
EB
4172008-11-22 Eric Botcazou <ebotcazou@adacore.com>
418
419 * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
420 only if HAVE_AS_SPARC_UA_PCREL is defined.
421
61ad6db1
RS
4222008-11-22 Richard Sandiford <rdsandiford@googlemail.com>
423
424 * ira-costs.c (find_allocno_class_costs): Work out the maximum
425 allocno_costs value of the classees with the lowest total_costs
426 value. Use this to set ALLOCNO_COVER_CLASS_COST here...
427 (setup_allocno_cover_class_and_costs): ...rather than here.
428 Use the ALLOCNO_COVER_CLASS_COST for all registers in the
429 preferred class.
430
3b139014
JJ
4312008-11-22 Jakub Jelinek <jakub@redhat.com>
432
b6500984
JJ
433 PR middle-end/37323
434 * builtins.c (expand_builtin_apply_args): Emit sequence before
435 parm_birth_insn instead of after entry_of_function's first insn.
436
bbd46fd5
JJ
437 PR middle-end/37316
438 * function.c (assign_parm_remove_parallels): Pass
439 data->passed_type as third argument to emit_group_store.
440
b7c7b768
JJ
441 PR target/37170
442 * final.c (mark_symbol_refs_as_used): New function.
443 * output.h (mark_symbol_refs_as_used): New prototype.
444 * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
445 (s390_output_pool_entry): Use mark_symbol_refs_as_used.
446 * config/arm/arm.md (consttable_4): Likewise.
447
3b139014
JJ
448 PR target/37880
449 * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
450
88e091c3
JJ
4512008-11-21 Jakub Jelinek <jakub@redhat.com>
452
453 PR middle-end/38200
454 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
455 propagate x = &a into *x = b if conversion from b to a's type is
456 useless.
457
0e51e769
EB
4582008-11-21 Eric Botcazou <ebotcazou@adacore.com>
459
460 * caller-save.c (insert_one_insn): Take into account REG_INC notes
461 for the liveness computation of the new insn.
462
015e1120
DD
4632008-11-21 DJ Delorie <dj@redhat.com>
464
465 * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
466 Moves to/from below100 space (W) can only use r0-r7.
467
ec01436d
PC
4682008-11-21 Paolo Carlini <paolo.carlini@oracle.com>
469
470 PR other/38214
471 * doc/invoke.texi (Optimization Options): Fix typo.
472
04a412f9
L
4732008-11-21 H.J. Lu <hongjiu.lu@intel.com>
474 Xuepeng Guo <xuepeng.guo@intel.com>
475
476 * config.gcc (extra_headers): For x86 and x86-64, remove
477 gmmintrin.h, add immintrin.h and avxintrin.h.
478
479 * config/i386/gmmintrin.h: Renamed to ...
e548e2c0 480 * config/i386/avxintrin.h: This. Issue an error if
04a412f9
L
481 _IMMINTRIN_H_INCLUDED is undedined.
482
483 * config/i386/immintrin.h: New.
484
231a1e52
JJ
4852008-11-21 Jakub Jelinek <jakub@redhat.com>
486
487 PR target/38208
488 * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
489 mode of PLUS, not mode of the eliminated register.
490
c6d55c5b
UB
4912008-11-21 Uros Bizjak <ubizjak@gmail.com>
492
493 * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
494 * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
495 (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
496 (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
497 (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
498 (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
499 (*nand<mode>3): Rename to *andnot<mode>3.
500 (*nandtf3): rename to *andnottf3.
501 * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
502 Use CODE_FOR_mmx_andnotv2si3.
503 [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
504 [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
505 [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
506 [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
507 [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
508
974920dc
UB
5092008-11-21 Uros Bizjak <ubizjak@gmail.com>
510
511 PR middle-end/37908
d04dceb5 512 * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
974920dc
UB
513 case by calculating ~(new_reg & val) instead of (~new_reg & val).
514 * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
515 to (not:IMODE (and:IMODE (...))).
516 (sync_old_nand<mode>): Ditto.
517 (sync_new_nand<mode>): Ditto.
518
f72d3365
JM
5192008-11-20 Joseph Myers <joseph@codesourcery.com>
520
521 * config/arm/thumb2.md (thumb2_casesi_internal,
974920dc 522 thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
f72d3365 523
6a238c58
AK
5242008-11-20 Andreas Krebbel <krebbel1@de.ibm.com>
525
526 * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
527 nand to the changed 4.4 semantic.
528
1fd8faf0
JJ
5292008-11-20 Jakub Jelinek <jakub@redhat.com>
530
81f5094d
JJ
531 PR middle-end/29215
532 * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
533 (fold_builtin_memory_op): Handle even the case where just one
534 of src and dest is an address of a var decl component, using
535 TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant
536 and readonly_data_expr src check.
537 * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
538 up warnings.
539
1fd8faf0
JJ
540 PR rtl-optimization/36998
541 * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
542 arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
543 (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
544 stack_adjust_offset callers.
545 (dwarf2out_stack_adjust): Likewise. Handle insns in annulled
546 branches properly.
547 (compute_barrier_args_size): Handle insns in annulled branches
548 properly.
549
b52b558a
UB
5502008-11-20 Uros Bizjak <ubizjak@gmail.com>
551
552 PR target/38151
553 * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
554 Handle cases when integer argument crosses argument register boundary.
555
19523300
RO
5562008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
557
558 PR bootstrap/33100
559 * config.gcc (i[34567]86-*-solaris2*): Don't include
560 i386/t-crtstuff here.
561 Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
562 * config/i386/t-sol2: Move to libgcc/config/i386.
563
e29354d4
ST
5642008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
565
97e274e7 566 PR driver/21706
e29354d4
ST
567 * tlink.c: Include "libiberty.h".
568 (initial_cwd): Change type into char *.
569 (tlink_init): Call getpwd instead of getcwd.
570
dc5b3407
ZD
5712008-11-19 Zdenek Dvorak <ook@ucw.cz>
572
573 PR rtl-optimization/32283
574 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
575 of the induction variable to decide whether it may wrap.
b52b558a
UB
576 * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
577 initialization of the bound before the loop.
578 * simplify-rtx.c (simplify_binary_operation_1): Add two
579 simplifications regarding AND.
dc5b3407
ZD
580 (simplify_plus_minus): Only fail if no simplification is possible.
581 * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
582
f9487002
JJ
5832008-11-20 Jakub Jelinek <jakub@redhat.com>
584
585 PR c++/36631
586 * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
587 checking until GIMPLE lowering.
588 * gimple-low.c (check_call_args): New function.
589 (lower_stmt) <case GIMPLE_CALL>: Call it.
590
3179cf8c
AN
5912008-11-19 Adam Nemet <anemet@caviumnetworks.com>
592
593 * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
594 with the same type as the first operand of the AND expression.
595
ea1c67e6
VM
5962008-11-19 Vladimir Makarov <vmakarov@redhat.com>
597
598 PR bootstrap/37859
599 * ira-int.h (struct ira_loop_tree_node): New member
600 entered_from_non_parent_p.
601
602 * ira-color.c (print_loop_title): Print loop bbs.
603
604 * ira-emit.c (entered_from_non_parent_p,
605 setup_entered_from_non_parent_p): New functions.
606 (not_modified_p): Rename to store_can_be_removed_p. Check there
607 is no side entries.
608 (generate_edge_moves): Use store_can_be_removed_p instead of
609 not_modified_p.
610 (ira_emit): Call setup_entered_from_non_parent_p.
611
612 * ira-build.c (copy_info_to_removed_store_destinations):
613 Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
614 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
615 (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
616 update all accumulated attributes.
617
6182008-11-19 Vladimir Makarov <vmakarov@redhat.com>
3553f0bb
VM
619
620 PR bootstrap/37790
621 * ira-int.h (ira_copy_allocno_live_range_list,
974920dc 622 ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
3553f0bb
VM
623 ira_finish_allocno_live_range_list): New prototypes.
624 (ira_allocno_live_ranges_intersect_p,
625 ira_pseudo_live_ranges_intersect_p): Remove.
626
627 * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
628 ira_pseudo_live_ranges_intersect_p): Rename to
629 allocnos_have_intersected_live_ranges_p and
b52b558a 630 pseudos_have_intersected_live_ranges_p. Move them from here to ...
3553f0bb
VM
631
632 * ira-color.c: ... here
633 (coalesced_allocno_conflict_p): Use
634 allocnos_have_intersected_live_ranges_p.
635 (coalesced_allocnos_living_at_program_points,
636 coalesced_allocnos_live_at_points_p,
637 set_coalesced_allocnos_live_points): Remove.
638 (slot_coalesced_allocnos_live_ranges,
639 slot_coalesced_allocno_live_ranges_intersect_p,
640 setup_slot_coalesced_allocno_live_ranges): New.
641 (coalesce_spill_slots): Use ranges of coalesced allocnos.
642 (ira_sort_regnos_for_alter_reg): Use
643 allocnos_have_intersected_live_ranges_p.
644 (ira_reuse_stack_slot): Use
645 pseudos_have_intersected_live_ranges_p.
646
647 * global.c (pseudo_for_reload_consideration_p): Check
648 flag_ira_share_spill_slots too.
649
650 * ira-build.c (copy_allocno_live_range_list): Rename to
651 ira_copy_allocno_live_range_list. Make it external.
652 (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it
653 external.
654 (ira_allocno_live_ranges_intersect_p): New.
655 (ira_finish_allocno_live_range_list): New.
656 (finish_allocno): Use it.
657 (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
658 (copy_info_to_removed_store_destinations): Ditto. Use
659 ira_copy_allocno_live_range_list.
660 (ira_flattening): Use ira_merge_allocno_live_ranges.
661
662 * ira.c (too_high_register_pressure_p): New function.
663 (ira): Switch off sharing spill slots if the pressure is too high.
664
98665861
RG
6652008-11-19 Richard Guenther <rguenther@suse.de>
666
667 * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
b52b558a 668 non-sizetype offsets if their precision matches that of the pointer.
98665861
RG
669 * expr.c (expand_expr_real_1): Always sign-extend the offset
670 operand of a POINTER_PLUS_EXPR.
671
059c51ec
RO
6722008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
673
674 * config.gcc: Unobsolete mips-sgi-irix[56]*.
675 (mips-sgi-irix[56]*): No need to use fixproto.
676
74cc88a6
MK
6772008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
678 Paul Brook <paul@codesourcery.com>
679
680 * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
681 executable stack.
682
00b2ef14
MK
6832008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com>
684
685 * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
686
c0399c47
RL
6872008-11-19 Razya Ladelsky <razya@il.ibm.com>
688
b52b558a
UB
689 PR target/38156
690 * tree-parloops.c (loop_parallel_p): NULL vect_dump.
c0399c47
RL
691 (separate_decls_in_region): Create shared struct even when there
692 are only reductions.
693
fc6f1e05 6942008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com>
974920dc 695
fc6f1e05
HS
696 * config/picochip/picochip.c (headers): Remove an unnecessary
697 header file.
698
1afac9a6
AS
6992008-11-19 Andrew Stubbs <ams@codesourcery.com>
700
701 PR target/36133
702 * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
703 * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
704 shift instructions.
705 * config/m68k/m68k.md: Adjust all conditional branches that use the
706 carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
707
8afb0605
UB
7082008-11-18 Uros Bizjak <ubizjak@gmail.com>
709
710 PR target/37362
711 * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
712 is a register or zero operand in the correct mode before generating
713 mtch1 insn or a register operand in the correct mode before generating
714 mfch1 insn.
715 (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
716
0a4a51c7
AN
7172008-11-18 Adam Nemet <anemet@caviumnetworks.com>
718
719 * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
720 (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
721 mipsisa*-*-elf*. Handle mipsisa64r2*.
722 * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
723 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
724 mips64r2.
725 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
726 * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
727 mips64r2.
728 (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16.
729 Fix mips16 if mips64 or mips64r2 are multilib defaults.
730 * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
731 mips64r2.
732
6ea90eb7
JJ
7332008-11-18 Jakub Jelinek <jakub@redhat.com>
734
735 PR target/38130
736 * config/i386/i386.md (allocate_stack_worker_32,
737 allocate_stack_worker_64): Don't use match_dup between input and
738 output operand.
739 (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
740 * config/i386/i386.c (ix86_expand_prologue): Likewise.
741
3dae586d
KT
7422008-11-18 Kai Tietz <kai.tietz@onevision.com>
743
744 * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
745 is forced when trying to do a symbol link for it.
746
a990abff
AN
7472008-11-17 Adam Nemet <anemet@caviumnetworks.com>
748
749 * expmed.c (extract_bit_field_1): Also use a temporary and
750 convert_extracted_bit_field when the conversion from ext_mode to
751 the target mode requires explicit truncation.
752
e08be11c
RS
7532008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
754
755 * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
756 Tweak formatting.
757 * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
758 registers when not optimizing.
759
839380ee
RS
7602008-11-17 Richard Sandiford <rdsandiford@googlemail.com>
761
762 * config/mips/mips.md (*mul_acc_si): Remove middle alternative
763 and its associated define_split. Expose the all-d alternative
764 to the register allocator, but mark it with "?". Mark the first
765 alternative with "*?*?".
766 (*mul_sub_si): Likewise.
767 (*mul_acc_si_r3900): New pattern.
768
286ba5b3
JJ
7692008-11-17 Jakub Jelinek <jakub@redhat.com>
770
771 PR middle-end/38140
772 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
773 propagating x = &a into *x = b, add a cast if not useless
774 type conversion or don't optimize if another stmt would be
775 needed.
776
23462d4d
UB
7772008-11-17 Uros Bizjak <ubizjak@gmail.com>
778
779 PR middle-end/37908
780 * optabs.c (expand_sync_operation): Properly handle NAND case
781 by calculating ~(t1 & val) instead of (~t1 & val).
782 * builtins.c (expand_builtin_sync_operation): Warn for changed
783 semantics in NAND builtins.
784 * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand.
785
786 * doc/invoke.texi (Warning options): Add Wsync-nand.
787 * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
788 __sync_fetch_and_nand builtin operation in the example. Add a note
789 about changed semantics in GCC 4.4.
790 [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
791 operation in the example. Add a note about changed semantics in
792 GCC 4.4.
793
d3ea650c
JH
7942008-11-16 Jan Hubicka <jh@suse.cz>
795
796 * cgraph.c (cgraph_function_body_availability): Fix test of externally
797 visible.
798
304b14b1
JK
7992008-11-16 Joshua Kinard <kumba@gentoo.org>
800
801 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
802 to -mips4.
803
7cc003b5
RS
8042008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
805
806 PR target/38052
807 * config/mips/mips.c (mips_cfun_call_saved_reg_p)
808 (mips_cfun_might_clobber_call_saved_reg_p): New functions,
809 split out from...
810 (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP
811 rather than call_really_used_regs when handling $gp.
812
8d9d9172
RS
8132008-11-16 Richard Sandiford <rdsandiford@googlemail.com>
814
815 PR target/38052
816 * config/mips/mips.c (machine_function): Update the comment
817 above global_pointer.
818 (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
819 that a function doesn't need a global pointer.
820 (mips_current_loadgp_style): Update accordingly.
821 (mips_restore_gp): Likewise.
822 (mips_output_cplocal): Likewise.
823 (mips_expand_prologue): Likewise.
824
26237a50
EB
8252008-11-16 Eric Botcazou <ebotcazou@adacore.com>
826
827 * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
b52b558a 828 parameter. Use DImode for computing the number of registers.
26237a50
EB
829 (function_arg): Adjust for above change.
830 (function_value): Likewise.
831
4c533e5a
ZD
8322008-11-15 Zdenek Dvorak <ook@ucw.cz>
833
834 PR tree-optimization/37950
835 * tree-flow-inline.h (memory_partition): Return NULL when aliases were
836 not computed for the current function.
837
6d8f280f
JJ
8382008-11-15 Jakub Jelinek <jakub@redhat.com>
839
840 PR target/38123
841 * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
842 gpr and other COMPONENT_REFs.
843
63894637
RG
8442008-11-15 Richard Guenther <rguenther@suse.de>
845
846 PR tree-optimization/38051
847 * tree-ssa-alias.c (update_alias_info_1): Manually find
848 written variables.
849
ee9a72e5
JK
8502008-11-15 Joshua Kinard <kumba@gentoo.org>
851
852 * doc/invoke.texi (-mfix-r10000): Document.
853 * config/mips/mips.opt (mfix-r10000): New option.
854 * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
855 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
856 (MIPS_COMPARE_AND_SWAP_12): Likewise.
857 (MIPS_SYNC_OP): Likewise.
858 (MIPS_SYNC_OP_12): Likewise.
859 (MIPS_SYNC_OLD_OP_12): Likewise.
860 (MIPS_SYNC_NEW_OP_12): Likewise.
861 (MIPS_SYNC_OLD_OP): Likewise.
862 (MIPS_SYNC_NAND): Likewise.
863 (MIPS_SYNC_OLD_NAND): Likewise.
864 (MIPS_SYNC_EXCHANGE): Likewise.
865 (MIPS_SYNC_EXCHANGE_12): Likewise.
866 (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
867 delay slots.
868 (MIPS_SYNC_NEW_NAND): Likewise.
869 * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
870 (mips_init_print_operand_punct): Treat '~' as a punctuation character.
871 (mips_output_sync_loop): New function.
872 (mips_override_options): Make -march=r10000 imply -mfix-r10000.
873 Make -mfix-r10000 require branch-likely instructions.
874 * config/mips/sync.md (sync_compare_and_swap<mode>): Use
875 mips_output_sync_loop.
876 (compare_and_swap_12): Likewise.
877 (sync_add<mode>): Likewise.
878 (sync_<optab>_12): Likewise.
879 (sync_old_<optab>_12): Likewise.
880 (sync_new_<optab>_12): Likewise.
881 (sync_nand_12): Likewise.
882 (sync_old_nand_12): Likewise.
883 (sync_new_nand_12): Likewise.
884 (sync_sub<mode>): Likewise.
885 (sync_old_add<mode>): Likewise.
886 (sync_old_sub<mode>): Likewise.
887 (sync_new_add<mode>): Likewise.
888 (sync_new_sub<mode>): Likewise.
889 (sync_<optab><mode>): Likewise.
890 (sync_old_<optab><mode>): Likewise.
891 (sync_new_<optab><mode>): Likewise.
892 (sync_nand<mode>): Likewise.
893 (sync_old_nand<mode>): Likewise.
894 (sync_new_nand<mode>): Likewise.
895 (sync_lock_test_and_set<mode>): Likewise.
896 (test_and_set_12): Likewise.
897
708bceb7
EB
8982008-11-15 Eric Botcazou <ebotcazou@adacore.com>
899
900 * gcc.c (cc1_options): Fix comment.
901
b70cef5d
JJ
9022008-11-15 Jakub Jelinek <jakub@redhat.com>
903
904 PR c++/37561
905 * c-typeck.c (build_unary_op): Don't call get_unwidened. Use
906 argtype instead of result_type.
907
af51c885
AN
9082008-11-14 Adam Nemet <anemet@caviumnetworks.com>
909
910 * ira-int.h (struct ira_loop_tree_node): Improve comments for
911 subloop_next/next and subloops/childen fields.
912
5800e0a0
UW
9132008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
914
915 * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
916 (STANDARD_INCLUDE_DIR): Redefine to "/include".
917 (LOCAL_INCLUDE_DIR): Undefine.
918 * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
919
927425df
VM
9202008-11-14 Vladimir Makarov <vmakarov@redhat.com>
921
922 PR rtl-optimization/37397
923 * ira-int.h (struct ira_allocno): New member bad_spill_p.
924 (ALLOCNO_BAD_SPILL_P): New macro.
925
926 * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
927
8afb0605 928 * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
927425df 929 (create_cap_allocno, propagate_allocno_info,
8afb0605 930 remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
927425df
VM
931 (update_bad_spill_attribute): New function.
932 (ira_build): Call it.
933
934 * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
935
f93bc6f5
JJ
9362008-11-14 Jakub Jelinek <jakub@redhat.com>
937
938 PR tree-optimization/38104
939 * gimplify.c (gimple_regimplify_operands): Add referenced vars
940 before calling mark_symbols_for_renaming, not after it.
941
11cc65d4
KK
9422008-11-14 Kaz Kojima <kkojima@gcc.gnu.org>
943
944 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
945 (OVERRIDE_OPTIONS): Likewise.
946
7279bb22
MK
9472008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com>
948 Andrew Stubbs <ams@codesourcery.com>
949 Gunnar Von Boehn <gunnar@genesi-usa.com>
950
951 PR target/36134
952 * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
953 the shorter LEA insn over ADD.L where possible.
954
22f96a0f
TS
9552008-11-14 Thomas Schwinge <tschwinge@gnu.org>
956
4cc115a2
TS
957 * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
958 systems, which are assumend to always provide SSP-support in glibc.
23462d4d
UB
959 Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
960 case.
22f96a0f
TS
961 * configure: Regenerate.
962
04487a2f
JJ
9632008-11-14 Jakub Jelinek <jakub@redhat.com>
964
965 PR middle-end/36125
966 * function.c (gimplify_parameters): For callee copies parameters,
967 move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
968
3328a3b7
TS
9692008-11-13 Thomas Schwinge <tschwinge@gnu.org>
970
971 PR target/28102
23462d4d
UB
972 * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
973 x86 parts into the `i[34567]86-*-linux*' and parts that are
974 independent of the processor architecture into the `*-*-linux*' cases.
3328a3b7
TS
975 (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
976 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
977 (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
978 [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
979 * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
980 (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
981 (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
982
1a0f175d
RB
9832008-11-13 Ruan Beihong <ruanbeihong@gmail.com>
984
985 * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
986 * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
987 (ls2_idiv): Likewise idiv3.
988 (ls2_prefetch): New reservation.
989 * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
990 * config/mips/mips.md (type): Add imul3nc and idiv3.
991 (length): Handle idiv3.
992 (any_mod): New code_iterator.
993 (u): Handle MOD and UMOD.
994 (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
995 (prefetch): Handle TARGET_LOONGSON_2EF.
996
2db56bbc
JJ
9972008-11-13 Jakub Jelinek <jakub@redhat.com>
998
999 PR c++/27017
1000 * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
1001 (prune_unused_types_walk): Call it for non-perennial local classes.
1002 Set die_mark to 2 if recursing on children. If die_mark is 1 on
1003 entry, just set it to 2 and recurse on children, don't walk attributes
1004 again.
1005
a231ffe5
MM
10062008-11-13 Martin Michlmayr <tbm@cyrius.com>
1007
1008 * c-common.c (warn_about_parentheses): Add missing whitespace
1009 in warning.
1010
5fd42423
PB
10112008-11-13 Paul Brook <paul@codesourcery.com>
1012
1013 * doc/invoke.texi: Document --fix-cortex-m3.
1014 * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
1015 Cortex-M3 cpu is selected.
1016 (output_move_double): Avoid overlapping base register and first
1017 destination register when fix_cm3_ldrd.
1018 * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
1019
cea094ed
JJ
10202008-11-13 Jakub Jelinek <jakub@redhat.com>
1021
1022 PR bootstrap/38100
1023 * gimple.h (gimple_range_check_failed): Remove prototype.
1024 * gimple.c (gimple_check_failed): Don't check GCC_VERSION
1025 in guarding #if.
1026 (gimple_range_check_failed): Removed.
1027
3b539195
AH
10282008-11-13 Andrew Haley <aph@redhat.com>
1029
1030 PR bootstrap/38088
1031 * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
1032 __LONG_LONG_MAX__.
1033
084eb830
JJ
10342008-11-12 Jakub Jelinek <jakub@redhat.com>
1035
1036 PR c++/36478
1037 Revert:
1038 2007-05-07 Mike Stump <mrs@apple.com>
1039 * doc/invoke.texi (Warning Options): Document that -Wempty-body
1040 also checks for and while statements in C++.
1041
6b20f353
DS
10422008-11-12 Dodji Seketeli <dodji@redhat.com>
1043
1044 PR debug/27574
1045 * cgraph.h: New abstract_and_needed member to struct cgraph_node.
1046 * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
1047 - which clones are reachable - as "abstract and needed".
f42ab145
DS
1048 * cgraph.c (cgraph_release_function_body): If a node is
1049 "abstract and needed", do not release its DECL_INITIAL() content
1050 that will be needed to emit debug info.
6b20f353 1051
e61c76c9
SE
10522008-11-12 Steve Ellcey <sje@cup.hp.com>
1053
1054 PR target/27880
1055 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
1056 to set HAVE_GETIPINFO.
1057 * aclocal.m4: Include ../config/unwind_ipinfo.m4.
1058 * configure: Regenerate.
1059 * config.in: Regenerate.
1060
a3422e30
JH
10612008-11-12 Jack Howarth <howarth@bromo.med.uc.edu>
1062
1063 PR bootstrap/38010
1064 * gcc/config.gcc: Use darwin9.h on darwin10 as well.
1065
cfcd6a98
JJ
10662008-11-12 Jakub Jelinek <jakub@redhat.com>
1067
1068 Revert:
1069 2008-10-21 Jakub Jelinek <jakub@redhat.com>
b1f80fe1 1070 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
cfcd6a98 1071
41b81065
JM
10722008-11-12 Jason Merrill <jason@redhat.com>
1073
1074 PR c++/38007
1075 * c-common.c (c_common_signed_or_unsigned_type): Remove C++
1076 special casing.
1077
dea4e8d0
AS
10782008-11-12 Anatoly Sokolov <aesok@post.ru>
1079
1080 * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
1081 atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
1082 atmega32u6 devices.
1083 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1084 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1085
78791a80
AK
10862008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1087
1088 * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
1089 packed-stack special handling.
1090 (FRAME_ADDR_RTX): Add definition.
1091
27a4e072
JJ
10922008-11-12 Jakub Jelinek <jakub@redhat.com>
1093
1094 PR target/35366
1095 * fold-const.c (native_encode_string): New function.
1096 (native_encode_expr): Use it for STRING_CST.
1097
d2cf2f07
DD
10982008-11-12 DJ Delorie <dj@redhat.com>
1099
1100 * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
1101 insns if the intermediate value will be used later.
1102
429ce992
AS
11032008-11-12 Andreas Schwab <schwab@suse.de>
1104
1105 * config/m68k/m68k.c (print_operand): Mask off extra extension
1106 bits when writing out the representation of real values.
1107
46b0b69d
IR
11082008-11-12 Ira Rosen <irar@il.ibm.com>
1109
1110 PR tree-optimization/38079
1111 * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
1112 with vect_dump.
1113
8ebec1a5
JJ
11142008-11-12 Jakub Jelinek <jakub@redhat.com>
1115
66e68191
JJ
1116 PR c++/35334
1117 * c-pretty-print.c (pp_c_complex_expr): New function.
1118 (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
1119
8ebec1a5
JJ
1120 PR target/35366
1121 * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
1122 than INNER and INNER is a constant, forcibly align INNER as much
1123 as needed.
1124
1300342b
RS
11252008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
1126
1127 * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
1128
2f1e2391
RS
11292008-11-11 Richard Sandiford <rdsandiford@googlemail.com>
1130
1131 PR rtl-optimization/37363
23462d4d
UB
1132 * simplify-rtx.c (simplify_plus_minus): Don't create
1133 (const (minus ...)) expresisons.
2f1e2391 1134
5dbd125c
EB
11352008-11-11 Eric Botcazou <ebotcazou@adacore.com>
1136
1137 * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
1138 handling.
1139
7f75ae86
CM
11402008-11-10 Catherine Moore <clm@codesourcery.com>
1141
1142 * config.gcc (mips64vrel-*-elf*): Include the tm_file
1143 prior to vr.h.
1144 * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
1145 (BASE_DRIVER_SELF_SPECS): Remove.
1146 (DRIVER_SELF_SPECS): New definition.
1147 * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
1148 BASE_DRIVER_SELF_SPECS.
1149 * config/mips/sde.h: Likewise.
1150 * config/mips/iris6.h: Likewise.
1151 * config/mips/vr.h: Likewise.
1152 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
1153
b297d612 11542008-11-10 Vladimir Makarov <vmakarov@redhat.com>
b1f80fe1 1155
548a6322
VM
1156 PR rtl-optimizations/37948
1157 * ira-int.h (struct ira_allocno_copy): New member constraint_p.
1158 (ira_create_copy, ira_add_allocno_copy): New parameter.
1159
1160 * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it
1161 to ira_add_allocno_copy.
1162 (process_reg_shuffles, add_insn_allocno_copies): Pass a new
1163 parameter to process_regs_for_copy.
1164 (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
1165 Fix typo in passing second allocno to ira_add_allocno_copy.
1166
1167 * ira-color.c (update_conflict_hard_regno_costs): Use head of
1168 coalesced allocnos list.
1169 (assign_hard_reg): Ditto. Check that assigned allocnos are not in
1170 the graph.
1171 (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
1172 (add_ira_allocno_to_ordered_bucket): Rename to
1173 add_allocno_to_ordered_bucket.
1174 (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use
1175 head of coalesced allocnos list.
1176 (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
1177 Check that it is aready calculated.
1178 (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
1179 (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
1180 list.
1181 (coalesce_allocnos): Do extended coalescing too.
1182
1183 * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
1184 parameter to ira_add_allocno_copy.
1185
1186 * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
1187 parameter.
1188 (print_copy): Print copy origination too.
1189
1190 * ira-costs.c (scan_one_insn): Use alloc_pref for load from
1191 equivalent memory.
1192
befc2509
KK
11932008-11-10 Kaz Kojima <kkojima@gcc.gnu.org>
1194
1195 PR rtl-optimization/37514
1196 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
1197 flag_ira_share_spill_slots to 2 if it's already non-zero.
1198 (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
b297d612 1199 flag_ira_share_spill_slots is 2.
befc2509 1200
286f9bea
KB
12012008-11-10 Kevin Buettner <kevinb@redhat.com>
1202
1203 * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
1204 (prologue_enter_32): Set FB to SP - 4.
1205
600e668e
DD
12062008-11-10 DJ Delorie <dj@redhat.com>
1207
1208 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
1209 constraint for single-bit-clear in lower byte of HI constant, vs
1210 Imb which just ignores the upper byte.
1211 * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
1212 * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
1213 (iorhi3_16): Check for single bit set, not single bit clear.
1214
07e5b056
JJ
12152008-11-10 Janis Johnson <janis187@us.ibm.com>
1216
6f03c42c
JJ
1217 * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
1218
07e5b056
JJ
1219 * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
1220
852d22b4
EB
12212008-11-10 Eric Botcazou <ebotcazou@adacore.com>
1222
1223 * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
1224 values living in memory and use more precise alignment information.
1225
959f8cd7
JJ
12262008-11-10 Jakub Jelinek <jakub@redhat.com>
1227
1228 PR middle-end/35314
1229 * tree-mudflap.c (mf_build_check_statement_for): Split then_block
1230 after __mf_check call if the call must end a bb.
1231
ff596cd2
RL
12322008-11-10 Ralph Loader <suckfish@ihug.co.nz>
1233
1234 PR middle-end/37807
1235 PR middle-end/37809
1236 * combine.c (force_to_mode): Do not process vector types.
1237
1238 * rtlanal.c (nonzero_bits1): Do not process vector types.
1239 (num_sign_bit_copies1): Likewise.
1240
40b2ba11
TS
12412008-11-09 Thomas Schwinge <tschwinge@gnu.org>
1242
1243 * config/i386/gnu.h: Add copyright and licensing header.
1244 * config/gnu.h: Likewise.
1245
6724bb92
AP
12462008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
1247
1248 * fwprop.c (fwprop_done): Call df_remove_problem.
1249
0dfb0dc6
SP
12502008-11-07 Sebastian Pop <sebastian.pop@amd.com>
1251
1252 PR middle-end/37379
1253 * tree-scalar-evolution.c (instantiate_scev_1): Return
1254 chrec_dont_know for VL_EXP_CLASS_P.
1255
0a83b1b0
UB
12562008-11-06 Uros Bizjak <ubizjak@gmail.com>
1257
1258 * reg-stack.c (reg_to_stack): Add missing braces in memset
1259 size calculation.
1260
d53767cc
AS
12612008-11-06 Andrew Stubbs <ams@codesourcery.com>
1262
1263 * config/arm/bpabi.h (PROFILE_HOOK): New undef.
1264 (NO_PROFILE_COUNTERS): New define.
1265
ce75e1dd
DE
12662008-11-06 David Edelsohn <edelsohn@gnu.org>
1267
1268 PR target/26397
1269 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
1270
66e62b49
KH
12712008-11-06 Kazu Hirata <kazu@codesourcery.com>
1272
1273 PR target/35574
1274 * config/sparc/constraints.md (D): New.
0a83b1b0 1275 * config/sparc/predicates.md (const_double_or_vector_operand): New.
66e62b49
KH
1276 * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
1277 'D' constraint.
1278 * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
1279 Use the 'D' constraint in addition to 'F' in some alternatives.
1280 (DF splitter): Generalize for V64mode.
1281 * doc/md.texi (SPARC): Document the 'D' constraint.
1282
11f48903
UB
12832008-11-06 Uros Bizjak <ubizjak@gmail.com>
1284
1285 * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
1286
8a554c70
BE
12872008-11-06 Ben Elliston <bje@au.ibm.com>
1288
1289 * gcc.c: Remove ancient comment about a bug in Sun cc.
1290
52ebab2b
JJ
12912008-11-05 Janis Johnson <janis187@us.ibm.com>
1292
1293 * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
1294
25696a75
BE
12952008-11-06 Ben Elliston <bje@au.ibm.com>
1296
1297 * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
1298
13233302
BE
12992008-11-06 Ben Elliston <bje@au.ibm.com>
1300
1301 * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
1302 description.
1303
5e41dd6f
HPN
13042008-11-05 Hans-Peter Nilsson <hp@axis.com>
1305
1306 PR target/38016
1307 * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
1308 just MEM_P.
1309
5e9abf2c
MJ
13102008-11-05 Martin Jambor <mjambor@suse.cz>
1311
1312 PR middle-end/37861
1313 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
1314 pointer arithmetics into array_ref if the array is accessed
1315 through an indirect_ref.
1316
f7c0ffb4
RG
13172008-11-05 Richard Guenther <rguenther@suse.de>
1318
1319 PR middle-end/37742
1320 * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
1321 qualified pointer conversion before stripping qualifiers.
1322 * gimplify.c (create_tmp_from_val): Use correctly qualified type.
1323 * tree-flow.h (may_propagate_address_into_dereference): Declare.
11f48903
UB
1324 * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
1325 function.
f7c0ffb4
RG
1326 (ccp_fold): Use it.
1327 * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
1328 properly canonicalize binary ops.
1329 (forward_propagate_addr_expr_1): Use
1330 may_propagate_address_into_dereference.
1331
34e4536e
UB
13322008-11-05 Uros Bizjak <ubizjak@gmail.com>
1333
1334 PR middle-end/37286
1335 * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
1336 Initialize uninitialized input registers with a NaN.
1337
b738068c
TG
13382008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
1339
1340 PR middle-end/37833
1341
1342 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
1343
13442008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
1345
1346 PR middle-end/37943
1347
1348 * graphite.c (scopdet_basic_block_info): Fix loops with multiple
1349 exits and conditions.
1350 * testsuite/gcc.dg/graphite/pr37943.c: New.
1351
ead51d36
JJ
13522008-11-04 Jakub Jelinek <jakub@redhat.com>
1353 Andrew Pinski <andrew_pinski@playstation.sony.com>
1354
1355 PR c/35430
1356 * c-common.c (warn_for_sign_compare): For complex result_type
1357 use component's type.
1358
d2bd0052
JJ
13592008-11-04 Jakub Jelinek <jakuB@redhat.com>
1360
1361 * print-tree.c (print_node): Use code instead of TREE_CODE (node).
cbc19f39 1362
83371ec7
JJ
1363 * print-tree.c (print_node): Don't print DECL_INITIAL
1364 for PARM_DECL.
1365
cbc19f39
JJ
1366 PR c/37106
1367 * c-common.c (parse_optimize_options): Save and restore
1368 flag_strict_aliasing around decode_options call.
1369
4d947823
UB
13702008-11-04 Uros Bizjak <ubizjak@gmail.com>
1371
1372 * config/i386/driver-i386.c (enum vendor_signatures): New enum.
1373 (host_detect_local_cpu): Use it instead of casted strings to
1374 compare vendor signatures.
1375
20358adc
MP
13762008-11-03 Mikael Pettersson <mikpe@it.uu.se>
1377
34e4536e 1378 PR target/37989
20358adc
MP
1379 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
1380 or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
1381
1e27273f
CM
13822008-11-03 Catherine Moore <clm@codesourcery.com>
1383
1384 * config/mips.c (mips_conditional_register_usage): Handle the
1385 DSP control register.
1386 * doc/extend.texi: Document the DSP control register.
34e4536e 1387
c6ff4493
SE
13882008-11-03 Steve Ellcey <sje@cup.hp.com>
1389 Jakub Jelinek <jakub@redhat.com>
1390
1391 * omp-low.c (expand_omp_for_generic): If iter_type has different
1392 precision than type and type is a pointer type, cast n1 and n2
1393 first to an integer type with the same precision as pointers
1394 and only afterwards to iter_type.
1395
f9bd1a89
RS
13962008-11-03 Richard Sandiford <rdsandiford@googlemail.com>
1397
1398 * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
1399 (UNSPEC_GOTSYM_OFF): New unspec.
1400 (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
1401 (pic_add_dot_plus_eight): Likewise.
1402 (tls_load_dot_plus_eight): Likewise. Update peephole2.
1403 * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
1404 UNSPEC_PIC_BASE operands.
1405 * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
1406 (arm_output_addr_const_extra): Handle it.
1407
dffda765
EB
14082008-11-03 Eric Botcazou <ebotcazou@adacore.com>
1409
1410 * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
1411 integer class to full integer class if the offset is not word-aligned.
1412
5b31bbab
AP
14132008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1414
1415 PR rtl-opt/37782
1416 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
1417 mode count is in.
1418 (doloop_optimize): Update call to doloop_modify.
1419
2d8d91a8
EB
14202008-11-03 Eric Botcazou <ebotcazou@adacore.com>
1421
1422 * tree-sra.c (bitfield_overlaps_p): Fix oversight.
1423
e73da78e
RO
14242008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1425
1426 PR other/37463
1427 * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
1428 gcc_cv_as_cfi_directive.
1429 (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
1430 merging read-only and read-write sections or assembler emits
1431 read-write .eh_frame sections.
1432 * configure: Regenerate.
1433
e1ece9f1
NF
14342008-11-03 Nathan Froyd <froydnj@codesourcery.com>
1435
1436 Revert:
1437 2008-10-31 Nathan Froyd <froydnj@codesourcery.com>
1438
1439 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
1440 problem.
1441 (rs6000_emit_prologue): Invert logic.
1442 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
1443 (reg:P 11) instead of match_operand.
1444 (*save_fpregs_<mode>): Likewise.
1445 (*restore_gpregs_<mode>): Likewise.
1446 (*return_and_restore_gpregs_<mode>): Likewise.
1447 (*return_and_restore_fpregs_<mode>): Likewise.
1448 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
1449 (reg:P 11) insted of match_operand.
1450 (*restore_gpregs_spe): Likewise.
1451 (*return_and_restore_gpregs_spe): Likewise.
1452
669540aa
HJ
14532008-11-03 Harsha Jagasia <harsha.jagasia@amd.com>
1454
1455 PR tree-optimization/37684
1456 * gcc.dg/graphite/pr37684.c: New.
1457 * graphite.c (exclude_component_ref): New.
1458 (is_simple_operand): Call exclude_component_ref.
1459
2b8aee8e
SP
14602008-11-03 Sebastian Pop <sebastian.pop@amd.com>
1461
1462 PR tree-optimization/36908
1463 * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
1464 * tree-loop-distribution.c (number_of_rw_in_rdg): New.
1465 (number_of_rw_in_partition): New.
1466 (partition_contains_all_rw): New.
1467 (ldist_gen): Do not distribute when one of the partitions
1468 contains all the memory operations.
1469
ede7cba0
SP
14702008-11-03 Sebastian Pop <sebastian.pop@amd.com>
1471
1472 * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
1473 EDGE_IRREDUCIBLE_LOOP.
1474
f4c59f4f
BS
14752008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
1476
1477 * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
1478 where we have one entry point in the loop which isn't the head.
1479
da4b6efc
RG
14802008-11-03 Richard Guenther <rguenther@suse.de>
1481
1482 PR middle-end/37573
1483 * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
1484
6f1fe305
JJ
14852008-11-03 Jakub Jelinek <jakub@redhat.com>
1486
1487 PR middle-end/37858
1488 * passes.c (execute_one_pass): Don't look at cfun->curr_properties
1489 for ipa and simple ipa passes.
1490
40f64141
RG
14912008-11-02 Richard Guenther <rguenther@suse.de>
1492
1493 PR tree-optimization/37542
1494 * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
1495 * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
1496 (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
1497 (vn_nary_op_insert_stmt): Likewise.
1498 (visit_use): Likewise.
1499
15fe850f
AS
15002008-11-02 Anatoly Sokolov <aesok@post.ru>
1501
1502 * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
1503 (*swap): Remove.
1504 (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
1505 rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
1506 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
1507 ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
1508 lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
1509 peephole2's): Replace unspec with rotate.
1510 * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
1511
8495c94f
RG
15122008-11-02 Richard Guenther <rguenther@suse.de>
1513
1514 PR tree-optimization/37991
1515 * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
1516 * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
1517 (set_ssa_val_to): Print if the value changed.
1518 (simplify_binary_expression): Strip useless conversions.
1519
aa05ad86
HPN
15202008-11-01 Hans-Peter Nilsson <hp@axis.com>
1521
1522 PR target/37939
1523 * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
1524 operand.
1525
002bd9f0
RG
15262008-11-01 Richard Guenther <rguenther@suse.de>
1527
1528 PR middle-end/37976
1529 * builtins.c (fold_builtin_strspn): Return a size_t.
1530 (fold_builtin_strcspn): Likewise.
1531
f9fd1e77
NF
15322008-10-31 Nathan Froyd <froydnj@codesourcery.com>
1533
1534 * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
1535 attribute for struct return convention.
1536
a57b73a7
NF
15372008-10-31 Nathan Froyd <froydnj@codesourcery.com>
1538
1539 * config/rs6000/crtsavres.asm: Really, really delete.
1540
19ce6731
NF
15412008-10-31 Nathan Froyd <froydnj@codesourcery.com>
1542
1543 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
1544 problem.
1545 (rs6000_emit_prologue): Invert logic.
1546 * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
1547 (reg:P 11) instead of match_operand.
1548 (*save_fpregs_<mode>): Likewise.
1549 (*restore_gpregs_<mode>): Likewise.
1550 (*return_and_restore_gpregs_<mode>): Likewise.
1551 (*return_and_restore_fpregs_<mode>): Likewise.
1552 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
1553 (reg:P 11) insted of match_operand.
1554 (*restore_gpregs_spe): Likewise.
1555 (*return_and_restore_gpregs_spe): Likewise.
1556
7c8fbd3f
LM
15572008-10-28 Luis Machado <luisgpm@br.ibm.com>
1558
1559 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
1560 list of word switches that take args.
1561
723a7ced
JJ
15622008-10-30 Jakub Jelinek <jakub@redhat.com>
1563
dbc0f593
JJ
1564 * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
1565 (s390_output_pool_entry): Call it through for_each_rtx.
1566
723a7ced
JJ
1567 PR middle-end/37730
1568 * expr.c (store_constructor): For vectors, if target is a MEM, use
1569 target's MEM_ALIAS_SET instead of elttype alias set.
1570
77253e56
KK
15712008-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
1572
1573 PR target/37909
1574 * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
1575 no address.
1576
2665ab87
DE
15772008-10-29 David Edelsohn <edelsohn@gnu.org>
1578
1579 PR target/37878
1580 * config/rs6000/predicates.md (word_offset_memref_operand):
1581 Restructure code and look inside auto-inc/dec addresses.
1582
81a39e89
SE
15832008-10-29 Steve Ellcey <sje@cup.hp.com>
1584
1585 PR target/32277
1586 * libgcov.c ( __gcov_indirect_call_profiler): Check
1587 TARGET_VTABLE_USES_DESCRIPTORS.
1588
7310a2da
SSF
15892008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com>
1590
1591 * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
1592 (INITIAL_FRAME_POINTER_OFFSET): Remove.
1593 * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
1594 offset if eliminating soft frame pointer.
1595 * config/spu/spu.md (stack_protect_set, stack_protect_test)
1596 (stack_protect_test_si): Add initial machine description
1597 for Stack Smashing Protector
1598
cdd6a337
MLI
15992008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1600
1601 PR 11492
1602 * c-common.c (min_precision): Move to...
1603 * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
1604 * tree.h (tree_int_cst_min_precision): Declare.
1605 * c-common.h (min_precision): Delete declaration.
1606 * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
1607 multiplication of non-negative integer constants.
1608 * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
1609 tree_int_cst_min_precision.
1610 (finish_enum): Likewise.
1611
20ded7a6
JM
16122008-10-29 Joseph Myers <joseph@codesourcery.com>
1613
1614 PR middle-end/36578
1615 * convert.c (convert_to_real): Do not optimize conversions of
1616 binary arithmetic operations between binary and decimal
1617 floating-point types. Consider mode of target type in determining
1618 decimal type for arithmetic. Unless
1619 flag_unsafe_math_optimizations, do not optimize binary conversions
1620 where this may change rounding behavior.
1621 * real.c (real_can_shorten_arithmetic): New.
1622 * real.h (real_can_shorten_arithmetic): Declare.
1623
669eeb28
BS
16242008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
1625
1626 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
1627 ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
1628 * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
1629 appropriate.
1630 (must_save_p): For some workarounds, interrupts need to clobber a
1631 P register.
1632 (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
1633 and LC1 for WA_05000257.
1634 (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
1635 WA_05000283 and WA_05000315.
1636 * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
1637 (movbi): Add alternative to set CC to 1; improve code for setting
1638 CC to 0.
1639 (dummy_load): New pattern.
1640
4d731f17
JJ
16412008-10-29 Jakub Jelinek <jakub@redhat.com>
1642
7d293b58
JJ
1643 PR middle-end/37870
1644 * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
1645 BLKmode for non-memory, convert using a wider MODE_INT mode
1646 or through memory.
1647
4d731f17
JJ
1648 PR middle-end/37913
1649 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
1650 that haven't been removed yet.
1651
a848cf52
BS
16522008-10-29 Bernd Schmidt <bernd.schmidt@analog.com>
1653
1654 * config/bfin/bfin.c (struct machine_function): New member
1655 has_loopreg_clobber.
1656 (bfin_expand_movmem): Set it when generating memcpy insns.
1657 (n_regs_saved_by_prologue, expand_prologue_reg_save,
1658 expand_epilogue_reg_restore): If we have hardware loops,
1659 memcpy insns (indicated by has_loopreg_clobber) or function
1660 calls, we need to save the loop registers.
1661
a31b4ecf
L
16622008-10-28 H.J. Lu <hongjiu.lu@intel.com>
1663
1664 * config/i386/i386.c (core2_cost): Fix typos in comments.
1665
261639a2
JJ
16662008-10-28 Jakub Jelinek <jakub@redhat.com>
1667
1668 PR c/37924
1669 * combine.c (make_compound_operation): Don't call make_extraction with
1670 non-positive length.
1671 (simplify_shift_const_1): Canonicalize count even if complement_p.
1672
938d35bd
JM
16732008-10-28 Joseph Myers <joseph@codesourcery.com>
1674
1675 * convert.c (strip_float_extensions): Do not remove or introduce
1676 conversions between binary and decimal floating-point types.
1677
5229689d
JJ
16782008-10-28 Jakub Jelinek <jakub@redhat.com>
1679
1680 PR middle-end/37931
1681 * fold-const.c (distribute_bit_expr): Convert common, left and
1682 right arguments to type.
1683
9d54866d
NC
16842008-10-28 Nick Clifton <nickc@redhat.com>
1685
1686 * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
1687 * config/mn10300/mn10300.c (fp_regs_to_save): Test the
1688 call_really_used_regs array rather than the call_used_regs array.
1689 (mn10300_get_live_callee_saved_regs, expand_prologue,
1690 expand_epilogue, output_tst): Likewise.
1691
6a16e934
JJ
16922008-10-27 Jakub Jelinek <jakub@redhat.com>
1693
60d52d0d
JJ
1694 PR target/37378
1695 * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
1696 (df_get_entry_block_def_set): Neither here.
1697 (df_get_regular_block_artificial_uses): Add EH_USES registers.
1698
6a16e934
JJ
1699 PR tree-optimization/37879
1700 * predict.c (tree_estimate_probability): Check if last_stmt is
1701 non-NULL before dereferencing it.
1702
cb1ca6ac
VM
17032008-10-27 Vladimir Makarov <vmakarov@redhat.com>
1704
1705 * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
1706 (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
1707 (ira_fast_allocation): Remove the prototype.
1708
1709 * ira-color.c (update_copy_costs, allocno_cost_compare_func,
1710 assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
1711 (color_pass): Modify the updated costs.
1712 (ira_color): Rename to color. Make it static.
1713 (ira_fast_allocation): Rename to fast_allocation. Make it static.
1714 (ira_color): New function.
1715
1716 * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
1717 change.
1718
1719 * ira-lives.c (last_call_num, allocno_saved_at_call): New
1720 variables.
1721 (set_allocno_live, clear_allocno_live, mark_ref_live,
1722 mark_ref_dead): Invalidate corresponding element of
1723 allocno_saved_at_call.
1724 (process_bb_node_lives): Increment last_call_num. Setup
1725 allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the
1726 allocno was already saved.
1727 (ira_create_allocno_live_ranges): Initiate last_call_num and
1728 allocno_saved_at_call.
1729
1730 * ira-build.c (ira_create_allocno): Initiate
1731 ALLOCNO_UPDATED_COVER_CLASS_COST.
1732 (create_cap_allocno, propagate_allocno_info,
1733 remove_unnecessary_allocnos): Remove setting updated costs.
1734 (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
1735
1736 * ira.c (ira): Don't call ira_fast_allocation.
1737
1738 * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
1739 updated costs.
1740
c0683a82
VM
17412008-10-27 Vladimir Makarov <vmakarov@redhat.com>
1742
1743 PR middle-end/37813
34e4536e 1744 * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
c0683a82
VM
1745
1746 * ira-int.h (ira_hard_regno_cover_class): New.
1747
1748 * ira-lives.c (mark_reg_live, mark_reg_dead,
1749 process_bb_node_lives): Use ira_hard_regno_cover_class.
1750
34e4536e 1751 * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
c0683a82
VM
1752 (setup_hard_regno_cover_class): New function.
1753 (ira_init): Call setup_hard_regno_cover_class.
1754
1755 * ira-costs.c (cost_class_nums): Add comment.
1756 (find_allocno_class_costs): Initiate cost_class_nums.
1757 (setup_allocno_cover_class_and_costs): Check cost_class_nums.
1758
801f03e3
VM
17592008-10-27 Vladimir Makarov <vmakarov@redhat.com>
1760
1761 PR middle-end/37884
1762 * ira-build.c (copy_live_ranges_to_removed_store_destinations):
1763 Rename to copy_info_to_removed_store_destinations. Propagate
1764 conflict hard regs and register stack attribute.
1765
c3e39a47
JDA
17662008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1767
1768 PR middle-end/37316
34e4536e
UB
1769 * pa.c (function_arg_padding): Pad complex and vector types
1770 upward in 64-bit runtime.
c3e39a47
JDA
1771 (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
1772
793c44bd
MK
17732008-10-26 Matthias Klose <doko@ubuntu.com>
1774
1775 * doc/install.texi: Document requirements on antlr.
1776
59dbe1d9
RS
17772008-10-25 Richard Sandiford <rdsandiford@googlemail.com>
1778
1779 * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
1780 first.
1781
099590dc
MM
17822008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1783
1784 PR target/37841
1785 * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
1786 is defined, use it to modify the constant offset.
1787
1788 * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
1789
1790 * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
34e4536e 1791 and short arguments to the correct location as mandated by the ABI.
099590dc 1792
d3a5ecb5
KK
17932008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
1794
1795 PR rtl-optimization/37769
1796 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
1797
397979fa
KK
17982008-10-24 Kaz Kojima <kkojima@gcc.gnu.org>
1799
1800 * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
1801 unwind-dw2-Os-4-200.o.
1802
6b4ef5c1
JM
18032008-10-24 Joseph Myers <joseph@codesourcery.com>
1804
1805 * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
1806 (convert_for_assignment): Remove ic_argpass_nonproto cases.
1807
1a00e5f7
JJ
18082008-10-24 Jakub Jelinek <jakub@redhat.com>
1809
1810 PR tree-optimization/36038
1811 * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
1812 add sizetype IV with initial value zero instead of pointer type.
1813
e49cf927 18142008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
100d537d
MLI
1815
1816 PR c/7543
1817 * value-prof.c (gimple_stringop_fixed_value): Use parentheses
1818 around bit operation.
1819 * profile.c (is_edge_inconsistent): Likewise.
1820 * fold-const.c (truth_value_p): Move from here...
1821 * tree.h (truth_value_p): ... to here.
1822 * c-tree.h (c_expr): Update description of original_code.
1823 * c-typeck.c (parser_build_unary_op): Set original_code.
1824 (parser_build_binary_op): Update call to warn_about_parentheses.
1825 * c-common.c (warn_about_parentheses): Take two additional
1826 arguments of the operands. Use a switch. Quote operators
1827 appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
1828 Add warning about !x | y and !x & y.
1829 * c-common.h (warn_about_parentheses): Update declaration.
1830
7134e605
JJ
18312008-10-24 Jakub Jelinek <jakub@redhat.com>
1832
1833 * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
1834 check_p_tool, check_p_vars, check_p_subno, check_p_comma,
1835 check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
1836 New variables.
34e4536e 1837 (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
7134e605
JJ
1838 (check-%): For test targets listed in lang_checks_parallelized
1839 if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
1840 run the testing in multiple make goals, possibly parallel, and
1841 afterwards run dg-extract-results.sh to merge the sum and log files.
1842
aea8cb37
RS
18432008-10-24 Richard Sandiford <rdsandiford@googlemail.com>
1844
1845 * config/mips/mips.c (mips_canonicalize_move_class): New function.
1846 (mips_move_to_gpr_cost): Likewise.
1847 (mips_move_from_gpr_cost): Likewise.
1848 (mips_register_move_cost): Make more fine-grained.
1849
20ed8b32
TG
18502008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
1851
1852 * graphite.c (graphite_apply_transformations): Check for
1853 -fgraphite-identity.
1854 * toplev.c (process_options): Add graphite_identity.
1855 * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
1856
23cf1526
BS
18572008-10-23 Bernd Schmidt <bernd.schmidt@analog.com>
1858
2aca912d
BS
1859 * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
1860 mulhisihl and mulhisihh builtins.
1861
23cf1526
BS
1862 From Jie Zhang <jie.zhang@analog.com>
1863 * config/bfin/bfin.md (composev2hi): Put operands into vector
1864 with correct order.
1865
a166140f
CF
18662008-10-22 Chao-ying Fu <fu@mips.com>
1867
1868 * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
1869
318b3009
BS
18702008-10-22 Bernd Schmidt <bernd.schmidt@analog.com>
1871
1872 From Mike Frysinger <michael.frysinger@analog.com>
1873 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
1874 BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
1875 * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
1876 and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
1877 Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539.
1878 Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
1879 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
1880 for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
1881 for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define
1882 __ADSPBF51x__ for all of them.
1883 * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
1884 -mcpu bf512, bf514, bf516, and bf518.
1885 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1886 bf512-none, bf514-none, bf516-none, and bf518-none.
1887 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1888 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1889 * doc/invoke.texi (Blackfin Options): Document that
1890 -mcpu now accepts bf512, bf514, bf516, and bf518.
1891
972afb58
JJ
18922008-10-22 Jakub Jelinek <jakub@redhat.com>
1893
1894 PR middle-end/37882
1895 * fold-const.c (build_range_type): For 1 .. signed_max
1896 range call build_nonstandard_inter_type if signed_type_for
1897 returned a type with bigger precision.
1898
51c869ca
RG
18992008-10-22 Richard Guenther <rguenther@suse.de>
1900
1901 * tree.def (COMPLEX_TYPE): Constrain element type.
1902 * tree.c (build_complex_type): Assert that.
1903 * tree-ssa-structalias.c (could_have_pointers): Complex types
1904 cannot have pointers.
1905
e49cf927 19062008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
a7da8b42
MLI
1907
1908 PR c/30949
1909 * c-typeck.c (convert_for_assignment): Do not give declaration's
1910 location for builtins. Spell out which type was expected and which
1911 was given.
1912
b8a19ec4
NC
19132008-10-22 Nick Clifton <nickc@redhat.com>
1914
1915 * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow
1916 the fdpic register to be a target when running in fdpic mode.
1917
a291ed6d
RAE
19182008-10-22 Rafael Espindola <espindola@google.com>
1919
1920 * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
1921 newly created statements.
1922
347146a4
KK
19232008-10-22 Kaz Kojima <kkojima@gcc.gnu.org>
1924
1925 PR target/37633
1926 * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
1927 * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
1928 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
1929
e58d5f65
JJ
19302008-10-22 Jakub Jelinek <jakub@redhat.com>
1931
1932 PR target/37880
1933 * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
1934 Adjust -mcmodel=medium description for 2005-07-31 changes.
1935
cb7c15f8
JH
19362008-10-22 Jan Hubicka <jh@suse.cz>
1937 Jakub Jelinek <jakub@redhat.com>
1938
1939 PR middle-end/35853
1940 * doc/invoke.texi: Remove references to obsoleted -d dumps.
1941
3d7e23f6
RH
19422008-10-21 Richard Henderson <rth@redhat.com>
1943
1944 PR 37815
1945 * emit-rtl.c (get_spill_slot_decl): Export.
1946 * emit-rtl.h (get_spill_slot_decl): Declare.
1947 * var-tracking.c (vt_add_function_parameters): Relax assertion
1948 on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
1949
7d407433
BW
19502008-10-21 Bob Wilson <bob.wilson@acm.org>
1951
1952 * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
1953 REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
1954 of from insn.
1955
d9cc481a
AN
19562008-10-21 Adam Nemet <anemet@caviumnetworks.com>
1957
1958 PR middle-end/37669
1959 * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
1960 processed by get_maxval_strlen.
1961
3b8031bb
DE
19622008-10-21 David Edelsohn <edelsohn@gnu.org>
1963
1964 PR target/35485
1965 * tree.c (get_file_function_name): Copy first_global_object_name.
1966 Centralize call to clean_symbol_name.
1967
3027350e
SL
19682008-10-21 Sandra Loosemore <sandra@codesourcery.com>
1969
1970 * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
1971 * config/svr4.h (SVR4_ASM_SPEC): New.
1972 (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
1973 * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
1974
1975 * doc/invoke.texi (Option Summary): Add -T to linker options.
1976 (Link Options): Document -T.
1977
8df67f4f
JJ
19782008-10-21 Jakub Jelinek <jakub@redhat.com>
1979
658344f2
JJ
1980 * tree-inline.c (tree_inlinable_function_p): Remove tuples
1981 debugging hack.
1982
4d947823 1983 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
8df67f4f 1984
500b9ca1
JJ
1985 PR debug/37020
1986 * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
1987
15d5fe33
DB
19882008-10-20 Daniel Berlin <dberlin@dberlin.org>
1989
1990 * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
1991 part of expression.
1992
e49cf927 19932008-10-20 Tobias Schlüter <tobi@gcc.gnu.org>
c02c7cb1
TS
1994
1995 * doc/install.texi: Fix typos in previous patch.
1996
e49cf927 19972008-10-19 Tobias Schlüter <tobi@gcc.gnu.org>
641afcff
TS
1998
1999 * doc/install.texi: Document in-tree building of gcc and mpfr.
2000
a15138a4
RG
20012008-10-19 Richard Guenther <rguenther@suse.de>
2002
2003 * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
2004
e49cf927 20052008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
a7e72022
MLI
2006
2007 PR c/30260
11f48903 2008 * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
a7e72022
MLI
2009 (build_enumerator): Convert enumerators that fit in integer to
2010 integer type.
2011
3cdf0c62
UB
20122008-10-18 Uros Bizjak <ubizjak@gmail.com>
2013
2014 * config/i386/i386.md (unnamed peephole2): Do not force memory
2015 operands of arith or logical instructions into registers for
2016 non-TARGET_READ_MODIFY targets.
2017
2018 (ffs_cmove): Change operand 0 predicate to register_operand.
2019 Change operand 1 predicate to nonimmediate_operand.
2020 (ffsdi2): Ditto.
2021 (*ffs_no_cmove): Change operand 0 predicate to register_operand.
2022
73a5f199
RG
20232008-10-18 Richard Guenther <rguenther@suse.de>
2024
2025 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
2026 VIEW_CONVERT_EXPR case against invalid gimple.
2027
1f6d0c60
AK
20282008-10-17 Andreas Krebbel <krebbel1@de.ibm.com>
2029
2030 * c-parser.c (c_parser_binary_expression): Silence the
2031 uninitialized variable warning emitted for binary_loc.
2032
de278246
DB
20332008-10-16 Daniel Berlin <dberlin@dberlin.org>
2034
2035 * tree-ssa-pre.c (phi_translate_set): Add constants to phi
2036 translation cache.
2037
bbe67e7c
JM
20382008-10-16 Joseph Myers <joseph@codesourcery.com>
2039
2040 PR c/33192
2041 * c-typeck.c (build_unary_op): Use omit_one_operand for
2042 IMAGPART_EXPR of real argument.
2043
a39562d9
JJ
20442008-10-16 Jakub Jelinek <jakub@redhat.com>
2045
2046 PR tree-optimization/37664
2047 * fold-const.c (fold_binary): When optimizing comparison with
2048 highest or lowest type's value, don't consider TREE_OVERFLOW.
2049
5773a50f
DE
20502008-10-16 David Edelsohn <edelsohn@gnu.org>
2051
2052 PR target/35483
2053 * Makefile.in (coverage.o): Depend on $(TM_P_H).
2054 * coverage.c: Include tm_p.h.
2055 * config/rs6000/x-aix (jc1): Override LDFLAGS.
2056 * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
2057 dollar signs from PREFIX.
2058 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
2059 instead of manual strip_name_encoding.
2060
bd4a51ab
RB
20612008-10-16 Richard Guenther <rguenther@suse.de>
2062
2063 PR middle-end/37418
2064 * tree-ssa.c (useless_type_conversion_p_1): Do not treat
2065 volatile qualified functions or methods as relevant.
2066
5b429886
JJ
20672008-10-16 Jakub Jelinek <jakub@redhat.com>
2068
2069 PR tree-optimization/37525
2070 * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend
2071 sizetype unsigned constants, both in the case of C and bounds.
2072
c39a4ad7
JH
20732008-10-15 Jan Hubicka <jh@suse.cz>
2074
34e4536e 2075 * ira-emit.c (change_regs): Return false when replacing reg by itself.
c39a4ad7 2076
aac375dd
VM
20772008-10-14 Vladimir Makarov <vmakarov@redhat.com>
2078
2079 PR target/37633
2080 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
2081 HARD_REGNO_CALL_PART_CLOBBERED.
2082
22c02455
VM
20832008-10-15 Vladimir Makarov <vmakarov@redhat.com>
2084
2085 PR middle-end/37535
2086 * ira-lives.c (mark_early_clobbers): Remove.
2087 (make_pseudo_conflict, check_and_make_def_use_conflicts,
2088 check_and_make_def_conflicts,
2089 make_early_clobber_and_input_conflicts,
2090 mark_hard_reg_early_clobbers): New functions.
2091 (process_bb_node_lives): Call
2092 make_early_clobber_and_input_conflicts and
3cdf0c62 2093 mark_hard_reg_early_clobbers. Make hard register inputs live again.
22c02455
VM
2094
2095 * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
2096 early clobbers of pseudo-registers.
2097
0ca9fa56
VM
20982008-10-15 Vladimir Makarov <vmakarov@redhat.com>
2099
2100 PR middle-end/37674
2101 * ira-build.c (ira_flattening): Recalculate
2102 ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
2103 from the scratch instead of the propagation.
2104
bf520698
RS
21052008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
2106
2107 * doc/rtl.texi (const_double): Remove the "addr" operand.
2108 Describe CONST_DOUBLE_* macros under const_double rather
2109 than const_vector.
2110 (const_fixed): Fix the operand description.
2111 (const): Add an @findex directive.
2112 (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
2113 after the constant rtl table.
2114 (fix): Combine floating-point and fixed-point descriptions.
2115 Fix hyphenation.
2116 * sched-deps.c (sched_analyze_2): Remove reference to
2117 CONST_DOUBLE_CHAIN.
2118
d4e2d7d2
RS
21192008-10-15 Richard Sandiford <rdsandiford@googlemail.com>
2120
2121 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
2122 UNSPEC_GOTSYM_OFFs.
2123 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
2124 for UNSPEC_GOTSYM_OFFs.
2125 * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
2126 (add_GOT_to_pic_reg): Use it.
2127 * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
2128
2c7a7f46 21292008-10-15 Jan Sjodin <jan.sjodin@amd.com>
3cdf0c62 2130 Harsha Jagasia <harsha.jagasia@amd.com>
2c7a7f46
SP
2131
2132 PR tree-optimization/37485
2133 * graphite.c (gmp_cst_to_tree): Moved.
2134 (iv_stack_entry_is_constant): New.
2135 (iv_stack_entry_is_iv): New.
2136 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
2137 (loop_iv_stack_insert_constant): New.
2138 (loop_iv_stack_pop): Use new datatpype.
2139 (loop_iv_stack_get_iv): Same.
2140 (loop_iv_stack_get_iv_from_name): Same.
2141 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
2142 (loop_iv_stack_patch_for_consts): New.
2143 (loop_iv_stack_remove_constants): New.
2144 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
2145 (translate_clast): Call loop_iv_stack_patch_for_consts and
2146 loop_iv_stack_remove_constants.
2147 (gloog): Use new datatype. Redirect construction edge to end
2148 block to avoid accidental deletion.
2149 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
2150 iv stack entry.
2151 (union iv_stack_entry_data): New. Data in iv stack entry.
2152 (struct iv_stack_entry): New. Datatype for iv stack entries.
2153
21542008-10-15 Sebastian Pop <sebastian.pop@amd.com>
2155
2156 * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
2157 * graphite.c (free_scop): Same.
2158 (build_scops): Same.
2159 (free_scattering): New.
2160 (build_cloog_prog): Call free_scattering.
2161 (patch_phis_for_virtual_defs): Fix memleak.
2162 (graphite_trans_bb_strip_mine): Same.
2163 (limit_scops): Same.
2164
575da9be 21652008-10-15 Sebastian Pop <sebastian.pop@amd.com>
3cdf0c62 2166 Harsha Jagasia <harsha.jagasia@amd.com>
575da9be
SP
2167
2168 PR tree-optimization/37828
2169 * graphite.c (graphite_trans_loop_block): Do not loop block
2170 single nested loops.
2171
36174c82
SP
21722008-10-15 Sebastian Pop <sebastian.pop@amd.com>
2173
2174 PR tree-optimization/37686
2175 * tree-loop-linear.c (linear_transform_loops): Build a
2176 loop nest vector. Pass it to lambda_compute_access_matrices.
2177 * tree-data-ref.h (struct access_matrix): Store the loop nest
2178 relative to which it encodes the information.
2179 (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
2180 (am_vector_index_for_loop): Reimplemented: iterate over the
2181 loop nest for finding the loop index in the access matrix.
2182 (lambda_compute_access_matrices): Update declaration.
2183 * lambda-code.c (build_access_matrix): Pass the loop nest and
2184 record it.
2185 (lambda_compute_access_matrices): Same.
2186
fb068247
AK
21872008-10-15 Andreas Krebbel <krebbel1@de.ibm.com>
2188
2189 * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
2190 * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
2191 TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
2192 already implies hard float. Also fix several insn condition
2193 with TARGET_DFP which shall require TARGET_HARD_DFP instead.
2194
9fb59895
DE
21952008-10-15 David Edelsohn <edelsohn@gnu.org>
2196
2197 PR target/35483
2198 Based on patches by Laurent Vivier.
2199 * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
2200 * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
2201 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
2202 dollar sign to underscore.
2203 (ASM_OUTPUT_EXTERNAL): Same.
2204 (ASM_OUTPUT_LABELREF): New.
2205 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
2206
2207 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
2208 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
2209 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
2210 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
2211
f6e6e990
JJ
22122008-10-15 Jakub Jelinek <jakub@redhat.com>
2213
2214 PR tree-optimization/36881
2215 * tree-switch-conversion.c (check_final_bb): For flag_pic, check
2216 that each value doesn't need runtime relocations, for !flag_pic
2217 check that each value is just a valid initializer constant.
2218
5c0a2e3a
RS
22192008-10-14 Richard Sandiford <rdsandiford@googlemail.com>
2220
2221 * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
2222 LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
2223 COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
2224 Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
2225 GR_AND_ACC_REGS.
2226 (REG_CLASS_NAMES): Update accordingly.
2227 (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments,
2228 rather than an unpredictable descriptive string.
2229 * config/mips/mips.c (mips_register_move_cost): Remove comment.
2230 (mips_register_move_cost): Check for specific COP*_REGS classes,
2231 instead of ALL_COP_AND_GR_REGS.
2232 (mips_ira_cover_classes): New function.
2233 (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
2234 (TARGET_IRA_COVER_CLASSES): Define.
2235
9c880618
DG
22362008-10-14 Douglas Gregor <doug.gregor@gmail.com>
2237
3cdf0c62
UB
2238 PR c++/37553
2239 * tree.c (build_type_attribute_qual_variant): Hash on the
2240 unqualified type, and don't overwrite an existing
2241 (type_hash_eq): Make the TYPE_NAME of the types significant, to
2242 allow distinguishing between wchar_t and its underlying type. This
2243 also means that we'll retain a little more typedef information.
9c880618 2244
388092d5
AB
22452008-10-14 Andrey Belevantsev <abel@ispras.ru>
2246 Dmitry Melnik <dm@ispras.ru>
2247 Dmitry Zhurikhin <zhur@ispras.ru>
2248 Alexander Monakov <amonakov@ispras.ru>
2249 Maxim Kuvyrkov <maxim@codesourcery.com>
2250
2251 * target.h (struct gcc_target): Update prototypes of needs_block_p
2252 and gen_spec_check.
2253 * haifa-sched.c (create_check_block_twin): Update calls to the above.
2254 * sel-sched.c (create_speculation_check): Likewise.
2255 * doc/tm.texi: Provide documentation for new target hooks.
2256
2257 * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks.
2258 (ia64_gen_spec_insn): Removed.
2259 (get_spec_check_gen_function, insn_can_be_in_speculative_p,
2260 ia64_gen_spec_check): New static functions.
3cdf0c62
UB
2261 (ia64_alloc_sched_context, ia64_init_sched_context,
2262 ia64_set_sched_context, ia64_clear_sched_context,
2263 ia64_free_sched_context, ia64_get_insn_spec_ds,
388092d5
AB
2264 ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
2265 (ia64_needs_block_p): Change prototype.
2266 (ia64_gen_check): Rename to ia64_gen_spec_check.
3cdf0c62 2267 (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter
388092d5
AB
2268 into declaration, add special memory dependencies handling.
2269 (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
2270 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
2271 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
3cdf0c62 2272 TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
388092d5
AB
2273 Define new target hooks.
2274 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
3cdf0c62 2275 (ia64_optimization_options): Turn on selective scheduling with -O3,
34e4536e
UB
2276 disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
2277 default with selective scheduling.
3cdf0c62
UB
2278 (ia64_override_options): Initialize align_loops and align_functions
2279 to 32 and 64, respectively. Set global selective scheduling flags
388092d5
AB
2280 according to target-dependent flags.
2281 (rtx_needs_barrier): Support UNSPEC_LDS_A.
3cdf0c62 2282 (group_barrier_needed): Use new mstop-bit-before-check flag.
388092d5
AB
2283 Add heuristic.
2284 (dfa_state_size): Make global.
2285 (spec_check_no, max_uid): Remove.
3cdf0c62 2286 (mem_ops_in_group, current_cycle): New variables.
388092d5 2287 (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
3cdf0c62
UB
2288 Initialize new variables.
2289 (is_load_p, record_memory_reference): New functions.
2290 (ia64_dfa_sched_reorder): Lower priority of loads when limit is
2291 reached.
2292 (ia64_variable_issue): Change use of current_sched_info to
388092d5 2293 sched_deps_info. Update comment. Note if a load or a store is issued.
3cdf0c62
UB
2294 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
2295 advance if maximal number of loads or stores was issued on current
2296 cycle.
388092d5 2297 (scheduled_good_insn): New static helper function.
3cdf0c62
UB
2298 (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
2299 a group barrier is needed. Fix vertical spacing. Guard the code
2300 doing state transition with last_scheduled_insn check.
2301 Mark that a stop bit should be before current insn if there was a
2302 cycle advance. Update current_cycle and mem_ops_in_group.
388092d5 2303 (ia64_h_i_d_extended): Change use of current_sched_info to
3cdf0c62 2304 sched_deps_info. Reallocate stops_p by larger chunks.
388092d5
AB
2305 (struct _ia64_sched_context): New structure.
2306 (ia64_sched_context_t): New typedef.
3cdf0c62 2307 (ia64_alloc_sched_context, ia64_init_sched_context,
388092d5
AB
2308 ia64_set_sched_context, ia64_clear_sched_context,
2309 ia64_free_sched_context): New static functions.
2310 (gen_func_t): New typedef.
2311 (get_spec_load_gen_function): New function.
2312 (SPEC_GEN_EXTEND_OFFSET): Declare.
2313 (ia64_set_sched_flags): Check common_sched_info instead of *flags.
3cdf0c62 2314 (get_mode_no_for_insn): Change the condition that prevents use of
388092d5
AB
2315 special hardware registers so it can now handle pseudos.
2316 (get_spec_unspec_code): New function.
2317 (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
2318 ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
2319 (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
2320 during selective scheduling.
3cdf0c62 2321 (ia64_speculate_insn): Use ds_get_speculation_types when
388092d5
AB
2322 determining whether we need to change the pattern.
2323 (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
2324 (ia64_spec_check_src_p): Support new speculation/check codes.
2325 (struct bundle_state): New field.
2326 (issue_nops_and_insn): Initialize it.
2327 (insert_bundle_state): Minimize mid-bundle stop bits.
2328 (important_for_bundling_p): New function.
2329 (get_next_important_insn): Use important_for_bundling_p.
3cdf0c62
UB
2330 (bundling): When shifting TImode from unimportant insns, ignore
2331 also group barriers. Assert that best state is found before
2332 the backward bundling pass. Print number of mid-bundle stop bits.
2333 Minimize mid-bundle stop bits. Check correct calculation of
388092d5
AB
2334 mid-bundle stop bits.
2335 (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
2336 (final_emit_insn_group_barriers): Emit stop bits before insns starting
2337 a new cycle.
2338 (sel2_run): New variable.
34e4536e
UB
2339 (ia64_reorg): When flag_selective_scheduling2 is set, run the
2340 selective scheduling pass instead of schedule_ebbs.
388092d5
AB
2341
2342 * config/ia64/ia64.md (speculable1, speculable2): New attributes.
2343 (UNSPEC_LDS_A): New UNSPEC.
3cdf0c62
UB
2344 (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
2345 movti_internal, movsf_internal, movdf_internal,
388092d5
AB
2346 movxf_internal): Make visible. Add speculable* attributes.
2347 (output_c_nc): New mode attribute.
2348 (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
3cdf0c62 2349 mov<mode>_nc, zero_extend<mode>di2_nc,
388092d5
AB
2350 advanced_load_check_nc_<mode>): New insns.
2351 (zero_extend*): Add speculable* attributes.
2352
2353 * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
2354 (msched-stop-bits-after-every-cycle): Likewise.
3cdf0c62
UB
2355 (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
2356 Likewise.
388092d5
AB
2357 (msched-spec-verbose): Remove.
2358 (msched-prefer-non-data-spec-insns,
3cdf0c62
UB
2359 msched-prefer-non-control-spec-insns,
2360 msched-count-spec-in-critical-path,
2361 msel-sched-dont-check-control-spec): Use Target Report Var
2362 instead of Common Report Var.
388092d5
AB
2363
2364 * config/ia64/itanium2.md: Remove incorrect bypass.
2365
2366 * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
2367
847e6346
JJ
23682008-10-14 Jakub Jelinek <jakub@redhat.com>
2369
2370 PR middle-end/37805
2371 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
2372 and -fhelp=separate.
2373
f8f49aea
BE
23742008-10-14 Ben Elliston <bje@au.ibm.com>
2375
2376 * config/rs6000/rs6000.md (cell_micro): Fix formatting.
2377
f27017d1
JM
23782008-10-13 Joseph Myers <joseph@codesourcery.com>
2379
2380 * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
2381 non-integer modes.
2382
bca60f4c
MK
23832008-10-13 Matthias Klose <doko@ubuntu.com>
2384
847e6346 2385 * config/pa/linux-atomic.c: Work around missing header file
bca60f4c
MK
2386 for hppa64-linux-gnu targets.
2387
c921bad8 23882008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
3cdf0c62
UB
2389 Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
2390 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2391 Grace Cao <grace_cao@playstation.sony.com>
c921bad8
AP
2392
2393 * doc/invoke.texi (-mgen-cell-microcode): Document.
2394 (-mwarn-cell-microcode): Document.
2395 * cfglayout.c (locator_location): Export.
2396 * rtl.h (locator_location): Define prototype.
3cdf0c62
UB
2397 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
2398 New predicate.
c921bad8
AP
2399 * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
2400 * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
2401 (mwarn-cell-microcode): New option.
2402 * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
2403 (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
2404 cell and not already set.
2405 Turn off string instructions if not generating cell microcode.
2406 (rs6000_final_prescan_insn): New function that warns about microcoded
2407 instructions.
2408 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
2409 * config/rs6000/rs6000.md
2410 Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
34e4536e
UB
2411 the instruction would have been microcoded on the Cell. Set
2412 cell_micro to always on unnamed patterns for the string instructions.
3cdf0c62
UB
2413 (cell_micro): Update definition, remove load/store conditional
2414 microcoded.
c921bad8
AP
2415 (sign_extend:DI): Define new pattern for non microcoded version.
2416 (sign_extend:SI): Likewise.
2417 (compare (div:P)): Set cell_micro to not.
2418 (andsi3): Define as an expand.
2419 (andsi3_mc): New pattern.
2420 (andsi3_nomc): New pattern.
2421 (andsi3_internal0_nomc): New pattern.
2422 (andsi3_internal2): Rename to ...
2423 (andsi3_internal2_mc): this and enable iff generating microcode.
2424 (andsi3_internal3): Rename to ...
2425 (andsi3_internal3_mc): this and enable iff generating microcode.
2426 (andsi3_internal4): Enable iif generating microcode.
2427 (andsi3_internal5): Rename to ..
2428 (andsi3_internal5_mc): this and enable iff generating microcode.
2429 (andsi3_internal5_nomc): New pattern.
2430 (extzvdi_internal1): Enable iff generating microcode.
2431 (extzvdi_internal2): Likewise.
2432 (rotlsi3_internal7): Set cell_micro to always if non immediate form.
2433 (anddi3): Change to expand.
2434 (anddi3_mc): Rename from anddi3.
2435 (anddi3_no_mc): New pattern.
2436 (anddi3_internal2): Rename to ..
2437 (anddi3_internal2_mc): this and enable iff generating microcode.
2438 (anddi3_internal2_nomc): New pattern.
2439 (anddi3_internal3): Rename to ..
2440 (anddi3_internal3_mc): this and enable iff generating microcode.
2441 (anddi3_internal3_nomc): New pattern.
2442 (movti_string): Set cell_micro to always if TARGET_STRING.
2443 (stmsi8): Set cell_micro to always.
2444 (stmsi7): Likewise.
2445 (stmsi6): Likewise.
2446 (stmsi5): Likewise.
2447 (stmsi4): Likewise.
2448 (stmsi3): Likewise.
2449 (stmsi8_power): Likewise.
2450 (stmsi7_power): Likewise.
2451 (stmsi6_power): Likewise.
2452 (stmsi5_power): Likewise.
2453 (stmsi4_power): Likewise.
2454 (stmsi3_power): Likewise.
2455 (movsi_update2): Enable iff generating microcode.
2456 (movhi_update3): Likewise.
2457 (lmw): Set cell_micro to always.
2458
dc66391d
RS
24592008-10-13 Richard Sandiford <rdsandiford@googlemail.com>
2460
2461 * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
2462 * config/s390/s390.c (machine_function): Remove
2463 decomposed_literal_pool_addresses_ok_p.
2464 (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
2465 the difference of two labels.
2466 (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
2467 (s390_pool_offset): New function.
2468 (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
2469 (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
2470
1590a115
NF
24712008-10-13 Nathan Froyd <froydnj@codesourcery.com>
2472
2473 * doc/install.texi (powerpc-*-*): Require binutils 2.15.
2474 (powerpc*-*-linux-gnu*): Describe.
2475 * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
2476 * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
2477 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
2478 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
2479 config/rs6000/e500crtres32gpr.asm,
2480 config/rs6000/e500crtres64gpr.asm,
2481 config/rs6000/e500crtres64gprctr.asm,
2482 config/rs6000/e500crtrest32gpr.asm,
2483 config/rs6000/e500crtrest64gpr.asm,
2484 config/rs6000/e500crtresx32gpr.asm,
2485 config/rs6000/e500crtresx64gpr.asm,
2486 config/rs6000/e500crtsav32gpr.asm,
2487 config/rs6000/e500crtsav64gpr.asm,
2488 config/rs6000/e500crtsav64gprctr.asm,
2489 config/rs6000/e500crtsavg32gpr.asm,
2490 config/rs6000/e500crtsavg64gpr.asm,
2491 config/rs6000/e500crtsavg64gprctr.asm: Use it.
2492 * config/rs6000/crtsavres.asm: Really remove.
2493
94564826
KT
24942008-10-13 Kai Tietz <kai.tietz@onevision.com>
2495
2496 Fix PR/25502
2497 * c-format.c (convert_format_name_to_system_name): Use
2498 TARGET_OVERRIDES_FORMAT_INIT.
2499 * config.gcc (extra_options): Add for mingw targets mingw.opt.
2500 * config/i386/mingw.opt: New.
2501 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
2502 * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
2503 (ms_printf_length_specs): Removed const specifier.
2504 * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
2505 * doc/invoke.texi (Wno-pedantic-ms-format): New.
2506
36c713e0
KG
25072008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2508
2509 * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
2510 * doc/install.texi: Bump recommended MPFR to 2.3.2.
2511
5288f999
KZ
25122008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
2513
2514 PR middle-end/37808
2515 * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
2516 sure that ref has valid bb.
2517
f6129d66
RH
25182008-10-12 Richard Henderson <rth@redhat.com>
2519
2520 PR middle-end/37447
2521 * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
2522 * alias.c (value_addr_p, stack_addr_p): Remove.
2523 (nonoverlapping_memrefs_p): Remove IRA special case.
2524 * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
2525 * emit-rtl.h (set_mem_attrs_for_spill): Declare.
2526 * reload1.c (alter_reg): Use it.
2527
dc8bd8d9
UB
25282008-10-12 Uros Bizjak <ubizjak@gmail.com>
2529
2530 * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
2531 of registers instead of eax, ebx, ecx and edx. Use for loop
2532 and check register for non-zero value before the call
2533 to decode_caches_intel.
2534
57512f53
KZ
25352008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
2536
2537 PR rtl-optimization/37448
2538 * df.h: (df_ref_class): New enum.
2539 (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
2540 (struct df_ref): Replaced with union df_ref_d.
2541 (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
2542 New members of df_ref_d union.
2543 (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
2544 DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
2545 DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
2546 DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
2547 DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
3cdf0c62
UB
2548 DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
2549 (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
57512f53
KZ
2550 (df_scan_bb_info, df_bb_regno_first_def_find,
2551 df_bb_regno_last_def_find, df_find_def, df_find_use,
2552 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
2553 debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
2554 df_ref_create, df_ref_remove, df_compute_accessed_bytes,
2555 df_get_artificial_defs, df_get_artificial_uses, union_defs)
2556 Replaced struct df_ref * with df_ref.
2557 * df-scan.c (df_collection_rec, df_null_ref_rec,
2558 df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
2559 df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
2560 df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
2561 df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
2562 df_reorganize_refs_by_reg_by_reg,
2563 df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
2564 df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
2565 df_sort_and_compress_refs, df_install_ref, df_install_refs,
2566 df_ref_record, df_get_conditional_uses, df_get_call_refs,
2567 df_bb_refs_record, df_exit_block_uses_collect,
2568 df_record_exit_block_uses, df_reg_chain_mark,
2569 df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
2570 df_ref * with df_ref.
2571 (df_ref_record, df_uses_record, df_ref_create_structure): Added
2572 df_ref_class parameter.
3cdf0c62 2573 (df_scan_problem_data): Added new pools for different types of refs.
57512f53
KZ
2574 (df_scan_free_internal, df_scan_alloc, df_free_ref,
2575 df_ref_create_structure): Processed new ref pools.
2576 (df_scan_start_dump): Added counts of refs and insns.
2577 (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
2578 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
2579 df_entry_block_defs_collect, df_exit_block_uses_collect): Added
2580 code to pass df_ref_class down to ref creation functions.
2581 (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
2582 df_reg_chain_mark): Use macros to hide references to df_refs.
2583 (df_ref_chain_change_bb): Removed.
2584 (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
2585 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
2586 Enhanced to understand df_ref union structure.
2587 * fwprop.c (local_ref_killed_between_p, use_killed_between,
2588 all_uses_available_at, update_df, try_fwprop_subst,
2589 forward_propagate_subreg, forward_propagate_and_simplify,
2590 forward_propagate_into, fwprop, fwprop_addr): Replaced struct
2591 df_ref * with df_ref.
2592 (use_killed_between, all_uses_available_at): Use macros to hide
2593 references to df_refs.
2594 * regstat.c (regstat_bb_compute_ri,
2595 regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
2596 df_ref.
2597 * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
2598 see_handle_relevant_refs, see_analyze_one_def,
2599 see_update_relevancy, see_propagate_extensions_to_uses): Replaced
2600 struct df_ref * with df_ref.
2601 * ra-conflict.c (record_one_conflict, clear_reg_in_live,
2602 global_conflicts): Replaced struct df_ref * with df_ref.
2603 * ddg.c (create_ddg_dep_from_intra_loop_link,
2604 add_cross_iteration_register_deps, build_inter_loop_deps):
2605 Replaced struct df_ref * with df_ref.
2606 (create_ddg_dep_from_intra_loop_link,
2607 add_cross_iteration_register_deps): Use macros to hide references
2608 to df_refs.
2609 * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
2610 df_ref * with df_ref.
2611 * df-core.c (df_bb_regno_first_def_find,
2612 df_bb_regno_last_def_find, df_find_def, df_find_use,
2613 df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
2614 debug_df_ref): Replaced struct df_ref * with df_ref.
dc8bd8d9 2615 (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
57512f53
KZ
2616 * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
2617 df_ref.
2618 * web.c (union_defs, entry_register, replace_ref, web_main):
2619 Replaced struct df_ref * with df_ref.
dc8bd8d9 2620 (union_defs, replace_ref): Use macros to hide references to df_refs.
57512f53
KZ
2621 * global.c (compute_regs_asm_clobbered, build_insn_chain):
2622 Replaced struct df_ref * with df_ref.
dc8bd8d9 2623 * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
57512f53
KZ
2624 * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
2625 Replaced struct df_ref * with df_ref.
2626 * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
2627 mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
2628 with df_ref.
dc8bd8d9 2629 * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
57512f53
KZ
2630 * df-byte-scan.c (df_compute_accessed_bytes_extract,
2631 df_compute_accessed_bytes_strict_low_part,
2632 df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
2633 Replaced struct df_ref * with df_ref.
dc8bd8d9 2634 (df_compute_accessed_bytes): Use macros to hide references to df_refs.
57512f53
KZ
2635 * init-regs.c (initialize_uninitialized_regs): Replaced struct
2636 df_ref * with df_ref.
2637 * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
2638 check_dependency, check_dependencies, record_uses): Replaced
2639 struct df_ref * with df_ref.
2640 (invariant_for_use, check_dependency): Use macros to hide
2641 references to df_refs.
2642 * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
2643 get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
2644 iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
2645 (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
2646 references to df_refs.
dc8bd8d9
UB
2647 * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
2648 with df_ref.
57512f53
KZ
2649 * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
2650 * df-problems.c (df_rd_bb_local_compute_process_def,
2651 df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
2652 df_chain_unlink_1, df_chain_unlink, df_chain_copy,
2653 df_chain_remove_problem, df_chain_create_bb_process_use,
2654 df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
2655 df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
2656 df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
2657 df_byte_lr_simulate_artificial_refs_at_top,
2658 df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
2659 df_note_bb_compute, df_note_add_problem, df_simulate_defs,
2660 df_simulate_uses, df_simulate_artificial_refs_at_end,
dc8bd8d9
UB
2661 df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
2662 df_ref.
2663 (df_chain_dump): Use macros to hide references to df_refs.
57512f53
KZ
2664 * config/mips/mips.c (r10k_simplify_address): Replaced struct
2665 df_ref * with df_ref.
2666 * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
2667 mark_artificial_uses, mark_reg_dependencies,
2668 byte_dce_process_block): Replaced struct df_ref * with df_ref.
2669
9f7ccf69
EB
26702008-10-11 Eric Botcazou <ebotcazou@adacore.com>
2671
2672 * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
2673 head comment.
2674 (array_ref_element_size): Likewise.
2675 (array_ref_low_bound): Likewise.
2676 (array_ref_up_bound): Likewise.
2677 * expr.c (contains_packed_reference): Likewise.
2678 (array_ref_element_size): Likewise.
2679 (array_ref_low_bound): Likewise.
2680 (array_ref_up_bound): Likewise.
2681 * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
2682 with ARRAY_RANGE_REF.
2683 (idx_find_step): Likewise.
2684 (idx_record_use): Likewise.
2685 (strip_offset_1): Likewise.
2686 (idx_remove_ssa_names): Likewise.
2687
cb0dee88
UB
26882008-10-11 Uros Bizjak <ubizjak@gmail.com>
2689 Andi Kleen <ak@linux.intel.com>
2690
2691 * config/i386/cpuid.h (__cpuid_count): New defines.
2692 * config/i386/driver-i386.c (struct cache_desc): New structure.
2693 (describe_cache): Use struct cache_desc to pass cache descriptions.
2694 (detect_l2_cache): Ditto. Rename from decode_l2_cache.
2695 (detect_caches_amd): Use struct cache_desc to describe caches.
2696 (decode_caches_intel): Use struct cache_desc to pass cache
2697 descriptions. Update descriptions to match latest (rev -032,
2698 December 2007) CPUID documentation. Do not check valid bit here.
2699 Check for Xeon MP value 0x49 problems.
2700 (detect_caches_cpuid2): New function, split from detect_caches_intel.
2701 Check valid bit before calling decode_caches_intel. Detect number
2702 of times to repeat CPUID instruction.
2703 (detect_caches_cpuid4): New function.
2704 (detect_caches_intel): Depending on max_level, call
2705 detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache
2706 only when other methods fail to provide valid L2 cache description.
2707
e40375e0
JDA
27082008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2709
2710 PR middle-end/37608
2711 * pa.md (call, call_value): Generate an rtx for register r4 and pass
2712 it to PIC call patterns.
2713 (call_symref_pic): Revise pattern to expose PIC register save. Remove
34e4536e
UB
2714 code generation and attributes from pattern. Change peephole2 to
2715 split for noreturn case. Revise split pattern for non noreturn case.
e40375e0
JDA
2716 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
2717 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
2718 * pa.c (attr_length_call): Simplify extraction of call rtx. Add some
2719 asserts.
2720
e47911ce
DE
27212008-10-11 David Edelsohn <edelsohn@gnu.org>
2722
cb0dee88
UB
2723 * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
2724 (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
2725 and fp_type.
2726 (divdf3): Reformat long line.
e47911ce 2727
0bb7b92e
ME
27282008-10-11 Michael J. Eager <eager@eagercon.com>
2729
2730 * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
2731 -mfpu options.
2732 (rs6000_handle_option): Process -mfpu options.
2733 * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
2734 (enum fpu_type_t): New.
cb0dee88 2735 * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md.
0bb7b92e
ME
2736 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
2737 fp_type.
2738 (floatsisf2): Remove TARGET_SINGLE_FPU condition.
2739 (floatdidf2): Add TARGET_SINGLE_FPU condition.
2740 * config/rs6000/rs6000.opt (-mfpu): New.
2741 (-mxilinx-fpu): New.
2742 * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
2743 * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
2744 * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
2745 * gcc/config.gcc: powerpc-xilinx-eabi target: New.
2746 * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
2747
506a7bc8
JJ
27482008-10-11 Jakub Jelinek <jakub@redhat.com>
2749
2750 PR target/35760
2751 * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
2752 LO_SUM on Darwin if mode has just one unit.
2753
35bb4945
L
27542008-10-10 H.J. Lu <hongjiu.lu@intel.com>
2755
2756 PR debug/37002
2757 * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
2758 has been optimized out.
2759
dc3ba671
RS
27602008-10-10 Richard Sandiford <rdsandiford@googlemail.com>
2761
2762 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
2763 instead of PIC_DIRECT_ADDR_P.
2764 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2765 (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
2766 (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
2767 (PIC_OFFSET_P): Rename to...
2768 (PCREL_SYMOFF_P): ...this.
2769 (PIC_DIRECT_ADDR_P): Delete.
2770 (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
2771 PIC_OFFSET_P.
2772 (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
2773 single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
2774 UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
2775 * config/sh/sh.c (print_operand): Remove CONST handling.
2776 (unspec_caller_rtx_p): Rewrite to use split_const and check
2777 the operands of UNSPEC bases.
2778 (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
2779 with (unspec [A B] UNSPEC_SYMOFF).
2780 (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
2781 UNSPEC_PCREL_SYMOFF.
2782 (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
2783 * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
2784 (UNSPEC_EXTRACT_U16): Likewise.
2785 (UNSPEC_SYMOFF): Likewise.
2786 (UNSPEC_PCREL_SYMOFF): Likewise.
2787 (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
2788 of constants.
2789 (movsi_const_16bit): Likewise.
2790 (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
2791 (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
2792 with (unspec [A B] UNSPEC_PCREL_SYMOFF).
2793 (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
2794 with (unspec [A B] UNSPEC_SYMOFF).
2795 (symPLT_label2reg): Replace (minus A (minus B pc)) with
2796 (unspec [A B] PCREL_UNSPEC_SYMOFF).
2797 * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
2798 (Csu): Likewise UNSPEC_EXTRACT_U16.
2799 (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
2800 (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
2801
e14165f4
SK
28022008-10-10 Stepan Kasal <skasal@redhat.com>
2803
2804 * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
2805 for loop strip mining and loop blocking.
2806
09775c40
AO
28072008-10-10 Alexandre Oliva <aoliva@redhat.com>
2808
2809 * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
2810 vary types depending on debug info.
2811
fd9fffd1
AO
28122008-10-10 Alexandre Oliva <aoliva@redhat.com>
2813
2814 * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
2815 before ensuring it's already computed.
2816
cc2a64dd
JJ
28172008-10-09 Jakub Jelinek <jakub@redhat.com>
2818
1692ae7e
JJ
2819 * rtl.h (locator_eq): New decl.
2820 * cfglayout.c (locator_scope): New function.
2821 (insn_scope): Use it.
2822 (locator_eq): New function.
2823 (fixup_reorder_chain): Search for last insn in src bb
2824 that has locator set or first insn in dest bb. Use
2825 locator_eq instead of == to compare locators.
2826 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
2827 * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
2828 == to compare locators.
2829
cc2a64dd
JJ
2830 * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
2831 as used.
2832 * gimple-low.c (lower_function_body, lower_gimple_return,
2833 lower_builtin_setjmp): Set gimple_block on the newly created stmts.
2834 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
2835 goto_block on edges if goto_locus is known.
2836
df96b059
JJ
2837 PR middle-end/37774
2838 * tree.h (get_object_alignment): Declare.
2839 * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
2840 get_object_alignment if needed.
34e4536e
UB
2841 * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
2842 handling to ...
df96b059
JJ
2843 (get_object_alignment): ... here. New function. Try harder to
2844 determine alignment from get_inner_reference returned offset.
2845
7787b4aa
JJ
28462008-10-08 Jakub Jelinek <jakub@redhat.com>
2847
88b98d1a
JJ
2848 * graphite.c (gloog): Don't call find_unreachable_blocks
2849 before delte_unreachable_blocks.
2850
7787b4aa
JJ
2851 * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
2852 goto_locus of true_edge into RTL locator.
2853
b7f58d5d
UB
28542008-10-08 Uros Bizjak <ubizjak@gmail.com>
2855
2856 * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
2857 (*jcc_btdi_mask_rex64): Ditto.
2858 (*jcc_btsi): Ditto.
2859 (*jcc_btsi_mask): Ditto.
2860 (*jcc_btsi_1): Ditto.
2861 (*jcc_btsi_mask_1): Ditto.
2862
a7e8c652
PB
28632008-10-08 Paul Brook <paul@codesourcery.com>
2864
2865 * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
2866 compatible profiler (__gnu_mcount_nc).
2867 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2868
54723b46
L
28692008-10-08 H.J. Lu <hongjiu.lu@intel.com>
2870
2871 * config/i386/i386.c (initial_ix86_tune_features): Add
2872 X86_TUNE_USE_VECTOR_FP_CONVERTS.
2873 * config/i386/i386.h (ix86_tune_indices): Likewise.
2874 (TARGET_USE_VECTOR_FP_CONVERTS): New.
2875
2876 * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
2877 instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
2878 for FP to FP splitters.
2879
ddd5eeb1
L
28802008-10-08 H.J. Lu <hongjiu.lu@intel.com>
2881
2882 * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
2883 splitter.
2884
31e9ebaf
JJ
28852008-10-08 Jakub Jelinek <jakub@redhat.com>
2886
2887 PR target/36635
2888 PR target/37290
2889 PR rtl-optimization/37341
2890 * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
2891 to ORIG_BB, pass through ORIG_BB recursively.
2892 (cse_condition_code_reg): Adjust caller.
2893
a4a4f775
KT
28942008-10-08 Kai Tietz <kai.tietz@onevision.com>
2895
2896 * sdbout.c (sdbout_one_type): Treat the value type
2897 CONST_DECL for enumerals.
2898
1ffcdc02
L
28992008-10-07 H.J. Lu <hongjiu.lu@intel.com>
2900
2901 * config/i386/i386.md: Remove trailing white spaces.
2902
beb0c9cc
KZ
29032008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2904
2905 PR rtl-optimization/37448
b7f58d5d
UB
2906 * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
2907 (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
2908 Make unsigned long.
2909 (struct output_info) [count]: Renamed total_created and made
2910 unsigned long.
2911 (struct output_info) [size]: Renamed total_allocated and made
2912 unsigned long.
2913 (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
2914 Properly keep track of desc->size.
beb0c9cc
KZ
2915 (print_statistics, dump_alloc_pool_statistics): Enhance the
2916 printing of statistics to print the number of elements and to use
2917 unsigned longs.
2918
a1fd13d0
JJ
29192008-10-07 Jakub Jelinek <jakub@redhat.com>
2920
2921 PR middle-end/37576
2922 * opts.h (CL_SAVE): Move up to flags range.
2923 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
2924 CL_COMMON): Renumber.
2925 (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
2926 * opts.c (common_handle_option): Revert last change.
2927
7ab91c5f
L
29282008-10-07 H.J. Lu <hongjiu.lu@intel.com>
2929
2930 * config/i386/i386-protos.h (ix86_schedule): New.
2931
2932 * config/i386/i386.c (ix86_schedule): New.
2933 (override_options): Add schedule to processor_alias_table. Set
2934 ix86_schedule from the schedule field in processor_alias_table.
2935 (ix86_function_specific_save): Save ix86_schedule.
2936 (ix86_function_specific_restore): Restore ix86_schedule.
2937
2938 * config/i386/i386.md (cpu): Map to ix86_schedule instead of
2939 ix86_tune. Add none and remove i386, i486, pentium4, nocona
2940 and generic32.
2941
2942 * config/i386/i386.opt: Add schedule.
2943
2944 * config/i386/ppro.md: Remove generic32.
2945
16d5ffec
SM
29462008-10-07 Simon Martin <simartin@users.sourceforge.net>
2947
2948 PR c/35437
2949 * expr.c (count_type_elements): Handle ERROR_MARK.
2950
7241571e
JJ
29512008-10-07 Jakub Jelinek <jakub@redhat.com>
2952
2953 PR debug/29609
2954 PR debug/36690
2955 PR debug/37616
2956 * basic-block.h (struct edge_def): Add goto_block field.
2957 * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
2958 one insn with locus corresponding to edge's goto_locus if !optimize.
2959 * profile.c (branch_prob): Copy edge's goto_block.
2960 * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
2961 emitted jumps.
2962 (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
2963 locator in between the merged basic blocks if !optimize and needed.
2964 * cfgexpand.c (expand_gimple_cond): Convert goto_block and
2965 goto_locus into RTL locator. For unconditional jump use that
2966 locator for the jump insn.
2967 (expand_gimple_cond): Convert goto_block and goto_locus into
2968 RTL locator for all remaining edges. For unconditional jump
2969 use that locator for the jump insn.
2970 * cfgcleanup.c (try_forward_edges): Avoid the optimization if
2971 there is more than one edge or insn locator along the forwarding
2972 edges and !optimize. If there is just one, set e->goto_locus.
2973 * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
2974 edge's goto_block.
2975 (move_block_to_fn): Adjust edge's goto_block.
2976
aee857a2
L
29772008-10-07 H.J. Lu <hongjiu.lu@intel.com>
2978
2979 PR middle-end/37731
2980 * expmed.c (expand_mult): Properly check DImode constant in
2981 CONST_DOUBLE.
2982
a107f086
JJ
29832008-10-07 Jakub Jelinek <jakub@redhat.com>
2984
2985 PR debug/37738
2986 * dwarf2out.c (common_block_die_table): New variable.
2987 (common_block_die_table_hash, common_block_die_table_eq): New
2988 functions.
2989 (gen_variable_die): Look up a DW_TAG_common_block die for a particular
2990 COMMON block in the current scope rather than globally. Optimize
2991 DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
2992 DW_OP_addr SYMBOL_REF+off.
2993
cf9322ca
EB
29942008-10-07 Eric Botcazou <ebotcazou@adacore.com>
2995
2996 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
2997 Return true for non-addressable GIMPLE operands.
2998
23cb97b7
L
29992008-10-07 H.J. Lu <hongjiu.lu@intel.com>
3000
3001 PR target/24765
3002 * config/i386/i386.c (initial_ix86_tune_features): Remove
3003 X86_TUNE_USE_BIT_TEST.
3004 * config/i386/i386.h (ix86_tune_indices): Likewise.
3005 (TARGET_USE_BIT_TEST): Removed.
3006
ebca2d91
BRF
30072008-10-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3008
3009 * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
3010
4c6f9770
AN
30112008-10-06 Adam Nemet <anemet@caviumnetworks.com>
3012
3013 * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
3014 (mul<mode>3_mul3): ... into this new template.
3015
1282697f
AH
30162008-10-06 Aldy Hernandez <aldyh@redhat.com>
3017
3018 * gimplify.c (gimplify_arg): Add location argument. Use it.
3019 (gimplify_call_expr): Pass location to gimplify_arg.
3020 (gimplify_modify_expr_to_memcpy): Same.
3021 (gimplify_modify_expr_to_memset): Same.
3022
ecbeb53b
AP
30232008-10-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
3024
3025 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3026 Update calls to build_unary_op and build_indirect_ref for location
3027 changes.
3028
c9f9eb5d
AH
30292008-10-06 Aldy Hernandez <aldyh@redhat.com>
3030
3031 build_modify_expr.
3032 * c-decl.c (finish_decl): Pass input_location to build_unary_op.
3033 * c-typeck.c (array_to_pointer_conversion): Pass location to
3034 build_unary_op.
3035 (function_to_pointer_conversion): Use error_at and warning_at.
3036 (build_indirect_ref): Same.
3037 (build_array_ref): Pass location to build_binary_op.
3038 (parser_build_unary_op): Do not set location after calling
3039 build_unary_op.
3040 (build_unary_op): Add location argument. Use it throughout. Set
3041 EXPR_LOCATION before returning new tree.
3042 (build_modify_expr): Same.
3043 (build_binary_op): Use location throughout. Set EXPR_LOCATION before
3044 returning node.
3045 * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
3046 build_indirect_ref, build_modify_expr.
3047 (c_finish_omp_for): Same. Use error_at instead of error.
3048 * c-common.c (c_common_truthvalue_conversion): Pass location to
3049 build_unary_op.
3050 (warn_for_div_by_zero): Add location argument.
3051 * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
3052 build_unary_op, warn_for_div_by_zero.
3053 * c-parser.c (c_parser_typeof_specifier): Use
3054 protected_set_expr_location.
3055 (c_parser_statement_after_labels): Same.
3056 (c_parser_condition): Same.
3057 (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
3058 (c_parser_conditional_expression): Use protected_set_expr_location.
3059 (c_parser_unary_expression): Pass location to build_indirect_ref.
3060 (c_parser_postfix_expression_after_primary): Pass location to
3061 build_indirect_ref, build_unary_op.
3062 (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
3063
7a3446ec
JK
30642008-10-06 Joshua Kinard <kumba@gentoo.org>
3065
3066 * doc/invoke.texi: List r1x000 family under the -march MIPS option.
3067 * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
3068 * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
3069 r14000 and r16000.
3070 (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
3071 (mips_issue_rate): Handle PROCESSOR_R10000.
3072 * config/mips/mips.md (cpu): Add r10000.
3073 Include r10000.md.
3074 * config/mips/10000.md: New file.
3075
944258eb
RS
30762008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
3077
3078 * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
3079 * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
3080 * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
3081
08a6a74b
RS
30822008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
3083
3084 * config/darwin-protos.h (machopic_function_base_name): Delete.
3085 (machopic_function_base_sym): Likewise.
3086 (machopic_gen_offset): Declare.
3087 * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
3088 (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
3089 * config/darwin.c (machopic_function_base_name): Delete.
3090 (machopic_function_base_sym): Likewise.
3091 (gen_pic_offset): Rename to...
3092 (machopic_gen_offset): ...this and remove the pic_base argument.
3093 Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
3094 is needed. Create an UNSPEC_MACHOPIC_OFFSET if so, and set
3095 crtl->uses_pic_offset_table.
3096 (machopic_indirect_data_reference): Use new machopic_gen_offset
3097 interface.
3098 (machopic_legitimize_pic_address): Likewise.
3099 (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
3100
3101 * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
3102 MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
3103 * config/i386/i386.c (output_set_got): Likewise.
3104 (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
3105 instead of a MINUS.
3106 (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
3107 (legitimate_address_p): Likewise.
3108 (output_pic_addr_const): Likewise.
3109 (output_addr_const_extra): Likewise.
3110 (ix86_delegitimize_address): Expect darwin_local_data_pic to
3111 match an UNSPEC rather than a MINUS.
3112 * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
3113 (builtin_setjmp_receiver): Use machopic_gen_offset.
3114 * config/i386/predicates.md (pic_symbolic_operand): Handle
3115 UNSPEC_MACHOPIC_OFFSET.
3116
3117 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
3118 Use machopic_gen_offset and machopic_operand_p.
3119 (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
3120 (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
3121 * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
3122 (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
3123 Set crtl->uses_pic_offset_table.
3124
2e4316da
RS
31252008-10-06 Richard Sandiford <rdsandiford@googlemail.com>
3126
3127 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
3128 Declare.
3129 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
3130 * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
3131 * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
3132 (constant_pool_expr_p): Use split_const and check the base.
3133 (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
3134 instead of a MINUS.
3135 (legitimate_constant_pool_address_p): Check toc_relative_p
3136 instead of constant_pool_expr_p.
3137 (print_operand_address): Always use output_addr_const for
3138 constant pool addresses.
3139 (rs6000_output_addr_const_extra): New function.
b7f58d5d 3140 (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
2e4316da 3141
3517d3a0
VM
31422008-10-06 Vladimir Makarov <vmakarov@redhat.com>
3143
3144 PR middle-end/37535
3145
3146 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
3147 (mark_ref_live, mark_ref_dead): Use them.
3148 (def_conflicts_with_inputs_p): Remove.
3149 (mark_early_clobbers): New function.
3150 (process_bb_node_lives): Call preprocess_constraints and
3151 mark_early_clobbers.
3152
3153 * doc/rtx.texi (clobber): Change how RA deals with clobbers.
3154
de27a12c
DS
31552008-10-06 Danny Smith <dannysmith@users.sourceforge.net>
3156
3157 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
3158 lib with -mthread switch.
3159
d19c0f4b
DS
31602008-10-05 Dodji Seketeli <dodji@redhat.com>
3161
3162 PR c++/37410
3163 * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
3164 function in two, making it call a new and reusable
3165 dwarf2out_imported_module_or_decl() that takes the containing
3166 BLOCK of the declaration in argument.
3167 (dwarf2out_imported_module_or_decl_real): New function.
3168 (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
3169 IMPORTED_DECL in account.
3170 * tree.def: Added IMPORTED_DECL node type.
3171 * tree.h: Added accessors for IMPORTED_DECL nodes.
3172 * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
3173
1d72ff1a
RW
31742008-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3175
3176 * doc/gimple.texi: Fix some typos, wrap some long lines,
3177 fix some broken wraps with continuations.
3178 * tree-ssa-reassoc.c: Fix comment typos.
3179
0b076fea
JDA
31802000-10-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3181
3182 PR target/37603
3183 * pa.c (legitimize_pic_address): Force function labels to memory in
3184 word mode.
3185
a3cb4b82
AB
31862008-10-04 Anton Blanchard <anton@samba.org>
3187
3188 * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
3189 (rs6000_split_atomic_op): Same.
3190 (rs6000_split_compare_and_swap): Same.
3191 (rs6000_split_compare_and_swapqhi): Same.
3192
63a14fa3
RG
31932008-10-04 Richard Guenther <rguenther@suse.de>
3194
3195 * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
3196 instead of pointer equality.
3197 (vn_nary_op_eq): Likewise.
3198
3a86d13b
AP
31992008-10-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
3200
3201 * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
3202 condition.
3203 (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
3204 TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
3205
12df9508
DS
32062008-10-03 Danny Smith <dannysmith@users.sourceforge.net>
3207
3208 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
3209 Revert previous change.
3210
d1f43464
TT
32112008-10-03 Tom Tromey <tromey@redhat.com>
3212
3213 * stringpool.c (ggc_alloc_string): Terminate string.
3214
524d9a45
JJ
32152008-10-03 Jakub Jelinek <jakub@redhat.com>
3216
32001f69
JJ
3217 * gimplify.c (gimplify_function_tree): For -finstrument-functions
3218 use gimple_bind_{,set_}block instead of gimple_{,set_}block.
3219 * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
3220
524d9a45
JJ
3221 PR debug/37726
3222 * gimplify.c (declare_vars): Use gimple_bind_block instead of
3223 gimple_block.
3224
2f07423c
PO
32252008-10-03 Pascal Obry <obry@adacore.com>
3226
3227 * gcov.c (create_file_names): Properly handle UNIX and DOS
3228 directory separators.
3229 (make_gcov_file_name): Likewise + convert the ':' DOS drive
3230 separator to '~' to ensure clean filenames on Windows.
3231
12df9508
DS
32322008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
3233
3234 * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
3235 Add a null terminator to the stripped name.
3236
56f4cc04
DE
32372008-10-02 David Edelsohn <edelsohn@gnu.org>
3238
3239 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
3240 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3241 (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
b7f58d5d
UB
3242 TARGET_SINGLE_FLOAT. Revert SCALAR_FLOAT_MODE_P condition.
3243 (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
56f4cc04
DE
3244 (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
3245 TARGET_SINGLE_FLOAT.
3246
17372f8c
DJ
32472008-10-02 Daniel Jacobowitz <dan@codesourcery.com>
3248
3249 * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
3250
0d17b70a
RG
32512008-10-02 Richard Guenther <rguenther@suse.de>
3252
3253 PR middle-end/37713
3254 * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
3255 and VECTOR_TYPE recurse with useless_type_conversion_p which
3256 properly handles void pointer conversion.
3257
068450d0
DS
32582008-10-02 Danny Smith <dannysmith@users.sourceforge.net>
3259
3260 PR target/37528
3261 * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
3262 (REAL_LIBGCC_SPEC): New. Always include -lgcc.
3263
266b4890
AP
32642008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
3265
3266 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3267 Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
3268 ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
3269 they translate to non builtins.
3270 * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
3271 opaque_ftype_opaque. Define builtins __builtin_vec_splats,
3272 __builtin_vec_promote, __builtin_vec_extract, and
3273 __builtin_vec_insert.
3274 * config/rs6000/rs6000.h (enum rs6000_builtins): Add
3275 ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
3276 ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
3277 * config/rs6000/altivec.h (vec_extract): Define
3278 (vec_insert): Define.
3279 (vec_splats): Define.
3280 (vec_promote): Define.
3281
0b61703c 32822008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
b7f58d5d
UB
3283 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
3284 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
0b61703c
AP
3285
3286 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
3287 Altivec intrinsics.
3288 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
3289 prototype. Add new parameter, blk.
3290 Use BLKmode for the MEM if blk is true.
3291 (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
3292 ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
3293 ALTIVEC_BUILTIN_STVRXL.
3294 Update usage of altivec_expand_lv_builtin.
3295 Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
3296 ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
3297 (altivec_init_builtins): If compiling for the Cell, also define the
3298 cell VMX builtins.
3299 * config/rs6000/rs6000.h (rs6000_builtins): Define
3300 ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
3301 ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
3302 ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
3303 ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
3304 ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
3305 ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
3306 ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
3307 * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
3308 UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
3309 UNSPEC_STVRX, and UNSPEC_STVRXL.
3310 (altivec_lvlx): New pattern.
3311 (altivec_lvlxl): New pattern.
3312 (altivec_lvrx): New pattern.
3313 (altivec_lvrxl): New pattern.
3314 (altivec_stvlx): New pattern.
3315 (altivec_stvlxl): New pattern.
3316 (altivec_stvrx): New pattern.
3317 (altivec_stvrxl): New pattern.
3318 * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
3319 (vec_lvlxl): Likewise.
3320 (vec_lvrx): Define if PPU is defined.
3321 (vec_lvrxl): Likewise.
3322 (vec_stvlx): Define if PPU is defined.
3323 (vec_stvlxl): Likewise.
3324 (vec_stvrx): Define if PPU is defined.
3325 (vec_stvrxl): Likewise.
3326
522aa637
GB
33272008-10-01 Geert Bosch <bosch@adacore.com>
3328
3329 * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
3330
c8ce33fa
RG
33312008-10-01 Richard Guenther <rguenther@suse.de>
3332
3333 PR tree-optimization/37617
3334 * tree-ssa-pre.c (create_expression_by_pieces): During FRE
3335 do not add to the NEW_SETS.
3336
256f88c6
RG
33372008-10-01 Richard Guenther <rguenther@suse.de>
3338
0b61703c
AP
3339 PR middle-end/37285
3340 * tree-vrp.c (execute_vrp): If we optimized away the default
3341 case make sure to promote the label that got in place of it
3342 to a default case label.
256f88c6 3343
35a45bd4
RH
33442008-10-01 Richard Henderson <rth@redhat.com>
3345
3346 PR tree-opt/35737
3347 * tree-complex.c (set_component_ssa_name): Don't optimize
3348 is_gimple_min_invariant values with ssa_names in abnormal phis.
3349
001003c2
PB
33502008-09-30 Paolo Bonzini <bonzini@gnu.org>
3351
3352 PR tree-optimization/37662
3353 * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
3354 commutative binary operation if they are in the wrong order and
3355 fold_build2 produces non-GIMPLE.
3356
61b70fcb
JJ
33572008-09-30 Jakub Jelinek <jakub@redhat.com>
3358
3359 PR tree-optimization/37662
3360 PR tree-optimization/37663
3361 * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
3362 get_value_range with non-SSA_NAME. Don't assert operands have been
3363 folded, instead just bail out.
3364
1847ea4d
AP
33652008-09-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
3366
3367 * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
3368
516c743f
RG
33692008-09-30 Richard Guenther <rguenther@suse.de>
3370
3371 PR middle-end/37491
3372 * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
3373 build restrict-qualified pointers.
3374 (vectorizable_store): Move alias check later.
3375 (vectorizable_load): Likewise.
3376
626c34b5
PB
33772008-09-30 Paolo Bonzini <bonzini@gnu.org>
3378
3379 * c-common.c (empty_if_body_warning): Remove.
3380 * c-common.h (empty_if_body_warning): Remove.
3381 * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
3382 here the -Wempty-body warning for `if' and `else' statements.
3383 * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
3384
bd459cb6
L
33852008-09-29 H.J. Lu <hongjiu.lu@intel.com>
3386
3387 * config/i386/i386.opt: Add msse2avx.
3388
3389 * config/i386/linux.h (ASM_SPEC): New. Support -msse2avx.
3390 * config/i386/linux64.h (ASM_SPEC): Likewise.
3391
3392 * doc/invoke.texi: Document -msse2avx.
3393
2eb20e13
EB
33942008-09-29 Eric Botcazou <ebotcazou@adacore.com>
3395
3396 * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
3397
567075ed
JM
33982008-09-29 Joseph Myers <joseph@codesourcery.com>
3399
3400 * ifcvt.c (noce_emit_store_flag): If using condition from original
3401 jump, reverse it if if_info->cond was reversed.
3402
ae00112b
EB
34032008-09-29 Eric Botcazou <ebotcazou@adacore.com>
3404
3405 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3406 non-constant memory if it cannot be forced to constant memory.
3407 Overhaul surrounding code and factor out common condition.
3408
34092008-09-29 Jeff Law <law@redhat.com>
6b5676ce
JL
3410
3411 * reload1.c (alter_reg): Add missing curly braces.
3412
696e45ba
ME
34132008-09-29 Michael J. Eager <eager@eagercon.com>
3414
3415 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
3416 are easy.
3417 * config/rs6000/rs6000.c (rs6000_override_options): Move
3418 rs6000_init_hard_regno_mode_ok after all options changed.
3419 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
3420 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
3421 -msimple-fpu flags. Add warning messages if single FP not configured.
3422 (rs6000_file_start): Output gnu_attribute for single-float.
3423 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
3424 (rs6000_legitimize_address): Likewise.
3425 (rs6000_legitimize_reload_address): Likewise.
3426 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
3427 TARGET_SINGLE_FLOAT.
3428 (function_arg_advance): Likewise (partial conversion).
3429 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
3430 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
3431 TARGET_SINGLE_FLOAT.
3432 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
3433 (rs6000_emit_prologue): Likewise.
3434 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
3435 TARGET_SINGLE_FLOAT.
3436 (rs6000_libcall_value): Likewise.
3437 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
3438 (TARGET_DOUBLE_FLOAT): New default to 1
3439 (TARGET_SIMPLE_FPU): New default to 0
3440 (TARGET_SINGLE_FPU): New default to 0
3441 (TARGET_SINGLE_FLOAT_MODE): New.
3442 (TARGET_DOUBLE_FLOAT_MODE): New.
3443 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
3444 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
3445 UNITS_PER_FP_WORD
3446 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
3447 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3448 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
3449 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
3450 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
3451 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
3452 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
3453 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
3454 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
3455 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
3456 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
3457 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
3458 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
3459 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
3460 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
3461 cmptf_internal1, *cmptf_internal2): Condition on
3462 TARGET_DOUBLE_FLOAT.
3463 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
3464 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
3465 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
3466 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
3467 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
3468 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
3469 TARGET_SINGLE_FLOAT.
3470 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
3471 * config/rs6000/rs6000.opt (-msingle-float): New.
3472 (-mdouble-float): New.
3473 (-msimple-fpu): New.
3474 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
3475 -msingle-float, -mdouble-float, -msimple-fpu options.
3476 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
3477 _SOFT_DOUBLE for -msingle-float.
3478 * config.gcc: New config for target=powerpc-xilinx-eabi.
3479
a61e3d2a
TG
34802008-09-29 Tobias Grosser <grosser@fim.uni-passau.de>
3481
4e5821d3
UB
3482 * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
3483 have exit and entry.
a61e3d2a
TG
3484 (new_scop): Take entry and exit edge to define new SCoP.
3485 (sd_region_p): New structure used during SCoP detection.
3486 (move_scops): Delete.
3487 (move_sd_regions): New.
3488 (scopdet_info): Change the definition from edges back to basic_blocks.
3489 (scopdet_edge_info): Work on basic_blocks and rename to
3490 scopdet_basic_block_info.
3491 (split_difficult_bb): At the moment removed. We should later
3492 add it at another place.
3493 (build_scops_1): Work on basic_blocks.
3494 (bb_in_sd_region): New.
3495 (find_single_entry_edge): New.
3496 (find_single_exit_edge): New.
3497 (create_single_entry_edge): New.
3498 (sd_region_without_exit): New.
3499 (create_single_exit_edge): New.
3500 (unmark_exit_edges): New.
3501 (mark_exit_edges): New.
3502 (create_sese_edges): New.
3503 (build_graphite_scops): New.
3504 (build_scops): Make SCoPs SESE.
3505 (limit_scops): Use the new functions.
3506
e53c2677
HPN
35072008-09-29 Hans-Peter Nilsson <hp@axis.com>
3508
3509 * config/cris/cris.h (IRA_COVER_CLASSES): Define.
3510
4b49d9ce
AP
35112008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
3512
3513 PR target/37640
3514 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
3515 address to a register before taking the lower part.
3516
30deaaf3
KK
35172008-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
3518
3519 * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
3520 for SHmedia.
3521
f50d67f6 35222008-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4e5821d3 3523 Kaushal Kantawala <kaushal_kantawala@playstation.sony.com>
f50d67f6
AP
3524
3525 PR tree-opt/36891
3526 * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
3527 the newly created variable.
3528 Create a VECTOR_CST of all 1s for vector types.
3529
58760a81
EB
35302008-09-28 Eric Botcazou <ebotcazou@adacore.com>
3531
3532 PR middle-end/36575
ccad7589 3533 * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
58760a81 3534
86cfb27a
EB
35352008-09-28 Eric Botcazou <ebotcazou@adacore.com>
3536
3537 * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
3538 order to convert between modes.
3539 (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
3540
f2a945b1
KK
35412008-09-27 Kaz Kojima <kkojima@gcc.gnu.org>
3542
3543 * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
3544 if needed.
3545
f98c983a
VM
35462008-09-26 Vladimir Makarov <vmakarov@redhat.com>
3547
3548 Revert:
0b61703c 3549 2008-09-25 Vladimir Makarov <vmakarov@redhat.com>
f98c983a
VM
3550 * ira-lives.c:...
3551 * doc/rtl.texi:...
3552
aa5409e7
AN
35532008-09-26 Adam Nemet <anemet@caviumnetworks.com>
3554
3555 * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
3556 ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
3557 them to yield false with MIPS16.
3558
71142814
JJ
35592008-09-26 Jakub Jelinek <jakub@redhat.com>
3560
9c2b3df1
JJ
3561 PR middle-end/37275
3562 * dwarf2out.c (tls_mem_loc_descriptor): New function.
3563 (mem_loc_descriptor): Use it for MEM. For PLUS fail if second
3564 mem_loc_descriptor failed. Accept UNSPEC.
3565 (loc_descriptor): Use tls_mem_loc_descriptor for MEM. For PARALLEL
3566 fail if one of the loc_descriptor calls for pieces failed.
3567 (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
3568 as long as they bind locally. For COMPONENT_REF, ARRAY_REF etc. fail
3569 if loc_descriptor_from_tree_1 on offset failed.
3570
71142814
JJ
3571 PR middle-end/37576
3572 * opts.c (common_handle_option): Don't call print_specific_help with
3573 CL_SAVE as first argument.
3574
5d47bb02 35752008-09-26 Peter O'Gorman <pogma@thewrittenword.com>
4e5821d3 3576 Steve Ellcey <sje@cup.hp.com>
5d47bb02
PG
3577
3578 * configure: Regenerate for new libtool.
3579 * aclocal.m4: Ditto.
3580
16044a80
PH
35812008-09-26 Pat Haugen <pthaugen@us.ibm.com>
3582
3583 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
3584 alias set on MEM when saving stack pointer.
3585 * config/rs6000/rs6000.md (allocate_stack): Likewise
3586
4ee279f2
DN
35872008-09-26 Dorit Nuzman <dorit@il.ibm.com>
3588
3589 PR tree-optimization/37574
3590 * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
3591 * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
3592 instead of vector_type for constants. Take computation out of loop.
3593 (vect_get_vec_def_for_operand): Use only vectype for constant case,
3594 and use only vector_type for invariant case.
3595 (get_initial_def_for_reduction): Use vectype instead of vector_type.
3596
e7b012c0
JJ
35972008-09-25 Jakub Jelinek <jakub@redhat.com>
3598
3599 PR c/37645
3600 * c-common.c (handle_weakref_attribute): Ignore the attribute unless
3601 the decl is a VAR_DECL or FUNCTION_DECL.
3602
83d48fad
VM
36032008-09-25 Vladimir Makarov <vmakarov@redhat.com>
3604
3605 PR middle-end/37535
83d48fad
VM
3606 * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
3607 (mark_ref_live, mark_ref_dead): Use them.
3608 (def_conflicts_with_inputs_p): Remove.
3609 (mark_early_clobbers): New function.
3610 (process_bb_node_lives): Call preprocess_constraints and
3611 mark_early_clobbers.
3612
3613 * doc/rtl.texi (clobber): Change how RA deals with clobbers.
3614
b15a7ae6
VM
36152008-09-25 Vladimir Makarov <vmakarov@redhat.com>
3616
3617 PR middle-end/37448
b15a7ae6
VM
3618 * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
3619 (ira_compress_allocno_live_ranges): New prototype.
3620
3621 * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
3622 (coalesced_allocnos_living_at_program_points): New.
3623 (coalesced_allocnos_live_at_points_p,
3624 set_coalesced_allocnos_live_points): New functions.
3625 (coalesce_spill_slots): Rewrite.
3626
3627 * ira-lives.c (remove_some_program_points_and_update_live_ranges,
3628 ira_compress_allocno_live_ranges): New functions.
3629
3630 * ira-build.c (ira_flattening): Call
3631 ira_compress_allocno_live_ranges.
3632 (ira_build): Ditto.
3633
6396547e
L
36342008-09-25 H.J. Lu <hongjiu.lu@intel.com>
3635
3636 * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
3637 optimization.
3638
6ffef2ad
RS
36392008-09-25 Richard Sandiford <rdsandiford@googlemail.com>
3640
3641 * combine.c (make_compound_operation): Handle the 'E' format.
3642 (count_rtxs): Likewise.
3643 (update_table_tick): Likewise.
3644 (get_last_value_validate): Likewise.
3645
116612b9
EB
36462008-09-25 Eric Botcazou <ebotcazou@adacore.com>
3647
3648 * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
3649
e76314a7
SD
36502008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
3651
6396547e 3652 * matrix-reorg.c (transform_allocation_sites): Initializers
e76314a7
SD
3653 added to avoid the warning.
3654
2fb16412
MJ
36552008-09-25 Martin Jambor <mjambor@suse.cz>
3656
3657 * cgraph.c (free_nodes): New variable.
3658 (NEXT_FREE_NODE): New macro.
3659 (cgraph_create_node): Reuse nodes from the free list. Do not
3660 update uid if doing so.
3661 (cgraph_remove_node): Add the node to the free list.
3662
0c327f09
GP
36632008-09-25 Gerald Pfeifer <gerald@pfeifer.com>
3664
3665 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3666
b5e9dce1
RH
36672008-09-24 Richard Henderson <rth@redhat.com>
3668
3669 * dwarf2.h (DW_OP_GNU_encoded_addr): New.
3670 * unwind-dw2.c (execute_stack_op): Handle it.
3671
cf8e1455
DE
36722008-09-24 David Edelsohn <edelsohn@gnu.org>
3673
3674 Revert:
3675 2008-09-24 Michael J. Eager <eager@eagercon.com>
3676
3ba09659
AH
36772008-09-24 Aldy Hernandez <aldyh@redhat.com>
3678
3679 * c-common.c (fname_decl): New location argument.
3680 * c-common.h (fname_decl): Same.
3681 * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
3682 {warning,error}.
3683 (c_parser_typeof_specifier): Same.
3684 (c_parser_parms_list_declarator): Same.
3685 (c_parser_asm_string_literal): Same.
3686 (c_parser_compound_statement_nostart): Same.
3687 (c_parser_label): Same.
3688 (c_parser_do_statement): Same.
3689 (c_parser_asm_statement): Same.
3690 (c_parser_unary_expression): Same.
3691 (c_parser_sizeof_expression): Same.
3692 (c_parser_postfix_expression): Same.
3693 (c_parser_pragma): Same.
3694 (c_parser_omp_clause_collapse): Same.
3695 (c_parser_omp_clause_num_threads): Same.
3696 (c_parser_omp_clause_schedule): Same.
3697 (c_parser_omp_all_clauses): Same.
3698 (c_parser_omp_sections_scope): Same.
3699 (c_parser_omp_for_loop): Same. Pass condition's location to
3700 c_objc_common_truthvalue_conversion.
3701 (c_parser_enum_specifier): Remove comment.
3702
2a013f05
ME
37032008-09-24 Michael J. Eager <eager@eagercon.com>
3704
3705 * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
3706 are easy.
3707 * config/rs6000/rs6000.c (rs6000_override_options): Move
3708 rs6000_init_hard_regno_mode_ok after all options changed.
3709 Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
3710 (rs6000_handle_option): Process -msingle-float, -mdouble-float,
3711 -msimple-fpu flags. Add warning messages if single FP not configured.
3712 (rs6000_file_start): Output gnu_attribute for single-float.
3713 (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
3714 (rs6000_legitimize_address): Likewise.
3715 (rs6000_legitimize_reload_address): Likewise.
3716 (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
3717 TARGET_SINGLE_FLOAT.
3718 (function_arg_advance): Likewise.
3719 (function_arg): Likewise.
3720 (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
3721 (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
3722 TARGET_SINGLE_FLOAT.
3723 (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
3724 (rs6000_emit_prologue): Likewise.
3725 (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
3726 TARGET_SINGLE_FLOAT.
3727 (rs6000_libcall_value): Likewise.
3728 * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
3729 (TARGET_DOUBLE_FLOAT): New default to 1
3730 (TARGET_SIMPLE_FPU): New default to 0
3731 (TARGET_SINGLE_FPU): New default to 0
3732 (TARGET_SINGLE_FLOAT_MODE): New.
3733 (TARGET_DOUBLE_FLOAT_MODE): New.
3734 * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
3735 TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
3736 UNITS_PER_FP_WORD
3737 * config/rs6000/rs6000.md (define_mode_iterator): Condition on
3738 TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3739 (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
3740 copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
3741 nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
3742 muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
3743 movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
3744 floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
3745 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
3746 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
3747 rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
3748 floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
3749 movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
3750 extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
3751 abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
3752 cmptf_internal1, *cmptf_internal2): Condition on
3753 TARGET_DOUBLE_FLOAT.
3754 (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
3755 mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
3756 *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
3757 btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
3758 floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
3759 *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
3760 TARGET_SINGLE_FLOAT.
3761 (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
3762 * config/rs6000/rs6000.opt (-msingle-float): New.
3763 (-mdouble-float): New.
3764 (-msimple-fpu): New.
3765 * doc/invoke.texi (RS/6000 and PowerPC Options): Add
3766 -msingle-float, -mdouble-float, -msimple-fpu options.
3767 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
3768 _SOFT_DOUBLE for -msingle-float.
3769 * config.gcc: New config for target=powerpc-xilinx-eabi.
3770
157891a3
EB
37712008-09-23 Eric Botcazou <ebotcazou@adacore.com>
3772
3773 * config/sparc/constraints.md: New file.
3774 * config/sparc/sparc.md: Include it.
3775 * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
3776 (sparc_extra_constraint_check): Delete.
3777 * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
3778 (memory_ok_for_ldd): New predicate.
3779 (sparc_extra_constraint_check): Delete.
3780 * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
3781 (CONST_OK_FOR_LETTER_P): Likewise.
3782 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
3783 (EXTRA_CONSTRAINT): Likewise.
3784
b41310e2
SE
37852008-08-23 Steve Ellcey <sje@cup.hp.com>
3786
3787 * regrename.c (do_replace): Copy REG_POINTER value to new reg.
3788
53451050
RS
37892008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3790
3791 * alias.c (find_base_value): Use FIND_BASE_TERM.
3792 * doc/tm.texi (FIND_BASE_TERM): Update documentation.
3793
411e138a
RS
37942008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3795
3796 * config/i386/i386.c: Include cselib.h.
3797 (ix86_pic_register_p): New function.
3798 (ix86_delegitimize_address): Use it to check for the PIC register.
3799
a9e6fc5a
RS
38002008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3801
3802 * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
3803 * config/i386/i386.c (ix86_find_base_term): Don't check for
3804 SYMBOL_REF and LABEL_REF.
3805
5213f1a6
RS
38062008-09-23 Richard Sandiford <rdsandiford@googlemail.com>
3807
3808 * config/i386/i386.c (ix86_delegitimize_address): Wrap the
3809 constant PLUS in a CONST.
3810
37e27d01
KT
38112008-09-23 Kai Tietz <kai.tietz@onevision.com>
3812
70d1a750 3813 * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
37e27d01
KT
3814 check for sibcall support for w64.
3815
c9891b70
EB
38162008-09-23 Eric Botcazou <ebotcazou@adacore.com>
3817
3818 * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
3819
ba47d38d
AH
38202008-09-23 Aldy Hernandez <aldyh@redhat.com>
3821
3822 * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
3823 parser_build_binary_op.
3824 * c-decl.c (build_enumerator): Pass location to build_binary_op.
3825 * c-typeck.c (build_array_ref): Same.
3826 (parser_build_unary_op): New location argument.
3827 (pointer_diff): Pass location to build_binary_op,
3828 c_objc_common_truthvalue_conversion.
3829 (build_modify_expr): Same.
3830 (build_unary_op): New location argument.
3831 (build_binary_op): New location argument.
3832 (c_objc_common_truthvalue_conversion): Pass location to
3833 c_*common_truthvalue_conversion.
3834 * c-convert.c (convert): Same.
3835 * c-common.c (binary_op_error): New location argument.
3836 (pointer_int_sum): Pass location to build_binary_op.
3837 (c_common_truthvalue_conversion): New location argument.
3838 (warn_for_sign_compare): Same.
3839 * c-common.h: Add location argument to c_common_truthvalue_conversion,
3840 binary_op_error, build_binary_op, warn_for_sign_compare.
3841 * c-parser.c (c_parser_condition): Pass location to
3842 c_*common_truthvalue_conversion.
3843 (c_parser_conditional_expression): Save condition's location and pass
3844 it on down.
3845 (c_parser_binary_expression): Same, but for the binary operator's
3846 location.
3847 (c_parser_omp_for_loop): Pass location to
3848 c_objc_common_truthvalue_conversion.
3849
5c0466b5
MJ
38502008-09-23 Martin Jambor <mjambor@suse.cz>
3851
3852 * cgraph.c (cgraph_free_edge): Use sizeof(*e).
3853 (cgraph_node_remove_callees): New temporary f. Hold the next item
3854 in f when looping.
3855 (cgraph_node_remove_callers): Likewise.
3856
3857 * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
3858 (ipa_node_removal_hook): Likewise.
3859
3860 * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
3861 gimple_call_copy_skip_args and moved to the gimple_call section.
3862 * gimple.c (gimple_copy_call_skip_args): Renamed to
3863 gimple_call_copy_skip_args. Changed al users.
3864
1ae64b0f
VM
38652008-09-22 Vladimir Makarov <vmakarov@redhat.com>
3866
3867 * ira-color.c (start_allocno_priorities): Rename to
3868 setup_allocno_priorities. Use costs and
3869 ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
3870 range lengths. Get rid off doubles.
3871 (ira_fast_allocations): Call start_allocno_priorities.
3872
61debb78
DD
38732008-09-22 David Daney <ddaney@avtrex.com>
3874
3875 PR target/37593
3876 * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
3877 register if TARGET_LONG_CALLS.
3878
ecb4e37b
RG
38792008-09-22 Richard Guenther <rguenther@suse.de>
3880
3881 PR tree-optimization/37145
3882 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
3883 value-numbering union accesses with their offset and size only.
3884 (visit_reference_op_load): Fix simplification of inserted conversions.
3885 * tree-ssa-pre.c (find_or_generate_expression): Do not
3886 recursively generate expressions if running FRE.
3887
7846e5f9
AN
38882008-09-22 Adam Nemet <anemet@caviumnetworks.com>
3889
3890 * config/mips/mips.h (ISA_HAS_BADDU): New macro.
b7f58d5d
UB
3891 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
3892 New patterns.
7846e5f9 3893
47af7a5c
RG
38942008-09-22 Richard Guenther <rguenther@suse.de>
3895
3896 PR tree-optimization/37145
3897 * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
3898 (phi_translate_1): Constant fold references.
3899
5e038cad
IR
39002008-09-22 Ira Rosen <irar@il.ibm.com>
3901
3902 PR tree-optimization/37482
3903 * tree-vectorizer.h (struct _slp_instance): Add new field.
3904 (SLP_INSTANCE_FIRST_LOAD_STMT): New.
3905 (get_earlier_stmt): New function.
3906 * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
3907 function.
3908 (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
3909 * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
3910 asserts that GSI points to the scalar statement being vectorized.
3911 Set new statement location according to GSI.
3912 (vect_schedule_slp_instance): Use GSI of
3913 SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
3914
c801c273
JH
39152008-09-21 Jan Hubicka <jh@suse.cz>
3916
3917 * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
3918 (ipcp_insert_stage): Update dead_nodes bitmap.
3919
d59e481e
DS
39202008-09-22 Danny Smith <dannysmith@users.sourceforge.net>
3921
3922 PR target/37528
3923 * config/i386/t-cygming (SHLIB_LC): Remove.
3924 (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
b7f58d5d 3925 * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
d59e481e 3926
c70d0414
HPN
39272008-09-22 Hans-Peter Nilsson <hp@axis.com>
3928
3929 PR middle-end/37170
3930 PR middle-end/37280
3931 * final.c (mark_symbol_ref_as_used): New helper function.
3932 (output_operand): Instead of just looking inside MEMs for
3933 SYMBOL_REFs, use new helper function and for_each_rtx.
3934 * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
3935 to after weak-handling. Don't mark decls with TREE_STATIC as weak.
3936 Make head comment more general.
3937 * config/darwin.c (machopic_output_indirection): Handle weak
3938 references here, like in assemble_external.
3939
19047e4a
EB
39402008-09-21 Eric Botcazou <ebotcazou@adacore.com>
3941
3942 * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
3943 (sparc_emit_float_lib_cmp): Change return type.
3944 * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
3945 (gen_compare_operator): New function.
3946 (sparc_emit_float_lib_cmp): Return the new operator to be used in
3947 the comparison sequence. Minor tweaks.
3948 * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
3949 that the final operator and the result of sparc_emit_float_lib_cmp
3950 match for software TFmode; use emit_insn in lieu of emit_jump_insn.
3951 (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
3952 buneq, bunge, bunle, bltgt): Assert that the final operator and the
3953 result of sparc_emit_float_lib_cmp match for software TFmode.
3954 (movqicc, movhicc, movsicc, movdicc): Merge into...
3955 (mov<I:mode>cc): ...this.
3956 (movsfcc, movdfcc, movtfcc): Merge into...
3957 (mov<F:mode>cc): ...this.
3958 (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
3959 into...
3960 (mov<I:mode>_cc_v9): ...this.
3961 (movdi_cc_sp64_trunc): Delete.
3962 (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
3963 movdi_cc_reg_sp64): Merge into...
3964 (mov<I:mode>_cc_reg_sp64): ...this.
3965 (movsf_cc_sp64): Rename into...
3966 (movsf_cc_v9): ...this.
3967 (movdf_cc_sp64): Rename into...
3968 (movdf_cc_v9): ...this.
3969 (movtf_cc_hq_sp64): Rename into...
3970 (movtf_cc_hq_v9): ...this.
3971 (movtf_cc_sp64): Rename into...
3972 (movtf_cc_v9): ...this. Adjust for renaming of movdf_cc_sp64.
3973
e6c99067
DN
39742008-09-21 Diego Novillo <dnovillo@google.com>
3975
3976 * doc/gccint.texi: Include generic.texi and gimple.texi.
3977 Re-order index.
3978 * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
3979 (GIMPLE): Move to gimple.texi.
3980 (Annotations): Remove references to to stmt_ann_t and
3981 ssa_name_ann_t.
3982 (SSA Operands): Rename from 'Statement Operands'.
3983 * doc/generic.texi: New.
3984 * doc/gimple.texi: New.
b7f58d5d 3985 * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
e6c99067
DN
3986 * Makefile.in (TEXI_GCCINT_FILES):
3987 * gimple.c (gimple_copy_call_skip_args): Rename from
3988 giple_copy_call_skip_args. Update all users.
3989 * doc/gimple.texi (gimple_copy_call_skip_args): Document.
3990
5abf3860
IR
39912008-09-21 Ira Rosen <irar@il.ibm.com>
3992
3993 PR tree-optimization/37539
3994 * tree-vect-transform.c (vect_transform_strided_load): Save vector
3995 statement in related statement field only for the first load of the
3996 group of loads with the same data reference.
3997
ce00be9e
AN
39982008-09-20 Adam Nemet <anemet@caviumnetworks.com>
3999
4000 * config/mips/mips.h (TUNE_OCTEON): New macro.
4001 * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
4002 (mips_multipass_dfa_lookahead): Return 2 for Octeon.
4003 * config/mips/octeon.md: New file.
4004 * config/mips/mips.md: Include octeon.md. Restore
4005 semi-alphabetical order of include files.
4006
5a73c476
L
40072008-09-20 H.J. Lu <hongjiu.lu@intel.com>
4008
4009 PR target/37571
4010 * config/i386/i386.md (*jcc_fused_1): Removed.
4011 (*jcc_fused_2): Likewise.
4012 (*jcc_fused_3): Likewise.
4013 (*jcc_fused_4): Likewise.
4014
76e68dca
RS
40152008-09-20 Richard Sandiford <rdsandiford@googlemail.com>
4016
4017 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
4018 (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
4019 * target.h (gcc_target): Add ira_cover_classes.
4020 * ira.c: Remove IRA_COVER_CLASSES guards.
4021 (setup_cover_and_important_classes): Use targetm.ira_cover_classes
4022 instead of IRA_COVER_CLASSES.
4023 (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
4024 (setup_class_translate): Likewise.
4025 (setup_reg_class_intersect_union): Likewise.
4026 (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
4027 test of targetm.ira_cover_classes.
4028 * opts.c (decode_options): Use targetm.ira_cover_classes instead
4029 of IRA_COVER_CLASSES.
4030 * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
4031 (TARGET_INITIALIZER): Include it.
4032 * targhooks.h (default_ira_cover_classes): Declare.
4033 * targhooks.c (default_ira_cover_classes): New function.
4034
398857e4
BW
40352008-09-19 Bob Wilson <bob.wilson@acm.org>
4036
4037 * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
4038
acafbcde
ILT
40392008-09-19 Ian Lance Taylor <iant@google.com>
4040
4041 * varasm.c (narrowing_initializer_constant_valid_p): Return
4042 NULL_TREE if ENDTYPE is not an integer.
4043
f22b7039
AP
40442008-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
4045
4046 PR tree-opt/30930
4047 * tree-ssa.c (execute_update_addresses_taken): Also update
4048 DECL_GIMPLE_REG_P for vector and complex types.
4049
60ffe2fe
AM
40502008-09-19 Andrew MacLeod <amacleod@redhat.com>
4051 Jan Hubicka <jh@suse.cz>
4052
4053 PR middle-end/37567
4054 * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
4055 empty before freeing them.
4056 (find_replaceable_exprs): Move asserts to free_temp_expr_table.
4057
6a7a462c
BW
40582008-09-18 Bob Wilson <bob.wilson@acm.org>
4059
4060 * configure.ac: Add HAVE_AS_TLS check for Xtensa.
4061 * config/xtensa/predicates.md (tls_symbol_operand): New.
4062 * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
4063 (TARGET_CANNOT_FORCE_MEM): Define.
4064 (xtensa_tls_symbol_p): New.
4065 (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
4066 (xtensa_legitimate_address_p): Disallow constant pool TLS references.
4067 (xtensa_tls_module_base): New.
4068 (xtensa_call_tls_desc): New.
4069 (xtensa_legitimize_tls_address): New.
4070 (xtensa_legitimize_address): Handle TLS symbols.
4071 (xtensa_tls_referenced_p_1): New.
4072 (xtensa_tls_referenced_p): New.
4e5821d3
UB
4073 (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
4074 UNSPEC_DTPOFF.
6a7a462c
BW
4075 (XTENSA_BUILTIN_THREAD_POINTER): New.
4076 (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
4e5821d3
UB
4077 (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
4078 builtin. Add declarations for __builtin_thread_pointer and
6a7a462c
BW
4079 __builtin_set_thread_pointer.
4080 (xtensa_fold_builtin): Recognize new builtins.
4081 (xtensa_expand_builtin): Expand new builtins.
4082 * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
4083 (TARGET_THREADPTR): Define.
4084 (HAVE_AS_TLS): Define default value.
4085 (LEGITIMATE_CONSTANT_P): Disallow TLS references.
4086 * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
4087 (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
4088 (UNSPECV_SET_TP): New.
4089 (sym_TPOFF, sym_DTPOFF): New.
4090 (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
4091 * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
4092 * configure: Regenerated.
4093
faae4ae7
L
40942008-09-18 H.J. Lu <hongjiu.lu@intel.com>
4095
4096 PR target/37394
4097 * config/ia64/ia64.c (ia64_optimization_options): Move
4098 checking and setting flag_schedule_insns_after_reload and
4099 ia64_flag_schedule_insns2 back to ...
4100 (ia64_override_options): Here.
4101
b2a38b1d
AP
41022008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
4103
4104 PR rtl-opt/37451
4105 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
4106 zero extend count after the correction to it is done.
4107 (doloop_optimize): Update call to doloop_modify, don't zero extend
4108 count before call.
4109
be95e2b9
MJ
41102008-09-18 Martin Jambor <mjambor@suse.cz>
4111
4112 * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
4113
4114 * ipa-prop.c: Correct comments.
4115 * ipa-prop.h: Likewise.
4116
e2c9111c
JH
41172008-09-18 Jan Hubicka <jh@suse.cz>
4118
4119 PR middle-end/37448
4120 * ipa-reference.c (ipa_reference_local_vars_info_d,
4121 ipa_reference_global_vars_info_d,
4122 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
4123 ipa_reference_vars_info_t): Move here from ipa-reference.h
4124 (node_duplication_hook_holder, node_removal_hook_holder): New.
4125 (get_reference_vars_info_from_cgraph): Rename to ...
4126 (get_reference_vars_info): ... this one, use cgraph uids.
4127 (get_local_reference_vars_info, get_global_reference_vars_info):
4128 Use cgraph instead of decl.
4e5821d3
UB
4129 (ipa_reference_get_read_local, ipa_reference_get_written_local):
4130 Remove.
e2c9111c 4131 (ipa_reference_get_read_global, ipa_reference_get_not_read_global
4e5821d3
UB
4132 ipa_reference_get_written_global,
4133 ipa_reference_get_not_written_global): Use cgraph argument.
e2c9111c
JH
4134 (check_call): Simplify avail check.
4135 (scan_stmt_for_static_refs): Update.
4136 (propagate_bits): Update.
4137 (merge_callee_local_info): Remove.
4138 (init_function_info): Use cgraph nodes.
4139 (clean_function_local_data): Break out from ...
4140 (clean_function): ... here.
4141 (copy_local_bitmap, copy_global_bitmap): New functions.
4142 (duplicate_node_data, remove_node_data): New functions.
4143 (generate_summary): Register hooks; use visibility instead of
4144 master clones.
4145 (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
4146 * ipa-reference.h (ipa_reference_local_vars_info_d,
4147 ipa_reference_global_vars_info_d,
4148 ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
4149 ipa_reference_vars_info_t): Move to ipa-reference.c
4150 (ipa_reference_get_read_local, ipa_reference_get_written_local):
4151 Remove.
4152 (ipa_reference_get_read_global, ipa_reference_get_written_global,
4e5821d3
UB
4153 ipa_reference_get_not_read_global,
4154 ipa_reference_get_not_written_global): Update prototype.
e2c9111c
JH
4155 * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
4156 (init_state): Remove.
4157 (node_duplication_hook_holder, node_removal_hook_holder): New.
4158 (get_function_state, set_function_state): Use VECtor.
4159 (analyze_function): Check body availability.
4160 (add_new_function): Likewise.
4161 (duplicate_node_data, remove_node_data): New.
4162 (generate_summary): Register hooks; do not care about clones.
4e5821d3
UB
4163 (propafate): Do not care about clones; recursive functions are
4164 not looping.
e2c9111c
JH
4165 * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
4166 * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
4167 * edge_duplication_hook_holder, node_duplication_hook_holder): Make
4168 static.
4169 * tree-flow.h (function_ann_d): Remove reference_vars_info.
4e5821d3
UB
4170 * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
4171 Update call of ipa-reference accesors.
e2c9111c 4172
c047ce93
SB
41732008-09-18 Simon Baldwin <simonb@google.com>
4174
4175 * c-opts.c (c_common_handle_option): Add handling for
4176 -Wbuiltin-macro-redefined command line option.
4177 * c.opt: Added builtin-macro-redefined option.
4178 * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
4179 documentation.
4180
1d295886
RG
41812008-09-18 Richard Guenther <rguenther@suse.de>
4182
4183 PR tree-optimization/37258
4184 * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
4185 and signedness for integral types.
4186 (vn_phi_eq): Require compatible types.
4187
802e9f8e
JJ
41882008-09-18 Jakub Jelinek <jakub@redhat.com>
4189
4190 PR debug/34037
4191 * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
4192 TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
4193 VAR_DECL.
4194 * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
4195 !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
4196 ggc_free other TREE_LIST nodes from that chain.
4197 * function.c (instantiate_decls): Instantiate also DECL_RTL
4198 of vars in cfun->local_decls, free that list afterwards.
4199
a2cd689a
EB
42002008-09-18 Eric Botcazou <ebotcazou@adacore.com>
4201
4202 * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
4203 * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
4204
4b756989
AM
42052008-09-18 Andrew MacLeod <amacleod@redhat.com>
4206
802e9f8e 4207 * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
4b756989
AM
4208 * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
4209
ffd327a7
AM
42102008-09-18 Andrew MacLeod <amacleod@redhat.com>
4211
4212 PR tree-optimization/37102
a38df783
AM
4213 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
4214 from a node. Check to see if another PHI is dead.
4215 (eliminate_useless_phis): Rename from eliminate_virtual_phis and
4216 remove real PHIs which have no uses.
ffd327a7
AM
4217 (rewrite_out_of_ssa): Call eliminate_useless_phis.
4218
3d9fbb9a
RG
42192008-09-18 Richard Guenther <rguenther@suse.de>
4220
4221 PR middle-end/37284
4222 * tree-cfg.c (remove_useless_stmts_1): Remove
4223 GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
4224
35f2d8ef
NC
42252008-09-18 Nick Clifton <nickc@redhat.com>
4226
4227 * config/frv/frv.h (IRA_COVER_CLASSES): Define.
4228 (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
4229 to frv_secondary_reload_class.
4230 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
4231 * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
4232 (frv_secondary_reload_class): Omit unused parameter.
4233 (frv_secondary_reload): New function. Handle the case when
4234 secondary_reload_class() is called before the reload_(in|out)
4235 _optabs have been initialised.
4236 * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
4237 unused parameter.
4238 * config/frv/frv.md: Define an exclusion set between fr550_m0
4239 and fr550_f0.
4240
e7089ecf
RG
42412008-09-18 Richard Guenther <rguenther@suse.de>
4242
4243 PR tree-optimization/37456
4244 * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
4245 want to insert after ends a BB insert on the single fallthru
4246 outgoing edge.
4247
59a1bff3
AK
42482008-09-18 Andreas Krebbel <krebbel1@de.ibm.com>
4249
4250 * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
4251 Mention -march=z9-109, z9-ec and z10.
4252
02bb8bce
UB
42532008-09-18 Uros Bizjak <ubizjak@gmail.com>
4254
4255 PR rtl-optimization/37544
4256 * regrename.c (maybe_mode_change): Exit early when copy_mode
4257 is narrower than orig_mode and narrower than new_mode.
4258
d9e74dfc
AM
42592008-09-18 Alexander Monakov <amonakov@ispras.ru>
4260
4261 PR middle-end/37499
b7f58d5d 4262 * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
d9e74dfc
AM
4263
4264 * sched-rgn.c (ref_counts): Remove.
4265 (insn_referenced): New static variable.
4266 (INSN_REF_COUNT): Remove.
4267 (sched_run_compute_dependencies): Use insn_referenced instead of
4268 INSN_REF_COUNT.
4269 (add_branch_dependences): Likewise. Delete dead assignment.
4270
078a70a1
AN
42712008-09-17 Adam Nemet <anemet@caviumnetworks.com>
4272
4273 * haifa-sched.c (dep_cost_1): Recognize the producer even if the
4274 consumer is an asm. Add comment why this is important.
4275 (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
b7f58d5d 4276 recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around it.
078a70a1 4277
38c4df0b
JM
42782008-09-17 Joseph Myers <joseph@codesourcery.com>
4279
4280 * expr.c (emit_group_store): Do not shift before moving via a
4281 stack slot.
4282
1a8c909e
EB
42832008-09-17 Eric Botcazou <ebotcazou@adacore.com>
4284
4285 * varasm.c (initializer_constant_valid_p): Forbid view-conversions
4286 from aggregate to non-aggregate type if the bit pattern is not fully
4287 preserved afterwards.
4288
9f509004
RG
42892008-09-17 Richard Guenther <rguenther@suse.de>
4290
4291 * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
4292 (verify_gimple_assign): ... this. Split into ...
4293 (verify_gimple_assign_unary): ... this,
4294 (verify_gimple_assign_binary): ... that,
4295 (verify_gimple_assign_single): ... and this.
4296 (verify_types_in_gimple_stmt): Call verify_gimple_assign.
4297 Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
4298 (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
4299 (verify_types_in_gimple_reference): Be forgiving with
4300 VIEW_CONVERT_EXPRs.
4301 (verify_gimple_phi): Deal with virtual operands.
4302
4303 * tree.def (PREDICT_EXPR): Change to tcc_expression.
4304
2700cb86
AP
43052008-09-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
4306
4307 * tree.c (get_callee_fndecl): Don't call the language hook.
4308 * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
4309 * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
4310 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
4311
6847a754
JJ
43122008-09-17 Jakub Jelinek <jakub@redhat.com>
4313
4314 * tree.c (protected_set_expr_location): Don't unnecessarily
4315 check for error_mark_node.
4316
71b10713
AH
43172008-09-17 Art Haas <ahaas@impactweather.com>
4318
4319 * ipa-reference.c (analyze_function): Declare step only if
4320 ENABLE_CHECKING is defined.
4321
0494626a
JH
43222008-09-17 Jan Hubicka <jh@suse.cz>
4323
4324 PR c++/18071
4325 * tree.h (DECL_INLINE): remove.
4326 (DECL_DECLARED_INLINE_P): Update docs.
4327 (DECL_NO_INLINE_WARNING_P): new.
4328 (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
4329 * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
4330
1c1b0507
JJ
43312008-09-17 Jakub Jelinek <jakub@redhat.com>
4332 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4333
4334 PR bootstrap/37441
4335 * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
4336 false.
4337
ebcf9dc8
JH
43382008-09-17 Jan Hubicka <jh@suse.cz>
4339
4340 * ipa-reference.c (ipa_obstack): Remove.
4341 (local_info_obstack, global_info_obstack): New.
4342 (add_static_var): We now handle variables only.
4343 (mark_address_taken, mark_load, mark_store): New functions based on ...
4344 (check_operand): ... remove.
4345 (get_asm_stmt_operands): Rename to ...
4346 (check_asm_memory_clobber): ... this. Look only for memory clobber.
4347 (scan_stmt_for_static_refs): Rewrite.
4348 (scan_op_for_static_refs): Rename to ...
4349 (scan_initializer_for_static_refs): do not look for VAR_DECL
4350 initializers; stop recursion on types and decls.
4351 (ipa_init): Use proper obstacks.
4352 (analyze_variable): Use scan_initializer_for_static_refs.
4353 (init_function_info): Use local obstack.
4354 (analyze_function): Simplify.
4355 (add_new_function): We don't need visited_nodes obstack.
4356 (generate_summary): Use proper obstacks; cleanup after propagation.
4357
791f1714
RG
43582008-09-17 Richard Guenther <rguenther@suse.de>
4359
4360 PR middle-end/37385
4361 PR tree-optimization/37491
4362 * alias.c (get_alias_set): Use the canonical type.
4363 * tree-vect-transform.c (vectorizable_store): Use the type of
4364 the lhs for the vector type. Adjust checking.
4365 (vectorizable_load): Adjust checking.
4366
b5fb36ee
JJ
43672008-09-16 Jakub Jelinek <jakub@redhat.com>
4368 Adam Nemet <anemet@caviumnetworks.com>
4369
4370 PR rtl-optimization/37483
4371 * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
4372 if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
4373 Rearrange code to better match the original comment. Check
4374 t_unconditional first. Improve comment.
4375
cc8b343d
JJ
43762008-09-16 Jakub Jelinek <jakub@redhat.com>
4377
8c50b495
JJ
4378 PR c/37529
4379 * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
4380 GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
4381
cc8b343d
JJ
4382 PR c++/37530
4383 * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
4384 GIMPLE_TRY if cleanup sequence is empty.
4385
b9ff6079
AP
43862008-09-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
4387
4388 PR middle-end/37263
4389 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Prefer the
4390 eliminate IV if the cost are the same.
4391
d573123d
RG
43922008-09-16 Richard Guenther <rguenther@suse.de>
4393
4394 PR middle-end/37380
4395 * tree-sra.c (sra_build_assignment): Do not call the gimplifier
4396 if not necessary.
4397
9cb57027
RG
43982008-09-16 Richard Guenther <rguenther@suse.de>
4399
4400 PR tree-optimization/37508
4401 * tree-vrp.c (simplify_truth_ops_using_ranges): Also allow -1.
4402
9705d817
KK
44032008-09-15 Kaz Kojima <kkojima@gcc.gnu.org>
4404
4405 * config/sh/sh.md (movsf_ie): Fix length for TARGET_SH2A.
4406
f369bbb1
AP
44072008-09-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
4408
4409 * config/rs6000/rs6000.md (floatsidf2): Rewrite PowerPC64 case to
4410 use gen_floatdidf2 directly.
4411 (floatunssidf2): Likewise.
4412 (floatsidf_ppc64_mfpgpr): Remove.
4413 (floatsidf_ppc64): Remove.
4414 (floatunssidf_ppc64): Remove.
4415
8586aeeb
JJ
44162008-09-15 Jakub Jelinek <jakub@redhat.com>
4417
0eeb2240
JJ
4418 * ira-color.c (finish_cost_update): Free update_cost_queue_elems
4419 rather than update_cost_queue.
4420
1fdeb82f
JJ
4421 * tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
4422 in every call starting with the second one, instead of only when
4423 alias_bitmap_obstack.elements != NULL.
4424
4425 * tree-predcom.c (filter_suitable_components): Free all refs in
4426 act->refs vector before calling release_component.
4427 (add_ref_to_chain): Free ref if not adding it to chain->refs.
4428
4429 * tree-data-ref.c (free_subscripts): Free all subscript objects.
4430
4431 * tree-loop-linear.c (linear_transform_loops): Initialize
4432 lambda_obstack only after calling perfect_loop_nest_depth.
4433 Goto free_and_continue instead of just continue for later failures.
4434
8f57ac5a
JJ
4435 PR middle-end/37479
4436 * doc/invoke.texi: Document -fno-dwarf2-cfi-asm.
4437
8586aeeb
JJ
4438 PR libmudflap/36397
4439 * tree-mudflap.c (mf_xform_derefs_1): Handle VIEW_CONVERT_EXPR.
4440
ea8bce02
AS
44412008-09-14 Andreas Schwab <schwab@suse.de>
4442
4443 * tree-call-cdce.c (check_target_format): Accept Motorola formats.
4444
6a78eaa3
JH
44452008-09-14 Jan Hubicka <jh@suse.cz>
4446
4447 * invoke.texi (-fconserve-stack): Document.
4448 * opts.c (decode_options): Handle conserve_stack.
4449 * common.opt (fconvserve_stack): New.
4450
138b9ed9
DE
44512008-09-14 David Edelsohn <edelsohn@gnu.org>
4452
4453 * config.host: Add x-aix to host_xmake_file.
4454 * config/rs6000/t-aix52: Do not override LDFLAGS.
4455 * config/rs6000/x-aix: New file.
4456
9215065f
AH
44572008-09-14 Andy Hutchinson <hutchinsonandy@aim.com>
4458
4459 PR target/19636
4460 PR target/24894
4461 PR target/31644
4462 PR target/31786
4463 * config/avr/avr.c (legitimate_address_p): Fix problem where subreg
4464 is not recognized as a valid register usage. Allow REG_X to be used
4465 as a base pointer.
4466 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
4467 forces a reload when using a base register.
4468
78a1f201
DS
44692008-09-14 Danny Smith <dannysmith@users.sourceforge.net>
4470
4471 * config/i386/cygming-crtend.c (register_frame_ctor): If
4472 DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
4473 directly with atexit.
4474 (deregister_frame_ctor): Rename to ...
4475 (deregister_frame_dtor): Use to call __gcc_deregister_frame
4476 if !DEFAULT_USE_CXA_ATEXIT.
4477
a63f2942
JH
44782008-09-13 Jan Hubicka <jh@suse.cz>
4479
4480 * cgraph.c: Include value-prof.h
4481 * Makefile.in (cgraph.o): Add value-prof.h dependency.
4482
71ba42fa
JH
44832008-09-13 Jan Hubicka <jh@suse.cz>
4484
4485 PR middle-end/32581
4486 * tree-profile.c (add_abnormal_goto_call_edges): New function.
4487 (tree_gen_interval_profiler, tree_gen_pow2_profiler,
4488 tree_gen_one_value_profiler, tree_gen_average_profiler,
4489 tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
4490
80cab2f0
JH
44912008-09-13 Jan Hubicka <jh@suse.cz>
4492
02bb8bce
UB
4493 * i386.c (ix86_expand_movmem, ix86_expand_movstr): Avoid processing
4494 too many bytes on misalligned blocks.
80cab2f0 4495
d1facce0
RW
44962008-09-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4497
4498 * doc/cfg.texi: Fix some typos.
4499 * doc/extend.texi: Likewise.
4500 * doc/install.texi: Likewise.
4501 * doc/invoke.texi: Likewise.
4502 * doc/rtl.texi: Likewise.
4503 * doc/tree-ssa.texi: Likewise.
4504
42ea03fb
RG
45052008-09-13 Richard Guenther <rguenther@suse.de>
4506
4507 PR middle-end/30141
4508 * tree-nested.c (finalize_nesting_tree_1): Generate valid
4509 gimple stores for memory rhs.
4510
9e6a14a4
L
45112008-09-13 H.J. Lu <hongjiu.lu@intel.com>
4512
4513 PR rtl-optimization/37489
4514 * cse.c (fold_rtx): Don't return const_true_rtx for float
4515 compare if FLOAT_STORE_FLAG_VALUE is undefined.
4516
5a6e26b7
JH
45172008-09-13 Jan Hubicka <jh@suse.cz>
4518
4519 PR tree-optimization/37392
4520 * tree-inline.c (remap_gimple_stmt): Do not remap return value.
4521
934cb78a
MJ
45222008-09-13 Martin Jambor <mjambor@suse.cz>
4523 Jan Hubicka <jh@suse.cz>
4524
4525 * cgraph.c (free_edges): New variable.
4526 (NEXT_FREE_EDGE): New macro.
4527 (cgraph_free_edge): New function.
4528 (cgraph_remove_edge): Call cgraph_remove_edge_1.
4529 (cgraph_node_remove_callees): Likewise.
4530 (cgraph_node_remove_callers): Likewise.
4531 (cgraph_create_edge): Reuse edges from the free list. Do not
4532 update uid if doing so.
4533 (cgraph_remove_*_hook): Add free call.
4534
f754734f
RS
45352008-09-13 Richard Sandiford <rdsandiford@googlemail.com>
4536
4537 * ira-color.c (conflict_allocno_vec): Delete.
4538 (update_cost_queue_elem): New structure.
4539 (update_cost_queue): New variable.
4540 (update_cost_queue_tail): Likewise.
4541 (update_cost_queue_elems): Likewise.
4542 (allocno_update_cost_check): Delete.
4543 (initiate_cost_update): Allocate update_cost_queue_elems
4544 instead of allocno_update_cost_check.
4545 (finish_cost_update): Update the free()s accordingly.
4546 (start_update_cost): New function.
4547 (queue_update_cost): Likewise.
4548 (get_next_update_cost): Likewise.
4549 (update_copy_costs_1): Inline into...
4550 (update_copy_costs): ...here. Use a queue instead of recursive calls.
4551 Use cover_class instead of ALLOCNO_COVER_CLASS (another_allocno),
4552 once we've established they are equal. Don't allocate update
4553 costs if there is nothing to add to them.
4554 (update_conflict_hard_regno_costs): Remove ALLOCNO and
4555 DIVISOR arguments. Use a queue instead of recursive calls;
4556 process all the allocnos in the initial queue, rather than
4557 a single allocno.
4558 (assign_hard_reg): Use queue_update_cost instead of
4559 conflict_allocno_vec. Queue coalesced allocnos instead
4560 of calling update_conflict_hard_regno_costs for each one.
4561 Just call update_conflict_hard_regno_costs once for the
4562 entire queue.
4563 (ira_color): Remove conflict_allocno_vec handling.
4564
02ae05bd
SP
45652008-09-12 Sebastian Pop <sebastian.pop@amd.com>
4566
4567 PR tree-optimization/37484
4568 * graphite.c (scop_record_loop): Use snprintf instead of sprintf.
4569 (save_var_name): Same.
4570 (initialize_cloog_names): Same.
4571 (initialize_cloog_names): Same.
4572
0bfdfbf6
SP
45732008-09-12 Sebastian Pop <sebastian.pop@amd.com>
4574
02bb8bce
UB
4575 * tree-scalar-evolution.c (set_instantiated_value): Set
4576 instantiated_below.
0bfdfbf6 4577
82b33628
VM
45782008-09-12 Vladimir Makarov <vmakarov@redhat.com>
4579
4580 PR rtl-opt/37377
ea8bce02 4581
82b33628
VM
4582 * ira-build.c (common_loop_tree_node_dominator): Remove.
4583 (copy_live_ranges_to_removed_store_destinations): New function.
4584 (regno_top_level_allocno_map): Move to top level from ...
4585 (ira_flattening): ... here. Use
4586 copy_live_ranges_to_removed_store_destinations.
4587
4588 * ira-emit.c (generate_edge_moves): Fix a comment.
ea8bce02 4589
6ff5d1e4
AS
45902008-09-12 Anatoly Sokolov <aesok@post.ru>
4591
4592 PR target/37466
4593 * config/avr/avr.md (movsi_lreg_const peephole2): Add match_dup for
4594 scratch register after 'set' pattern.
4595
0a317111
UW
45962008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4597
4598 * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
4599 information passed to mark_reg_pointer.
4600 * explow.c (force_reg): Likewise.
4601
59dbe4fe
UW
46022008-09-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4603
4604 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
4605 when building for the celledp architecture.
4606
29442589
RG
46072008-09-12 Richard Guenther <rguenther@suse.de>
4608
4609 * tree-vrp.c (simplify_truth_ops_using_ranges): Fix types.
4610
004a6ce8
EB
46112008-09-12 Eric Botcazou <ebotcazou@adacore.com>
4612
4613 PR rtl-optimization/37424
4614 * ira-color.c (coalesced_pseudo_reg_slot_compare): Untie by comparing
4615 the regnos instead of the addresses.
4616
7ecb6f5b
JJ
46172008-09-11 Janis Johnson <janis187@us.ibm.com>
4618
4619 * ginclude/float.h (DEC_EVAL_METHOD): Correct the macro name.
4620
e49a540c
RG
46212008-09-11 Richard Guenther <rguenther@suse.de>
4622
4623 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Avoid
4624 entering the weaker equivalence recording.
4625
4626 * tree-ssa-phiprop.c (propagate_with_phi): Fix tuplification.
4627
13d7e8af
JL
46282008-09-11 Jeff Law <law@redhat.com>
4629
4630 * reload1.c (alter_reg): Undo the BYTE_BIG_ENDIAN correction performed
4631 by assign_stack_local on the IRA path for stack slot sharing
4632 as well as the non-IRA path.
4633
4ae8027b
UB
46342008-09-11 Uros Bizjak <ubizjak@gmail.com>
4635
4636 * config/i386/i386.h: Fix whitespace issues.
4637
f8e2a1ed
MJ
46382008-09-11 Martin Jambor <mjambor@suse.cz>
4639
4640 * ipa-prop.h (struct ipa_param_flags): Removed.
4641 (struct ipa_param_descriptor): New structure.
4642 (struct ipa_node_params): ipcp_lattices, param_decls and
4643 param_flags moved to ipa_param_description.
4644 (ipa_get_ith_param): Renamed to ipa_get_param, changed to access
4645 descriptors. Renamed all users.
4646 (ipa_is_ith_param_modified): Renamed to ipa_is_param_modified,
4647 changed to access descriptors. Renamed all users.
4648 (ipa_is_ith_param_called): Renamed to ipa_is_param_called, changed
4649 to access descriptors. Renamed all users.
4650 * ipa-cp.c (ipcp_init_cloned_node): Call
4651 ipa_initialize_node_params instead of ipa_count_formal_params and
4652 ipa_create_param_decls_array.
4653 (ipcp_analyze_node): Likewise.
4654 (ipcp_get_ith_lattice): Renamed to ipcp_get_lattice, changed to access
4655 descriptors. Renamed all users.
4656 (ipcp_initialize_node_lattices): Remove allocation.
4657 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4658 ipa_initialize_node_params instead of ipa_count_formal_params and
4659 ipa_create_param_decls_array.
4660 * ipa-prop.c (ipa_create_param_decls_array): Renamed to
4661 ipa_populate_param_decls, made static, added parameter info,
4662 renamed mt to node, removed allocation, changed to use
4663 descriptors.
4664 (ipa_count_formal_params): Made static, added parameter info,
4665 renamed mt to node.
4666 (ipa_initialize_node_params): New function.
4667 (ipa_check_stmt_modifications): Changed to use descriptors.
4668 (ipa_detect_param_modifications): Removed allocation, changed to
4669 use descriptors.
4670 (ipa_note_param_call): Changed to use descriptors.
4671 (ipa_analyze_params_uses): Removed allocation.
4672 (ipa_free_node_params_substructures): Changed to use descriptors.
4673 (ipa_edge_duplication_hook): Use the unused attribute.
4674 (ipa_node_duplication_hook): Use the unused attribute, changed to
4675 use descriptors, changed to duplicate descriptors.
4676
4677 * ipa-inline.c (cgraph_mark_inline_edge): New parameter new_edges,
4678 changed all callers. Call ipa_propagate_indirect_call_infos if doing
4679 indirect inlining. Made static.
4ae8027b 4680 (cgraph_decide_inlining): Freeing ipa-prop structures after inlining
f8e2a1ed
MJ
4681 functions called only once.
4682 (cgraph_decide_recursive_inlining): Don't call
4683 ipa_propagate_indirect_call_infos, pass new_edges to
4684 cgraph_mark_inline_edge instead.
4685 (cgraph_decide_inlining_of_small_functions): Don't call
4686 ipa_propagate_indirect_call_infos, pass new_edges to
4687 cgraph_mark_inline_edge instead.
4688 (cgraph_decide_inlining): Don't call
4689 ipa_propagate_indirect_call_infos.
4690 * ipa-prop.c: Check that vectors are allocated.
4691
4692 * ipa-inline.c (cgraph_mark_inline_edge): Returns boolean, true
4693 iff a new cgraph edges have been created.
4694 (cgraph_decide_inlining): New variable redo_always_inline.
4695 Flattening and always_inlining loop until callgraph stabilizes.
4696 * ipa-prop.c (update_call_notes_after_inlining): Returns boolean,
4697 true iff new cgraph edges have been created.
4698 (propagate_info_to_inlined_callees): Likewise.
4699 (ipa_propagate_indirect_call_infos): Likewise.
4700
420da8ca
RG
47012008-09-11 Richard Guenther <rguenther@suse.de>
4702
4703 * tree-vectorizer.c (slpeel_add_loop_guard): Fix types.
4704 (set_prologue_iterations): Likewise.
4705 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
4706 Likewise.
4707 (vect_update_init_of_dr): Likewise.
4708 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
4709 type verification.
4710 * fold-const.c (fold_unary): Do not generate calculations
4711 in sub-types.
4712
30821654
PB
47132008-09-11 Paolo Bonzini <bonzini@gnu.org>
4714
4715 * dojump.c (do_jump) [BIT_AND_EXPR]: Move below. Fall through to
4716 TRUTH_AND_EXPR for boolean (1-bit precision) expressions.
4717 (do_jump) [BIT_IOR_EXPR]: Compile as TRUTH_OR_EXPR.
4718
02bb8bce
UB
4719 * tree-flow.h (simplify_stmt_using_ranges): Accept a GSI, return
4720 a bool.
30821654
PB
4721 * tree-ssa-propagate.c (substitute_and_fold): Pass a GSI to
4722 VRP's simplify_stmt_using_ranges. Do simplify_stmt_using_ranges
4723 before finalizing the changes.
4724 * tree-vrp.c (extract_range_from_binary_expr): Add limited support
4725 for BIT_IOR_EXPR.
4726 (simplify_truth_ops_using_ranges): New.
4727 (simplify_div_or_mod_using_ranges, simplify_abs_using_ranges,
4728 simplify_cond_using_ranges, simplify_switch_using_ranges): Return
4729 whether a simplification was made.
4730 (simplify_stmt_using_ranges): Ditto, and accept a GSI. For GS_ASSIGN,
4731 use a switch statement and also call simplify_truth_ops_using_ranges.
4732
cf975747
JH
47332008-09-11 Jan Hubicka <jh@suse.cz>
4734
4735 * ggc-common.c (loc_array): Make static.
4736 * dce.c (rest_of_handle_ud_dce): Free worklist.
4737
936fc9ba
JH
47382008-09-11 Jan Hubicka <jh@suse.cz>
4739
4740 * cgraph.c (cgraph_release_function_body): Plug memory leak on
02bb8bce
UB
4741 ipa_transforms_to_apply and CFG; ggc_free gimple df and struct
4742 function so we are sure we do not dangle it forever.
936fc9ba
JH
4743 * function.c (outer_function_chain, find_function_data): Remove.
4744 (function_context_stack): New.
4745 (push_function_context, pop_function_context): Update.
4746 * function.h (struct function): Remove pointer outer.
4747 (outer_function_chain, find_function_data): Remove.
4748 * stmt.c (force_label_rtx): Remove dead call of find_function_data.
4749
b1d0a338
JH
47502008-09-11 Jan Hubicka <jh@suse.cz>
4751
4752 PR middle-end/37448
4753 * cgraph.c (cgraph_create_edge): Use !cgraph_edge for sanity check.
4754
9e504cda
JH
47552008-09-11 Jan Hubicka <jh@suse.cz>
4756
4757 * tree-ssa-pre.c (phi_translate_1): Fix memory leak
4758
a97a7ae9
JH
47592008-09-11 Jan Hubicka <jh@suse.cz>
4760
4761 * tree-ssa.c (redirect_edge_var_map_clear): Fix formatting.
4762 (free_var_map_entry): New function.
4763 (redirect_edge_var_map_destroy): Use it.
4764
4a283090
JH
47652008-09-11 Jan Hubicka <jh@suse.cz>
4766
4767 PR middle-end/37448
4768 * tree-inline.c (add_lexical_block): Replace with ...
4769 (prepend_lexical_block): ... prepend at begginig.
4770 (remap_blocks): Use it and reverse later.
4771 (expand_call_inline): Use prepend_lexical_block.
4772
a856e96f
JH
47732008-09-11 Jan Hubicka <jh@suse.cz>
4774
4775 * gimplify.c (pop_gimplify_context): Free bind_expr_stack.
4776
825b2fe7
JH
47772008-09-11 Jan Hubicka <jh@suse.cz>
4778
4779 * function.c (free_after_compilation): Call insn_locators_free.
4780 * cfglayout.c (insn_locators_free): New function.
4781 * rtl.h (insn_locators_free): Declare.
4782
11e0edad
JH
47832008-09-11 Jan Hubicka <jh@suse.cz>
4784
4ae8027b
UB
4785 * ifcvt.c (check_cond_move_block): Make regs argument pointer to
4786 vector pointer.
11e0edad
JH
4787 (cond_move_process_if_block): Update call.
4788
d3492572
JH
47892008-09-11 Jan Hubicka <jh@suse.cz>
4790
4791 * toplev.c (dump_memory_report): Call dump_vec_loc_statistics.
4792 * vec.c: Include hashtab.h
4793 (vec_descriptor, ptr_hash_entry): New structures.
4794 (vec_desc_hash, vec_ptr_map): New static variables.
4795 (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr, vec_descriptor,
4796 register_overhead, free_overhead, vec_heap_free): New functions.
4797 (vec_gc_o_reserve_1): ggc_free when resizing to 0.
4798 (vec_heap_o_reserve_1): free when resizing to 0; add statistics.
02bb8bce
UB
4799 (cmp_statistic, add_statistics, dump_vec_loc_statistics):
4800 New functions.
d3492572 4801
3c9dbe18
IR
48022008-09-11 Ira Rosen <irar@il.ibm.com>
4803
4804 PR tree-optimization/37474
4805 * tree-vect-analyze.c (vect_supported_load_permutation_p): Check the
4806 length of load permutation.
4807
5e9bd142
AS
48082008-09-11 Andreas Schwab <schwab@suse.de>
4809
4810 * config/m68k/m68k.h (IRA_COVER_CLASSES): Define.
4811
d898d29b
JJ
48122008-09-11 Jakub Jelinek <jakub@redhat.com>
4813
4814 PR target/37382
4815 * expmed.c (extract_low_bits): Avoid creating invalid subregs.
4816 * dse.c (find_shift_sequence): Use extract_low_bits instead of
4817 simplify_gen_subreg.
4818
5993860d
IR
48192008-09-11 Ira Rosen <irar@il.ibm.com>
4820
4821 * tree-vect-transform.c (vectorizable_store): Use the rhs vector type
4822 for alias check.
4823
a76ddc7b
JJ
48242008-09-10 Jakub Jelinek <jakub@redhat.com>
4825
0b056e4e
JJ
4826 PR middle-end/37338
4827 * gimplify.c (gimplify_body): Call default_rtl_profile.
4828
a76ddc7b
JJ
4829 PR target/36904
4830 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Return NULL
4831 instead of tok->val.node if not expanding to something else. Handle
4832 intervening CPP_PADDING tokens.
4833 (altivec_categorize_keyword): Remove unneeded comparisons.
4834
b5d76df4
RG
48352008-09-10 Richard Guenther <rguenther@suse.de>
4836
4837 * tree-ssa-pre.c (phi_translate_1): Fix memory leak.
4838
bfb0b886
RG
48392008-09-10 Richard Guenther <rguenther@suse.de>
4840
4841 PR middle-end/37432
4842 * tree-inline.c (insert_init_stmt): Make sure to not
4843 insert invalid gimple stores.
4844
b70e9775
SP
48452008-09-10 Sebastian Pop <sebastian.pop@amd.com>
4846
4847 PR tree-optimization/37388
4848 * toplev.c (process_options): Fail and warn when graphite
4849 flags are used, but the compiler has not been configured
4850 with graphite libraries.
4851 * graphite.c (graphite_transform_loops): Remove printfs
4852 to dump_file for the case when graphite is not available.
4853
8199c8a8
L
48542008-09-10 H.J. Lu <hongjiu.lu@intel.com>
4855
4856 PR target/37434:
4857 * config/i386/i386.c (ix86_expand_vector_init_interleave): Force
4858 the even element into register.
4859 (ix86_expand_vector_init_general): Don't use
4860 ix86_expand_vector_init_interleave on V16QImode and V8HImode
4861 if we can't move from GPR to SSE register directly.
4862
90cbba02
BS
48632008-09-10 Bernd Schmidt <bernd.schmidt@analog.com>
4864
4865 * config/bfin/bfin.c (workaround_speculation): Correct algorithm to
4866 not lose track of the number of NOPs needed. Number of NOPs needed
4867 for sync vs. loads workaround was switched; corrected. Run second
4868 pass for all workarounds. No NOPs needed after call insns. Change
4869 second pass to use find_next_insn_start and find_load helpers in order
4870 to properly detect parallel insns.
4871 * config/bfin/bfin.md (cbranch_with_nops): Increase length.
4872
99e395c7
JH
48732008-09-10 Jan Hubicka <jh@suse.cz>
4874
4875 * value-prof.c (gimple_ic): Fix tuplification bug.
4ae8027b
UB
4876 * sched-deps.c (sched_insns_conditions_mutex_p): Silence unitialized
4877 var warning.
99e395c7 4878
6b672a29
JJ
48792008-09-10 Jakub Jelinek <jakub@redhat.com>
4880
4881 PR tree-optimization/37353
4882 * tree-call-cdce.c (cond_dead_built_in_calls): Remove.
4883 (shrink_wrap_conditional_dead_built_in_calls): Add calls argument, use
4884 calls instead of cond_dead_built_in_calls.
4885 (tree_call_cdce): Add cond_dead_built_in_calls automatic variable,
4886 initalize the vector only before adding first entry. Use VEC_safe_push
4887 instead of VEC_quick_push. Pass cond_dead_built_in_calls to
4888 shrink_wrap_conditional_dead_built_in_calls call.
4889
5392e447
IR
48902008-09-10 Ira Rosen <irar@il.ibm.com>
4891
4892 PR tree-optimization/37385
4e5821d3
UB
4893 * tree-vect-transform.c (vect_create_data_ref_ptr): Add a new
4894 argument, and use it as a vector type if not NULL.
ea8bce02 4895 (vectorizable_store): Call vect_create_data_ref_ptr with the type of
5392e447 4896 vectorized rhs.
4e5821d3
UB
4897 (vect_setup_realignment): Call vect_create_data_ref_ptr with
4898 additional argument.
5392e447
IR
4899 (vectorizable_load): Likewise.
4900
4e7f50e5
JJ
49012008-09-10 Jakub Jelinek <jakub@redhat.com>
4902
4903 * config/i386/i386.md (SWI32): New mode iterator.
4904 (jcc_fused_1, jcc_fused_2, jcc_fused_3, jcc_fused_4): Use it instead
4905 of SWI.
4906
c3c96e68
L
49072008-09-09 Vladimir Makarov <vmakarov@redhat.com>
4908
4909 PR rtl-optimization/37435
4910 * caller-save.c (insert_restore, insert_save): Check the mode by
4911 reg_save_code.
4912
a2649528
JDA
49132008-09-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4914
4915 PR other/37265
4916 * dwarf2asm.c (dw2_force_const_mem): Use unstripped symbol name for
4917 splay tree lookup.
4918 (dw2_output_indirect_constant_1): Use unstripped name in symbol
4919 reference.
4920
26cd0fcc
SL
49212008-09-09 Sandra Loosemore <sandra@codesourcery.com>
4922
ea8bce02 4923 * doc/invoke.texi (ARM Options): Correct errors in discussion
26cd0fcc
SL
4924 of -mfloat-abi, -mhard-float, and -msoft-float.
4925
c2a4718a
JJ
49262008-09-09 Jakub Jelinek <jakub@redhat.com>
4927 Jan Hubicka <jh@suse.cz>
4928
4929 PR middle-end/37356
4930 * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
4931 calling gimple_regimplify_operands on it. Iterate over all newly
4932 added statements, not just the last one.
4933 (insert_init_stmt): Insert stmt into seq first, then call
4934 gimple_regimplify_operands on it. Don't create new gimplification
4935 context, nor find referenced vars.
4936
fd0a8853
JJ
49372008-09-09 Jakub Jelinek <jakub@redhat.com>
4938
e56f5f3e
JJ
4939 PR other/37419
4940 * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
4941 to pointer to vector pointer.
4942 * ipa-prop.c (ipa_propagate_indirect_call_infos,
4943 propagate_info_to_inlined_callees): Likewise.
4944 (update_call_notes_after_inlining): Likewise. Push new indirect edge
4945 to *new_edges instead of new_edges. Reread IPA_EDGE_REF after
4946 ipa_check_create_edge_args.
4e5821d3
UB
4947 * ipa-inline.c (cgraph_decide_recursive_inlining): Change last
4948 argument to pointer to vector pointer.
e56f5f3e
JJ
4949 (cgraph_decide_inlining_of_small_function): Adjust
4950 cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
4951 calls.
4952
71aaa2ff 4953 PR target/37438
02bb8bce
UB
4954 * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when
4955 optimizing for size, not speed.
71aaa2ff 4956
fd0a8853
JJ
4957 PR rtl-optimization/37408
4958 * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
4959 if parm is promoted.
4960
a213b219
SP
49612008-09-09 Sebastian Pop <sebastian.pop@amd.com>
4962
4963 PR tree-optimization/37375
02bb8bce
UB
4964 * tree-scalar-evolution.c (scev_info_str): Add field
4965 instantiated_below.
a213b219
SP
4966 (new_scev_info_str, eq_scev_info, find_var_scev_info,
4967 set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
4968 set_instantiated_value): Pass instantiated_below.
02bb8bce
UB
4969 (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls
4970 to above functions.
4ae8027b
UB
4971 (instantiate_scev_1, instantiate_scev): Pass a basic block above which
4972 the definitions are not instantiated.
a213b219
SP
4973
4974 * tree-scalar-evolution.h (instantiate_scev): Update declaration.
4975 (block_before_loop): New.
02bb8bce
UB
4976 * tree-data-ref.c (dr_analyze_indices): Update uses of
4977 instantiate_scev.
a213b219 4978 * graphite.c (block_before_scop): New.
ea8bce02 4979 (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a
a213b219
SP
4980 basic block, not a loop for determining the parameters.
4981 (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
4982 scop.
4983 (idx_record_params, find_params_in_bb, find_scop_parameters,
ea8bce02 4984 build_loop_iteration_domains, add_conditions_to_domain): Update calls
a213b219
SP
4985 to instantiate_scev.
4986
4987 * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
4988
854bd721
VM
49892008-09-09 Vladimir Makarov <vmakarov@redhat.com>
4990
4991 PR rtl-opt/37333
ea8bce02 4992
854bd721
VM
4993 * ira-build.c (ira_create_allocno): Setup frequency to 0.
4994
4995 * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
4996 Check zero freq and increase if necessary.
4997
496071ca
VM
49982008-09-09 Vladimir Makarov <vmakarov@redhat.com>
4999
5000 * ira-conflicts.c (process_regs_for_copy): Check that the hard
5001 regno is in the right range. Add comments.
5002
1f57487c
RO
50032008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5004
5005 * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
5006 warnings.
5007 * mips-tfile.c (copy_object): Cast alloca result to int *.
5008 * mips-tdump.c (print_symbol): Cast xmalloc return values to
5009 proper types.
5010 Rename class to sclass.
5011 (read_tfile): Cast read_seek return values to proper types.
5012 Cast xcalloc return value to proper type.
5013
00efcc2b
RO
50142008-09-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5015
5016 * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
5017 * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
5018 * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
5019
0b576703
JH
50202008-09-09 Jan Hubicka <jh@suse.cz>
5021
4ae8027b
UB
5022 * profile.c (is_edge_inconsistent): Add debug output; ignore
5023 negative count on fake edges.
0b576703
JH
5024 (is_inconsistent): Add debug output.
5025
9c575182
AB
50262008-09-09 Andrey Belevantsev <abel@ispras.ru>
5027
5028 * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
5029 dump message.
5030 (choose_ready): When first insn is chosen from the ready list, also
5031 dump it.
5032
bff5a22d
AB
50332008-09-09 Andrey Belevantsev <abel@ispras.ru>
5034
8199c8a8 5035 PR rtl-optimization/37360
bff5a22d
AB
5036 * haifa-sched.c (max_issue): Do not assert that we never issue more
5037 insns than issue_rate. Add comment.
ea8bce02 5038
b59d3976
RG
50392008-09-09 Richard Guenther <rguenther@suse.de>
5040
5041 * tree-cfg.c (verify_types_in_gimple_op): Remove.
5042 (verify_types_in_gimple_call): Rename to ...
5043 (verify_gimple_call): ... this. Enhance.
5044 (verify_types_in_gimple_cond): Remove.
5045 (verify_gimple_comparison): New function ...
5046 (verify_types_in_gimple_assign): ... split out from here.
5047 (verify_types_in_gimple_return): Rename to ...
5048 (verify_gimple_return): ... this. Enhance.
5049 (verify_types_in_gimple_switch): Rename to ...
5050 (verify_gimple_switch): ... this. Enhance.
5051 (verify_gimple_goto): New function.
5052 (verify_types_in_gimple_phi): Rename to ...
5053 (verify_gimple_phi): ... this. Enhance.
5054 (verify_types_in_gimple_stmt): Adjust calls to helper functions.
5055 Fold in single-statement cases from verify_types_in_gimple_seq_2.
5056 (verify_types_in_gimple_seq_2): Remove cases handled in
5057 verify_types_in_gimple_stmt.
5058
22fb24d5
BS
50592008-09-09 Bernd Schmidt <bernd.schmidt@analog.com>
5060
5061 * config/bfin/bfin.c (n_regs_to_save): New static variable.
5062 (push_multiple_operation, pop_multiple_operation): Set it.
5063 (workaround_rts_anomaly): New function.
5064 (workaround_speculation): New function, broken out of bfin_reorg.
5065 (bfin_reorg): Call the new functions.
5066
8b17cc05
RG
50672008-09-09 Richard Guenther <rguenther@suse.de>
5068
5069 PR middle-end/37354
5070 PR middle-end/30165
5071 * gimplify.c (gimplify_conversion): Change conversions of
5072 non-register type to VIEW_CONVERT_EXPRs.
5073 (gimplify_addr_expr): If we need to make the operand
5074 addressable make sure to use a properly initialized
5075 temporary for that so it gets a valid gimple store.
5076
1751ecd6
AH
50772008-09-09 Aldy Hernandez <aldyh@redhat.com>
5078
5079 * function.h (struct function): Add function_start_locus.
5080 * cfgexpand.c (gimple_expand_cfg): Use it.
5081 * c-parser.c (c_parser_declaration_or_fndef): Set it.
5082
a135b1c4
RG
50832008-09-09 Richard Guenther <rguenther@suse.de>
5084
5085 PR tree-optimization/37433
5086 * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
5087 function calls.
5088
6e548df5
RG
50892008-09-09 Richard Guenther <rguenther@suse.de>
5090
5091 PR tree-optimization/37387
5092 * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
5093 and bits to a common type.
5094
108faf87
NC
50952008-09-09 Nick Clifton <nickc@redhat.com>
5096
5097 * config/v850/v850.md (return): Restore frame size restriction.
5098
0c03f46f
PB
50992008-09-09 Paolo Bonzini <bonzini@gnu.org>
5100
5101 * c-common.c (c_expand_decl): Remove.
5102 * c-common.h (anon_aggr_type_p): Remove prototype.
5103 (DECL_ANON_UNION_ELEMS): Remove.
5104 * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
5105 * c-decl.c (anon_aggr_type_p): Remove.
5106 * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
5107 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
5108 * langhooks.h (struct lang_hooks): Remove expand_decl.
5109 * langhooks.c (lhd_expand_decl): Remove.
5110 * stmt.c (expand_anon_union_decl): Remove.
5111 * tree.h (expand_anon_union_decl): Remove prototype.
5112
3d709466
AH
51132008-08-09 Andy Hutchinson <hutchinsonandy@aim.com>
5114
5115 PR target/36609
5116 * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
5117 zero.
5118 * config/avr/avr.md (QISI) : Define mode iterator.
5119 (negated_tst<mode>) : Redefine as split using mode macro.
5120 (reversed_tstqi): Define insn as reversed compare with zero.
5121 (reversed_tsthi): Ditto.
5122 (reversed_tstsi): Ditto.
5123
7f4b6d20
JJ
51242008-09-08 Jakub Jelinek <jakub@redhat.com>
5125
9cfa22be
JJ
5126 PR middle-end/37393
5127 * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
5128 call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
5129
7f4b6d20
JJ
5130 PR middle-end/37414
5131 * predict.c (optimize_function_for_size_p): Don't segfault if
5132 FUN is NULL.
5133 * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
5134 tree_swap_operands_p): Don't test cfun != NULL before calling
5135 optimize_function_for_s*_p.
5136
99b96649
EB
51372008-09-08 Eric Botcazou <ebotcazou@adacore.com>
5138
5139 * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
5140 end of the search.
5141
37022b7c
SR
51422008-09-08 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
5143
5144 * crx/crx.h (IRA_COVER_CLASSES): Define.
5145
c5cac099
JJ
51462008-09-08 Jakub Jelinek <jakub@redhat.com>
5147
5148 PR middle-end/37337
5149 * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
5150 even when a stmt has been gimple_modified_p, but after fold_stmt is
5151 not any longer. Remove unneeded may_have_exposed_new_symbols
5152 initializations.
5153
7220ca2b
RG
51542008-09-08 Richard Guenther <rguenther@suse.de>
5155
5156 PR tree-optimization/37421
5157 * tree-ssa-sccvn.c (visit_copy): Make sure to fully
5158 valueize the RHS.
5159
37aaba15
JJ
51602008-09-08 Jakub Jelinek <jakub@redhat.com>
5161
5162 PR middle-end/37415
5163 * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
5164
d9de9cad
JDA
51652008-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5166
5167 PR driver/37409
5168 * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
5169 * pa-hpux10.h (LINK_SPEC): Likewise.
5170 * pa-hpux11.h (LINK_SPEC): Likewise.
bcb455ba 5171
be2f06ed
JDA
51722008-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5173
5174 * pa32-regs.h (IRA_COVER_CLASSES): Define.
5175 * pa64-regs.h (IRA_COVER_CLASSES): Define.
5176
d6ab7b03
HD
51772008-09-07 Helge Deller <deller@gmx.de>
5178
8199c8a8 5179 * pa/linux-atomic.c: New file.
d6ab7b03
HD
5180 * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
5181 * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
5182
73356a7d 51832008-09-07 Richard Guenther <rguenther@suse.de>
8199c8a8 5184 Ira Rosen <irar@il.ibm.com>
73356a7d
RG
5185
5186 PR tree-optimization/36630
5187 * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
5188 Call STRIP_NOPS before calling evolution_part_in_loop_num.
5189
cc54af20 51902008-09-07 Dorit Nuzman <dorit@il.ibm.com>
8199c8a8 5191 Ira Rosen <irar@il.ibm.com>
cc54af20
DN
5192
5193 PR tree-optimization/35642
5194 * config/rs6000/altivec.md (mulv8hi3): Implement.
5195
f8505a36
JL
51962008-09-06 Jeff Law <law@redhat.com>
5197
37022b7c 5198 * h8300/h8300.h (IRA_COVER_CLASSES): Define.
f8505a36 5199
b91bc349
JH
52002008-09-06 Jan Hubicka <jh@suse.cz>
5201
5202 PR tree-optimization/14703
4ae8027b
UB
5203 * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored
5204 declarations.
b91bc349
JH
5205 * passes.c (init_optimization_passes): Recompute inline parameters.
5206
cf900097
RS
52072008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
5208
5209 * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
5210 DECL being null.
5211
4d210b07
RS
52122008-09-06 Richard Sandiford <rdsandiford@goolemail.com>
5213 Peter Fuerst <post@pfrst.de>
5214
5215 * doc/invoke.texi: Document -mr10k-cache-barrier=.
5216 * doc/extend.texi: Document __builtin_mips_cache.
5217 * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
5218 * config/mips/mips.opt (mr10k-cache-barrier=): New option.
5219 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
5220 __GCC_HAVE_BUILTIN_MIPS_CACHE.
5221 (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
5222 * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
5223 (set_push_mips_isas): New variable.
5224 (mips_r10k_cache_barrier): New variable.
5225 (cache): New availability predicate.
5226 (mips_builtins): Add an entry for __builtin_mips_cache.
5227 (mips_build_cvpointer_type): New function.
5228 (MIPS_ATYPE_CVPOINTER): New macro.
5229 (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
5230 mode is VOIDmode.
5231 (r10k_simplified_address_p, r10k_simplify_address)
5232 (r10k_uncached_address_p, r10k_safe_address_p)
5233 (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
5234 (r10k_needs_protection_p_call, r10k_needs_protection_p)
5235 (r10k_insert_cache_barriers): New functions.
5236 (mips_reorg_process_insns): Delete cache barriers after a
5237 branch-likely instruction.
5238 (mips_reorg): Call r10k_insert_cache_barriers.
5239 (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
5240 * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
5241 (UNSPEC_R10K_CACHE_BARRIER): Likewise.
5242 (mips_cache, r10k_cache_barrier): New define_insns.
5243
4f341ea0
RS
52442008-09-06 Richard Sandiford <rdsandiford@googlemail.com>
5245
5246 * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
5247 * ira-color.c (setup_allocno_left_conflicts_num): Use
5248 hard_reg_set_equal_p instead of a comparison with
5249 ira_zero_hard_reg_set.
5250 * ira.c (setup_reg_subclasses): Likewise.
5251 (setup_cover_and_important_classes): Likewise.
5252 (setup_class_translate): Likewise.
5253 (setup_reg_class_intersect_union): Likewise.
5254 (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
5255 (ira_init_once): Don't initialize them.
5256
af9253a1
VM
52572008-09-05 Vladimir Makarov <vmakarov@redhat.com>
5258
5259 * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
5260
52612008-09-05 Vladimir Makarov <vmakarov@redhat.com>
6b8d9676 5262
4ae8027b
UB
5263 * ira-color.c (ira_fast_allocation): Permit global allocno allocation.
5264
9dcc2e87
TS
52652008-09-05 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
5266
5267 Improved branch hints, safe hints, and scheduling.
5268
5269 * haifa-sched.c (sched_emit_insn) : Define.
5270 * sched-int.h (sched_emit_insn) : Add prototype.
5271 * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
5272 -mhint-max-distance -msafe-hints) : Document.
5273 * config/spu/spu.c (spu_flag_var_tracking): New.
5274 (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
5275 TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
5276 TARGET_ASM_FILE_START): Define.
5277 (TARGET_SCHED_ADJUST_PRIORITY): Remove.
5278 (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
5279 (spu_emit_branch_hint): Add blocks argument.
5280 (insert_branch_hints, insert_nops): Remove.
5281 (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
5282 uses_ls_unit, spu_sched_init_global, spu_sched_init,
5283 spu_sched_reorder, asm_file_start): New functions.
5284 (clock_var, spu_sched_length, pipe0_clock,
5285 pipe1_clock, prev_clock_var, prev_priority,
5286 spu_ls_first, prev_ls_clock): New static variables.
5287 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
5288 * config/spu.md (iprefetch): Add operand, make it clobber MEM.
5289 (nopn_nv): Add a non-volatile version of nop.
5290 * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
5291 -mhint-max-distance, -msafe-hints): New options.
5292
93a4f5e0
JJ
52932008-09-05 Janis Johnson <janis187@us.ibm.com>
5294 Samuel Tardieu <sam@rfc1149.net>
5295
5ffebee7
JJ
5296 * opts.c (decode_options): Combine nested if statements.
5297
93a4f5e0
JJ
5298 PR target/37283
5299 * opts.c (decode_options): Handle more relationships among
5300 unit-at-a-time, toplevel-reorder, and section-anchors.
5301
c07cd2c7
DD
53022008-09-05 David Daney <ddaney@avtrex.com>
5303
5304 * doc/install.texi (--enable-reduced-reflection): Document new option.
5305
37fbe8a3
BW
53062008-09-05 Bob Wilson <bob.wilson@acm.org>
5307
5308 * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
5309 constantpool_mem_p.
5310 (constantpool_operand): New.
5311 (move_operand): Disallow sub-word modes for the constant pool.
5312 * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
5313 (xtensa_secondary_reload_class): Replace with....
ea8bce02 5314 (xtensa_secondary_reload): this function. Remove SIGN_EXTEND check.
37fbe8a3
BW
5315 Set icode for sub-word reloads from the constant pool.
5316 * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
5317 (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
5318 * config/xtensa/xtensa.md (reload<mode>_literal): New.
5319 * config/xtensa/xtensa-protos.h: Update prototypes.
ea8bce02 5320
7314c7dd
JM
53212008-09-05 Joseph Myers <joseph@codesourcery.com>
5322
5323 * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
5324 (REG_CLASS_NAMES): Update.
5325 (REG_CLASS_CONTENTS): Update.
5326 * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
5327 of ALL_REGS for regs 77 and 78.
5328 * function.c (instantiate_virtual_regs_in_insn): Assert that
5329 return value of simplify_gen_subreg is not NULL.
5330
80379f51
PB
53312008-09-05 Paolo Bonzini <bonzini@gnu.org>
5332
5333 * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
5334 (gen_rtvec_v): Fix coding standards.
5335
0cf9dcf8
JH
53362008-09-04 Jan Hubicka <jh@suse.cz>
5337
5338 * i386.c (decide_alg): Be more conservative about optimizing for size.
5339
84320b0b
ILT
53402008-09-04 Ian Lance Taylor <iant@google.com>
5341
5342 * varasm.c (narrowing_initializer_constant_valid_p): New
5343 static function.
5344 (initializer_constant_valid_p): Call it.
5345
54193313
JL
53462008-09-04 Jeff Law <law@redhat.com>
5347
5348 * fold-const.c (native_encode_real): Fix computation of WORDS.
5349 (native_interpret_real): Likewise.
5350
7fab7e16
JJ
53512008-09-04 Janis Johnson <janis187@us.ibm.com>
5352
5353 * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
5354
4cda38d5
VM
53552008-09-04 Vladimir Makarov <vmakarov@redhat.com>
5356
5357 * ira-conflicts.c (process_regs_for_copy): Check insn to check
5358 that the cost is already taken into account in ira-costs.c
5359
5360 * ira-int.h (ira_debug_copy, ira_debug_copies): New.
5361
5362 * ira-build.c (print_copy, print_copies, ira_debug_copy,
5363 ira_debug_copies): New.
5364 (ira_bulid): Call print_copies.
ea8bce02 5365
4cda38d5 5366 * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
ea8bce02 5367
2f3b0d4a
ST
53682008-09-04 Samuel Tardieu <sam@rfc1149.net>
5369
5370 PR target/32783
5371 * config/rs6000/rs6000.c (optimization_options): Remove check of
5372 flag_toplevel_order.
5373
5299815b
AN
53742008-09-04 Adam Nemet <anemet@caviumnetworks.com>
5375
5376 * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
5377 * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
5378 second operand is a reg_imm10_operand.
5379 * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
5380 *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
5381 (*seq_<GPR:mode><GPR2:mode>): Rename to
5382 *seq_zero_<GPR:mode><GPR2:mode>. Don't match if
5383 ISA_HAS_SEQ_SNE.
5384 (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
5385 *seq_zero_<GPR:mode><GPR2:mode>_mip16. Don't match if
5386 ISA_HAS_SEQ_SNE.
5387 (*sne_<GPR:mode><GPR2:mode>): Rename to
5388 *sne_zero_<GPR:mode><GPR2:mode>. Don't match if
5389 ISA_HAS_SEQ_SNE.
5390
c8424132
AN
53912008-09-04 Adam Nemet <anemet@caviumnetworks.com>
5392
5393 * config/mips/mips.h (ISA_HAS_EXTS): New macro.
5394 * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
5395 combining an arithmetic right shift by more than 31 and a
5396 trunction. Don't match for out-of-range shift amounts. Set
5397 attribute mode to <MODE>.
5398 (*lshr32_trunc<mode>): Name the pattern combining a logical right
5399 shift by 32 and and a truncation. Set attribute mode to <MODE>.
5400 (*<optab>_trunc<mode>_exts): New pattern for truncated right
5401 shifts by less than 32.
5402 (extv): Change predicate on first operand to accept registers.
5403 Change predicate of the other operands from immediate_operand to
5404 const_int_operand. Expand exts when source is a register.
5405 (extzv): Change predicate of the constant operands from
5406 immediate_operand to const_int_operand.
5407 (extzv<mode>): Change predicate of the constant operands from
5408 immediate_operand to const_int_operand and no constraint. Also
5409 remove mode.
5410 (*extzv_trunc<mode>_exts): New pattern.
5411
49912bcd
AN
54122008-09-04 Adam Nemet <anemet@caviumnetworks.com>
5413
5414 * config/mips/mips.h (ISA_HAS_CINS): New macro.
5415 * config/mips/mips-protos.h (mask_low_and_shift_p,
5416 mask_low_and_shift_len): Declare.
5417 * config/mips/mips.c (mask_low_and_shift_p,
5418 mask_low_and_shift_len): New functions.
5419 (mips_print_operand): Handle new operand prefix "m".
5420 * config/mips/mips.md (*cins<mode>): New pattern.
5421
a524985e
BS
54222008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
5423
5424 * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
5425 optimizing for size.
5426
1d489435
RS
54272008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
5428
5429 * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
5430 regardless of epilogue_completed.
5431
5feec5c1
VM
54322008-09-04 Vladimir Makarov <vmakarov@redhat.com>
5433
5434 PR middle-end/37359
5435 * ira-lives.c (process_bb_node_lives): Check setjmp.
5436
acb37d29
RS
54372008-09-04 Richard Sandiford <rdsandiford@googlemail.com>
5438
5439 PR middle-end/37243
5440 * ira-build.c (form_loop_tree): Reverse BB walk.
5441 (create_bb_allocnos): Likewise.
5442 * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
5443 (mark_reg_store): Rename to...
5444 (mark_ref_live): ...this and take a df_ref argument instead of
5445 note_stores arguments. Assert that we have a register.
5446 (mark_reg_clobber): Delete.
5447 (def_conflicts_with_inputs_p): New function.
5448 (mark_reg_conflicts): Delete.
5449 (mark_reg_death): Rename to...
5450 (mark_ref_dead): ...this and take a df_ref argument instead of
5451 a register. Assert that we have a register.
5452 (process_bb_node_lives): Hoist frequency calculation out of
5453 instruction walk. Convert from a forwards scan to a backwards scan.
5454 Use DF_REF_USES and DF_REF_DEFS instead of register notes and
5455 note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling.
5456 (create_allocno_live_ranges): Don't create regs_set.
5457
e0c68ce9
ILT
54582008-09-04 Ian Lance Taylor <iant@google.com>
5459
5460 * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
5461 or REG_LABEL_TARGET.
5462 * calls.c (emit_library_call_value_1): Use MEM_P rather than
5463 comparing MODE with MEM.
5464 * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
5465 comparing with GF_PREDICT_TAKEN.
5466 (gimple_get_lhs): Change code to enum gimple_code.
5467 (gimple_set_lhs): Likewise.
5468 * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
5469 * omp-low.c (find_omp_clause): Change kind parameter to enum
5470 omp_clause_code.
5471 * tree-flow.h (find_omp_clause): Update declaration.
5472 * regrename.c (clear_dead_regs): Change kind parameter to enum
5473 reg_note.
5474 * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
5475 GET_MODE.
5476 * see.c (see_get_extension_data): Change return type to enum
5477 entry_type. Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
5478 SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
5479 (see_gen_normalized_extension): Change extension_code parameter to
5480 enum entry_type.
5481 (see_seek_pre_extension_expr): Change extension_code to enum
5482 entry_type.
5483 (see_merge_one_def_extension): Likewise.
5484 (see_handle_relevant_defs): Likewise.
5485 (see_handle_relevant_uses): Likewise.
5486 (see_analyze_one_def): Likewise.
5487 * tree-cfg.c (need_fake_edge_p): Compare gimple code with
5488 GIMPLE_ASM rather than ASM_EXPR.
5489 * tree-ssa-alias.c (is_escape_site): Compare gimple code with
5490 GIMPLE_RETURN rather than RETURN_EXPR.
5491 * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
5492 (evaluate_stmt): Likewise.
5493 * tree-vect-analyze.c (vect_analyze_operations): Change relevance
5494 to enum vect_relevant.
5495 (vect_mark_stmts_to_be_vectorized): Change assertion to not
5496 compare gimple codes with tree codes.
5497
71062f1e
PB
54982008-09-04 Paul Brook <paul@codesourcery.com>
5499
5500 * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
5501
d8612738
BS
55022008-09-04 Bernd Schmidt <bernd.schmidt@analog.com>
5503
5504 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
5505 pointer check lost in the recent no-unit-at-a-time patch.
ea8bce02 5506
d7f2fbf6
JH
55072008-09-04 Jan Hubicka <jh@suse.cz>
5508
5509 PR middle-end/37343
5510 * tree-switch-conversion.c (check_final_bb): Accept only IP
5511 invariants.
5512
6b99f156
JH
55132008-09-04 Jan Hubicka <jh@suse.cz>
5514
5515 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
5516 Break out from ...
5517 (vrp_evaluate_conditional_warnv_with_ops): ... this one. Add
5518 using_ranges argument.
5519 (vrp_evaluate_conditional): Avoid bogus warning for type range.
5520 (vrp_visit_cond_stmt): Update call of
5521 vrp_evaluate_conditional_warnv_with_ops
5522
4db15d75
JH
55232008-09-04 Jan Hubicka <jh@suse.cz>
5524
5525 PR tree-optimization/37345
5526 PR tree-optimization/37358
5527 PR tree-optimization/37357
5528 * tree.c (build_function_type_skip_args): Build distinct type copy;
5529 set TYPE_CONTEXT.
5530 (build_function_decl_skip_args): Set type of new decl not orig decl;
5531 clear DECL_VINDEX for methods turned into functions.
5532
28e6bb13
NC
55332008-09-04 Nick Clifton <nickc@redhat.com>
5534
4ae8027b 5535 * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler check.
28e6bb13
NC
5536 * configure: Regenerate.
5537 * config.in: Regenerate.
5538 * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
5539 alignment field, if it is supported.
5540
48253184
KT
55412008-09-04 Kai Tietz <kai.tietz@onevision.com>
5542
5543 * config/i386/t-mingw32 (SHLIB_LC): Change order of import
5544 libraries.
5545
0783d48d
DE
55462008-09-03 David Edelsohn <edelsohn@gnu.org>
5547
5548 * config/rs6000/rs6000.c (processor_target_table): Do not
5549 enable VMX for POWER6.
5550
55512008-09-03 Anton Blanchard <anton@samba.org>
5552
5553 * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
5554 emit memory barrier before operation.
5555
d1fe519c
JDA
55562008-09-03 John David Anglin <dave.anglin@nrc.cnrc.gc.ca>
5557
5558 PR testsuite/37325
5559 * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
5560 default_elf_asm_output_external.
5561
bc9b880c
JL
55622008-09-03 Jeff Law <law@redhat.com>
5563
5564 * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
5565
27738602
RH
55662008-09-03 Richard Henderson <rth@redhat.com>
5567
5568 * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
5569 memory barrier to below the test-and-set.
5570 (alpha_split_lock_test_and_set_12): Likewise.
5571
49d988e7
VM
55722008-09-03 Vladimir Makarov <vmakarov@redhat.com>
5573
5574 PR rtl-opt/37243
5575
5576 * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
5577 all_allocnos.
5578
5579 * ira-color.c (print_loop_title): Use all_allocnos.
5580 (color_pass): Ditto. Don't add border_allocnos. Check that
5581 subloop allocno in the correspdoning bitmap all_allocnos.
5582
5583 * ira-emit.c (change_loop): Use all_allocnos.
5584
b7f58d5d
UB
5585 * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node): Ditto.
5586 (ira_create_allocno): Set up all_allocnos bit for the created allocno.
49d988e7
VM
5587 (create_cap_allocno): Remove setting mentioned_allocnos.
5588 (create_insn_allocnos): Ditto.
5589 (remove_unnecessary_allocnos): Use all_allocnos.
5590 (check_allocno_creation): Check that allocnos are in the
5591 corresponding bitmap all_allocnos.
ea8bce02 5592
a7f32992
VM
55932008-09-03 Vladimir Makarov <vmakarov@redhat.com>
5594
5595 PR rtl-opt/37243
ea8bce02 5596
a7f32992
VM
5597 * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
5598 (process_regs_for_copy): Process subregs. Refine check when cost
5599 is taken into account in ira-costs.c.
5600 (process_reg_shuffles): Use REG_SUBREG_P.
5601 (add_insn_allocno_copies): Ditto. Ignore modes.
5602
5603 * ira-color.c (conflict_allocno_vec): New.
5604 (COST_HOP_DIVISOR): New macro.
5605 (update_copy_costs_1): Use it.
5606 (update_conflict_hard_regno_costs): New function.
5607 (assign_hard_reg): Use it.
5608 (ira_color): Allocate and free conflict_allocno_vec.
ea8bce02 5609
204853a7
VM
56102008-09-03 Vladimir Makarov <vmakarov@redhat.com>
5611
5612 PR rtl-opt/37296
5613
5614 * ira-int.h (ira_sort_insn_chain): Remove.
5615
5616 * ira.c (basic_block_order_nums, chain_insn_order,
5617 chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
5618 (ira): Don't call ira_sort_insn_chain.
5619
5620 * reload1.c (reload): Don't call ira_sort_insn_chain.
5621
c0ab1df3
AP
56222008-09-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
5623
5624 PR middle-end/37293
5625 * cgraphunit.c (update_call_expr): Remove eh regions from statements
5626 which become non throw.
5627 (cgraph_function_versioning): Also clear DECL_WEAK. Call
5628 update_call_expr after updating the flags on the decl.
5629
39ecc018
JH
56302008-09-03 Jan Hubicka <jh@suse.cz>
5631
5632 PR tree-optimization/37315
5633 * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
5634 * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
5635 (cgraph_analyze_functions): Use node->analyzed
5636 (cgraph_mark_functions_to_output): Likewise.
5637 (cgraph_expand_function): All functions can be released after
5638 expanding.
5639 (cgraph_optimize): Use gimple_has_body_p.
5640 * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
5641 (cgraph_decide_inlining_incrementally): Likewise.
5642 (inline_transform): Inline transform.
5643 * tree-inline.c (initialize_cfun): Do now shallow copy structure;
5644 copy fields needed.
5645 (inlinable_function_p): Drop gimple_body check.
5646 (expand_call_inline): Use gimple_has_body_p.
5647 * gimple.c (gimple_has_body_p): New.
5648 * gimple.h (gimple_has_body_p): Add prototype.
5649 * tree-cfg.c (execute_build_cfg): Remove gimple_body.
5650 (dump_function_to_file): Use gimple_has_body_p check.
5651
05a26161
JJ
56522008-09-03 Jakub Jelinek <jakub@redhat.com>
5653
169e477d 5654 PR c++/37346
05a26161
JJ
5655 * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
5656 substatements.
5657 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
5658
a6340be1
BS
56592008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
5660
5661 From Michael Frysinger <michael.frysinger@analog.com>
5662 * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
5663 bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549. Add 0.2
5664 for bf538.
5665
358da97e
HS
56662008-09-03 Hari Sandanagobalane <hariharan@picochip.com>
5667
5668 Add picoChip port.
5669 * doc/extend.texi: Document picoChip builtin functions.
5670 * doc/invoke.texi: Document picoChip options.
5671 * doc/contrib.texi: Add picoChip contribution.
5672 * doc/md.texi: Document picoChip constraints.
5673 * config.gcc: Add picochip-*-*.
5674 * config/picochip/: Add new port.
5675
44299c96
RG
56762008-09-03 Richard Guenther <rguenther@suse.de>
5677
5678 PR tree-optimization/37328
5679 * tree-sra.c (sra_build_assignment): Gimplify properly.
5680 (generate_copy_inout): Take the correct stmt as definition,
5681 remove bogus assert.
5682
3b62f0e1
BS
56832008-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
5684
5685 * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
5686 attributes.
5687
829dbae5
BS
5688 From Michael Frysinger <michael.frysinger@analog.com>
5689 * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
5690
fea16f81
DS
56912008-09-03 Danny Smith <dannysmith@usrs.sourceforge.net>
5692
4ae8027b 5693 * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is defined.
fea16f81 5694 (__gthread_setspecific): Revert 2008-08-31 change to
4ae8027b 5695 __GTHREAD_HIDE_W32API case. Apply it to !__GTHREAD_HIDE_W32API case.
fea16f81 5696
a63068b6
AH
56972008-09-02 Aldy Hernandez <aldyh@redhat.com>
5698
5699 * diagnostic.c (error_at): New.
5700 * toplev.h (error_at): New prototype.
5701 * c-typeck.c (build_array_ref): Call error_at instead of error.
5702 Pass location to pedwarn.
5703
a20d7130
AN
57042008-09-02 Adam Nemet <anemet@caviumnetworks.com>
5705
13eaee4a 5706 * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
a20d7130 5707
dd4bf866
JJ
57082008-09-02 Jakub Jelinek <jakub@redhat.com>
5709
5710 * dwarf2out.c (tree_add_const_value_attribute): Only handle
5711 VAR_DECL and CONST_DECL.
5712
4aab97f9
L
57132008-09-02 H.J. Lu <hongjiu.lu@intel.com>
5714 Jakub Jelinek <jakub@redhat.com>
5715
5716 * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
5717 (setup_incoming_varargs_64): Assume cum != NULL. Set/check
5718 ix86_varargs_gpr_size and ix86_varargs_fpr_size. Use
5719 ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
5720 Don't set ix86_save_varrargs_registers.
5721 (ix86_setup_incoming_varargs): Assume cum != NULL.
5722 (ix86_va_start): Check ix86_varargs_gpr_size and
5723 ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
5724 cfun->va_list_fpr_size, respectively. Subtract 8*X86_64_REGPARM_MAX
5725 from frame pointer if ix86_varargs_gpr_size == 0.
5726 (ix86_compute_frame_layout): Updated.
5727 * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
5728 (ix86_varargs_gpr_size): Define.
5729 (ix86_varargs_fpr_size): Likewise.
5730 (machine_function): Remove save_varrargs_registers.
5731 Add varargs_gpr_size and varargs_fpr_size.
5732
c83c7e7e
JJ
57332008-09-02 Jakub Jelinek <jakub@redhat.com>
5734
777b1fbe
JJ
5735 * config/alpha/alpha.c (va_list_skip_additions,
5736 alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
5737 (alpha_gimplify_va_arg): Call unshare_expr on second use of
5738 offset_field.
5739
833ee764
JJ
5740 PR tree-optimization/36766
5741 * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
5742 for already removed basic blocks.
5743
c83c7e7e
JJ
5744 PR target/36332
5745 * real.c (real_maxval): Clear a lower bit to make real_maxval
5746 match get_max_float for IBM long double format.
5747
75c9cbe3
AS
57482008-09-02 Andreas Schwab <schwab@suse.de>
5749
5750 * configure.ac: Use m4_quote to quote the expansion of m4_do.
5751 * configure: Regenerate.
5752
dd59ef13
RS
57532008-09-02 Richard Sandiford <rdsandiford@googlemail.com>
5754
5755 * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
5756 SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
5757 checking for a non-VOID CONSTANT_P.
5758
0d77cc6c
JH
57592008-09-02 Jan Hubicka <jh@suse.cz>
5760
edcfeaee 5761 * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
4ae8027b
UB
5762 * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and
5763 sdiv_pow2_cheap
0d77cc6c 5764
e0978eba
L
57652008-09-02 H.J. Lu <hongjiu.lu@intel.com>
5766
5767 * expr.c (emit_group_store): Don't assert stack temp mode size.
5768
b328f3af
SP
57692008-09-02 Sebastian Pop <sebastian.pop@amd.com>
5770 Tobias Grosser <grosser@fim.uni-passau.de>
5771 Jan Sjodin <jan.sjodin@amd.com>
5772 Harsha Jagasia <harsha.jagasia@amd.com>
5773 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
5774 Konrad Trifunovic <konrad.trifunovic@inria.fr>
5775 Adrien Eliche <aeliche@isty.uvsq.fr>
5776
5777 Merge from graphite branch.
5778 * graphite.c: New.
5779 * graphite.h: New.
5780 * tree-loop-linear.c (perfect_loop_nest_depth): Export.
5781 * doc/invoke.texi (-floop-block, -floop-interchange,
5782 -floop-strip-mine): Document new flags.
5783 * tree-into-ssa.c (gimple_vec): Moved...
5784 * tree-loop-distribution.c (rdg_component): Moved...
5785 * cfgloopmanip.c: Include tree-flow.h.
5786 (update_dominators_in_loop): New.
5787 (create_empty_if_region_on_edge): New.
5788 (create_empty_loop_on_edge): New.
5789 (loopify): Use update_dominators_in_loop.
5790 * tree-pass.h (pass_graphite_transforms): Declared.
5791 * configure: Regenerate.
5792 * tree-phinodes.c (make_phi_node): Export.
5793 (add_phi_node_to_bb): New, split from create_phi_node.
5794 * tree-chrec.c (for_each_scev_op): New.
5795 * tree-chrec.h (for_each_scev_op): Declared.
5796 * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
5797 (remove_statement): Call get_phi_with_result.
5798 * config.in (HAVE_cloog): Undef.
5799 * gdbinit.in (pgg): New.
5800 * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
5801 * tree-ssa-loop.c (graphite_transforms): New.
5802 (gate_graphite_transforms): New.
5803 (pass_graphite_transforms): New.
5804 * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
5805 HAVE_cloog): Defined.
5806 * tree-vectorizer.c (rename_variables_in_bb): Export.
5807 * tree-data-ref.c (dr_may_alias_p): Export.
5808 (stmt_simple_memref_p): New.
5809 (find_data_references_in_stmt): Export.
5810 (find_data_references_in_loop): Export.
5811 (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
5812 (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
5813 (create_rdg_vertices): Export.
5814 (build_empty_rdg): New.
5815 (build_rdg): Call build_empty_rdg. Free dependence_relations.
5816 * tree-data-ref.h (rdg_component): ... here.
5817 (scop_p): New.
5818 (struct data_reference): Add a field scop.
5819 (DR_SCOP): New.
5820 (find_data_references_in_loop): Declared.
5821 (find_data_references_in_stmt): Declared.
5822 (create_rdg_vertices): Declared.
5823 (dr_may_alias_p): Declared.
5824 (stmt_simple_memref_p): Declared.
5825 (struct rdg_edge): Add a field ddr_p relation.
5826 (build_empty_rdg): Declared.
5827 * lambda.h (lambda_matrix): Declare a VEC of.
5828 (find_induction_var_from_exit_cond): Declared.
5829 (lambda_vector_compare): New.
5830 * common.opt (fgraphite, floop-strip-mine,
5831 floop-interchange, floop-block): New flags.
5832 * lambda-code.c (find_induction_var_from_exit_cond): Export.
5833 * cfgloop.c (is_loop_exit): New.
5834 * cfgloop.h (is_loop_exit): Declared.
5835 (create_empty_if_region_on_edge): Declared.
5836 (create_empty_loop_on_edge): Declared.
5837 * tree-flow.h (add_phi_node_to_bb): Declared.
5838 (make_phi_node): Declared.
5839 (rename_variables_in_bb): Declared.
5840 (perfect_loop_nest_depth): Declared.
5841 (graphite_transform_loops): Declared.
5842 * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
5843 (graphite.o-warn): Add -Wno-error.
5844 (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
5845 (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
5846 (INCLUDES): Add PPLINC, CLOOGINC.
5847 (OBJS-common): Add graphite.o.
5848 (graphite.o): Add rule.
5849 * gimple.h (gimple_vec): ... here.
5850 * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
ea8bce02 5851 * passes.c (init_optimization_passes): Schedule
b328f3af
SP
5852 pass_graphite_transforms.
5853
57b08d04
ST
58542008-09-02 Samuel Tardieu <sam@rfc1149.net>
5855
5856 PR target/37283
5857 * opts.c (decode_options): Move processing of -fno-unit-at-a-time
5858 and -fno-toplevel-reorder after handle_options.
5859
7612f14d
PB
58602008-09-02 Paul Brook <paul@codesourcery.com>
5861
5862 * config/arm/arm.c (arm_tune_cortex_a9): Define.
5863 (arm_override_options): Set arm_tune_cortex_a9.
5864 (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
5865 (arm_issue_rate): Handle cortexa9.
5866 * config/arm/arm.h (arm_tune_cortex_a9): Declare.
5867 * config/arm/arm-cores.def: Add cortex-a9.
5868 * config/arm/arm-tune.md: Regenerate.
5869 * config/arm/arm.md: Include cortex-a9.md.
5870 (generic_sched, generic_vfp): Add cortexa9.
5871 * config/arm/cortex-a9.md: New file.
5872
a1b969a0
RG
58732008-09-02 Richard Guenther <rguenther@suse.de>
5874
5875 PR tree-optimization/37327
5876 * tree-vrp.c (register_new_assert_for): Make sure to not have
5877 TREE_OVERFLOW set on the bound.
5878
7ab5df48
AB
58792008-09-02 Alexander Monakov <amonakov@ispras.ru>
5880
5881 Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
75c9cbe3 5882
7ab5df48
AB
5883 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
5884 * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
5885 spec_info->mask.
5886
f6d5e84a
VK
58872008-09-02 Victor Kaplansky <victork@il.ibm.com>
5888
5889 * gcc/config/spu/spu.md (divdf3): Removed.
f6d5e84a 5890
1aeaf0f7
JJ
58912008-09-02 Jakub Jelinek <jakub@redhat.com>
5892
5893 PR tree-optimization/37095
5894 * cgraph.c (cgraph_node): When creating new cgraph node after
5895 assembler_name_hash has been populated, record it in the hash
5896 table.
5897
571191af
PB
58982008-09-01 Paul Brook <paul@codesourcery.com>
5899
5900 * doc/invoke.texi: Document -mword-relocations.
5901 * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
5902 * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
5903 * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
5904 * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
5905 (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
5906 (arm_emit_movpair): New function.
5907 (arm_print_operand <c>): Handle sybolic addresses.
5908 * config/arm/arm.h (TARGET_USE_MOVT): Define.
5909 (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
5910 * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
5911 * config/arm/arm.opt: Add -mword-relocations.
5912 * config/arm/arm.md (movsi): Use arm_emit_movpair.
5913 (arm_movt, arm_movw): New.
5914
26272ba2
PB
59152008-09-01 Paul Brook <paul@codesourcery.com>
5916
5917 * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
5918 Allow Interworking on ARMv4 EABI based targets.
5919 * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
5920 (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
5921
48c23a6c
PB
59222008-09-01 Paul Brook <paul@codesourcery.com>
5923
5924 * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
5925 optimized LT0 test. Remove optimization for GT.
5926
89ceba31
JDA
59272008-09-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5928
4b738718
JDA
5929 * pa64-hpux.h (LIB_SPEC): Link against librt when building static
5930 openmp applications.
5931 * pa-hpux11.h (LIB_SPEC): Likewise.
5932
02bb8bce
UB
5933 * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS
5934 is defined.
89ceba31 5935
ba623ced
JH
59362008-09-01 Jan Hubicka <jh@suse.cz>
5937
5938 * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
5939 present, use only counts; when guessed use only frequencies.
5940 (estimate_bb_frequencies): Use function_frequency.
5941 * profile.c (compute_branch_probabilities): Exit early when
5942 profile reading failed. Set profile_status.
5943 (branch_prob): Do not set profile_status.
5944
6a3799eb
AH
59452008-09-01 Aldy Hernandez <aldyh@redhat.com>
5946
5947 * tree.c (protected_set_expr_location): New.
5948 * tree.h (protected_set_expr_location): New prototype.
5949 * c-tree.h (build_array_ref): Add argument.
5950 (parser_build_unary_op): Same.
5951 * c-typeck.c (build_indirect_ref): Handle new location argument.
5952 (build_array_ref): Same.
5953 (parser_build_unary_op): Same.
5954 * gimplify.c (gimplify_asm_expr): Set input_location before calling
5955 error.
5956 * c-omp.c (c_finish_omp_atomic): Pass location when calling
5957 build_indirect_ref.
4ae8027b 5958 * c-common.c (finish_label_address_expr): Handle new location argument.
6a3799eb
AH
5959 * c-common.h (build_indirect_ref): Add argument.
5960 (finish_label_address_expr): Same.
5961 * c-parser.c (c_parser_unary_expression): Pass location to build
5962 functions.
5963 (c_parser_postfix_expression): Same.
5964
51c69ddb
PB
59652008-09-01 Paul Brook <paul@codesourcery.com>
5966
5967 * config/arm/arm.md: Include cortex-r4f.md.
5968 (attr fpu): Update type list.
5969 (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
75c9cbe3 5970 fconstd, fcmps and fcmpd.
51c69ddb
PB
5971 (attr tune_cortexr4): Define.
5972 (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
5973 * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
5974 fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns.
5975 * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
4ae8027b 5976 * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types.
51c69ddb
PB
5977 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
5978 cortex_a8_vfp_farith: Ditto.
5979 * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
5980 * config/arm/cortex-r4.md: Use tune_cortexr4.
5981 * config/arm/cortex-r4f.md: New file.
5982
ff8b183b
RG
59832008-09-01 Richard Guenther <rguenther@suse.de>
5984
5985 PR tree-optimization/37305
5986 * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
5987 the result of constant conversions.
5988 (fold_gimple_assign): Likewise.
5989
68ad446f
AB
59902008-09-01 Andrey Belevantsev <abel@ispras.ru>
5991
75c9cbe3
AS
5992 * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
5993 #ifdef ENABLE_CHECKING.
68ad446f 5994
dfb0e60d 59952008-09-01 Andrey Belevantsev <abel@ispras.ru>
75c9cbe3 5996
dfb0e60d
AB
5997 * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
5998 * sched-int.h (print_insn, print_pattern, print_value): Declare also
5999 when !INSN_SCHEDULING.
75c9cbe3 6000
8a88c276
AS
60012008-09-01 Andreas Schwab <schwab@suse.de>
6002
6003 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
6004
756f763b
PB
60052008-09-01 Paul Brook <paul@codesourcery.com>
6006
6007 * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
6008
7ab5df48 60092008-09-01 Jan Hubicka <jh@suse.cz>
e04ad03d 6010
f69bbb46
JH
6011 * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
6012
4ae8027b
UB
6013 * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P):
6014 Pass speed operand.
e04ad03d
JH
6015 * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
6016 * gimplify.c (gimplify_init_constructor): Add speed operand.
6017 * tree-sra.c (decide_block_copy): Likewise.
6018 * tree-inline.c (estimate_move_cost): Likewise.
6019 * config/alpha/alpha.h (MOVE_RATIO): Update.
6020 * config/frv/frv.c (MOVE_RATIO): Update.
6021 * config/spu/spu.h (MOVE_RATIO): Update.
6022 * config/sparc/sparc.h (MOVE_RATIO): Update.
6023 * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
6024 * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
6025 * config/cris/cris.h (MOVE_RATIO): Update.
6026 * config/mn10300/mn10300.h (MOVE_RATIO): Update.
6027 * config/arm/arm.h (MOVE_RATIO): Update.
6028 * config/pa/pa.md: Update uses of MOVE_RATIO
6029 * config/pa/pa.h (MOVE_RATIO): Update.
4ae8027b
UB
6030 * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES,
6031 CLEAR_RATIO, SET_RATIO): Update.
e04ad03d
JH
6032 * config/h8300/h8300.h (MOVE_RATIO): Update.
6033 * config/v850/v850.h (MOVE_RATIO): Update.
6034 * config/bfin/bfin.h (MOVE_RATIO): Update.
6035
e855c69d 60362008-08-31 Andrey Belevantsev <abel@ispras.ru>
4ae8027b
UB
6037 Dmitry Melnik <dm@ispras.ru>
6038 Dmitry Zhurikhin <zhur@ispras.ru>
6039 Alexander Monakov <amonakov@ispras.ru>
6040 Maxim Kuvyrkov <maxim@codesourcery.com>
e855c69d
AB
6041
6042 * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
6043 sel-sched-dump.c, sel-sched-ir.c: New files.
02bb8bce 6044 * Makefile.in (OBJS-common): Add selective scheduling object files.
e855c69d
AB
6045 (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
6046 (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
6047 (sched-vis.o): Add dependency on $(INSN_ATTR_H).
6048 * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
6049 * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
6050 (make_forwarder_block): Update loop latch if we have redirected
6051 the loop latch edge.
6052 * cfgloop.c (get_loop_body_in_custom_order): New function.
6053 * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
6054 (CP_FALLTHRU_PREHEADERS): Likewise.
6055 (get_loop_body_in_custom_order): Declare.
6056 * cfgloopmanip.c (has_preds_from_loop): New.
6057 (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
6058 Assert that the preheader edge will be fall thru when it is set.
6059 * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
6060 fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
6061 fsel-sched-substitution, fselective-scheduling): New flags.
4ae8027b 6062 * cse.c (hash_rtx_cb): New.
e855c69d
AB
6063 (hash_rtx): Use it.
6064 * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
8a88c276 6065 sel_sched_insn_cnt): New counters.
4ae8027b
UB
6066 * final.c (compute_alignments): Export. Free dominance
6067 info after loop_optimizer_finalize.
e855c69d 6068 * genattr.c (main): Output maximal_insn_latency prototype.
4ae8027b
UB
6069 * genautomata.c (output_default_latencies): New.
6070 Factor its code from ...
e855c69d
AB
6071 (output_internal_insn_latency_func): ... here.
6072 (output_internal_maximal_insn_latency_func): New.
6073 (output_maximal_insn_latency_func): New.
6074 * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
6075 (struct hard_reg_set_iterator): New.
6076 (hard_reg_set_iter_init, hard_reg_set_iter_set,
6077 hard_reg_set_iter_next): New functions.
6078 (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
6079 * lists.c (remove_free_INSN_LIST_node,
6080 remove_free_EXPR_LIST_node): New functions.
4ae8027b
UB
6081 * loop-init.c (loop_optimizer_init): When
6082 LOOPS_HAVE_FALLTHRU_PREHEADERS, set CP_FALLTHRU_PREHEADERS when
6083 calling create_preheaders.
e855c69d
AB
6084 (loop_optimizer_finalize): Do not verify flow info after reload.
6085 * recog.c (validate_replace_rtx_1): New parameter simplify.
6086 Default it to true. Update all uses. Factor out simplifying
6087 code to ...
6088 (simplify_while_replacing): ... this new function.
6089 (validate_replace_rtx_part,
6090 validate_replace_rtx_part_nosimplify): New.
6091 * recog.h (validate_replace_rtx_part,
6092 validate_replace_rtx_part_nosimplify): Declare.
6093 * rtl.c (rtx_equal_p_cb): New.
6094 (rtx_equal_p): Use it.
6095 * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
6096 (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
6097 debug_bb_n_slim, debug_bb_slim, print_rtl_slim): Likewise.
8a88c276 6098 * vecprim.h: Add a vector type for unsigned int.
e855c69d
AB
6099 * haifa-sched.c: Include vecprim.h and cfgloop.h.
6100 (issue_rate, sched_verbose_param, note_list, dfa_state_size,
6101 ready_try, cycle_issued_insns, spec_info): Make global.
6102 (readyp): Initialize.
6103 (dfa_lookahead): New global variable.
6104 (old_max_uid, old_last_basic_block): Remove.
6105 (h_i_d): Make it a vector.
6106 (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
6107 through HID macro.
6108 (after_recovery, adding_bb_to_current_region_p):
6109 New variables to handle correct insertion of the recovery code.
6110 (struct ready_list): Move declaration to sched-int.h.
6111 (rgn_n_insns): Removed.
6112 (rtx_vec_t): Move to sched-int.h.
6113 (find_insn_reg_weight): Remove.
6114 (find_insn_reg_weight1): Rename to find_insn_reg_weight.
6115 (haifa_init_h_i_d, haifa_finish_h_i_d):
6116 New functions to initialize / finalize haifa instruction data.
6117 (extend_h_i_d, init_h_i_d): Rewrite.
6118 (unlink_other_notes): Move logic to add_to_note_list. Handle
6119 selective scheduler.
6120 (ready_lastpos, ready_element, ready_sort, reemit_notes,
6121 find_fallthru_edge): Make global, remove static prototypes.
6122 (max_issue): Make global. Add privileged_n and state parameters. Use
8a88c276 6123 them.
e855c69d
AB
6124 (extend_global, extend_all): Removed.
6125 (init_before_recovery): Add new param. Fix the handling of the case
6126 when we insert a recovery code before the EXIT which has a predecessor
6127 with a fallthrough edge to it.
6128 (create_recovery_block): Make global. Rename to
6129 sched_create_recovery_block. Update.
6130 (change_pattern): Rename to sched_change_pattern. Make global.
6131 (speculate_insn): Rename to sched_speculate_insn. Make global.
6132 Split haifa-specific functionality into ...
6133 (haifa_change_pattern): New static function.
6134 (sched_extend_bb): New static function.
6135 (sched_init_bbs): New function.
6136 (current_sched_info): Change type to struct haifa_sched_info.
6137 (insn_cost): Adjust for selective scheduling.
6138 (dep_cost_1): New function. Move logic from ...
6139 (dep_cost): ... here.
6140 (dep_cost): Use dep_cost_1.
6141 (contributes_to_priority_p): Use sched_deps_info instead of
6142 current_sched_info.
6143 (priority): Adjust to work with selective scheduling. Process the
6144 corner case when all dependencies don't contribute to priority.
6145 (rank_for_schedule): Use ds_weak instead of dep_weak.
6146 (advance_state): New function. Move logic from ...
6147 (advance_one_cycle): ... here.
6148 (add_to_note_list, concat_note_lists): New functions.
6149 (rm_other_notes): Make static. Adjust for selective scheduling.
6150 (remove_notes, restore_other_notes): New functions.
6151 (move_insn): Add two arguments. Update assert. Don't call
6152 reemit_notes.
6153 (choose_ready): Remove lookahead variable, use dfa_lookahead.
6154 Remove more_issue, max_points. Move the code to initialize
6155 max_lookahead_tries to max_issue.
6156 (schedule_block): Remove rgn_n_insns1 parameter. Don't allocate
6157 ready. Adjust use of move_insn. Call restore_other_notes.
6158 (luid): Remove.
6159 (sched_init, sched_finish): Move Haifa-specific initialization/
6160 finalization to ...
6161 (haifa_sched_init, haifa_sched_finish): ... respectively.
6162 New functions.
6163 (setup_sched_dump): New function.
6164 (haifa_init_only_bb): New static function.
6165 (haifa_speculate_insn): New static function.
02bb8bce 6166 (try_ready): Use haifa_* instead of speculate_insn and change_pattern.
e855c69d
AB
6167 (extend_ready, extend_all): Remove.
6168 (sched_extend_ready_list, sched_finish_ready_list): New functions.
6169 (create_check_block_twin, add_to_speculative_block): Use
6170 haifa_insns_init instead of extend_global. Update to use new
6171 initialization functions. Change parameter. Factor out code from
6172 create_check_block_twin to ...
6173 (sched_create_recovery_edges) ... this new function.
6174 (add_block): Remove.
6175 (sched_scan_info): New.
6176 (extend_bb): Use sched_scan_info.
6177 (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
6178 static functions for walking through scheduling region.
6179 (sched_luids): New vector variable to replace uid_to_luid.
6180 (luids_extend_insn): New function.
6181 (sched_max_luid): New variable.
6182 (luids_init_insn): New function.
6183 (sched_init_luids, sched_finish_luids): New functions.
6184 (insn_luid): New debug function.
6185 (sched_extend_target): New function.
6186 (haifa_init_insn): New static function.
6187 (sched_init_only_bb): New hook.
6188 (sched_split_block): New hook.
6189 (sched_split_block_1): New function.
6190 (sched_create_empty_bb): New hook.
8a88c276 6191 (sched_create_empty_bb_1): New function.
e855c69d
AB
6192 (common_sched_info, ready): New global variables.
6193 (current_sched_info_var): Remove.
8a88c276
AS
6194 (move_block_after_check): Use common_sched_info.
6195 (haifa_luid_for_non_insn): New static function.
02bb8bce 6196 (init_before_recovery): Use haifa_init_only_bb instead of add_block.
e855c69d
AB
6197 (increase_insn_priority): New.
6198 * modulo-sched.c: (issue_rate): Remove static declaration.
6199 (sms_sched_info): Change type to haifa_sched_info.
6200 (sms_sched_deps_info, sms_common_sched_info): New variables.
6201 (setup_sched_infos): New.
6202 (sms_schedule): Initialize them. Call haifa_sched_init/finish.
6203 Do not call regstat_free_calls_crossed.
6204 (sms_print_insn): Use const_rtx.
6205 * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
6206 PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
6207 PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
6208 PARAM_SCHED_MEM_TRUE_DEP_COST): New.
6209 * sched-deps.c (sched_deps_info): New. Update all relevant uses of
6210 current_sched_info to use it.
6211 (enum reg_pending_barrier_mode): Move to sched-int.h.
6212 (h_d_i_d): New variable. Initialize to NULL.
6213 ({true, output, anti, spec, forward}_dependency_cache): Initialize
6214 to NULL.
6215 (estimate_dep_weak): Remove static declaration.
6216 (sched_has_condition_p): New function. Adjust users of
6217 sched_get_condition to use it instead.
6218 (conditions_mutex_p): Add arguments indicating which conditions are
6219 reversed. Use them.
6220 (sched_get_condition_with_rev): Rename from sched_get_condition. Add
6221 argument to indicate whether returned condition is reversed. Do not
6222 generate new rtx when condition should be reversed; indicate it by
6223 setting new argument instead.
6224 (add_dependence_list_and_free): Add deps parameter.
6225 Update all users. Do not free dependence list when
6226 deps context is readonly.
6227 (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
6228 contexts.
6229 (remove_from_dependence_list, remove_from_both_dependence_lists): New.
8a88c276 6230 (remove_from_deps): New. Use the above functions.
e855c69d
AB
6231 (cur_insn, can_start_lhs_rhs_p): New static variables.
6232 (add_or_update_back_dep_1): Initialize present_dep_type.
6233 (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
6234 haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
6235 haifa_note_dep): New functions implementing dependence hooks for
6236 the Haifa scheduler.
6237 (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
6238 note_dep): New functions.
6239 (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
6240 functions.
6241 (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
6242 (free_deps): Initialize deps->reg_last.
6243 (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
6244 sched_analyze_insn): Update to use dependency hooks infrastructure
6245 and readonly contexts.
6246 (deps_analyze_insn): New function. Move part of logic from ...
6247 (sched_analyze): ... here. Also move some logic to ...
6248 (deps_start_bb): ... here. New function.
6249 (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
6250 sel_sched_p.
6251 (sched_deps_init): New function. Move code from ...
6252 (init_dependency_caches): ... here. Remove.
6253 (init_deps_data_vector): New.
6254 (sched_deps_finish): New function. Move code from ...
6255 (free_dependency_caches): ... here. Remove.
6256 (init_deps_global, finish_deps_global): Adjust for use with
6257 selective scheduling.
6258 (get_dep_weak): Move logic to ...
6259 (get_dep_weak_1): New function.
6260 (ds_merge): Move logic to ...
6261 (ds_merge_1): New static function.
6262 (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
6263 (ds_get_max_dep_weak): New function.
6264 * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
6265 (n_insns): Rename to rgn_n_insns.
6266 (debug_ebb_dependencies): New function.
6267 (init_ready_list): Use it.
6268 (begin_schedule_ready): Use sched_init_only_bb.
6269 (ebb_print_insn): Indicate when an insn starts a new cycle.
6270 (contributes_to_priority, compute_jump_reg_dependencies,
6271 add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
6272 (add_block1): Remove to ebb_add_block.
6273 (ebb_sched_deps_info, ebb_common_sched_info): New variables.
6274 (schedule_ebb): Initialize them. Use remove_notes instead of
6275 rm_other_notes. Use haifa_local_init/finish.
6276 (schedule_ebbs): Use haifa_sched_init/finish.
6277 * sched-int.h: Include vecprim.h, remove rtl.h.
6278 (struct ready_list): Delete declaration.
6279 (sched_verbose_param, enum sched_pass_id_t,
6280 bb_vec_t, insn_vec_t, rtx_vec_t): New.
6281 (struct sched_scan_info_def): New structure.
6282 (sched_scan_info, sched_scan, sched_init_bbs,
6283 sched_init_luids, sched_finish_luids, sched_extend_target,
6284 haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
6285 (struct common_sched_info_def): New.
6286 (common_sched_info, haifa_common_sched_info,
6287 sched_emulate_haifa_p): Declare.
6288 (sel_sched_p): New.
6289 (sched_luids): Declare.
6290 (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
6291 (sched_max_luid, insn_luid): Declare.
6292 (note_list, remove_notes, restore_other_notes, bb_note): Declare.
6293 (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
6294 print_insn, print_pattern, print_value, haifa_classify_insn,
6295 sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
6296 setup_sched_dump, sched_init, sched_finish,
6297 sel_insn_is_speculation_check): Export.
6298 (struct ready_list): Move from haifa-sched.c.
6299 (ready_try, ready, max_issue): Export.
6300 (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
6301 sched_init_only_bb, sched_split_block, sched_split_block_1,
6302 sched_create_empty_bb, sched_create_empty_bb_1,
6303 sched_create_recovery_block, sched_create_recovery_edges): Export.
6304 (enum reg_pending_barrier_mode): Export.
6305 (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
6306 (deps_t): New.
6307 (struct sched_info): Rename to haifa_sched_info. Use const_rtx for
6308 print_insn field. Move add_block and fix_recovery_cfg to
4ae8027b
UB
6309 common_sched_info_def. Move compute_jump_reg_dependencies,
6310 use_cselib ...
e855c69d
AB
6311 (struct sched_deps_info_def): ... this new structure.
6312 (sched_deps_info): Declare.
6313 (struct spec_info_def): Remove weakness_cutoff, add
6314 data_weakness_cutoff and control_weakness_cutoff.
6315 (spec_info): Declare.
6316 (struct _haifa_deps_insn_data): Split from haifa_insn_data. Add
6317 dep_count field.
6318 (struct haifa_insn_data): Rename to struct _haifa_insn_data.
6319 (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
6320 (current_sched_info): Change type to struct haifa_sched_info.
6321 (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
6322 (h_d_i_d): New variable.
6323 (HDID): New accessor macro.
6324 (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
6325 (HID): New accessor macro. Rewrite h_i_d accessor macros through HID
6326 and HDID.
6327 (IS_SPECULATION_CHECK_P): Update for selective scheduler.
6328 (enum SCHED_FLAGS): Update for selective scheduler.
6329 (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
6330 (init_dependency_caches, free_dependency_caches): Delete declarations.
6331 (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
6332 estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
6333 ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
6334 sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
6335 haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
6336 ds_to_dt): Export.
6337 (rm_other_notes): Delete declaration.
6338 (schedule_block): Remove one argument.
6339 (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
6340 ready_element, ready_lastpos, sched_extend_ready_list,
6341 sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
6342 concat_note_lists): Export.
6343 (struct region): Move from sched-rgn.h.
6344 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
6345 RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
6346 BLOCK_TO_BB, CONTAINING_RGN): Export.
6347 (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
6348 (current_nr_blocks, current_blocks, target_bb): Likewise.
6349 (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
6350 sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
6351 sched_rgn_local_init, extend_regions,
6352 rgn_make_new_region_out_of_new_block, compute_priorities,
6353 debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
6354 extend_rgns, deps_join rgn_setup_common_sched_info,
6355 rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
6356 dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
8a88c276 6357 (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
e855c69d
AB
6358 increase_insn_priority): Likewise.
6359 * sched-rgn.c: Include sel-sched.h.
6360 (ref_counts): New static variable. Use it ...
6361 (INSN_REF_COUNT): ... here. Rewrite and move closer to uses.
6362 (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
6363 (sched_is_disabled_for_current_region_p): Delete static declaration.
6364 (struct region): Move to sched-int.h.
6365 (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
6366 ebb_head): Define and initialize.
6367 (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
6368 BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
6369 BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
6370 sched-int.h.
6371 (find_single_block_region): Add new argument to indicate that EBB
6372 regions should be constructed.
6373 (debug_live): Delete declaration.
4ae8027b
UB
6374 (current_nr_blocks, current_blocks, target_bb):
6375 Remove static qualifiers.
e855c69d
AB
6376 (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
6377 declaration.
6378 (init_regions): Delete declaration.
6379 (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
6380 rgn_estimate_number_of_insns): New.
6381 (too_large): Use estimate_number_of_insns.
6382 (haifa_find_rgns): New. Move the code from ...
6383 (find_rgns): ... here. Call either sel_find_rgns or haifa_find_rgns.
6384 (free_trg_info): New.
6385 (compute_trg_info): Allocate candidate tables here instead of ...
6386 (init_ready_list): ... here.
6387 (rgn_print_insn): Use const_rtx.
6388 (contributes_to_priority, extend_regions): Delete static declaration.
6389 (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
6390 (add_block1): Rename to rgn_add_block.
6391 (debug_rgn_dependencies): Delete static qualifier.
6392 (new_ready): Use sched_deps_info. Simplify.
6393 (rgn_common_sched_info, rgn_const_sched_deps_info,
4ae8027b
UB
6394 rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info):
6395 New.
e855c69d
AB
6396 (region_sched_info): Rename to rgn_const_sched_info.
6397 (deps_join): New, extracted from ...
6398 (propagate_deps): ... here.
6399 (compute_block_dependences, debug_dependencies): Update for selective
6400 scheduling.
6401 (free_rgn_deps, compute_priorities): New functions.
6402 (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
6403 sched_rgn_compute_dependencies): New functions.
6404 (schedule_region): Use them.
6405 (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
6406 rgn_setup_common_sched_info, rgn_setup_sched_infos):
6407 New functions.
6408 (schedule_insns): Call new functions that were split out.
6409 (rgn_make_new_region_out_of_new_block): New.
6410 (get_rgn_sched_max_insns_priority): New.
6411 (rest_of_handle_sched, rest_of_handle_sched2): Call selective
6412 scheduling when appropriate.
6413 * sched-vis.c: Include insn-attr.h.
6414 (print_value, print_pattern): Make global.
6415 (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
6416 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
6417 TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
6418 TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
6419 TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
6420 TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
6421 hooks. Initialize them to 0.
6422 (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
6423 * target.h (struct gcc_target): Add them. Rename gen_check field to
6424 gen_spec_check.
6425 * flags.h (sel_sched_switch_set): Declare.
6426 * opts.c (sel_sched_switch_set): New variable.
6427 (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
6428 pipelining is disabled from command line.
6429 (common_handle_option): Record whether selective scheduling is
6430 requested from command line.
6431 * doc/invoke.texi: Document new flags and parameters.
6432 * doc/tm.texi: Document new target hooks.
4ae8027b
UB
6433 * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to
6434 ia64_gen_check.
e855c69d
AB
6435 (dfa_state_size): Do not declare locally.
6436 * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
6437 * config/rs6000/rs6000.c (rs6000_init_sched_context,
6438 rs6000_alloc_sched_context, rs6000_set_sched_context,
6439 rs6000_free_sched_context): New functions.
6440 (struct _rs6000_sched_context): New.
6441 (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
6442 scheduling.
8a88c276 6443 (rs6000_sched_finish): Do not run for selective scheduling.
e855c69d 6444
899cc0f4
JH
64452008-08-31 Jan Hubicka <jh@suse.cz>
6446
6447 * frv.c (frv_rtx_costs): Update forward declaration.
6448 * spu.c (spu_rtx_costs): Likewise.
6449 * pdp11.c: Include df.h
6450 (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
6451 * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
6452 (m68hc11_rtx_costs_1): Fix call of rtx_cost.
6453 * iq2000.c (iq2000_address_cost): Add speed argument.
6454 (iq2000_rtx_costs): Likewise.
6455 * mn10300.c (mn10300_address_cost_1): Remove speed argument;
6456 update call of mn10300_address_cost.
6457 * mcore.c: Include df.h
6458 (mcore_rtx_costs): Update prototype.
6459 * score3.c: Include df.h
6460 (score3_rtx_costs): Remove speed argument.
6461 * score7.c: Include df.h
6462 (score7_address_cost): Remove speed argument.
6463 * score-protos.h (score_address_cost): Update prototype.
6464 * score.c: Include df.h
6465 (score_rtx_costs): Update call of costs functions.
6466 * v850.c (v850_rtx_costs): Add bool argument.
6467
cd6b7bc6
HPN
64682008-08-31 Hans-Peter Nilsson <hp@axis.com>
6469
6470 * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
6471
9e2af376
AL
64722008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
6473
6474 * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
6475 * config/i386/gthr-win32.c (__gthread_setspecific): Same.
6476
d89f0ad6
AL
64772008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
6478
6479 * mkmap-flat.awk: Add option pe_dll.
6480 * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
6481 * config/i386/t-cygwin (SHLIB_LC): Add.
6482 * config/i386/t-mingw32 (SHLIB_LC): Add.
6483 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
6484 (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
6485 (LINK_SPEC): Support libgcc_s.
6486 (LIBGCC_SPEC): Support libgcc_s.
6487 (LIBGCC_SONAME): New.
6488
a065d52e
JH
64892008-08-31 Jan Hubicka <jh@suse.cz>
6490
3e196fa9
JH
6491 * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
6492 mistakely had old version of patch.
6493
a065d52e
JH
6494 * ipa-cp.c (ipcp_need_original_clone_p): Remove.
6495 (ipcp_estimate_growth): New.
6496 (ipcp_insert_stage): Use ipcp_estimate_growth.
6497 * profile.c (branch_prob): When reading failed, do not consider
6498 profile as read.
6499
079990a2
JH
65002008-08-31 Jan Hubicka <jh@suse.cz>
6501
6502 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
6503 loop is optimized for speed.
6504
2b2587f5
RG
65052008-08-31 Richard Guenther <rguenther@suse.de>
6506
6507 PR middle-end/37289
6508 * fold-const.c (fold_binary): Retain conversions in folding
6509 ~A + 1 to -A.
6510
fb2fed03
JH
65112008-08-31 Jan Hubicka <jh@suse.cz>
6512
4ae8027b
UB
6513 * postreload-gcse.c (eliminate_partially_redundant_loads):
6514 Use optimize_bb_for_size_p.
fb2fed03
JH
6515 * predict.c (maybe_hot_frequency_p): Make inline.
6516 (maybe_hot_count_p): Break out from ...
6517 (maybe_hot_bb_p): ... this one.
6518 (maybe_hot_edge_p): Simplify.
6519 * basic-block.h (probably_cold_bb_p): Remove.
6520
847535b6
JJ
65212008-08-31 Jakub Jelinek <jakub@redhat.com>
6522
6523 PR target/37168
6524 * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
6525 prototype.
6526 * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
6527 * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
6528 Also split V4SFmode.
6529 * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
6530 vector float modes.
6531
277b4867
JH
65322008-08-31 Jan Hubicka <jh@suse.cz>
6533
6534 * predict.c (PROB_VERY_LIKELY): Make small enough so things
6535 become cold.
6536 * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
6537
08ab58b3
JJ
65382008-08-31 Jakub Jelinek <jakub@redhat.com>
6539
8518c095
JJ
6540 PR debug/37287
6541 * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
6542 add source coords.
6543
08ab58b3
JJ
6544 * dwarf2out.c (native_encode_initializer): Subtract min_index for
6545 non-range array index. Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
6546
1f494b6d
JH
65472008-08-31 Jan Hubicka <jh@suse.cz>
6548
6549 * sparc.h (BRANCH_COST): Fix macro definition.
6550 * avr.c (avr_operand_rtx_cost): Add speed argument.
6551 (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
6552
f5e85907
RG
65532008-08-31 Richard Guenther <rguenther@suse.de>
6554
6555 * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
6556 types instead of operands. Re-instantiate verifying of
6557 binary expression operands.
6558
f40751dd
JH
65592008-08-30 Jan Hubicka <jh@suse.cz>
6560
6561 * fwprop.c (should_replace_address): Add speed attribute.
6562 (PR_OPTIMIZE_FOR_SPEED): New flag.
6563 (propagate_rtx_1): Use it.
6564 (propagate_rtx): Set it.
6565 (try_fwprop_subst): Update call of rtx_costs.
6566 (forward_propagate_and_simplify): LIkewise.
6567 * hooks.c (hook_int_rtx_bool_0): New
6568 (hook_bool_rtx_int_int_intp_false): Replace by ...
6569 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
6570 * hooks.h (hook_int_rtx_bool_0): New
6571 (hook_bool_rtx_int_int_intp_false): Replace by ...
6572 (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
6573 * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
6574 (prepare_cmp_insn): UPdate call of rtx_cost.
6575 * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
6576 (reload_cse_simplify_operands): Update call of rtx_cost.
6577 (reload_cse_move2add): call of rtx_cost.
6578 * target.h (struct gcc_target): Update rtx_costs and address_costs.
6579 * rtlanal.c (rtx_cost): Add speed argument.
6580 (address_cost): Add speed argument
6581 (default_address_cost): Likewise.
6582 (insn_rtx_cost): Likewise.
6583 * cfgloopanal.c (seq_cost): Add speed argument.
6584 (target_reg_cost, target_spill_cost): Turn to array.
6585 (init_set_costs): Update for speed.
6586 (estimate_reg_pressure_cost): Add speed argument.
6587 * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
6588 * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
6589 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
6590 (seq_cost): Add speed argument.
6591 (computation_cost): Add speed arugment.
6592 (add_cost, multiply_by_const, get_address_cost): add speed argument.
6593 (force_expr_to_var_cost): Update for profile info.
6594 (force_var_cost): Likewise.
6595 (split_address_cost): Likewise.
6596 (ptr_difference_cost): Likewise.
6597 (difference_cost): Likewise.
6598 (get_computation_cost_at): Likewise.
6599 (determine_iv_cost): Likewise.
6600 (ivopts_global_cost_for_size): Likewise.
6601 (rewrite_use_address): Likewise.
6602 (tree_ssa_iv_optimize_loop): Initialize speed field.
6603 * cse.c (optimize_this_for_speed_p): New static var.
6604 (notreg_cost): Update call of rtx_cost.
6605 (cse_extended_basic_block): set optimize_this_for_speed_p.
6606 * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
6607 (noce_try_cmove_arith): Likewise.
6608 (noce_try_sign_mask): LIkewise.
6609 * expr.c (compress_float_constant): Update rtx_cost calls.
02bb8bce
UB
6610 * tree-ssa-address.c (most_expensive_mult_to_index): Add speed
6611 argument.
f40751dd
JH
6612 (addr_to_parts): Likewise.
6613 (create_mem_ref): Likewise.
6614 * dse.c (find_shift_sequence): Add speed argument.
6615 (replace_read): Update call.
6616 * calls.c (precompute_register_parameters): Update call of rtx_cost.
6617 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
6618 * neg_cost, shift_cost, shiftadd_cost,
6619 shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
6620 mul_highpart_cost): Increase dimension.
6621 (init_expmed): Initialize for both size and speed.
6622 (expand_shift): Use profile.
6623 (synth_mult): Use profile.
6624 (choose_mult_variant): Use profile.
6625 (expand_mult): Use profile.
6626 (expand_mult_highpart_optab): Use profile.
6627 (expand_mult_highpart): Use profile.
6628 (expand_smod_pow2): Use profile.
6629 (expand_divmod): Use profile.
02bb8bce
UB
6630 * simplify-rtx.c (simplify_binary_operation_1): Update call of
6631 rtx_cost.
f40751dd
JH
6632 * loop-invariant.c (create_new_invariant): Use profile.
6633 (gain_for_invariant): Add speed parameter.
6634 (best_gain_for_invariant): Likewise.
6635 (find_invariants_to_move): Likewise.
6636 (move_single_loop_invariants): Set it.
6637 * target-def.h (TARGET_RTX_COSTS): Use hook.
6638 * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
6639 (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
6640 * output.h (default_address_cost): Update prototype.
6641 * combine.c (optimize_this_for_speed_p): New static var.
6642 (combine_validate_cost): Update call of rtx_cost.
6643 (combine_instructions): Set optimize_this_for_speed_p.
6644 (expand_compound_operation): Update call of rtx_cost.
6645 (make_extraction):Update call of rtx_cost.
6646 (force_to_mode):Update call of rtx_cost.
6647 (distribute_and_simplify_rtx):Update call of rtx_cost.
6648 * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
6649 (estimate_reg_pressure_cost): Update prototype.
6650 * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
6651 * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
6652 Remove.
6653 * config/alpha/alpha.c (alpha_rtx_costs): Update.
6654 (alpha_rtx_costs): Update.
6655 * config/frv/frv.c (frv_rtx_costs): Update.
6656 * config/s390/s390.c (s390_rtx_costs): Update.
6657 * config/m32c/m32c.c (m32c_memory_move_cost): Update.
6658 (m32c_rtx_costs): Update.
6659 * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
6660 (spu_rtx_costs): Update.
6661 * config/sparc/sparc.c (sparc_rtx_costs): Update.
6662 * config/m32r/m32r.c (m32r_rtx_costs): Update.
6663 * config/i386/i386.c (:ix86_address_cost): Update.
6664 (ix86_rtx_costs): Update.
6665 * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
6666 * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
6667 * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
6668 * config/crx/crx.c (crx_address_cost): Update.
6669 * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
6670 * config/stormy16/stormy16.c
6671 (xstormy16_address_cost, xstormy16_rtx_costs): Update.
6672 * config/m68hc11/m68hc11.c
6673 (m68hc11_address_cost, m68hc11_rtx_costs): Update.
6674 * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
4ae8027b
UB
6675 * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost):
6676 Update.
6677 * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs):
6678 Update
f40751dd
JH
6679 * config/ia64/ia64.c (ia64_rtx_costs): Update.
6680 * config/m68k/m68k.c (m68k_rtx_costs): Update.
6681 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
6682 * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
6683 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
6684 (mcore_rtx_costs): update.
6685 * config/score/score3.c (score3_rtx_costs): Update.
6686 * config/score/score7.c (score7_rtx_costs): Update.
6687 * config/score/score3.h (score3_rtx_costs):Update.
6688 * config/score/score7.h (score7_rtx_costs): Update.
6689 * config/score/score.c (score_rtx_costs): Update.
6690 * config/arm/arm.c (arm_address_cost): Update.
6691 (arm_rtx_costs_1): Update.
6692 (arm_rtx_costs_1): Update.
6693 (arm_size_rtx_costs): Update.
6694 (arm_size_rtx_costs): Update.
6695 (arm_size_rtx_costs): Update.
6696 (arm_xscale_rtx_costs): Update.
6697 (arm_thumb_address_cost): Update.
6698 * config/pa/pa.c (hppa_address_cost): Update.
6699 * config/mips/mips.c (mips_rtx_costs): Update.
6700 * config/vax/vax.c (vax_address_cost): Update.
6701 * config/h8300/h8300.c (h8300_shift_costs): Update.
6702 (h8300_rtx_costs): Update.
6703 * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
6704 (v850_rtx_costs): Update.
6705 * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
6706 * config/bfin/bfin.c
6707 (bfin_address_cost): Update.
6708 (bfin_rtx_costs): Update.
6709 * stmt.c (lshift_cheap_p): Update.
6710
6aebac53
AP
67112008-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
6712
6713 PR middle-end/36444
6714 * expmed.c (extract_bit_field_1): Check the mode size to make
6715 sure the vector modes have the same size.
6716
a4cbe62d
MM
67172008-08-29 Michael Meissner <gnu@the-meissners.org>
6718
6719 * dojump.c (top level): Include basic-block.h to declare
6720 optimize_insn_for_speed_p
6721
6722 * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
6723
5779e713
MM
6724 * opts.h (CL_SAVE): New option class for marking options that are
6725 target specific options usable in the target attribute.
6726 (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
6727
6728 * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
6729 can easily find the target specific options that are safe to use
6730 in the attribute or pragma.
6731
6732 * attribs.c (decl_attributes): Change #pragma GCC option to
6733 #pragma GCC target, and attribute((option(...))) to
6734 attribute((target(...))).
6735
6736 * doc/extend.texi (target attribute): Change from option
6737 attribute. Delete push/pop/reset.
6738 (#pragma GCC target): Change from #pragma GCC option. Delete
6739 push/pop/reset.
6740 (#pragma GCC push_options): Document new pragma.
6741 (#pragma GCC pop_options): Document new pragma.
6742 (#pragma GCC reset_options): Document new pragma.
6743
6744 * targhooks.c (default_target_option_valid_attribute_p): Add
6745 warning about port not supporting target attributes.
6746 (default_target_option_pragma_parse): New function, warn about
6747 #pragma GCC target not being supported.
6748
6749 * targhooks.h (default_target_option_pragma_parse): Add
6750 declaration.
6751
6752 * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
6753 TI_CURRENT_OPTION_PRAGMA.
6754 (current_target_pragma): Rename from current_option_pragma.
6755
6756 * target.h: (struct target_option): Delete booleans for changing
6757 the optimization level on hot/cold functions. Change signature of
6758 pragma_parse hook to take a second tree.
6759
6760 * c-tree.h (c_builtin_function_ext_scope): Add declaration.
6761
6762 * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
6763 that the declaration is done at global scope.
6764
6765 * langhooks.c (add_builtin_function_common): Move most of the code
6766 from add_builtin_function here, calling the hook passed in.
6767 (add_builtin_function): Call add_builtin_function_common with
6768 standard builtin hook.
6769 (add_builtin_function_ext_scope): New function to add builtins to
6770 global scope.
6771
6772 * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
6773 hook.
6774 (add_builtin_function_ext_scope): Add declaration.
6775
6776 * c-pragma.c (handle_pragma_target): Rename from
6777 handle_pragma_option, #pragma GCC option is now #pragma GCC
6778 target. Move warning about port not supporting target options to
6779 default pragma parse hook. Remove push/pop/reset from this
6780 pragma.
6781 (handle_pragma_optimize): Remove push/pop/reset from this pragma.
6782 (option_stack): Delete static variable.
6783 (optimize_stack): Ditto.
6784 (optons_stack): New stack of saved target and optimization
6785 options.
6786 (handle_pragma_push_options): New function to handle pushing both
6787 target and optimization options.
6788 (handle_pragma_pop_options): New function to handle popping both
6789 target and optimization options.
6790 (handle_pragma_reset_options): New function to handle resetting
6791 both target and optimization options to their initial state.
6792 (init_pragma): Rename handle_pragma_option to
6793 handle_pragma_target. Add support for push_options, pop_options,
6794 and reset_options pragmas.
6795
6796 * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
6797 default_target_option_pragma_parse.
6798 (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
6799 default_target_option_valid_attribute_p.
6800 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
6801 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
6802 (TARGET_OPTION_HOOKS): Delete the fields for whether to change
6803 optimization level on hot/cold functions.
6804
6805 * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
6806 if the caller and callee have different optimization levels.
6807
6808 * c-common.c (handle_target_attribute): Rename from
6809 handle_option_attribute, attribute((option(...))) is now
6810 attribute((target(...))). Move warning if the port does not
6811 support target attributes to the default hook.
6812 (handle_hot_attribute): Delete code to change the optimization
6813 level of hot functions.
6814 (handle_cold_attribute): Ditto.
6815
6816 * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
6817 argument that is the binary tree options to use if there are no
6818 arguments. Call ix86_valid_target_attribute_tree instead of
6819 ix86_valid_option_attribute_tree.
6820 (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
6821 (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
6822 ix86_pragma_option_parse.
6823
6824 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
6825 Rename from ix86_valid_option_attribute_tree.
6826
6827 * config/i386/i386.c (ix86_add_new_builtins): New function to add
6828 new builtins when the ISA changes.
6829 (ix86_valid_target_attribute_tree): Rename from
6830 ix86_valid_option_attribute_tree. Change callers. If the
6831 function specified optimization options, use those as the starting
6832 point before setting up the target attributes. If the
6833 optimization options were changed in the course of setting the
6834 target attributes, record the new optimization options.
6835 (ix86_valid_target_attribute_tree_inner_p): Rename from
6836 ix86_valid_option_attribute_tree_inner_p. Change callers. Call
6837 ix86_add_new_builtins if the ISA changed.
6838 (ix86_valid_target_attribute_p): Rename from
6839 ix86_valid_option_attribute_p. Change callers.
6840 (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
6841 __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
6842 as delayed builtin functions.
6843 (struct builtin_isa): New structure to record builtin functions
6844 that should be delayed until the ISA for that function is used.
6845 (ix86_builtins_isa): Change from int to struct to track builtin
6846 functions we want to declare at some point.
6847 (def_builtin): If the front end can delay defining the builtin
6848 functions, don't create builtins for ISAs not part of the default
6849 options.
6850 (def_builtin_const): Ditto.
6851 (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
6852 __builtin_ia32_pcmov_v2di to be different builtin functions.
6853 (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
6854 a structure instead of an int.
6855 (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
6856 ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
6857 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
6858 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
6859
6860 * config/ia64/ia64.h
6861 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
6862 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
6863
6864 * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
6865 hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
6866 (LANG_HOOKS_INITIALIZER): Add
6867 LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
6868
06b322fa
KK
68692008-08-30 Kaz Kojima <kkojima@gcc.gnu.org>
6870
6871 PR target/37270
6872 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
6873 the reload address with the index register for SFmode
6874 access with a displacement.
6875
3a4fd356
JH
68762008-08-30 Jan Hubicka <jh@suse.cz>
6877
6878 * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
6879 * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
6880 * dojump.c (do_jump): Likewise.
6881 * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
6882 (note-if_info): Add BRANCH_COST.
4ae8027b
UB
6883 (noce_try_store_flag_constants, noce_try_addcc,
6884 noce_try_store_flag_mask, noce_try_cmove_arith, noce_try_cmove_arith,
6885 noce_try_cmove_arith, noce_find_if_block, find_if_case_1,
6886 find_if_case_2): Use computed branch cost.
3a4fd356
JH
6887 * expr.h (BRANCH_COST): Update default.
6888 * predict.c (predictable_edge_p): New function.
6889 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
6890 Update BRANCH_COST call.
6891 * basic-block.h (predictable_edge_p): Declare.
6892 * config/alpha/alpha.h (BRANCH_COST): Update.
6893 * config/frv/frv.h (BRANCH_COST): Update.
6894 * config/s390/s390.h (BRANCH_COST): Update.
6895 * config/spu/spu.h (BRANCH_COST): Update.
6896 * config/sparc/sparc.h (BRANCH_COST): Update.
6897 * config/m32r/m32r.h (BRANCH_COST): Update.
6898 * config/i386/i386.h (BRANCH_COST): Update.
02bb8bce
UB
6899 * config/i386/i386.c (ix86_expand_int_movcc): Update use of
6900 BRANCH_COST.
3a4fd356
JH
6901 * config/sh/sh.h (BRANCH_COST): Update.
6902 * config/pdp11/pdp11.h (BRANCH_COST): Update.
6903 * config/avr/avr.h (BRANCH_COST): Update.
6904 * config/crx/crx.h (BRANCH_COST): Update.
6905 * config/xtensa/xtensa.h (BRANCH_COST): Update.
6906 * config/stormy16/stormy16.h (BRANCH_COST): Update.
6907 * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
6908 * config/iq2000/iq2000.h (BRANCH_COST): Update.
6909 * config/ia64/ia64.h (BRANCH_COST): Update.
6910 * config/rs6000/rs6000.h (BRANCH_COST): Update.
6911 * config/arc/arc.h (BRANCH_COST): Update.
6912 * config/score/score.h (BRANCH_COST): Update.
6913 * config/arm/arm.h (BRANCH_COST): Update.
6914 * config/pa/pa.h (BRANCH_COST): Update.
6915 * config/mips/mips.h (BRANCH_COST): Update.
6916 * config/vax/vax.h (BRANCH_COST): Update.
6917 * config/h8300/h8300.h (BRANCH_COST): Update.
6918 * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
6919 * doc/invoke.texi (predictable-branch-cost-outcome): Document.
6920 * doc/tm.texi (BRANCH_COST): Update.
6921
b1bdaf40
ST
69222008-08-30 Samuel Tardieu <sam@rfc1149.net>
6923
6924 PR target/37283
6925 * config/arm/arm.c (arm_optimization_options): Set
6926 flag_section_anchors to 2 instead of 1 to distinguish it from
6927 -fsection-anchors given explicitely on the command line.
6928
a2a92083
RS
69292008-08-30 Richard Sandiford <rdsandiford@googlemail.com>
6930
6931 * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
6932 final insn of a split.
6933
8bcf15f6
JH
69342008-08-30 Jan Hubicka <jh@suse.cz>
6935
6936 * postreload-gcse.c (gate_handle_gcse2): Disable for functions
6937 optimized for speed.
6938 * final.c (compute_alignments): Use optimize_bb_for_size_p.
6939 * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
6940 * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
6941 flag_gcse_after_reload_set): New static vars.
6942 (common_handle_option): Enable those flags for profile-use.
6943 (decode_options): Remove optimize_size flags that are handled
6944 on higher granuality.
6945 * tree-vectorizer.c (vectorize_loops): Use
6946 optimize_loop_nest_for_speed_p.
6947 * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
6948 * tree-predcom.c (tree_predictive_commoning): Use
6949 optimize_loop_for_speed_p.
02bb8bce
UB
6950 * varasm.c (assemble_start_function): Use
6951 optimize_function_for_speed_p.
8bcf15f6
JH
6952 * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
6953 * predict.c (optimize_loop_for_speed_p): Fix walk.
6954
76718c16
JH
69552008-08-30 Jan Hubicka <jh@suse.cz>
6956
6957 * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
6958 functions.
6959 (cgraph_decide_inlining_of_small_function): Use edge->count to detect
6960 profile presence locally.
6961
109e637b
JM
69622008-08-29 Joseph Myers <joseph@codesourcery.com>
6963
6964 PR bootstrap/37086
6965 * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
6966 versions before 4.0.
6967
e7119705
JH
69682008-08-29 Jan Hubicka <jh@suse.cz>
6969
6970 * tree-inline.c (insert_init_stmt): Insert sequence even when
6971 not in SSA form.
6972
6528281d
JL
69732008-08-29 Jeff Law <law@redhat.com>
6974
6975 * mn10300.c (mn10300_secondary_reload_class): We need secondary
6976 reloads for AM33-2 if IN is a pseudo with an equivalent memory
6977 location and class is an FP register.
6978
041f300d
JH
69792008-08-29 Jan Hubicka <jh@suse.cz>
6980
6528281d
JL
6981 * see.c (see_merge_one_def_extension): Silence used uninitialized
6982 warning.
041f300d
JH
6983 * matrix-reorg.c (check_allocation_function): Likewise.
6984 * config/i386/driver-i386.c (detect_caches_amd): Likewise.
6985
a64f5186
JJ
69862008-08-29 Jakub Jelinek <jakub@redhat.com>
6987
bf09f0e0
JJ
6988 PR c/37261
6989 * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
6990 compute new & and | in type rather than TREE_TYPE (arg0).
6991
98c0cbd3
JJ
6992 * dwarf2out.c (fortran_common): Update comment.
6993 (gen_variable_die): Swap com_die and var_die variables in Fortran
6994 COMMON block handling code.
6995
de870512
JJ
6996 * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
6997
bd11e37d
JJ
6998 * dwarf2out.c (gen_const_die): New function.
6999 (size_of_die, value_format, output_die): Output larger
7000 dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
7001 (native_encode_initializer): New function.
7002 (tree_add_const_value_attribute): Call it.
7003 (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
7004
f51d8f1a
JJ
7005 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
7006 DECL_BY_REFERENCE decls don't pass TREE_READONLY and
7007 TREE_THIS_VOLATILE to add_type_attribute.
7008
b6b904bd
JJ
7009 * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
7010 types.
7011 (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
7012 types.
7013
2599ed92
JJ
7014 * dwarf2out.c (loc_by_reference): New function.
7015 (add_location_or_const_value_attribute): Use it.
7016
04e74e02
JJ
7017 PR fortran/23057
7018 * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
7019 as DW_TAG_variable children of DW_TAG_common_block rather than
7020 DW_TAG_member children. Put DW_AT_external to individual
7021 DW_TAG_variable DIEs, not to DW_TAG_common_block.
7022
25c29c56
JJ
7023 * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
7024 loc_descriptor_from_tree_1.
7025
a64f5186
JJ
7026 PR fortran/29635
7027 PR fortran/23057
7028 * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
7029 arguments to imported_module_or_decl.
7030 (debug_nothing_tree_tree): Removed.
7031 (debug_nothing_tree_tree_tree_bool): New prototype.
7032 * debug.c (do_nothing_debug_hooks): Adjust.
7033 (debug_nothing_tree_tree): Removed.
7034 (debug_nothing_tree_tree_tree_bool): New function.
7035 * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
7036 (gen_variable_die): Put all common vars for the
7037 same COMMON block under one DW_TAG_common_block.
7038 (declare_in_namespace): Return new context_die, for Fortran
7039 return the module DIE instead of adding extra declarations into
7040 the namespace.
7041 (gen_type_die_with_usage): Adjust declare_in_namespace caller.
7042 (gen_namespace_die): If is_fortran (), generate DW_TAG_module
7043 instead of DW_TAG_namespace. If DECL_EXTERNAL is set, add
7044 DW_AT_declaration.
7045 (dwarf2out_global_decl): Don't skip Fortran global vars.
7046 (gen_decl_die): Likewise. Adjust declare_in_namespace callers.
7047 (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
7048 If NAME is non-NULL, add DW_AT_name. If CHILD is non-NULL, put
7049 DW_TAG_imported_declaration as child of previous
7050 DW_TAG_imported_module.
7051 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
7052 * sdbout.c (sdb_debug_hooks): Likewise.
7053 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7054
ca30a539
JH
70552008-08-29 Jan Hubicka <jh@suse.cz>
7056
7057 * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
7058
7059 * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
7060 * ipa-cp.c (n_cloning_candidates): New static variable.
7061 (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
7062 (ipcp_print_all_lattices): Improve debug output.
7063 (ipcp_cloning_candidate_p): New function.
7064 (ipcp_initialize_node_lattices): Use it.
7065 (ipcp_init_stage): Do only analyzis here; prettier debug output.
7066 (ipcp_propagate_stage): Prettier debug output.
7067 (ipcp_iterate_stage): Initialize latices here; prettier debug output.
7068 (ipcp_print_all_structures): Remove.
7069 (ipcp_need_redirect_p): Test !n_cloning_candidates.
7070 (ipcp_insert_stage): Prettier debug output; call
7071 cgraph_remove_unreachable_nodes before propagating.
7072 (pass_ipa_cp): Schedule function removal pass.
7073 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
7074 debug output.
7075 (cgraph_maybe_hot_edge_p): Move to ...
7076 * predict.c (cgraph_maybe_hot_edge_p) ... here.
7077 * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
7078 (common_handle_option): Set them; enable ipa-cp when profiling.
7079 * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
7080 (ipa_print_all_jump_functions): Likewise.
7081 (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
7082 (ipa_print_node_params, ipa_print_all_params): New.
7083 * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
7084 ipa_print_all_param_flags): Remove.
7085 (ipa_print_node_params, ipa_print_all_params): New.
7086
a1f626ad
BW
70872008-08-29 Bob Wilson <bob.wilson@acm.org>
7088
7089 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
7090 change from 2008-04-03.
7091 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
7092
d7f2c74e
VM
70932008-08-29 Vladimir Makarov <vmakarov@redhat.com>
7094
7095 PR rtl-opt/37251
d7f2c74e
VM
7096 * ira-color.c (push_allocnos_to_stack): Truncate
7097 removed_splay_allocno_vec.
7098
03dd10d8
VM
70992008-08-29 Vladimir Makarov <vmakarov@redhat.com>
7100
7101 PR rtl-opt/37243
7102 * ira-color (ira_fast_allocation): Don't assign hard registers to
7103 global allocnos.
7104
c16eb95f
JH
71052008-08-29 Jan Hubicka <jh@suse.cz>
7106
7107 PR middle-end/37278
7108 * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
7109 for cold internal loops.
7110
13c6bff4
RG
71112008-08-29 Richard Guenther <rguenther@suse.de>
7112
7113 * tree-ssa-structalias.c (create_variable_info_for): Do not
7114 create fields for heap vars or vars with a noalias state.
7115 For NO_ALIAS_ANYTHING variables add a self-constraint, not one
7116 from ESCAPED.
7117
dce2b2f6
RG
71182008-08-29 Richard Guenther <rguenther@suse.de>
7119
7120 * common.opt (ftree-store-ccp): Mark as preserved for
7121 backward compatibility.
7122 * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
7123 * tree-pass.h (pass_store_ccp): Remove.
7124 * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
7125 (first_vdef): Remove declaration.
7126 (get_value_loaded_by): Likewise.
7127 * tree-ssa-ccp.c (do_store_ccp): Remove.
7128 (get_default_value): Simplify as do_store_ccp is always false
7129 now. Do not initialize mem_ref.
7130 (set_value_varying): Likewise.
7131 (canonicalize_float_value): Likewise.
7132 (set_lattice_value): Likewise.
7133 (likely_value): Likewise.
7134 (surely_varying_stmt_p): Likewise.
7135 (ccp_initialize): Likewise.
7136 (ccp_lattice_meet): Likewise.
7137 (ccp_visit_phi_node): Likewise.
7138 (ccp_fold): Likewise.
7139 (evaluate_stmt): Likewise.
7140 (visit_assignment): Likewise.
7141 (ccp_visit_stmt): Likewise.
7142 (execute_ssa_ccp): Fold into ...
7143 (do_ssa_ccp): ... this.
7144 (do_ssa_store_ccp): Remove.
7145 (gate_store_ccp): Likewise.
7146 (pass_store_ccp): Likewise.
7147 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
7148 initialize mem_ref.
7149 * tree-ssa-propagate.c (first_vdef): Remove.
7150 (get_value_loaded_by): Likewise.
7151 (replace_vuses_in): Likewise.
7152 (substitute_and_fold): Do not call replace_vuses_in.
7153 * opts.c (decode_options): Do not set flag_tree_store_ccp.
7154
443aa7d5
RG
71552008-08-29 Richard Guenther <rguenther@suse.de>
7156
7157 PR middle-end/37236
7158 * tree-ssa-structalias.c (intra_create_variable_infos): Mark
7159 PARAM_NOALIAS tags with is_heapvar.
7160 * tree-ssa-operands.c (access_can_touch_variable): Offset
7161 based tests do not apply for heapvars. Fix offset test.
7162
fcbe056b
JH
71632008-08-29 Jan Hubicka <jh@suse.cz>
7164
7165 * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
7166 (-fipa-cp-clone): Enabled by default at -O3.
7167 * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
7168 make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
7169
c6f7cfc1
JH
71702008-08-29 Jan Hubicka <jh@suse.cz>
7171
02bb8bce
UB
7172 * tree.c (build_function_type_skip_args,
7173 build_function_decl_skip_args): New functions.
7174 * tree.h (build_function_type_skip_args,
7175 build_function_decl_skip_args): Declare.
c6f7cfc1
JH
7176 * gimple.c (giple_copy_call_skip_args): New function.
7177 (giple_copy_call_skip_args): Declare.
7178
7179 * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
7180 * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
02bb8bce
UB
7181 (ipcp_node_modifiable_p): ... this one; use
7182 tree_versionable_function_p.
c6f7cfc1
JH
7183 (ipcp_create_replace_map): Improve debug output.
7184 (ipcp_need_redirect_p): Return false when not clonning.
7185 (ipcp_update_callgraph): Skip args.
7186 (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
7187 skip args.
7188 * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
7189 (save_inline_function_body): Update call of tree_function_versioning.
7190 * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
02bb8bce
UB
7191 * tree-inline.c (copy_arguments_for_versioning): Add skip_args
7192 argument.
c6f7cfc1
JH
7193 (tree_function_versioning): Likewise.
7194 * tree-inline.h (tree_function_versioning): Update prototype.
7195
efd8f750
JH
71962008-08-29 Jan Hubicka <jh@suse.cz>
7197
02bb8bce
UB
7198 * loop-unswitch.c (unswitch_single_loop): Use
7199 optimize_loop_for_speed_p.
4ae8027b
UB
7200 * tree-ssa-threadupdate.c (mark_threaded_blocks):
7201 Use optimize_function_for_size_p.
efd8f750 7202 * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
4ae8027b
UB
7203 * postreload-gcse.c (eliminate_partially_redundant_load):
7204 Use optimize_bb_for_size_p.
efd8f750
JH
7205 * value-prof.c (gimple_divmod_fixed_value_transform,
7206 gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
7207 gimple_stringops_transform): Use optimize_bb_for_size_p.
7208 * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
7209 * final.c (compute_alignments): Use optimize_function_for_size_p.
7210 * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
7211 (fold_builtin_strcpy, fold_builtin_fputs): Use
7212 optimize_function_for_size_p.
02bb8bce
UB
7213 * fold-const.c (tree_swap_operands_p): Use
7214 optimize_function_for_size_p.
efd8f750 7215 * recog.c (relax_delay_slots): Likewise.
4ae8027b
UB
7216 * tree-ssa-math-opts.c (replace_reciprocal):
7217 Use optimize_bb_for_speed_p.
efd8f750
JH
7218 (execute_cse_reciprocals): Use optimize_bb_for_size_p.
7219 * ipa-inline.c (cgraph_decide_recursive_inlining): Use
7220 optimize_function_for_size_p.
7221 (cgraph_decide_inlining_of_small_function): Use
7222 optimize_function_for_size_p.
7223 * global.c (find_reg): Use optimize_function_for_size_p.
4ae8027b
UB
7224 * opts.c (decode_options): Do not clear flag_tree_ch,
7225 flag_inline_functions, flag_unswitch_loops, flag_unroll_loops,
7226 flag_unroll_all_loops and flag_prefetch_loop_arrays. Those can
7227 work it out from profile.
efd8f750
JH
7228 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
7229 optimize_loop_for_speed_p.
02bb8bce
UB
7230 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
7231 Constify argument.
efd8f750
JH
7232 (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
7233 * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
02bb8bce
UB
7234 * tree-eh.c (decide_copy_try_finally): Use
7235 optimize_function_for_size_p.
efd8f750
JH
7236 * local-alloc.c (block_alloc): Pass BB pointer.
7237 (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
7238 * gcse.c (gcse_main): Use optimize_function_for_size_p.
4ae8027b
UB
7239 * loop-unroll.c (decide_unrolling_and_peeling):
7240 Use optimize_loop_for_size_p.
efd8f750
JH
7241 (decide_peel_completely): Likewise.
7242 * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
7243 optimize_loop_for_size_p.
7244 (vect_enhance_data_refs_alignment): Likewise.
7245 * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
4ae8027b
UB
7246 (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map):
7247 Update call.
efd8f750
JH
7248 * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
7249 (try_crossjump_bb): Use optimize_bb_for_size_p.
7250 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
7251 optimize_loop_for_speed_p.
7252 * bb-reorder.c (find_traces_1_round): Likewise.
7253 (copy_bb): Use optimize_bb_for_speed_p.
7254 (duplicate_computed_gotos): Likewise.
7255 * basic-block.h (optimize_loop_nest_for_size_p,
7256 optimize_loop_nest_for_speed_p): New.
7257 * stmt.c (expand_case): Use optimize_insn_for_size_p.
7258
e3536b82
TG
72592008-08-29 Tristan Gingold <gingold@adacore.com>
7260
7261 * gcov.c (main): Call expandargv.
7262
cc870036
JH
72632008-08-29 Jan Hubicka <jh@suse.cz>
7264
7265 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
7266 is not cold.
7267 * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
7268 Constify arguments.
7269 (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
7270 * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
7271 Constify.
7272 (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
7273
7299cb99
JH
72742008-08-29 Jan Hubicka <jh@suse.cz>
7275
7276 * tree-pass.h (pass_strip_predict_hints): Declare.
7277 * predict.c (strip_builtin_expect): Rename to ...
7278 (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
7279 (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
7280 (tree_estimate_probability): Do not strip builtin_expect.
7281 (pass_strip_predict_hints): New pass.
4ae8027b
UB
7282 * tree-inline.c (expand_call_inline): When inlining cold function,
7283 predict it as unlikely.
7299cb99
JH
7284 * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
7285
a4b93060
RG
72862008-08-29 Richard Guenther <rguenther@suse.de>
7287
7288 PR tree-optimization/37207
7289 * tree-vrp.c (extract_range_from_binary_expr): Also try
7290 to constant fold if only one of the operands is a constant.
7291
a0491ba7
NC
72922008-08-29 Nick Clifton <nickc@redhat.com>
7293
7294 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
7295 the same way as SYMBOL_REFs.
7296
1d29a58d
BW
72972008-08-28 Bob Wilson <bob.wilson@acm.org>
7298
7299 * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
7300
95f6fc60
AN
73012008-08-28 Adam Nemet <anemet@caviumnetworks.com>
7302
7303 * config/mips/mips.h (ISA_HAS_BBIT): New macro.
7304 * config/mips/mips.md (branch_likely): Remove const. Fix
7305 comment formatting.
7306 (define_delay for type "branch"): Change to only apply for branch
7307 with likely variant.
7308 (define_delay for type "branch" and "branch_likely" no). New delay
7309 definition.
7310 (equality_op): New code iterator.
7311 (bbv, bbinv): New code attributes.
7312 (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
7313 patterns.
7314
528c22f4 73152008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8a88c276 7316 Andrew Pinski <pinskia@gcc.gnu.org>
528c22f4
MLI
7317
7318 PR 18050
7319 * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
7320
1cd8b853
PC
73212008-08-28 Paolo Carlini <paolo.carlini@oracle.com>
7322
7323 * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
7324 rule that a symbolic constant must be defined and >= 0 for the
7325 corresponding facility to be present at compile-time.
7326 * gthr-posix.c: Likewise.
7327
d6d3e623
AN
73282008-08-28 Adam Nemet <anemet@caviumnetworks.com>
7329
7330 * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
7331 * config/mips/mips.md (D): New mode attribute.
7332 (mulsi3, muldi3): Merge it into ...
4ae8027b 7333 (mul<mode>3): ... new template. Use _mul3 ending for 3-op patterns.
d6d3e623
AN
7334 (muldi3_mul3): New pattern.
7335 (mulsi3_mult3): Rename to mulsi3_mul3.
7336
3debdc1e
JH
73372008-08-28 Jan Hubicka <jh@suse.cz>
7338
d6d3e623
AN
7339 * expmed.c (store_bit_field_1): Be prepared for movstrict expander
7340 to fail.
3debdc1e
JH
7341 * predict.c (always_optimize_for_size_p): Rename to ...
7342 (optimize_function_for_size): ... this one; make extern.
7343 (optimize_function_for_speed_p): New.
7344 (optimize_bb_for_size_p, optimize_bb_for_size_p,
7345 optimize_edge_for_size_p,optimize_edge_for_size_p,
7346 optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
7347 * basic-block.h (optimize_function_for_size_p,
7348 optimize_function_for_speed_p): Declare.
d6d3e623
AN
7349 * i386.md (optimize_size checks): Replace them by appropriate
7350 predicate.
3debdc1e
JH
7351 (standard_80387_constant_p, ix86_compute_frame_layout,
7352 ix86_expand_epilogue, ix86_decompose_address,
7353 print_operand, emit_i387_cw_initialization,
7354 inline_memory_move_cost, ix86_pad_returns,
7355 ix86_reorg): Replace optimize_size checks.
7356
eef302d2
RS
73572008-08-28 Richard Sandiford <rdsandiford@googlemail.com>
7358
7359 * rtl.h (simplify_subreg_regno): Declare.
7360 * rtlanal.c (simplify_subreg_regno): New function, split out from...
7361 * simplify-rtx.c (simplify_subreg): ...here.
7362 * reload.c (find_reloads): Use simplify_subreg_regno instead of
7363 subreg_offset_representable_p.
7364
1e053dfe
MLI
73652008-08-28 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7366
7367 PR c/30949
7368 * c-typeck.c (convert_for_assignment): Give a note describing what
7369 was passed and what was expected.
7370
31cb596a
JY
73712008-08-28 Joey Ye <joey.ye@intel.com>
7372
7373 * doc/extend.texi: Document AVX built-in functions.
7374 * doc/invoke.texi: Document -mavx.
7375
95879c72
L
73762008-08-28 H.J. Lu <hongjiu.lu@intel.com>
7377 Joey Ye <joey.ye@intel.com>
7378 Xuepeng Guo <xuepeng.guo@intel.com>
7379
7380 * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
7381
7382 * config/i386/cpuid.h (bit_FMA): New.
7383 (bit_XSAVE): Likewise.
7384 (bit_OSXSAVE): Likewise.
7385 (bit_AVX): Likewise.
7386
7387 * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
7388 define. Use ASM_OUTPUT_AVX_PREFIX.
7389
7390 * config/i386/gmmintrin.h: New.
7391
7392 * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
7393 (OPTION_MASK_ISA_AVX_SET): New.
7394 (OPTION_MASK_ISA_FMA_SET): Likewise.
7395 (OPTION_MASK_ISA_AVX_UNSET): Likewise.
7396 (OPTION_MASK_ISA_FMA_SET): Likewise.
7397 (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
7398 (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
7399 (pta_flags): Add PTA_AVX and PTA_FMA.
7400 (override_options): Handle PTA_AVX and PTA_FMA.
7401 (init_cumulative_args): Handle warn_avx.
7402 (classify_argument): Return 0 for COImode and OImode. Return
7403 1 and X86_64_AVX_CLASS for 256bit vector types.
7404 (examine_argument): Handle X86_64_AVX_CLASS.
7405 (construct_container): Likewise.
7406 (function_arg_advance_32): Pass OImode and 256bit vector types
7407 in AVX register.
7408 (function_arg_advance_64): Take a new argument to indicate if a
7409 parameter is named. Handle 256bit vector types. Return
7410 immediately for unnamed 256bit vector mode parameters.
7411 (function_arg_advance): Updated.
7412 (function_arg_32): Add comments for TImode. Handle OImode
7413 and 256bit vector types.
7414 (function_arg_64): Take a new argument to indicate if a
7415 parameter is named. Handle 256bit vector types. Return NULL
7416 for unnamed 256bit vector mode parameters.
7417 (function_arg): Updated.
7418 (setup_incoming_varargs_64): Support
7419 AVX encoding for *sse_prologue_save_insn.
7420 (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
7421 (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
7422 enabled. For all 1s in 256bit vector modes, return 3 if AVX is
7423 enabled, otherwise return -3.
7424 (standard_sse_constant_opcode): Handle AVX and 256bit vector
7425 modes.
7426 (print_reg): Support AVX registers. Handle 'x' and 't'.
7427 Handle 'd' to duplicate the operand.
7428 (print_operand): Likewise. Also support AVX vector compare
7429 instructions.
7430 (output_387_binary_op): Support AVX.
7431 (output_fp_compare): Likewise.
7432 (ix86_expand_vector_move_misalign): Likewise.
7433 (ix86_attr_length_vex_default): New.
7434 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
7435 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
7436 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
7437 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
7438 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
7439 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
7440 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
7441 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
7442 IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
7443 IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
7444 IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
7445 IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
7446 IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
7447 IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
7448 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
7449 IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
7450 IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
7451 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
7452 IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
7453 IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
7454 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
7455 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
7456 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
7457 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
7458 IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
7459 IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
7460 IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
7461 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
7462 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
7463 IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
7464 IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
7465 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
7466 IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
7467 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
7468 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
7469 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
7470 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
7471 IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
7472 IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
7473 IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
7474 IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
7475 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
7476 IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
7477 IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
7478 IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
7479 IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
7480 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
7481 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
7482 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
7483 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
7484 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
7485 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
7486 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
7487 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
7488 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
7489 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
7490 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
7491 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
7492 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
7493 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
7494 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
7495 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
7496 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
7497 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
7498 and IX86_BUILTIN_MOVMSKPS256,
7499 (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
7500 V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
7501 V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
7502 V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
7503 V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
7504 VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
7505 VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
7506 VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
7507 (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
7508 INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
7509 INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
7510 INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
7511 V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
7512 V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
7513 V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
7514 V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
7515 V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
7516 V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
7517 V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
7518 V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
7519 V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
7520 V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
7521 V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
7522 V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
7523 V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
7524 V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
7525 (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
7526 IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
7527 IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
7528 IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
7529 IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
7530 IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
7531 IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
7532 IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
7533 IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
7534 IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
7535 IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
7536 IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
7537 (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
7538 IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
7539 IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
7540 IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
7541 IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
7542 IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
7543 IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
7544 IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
7545 IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
7546 IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
7547 IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
7548 IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
7549 IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
7550 IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
7551 IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
7552 IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
7553 IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
7554 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
7555 IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
7556 IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
7557 IX86_BUILTIN_CMPPS,
7558 IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
7559 IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
7560 IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
7561 IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
7562 IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
7563 IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
7564 IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
7565 IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
7566 IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
7567 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
7568 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
7569 IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
7570 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
7571 IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
7572 IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
7573 IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
7574 IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
7575 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
7576 IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
7577 IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
7578 IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
7579 IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
7580 IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
7581 IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
7582 IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
7583 IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
7584 IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
7585 IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
7586 IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
7587 IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
7588 IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
7589 IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
7590 IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
7591 IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
7592 IX86_BUILTIN_MOVMSKPS256.
7593 (ix86_init_mmx_sse_builtins): Support AVX builtins.
7594 (ix86_expand_args_builtin): Likewise.
7595 (ix86_expand_special_args_builtin): Likewise.
7596 (ix86_hard_regno_mode_ok): Handle AVX modes.
7597 (ix86_expand_vector_init_duplicate): Likewise.
7598 (ix86_expand_vector_init_one_nonzero): Likewise.
7599 (ix86_expand_vector_init_one_var): Likewise.
7600 (ix86_expand_vector_init_concat): Likewise.
7601 (ix86_expand_vector_init_general): Likewise.
7602 (ix86_expand_vector_set): Likewise.
7603 (ix86_vector_mode_supported_p): Likewise.
7604 (x86_extended_reg_mentioned_p): Check INSN_P before using
7605 PATTERN.
7606
7607 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7608 OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
7609
7610 * config/i386/i386.h (TARGET_AVX): New.
7611 (TARGET_FMA): Likewise.
7612 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
7613 (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
7614 (VALID_AVX256_REG_MODE): New.
7615 (AVX256_VEC_FLOAT_MODE_P): Likewise.
7616 (AVX_FLOAT_MODE_P): Likewise.
7617 (AVX128_VEC_FLOAT_MODE_P): Likewise.
7618 (AVX256_VEC_FLOAT_MODE_P): Likewise.
7619 (AVX_VEC_FLOAT_MODE_P): Likewise.
7620 (ASM_OUTPUT_AVX_PREFIX): Likewise.
7621 (ASM_OUTPUT_OPCODE): Likewise.
7622 (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
7623 support.
7624 (SSE_REG_MODE_P): Allow 256bit vector modes.
7625 (ix86_args): Add a warn_avx field.
7626
7627 * config/i386/i386.md (UNSPEC_PCMP): New.
7628 (UNSPEC_VPERMIL): Likewise.
7629 (UNSPEC_VPERMIL2): Likewise.
7630 (UNSPEC_VPERMIL2F128): Likewise.
7631 (UNSPEC_MASKLOAD): Likewise.
7632 (UNSPEC_MASKSTORE): Likewise.
7633 (UNSPEC_CAST): Likewise.
7634 (UNSPEC_VTESTP): Likewise.
7635 (UNSPECV_VZEROALL): Likewise.
7636 (UNSPECV_VZEROUPPER): Likewise.
7637 (XMM0_REG): Likewise.
7638 (XMM1_REG): Likewise.
7639 (XMM2_REG): Likewise.
7640 (XMM3_REG): Likewise.
7641 (XMM4_REG): Likewise.
7642 (XMM5_REG): Likewise.
7643 (XMM6_REG): Likewise.
7644 (XMM8_REG): Likewise.
7645 (XMM9_REG): Likewise.
7646 (XMM10_REG): Likewise.
7647 (XMM11_REG): Likewise.
7648 (XMM12_REG): Likewise.
7649 (XMM13_REG): Likewise.
7650 (XMM14_REG): Likewise.
7651 (XMM15_REG): Likewise.
7652 (prefix): Likewise.
7653 (prefix_vex_imm8): Likewise.
7654 (prefix_vex_w): Likewise.
7655 (length_vex): Likewise.
7656 (maxmin): Likewise.
7657 (movoi): Likewise.
7658 (*avx_ashlti3): Likewise.
7659 (*avx_lshrti3): Likewise.
7660 (*avx_setcc<mode>): Likewise.
7661 (*fop_<mode>_comm_mixed_avx): Likewise.
7662 (*fop_<mode>_comm_avx): Likewise.
7663 (*fop_<mode>_1_mixed_avx): Likewise.
7664 (*fop_<mode>_1_avx): Likewise.
7665 (*avx_<code><mode>3): Likewise.
7666 (*avx_ieee_smin<mode>3): Likewise.
7667 (*avx_ieee_smax<mode>3): Likewise.
7668 (mode): Add OI, V8SF and V4DF.
7669 (length): Support VEX prefix.
7670 (*cmpfp_i_mixed): Set prefix attribute.
7671 (*cmpfp_i_sse): Likewise.
7672 (*cmpfp_iu_mixed): Likewise.
7673 (*cmpfp_iu_sse): Likewise.
7674 (*movsi_1): Support AVX.
7675 (*movdi_2): Likewise.
7676 (*movdi_1_rex64): Likewise.
7677 (*movti_internal): Likewise.
7678 (*movti_rex64): Likewise.
7679 (*movsf_1): Likewise.
7680 (*movdf_nointeger): Likewise.
7681 (*movdf_integer_rex64): Likewise.
7682 (*movtf_internal): Likewise.
7683 (zero_extendsidi2_32): Likewise.
7684 (zero_extendsidi2_rex64): Likewise.
7685 (*extendsfdf2_mixed): Likewise.
7686 (*extendsfdf2_sse): Likewise.
7687 (*truncdfsf_fast_mixed): Likewise.
7688 (*truncdfsf_fast_sse): Likewise.
7689 (*truncdfsf_mixed): Likewise.
7690 (fix_trunc<mode>di_sse): Likewise.
7691 (fix_trunc<mode>si_sse): Likewise.
7692 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
7693 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
7694 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
7695 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
7696 (*rcpsf2_sse): Likewise.
7697 (*rsqrtsf2_sse): Likewise.
7698 (*sqrt<mode>2_sse): Likewise.
7699 (sse4_1_round<mode>2): Likewise.
7700 (*sse_prologue_save_insn): Disallow REX prefix for AVX.
7701 Support AVX. Set length attribute properly for AVX.
7702
7703 * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
7704 (VECTOR_MODES (FLOAT, 32)): Likewise.
7705 (VECTOR_MODE (INT, DI, 8)): Likewise.
7706 (VECTOR_MODE (INT, HI, 32)): Likewise.
7707 (VECTOR_MODE (INT, QI, 64)): Likewise.
7708 (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
7709 (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
7710 (VECTOR_MODE (INT, DI, 4)): Removed.
7711 (VECTOR_MODE (INT, SI, 8)): Likewise.
7712 (VECTOR_MODE (INT, HI, 16)): Likewise.
7713 (VECTOR_MODE (INT, QI, 32)): Likewise.
7714 (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
7715 (INT_MODE (OI, 32)): Likewise.
7716
7717 * config/i386/i386.opt (mavx): New.
7718 (mfma): Likewise.
7719
7720 * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
7721
7722 * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
7723 (*mov<mode>_internal_avx): New.
7724 (*movv2sf_internal_rex64_avx): Likewise.
7725 (*movv2sf_internal_avx): Likewise.
7726
7727 * config/i386/predicates.md (const_4_to_5_operand): New.
7728 (const_6_to_7_operand): Likewise.
7729 (const_8_to_11_operand): Likewise.
7730 (const_12_to_15_operand): Likewise.
7731 (avx_comparison_float_operator): Likewise.
7732
7733 * config/i386/sse.md (AVX256MODEI): New.
7734 (AVX256MODE): Likewise.
7735 (AVXMODEQI): Likewise.
7736 (AVXMODE): Likewise.
7737 (AVX256MODEF2P): Likewise.
7738 (AVX256MODE2P): Likewise.
7739 (AVX256MODE4P): Likewise.
7740 (AVX256MODE8P): Likewise.
7741 (AVXMODEF2P): Likewise.
7742 (AVXMODEF4P): Likewise.
7743 (AVXMODEDCVTDQ2PS): Likewise.
7744 (AVXMODEDCVTPS2DQ): Likewise.
7745 (avxvecmode): Likewise.
7746 (avxvecpsmode): Likewise.
7747 (avxhalfvecmode): Likewise.
7748 (avxscalarmode): Likewise.
7749 (avxcvtvecmode): Likewise.
7750 (avxpermvecmode): Likewise.
7751 (avxmodesuffixf2c): Likewise.
7752 (avxmodesuffixp): Likewise.
7753 (avxmodesuffixs): Likewise.
7754 (avxmodesuffix): Likewise.
7755 (vpermilbits): Likewise.
7756 (pinsrbits): Likewise.
7757 (mov<mode>): Likewise.
7758 (*mov<mode>_internal): Likewise.
7759 (push<mode>1): Likewise.
7760 (movmisalign<mode>): Likewise.
7761 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7762 (avx_movdqu<avxmodesuffix>): Likewise.
7763 (avx_lddqu<avxmodesuffix>): Likewise.
7764 (<plusminus_insn><mode>3): Likewise.
7765 (*avx_<plusminus_insn><mode>3): Likewise.
7766 (*avx_vm<plusminus_insn><mode>3): Likewise.
7767 (mul<mode>3): Likewise.
7768 (*avx_mul<mode>3): Likewise.
7769 (*avx_vmmul<mode>3): Likewise.
7770 (divv8sf3): Likewise.
7771 (divv4df3): Likewise.
7772 (avx_div<mode>3): Likewise.
7773 (*avx_div<mode>3): Likewise.
7774 (*avx_vmdiv<mode>3): Likewise.
7775 (avx_rcpv8sf2): Likewise.
7776 (*avx_vmrcpv4sf2): Likewise.
7777 (sqrtv8sf2): Likewise.
7778 (avx_sqrtv8sf2): Likewise.
7779 (*avx_vmsqrt<mode>2): Likewise.
7780 (rsqrtv8sf2): Likewise.
7781 (avx_rsqrtv8sf2): Likewise.
7782 (*avx_vmrsqrtv4sf2): Likewise.
7783 (<code><mode>3): Likewise.
7784 (*avx_<code><mode>3_finite): Likewise.
7785 (*avx_<code><mode>3): Likewise.
7786 (*avx_vm<code><mode>3): Likewise.
7787 (*avx_ieee_smin<mode>3): Likewise.
7788 (*avx_ieee_smax<mode>3): Likewise.
7789 (avx_addsubv8sf3): Likewise.
7790 (avx_addsubv4df3): Likewise.
7791 (*avx_addsubv4sf3): Likewise.
7792 (*avx_addsubv2df3): Likewise.
7793 (avx_h<plusminus_insn>v4df3): Likewise.
7794 (avx_h<plusminus_insn>v8sf3): Likewise.
7795 (*avx_h<plusminus_insn>v4sf3): Likewise.
7796 (*avx_h<plusminus_insn>v2df3): Likewise.
7797 (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
7798 (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
7799 (*avx_maskcmp<mode>3): Likewise.
7800 (avx_nand<mode>3): Likewise.
7801 (*avx_<code><mode>3): Likewise.
7802 (*avx_nand<mode>3): Likewise.
7803 (*avx_<code><mode>3): Likewise.
7804 (*avx_cvtsi2ss): Likewise.
7805 (*avx_cvtsi2ssq): Likewise.
7806 (*avx_cvtsi2sd): Likewise.
7807 (*avx_cvtsi2sdq): Likewise.
7808 (*avx_cvtsd2ss): Likewise.
7809 (avx_cvtss2sd): Likewise.
7810 (avx_cvtdq2ps<avxmodesuffix>): Likewise.
7811 (avx_cvtps2dq<avxmodesuffix>): Likewise.
7812 (avx_cvttps2dq<avxmodesuffix>): Likewise.
7813 (*avx_cvtsi2sd): Likewise.
7814 (*avx_cvtsi2sdq): Likewise.
7815 (avx_cvtdq2pd256): Likewise.
7816 (avx_cvtpd2dq256): Likewise.
7817 (avx_cvttpd2dq256): Likewise.
7818 (*avx_cvtsd2ss): Likewise.
7819 (*avx_cvtss2sd): Likewise.
7820 (avx_cvtpd2ps256): Likewise.
7821 (avx_cvtps2pd256): Likewise.
7822 (*avx_movhlps): Likewise.
7823 (*avx_movlhps): Likewise.
7824 (avx_unpckhps256): Likewise.
7825 (*avx_unpckhps): Likewise.
7826 (avx_unpcklps256): Likewise.
7827 (*avx_unpcklps): Likewise.
7828 (avx_movshdup256): Likewise.
7829 (avx_movsldup256): Likewise.
7830 (avx_shufps256): Likewise.
7831 (avx_shufps256_1): Likewise.
7832 (*avx_shufps_<mode>): Likewise.
7833 (*avx_loadhps): Likewise.
7834 (*avx_storelps): Likewise.
7835 (*avx_loadlps): Likewise.
7836 (*avx_movss): Likewise.
7837 (*vec_dupv4sf_avx): Likewise.
7838 (*vec_concatv2sf_avx): Likewise.
7839 (*vec_concatv4sf_avx): Likewise.
7840 (*vec_setv4sf_0_avx): Likewise.
7841 (*vec_setv4sf_avx): Likewise.
7842 (*avx_insertps): Likewise.
7843 (avx_vextractf128<mode>): Likewise.
7844 (vec_extract_lo_<mode>): Likewise.
7845 (vec_extract_hi_<mode>): Likewise.
7846 (vec_extract_lo_<mode>): Likewise.
7847 (vec_extract_hi_<mode>): Likewise.
7848 (vec_extract_lo_v16hi): Likewise.
7849 (vec_extract_hi_v16hi): Likewise.
7850 (vec_extract_lo_v32qi): Likewise.
7851 (vec_extract_hi_v32qi): Likewise.
7852 (avx_unpckhpd256): Likewise.
7853 (*avx_unpckhpd): Likewise.
7854 (avx_movddup256): Likewise.
7855 (*avx_movddup): Likewise.
7856 (avx_unpcklpd256): Likewise.
7857 (*avx_unpcklpd): Likewise.
7858 (avx_shufpd256): Likewise.
7859 (avx_shufpd256_1): Likewise.
7860 (*avx_punpckhqdq): Likewise.
7861 (*avx_punpcklqdq): Likewise.
7862 (*avx_shufpd_<mode>): Likewise.
7863 (*avx_storehpd): Likewise.
7864 (*avx_loadhpd): Likewise.
7865 (*avx_loadlpd): Likewise.
7866 (*avx_movsd): Likewise.
7867 (*vec_concatv2df_avx): Likewise.
7868 (*avx_<plusminus_insn><mode>3): Likewise.
7869 (*avx_<plusminus_insn><mode>3): Likewise.
7870 (*avx_mulv8hi3): Likewise.
7871 (*avxv8hi3_highpart): Likewise.
7872 (*avx_umulv8hi3_highpart): Likewise.
7873 (*avx_umulv2siv2di3): Likewise.
7874 (*avx_mulv2siv2di3): Likewise.
7875 (*avx_pmaddwd): Likewise.
7876 (*avx_mulv4si3): Likewise.
7877 (*avx_ashr<mode>3): Likewise.
7878 (*avx_lshr<mode>3): Likewise.
7879 (*avx_ashl<mode>3): Likewise.
7880 (*avx_<code><mode>3): Likewise.
7881 (*avx_eq<mode>3): Likewise.
7882 (*avx_gt<mode>3): Likewise.
7883 (*avx_nand<mode>3): Likewise.
7884 (*avx_nand<mode>3): Likewise.
7885 (*avx_<code><mode>3): Likewise.
7886 (*avx_<code><mode>3): Likewise.
7887 (*avx_packsswb): Likewise.
7888 (*avx_packssdw): Likewise.
7889 (*avx_packuswb): Likewise.
7890 (*avx_punpckhbw): Likewise.
7891 (*avx_punpcklbw): Likewise.
7892 (*avx_punpckhwd): Likewise.
7893 (*avx_punpcklwd): Likewise.
7894 (*avx_punpckhdq): Likewise.
7895 (*avx_punpckldq): Likewise.
7896 (*avx_pinsr<avxmodesuffixs>): Likewise.
7897 (*avx_pinsrq): Likewise.
7898 (*avx_loadld): Likewise.
7899 (*vec_extractv2di_1_rex64_avx): Likewise.
7900 (*vec_extractv2di_1_avx): Likewise.
7901 (*vec_dupv2di_avx): Likewise.
7902 (*vec_concatv2si_avx): Likewise.
7903 (*vec_concatv4si_1_avx): Likewise.
7904 (*vec_concatv2di_avx): Likewise.
7905 (*vec_concatv2di_rex64_avx): Likewise.
7906 (*avx_uavgv16qi3): Likewise.
7907 (*avx_uavgv8hi3): Likewise.
7908 (*avx_psadbw): Likewise.
7909 (avx_movmskp<avxmodesuffixf2c>256): Likewise.
7910 (*avx_phaddwv8hi3): Likewise.
7911 (*avx_phadddv4si3): Likewise.
7912 (*avx_phaddswv8hi3): Likewise.
7913 (*avx_phsubwv8hi3): Likewise.
7914 (*avx_phsubdv4si3): Likewise.
7915 (*avx_phsubswv8hi3): Likewise.
7916 (*avx_pmaddubsw128): Likewise.
7917 (*avx_pmulhrswv8hi3): Likewise.
7918 (*avx_pshufbv16qi3): Likewise.
7919 (*avx_psign<mode>3): Likewise.
7920 (*avx_palignrti): Likewise.
7921 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7922 (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7923 (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7924 (*avx_mpsadbw): Likewise.
7925 (*avx_packusdw): Likewise.
7926 (*avx_pblendvb): Likewise.
7927 (*avx_pblendw): Likewise.
7928 (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7929 (avx_ptest256): Likewise.
7930 (avx_roundp<avxmodesuffixf2c>256): Likewise.
7931 (*avx_rounds<ssemodesuffixf2c>): Likewise.
7932 (*avx_aesenc): Likewise.
7933 (*avx_aesenclast): Likewise.
7934 (*avx_aesdec): Likewise.
7935 (*avx_aesdeclast): Likewise.
7936 (avx_vzeroupper): Likewise.
7937 (avx_vzeroupper_rex64): Likewise.
7938 (avx_vpermil<mode>): Likewise.
7939 (avx_vpermilvar<mode>3): Likewise.
7940 (avx_vpermil2<mode>3): Likewise.
7941 (avx_vperm2f128<mode>3): Likewise.
7942 (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7943 (avx_vbroadcastss256): Likewise.
7944 (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
7945 (avx_vinsertf128<mode>): Likewise.
7946 (vec_set_lo_<mode>): Likewise.
7947 (vec_set_hi_<mode>): Likewise.
7948 (vec_set_lo_<mode>): Likewise.
7949 (vec_set_hi_<mode>): Likewise.
7950 (vec_set_lo_v16hi): Likewise.
7951 (vec_set_hi_v16hi): Likewise.
7952 (vec_set_lo_v32qi): Likewise.
7953 (vec_set_hi_v32qi): Likewise.
7954 (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7955 (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
7956 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
7957 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
7958 (vec_init<mode>): Likewise.
7959 (*vec_concat<mode>_avx): Likewise.
7960 (blendbits): Support V8SF and V4DF.
7961 (sse2_movq128): Support AVX.
7962 (<sse>_movnt<mode>): Likewise.
7963 (sse2_movntv2di): Likewise.
7964 (sse_rcpv4sf2): Likewise.
7965 (sse_sqrtv4sf2): Likewise.
7966 (sse_rsqrtv4sf2): Likewise.
7967 (<sse>_comi): Likewise.
7968 (<sse>_ucomi): Likewise.
7969 (sse_cvtss2si): Likewise.
7970 (sse_cvtss2si_2): Likewise.
7971 (sse_cvtss2siq): Likewise.
7972 (sse_cvtss2siq_2): Likewise.
7973 (sse_cvttss2si): Likewise.
7974 (sse_cvttss2siq): Likewise.
7975 (sse2_cvtsd2si): Likewise.
7976 (sse2_cvtsd2si_2): Likewise.
7977 (sse2_cvtsd2siq): Likewise.
7978 (sse2_cvtsd2siq_2): Likewise.
7979 (sse2_cvttsd2si): Likewise.
7980 (sse2_cvttsd2siq): Likewise.
7981 (sse2_cvtdq2pd): Likewise.
7982 (*sse2_cvtpd2dq): Likewise.
7983 (*sse2_cvttpd2dq): Likewise.
7984 (*sse2_cvtpd2ps): Likewise.
7985 (sse2_cvtps2pd): Likewise.
7986 (sse3_movshdup): Likewise.
7987 (sse3_movsldup): Likewise.
7988 (sse_storehps): Likewise.
7989 (*sse4_1_extractps): Likewise.
7990 (sse2_storelpd): Likewise.
7991 (vec_dupv2df_sse3): Likewise.
7992 (*vec_concatv2df_sse3): Likewise.
7993 (*sse4_1_pextrb): Likewise.
7994 (*sse4_1_pextrb_memory): Likewise.
7995 (*sse2_pextrw): Likewise.
7996 (*sse4_1_pextrw_memory): Likewise.
7997 (*sse4_1_pextrd): Likewise.
7998 (*sse4_1_pextrq): Likewise.
7999 (sse2_pshufd_1): Likewise.
8000 (sse2_pshuflw_1): Likewise.
8001 (sse2_pshufhw_1): Likewise.
8002 (*sse2_storeq_rex64): Likewise.
8003 (*vec_dupv4si): Likewise.
8004 (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
8005 (sse2_pmovmskb): Likewise.
8006 (*sse2_maskmovdqu): Likewise.
8007 (*sse2_maskmovdqu_rex64): Likewise.
8008 (sse_ldmxcsr): Likewise.
8009 (sse_stmxcsr): Likewise.
8010 (abs<mode>2): Likewise.
8011 (sse4_1_movntdqa): Likewise.
8012 (sse4_1_phminposuw): Likewise.
8013 (sse4_1_extendv8qiv8hi2): Likewise.
8014 (*sse4_1_extendv8qiv8hi2): Likewise.
8015 (sse4_1_extendv4qiv4si2): Likewise.
8016 (*sse4_1_extendv4qiv4si2): Likewise.
8017 (sse4_1_extendv2qiv2di2): Likewise.
8018 (*sse4_1_extendv2qiv2di2): Likewise.
8019 (sse4_1_extendv4hiv4si2): Likewise.
8020 (*sse4_1_extendv4hiv4si2): Likewise.
8021 (sse4_1_extendv2hiv2di2): Likewise.
8022 (*sse4_1_extendv2hiv2di2): Likewise.
8023 (sse4_1_extendv2siv2di2): Likewise.
8024 (*sse4_1_extendv2siv2di2): Likewise.
8025 (sse4_1_zero_extendv8qiv8hi2): Likewise.
8026 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
8027 (sse4_1_zero_extendv4qiv4si2): Likewise.
8028 (*sse4_1_zero_extendv4qiv4si2): Likewise.
8029 (sse4_1_zero_extendv2qiv2di2): Likewise.
8030 (*sse4_1_zero_extendv2qiv2di2): Likewise.
8031 (sse4_1_zero_extendv4hiv4si2): Likewise.
8032 (*sse4_1_zero_extendv4hiv4si2): Likewise.
8033 (sse4_1_zero_extendv2hiv2di2): Likewise.
8034 (*sse4_1_zero_extendv2hiv2di2): Likewise.
8035 (sse4_1_zero_extendv2siv2di2): Likewise.
8036 (*sse4_1_zero_extendv2siv2di2): Likewise.
8037 (sse4_1_ptest): Likewise.
8038 (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
8039 (sse4_2_pcmpestri): Likewise.
8040 (sse4_2_pcmpestrm): Likewise.
8041 (sse4_2_pcmpistri): Likewise.
8042 (sse4_2_pcmpistrm): Likewise.
8043 (aesimc): Likewise.
8044 (aeskeygenassist): Likewise.
8045
80462008-08-28 Uros Bizjak <ubizjak@gmail.com>
8047
8048 * config/i386/predicates.md (vzeroall_operation): New.
8049
8050 * config/i386/sse.md (avx_vzeroall): New.
8051 (*avx_vzeroall): Likewise.
8052
f67358da 80532008-08-28 Paul Brook <paul@codesourcery.com>
95879c72
L
8054 Mark Shinwell <shinwell@codesourcery.com>
8055 Richard Earnshaw <richard.earnshaw@arm.com>
f67358da
PB
8056
8057 * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
8058 (TARGET_MIN_ANCHOR_OFFSET): New.
8059 (arm_override_options): Set correct anchor ranges for Thumb-1
8060 and Thumb-2 if required.
8061 (legitimize_pic_address): Handle case involving a TLS symbol
8062 reference with an addend.
8063 (arm_optimization_options): Enable section anchors at -O1 and
8064 above.
8065 * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
8066 * config/arm/arm-protos.h (arm_optimization_options): New.
8067
728a0142
NC
80682008-08-28 Nick Clifton <nickc@redhat.com>
8069
cf7442bb
NC
8070 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
8071 * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
8072 attribute.
8073
724df8d2 8074 * config/v850/v850.h (IRA_COVER_CLASSES): Define.
8a88c276 8075 * config/v850/v850.md (return): Remove frame size restriction.
724df8d2 8076
d43b42f9
NC
8077 * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
8078
888142a6
NC
8079 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
8080
b34126ed
NC
8081 * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
8082
728a0142
NC
8083 * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
8084
874101ec
PB
80852008-08-28 Paul Brook <paul@codesourcery.com>
8086
8087 * config/arm/vfp11.md: Update license notice.
8088 * config/arm/cortex-r4.md: Ditto.
8089
99781d25
RG
80902008-08-28 Richard Guenther <rguenther@suse.de>
8091
8092 PR tree-optimization/37207
8093 * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
8094 tuplification bug.
8095
5bdc1946
DS
80962008-08-28 Dodji Seketeli <dodji@redhat.com>
8097
8098 PR c++/36741
8099 * tree.c (int_fits_type_p): Don't forget unsigned integers
8100 of type sizetype which higher end word equals -1.
8101
0fca40f5
IR
81022008-08-28 Ira Rosen <irar@il.ibm.com>
8103
8104 * target.h (struct vectorize): Add new target builtin.
8a88c276 8105 * tree-vectorizer.c (destroy_loop_vec_info): Call
0fca40f5
IR
8106 vect_free_slp_instance instead of vect_free_slp_node.
8107 * tree-vectorizer.h (enum slp_load_perm_type): New.
8108 (struct _slp_instance): Add new fields.
8109 (SLP_INSTANCE_LOAD_PERMUTATION): New.
8110 (SLP_INSTANCE_LOADS): New.
8111 (vect_free_slp_tree): Remove.
8a88c276 8112 (vect_free_slp_instance): Declare.
0fca40f5
IR
8113 (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
8114 (vectorizable_load): Add argument.
8115 (vect_transform_slp_perm_load): New.
8a88c276 8116 * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
0fca40f5
IR
8117 vectorizable_load.
8118 (vect_get_place_in_interleaving_chain): New function.
8119 (vect_free_slp_tree): Make static.
8120 (vect_free_slp_instance): New function.
8a88c276 8121 (vect_build_slp_tree): Add new arguments. Allow load permutations and
0fca40f5
IR
8122 collect the load location in the interleaving chain.
8123 (vect_supported_slp_permutation_p): New function.
8124 (vect_supported_load_permutation_p): Likewise.
8125 (vect_analyze_slp_instance): In case of loads permutation, call
8a88c276 8126 vect_supported_load_permutation_p to check that the permutation is
0fca40f5
IR
8127 supported.
8128 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
8129 * tree-vect-transform.c (vect_transform_stmt): Add new argument.
8130 (vect_create_mask_and_perm): New function.
8131 (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
8a88c276
AS
8132 (vectorizable_load): Add an argument. Don't keep the created vectors
8133 statements in the node if permutation is required. Call
0fca40f5 8134 vect_transform_slp_perm_load to generate the permutation.
8a88c276 8135 (vect_transform_stmt): Add new argument. Call vectorizable_load with
0fca40f5 8136 additional argument.
8a88c276
AS
8137 (vect_schedule_slp_instance): In case of loads permutation, allocate
8138 vectorized statements structure for all the related SLP nodes. Call
0fca40f5 8139 vect_transform_stmt with addditional argument.
8a88c276
AS
8140 (vect_transform_loop): Call vect_transform_stmt with correct arguments.
8141 * config/spu/spu.c (spu_builtin_vec_perm): New.
0fca40f5
IR
8142 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
8143 * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
8144 * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
8145 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
8146
a75150ae
CF
81472008-08-28 Chris Fairles <chris.fairles@gmail.com>
8148
95879c72 8149 * gthr-posix.h (__gthread_create, __gthread_join, __gthread_detach,
a75150ae
CF
8150 __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
8151 __gthread_cond_signal, __gthread_cond_timedwait,
8152 __gthread_cond_timedwait_recursive): New functions.
8153 * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
8154 Likewise.
8155 * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
8156 thread interfaces.
8157
0b45fd7a
RG
81582008-08-28 Richard Guenther <rguenther@suse.de>
8159
8160 PR middle-end/37005
8161 * fold-const.c (maybe_canonicalize_comparison_1): Require
8162 undefined overflow only for canonicalizing A +- CST cmp CST.
8163 Make sure to not generate new constants that are not inside
8164 their TYPE_MIN/MAX_VALUE range.
8165 (maybe_canonicalize_comparison): Remove undefined overflow
8166 checking from here.
8167 (fold_binary): Remove now duplicate folding.
8168
fd990e64
PC
81692008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
8170
8171 * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
8172 use not updated in the last change.
8173
d4d46566
KK
81742008-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
8175
8176 * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
8177 (IRA_COVER_CLASSES): Add FPUL_REGS.
8178
1bfb8f51
MLI
81792008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8180
8181 PR 37217
843724f7 8182 * c-common.c (conversion_warning): Check for null operands.
1bfb8f51 8183
e9527cfd
MLI
81842008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8185
8186 PR c/31673
8187 * c-decl.c (check_for_loop_decls): Improve error message. Give
8188 hint.
8189
4ccd12e5
MLI
81902008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8191
8192 PR c/37186
8193 * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
8194 (convert_for_assignment): Pass corrent OPT_W* parameter to
8195 WARN_FOR_ASSIGNMENT.
8196
8d5f60ac
PC
81972008-08-27 Paolo Carlini <paolo.carlini@oracle.com>
8198
8199 PR c++/35321
8200 * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
8201
a8221440
PB
82022008-08-27 Paul Brook <paul@codesourcery.com>
8203
8204 * config.gcc: Loosen checks for arm uclinux eabi targets.
8205
f5d09f36
PB
82062008-08-27 Paul Brook <paul@codesourcery.com>
8207
8208 * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
8209 _clzsi2.
8210 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
8211
7cf1a11c
DG
82122008-08-26 Douglas Gregor <doug.gregor@gmail.com>
8213
8214 * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
8215 the enumerators of an ENUMERAL_TYPE.
8216 * dbxout.c (dbxout_type): Ditto.
8217
24713e85
AP
82182008-08-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
8219
8220 PR rtl-opt/37219
8221 * fwprop.c (fwprop): Check that the loop_father is the outer loop.
8222 (fwprop_addr): Check that the loop_father is not the outer loop.
8223
82242008-08-26 Paul Brook <paul@codesourcery.com>
a8e17e9e
PB
8225
8226 * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
8227 Remove documentation entry for fmul type.
8228 Use fmuls to annotate single-precision multiplication patterns,
8229 fmuld to annotate double-precision multiplication patterns,
8230 fmacs to annotate single-precision multiply-accumulate patterns
8231 and fmacd to annotate double-precision multiply-accumulate patterns.
8232 * config/arm/vfp11.md: Update reservations accordingly.
8233 * config/arm/arm.md: Note that certain values of the "type"
8234 attribute are documented in vfp.md.
8235 * config/arm/arm1020e.md: Remove out of date duplicate comment.
8236 (v10_cvt): Use new fmul types.
8237
4ae8027b 82382008-08-26 Paul Brook <paul@codesourcery.com>
f08d75a9
PB
8239
8240 * config/arm/vfp.md: Move pipeline description for VFP11 to...
8241 * config/arm/vfp11.md: ...here. New.
8242 * config/arm/arm.md: Include vfp11.md.
8243
69abac81
HPN
82442008-08-26 Hans-Peter Nilsson <hp@axis.com>
8245
8246 * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
8247 parameter to inform call.
8248
5d2b84f8
JL
82492008-08-26 Jeff Law <law@redhat.com>
8250
8251 * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
8252 avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
8253 preferred class when copying a constant into a partial word register.
8254
4e9b57fa
BE
82552008-08-26 Ben Elliston <bje@au.ibm.com>
8256
8257 * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
8258 * cp/typeck.c: Likewise.
8259 * cp/tree.c: Likewise.
8260 * gimple-low.c: Likewise.
8261 * jump.c: Likewise.
8262
058e97ec
VM
82632008-08-26 Vladimir Makarov <vmakarov@redhat.com>
8264
8265 * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
8266 ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
8267
8268 * doc/passes.texi: Describe IRA.
8269
8270 * doc/tm.texi (IRA_COVER_CLASSES,
8271 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
8272
8273 * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
8274 (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
8275 -fira-propagate-cost, -fno-ira-share-save-slots,
8276 -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
8277
8278 * flags.h (ira_algorithm): New enumeration.
8279 (flag_ira_algorithm, flag_ira_verbose): New external variable
8280 declarations.
8281
8282 * postreload.c (gate_handle_postreload): Don't do post reload
8283 optimizations unless the reload is completed.
8284
8285 * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
8286 IRA.
8287
8288 * tree-pass.h (pass_ira): New external variable declaration.
8289
8290 * reload.h: Add 2008 to the Copyright.
8a88c276 8291
058e97ec
VM
8292 * cfgloopanal.c: Include params.h.
8293 (estimate_reg_pressure_cost): Decrease cost for IRA optimization
8294 mode.
8a88c276 8295
058e97ec
VM
8296 * params.h (IRA_MAX_LOOPS_NUM): New macro.
8297
8298 * toplev.c (ira.h): New include.
8299 (flag_ira_algorithm, flag_ira_verbose): New external variables.
8300 (backend_init_target): Call ira_init.
8301 (backend_init): Call ira_init_once.
8302 (finalize): Call finish_ira_once.
8303
8304 * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
8305 flag_ira_share_save_slots, flag_ira_share_spill_slots): New
8306 external variables.
8307
8308 * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
8309 may_move_out_cost): New external variable declarations.
8310 (move_table): New typedef.
8a88c276 8311
058e97ec
VM
8312 * caller-save.c: Include headers output.h and ira.h.
8313 (no_caller_save_reg_set): New global variable.
8314 (save_slots_num, save_slots): New variables.
8315 (reg_save_code, reg_restore_code, add_stored_regs): Add
8316 prototypes.
8317 (init_caller_save): Set up no_caller_save_reg_set.
8318 (init_save_areas): Reset save_slots_num.
8319 (saved_hard_reg): New structure.
8320 (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
8321 (initiate_saved_hard_regs, new_saved_hard_reg,
8322 finish_saved_hard_regs, saved_hard_reg_compare_func): New
8323 functions.
8324 (setup_save_areas): Add code for sharing stack slots.
8325 (all_blocks): New variable.
8326 (save_call_clobbered_regs): Process pseudo-register too.
8327 (mark_set_regs): Process pseudo-register too.
8328 (insert_one_insn): Put the insn after bb note in a empty basic
8329 block. Add insn check.
8a88c276 8330
058e97ec
VM
8331 * global.c (eliminable_regset): Make it external.
8332 (mark_elimination): Use DF_LR_IN for IRA.
8333 (pseudo_for_reload_consideration_p): New.
8334 (build_insn_chain): Make it external. Don't ignore spilled
8335 pseudos for IRA. Use pseudo_for_reload_consideration_p.
8336 (gate_handle_global_alloc): New function.
8337 (pass_global_alloc): Add the gate function.
8338
8339 * opts.c (decode_options): Set up flag_ira. Print the warning for
8340 -fira.
8341 (common_handle_option): Process -fira-algorithm and -fira-verbose.
8342
8343 * timevar.def (TV_IRA, TV_RELOAD): New passes.
8344
8345 * regmove.c (regmove_optimize): Don't do replacement of output for
8346 IRA.
8347
8348 * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
8349 New external variable declarations.
8350
8351 * local-alloc.c (update_equiv_regs): Make it external. Return
8352 true if jump label rebuilding should be done. Rescan new_insn for
8353 notes.
8354 (gate_handle_local_alloc): New function.
8355 (pass_local_alloc): Add the gate function.
8356
8357 * alias.c (value_addr_p, stack_addr_p): New functions.
8358 (nonoverlapping_memrefs_p): Use them for IRA.
8359
8360 * common.opt (fira, fira-algorithm, fira-coalesce,
8361 fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
8362 fira-verbose): New options.
8363
8364 * regclass.c (reg_class_subclasses, contains_reg_of_mode,
8365 move_cost, may_move_in_cost, may_move_out_cost): Make the
8366 variables external.
8367 (move_table): Remove typedef.
8368 (init_move_cost): Make it external.
8369 (allocate_reg_info, resize_reg_info, setup_reg_classes): New
8370 functions.
8371
8372 * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
8373 setup_reg_classes): New function prototypes.
8374 (eliminable_regset): New external variable declaration.
8375 (build_insn_chain, update_equiv_regs): New function prototypes.
8a88c276 8376
058e97ec
VM
8377 * Makefile.in (IRA_INT_H): New definition.
8378 (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
8379 ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
8380 (reload1.o, toplev.o): Add dependence on ira.h.
8381 (cfgloopanal.o): Add PARAMS_H.
8382 (caller-save.o): Add dependence on output.h and ira.h.
8383 (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
8384 ira-emit.o, ira-lives.o): New entries.
8385
8386 * passes.c (pass_ira): New pass.
8387
8388 * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
8389
8390 * reload1.c (ira.h): Include the header.
8391 (changed_allocation_pseudos): New bitmap.
8392 (init_reload): Initiate the bitmap.
8393 (compute_use_by_pseudos): Permits spilled registers in FROM.
8394 (temp_pseudo_reg_arr): New variable.
8395 (reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
8396 IRA. Call alter_reg with the additional parameter. Don't clear
8397 spilled_pseudos for IRA. Restore original insn chain for IRA.
8398 Clear changed_allocation_pseudos at the end of reload.
8399 (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
8400 (hard_regno_to_pseudo_regno): New variable.
8401 (count_pseudo): Check spilled pseudos. Set up
8402 hard_regno_to_pseudo_regno.
8403 (count_spilled_pseudo): Check spilled pseudos. Update
8404 hard_regno_to_pseudo_regno.
8405 (find_reg): Use better_spill_reload_regno_p. Check
8406 hard_regno_to_pseudo_regno.
8407 (alter_reg): Set up spilled_pseudos. Add a new parameter. Add
8408 code for IRA.
8409 (eliminate_regs_1): Use additional parameter for alter_reg.
8410 (finish_spills): Set up pseudo_previous_regs only for spilled
8411 pseudos. Call reassign_pseudos once for all spilled pseudos, pass
8412 more arguments. Don't clear live_throughout and dead_or_set for
8413 spilled pseudos. Use additional parameter for alter_reg. Call
8414 mark_allocation_change. Set up changed_allocation_pseudos.
8415 Remove sanity check.
8416 (emit_input_reload_insns, delete_output_reload): Use additional
8417 parameter for alter_reg. Call mark_allocation_change.
8418 (substitute, gen_reload_chain_without_interm_reg_p): New
8419 functions.
8420 (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
8a88c276 8421
058e97ec 8422 * testsuite/gcc.dg/20080410-1.c: New file.
8a88c276 8423
058e97ec
VM
8424 * config/s390/s390.h (IRA_COVER_CLASSES,
8425 IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
8426
8427 * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
8428
8429 * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
8430
8431 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
8432
8433 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
8434
8435 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
8a88c276 8436
058e97ec 8437 * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
8a88c276 8438
058e97ec
VM
8439 2008-08-24 Jeff Law <law@redhat.com>
8440 * ira.c (setup_reg_class_intersect_union): Prefer smallest class
8441 when ignoring unavailable registers.
8442
8443 2008-08-24 Jeff Law <law@redhat.com>
8444 * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
8445 FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
8446 * ira.c (setup_eliminable_regset): Check stack_realign_needed.
8447 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
8448
8449 2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
8450 * ira-build.c (allocno_range_compare_func): Stabilize sort.
8451
8452 2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
8453 * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
8454 * reload1.c (find_reg): Process registers in register allocation order.
8455
8456 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
8457 * toplev.c (backend_init_target): Move ira_init call from
8458 here...
8459 (lang_dependent_init_target): ...to here.
8460
8461 2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
8462 * ira.c (setup_class_subset_and_memory_move_costs): Don't
8463 calculate memory move costs for NO_REGS.
8464
8465 2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
8466 * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
8467 STACK_REGS is defined.
8468
8469 2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
8470 * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
8471
8472 2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
8473 * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
8474
8475 2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
8476 * config/sh/sh.h (IRA_COVER_CLASSES): Define.
8477 * config/sh/sh.md (movsicc_true+3): Check if emit returns a
8478 barrier.
8479
8ff27c24
VK
84802008-08-26 Victor Kaplansky <victork@il.ibm.com>
8481 Dorit Nuzman <dorit@il.ibm.com>
8482
8483 * gcc/config/spu/spu.md (vec_extract_evenv4si,
8484 vec_extract_evenv4sf, vec_extract_evenv8hi,
8485 vec_extract_evenv16qi, vec_extract_oddv4si,
8486 vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
8487 vec_interleave_highv4sf, vec_interleave_lowv4sf,
8488 vec_interleave_highv4si, vec_interleave_lowv4si,
8489 vec_interleave_highv8hi, vec_interleave_lowv8hi,
8490 vec_interleave_highv16qi, vec_interleave_lowv16qi,
8491 vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
8492
e57903b8
JJ
84932008-08-25 Janis Johnson <janis187@us.ibm.com>
8494
8495 PR target/36756
8496 * config/rs6000/rs6000.c (optimization_options): Don't default to
8497 section anchors without toplevel reorder.
8498
b704f034
UW
84992008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8500
8501 * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
8502 (mfc_end_critical_section): Likewise.
8503
4f538d42
UW
85042008-08-25 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8505
8506 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
8507 all type qualifiers from element type to vector type.
8508
7cede643
DD
85092008-08-25 David Daney <ddaney@avtrex.com>
8510
8511 * config/mips/mips.md (immediate_insn): Move up in file, fix
8512 comment typo, reformat.
8513 (fetchop_bit, atomic_hiqi_op memory_barrier,
8514 sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
8515 sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
8516 sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
8517 sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
8518 sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
8519 sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
8520 sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
8521 sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
8522 sync_old_nand<mode>, sync_new_nand<mode>,
8523 sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
8524 test_and_set_12): Moved to sync.md.
8525 (sync.md): Include.
8526 * config/mips/sync.md: New file.
8527
e02aa5ec
RH
85282008-08-25 Richard Henderson <rth@redhat.com>
8529
8530 * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
8531 (regsave): Likewise.
8532 (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
8533 (output_cfi_directive): Likewise.
8534 (div_data_align): New.
8535 (output_cfi): Use it.
8536
d97e6aca
AN
85372008-08-24 Adam Nemet <anemet@caviumnetworks.com>
8538
8539 * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
8540 * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
8541 (TARGET_OCTEON): New macro.
8542 (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
8543 (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
8544 (ISA_HAS_POP): New macro.
8545 * config/mips/driver-native.c (host_detect_local_cpu): Handle
8546 Octeon.
8547 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
8548 Handle Octeon.
8549 * config/mips/mips.md (cpu): Add octeon.
8550 (type): Add pop attribute value.
8551 (popcount<mode>2): New pattern.
8552 * doc/invoke.texi (-march=@var{arch}): Add octeon.
8553
5e45130d
JH
85542008-08-24 Jan Hubicka <jh@suse.cz>
8555
8556 * doc/invoke.texi (-fipa-cp-clone): New option.
8557 (-fipa-cp): Update docs.
8558 (--param ipcp-unit-growth):New.
8559 * ipa-cp.c: Include fibheap.h, params.h
8560 (ipcp_initialize_node_lattices): When not cloning, all externally
8561 visible functions are bottom.
8562 (ipcp_need_redirect_p): Accept clones.
8563 (ipcp_insert_stage): Use cost driven heuristics.
8564 (max_count, dead_nodes): New static vars.
8565 (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
8566 ipcp_const_param_count): New functions.
8567 * common.opt (ipa-cp-clone): New command line option.
8568 * params.def (ipcp-unit-growth): New.
8569
657c0925
JH
85702008-08-24 Jan Hubicka <jh@suse.cz>
8571
8572 * tree-inline.c (tree_function_versioning): Look harder
8573 for referenced vars.
8574
692daa90
RL
85752008-08-24 Razya Ladelsky <razya@il.ibm.com>
8576
95879c72
L
8577 PR tree-optimization/37185
8578 * matrix-reorg.c (transform_access_sites): Update changed stmt.
692daa90 8579
0dbca537
JH
85802008-08-23 Jan Hubicka <jh@suse.cz>
8581
8582 * ipa-cp.c (ipcp_analyze_node): New function.
8583 (ipcp_update_cloned_node): Use it.
8584 (ipcp_init_stage): Likewise.
8585 * ipa-inline.c (function_insertion_hook_holder): New static var.
8586 (analyze_function): Break out from ....
8587 (inline_generate_summary): Here; register insertion hook.
8588 (cgraph_decide_inlining): Remove hook.
8589 (add_new_function): New function.
8590
5c69a0df
JH
85912008-08-23 Jan Hubicka <jh@suse.cz>
8592
8593 * opts.c (decode_options): Revert accidental change enabling ipa-cp.
8594
0f1961a2
JH
85952008-08-23 Jan Hubicka <jh@suse.cz>
8596
8597 * ipa-cp.c (constant_val_insert): Remove.
8598 (ipcp_propagate_one_const): Remove.
8599 (ipcp_create_replace_map): Always insert replacements to the map.
8600 (ipcp_insert_stage): Do not try to insert statements by hand.
8601 * tree-inline.c (insert_init_stmt): Break out from ...
8602 (setup_one_parameter): ... here; allow NULL BB pointer.
8603 (tree_function_versioning): Use setup_one_parameter to process
8604 replacement map.
8605
00fc2333
JH
86062008-08-23 Jan Hubicka <jh@suse.cz>
8607
8608 * tree.c (decl_address_ip_invariant_p): New function.
8609 * tree.h (decl_address_ip_invariant_p): Declare.
8610 * gimple.c (strip_invariant_refs): Break out from ...
8611 (is_gimple_invariant_address): ... here
8612 (is_gimple_ip_invariant_address): New function.
8613 (is_gimple_ip_invariant): New function.
8614 * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
8615 Declare.
8616
8617 * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
8618 (ipcp_lat_is_insertable): All constants are insertable.
8619 (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
8620 IPA_CONST_VALUE_REF.
8621 (ipcp_initialize_node_lattices): Propagate all types of operands.
8622 (build_const_val): Do not handle IPA_CONST_VALUE_REF.
8623 (ipcp_create_replace_map): Reformat.
8624 (ipcp_need_redirect_p): Simplify.
8625 (ipcp_insert_stage): Check that argument is used before clonning.
4ae8027b
UB
8626 * ipa-prop.c (ipa_print_node_jump_functions): Do not handle
8627 IPA_CONST_REF.
00fc2333
JH
8628 (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
8629 (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
8630 (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
8631 * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
8632 (jump_func_type): Remove IPA_CONST_VALUE_REF.
02bb8bce
UB
8633 * tree-inline.c (tree_function_versioning): Add variables referenced
8634 by replacing trees.
00fc2333 8635
98e146ab
JH
86362008-08-23 Jan Hubicka <jh@suse.cz>
8637
8638 PR target/37094
8639 * i386.c (standard_80387_constant_p): Use optimize_size.
8640
8b7b9d66
IR
86412008-08-23 Ira Rosen <irar@il.ibm.com>
8642
8643 PR tree-optimization/37161
8644 * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
8645 * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
8646 (vect_determine_vectorization_factor): Move the scalar type
8647 retrieval to vect_get_smallest_scalar_type.
8648 (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
8649 scalar type. Remove redundant computation.
8650 * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
8651 (vect_get_slp_defs): Take the type of RHS into account if
8652 necessary by calling vect_get_smallest_scalar_type. Call
8653 vect_get_constant_vectors with additional argument.
8654
f4185118
MLI
86552008-08-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8656
8657 PR 35648
8658 * doc/invoke.texi (Wwrite-strings): Clarify description.
8a88c276 8659
f5d3c7e1
IR
86602008-08-23 Ira Rosen <irar@il.ibm.com>
8661
8662 PR tree-optimization/37174
8663 * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
8664 def stmt is a part of the loop before accessing its stmt_vec_info.
8665
d3dd4dbd
AS
86662008-08-22 Anatoly Sokolov <aesok@post.ru>
8667
8668 PR target/11259
8669 * config/avr/avr.md (UNSPEC_SWAP): New constants.
8670 (*swap): New insn pattern.
8671 (*ashlqi3): Rename from ashlqi3 insn pattern.
8672 (ashlqi3): New expanders.
8673 (*lshrqi3): Rename from lshrqi3 insn pattern.
8a88c276 8674 (lshrqi3): New expanders.
d3dd4dbd
AS
8675 (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
8676 lshrqi3_const5, lshrqi3_const6): New splitters.
8677 (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
8678 lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
8679 peephole2 patterns.
8680
36159cf8
RG
86812008-08-22 Richard Guenther <rguenther@suse.de>
8682
8683 PR tree-optimization/37078
8684 * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
8685 [+INF, +INF] ranges.
8686
d3cbd7de
RG
86872008-08-22 Richard Guenther <rguenther@suse.de>
8688
8689 PR tree-optimization/37143
8690 * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
8691 a conversion statement instead of a copy.
8692
a3d4a22b
UB
86932008-08-22 Uros Bizjak <ubizjak@gmail.com>
8694
8695 PR target/37184
8696 * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
8697 CCCmode, CCOmode and CCSmode destination modes.
8698
8699 PR target/37191
8700 * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
8701 from different units in a single alternative.
8702 (*vec_extractv2sf_1): Ditto.
8703 (*vec_extractv2si_0): Ditto.
8704 (*vec_extractv2si_1): Ditto.
8705 * config/i386/sse.md (sse2_storehpd): Ditto.
8706 (sse2_storelpd): Ditto.
8707 (sse2_loadhpd): Ditto.
8708 (sse2_loadlpd): Ditto.
8709
8710 PR target/37197
8711 * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
8712 (popcountsi2): Ditto.
8713 (clzdi2_abm): Ditto.
8714 (popcountdi2): Ditto.
8715 (clzhi2_abm): Ditto.
8716 (popcounthi2): Ditto.
8717
beeab17c
RG
87182008-08-22 Richard Guenther <rguenther@suse.de>
8719
8720 PR middle-end/36548
8721 PR middle-end/37125
8722 * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
8723 if the multiplication does not overflow.
8724
1a456b49
NS
87252008-08-21 Nathan Sidwell <nathan@codesourcery.com>
8726
8727 * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
8728
042628f9
RH
87292008-08-21 Richard Henderson <rth@redhat.com>
8730
8731 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
8732 spurrious comma from test.
8733 * configure: Rebuild.
8734
2985f531
MLI
87352008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8736
8737 PR 30457
8738 * builtins.c (fold_builtin_next_arg): Add warning about undefined
8739 behaviour.
8a88c276 8740
3d10ed6c
AH
87412008-08-21 Aldy Hernandez <aldyh@redhat.com>
8742
8743 * c-tree.h (grokfield): New argument.
8744 * c-decl.c (grokfield): Handle new location argument.
4ae8027b 8745 * c-parser.c (c_parser_struct_declaration): Pass location to grokfield.
3d10ed6c 8746
c76a1f18
RG
87472008-08-21 Richard Guenther <rguenther@suse.de>
8748
8749 * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
8750
129a37fc
JH
87512008-08-21 Jan Hubicka <jh@suse.cz>
8752
8753 * cgraph.c (first_cgraph_function_insertion_hook): New variable.
a3d4a22b
UB
8754 (cgraph_add_function_insertion_hook,
8755 cgraph_remove_function_insertion_hook,
129a37fc 8756 cgraph_call_function_insertion_hooks): New functions.
a3d4a22b
UB
8757 * cgraph.h (cgraph_add_function_insertion_hook,
8758 cgraph_remove_function_insertion_hook,
129a37fc
JH
8759 cgraph_call_function_insertion_hooks): Declare.
8760 * ipa-reference.c (function_insertion_hook_holder): New variable.
8761 (check_operand, look_for_address_of): When checking late, do not care
8762 about module bitmaps.
8763 (add_new_function): New function.
8764 (generate_summary): Register hooks; zero module bitmaps.
8765 (propagate): Unregister hooks.
8766 * ipa-pure-const.c (function_insertion_hook_holder): New variable.
8767 (add_new_function): New function.
8768 (generate_summary): Register hook.
8769 (propagate): Remove hook.
8770
8771 * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
8772
8773 * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
8774 * ipa-cp.c (ipcp_update_cloned_node): New function.
8775 (build_const_val): Handle functions correctly; bring type logic
8776 into sync with tree-inline.c
8777 (ipcp_init_stage): Take care of computing stuff needed by
8778 indirect inlining; update clones.
8779 (ipcp_generate_summary): Break out of ipcp_driver.
8780 (ipcp_driver): Do only execution and transformation.
8781 (pass_ipa_cp): Make IPA_PASS.
8782 * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
8783 offset to address.
8784 * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
8785 ipcp, some info is already available.
8786 * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
8787 * tree-inline.c (remap_ssa_name): Unshare expression.
8788
1e52075c
RG
87892008-08-21 Richard Guenther <rguenther@suse.de>
8790
8791 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
8792 a PHI ask VN if it is already available.
8793 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
8794 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
8795
729edaa1
RG
87962008-08-21 Richard Guenther <rguenther@suse.de>
8797
8798 PR middle-end/36817
8799 * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
8800 makes sure to produce a result of the correct type.
8801
812dbce5
JH
88022008-08-21 Jan Hubicka <jh@suse.cz>
8803 Backport from LTO branch:
8804
8805 2008-05-05 Kenneth Zadeck <zadeck@naturalbridge.com>
8806 Jan Hubicka <jh@suse.cz>
8a88c276 8807
812dbce5
JH
8808 * ipa-pure-const.c
8809 (init_state, finish_state, set_function_state, generate_summary):
8810 New functions.
8811 (scan_stmt): Renamed from scan_function. Changed to keep state in
8812 local static vars rather than cgraph aux field.
8813 (propagate): Renamed from static_execute. Changed to keep state in
8814 local static vars rather than cgraph aux field.
8815 (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
8816 * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
8817
8818 2008-07-15 Kenneth Zadeck <zadeck@naturalbridge.com>
8819
8820 * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
8a88c276 8821 * ipa-reference.c (init_function_info, generate_summary,
812dbce5
JH
8822 propagate): New functions.
8823 (analyze_function): Call init_function_info.
8824 (static_execute): Stripped into generate_summary and propagate.
8825 (pass_ipa_reference): Made into ipa_opt_pass.
8826
08298a8c
RG
88272008-08-21 Richard Guenther <rguenther@suse.de>
8828
8829 PR tree-optimization/37181
8830 * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
8831 folding result.
8832 (extract_range_from_unary_expr): Likewise.
8833
509c9d60
MLI
88342008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8835
8836 * diagnostic.c (pedwarn_at): Rename as pedwarn.
8837 (pedwarn): Delete.
8838 * toplev.h (pedwarn_at): Likewise.
8839 * builtins.c: Update all calls to pedwarn.
8840 * c-lex.c: Likewise.
8841 * toplev.c: Likewise.
8842 * c-tree.h: Likewise.
8843 * c-decl.c: Likewise.
8844 * c-errors.c: Likewise.
8845 * c-typeck.c: Likewise.
8846 * c-common.c: Likewise.
8847 * c-parser.c: Likewise.
8848
0dd8c9bc
JM
88492008-08-20 Joseph Myers <joseph@codesourcery.com>
8850
8851 PR target/31070
8852 * config/sparc/sparc.c (function_arg_slotno): Handle structure
8853 with MODE_VECTOR_INT mode.
8854
87fe2bd0
MLI
88552008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8856
8857 PR middle-end/179
8858 * tree-ssa.c (warn_uninit): Do not warn for variables that can be
8859 initialized outside the current module.
8860 (warn_uninitialized_var): Ignore left-hand side when walking the
8861 trees. Ignore address expressions. Examine VUSE operands in gimple
8862 statements with a variable declaration on the right-hand side.
8863
05cee290
RS
88642008-08-20 Richard Sandiford <rdsandiford@googlemail.com>
8865
7735154d 8866 PR bootstrap/37155
05cee290
RS
8867 * rtlanal.c (subreg_offset_representable_p): Revert last change.
8868
9c591bd0
MLI
88692008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8870
8871 PR 35701
8872 * c-common.c (conversion_warning): Do not warn if applying bit-and
8873 operator to unsigned constant that fits in the target type.
8874
0011dedb
MLI
88752008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8876
8877 PR c++/35602
8878 * c-common.c (conversion_warning): Do not warn for artificial
8879 expressions.
8880
73019a42
RG
88812008-08-20 Richard Guenther <rguenther@suse.de>
8882
8883 * tree-vrp.c (op_with_constant_singleton_value_range): New function.
8884 (extract_range_from_binary_expr): Fall back to constant propagation.
8885 (extract_range_from_unary_expr): Likewise.
8886
e2104f59
RG
88872008-08-20 Richard Guenther <rguenther@suse.de>
8888
8889 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
8890 with TREE_THIS_VOLATILE on shared nodes.
8891 (fold_stmt_r): Likewise.
8892
5dc4a7f4
JJ
88932008-08-20 Jakub Jelinek <jakub@redhat.com>
8894
8895 PR c/37171
8896 * c-parser.c (c_parser_attributes): For keywords use canonical
8897 spelling for attr_name.
8898
d3d28d26
MLI
88992008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8900
8901 * value-prof.c (check_counter): Revert wrong call to error.
8a88c276 8902
5b6148c5
MLI
89032008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8904
8905 * profile.c: Update calls to inform.
8906 * value-prof.c: Update calls to inform.
8a88c276 8907
1f5b3869
MLI
89082008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8909
8910 * diagnostic.c (inform): Add an explicit location_t parameter.
8911 * toplev.h (inform): Update declaration.
8912 * builtins.c: Update all calls to inform.
8913 * c-common.c: Likewise.
8914 * c-decl.c: Likewise.
8915 * c-opts.c: Likewise.
8916 * c-pch.c: Likewise.
8917 * c-pragma.c: Likewise.
8918 * c-typeck.c: Likewise.
8919 * coverage.c: Likewise.
8920 * opts.c: Likewise.
8921 * toplev.c: Likewise.
8922 * tree-cfg.c: Likewise.
8923 * tree-ssa.c: Likewise.
8924
89da39ee
L
89252008-08-20 H.J. Lu <hongjiu.lu@intel.com>
8926
8927 PR target/37169
8928 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
8929 V2DI mode, for SSE4.1, use movq instead of vector set if the
8930 second element is zero and inter-unit moves are OK.
8931
4fedf870
RG
89322008-08-20 Richard Guenther <rguenther@suse.de>
8933
8934 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
8935 properly handle conversion/copy chains after tuplification.
8936
e2081a1d
RG
89372008-08-20 Richard Guenther <rguenther@suse.de>
8938
8939 * passes.c (init_optimization_passes): Move the second
8940 forwprop pass before alias computation. Remove the second
8941 DCE pass. Remove the first dominator and phi copy/const
8942 prop passes.
8943
6e60703f
NC
89442008-08-20 Nick Clifton <nickc@redhat.com>
8945
8946 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
8947 support of this feature. Do not assume that a sufficiently new
8948 assembler will support the feature regardless of the target type.
8949 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
89da39ee 8950 * configure: Regenerate.
6e60703f 8951
c4ab2baa
RG
89522008-08-20 Richard Guenther <rguenther@suse.de>
8953
8954 * tree-vrp.c (found_in_subgraph): Remove.
8955 (live): New global static.
8956 (live_on_edge): New function.
8957 (blocks_visited): Remove.
8958 (register_edge_assert_for_2): Use live_on_edge.
8959 (find_conditional_asserts): Remove code dealing with
8960 found_in_subgraph. Do not walk the CFG.
8961 (find_switch_asserts): Likewise.
8962 (find_assert_locations_1): Renamed from find_assert_locations.
8963 Move finding assert locations for conditional and switch
8964 statements first. Update live bitmap. Do not walk the CFG.
8965 (find_assert_locations): New function.
8966 (insert_range_assertions): Remove entry of CFG walk.
8967 Adjust call to find_assert_locations.
8968 * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
8969 that only can appear because of fake exit edges but assert we
8970 never try to insert on those.
8971 (fini_pre): Do not remove fake exit edges here...
8972 (execute_pre): ...but here, before committing edge inserts.
8973
a4b8a65f
RG
89742008-08-19 Richard Guenther <rguenther@suse.de>
8975
8976 * passes.c (init_optimization_passes): Exchange store-ccp
8977 with a ccp pass.
8978
e49cf927 89792008-08-19 Rafael Espíndola <espindola@google.com>
21fe7edc 8980
a3d4a22b
UB
8981 * varasm.c (weak_decls): Move earlier in the file.
8982 (assemble_external): Add weak decls to the weak_decls list.
8983 (declare_weak): Don't add decls to the weak_decls list.
21fe7edc 8984
b8aaf506
L
89852008-08-19 H.J. Lu <hongjiu.lu@intel.com>
8986
8987 PR target/37157
8988 * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
8989 before (sse2_shufpd_<mode>).
8990
e92cbe3a
JJ
89912008-08-19 Jakub Jelinek <jakub@redhat.com>
8992
8993 PR debug/37156
8994 * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
8995 * tree.c (block_nonartificial_location): Likewise.
8996
53f3815c
RG
89972008-08-19 Richard Guenther <rguenther@suse.de>
8998
8999 PR tree-optimization/35972
9000 PR tree-optimization/23094
9001 * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
9002 parameter.
9003 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
9004 handle MISALIGNED_INDIRECT_REF.
9005 (get_ref_from_reference_ops): New helper.
9006 (vn_reference_lookup_pieces): Walk the use-def chain using the
9007 alias-oracle if requested.
9008 * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
9009 walking the use-def chain.
9010 (compute_avail): But not here.
9011 (create_component_ref_by_pieces_1): Properly handle
9012 MISALIGNED_INDIRECT_REF.
9013 (do_regular_insertion): Handle fully redundant
9014 expressions after PHI-translation also for SSA_NAME values, not
9015 only constants. Correctly use edoubleprime for that.
9016
5d593372
IR
90172008-08-19 Ira Rosen <irar@il.ibm.com>
9018
9019 * tree-vectorizer.c (supportable_widening_operation): Support
9020 multi-step conversion, return the number of steps in such conversion
9021 and the required intermediate types.
9022 (supportable_narrowing_operation): Likewise.
9023 * tree-vectorizer.h (vect_pow2): New function.
9024 (supportable_widening_operation): Change argument types.
9025 (supportable_narrowing_operation): Likewise.
9026 (vectorizable_type_promotion): Add an argument.
9027 (vectorizable_type_demotion): Likewise.
8a88c276 9028 * tree-vect-analyze.c (vect_analyze_operations): Call
5d593372
IR
9029 vectorizable_type_promotion and vectorizable_type_demotion with
9030 additional argument.
9031 (vect_get_and_check_slp_defs): Detect patterns.
9032 (vect_build_slp_tree): Add an argument, don't fail in case of multiple
8a88c276 9033 types.
02bb8bce
UB
9034 (vect_analyze_slp_instance): Don't fail in case of multiple types.
9035 Call vect_build_slp_tree with correct arguments. Calculate unrolling
9036 factor according to the smallest type in the loop.
5d593372 9037 (vect_detect_hybrid_slp_stmts): Include statements from patterns.
8a88c276
AS
9038 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
9039 supportable_widening_operation with correct arguments.
9040 * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
5d593372
IR
9041 operands lists according to the number of vector statements in left
9042 or right node, if exists.
9043 (vect_gen_widened_results_half): Remove unused argument.
8a88c276 9044 (vectorizable_conversion): Call supportable_widening_operation,
5d593372 9045 supportable_narrowing_operation, and vect_gen_widened_results_half
8a88c276 9046 with correct arguments.
5d593372 9047 (vectorizable_assignment): Change documentation, support multiple
8a88c276 9048 types in SLP.
5d593372
IR
9049 (vectorizable_operation): Likewise.
9050 (vect_get_loop_based_defs): New function.
9051 (vect_create_vectorized_demotion_stmts): Likewise.
9052 (vectorizable_type_demotion): Support loop-aware SLP and general
9053 multi-step conversion. Call vect_get_loop_based_defs and
9054 vect_create_vectorized_demotion_stmts for transformation.
9055 (vect_create_vectorized_promotion_stmts): New function.
9056 (vectorizable_type_promotion): Support loop-aware SLP and general
9057 multi-step conversion. Call vect_create_vectorized_promotion_stmts
8a88c276 9058 for transformation.
5d593372 9059 (vectorizable_store): Change documentation, support multiple
8a88c276 9060 types in SLP.
5d593372 9061 (vectorizable_load): Likewise.
8a88c276 9062 (vect_transform_stmt): Pass SLP_NODE to
5d593372
IR
9063 vectorizable_type_promotion and vectorizable_type_demotion.
9064 (vect_schedule_slp_instance): Move here the calculation of number
9065 of vectorized statements for each node from...
9066 (vect_schedule_slp): ... here.
9067 (vect_transform_loop): Call vect_schedule_slp without the last
9068 argument.
9069
45ea82c1
DN
90702008-08-19 Dorit Nuzman <dorit@il.ibm.com>
9071
9072 PR bootstrap/37152
8a88c276 9073 * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
45ea82c1
DN
9074 to == in assert statement.
9075 (vectorizable_reduction): Fix typo.
9076
c3a4ca03
L
90772008-08-18 H.J. Lu <hongjiu.lu@intel.com>
9078
9079 PR bootstrap/37153
9080 * value-prof.c (check_counter): Dereference pointer to overall
9081 count when printing it.
9082
3aa71f9d
L
90832008-08-18 H.J. Lu <hongjiu.lu@intel.com>
9084
9085 * profile.h: Really add it.
9086
f7bc085c
L
90872008-08-18 H.J. Lu <hongjiu.lu@intel.com>
9088
9089 * mcf.c: Really add it.
9090
52c76998
PY
90912008-08-18 Paul Yuan <yingbo.com@gmail.com>
9092 Vinodha Ramasamy <vinodha@google.com>
9093
9094 * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
9095 count_scale.
9096 * value-prof.c (check_counter): Fix the counter if
9097 flag_profile_correction is true.
9098 (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
9099 tree_mod_subtract_transform):
9100 Follow check_counter parameter change.
9101 * common.opt (fprofile-correction): New option.
9102 * mcf.c: New file.
3aa71f9d 9103 * profile.h: Likewise.
52c76998
PY
9104 * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
9105 (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
9106 is_inconsistent, set_bb_counts, read_profile_edge_counts): New
9107 functions.
9108 (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
9109 flag_profile_correction is set.
9110
808cc417
RS
91112008-08-18 Richard Sandiford <rdsandiford@googlemail.com>
9112
9113 * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
9114
1a87cf0c
TB
91152008-08-18 Tomas Bily <tbily@suse.cz>
9116
9117 * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
9118 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
9119 CONVERT_EXPR_P.
9120 * tree-data-ref.c (split_constant_offset_1): Likewise.
9121 * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
9122 * tree-sra.c (sra_walk_expr): Likewise.
9123 * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
9124 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
9125 * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
9126 * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
9127 Likewise.
9128 * gimple.c (gimple_assign_unary_nop_p): Likewise.
9129 * tree-vect-transform.c (vectorizable_type_demotion)
9130 (vectorizable_type_promotion): Likewise.
8a88c276 9131 * tree-inline.c (expand_call_inline):
1a87cf0c
TB
9132 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
9133 (forward_propagate_addr_expr_1, forward_propagate_comparison)
9134 (tree_ssa_forward_propagate_single_use_vars): Likewise.
9135 * expr.c (expand_expr_real_1): Likewise.
9136 * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
9137 (gimple_assign_unary_useless_conversion_p): Likewise.
9138 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9139 * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
9140 * fold-const.c (fold_unary): Likewise.
9141 * tree.h (CONVERT_EXPR_P): Likewise.
9142 * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
9143 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
8a88c276 9144 * tree-vrp.c:
1a87cf0c
TB
9145 (register_edge_assert_for_2, extract_range_from_unary_expr)
9146 (register_edge_assert_for_1): Likewise.
8a88c276 9147
9c02cf68
MLI
91482008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9149
9150 * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
9151 dconst_third_ptr, dconst_sqrt2_ptr): Declare.
9152 (enum real_value_const): Delete.
9153 (get_real_const): Delete.
9154 * real.c (get_real_const): Delete.
9155 (dconst_e_ptr): Define.
9156 (dconst_third_ptr): Define.
9157 (dconst_sqrt2_ptr): Define.
9158 * builtins.c: Update all callers.
9159
e4658728
RG
91602008-08-18 Richard Guenther <rguenther@suse.de>
9161
9162 * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
9163 statement iterator after statement removal.
9164
3b7abfda
AT
91652008-08-18 Andreas Tobler <a.tobler@schweiz.org>
9166
9167 * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
9168 (detect_processor_freebsd): Likewise.
9169 (host_detect_local_cpu): Call newly added functions for FreeBSD.
9170
2f9864e6
RG
91712008-08-18 Richard Guenther <rguenther@suse.de>
9172
9173 * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
9174 and loads have the correct types.
9175
d2e796ad
MLI
91762008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9177
9178 PR cpp/7263
9179 * c-opts.c (cpp_opts): Remove static.
9180 * c-parser.c (cpp_opts): Declare it extern.
9181 (disable_extension_diagnostics): Handle cpp options.
9182 (enable_extension_diagnostics): Likewise.
9183
cbe5f3b3
MLI
91842008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9185
9186 * diagnostics.c (permerror_at): Rename as permerror.
9187 (permerror): Delete.
9188 * toplev.h: Likewise.
9189
11b08ee9
RG
91902008-08-18 Richard Guenther <rguenther@suse.de>
9191
9192 * passes.c (init_optimization_passes): Remove cleanup_cfg1,
9193 sdse1 and addressables2 passes. Replace dce1 with cddce1.
9194 Move call_cdce before build_alias. Move copyrename2,
9195 cunrolli and ccp2 beafore build_alias. Re-add addressable2
9196 right after final inlining.
9197 * tree-cfg.c (build_gimple_cfg): Do not dump function here.
9198 (pass_build_cfg): But instead via TODO_dump_func.
9199
400196f1
RG
92002008-08-18 Richard Guenther <rguenther@suse.de>
9201
9202 * tree-sra.c (generate_element_init_1): Deal with NULL constructor
9203 element index.
9204 (scalarize_init): If we failed to generate some initializers
9205 do not generate zeros for not instantiated members. Instead
9206 rely on the copy out.
9207 * tree-ssa-operands.c (get_addr_dereference_operands): Warn
9208 about missing flow-sensitive alias info only if we have
9209 aliases computed.
9210
0859c412
NC
92112008-08-17 Nick Clifton <nickc@redhat.com>
9212
9213 * doc/extend.texi (Function Attributes): Fix typo in description
9214 if hot function attribute.
9215
e21d5757
DJ
92162008-08-17 Daniel Jacobowitz <dan@codesourcery.com>
9217 Richard Sandiford <rdsandiford@googlemail.com>
9218
9219 * doc/install.texi (--with-mips-plt): Document.
9220 * doc/invoke.texi (-mplt, -mno-plt): Document.
9221 * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
9222 and handle ${with_mips_plt}.
9223 * config/mips/mips.opt (mplt): New option.
9224 * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
9225 (TARGET_ABICALLS_PIC2): Likewise.
9226 (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
9227 (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
9228 (ASM_SPEC): Use !mabi=* instead of !mabi*.
9229 (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
9230 to decide whether to output ".option picX" directives.
9231 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
9232 Pass -call_nonpic rather than -KPIC for -mplt.
9233 (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
9234 on the command line. Also remove it when -mabi=64 is used without
9235 -msym32.
9236 * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
9237 * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
9238 TARGET_ABICALLS_PIC0.
9239 (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
9240 TARGET_ABICALLS.
9241 (mips16_build_function_stub): Only output ".option pic" directives
9242 and PIC stubs if TARGET_ABICALLS_PIC2. Call through $25 instead of $1.
9243 (mips16_build_call_stub): Fix comment and remove redundant
9244 ".set at"/"set .noat" directives.
9245 (mips_function_rodata_section): Use the default behaviour for
9246 TARGET_ABSOLUTE_ABICALLS.
9247 (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
9248 (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
9249 (mips_restore_gp): Do nothing if the current function doesn't use
9250 a global pointer.
9251 (mips_expand_prologue): Only save $gp if the current function uses it.
9252 Use a normal move for TARGET_ABICALLS_PIC0.
9253 (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
9254
4817c43b
RS
92552008-08-17 Richard Sandiford <rdsandiford@googlemail.com>
9256
9257 * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
9258 of function when handling GLOBAL_POINTER_REGNUM.
9259
b38f3813
EB
92602008-08-16 Eric Botcazou <ebotcazou@adacore.com>
9261
9262 PR ada/20548
9263 * common.opt (-fstack-check): Do not declare the variable here.
9264 (-fstack-check=): New option variant.
9265 * doc/invoke.texi (Code Gen Options): Document it.
9266 * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
9267 (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
9268 (STACK_CHECK_STATIC_BUILTIN): New macro.
9269 * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
9270 * opts.c: Include expr.h.
9271 (common_handle_option) <OPT_fold_stack_check_>: New case.
9272 <OPT_fstack_check>: Likewise.
9273 * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
9274 consistently in the test for variable-sized types. Adjust for
9275 new behaviour of flag_stack_check.
9276 * explow.c: Include except.h.
9277 (allocate_dynamic_stack_space): Do not take into account
9278 STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
9279 * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
9280 for variable-sized parameters. Treat all parameters whose size is
9281 greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
9282 stack checking is enabled.
9283 * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
9284 size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
9285 if generic stack checking is enabled.
9286 (expand_function_end): Adjust for new behaviour of flag_stack_check.
9287 * reload1.c (reload): Likewise.
9288 * stmt.c (expand_decl): Assert that all automatic variables have
9289 fixed size at this point and remove dead code.
9290 * flags.h (stack_check_type): New enumeration type.
9291 (flag_stack_check): Declare.
9292 * toplev.c (flag_stack_check): New global variable.
9293 * Makefile.in (opts.o): Add dependency on EXPR_H.
9294 (explow.o): Add dependency on except.h.
9295
3898bf50
AH
92962008-08-16 Andy Hutchinson <hutchinsonandy@aim.com>
9297
8a88c276 9298 * config/avr/avr.c (avr_override_options): Reduce value of
3898bf50
AH
9299 PARAM_INLINE_CALL_COST.
9300
e675826d
EB
93012008-08-15 Eric Botcazou <ebotcazou@adacore.com>
9302
9303 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
9304 to BLKmode, try to fetch an inner memory reference. Use 'mode' in
9305 lieu of TYPE_MODE (type) throughout.
9306
853ff9e2
JM
93072008-08-15 Joseph Myers <joseph@codesourcery.com>
9308
9309 * config/arm/arm.c (add_minipool_backward_ref): Check for
9310 8-byte-aligned entries in second case of forcing insertion after a
9311 particular entry. Change third case to avoid inserting
9312 non-8-byte-aligned entries before 8-byte-aligned ones.
9313
a214f4d6
RG
93142008-08-15 Richard Guenther <rguenther@suse.de>
9315
9316 * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
9317 strip components for unknown size accesses.
9318
9381e3f1
WG
93192008-08-15 Wolfgang Gellerich <gellerich@de.ibm.com>
9320
9321 * config/s390/2097.md New file.
9322 * config/s390/s390.md ("z10prop" attribute): Define none,
89da39ee
L
9323 z10_super, z10_super_E1, z10_super_A1, z10_super_c,
9324 z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
9325 z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
9326 possible values and apply them to insns as appropriate.
9327 ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
9328 ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
9329 fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
4ae8027b 9330 fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible values.
9381e3f1
WG
9331 ("bfp" mode attribute): Removed. Every occurence replaced
9332 with <mode>.
9333 * config/s390/s390.c (struct "z10_cost"): Updated entries.
9334 * config/s390/2084.md (insn_reservation "x_itof"): Updated
4ae8027b 9335 type attribute.
9381e3f1 9336
4265559a
MLI
93372008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9338
89da39ee 9339 PR c/28152
4265559a
MLI
9340 * c-parser.c (c_lex_one_token): Do not store the canonical spelling
9341 for keywords.
8a88c276 9342
32ff1243
DN
93432008-08-14 Dorit Nuzman <dorit@il.ibm.com>
9344
9345 * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
9346 additional argument. Support reduction when duplication is needed due
9347 to data-types of different sizes in the loop.
9348 (get_initial_def_for_induction): Fix printout.
9349 (vect_get_vec_def_for_stmt_copy): Support case where the
9350 vec_stmt_for_operand is a phi node.
8a88c276 9351 (vectorizable_reduction): Support reduction when duplication is needed
32ff1243 9352 due to data-types of different sizes in the loop.
8a88c276 9353 (vectorizable_call): Remove restriction to not vectorize in case we
32ff1243
DN
9354 have data-types of different sizes in the loop.
9355 (vectorizable_conversion): Likewise.
9356 (vectorizable_operation): Likewise.
9357 (vectorizable_type_demotion): Likewise.
9358 (vectorizable_type_promotion): Likewise.
8a88c276 9359 (vectorizable_induction): Add restriction to not vectorize in case
32ff1243
DN
9360 we have data-types of different sizes in the loop.
9361
ed6fa129
UB
93622008-08-14 Christophe Saout <christophe@saout.de>
9363 Uros Bizjak <ubizjak@gmail.com>
9364
9365 PR target/37101
9366 * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
9367 (*vec_concatv2di_rex64_sse4_1): Ditto.
9368 (*vec_concatv2di_rex64_sse): Ditto.
9369
2e1d2474
JJ
93702008-08-14 Jakub Jelinek <jakub@redhat.com>
9371
9372 PR middle-end/37103
9373 * fold-const.c (fold_widened_comparison): Do not allow
9374 sign changes that change the result even if shorter type
9375 is wider than arg1_unw's type.
9376
e026fa18
KH
93772008-08-13 Kazu Hirata <kazu@codesourcery.com>
9378
9379 * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
9380 Skip if the multilib testing specifies -march that does not
9381 agree with the one specified in the testcase.
9382
92693034
JM
93832008-08-13 Joseph Myers <joseph@codesourcery.com>
9384
9385 * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
9386 zero extend SImode values being converted to TFmode before passing
9387 to libcalls.
9388
9f3c9256
UW
93892008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9390
9391 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
9392 __PPU__ when targeting the Cell/B.E. PPU processor.
9393
7aec7a38
EB
93942008-08-13 Eric Botcazou <ebotcazou@adacore.com>
9395
9396 * gimple.h (gimple_call_set_chain): Accept SSA variables.
9397 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
9398 Rematerialize the static chain, if any.
9399 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
9400 static chain.
9401
70a1c2f9
L
94022008-08-13 H.J. Lu <hongjiu.lu@intel.com>
9403
9404 * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
9405 (new_loc_descr): Likewise.
9406 (add_loc_descr): Likewise.
9407 (size_of_loc_descr): Likewise.
9408 (size_of_locs): Likewise.
9409 (output_loc_operands): Likewise.
9410 (output_loc_sequence): Likewise.
9411 (new_reg_loc_descr): New.
9412 (build_cfa_loc): Use it.
9413 (build_cfa_aligned_loc): Likewise.
9414 (one_reg_loc_descriptor): Likewise.
9415 (based_loc_descr): Likewise.
9416
4003301d
MLI
94172008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9418
9419 PR 30551
9420 * doc/invoke.texi (Wmain): Update.
9421 * c-decl.c (start_decl): warn_main is only 0 or 1.
9422 (start_function): Likewise. Fix formatting.
9423 (finish_function): Delete redundant warning.
9424 * c.opt (Wmain): Add Var(warn_main) and Init(-1).
9425 * c-opts (c_common_handle_option): -Wall only has effect if
9426 warn_main is uninitialized. OPT_Wmain is automatically
9427 handled. -pedantic also enables Wmain.
9428 (c_common_post_options): Handle all logic for Wmain here.
9429 * c-common.c (warn_main): Delete.
4ae8027b 9430 (check_main_parameter_types): Make pedwarns conditional on OPT_Wmain.
4003301d
MLI
9431 * c-common.h (warn_main): Delete.
9432
6cd7942d
L
94332008-08-13 H.J. Lu <hongjiu.lu@intel.com>
9434
9435 PR middle-end/36701
9436 * expr.c (emit_group_store): Allocate stack temp with the
9437 largest alignment when copying from register to stack.
9438
99f536cc
RG
94392008-08-13 Richard Guenther <rguenther@suse.de>
9440
9441 * tree.h (maybe_fold_offset_to_address): Declare.
9442 * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
9443 (ccp_fold): Handle pointer conversions the same as fold_stmt.
9444 Likewise for POINTER_PLUS_EXPR.
9445 (maybe_fold_offset_to_reference): Enable disabled code.
9446 (maybe_fold_offset_to_address): New function.
9447 (fold_stmt_r): Use it.
9448 (fold_gimple_assign): Likewise.
9449 * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
9450 (gimplify_expr): Likewise.
9451
e3f05c4e
MLI
94522008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9453
9454 * toplev.h (pedwarn_at): Fix declaration.
8a88c276 9455
c71cfaaf
JM
94562008-08-13 Joseph Myers <joseph@codesourcery.com>
9457
9458 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9459 LINK_SPEC): Use %R in -Y P argument.
9460
85790e66
MLI
94612008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9462
9463 PR c/15236
9464 * diagnostic.c (pedwarn_at): New.
9465 * toplev.h (pedwarn_at): Declare.
9466 * c-tree.h (build_enumerator): Update declaration.
9467 * c-decl.c (finish_enum): Update comment.
9468 (build_enumerator): Take a location parameter. Give a pedwarn but do
9469 not perform any conversion.
9470 * c-parser.c (c_parser_enum_specifier): Set correct location for
9471 enumerator.
9472
374035cb
MLI
94732008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9474
9475 PR 35635
9476 * c-common.c (conversion_warning): Use a switch. Ignore boolean
9477 expressions except for conversions to signed:1 bitfields. Handle
9478 COND_EXPR with constant operands.
8a88c276 9479
25c6036a
RG
94802008-08-13 Richard Guenther <rguenther@suse.de>
9481
9482 PR tree-optimization/15255
9483 * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
9484 (struct oecount_s): New struct and VEC types.
9485 (cvec): New global.
9486 (oecount_hash): New function.
9487 (oecount_eq): Likewise.
9488 (oecount_cmp): Likewise.
9489 (zero_one_operation): New function.
9490 (build_and_add_sum): Likewise.
9491 (undistribute_ops_list): Perform un-distribution of multiplication
9492 and division on the chain of summands.
9493 (should_break_up_subtract): Also break up subtracts for factors.
9494 (reassociate_bb): Delete dead visited statements.
9495 Call undistribute_ops_list. Re-sort and optimize if it did something.
9496 * passes.c (init_optimization_passes): Move DSE before
9497 reassociation.
9498 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
9499 PHI nodes.
9500
e1765251
JJ
95012008-08-12 Janis Johnson <janis187@us.ibm.com>
9502
db79b0cd
JJ
9503 * doc/invoke.texi (-fipa-pta): Say the option is experimental.
9504
e1765251
JJ
9505 * doc/invoke.texi: Revert unintended checkin.
9506
4d2b059d
NF
95072008-08-12 Nathan Froyd <froydnj@codesourcery.com>
9508
9509 PR libgomp/26165
4d2b059d
NF
9510 * gcc.c (include_spec_function): Tweak call to find_a_file.
9511
4c29307d
JJ
95122008-08-12 Jakub Jelinek <jakub@redhat.com>
9513
c0285905
JJ
9514 PR middle-end/37014
9515 * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
9516 and TRUTH_ORIF_EXPR.
9517 * dojump.c (do_jump): Likewise.
9518
4c29307d
JJ
9519 PR tree-optimization/37084
9520 * tree-inline.c (copy_bb): Call gimple_regimplify_operands
9521 if id->regimplify, don't assume stmt is a cast assignment.
9522
bad4f40b
AS
95232008-08-12 Anatoly Sokolov <aesok@post.ru>
9524
ed6fa129 9525 * final.c (final_scan_insn): Use app_enable/app_disable functions.
bad4f40b 9526
905cd1b9
UW
95272008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9528
9529 PR bootstrap/37097
9530 * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
9531 by last change.
9532
b8972354
UW
95332008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9534
9535 * defaults.h (TARGET_FLOAT_FORMAT): Remove.
9536 (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
9537
9538 * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
9539 * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
9540 * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
9541 * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
9542 * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
9543
9544 * doc/tm.texi (Storage Layout): Remove documentation for
9545 TARGET_FLOAT_FORMAT.
9546
9547 * simplify-rtx.c (simplify_binary_operation_1): Replace
9548 TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
9549
4099e2c2
UW
95502008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9551
9552 * real.h (struct real_format): New member has_sign_dependent_rounding.
9553 * real.c (ieee_single_format, mips_single_format, motorola_single_format,
9554 spu_single_format, ieee_double_format, mips_double_format,
9555 motorola_double_format, ieee_extended_motorola_format,
9556 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
9557 ieee_extended_intel_96_round_53_format, ibm_extended_format,
9558 mips_extended_format, ieee_quad_format, mips_quad_format,
9559 vax_f_format, vax_d_format, vax_g_format): Initialize it.
9560 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
9561
9562 * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
9563 MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
9564 * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
9565 MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
9566 (ROUND_TOWARDS_ZERO): Likewise.
9567
9568 * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
9569 (FLOAT_MODE_FORMAT): New macro.
9570 (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
9571 (MODE_COMPOSITE_P): ... this new macro.
9572 (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
9573 MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
9574 * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
9575
9576 * flags.h: Include "real.h".
9577
9578 * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
9579 REAL_MODE_FORMAT_COMPOSITE_P.
9580 * simplify-rtx.c (simplify_const_binary_operation): Likewise.
9581
9582 * doc/tm.texi (Storage Layout): Remove documentation of
9583 MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
9584 MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of
9585 ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
9586 they only apply to libgcc2.a.
9587
e0bddf10
UW
95882008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9589
9590 * config/spu/float_disf.c: New file.
9591 * config/spu/float_unsdisf.c: New file.
9592 * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
9593 (LIB2FUNCS_EXCLUDE): Define.
9594
3e479de3
UW
95952008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9596 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
9597
9598 * real.h (struct real_format): New member round_towards_zero.
9599 * real.c (round_for_format): Respect fmt->round_towards_zero.
9600 (ieee_single_format, mips_single_format, motorola_single_format,
9601 spu_single_format, ieee_double_format, mips_double_format,
9602 motorola_double_format, ieee_extended_motorola_format,
9603 ieee_extended_intel_96_format, ieee_extended_intel_128_format,
9604 ieee_extended_intel_96_round_53_format, ibm_extended_format,
9605 mips_extended_format, ieee_quad_format, mips_quad_format,
9606 vax_f_format, vax_d_format, vax_g_format): Initialize it.
9607 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
9608
9609 * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
9610 real_format to choose rounding mode when calling MPFR functions.
9611 (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
9612 (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
9613
9614 * real.h (real_to_decimal_for_mode): Add prototype.
9615 * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
9616 Respect target rounding mode when generating decimal representation.
9617 (real_to_decimal): New stub for backwards compatibility.
9618 * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
9619 real_to_decimal_for_mode instead of real_to_decimal.
9620
9621 * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
9622
88f091f5
UW
96232008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9624 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
9625
9626 * real.c (spu_single_format): New variable.
9627 * real.h (spu_single_format): Declare.
9628
9629 * config/spu/spu.c (spu_override_options): Install SFmode format.
9630 (spu_split_immediate): Use integer mode to operate on pieces of
9631 floating-point values in all cases.
9632
9633 * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
9634 ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
9635 ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
9636
4230d0fe
UW
96372008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9638
9639 * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
9640
359e19d5
UW
96412008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9642
9643 * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
9644
2d7231a3
JJ
96452008-08-12 Jakub Jelinek <jakub@redhat.com>
9646
9647 PR c++/36688
9648 * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
9649 on the VAR_DECL instead of TYPE_READONLY on its type.
9650
ad2dd72a
IR
96512008-08-12 Ira Rosen <irar@il.ibm.com>
9652
9653 * tree-vectorizer.c: Depend on langhooks.h.
9654 (supportable_widening_operation): Add two arguments. Support double
9655 type conversions.
9656 (supportable_narrowing_operation): Likewise.
8a88c276 9657 * tree-vectorizer.h (supportable_widening_operation): Add two
ad2dd72a
IR
9658 arguments.
9659 (supportable_narrowing_operation): Likewise.
9660 * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
9661 supportable_widening_operation with correct arguments.
9662 * tree-vect-transform.c (vectorizable_conversion): Likewise.
9663 (vectorizable_type_demotion): Support double type conversions.
9664 (vectorizable_type_promotion): Likewise.
9665 * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
9666
7edfb083
MM
96672008-08-11 Michael Matz <matz@suse.de>
9668
9669 * i386/i386.c (override_options): Move initialisation from
9670 flag_schedule_insns_after_reload to here from ...
9671 (optimization_options): ... here.
9672
6f21ff3e
JJ
96732008-08-11 Jakub Jelinek <jakub@redhat.com>
9674
9675 PR rtl-optimization/36998
9676 * dwarf2out.c (compute_barrier_args_size_1,
9677 compute_barrier_args_size): Temporarily remove assertions.
9678
de9a4397
MLI
96792008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9680
9681 PR middle-end/20644
9682 * tree-ssa.c (struct walk_data): Add new flag
9683 warn_possibly_uninitialized.
9684 (warn_uninitialized_var): Use it.
9685 (warn_uninitialized_vars): New.
9686 (execute_early_warn_uninitialized): Call it.
9687 (execute_late_warn_uninitialized): Likewise.
9688
d47c3b4e
AP
96892008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
9690
9691 PR middle-end/36238
9692 * reload1.c (gen_reload): Guard calls to get_secondary_mem
9693 for memory subregs.
9694
5e04ef8f
JH
96952008-08-09 Jan Hubicka <jh@suse.cz>
9696
9697 PR target/37055
9698 * optabs.c (maybe_emit_unop_insn): Remove produced code if
9699 expansion failed.
9700 (expand_fix): Be prepared for expansion to fail.
9701 (expand_sfix_optab): Remove instructions if expansion failed.
9702
708fa3b5
AS
97032008-08-09 Anatoly Sokolov <aesok@post.ru>
9704
9705 * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
9706 avr31 architecture.
9707 * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
9708 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9709
08d0963a
RS
97102008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
9711
9712 * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
9713 mips/t-libgcc-mips16 to tmake_file.
9714 * config/mips/mips-protos.h (mips_call_type): New enum.
9715 (mips_pic_base_register, mips_got_load): Declare.
9716 (mips_restore_gp): Take an rtx argument.
9717 (mips_use_pic_fn_addr_reg_p): Declare.
9718 (mips_expand_call): Replace the sibcall_p argument with
9719 a mips_call_type argument. Add a lazy_p parameter.
9720 (mips_split_call): Declare.
9721 * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
9722 (MIPS16_PIC_TEMP): Likewise.
9723 (reg_class): Delete M16_NA_REGS.
9724 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
9725 (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
9726 (mips_split_hi_p): Declare.
9727 * config/mips/mips.c (mips_split_hi_p): New array.
9728 (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
9729 (mips_got_symbol_type_p): New function.
9730 (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
9731 (mips16_stub_function_p): New function.
9732 (mips16_local_function_p): Likewise.
9733 (mips_use_pic_fn_addr_reg_p): Likewise.
9734 (mips_cannot_force_const_mem): Return false for HIGHs.
9735 Extend CONST_INT and symbolic handling to MIPS16, using
9736 mips_symbol_insns to check that the base symbol type is a
9737 legitimate constant. Reject GOT-based constants if
9738 TARGET_MIPS16_PCREL_LOADS.
9739 (mips_const_insns): Check targetm.cannot_force_const_mem when
9740 decomposing a symbolic base and a large offset.
9741 (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
9742 When calling a function that needs $25 from MIPS16 code,
9743 move the target address into $25 separately and add a USE
9744 to the call insn.
9745 (mips16_gp_pseudo_reg): Insert the initializer immediately
9746 before the first real insn.
9747 (mips_pic_base_register, mips_got_load): New functions.
9748 (mips_split_symbol): Generalize the name of the LO_SUM_OUT
9749 parameter to LOW_OUT. Say that it can be any valid SET_SRC
9750 when splitting a load-address operation. Split SYMBOL_GOT_DISP
9751 constants and highs of SYMBOL_GOT_PAGE_OFST constants.
9752 (mips_call_tls_get_addr): Update the call to mips_expand_call,
9753 also passing NULL_RTX rather than const0_rtx as the aux argument.
9754 (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
9755 instead of TARGET_EXPLICIT_RELOCS.
9756 (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
9757 (mips_load_call_address): Replace the sibcall_p argument with
9758 a mips_call_type argument. Use mips_got_load.
9759 (mips16_local_alias): New structure.
9760 (mips16_local_aliases): New variable.
9761 (mips16_local_aliases_hash): New function.
9762 (mips16_local_aliases_eq): Likewise.
9763 (mips16_local_alias): Likewise.
9764 (mips16_stub_function): Likewise.
9765 (mips16_build_function_stub): Create a local alias for the target
9766 function. Handle TARGET_ABICALLS. For PIC abicalls, emit a
9767 .cpload directive and an R_MIPS_NONE relocation for the target
9768 function, then load the alias rather than the function itself.
9769 Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
9770 (mips16_copy_fpr_return_value): Use mips16_stub_function and
9771 mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol.
9772 (mips16_build_call_stub): Replace the FN parameter with an
9773 FN_PTR parameter. Force the address into a register if it
9774 isn't a call_insn_operand; don't rely on the caller to do this.
9775 If a call to a locally-defined and locally-binding MIPS16
9776 function must be made indirectly, redirect the call to the
9777 function's local alias. Use mips16_stub_function_p,
9778 mips16_stub_function, mips_expand_call and use_reg.
9779 Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
9780 Use explicit %hi and %lo accesses where possible.
9781 Use MIPS_CALL to generate the correct code form of a
9782 jal instruction. Add clobbers of $18 instead of uses.
9783 Update the call to mips_emit_call_insn.
9784 (mips_expand_call): Replace the SIBCALL_P argument with a
9785 mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
9786 Take a LAZY_P parameter. Call mips16_build_call_stub first,
9787 allowing it to modify the call address. Update the calls to
9788 mips_load_call_address and mips_emit_call_insn.
9789 (mips_split_call): New function.
9790 (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if
9791 !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of
9792 SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
9793 (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
9794 (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
9795 if TARGET_MIPS16.
9796 (mips_cprestore_slot): New function.
9797 (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16
9798 and use mips_cprestore_slot.
9799 (mips_output_function_prologue): Handle TARGET_MIPS16 for
9800 LOADGP_OLDABI.
9801 (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
9802 then use a copygp_mips16 instruction to set up $28.
9803 (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
9804 (mips16_lay_out_constants): Call split_all_insns_noflow.
9805 (mips_reorg_process_insns): Explicitly set all_noreorder_p to
9806 false if TARGET_MIPS16.
9807 (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
9808 (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the
9809 mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
9810 (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
9811 MIPS16 code. Allow MIPS16 o32 PIC.
9812 (mips_override_options): Allow MIPS16 o32 PIC.
9813 * config/mips/mips.md: Lower CONST_GP_P moves into register moves
9814 after reload if TARGET_USE_GOT.
9815 (UNSPEC_COPYGP): New constant.
9816 (length): Use a default length of 8 for MIPS16 GOT loads.
9817 (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
9818 (*got_page<mode>): Check mips_split_hi_p.
9819 (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
9820 (unspec_got<mode>, unspec_call<mode>): New expanders.
9821 (load_got<mode>, load_call<mode>): Remove the length attributes.
9822 Use a got attribute instead of a type attribute.
9823 (copygp_mips16): New insn.
9824 (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
9825 (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
9826 (sibcall, sibcall_value, call, call_value): Update the calls
9827 to mips_expand_call.
9828 (call_internal, call_value_internal): Use mips_split_call.
9829 (call_value_multiple_internal): Likewise.
9830 (call_split): Move after call_internal (the insn it is split from).
9831 (call_internal_direct, call_value_internal_direct): Turn into
9832 define_insn_and_splits. Split if TARGET_SPLIT_CALLS.
9833 (call_direct_split, call_value_direct_split): New patterns.
9834 * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
9835 and use M16_REGS instead of M16_NA_REGS.
9836 * config/mips/predicates.md (const_call_insn_operand): Replace
9837 the TARGET_ABSOLUTE_ABICALLS-based check with a more general
9838 mips_use_pic_fn_addr_reg_p check.
9839 (move_operand): Reject HIGHs if mips_split_hi_p.
9840 * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
9841 (__mips16_floatunsisf): Inline __mips16_floatsisf.
9842 (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
9843 * config/mips/libgcc-mips16.ver: New file.
9844 * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
9845 $(srcdir)/config/mips/libgcc-mips16.ver.
9846
7462a715
RS
98472008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
9848
02bb8bce
UB
9849 * config/mips/mips.c (mips_unspec_address_offset): Move earlier
9850 in file.
7462a715
RS
9851 (mips_unspec_address, mips_unspec_offset_high): Likewise.
9852 (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
9853 (mips16_cfun_returns_in_fpr_p): Likewise.
9854
57972505
RS
98552008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
9856
9857 * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
9858 * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
9859 rather than 4 to PC.
9860
e538e028
RS
98612008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
9862
9863 * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
9864 (FUNCTION_PROFILER): Save the static chain pointer into $2
9865 beforehand and restore it aftewards.
9866 (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target
9867 address directly into $25 and call the function through $25;
9868 do not clobber $3. Pad the DImode version to cover the space
9869 left by the deleted $25 <- $3 move.
9870 (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
9871 the removal of the $25 <- $3 move.
9872 (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
9873 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
9874
b2b61607
RS
98752008-08-09 Richard Sandiford <rdsandiford@googlemail.com>
9876 Daniel Jacobowitz <dan@codesourcery.com>
9877
9878 * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
9879 * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
9880 (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
9881 * config/mips/mips.c (mips_start_function_definition): New function.
9882 (mips_end_function_definition): Likewise.
9883 (mips_output_function_prologue): Use mips_start_function_definition.
9884 (mips_output_function_epilogue): Use mips_end_function_definition.
9885 (build_mips16_function_stub): Use mips_start_function_definition
9886 and mips_end_function_definition.
9887 (build_mips16_call_stub): Likewise.
9888
7c9577be
RG
98892008-08-09 Richard Guenther <rguenther@suse.de>
9890
9891 * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
9892 * gimple.h (gimple_call_fn): Adjust comment.
9893 (gimple_call_set_fndecl): New function.
9894 (gimple_call_fndecl): Adjust for GIMPLE_CALL no
9895 longer having bare FUNCTION_DECL operand.
9896 (gimple_call_return_type): Likewise.
9897 * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
9898
9899 * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
9900 (gimple_mod_pow2): Likewise.
9901 (gimple_mod_subtract): Likewise.
9902 (gimple_ic): Likewise.
9903 (gimple_stringop_fixed_value): Likewise.
9904 (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
9905 longer having bare FUNCTION_DECL operand.
9906 * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
9907 * omp-low.c (optimize_omp_library_calls): Likewise.
9908 * cgraphunit.c (update_call_expr): Likewise.
9909 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
9910 (execute_convert_to_rsqrt): Likewise.
9911 * cfgexpand.c (gimple_to_tree): Simplify.
9912 (release_stmt_tree): Fix for GIMPLE_CALL no longer having
9913 bare FUNCTION_DECL operand.
9914 * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
9915 (convert_gimple_call): Use gimple_call_fndecl.
9916 * c-common.c (c_warn_unused_result): Likewise.
9917
ca085fd7
MLI
99182008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9919
9920 PR c/17880
9921 * c-typeck.c (digest_init): Call verify_sequence_points from here.
9922 (c_finish_return): Likewise.
9923 (c_start_case): Likewise.
4ae8027b 9924 * c-common.c (warn_for_collisions_1): Use explicit location in warning.
ca085fd7
MLI
9925 * c-parser.c (c_parser_condition): New. Call
9926 verify_sequence_points.
9927 (c_parser_paren_condition): Call c_parser_condition.
9928 (c_parser_for_statement): Call c_parser_condition.
9929
71205d17
MLI
99302008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9931
9932 PR 36901
8a88c276 9933 * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
71205d17
MLI
9934 * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
9935 Moved from diagnostic.h
9936 (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
9937 DK_PERMERROR.
9938 (emit_diagnostic): New.
9939 (warning0, pedwarn0): Delete.
8a88c276 9940 (warning, warning_at, pedwarn, permerror): Return bool.
71205d17
MLI
9941 * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
9942 Moved to diagnostic.c.
9943 (struct diagnostic_context): Use correct type for
9944 classify_diagnostic.
9945 (diagnostic_report_diagnostic): Update declaration.
9946 (emit_diagnostic): Declare.
8a88c276 9947 * errors.c (warning): Return bool.
71205d17
MLI
9948 * errors.h (warning): Update declaration.
9949 * toplev.h (warning0, pedwarn0): Delete.
9950 (warning, warning_at, pedwarn, permerror): Return bool.
9951 * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
9952 * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
9953 inform. Update all calls.
9954 (diagnose_mismatched_decls): Check return value of warning/pedwarn
9955 before giving informative note.
8a88c276
AS
9956 (implicit_decl_warning): Likewise.
9957 * c-typeck.c (build_function_call): Likewise.
9958 * tree-sssa.c (warn_uninit): Likewise.
71205d17
MLI
9959 * builtins.c (gimplify_va_arg_expr): Likewise.
9960
c73d5dd9
MLI
99612008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9962
9963 PR 7651
9964 * doc/invoke.texi (-Wextra): Move warning from here...
9965 (-Wuninitialized): ... to here.
8a88c276 9966
e73f7547
MLI
99672008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9968
9969 PR 28875
9970 * flags.h (set_Wunused): Delete
9971 * toplev.c (process_options): Handle Wunused flags here.
9972 * opts.c (maybe_warn_unused_parameter): Delete.
9973 (common_handle_option): Replace set_Wunused by warn_unused.
9974 (set_Wextra): Do not handle Wunused-parameter here.
9975 (set_Wunused): Delete.
9976 * c-opts.c (c_common_handle_option): Replace set_Wunused by
9977 warn_unused.
9978 * common.opt (Wunused): Add Var and Init.
9979 (Wunused-function): Likewise.
9980 (Wunused-label): Likewise.
9981 (Wunused-parameter): Likewise.
9982 (Wunused-value): Likewise.
9983 (Wunused-variable): Likewise.
8a88c276 9984
d40c9e33
PB
99852008-08-08 Peter Bergner <bergner@vnet.ibm.com>
9986
e73f7547
MLI
9987 * doc/invoke.texi: Add cpu_type power7.
9988 * config.in (HAVE_AS_VSX): New.
9989 * config.gcc: Add cpu_type power7.
9990 * configure.ac (HAVE_AS_VSX): Check for assembler support of the
9991 VSX instructions.
9992 * configure: Regenerate.
9993 * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
9994 power5.
9995 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
9996 (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
9997 (EXTRA_SPECS): Add asm_cpu_power7 spec string.
9998
7910ae0c
DN
99992008-08-08 Dorit Nuzman <dorit@il.ibm.com>
10000
10001 * tree-vect-transform.c (vectorizable_conversion): Pass the integral
10002 type to vectorize.builtin_conversion.
10003 (vectorizable_conversion): Likewise.
10004 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
10005 integral type as input.
10006 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
10007 FIX_TRUNC_EXPR.
10008 (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
10009 and ALTIVEC_BUILTIN_VCTSXS.
10010 (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
8a88c276 10011 formatting.
7910ae0c 10012
174ef36d
RG
100132008-08-08 Richard Guenther <rguenther@suse.de>
10014
10015 * tree-ssa-ccp.c (likely_value): Calls are not all varying.
10016 (surely_varying_stmt_p): Calls are varying only if they are
10017 non-builtin and not indirect or have no result.
10018 (ccp_fold): Re-instantiate code before the tuples merge.
10019
0f336c35
RG
100202008-08-08 Richard Guenther <rguenther@suse.de>
10021
10022 PR tree-optimization/37056
10023 * gimple.h (gimple_assign_rhs_class): New helper function.
10024 * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
10025 unary operations properly.
10026
b2077fd2
JH
100272008-08-07 Jan Hubicka <jh@suse.cz>
10028
10029 * i386.h (ix86_size_cost): Declare.
10030 (ix86_cur_cost): New function macro.
10031 * i386.md (peepholes expanding size and splitters): Predicate by
10032 optimize_insn_for_speed_p.
10033 (peepholes reduce size and splitters): Predicate by
10034 optimize_insn_for_size_p.
10035 * i386.c (ix86_size_cost): Rename from ...
10036 (size_cost): This one.
10037 (override_options): Update.
10038 (decide_alg): Likewise.
10039 (ix86_expand_clear): Use RTL profile.
10040 (ix86_pad_returns): Use RTL profile.
10041
a8ba47cb
JH
100422008-08-07 Jan Hubicka <jh@suse.cz>
10043
10044 * recog.c (split_all_insns): Set RTL profile
10045 (peephole2_optimize): Likewise.
10046 * function.c (thread_prologue_and_epilogue_insns): Likewise.
10047 * combine.c (combine_instructions): Likewise.
10048
03c3034e
KG
100492008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10050
10051 * c-common.c (c_common_reswords): Also warn about keyword "bool".
10052
b412869c 100532008-08-07 Bob Wilson <bob.wilson@acm.org>
8a88c276 10054
ed6fa129
UB
10055 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
10056 value in a6 after the set_frame_ptr insn.
8a88c276 10057
09828811
RH
100582008-08-07 Richard Henderson <rth@redhat.com>
10059
10060 PR debug/37033
10061 * gcc.c (cpp_options): Pass along -g*.
10062
874d42b9
JM
100632008-08-07 Joseph Myers <joseph@codesourcery.com>
10064
10065 * config/arm/arm.c (output_move_neon): Update comment describing
10066 big-endian vector layout.
10067 (arm_assemble_integer): Do not handle big-endian NEON vectors
10068 specially.
10069 * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
10070 neon_vget_lane<mode>_sext_internal,
10071 neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
10072 element indices for big-endian.
10073
058514b3
RH
100742008-08-07 Richard Henderson <rth@redhat.com>
10075
10076 * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
10077 * configure, config.in: Rebuild.
10078 * debug.h (dwarf2out_do_cfi_asm): Declare.
10079 * c-cppbuiltin.c (c_cpp_builtins): Use it.
10080 * dwarf2out.c (dwarf2out_do_cfi_asm): New.
10081 (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
10082 dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
10083
9940eebd
JM
100842008-08-07 Joseph Myers <joseph@codesourcery.com>
10085
10086 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
10087 movv2si_internal): Combine into mov<mode>_internal.
10088 (movv2si_internal_2): Remove.
10089
bdfd2026
JH
100902008-08-07 Jan Hubicka <jh@suse.cz>
10091
10092 PR target/37048
8a88c276 10093 * i386.md (single stringop patterns): Enable unconditionally.
bdfd2026 10094
b53b23dc
L
100952008-08-07 H.J. Lu <hongjiu.lu@intel.com>
10096
10097 PR target/36992
4ae8027b 10098 * config/i386/emmintrin.h (_mm_move_epi64): Use __builtin_ia32_movq128.
b53b23dc
L
10099
10100 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
10101 (bdesc_args): Add IX86_BUILTIN_MOVQ128.
10102
10103 * config/i386/sse.md (sse2_movq128): New.
10104
10105 * doc/extend.texi: Document __builtin_ia32_movq128.
10106
9aa4d3c1
RG
101072008-08-07 Richard Guenther <rguenther@suse.de>
10108
10109 PR middle-end/37042
10110 * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
10111 pointers can access anything.
10112
18bd082d
JH
101132008-08-06 Jan Hubicka <jh@suse.cz>
10114
10115 * optabs.c (emit_unop_insn): Break out to ...
10116 (maybe_emit_unop_insn): ... this one.
10117 (expand_sfix_optab): Use maybe variant.
10118 * optabs.h (maybe_emit_unop_insn): Declare.
10119
10120 * i386.md (mov0 patterns): Enable by default.
10121 (FP conversion expanders): Disable expansion of code expanding
10122 sequences when instruction should be optimized for size.
10123 (single strinop patterns): Enable when optimizing for size.
10124 (string expanders): Disable expanding of code expanding sequences
10125 when optimizning instruction for size.
10126 * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
10127 per BB basis.
10128 (ix86_fp_comparison_sahf_cost): Likewise.
10129 (ix86_expand_branch): Likewise.
10130 (ix86_expand_ashl_const): Likewise.
10131 (ix86_split_ashl): Likewise.
10132 (ix86_expand_strlen): Likewise.
10133 (ix86_emit_fp_unordered_jump): Likewie.
10134
2696a995
KG
101352008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10136
10137 * c-common.c: Fix typo.
10138 (c_common_reswords): Activate more C++ keyword warnings.
10139
10140 * matrix-reorg.c (compute_offset): Avoid C++ keywords.
10141
7e99f74b 101422008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
ed6fa129 10143
7e99f74b
MLI
10144 PR 26785
10145 * diagnostic.c (permerror_at): New.
10146 * toplev.h (permerror_at): Declare.
8a88c276 10147
4eee6569
VK
101482008-08-06 Victor Kaplansky <victork@il.ibm.com>
10149 Ira Rosen <irar@il.ibm.com>
10150
10151 * tree-vect-transform.c (vect_model_simple_cost): Return
10152 immediately if stmt is pure SLP.
10153 (vect_model_store_cost): Ditto.
10154 (vect_model_load_cost): Ditto.
10155 (vectorizable_store): Remove PURE_SLP check before call
10156 to vect_model_store_cost.
10157 (vect_model_store_cost): When checking whether stmt describe
10158 strided access, add a check that it is not slp_node.
10159
2d12797c
MLI
101602008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10161
10162 PR 8715
10163 * c-common.c (warn_for_sign_compare): New. Handle separately the
10164 case that 'constant' is zero.
10165 * c-typeck.c (build_binary_op): Move code to c-common.c
8a88c276 10166
0a2aaacc
KG
101672008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10168
10169 * config/alpha/alpha.c (alpha_preferred_reload_class,
10170 alpha_secondary_reload, alpha_emit_set_const_1, function_value,
10171 alpha_output_mi_thunk_osf): Avoid C++ keywords.
10172 * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
10173 * config/arm/arm.md: Likewise.
10174 * config/avr/avr-protos.h (preferred_reload_class,
10175 test_hard_reg_class, avr_simplify_comparison_p,
10176 out_shift_with_cnt, class_max_nregs): Likewise.
10177 * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
10178 output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
10179 preferred_reload_class, test_hard_reg_class): Likewise.
10180 * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
10181 bfin_memory_move_cost, bfin_secondary_reload,
10182 bfin_output_mi_thunk): Likewise.
10183 * config/crx/crx.c (crx_secondary_reload_class,
10184 crx_memory_move_cost): Likewise.
10185 * config/frv/frv-protos.h (frv_secondary_reload_class,
10186 frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
10187 * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
10188 frv_secondary_reload_class, frv_class_likely_spilled_p,
10189 frv_class_max_nregs): Likewise.
10190 * config/h8300/h8300.c (h8300_classify_operand,
10191 h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
10192 Likewise.
10193 * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
10194 * config/ia64/ia64.c (ia64_preferred_reload_class,
10195 ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
10196 * config/iq2000/iq2000.c (gen_int_relational): Likewise.
10197 * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
10198 Likewise.
10199 * config/m68hc11/m68hc11.c (preferred_reload_class,
10200 m68hc11_memory_move_cost): Likewise.
10201 * config/mcore/mcore.c (mcore_secondary_reload_class,
10202 mcore_reload_class): Likewise.
10203 * config/mips/mips.c (mips_hard_regno_mode_ok_p,
10204 mips_class_max_nregs, mips_cannot_change_mode_class,
10205 mips_preferred_reload_class, mips_secondary_reload_class,
10206 mips_output_mi_thunk): Likewise.
10207 * config/mmix/mmix.c (mmix_preferred_reload_class,
10208 mmix_preferred_output_reload_class, mmix_secondary_reload_class):
10209 Likewise.
10210 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
10211 Likewise.
10212 * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
10213 pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
10214 * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
10215 * config/rs6000/rs6000.c (paired_expand_vector_init,
10216 rs6000_secondary_reload_class, rs6000_output_mi_thunk,
10217 compare_section_name, rs6000_memory_move_cost): Likewise.
10218 * config/s390/s390.c (s390_emit_compare_and_swap,
10219 s390_preferred_reload_class, s390_secondary_reload,
10220 legitimize_pic_address, legitimize_tls_address,
10221 legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
10222 s390_class_max_nregs): Likewise.
10223 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
10224 * config/s390/s390.md: Likewise.
10225 * config/score/score-protos.h (score_secondary_reload_class,
10226 score_preferred_reload_class): Likewise.
10227 * config/score/score.c (score_preferred_reload_class,
10228 score_secondary_reload_class): Likewise.
10229 * config/score/score3.c (score3_output_mi_thunk,
10230 score3_preferred_reload_class, score3_secondary_reload_class,
10231 score3_hard_regno_mode_ok): Likewise.
10232 * config/score/score3.h (score3_preferred_reload_class,
10233 score3_secondary_reload_class): Likewise.
10234 * config/score/score7.c (score7_output_mi_thunk,
10235 score7_preferred_reload_class, score7_secondary_reload_class,
10236 score7_hard_regno_mode_ok): Likewise.
10237 * config/score/score7.h (score7_preferred_reload_class,
10238 score7_secondary_reload_class): Likewise.
10239 * config/sh/sh.c (prepare_move_operands, output_far_jump,
10240 output_branchy_insn, add_constant, gen_block_redirect,
10241 sh_insn_length_adjustment, sh_cannot_change_mode_class,
4ae8027b 10242 sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): Likewise.
0a2aaacc
KG
10243 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
10244 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
10245 xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
10246 xstormy16_preferred_reload_class): Likewise.
10247 * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
10248 xtensa_expand_atomic, override_options,
10249 xtensa_preferred_reload_class, xtensa_secondary_reload_class):
10250 Likewise.
10251 * reorg.c (try_merge_delay_insns): Likewise.
10252 * tree.c (merge_dllimport_decl_attributes): Likewise.
10253
10254 * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
10255
1b77ee03
MM
102562008-08-06 Michael Matz <matz@suse.de>
10257
10258 * Makefile.in (write_entries_to_file): Quote words.
10259 * gengtype.c: (read_input_line): Skip over leading white-space.
10260
6d656178
MG
102612008-08-06 Marc Gauthier <marc@tensilica.com>
10262
10263 * config.gcc: Match more processor names for Xtensa.
10264 * configure.ac: Likewise.
10265 * doc/install.texi (Specific): Likewise.
10266 * configure: Regenerate.
10267
82d6e6fc
KG
102682008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10269
10270 * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
10271 * calls.c (avoid_likely_spilled_reg): Likewise.
10272 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
10273 * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
10274 * config/i386/i386.c (ix86_expand_special_args_builtin,
10275 ix86_secondary_reload): Likewise.
10276 * except.c (struct eh_region, gen_eh_region_catch,
10277 remove_unreachable_regions, duplicate_eh_regions,
10278 assign_filter_values, build_post_landing_pads,
10279 sjlj_find_directly_reachable_regions, remove_eh_handler,
10280 reachable_next_level, foreach_reachable_handler,
10281 can_throw_internal_1, can_throw_external_1,
10282 collect_one_action_chain): Likewise.
10283 * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
10284 * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
10285 * function.c (update_temp_slot_address, instantiate_new_reg,
10286 instantiate_virtual_regs_in_rtx,
10287 instantiate_virtual_regs_in_insn): Likewise.
10288 * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
10289 * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
10290 gimplify_cleanup_point_expr): Likewise.
10291 * ipa-cp.c (ipcp_lattice_changed): Likewise.
10292 * passes.c (next_pass_1): Likewise.
10293 * print-tree.c (print_node_brief, print_node): Likewise.
10294 * profile.c (branch_prob): Likewise.
10295 * tree-dump.c (dump_register): Likewise.
10296 * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
10297 Likewise.
10298 * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
10299 copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
10300 copy_edges_for_bb, copy_cfg_body, copy_tree_r,
10301 copy_arguments_for_versioning, copy_static_chain): Likewise.
10302 * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
10303 add_new_name_mapping, register_new_name_mapping): Likewise.
10304 * tree-mudflap.c (mf_xform_derefs): Likewise.
10305 * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
10306 get_init_expr, combine_chains): Likewise.
10307 * tree-pretty-print.c (dump_generic_node): Likewise.
10308 * tree-ssa-structalias.c (create_variable_info_for): Likewise.
10309 * tree-vrp.c (simplify_cond_using_ranges): Likewise.
10310 * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
10311 * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
10312
01973e26
L
103132008-08-06 H.J. Lu <hongjiu.lu@intel.com>
10314
10315 PR middle-end/37010
10316 * calls.c (expand_call): Use the biggest preferred stack
10317 boundary.
10318
46662f25
MM
103192008-08-06 Michael Matz <matz@suse.de>
10320
10321 PR target/36613
10322 * reload.c (push_reload): Merge in,out,in_reg,out_reg members
10323 for reused reload, instead of overwriting them.
10324
e94a448f
L
103252008-08-06 H.J. Lu <hongjiu.lu@intel.com>
10326
10327 PR middle-end/37009
10328 * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
10329 for incoming stack boundary.
10330
10331 * function.c (assign_parm_find_entry_rtl): Update
10332 parm_stack_boundary.
10333
10334 * function.h (rtl_data): Add parm_stack_boundary.
10335
10336 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
10337 parm_stack_boundary for incoming stack boundary.
10338
e088f04b
JM
103392008-08-06 Joseph Myers <joseph@codesourcery.com>
10340
10341 * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
10342 for unrepresentable subregs or treat them as equal to other regs
10343 or subregs with the same register number.
10344
753b34d7
AH
103452008-08-06 Aldy Hernandez <aldyh@redhat.com>
10346
10347 PR middle-end/35432
10348 * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
10349 if want_value.
10350
c3702ff9
JH
103512008-08-06 Jan Hubicka <jh@suse.cz>
10352
10353 * predict.c (maybe_hot_frequency_p): When profile is absent, all
10354 frequencies might be hot.
10355
e0a17959
AK
103562008-08-06 Andreas Krebbel <krebbel1@de.ibm.com>
10357
10358 * reload.c (find_reloads): Force constants into literal pool
10359 also if they are wrapped in a SUBREG.
10360
c275297b
MK
103612008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
10362
10363 PR target/35659
10364 * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
10365 * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
10366 Don't allow predicated instructions for data speculation.
10367 * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
10368 declaration.
10369
a0d33ff8
MK
103702008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
10371
10372 * haifa-sched.c (extend_global): Split to extend_global_data and
10373 extend_region_data. Update all uses.
10374 (extend_all): Rename to extend_block_data.
10375
07da1cfc
MK
103762008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
10377
10378 * sched-rgn.c (new_ready): Check if instruction can be
10379 speculatively scheduled before attempting speculation.
10380 (debug_rgn_dependencies): Remove wrongful assert.
10381
c7133425
BW
103822008-08-05 Bob Wilson <bob.wilson@acm.org>
10383
10384 * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
8a88c276 10385
fa1615d7 103862008-08-05 Bob Wilson <bob.wilson@acm.org>
8a88c276 10387
fa1615d7
BW
10388 * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
10389 (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
10390 va_size, and type_size.
8a88c276 10391
8bd20621
JM
103922008-08-04 Jason Merrill <jason@redhat.com>
10393
10394 PR c++/37016
10395 * tree-ssa.c (useless_type_conversion_p_1): Call langhook
10396 if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
10397
8a24bf04
RH
103982008-08-05 Richard Henderson <rth@redhat.com>
10399
10400 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
10401 * configure: Rebuild.
10402
7352e27c
AP
104032008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
10404
10405 PR tree-opt/37024
10406 * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
10407 instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
10408 is a conversion.
10409
d4ea4622
RH
104102008-08-05 Richard Henderson <rth@redhat.com>
10411
10412 * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
10413 * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
10414 * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
10415 * common.opt (fdwarf2-cfi-asm): New.
10416 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
10417 * config.in, configure: Rebuild.
10418 * dwarf2asm.c (dw2_asm_output_data_raw): New.
02bb8bce
UB
10419 (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw):
10420 New.
d4ea4622
RH
10421 (dw2_force_const_mem): Externalize.
10422 * dwarf2asm.h: Update.
10423 * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
10424 generate a real label.
10425 (output_cfi_directive): New.
10426 (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
10427 (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
10428 (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
10429 and .cfi_lsda.
10430 (dwarf2out_end_epilogue): Emit .cfi_endproc.
10431 (output_loc_operands_raw, output_loc_sequence_raw): New.
10432 (output_cfa_loc_raw): New.
8a88c276 10433
302c3d8e
PB
104342008-08-05 Paul Brook <paul@codesourcery.com>
10435
10436 * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
10437 * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
10438 (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
10439 (arm_file_start): Add FPUTYPE_VFP3D16. Rename vfp3 to vfpv3.
10440 * config/arm/arm.h (TARGET_VFPD32): Define.
10441 (TARGET_VFP3): Use TARGET_VFPD32.
10442 (fputype): Add FPUTYPE_VFP3D16.
10443 (LAST_VFP_REGNUM): Use TARGET_VFPD32.
10444 * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
10445 * config/arm/arm-cores.def: Add cortex-r4f.
10446 * config/arm/arm-tune.md: Regenerate.
10447
e3834d38
UW
104482008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10449
10450 * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
10451 Reword some comments throughout the file.
10452
10453 (MFC_MIN_DMA_LIST_ELEMENTS): New define.
10454 (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
02bb8bce
UB
10455 (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of
10456 MFC_MIN_DMA_LIST_ELEMENTS.
10457 (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of
10458 MFC_MAX_DMA_LIST_ELEMENTS.
e3834d38
UW
10459
10460 (MFC_START_ENABLE): Remove PPU-only define.
10461 (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
10462 (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
10463
10464 (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
10465 (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
10466 (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
10467 (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
10468 (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
10469 (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
10470 (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
10471
10472 (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
10473 (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
10474 (mfc_sdcrt, mfc_sdcrtst): Likewise.
10475 (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
10476
10477 (spu_read_machine_status): Fix typo.
10478
9e071d06
UW
104792008-08-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10480
10481 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
10482 SUBREG of multi-word hard register.
10483 * config/spu/spu.c (valid_subreg): Likewise.
10484 (adjust_operand): Handle SUBREGs of multi-word hard registers.
10485
7eeef08e
RG
104862008-08-04 Richard Guenther <rguenther@suse.de>
10487
10488 * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
10489 the candidate with the stripped base if that base is different
10490 from the original base even for offset zero.
10491
8f45dcf8
RG
104922008-08-04 Richard Guenther <rguenther@suse.de>
10493
10494 PR middle-end/36691
10495 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
10496 check for no_overflow.
10497
26c86972
RG
104982008-08-04 Richard Guenther <rguenther@suse.de>
10499
10500 * tree-vect-transform.c (vectorizable_call): Fix tuplification.
10501
795dc4fc
PB
105022008-08-04 Paul Brook <paul@codesourcery.com>
10503
10504 * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
10505 (arm_order_regs_for_local_alloc): New function.
10506 * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
10507 prototype.
10508 * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
10509
6fc3c2b2
L
105102008-08-04 H.J. Lu <hongjiu.lu@intel.com>
10511
10512 PR target/37012
10513 * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
10514 instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
10515 (ix86_expand_epilogue): Likewise.
10516
5b2314f6
L
105172008-08-04 H.J. Lu <hongjiu.lu@intel.com>
10518
10519 * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
10520 in comments.
10521
b7c9c5ab
UB
105222008-08-03 Uros Bizjak <ubizjak@gmail.com>
10523
10524 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
10525 to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
10526 (*movv2sf_internal_rex64): Ditto.
10527
22660666
JH
105282008-08-03 Jan Hubicka <jh@suse.cz>
10529
10530 * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
10531 expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
10532 * expmed.c (expand_smod_pow2): Likewise.
10533
5617c135
UB
105342008-08-03 Uros Bizjak <ubizjak@gmail.com>
10535
10536 PR target/36992
10537 * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
10538 alternative 0 of operand 1.
10539 (*vec_concatv2di_rex64_sse): Ditto.
10540 (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
10541 of operand 1.
10542 (*sse2_storeq_rex64): Penalize allocation of "r" registers.
10543 * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
10544 of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
10545 (*movv2sf_internal_rex64): Ditto.
10546
ba63dfb9
RG
105472008-08-02 Richard Guenther <rguenther@suse.de>
10548
10549 PR target/35252
10550 * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
10551 (ssedoublesizemode): New mode attribute.
10552 (sse_shufps): Call gen_sse_shufps_v4sf.
10553 (sse_shufps_1): Macroize.
10554 (sse2_shufpd): Call gen_Sse_shufpd_v2df.
10555 (sse2_shufpd_1): Macroize.
10556 (vec_extract_odd, vec_extract_even): New expanders.
10557 (vec_interleave_highv4sf, vec_interleave_lowv4sf,
10558 vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
10559 * i386.c (ix86_expand_vector_init_one_nonzero): Call
10560 gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
10561 (ix86_expand_vector_set): Likewise.
10562 (ix86_expand_reduc_v4sf): Likewise.
10563
c9234c8d
DK
105642008-08-01 Doug Kwan <dougkwan@google.com>
10565
10566 * matrix-reorg.c: Re-enable all code.
10567 (struct malloc_call_data): Change CALL_STMT to gimple type.
10568 (collect_data_for_malloc_call): Tuplify.
5617c135 10569 (struct access_site_info): Change STMT to gimple type.
c9234c8d
DK
10570 (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
10571 and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
10572 (struct free_info): Change STMT to gimple type.
5617c135 10573 (struct matrix_access_phi_node): Change PHI to gimple type.
c9234c8d
DK
10574 (get_inner_of_cast_expr): Remove.
10575 (may_flatten_matrices_1): Tuplify.
10576 (may_flatten_matrices): Ditto.
10577 (mark_min_matrix_escape_level): Ditto.
5617c135 10578 (ssa_accessed_in_tree): Refactor statement RHS related code into ...
c9234c8d
DK
10579 (ssa_accessed_in_call_rhs): New
10580 (ssa_accessed_in_assign_rhs): New
10581 (record_access_alloc_site_info): Tuplify.
10582 (add_allocation_site): Ditto.
10583 (analyze_matrix_allocation_site): Ditto.
10584 (analyze_transpose): Ditto.
10585 (get_index_from_offset): Ditto.
10586 (update_type_size): Ditto.
10587 (analyze_accesses_for_call_expr): Tuplify and renamed into ...
10588 (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
10589 (analyze_accesses_for_phi_node): Tuplify.
10590 (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
10591 (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
10592 (analyze_matrix_accesses): Tuplify.
10593 (check_var_data): New call-back type for check_var_notmodified_p.
10594 (check_var_notmodified_p): Tuplify and use call-back struct to
10595 return statement found.
10596 (can_calculate_expr_before_stmt): Factor out statement related code
10597 into ...
10598 (can_calculate_stmt_before_stmt): New.
5617c135 10599 (check_allocation_function): Tuplify.
c9234c8d
DK
10600 (find_sites_in_func): Ditto.
10601 (record_all_accesses_in_func): Ditto.
10602 (transform_access_sites): Ditto.
10603 (transform_allocation_sites): Ditto.
10604 (matrix_reorg): Re-enable.
10605 (gate_matrix_reorg): Re-enable.
10606
07b11a21
JJ
106072008-08-01 Jakub Jelinek <jakub@redhat.com>
10608
10609 * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
10610 for labels for which it hasn't been set yet. If it has been set,
10611 stop walking insns and continue with next worklist item.
10612 (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
10613 if the only BARRIER is at the very end of a function.
10614
d015f7cc
L
106152008-08-01 H.J. Lu <hongjiu.lu@intel.com>
10616
10617 * cfgexpand.c (expand_stack_alignment): Assert that
10618 stack_realign_drap and drap_rtx must match.
10619
10620 * function.c (instantiate_new_reg): If DRAP is used to realign
10621 stack, replace virtual_incoming_args_rtx with internal arg
10622 pointer.
10623
678e7c65
RG
106242008-08-01 Richard Guenther <rguenther@suse.de>
10625
10626 * tree-ssa-pre.c (fini_pre): Take in_fre parameter. Free
10627 loop information only if we initialized it.
10628 (execute_pre): Call fini_pre with in_fre.
10629 * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
10630 if we do not unroll because we hit max-completely-peeled-insns.
10631 Use our estimation for consistency, do allow shrinking.
10632
2568f82a
L
106332008-08-01 H.J. Lu <hongjiu.lu@intel.com>
10634
10635 * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
10636 with MIN_STACK_BOUNDARY.
10637 (ix86_update_stack_boundary): Likewise.
10638 (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
10639 STACK_BOUNDARY.
10640
10641 * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
10642 (MIN_STACK_BOUNDARY): This.
10643
df8fa700
RG
106442008-08-01 Richard Guenther <rguenther@suse.de>
10645
10646 PR middle-end/36997
10647 * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
10648
5c3554b7
RG
106492008-08-01 Richard Guenther <rguenther@suse.de>
10650
10651 PR tree-optimization/36988
10652 * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
10653 do not matter if that doesn't change volatile qualification.
10654
47ad7893
PB
106552008-08-01 Paolo Bonzini <bonzini@gnu.org>
10656
10657 * configure.ac: Do not generate libada-mk. Do not subst
10658 host_cc_for_libada.
10659 * libada-mk.in: Remove.
10660 * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
10661 * configure: Regenerate.
10662
106632008-08-01 Basile Starynkevitch <basile@starynkevitch.net>
10664
8e352cd3
BS
10665 * tree-pass.h: Added comment about not dumping passes with name
10666 starting with star in struct opt_pass.
10667 * passes.c (register_dump_files_1): Don't do dump for a pass with
10668 name starting with star.
10669 * doc/passes.texi (Pass manager): Mention pass names and special
10670 meaning of star prefix to avoid dump.
10671
f2d6ca50
AN
106722008-07-31 Adam Nemet <anemet@caviumnetworks.com>
10673
10674 * config.gcc (mipsisa64r2*-*-linux*): New configuration. Set ISA
10675 to MIPS64r2.
10676 * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
10677 (ISA_MIPS64R2): New macro.
10678 (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
10679 (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
10680 ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
10681 ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
10682 ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
10683 ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
10684 ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
10685 (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
10686 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
10687 Move up to keep list alphabetically sorted.
10688 (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
10689 * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
10690 processor.
10691 * doc/invoke.texi (MIPS Options): Add -mips64r2.
10692 (-march=@var{arch}): Add mips64r2.
10693
24f9c418
L
106942008-07-31 H.J. Lu <hongjiu.lu@intel.com>
10695
10696 * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
10697
90d245c5
SE
106982008-07-31 Steve Ellcey <sje@cup.hp.com>
10699
10700 * expr.c (expand_assignment): Check for complete type.
10701
d2d93c32
L
107022008-07-31 H.J. Lu <hongjiu.lu@intel.com>
10703
10704 PR debug/36977
10705 * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
10706
10707 * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
10708 for stack alignment.
10709
5617c135 10710 * function.h (rtl_data): Add stack_realign_tried. Update comments.
d2d93c32 10711
c983efce
KK
107122008-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
10713
10714 * config/sh/sh.c (sh_canonical_va_list_type): Remove.
5617c135 10715 (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
c983efce 10716
88e2c810
JJ
107172008-07-31 Jakub Jelinek <jakub@redhat.com>
10718
10719 PR rtl-optimization/36419
10720 * dwarf2out.c (barrier_args_size): New variable.
10721 (compute_barrier_args_size, compute_barrier_args_size_1): New
10722 functions.
10723 (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
10724 if not called yet in the current function, use barrier_args_size
10725 array to find the new args_size value.
10726 (dwarf2out_frame_debug): Free and clear barrier_args_size.
10727
fc74cbc4
L
107282008-07-31 H.J. Lu <hongjiu.lu@intel.com>
10729
10730 PR debug/36980
10731 * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
10732 rule 19.
10733
d7831fdb
L
107342008-07-31 H.J. Lu <hongjiu.lu@intel.com>
10735
10736 PR debug/36976
10737 * dwarf2out.c (dwarf2out_args_size_adjust): New.
10738 (dwarf2out_stack_adjust): Use it.
10739 (dwarf2out_frame_debug_expr): Likewise.
10740
12aea97a
RG
107412008-07-31 Richard Guenther <rguenther@suse.de>
10742
10743 PR tree-optimization/36978
10744 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
10745 the generated condition.
10746
2dc74010
RG
107472008-07-31 Richard Guenther <rguenther@suse.de>
10748
10749 * passes.c (init_optimization_passes): Always call
10750 pass_early_warn_uninitialized.
5617c135 10751 * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
2dc74010
RG
10752 * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
10753 * doc/passes.texi (Warn for uninitialized variables): Adjust.
10754
b3e200e1
JJ
107552008-07-31 Jakub Jelinek <jakub@redhat.com>
10756
f9555f40
JJ
10757 PR c/36970
10758 * builtins.c (maybe_emit_free_warning): New function.
10759 (expand_builtin): Process BUILT_IN_FREE even at -O0. Call
10760 maybe_emit_free_warning for BUILT_IN_FREE.
10761
1e1d3887
JJ
10762 PR debug/36278
10763 * dwarf2out.c (get_context_die): New function.
10764 (force_decl_die, force_type_die): Use it.
10765 (dwarf2out_imported_module_or_decl): Likewise. If base_type_die
10766 returns NULL, force generation of DW_TAG_typedef and put that into
10767 DW_AT_import.
10768
b3e200e1
JJ
10769 PR preprocessor/36649
10770 * c-pch.c (c_common_read_pch): Save and restore
10771 line_table->trace_includes across PCH restore.
10772
01ddebf2
EB
107732008-07-30 Eric Botcazou <ebotcazou@adacore.com>
10774
10775 PR ada/36554
10776 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
10777
e49cf927 107782008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
b8c71e40
RAE
10779
10780 PR 36974
b3e200e1 10781 * final.c (call_from_call_insn): Handle COND_EXEC.
b8c71e40 10782
90c700cd
L
107832008-07-30 H.J. Lu <hongjiu.lu@intel.com>
10784
10785 * builtins.c (std_gimplify_va_arg_expr): Replace
10786 PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
10787 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
10788
2e3f842f
L
107892008-07-30 Joey Ye <joey.ye@intel.com>
10790 H.J. Lu <hongjiu.lu@intel.com>
10791
10792 * builtins.c (expand_builtin_setjmp_receiver): Replace
10793 virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
10794 (expand_builtin_apply_args_1): Likewise.
10795 (expand_builtin_longjmp): Need DRAP for stack alignment.
10796 (expand_builtin_apply): Likewise.
10797
10798 * caller-save.c (setup_save_areas): Call assign_stack_local_1
10799 instead of assign_stack_local to allow alignment reduction.
10800
10801 * calls.c (emit_call_1): Need DRAP for stack alignment if
10802 return pops.
10803 (expand_call): Replace virtual_incoming_args_rtx with
10804 crtl->args.internal_arg_pointer.
10805 * stmt.c (expand_nl_goto_receiver): Likewise.
10806
10807 * cfgexpand.c (get_decl_align_unit): Estimate stack variable
10808 alignment and store to stack_alignment_estimated and
10809 max_used_stack_slot_alignment.
10810 (expand_one_var): Likewise.
10811 (expand_stack_alignment): New function.
10812 (tree_expand_cfg): Initialize max_used_stack_slot_alignment
10813 and stack_alignment_estimated fields in rtl_data. Call
10814 expand_stack_alignment at end.
10815
10816 * defaults.h (INCOMING_STACK_BOUNDARY): New.
10817 (MAX_STACK_ALIGNMENT): Likewise.
10818 (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
10819 (SUPPORTS_STACK_ALIGNMENT): Likewise.
10820
10821 * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
10822 stack alignment when generating virtual registers.
10823
10824 * function.c (assign_stack_local): Renamed to ...
10825 (assign_stack_local_1): This. Add a parameter to indicate
10826 if it is OK to reduce alignment.
10827 (assign_stack_local): Use it.
10828 (instantiate_new_reg): Instantiate virtual incoming args rtx
10829 to vDRAP if stack realignment and DRAP is needed.
10830 (assign_parms): Collect parameter/return type alignment and
10831 contribute to stack_alignment_estimated.
10832 (locate_and_pad_parm): Likewise.
10833 (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
10834 with crtl->args.internal_arg_pointer.
10835
10836 * function.h (rtl_data): Add new field drap_reg,
10837 max_used_stack_slot_alignment, stack_alignment_estimated,
10838 stack_realign_needed, need_drap, stack_realign_processed and
10839 stack_realign_finalized.
10840 (stack_realign_fp): New macro.
10841 (stack_realign_drap): Likewise.
10842
10843 * global.c (compute_regsets): Frame pointer is needed when
10844 stack is realigned. Can eliminate frame pointer when stack is
10845 realigned and dynamic realigned argument pointer isn't used.
10846
10847 * reload1.c (update_eliminables): Frame pointer is needed
10848 when stack is realigned.
10849 (init_elim_table): Can eliminate frame pointer when stack is
10850 realigned and dynamic realigned argument pointer isn't used.
10851
10852 * rtl.h (assign_stack_local_1): Declare new funtion.
10853
10854 * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
10855 (TARGET_GET_DRAP_RTX): Likewise.
10856 (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
10857 TARGET_GET_DRAP_RTX.
10858
5617c135 10859 * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
2e3f842f
L
10860
10861 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
10862 STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
10863
108642008-07-30 Xuepeng Guo <xuepeng.guo@intel.com>
10865 H.J. Lu <hongjiu.lu@intel.com>
10866
10867 * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
10868 vdrap_reg, stack_realign and drap_reg_saved.
10869 (add_cfi): Don't allow redefining CFA when DRAP is used.
10870 (reg_save): Handle stack alignment.
10871 (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
10872 alignment. Don't generate DWARF information for (set fp sp)
10873 when DRAP is used.
10874 (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
10875 to INVALID_REGNUM.
10876 (int_loc_descriptor): Move prototype forward. Also define if
10877 DWARF2_UNWIND_INFO is true.
10878 (output_cfa_loc): Handle DW_CFA_expression.
10879 (build_cfa_aligned_loc): New.
10880 (based_loc_descr): Update assert for stack realign. For local
10881 variables, use sp+offset when stack is aligned without drap and
10882 fp+offset when stack is aligned with drap. For arguments, use
10883 cfa+offset when drap is used to align stack.
10884
108852008-07-30 Joey Ye <joey.ye@intel.com>
10886 H.J. Lu <hongjiu.lu@intel.com>
10887
10888 * config/i386/i386.c (ix86_force_align_arg_pointer_string):
10889 Break long line.
10890 (ix86_gen_andsp): New.
10891 (ix86_user_incoming_stack_boundary): Likewise.
10892 (ix86_default_incoming_stack_boundary): Likewise.
10893 (ix86_incoming_stack_boundary): Likewise.
10894 (ix86_can_eliminate): Likewise.
10895 (find_drap_reg): Likewise.
10896 (ix86_update_stack_boundary): Likewise.
10897 (ix86_get_drap_rtx): Likewise.
10898 (ix86_finalize_stack_realign_flags): Likewise.
10899 (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
10900 (TARGET_GET_DRAP_RTX): Likewise.
10901 (override_options): Overide option value for new options.
10902 (ix86_function_ok_for_sibcall): Remove check for
10903 force_align_arg_pointer.
10904 (ix86_handle_cconv_attribute): Likewise.
10905 (ix86_function_regparm): Likewise.
5617c135 10906 (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
2e3f842f
L
10907 (ix86_va_start): Replace virtual_incoming_args_rtx with
10908 crtl->args.internal_arg_pointer.
10909 (ix86_select_alt_pic_regnum): Check DRAP register.
10910 (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
10911 (ix86_compute_frame_layout): Compute frame layout wrt stack
10912 realignment.
5617c135 10913 (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
2e3f842f
L
10914 (ix86_expand_prologue): Decide if stack realignment is needed
10915 and generate prologue code accordingly.
10916 (ix86_expand_epilogue): Generate epilogue code wrt stack
10917 realignment is really needed or not.
8a88c276 10918
2e3f842f
L
10919 * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
10920 (ABI_STACK_BOUNDARY): Likewise.
10921 (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
10922 (STACK_REALIGN_DEFAULT): Likewise.
10923 (INCOMING_STACK_BOUNDARY): Likewise.
10924 (MAX_STACK_ALIGNMENT): Likewise.
10925 (ix86_incoming_stack_boundary): Likewise.
10926 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
10927 (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
10928 (CAN_ELIMINATE): Defined with ix86_can_eliminate.
10929 (machine_function): Remove force_align_arg_pointer.
10930
10931 * config/i386/i386.md (BX_REG): New.
10932 (R13_REG): Likewise.
10933
10934 * config/i386/i386.opt (mforce_drap): New.
10935 (mincoming-stack-boundary): Likewise.
10936 (mstackrealign): Add Init(-1).
10937
10938 * config/i386/i386-protos.h (ix86_can_eliminate): New
10939
109402008-07-30 H.J. Lu <hongjiu.lu@intel.com>
10941
10942 * doc/extend.texi: Update force_align_arg_pointer.
10943
10944 * doc/invoke.texi: Document -mincoming-stack-boundary. Update
10945 -mstackrealign.
10946
10947 * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
10948 (INCOMING_STACK_BOUNDARY): Likewise.
10949 (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
10950 (TARGET_GET_DRAP_RTX): Likewise.
10951
22129589
AS
109522008-07-30 Andreas Schwab <schwab@suse.de>
10953
10954 PR rtl-optimization/36929
10955 * dse.c (replace_inc_dec): Use emit_insn_before instead of
10956 add_insn_before and fix argument order.
10957 (replace_inc_dec_mem): Handle NULL rtx.
10958
35596784
AJ
109592008-07-30 Andrew Jenner <andrew@codesourcery.com>
10960
10961 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
22129589 10962 function.
35596784
AJ
10963 (arm_compute_initial_elimination_offset): Use it.
10964 (arm_compute_save_reg_mask): Include static chain save slot when
10965 calculating alignment.
10966 (arm_get_frame_offsets): Ditto.
10967 (thumb1_compute_save_reg_mask): Ensure we have a low register saved
10968 that we can use to decrement the stack when the stack decrement
10969 could be too big for an immediate value in a single insn.
10970 (thumb1_expand_prologue): Avoid using r12 for stack decrement.
10971
5f8ecf45
RG
109722008-07-30 Richard Guenther <rguenther@suse.de>
10973
10974 PR tree-optimization/36967
10975 * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
10976 Release defs of statements we remove.
10977
44bfa35b
NF
109782008-07-30 Nathan Froyd <froydnj@codesourcery.com>
10979
22129589
AS
10980 * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
10981 instead of NULL_RTVEC.
44bfa35b 10982
54ce9cc2
NF
109832008-07-30 Nathan Froyd <froydnj@codesourcery.com>
10984
10985 PR target/35866
10986
10987 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
10988 vector modes.
10989
e49cf927 109902008-07-30 Rafael Ávila de Espíndola <espindola@google.com>
f410e1b3 10991
5617c135
UB
10992 * final.c (call_from_call_insn): New.
10993 (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
f410e1b3 10994
00afcaa0
PB
109952008-07-30 Paolo Bonzini <bonzini@gnu.org>
10996
10997 * configure.ac: Substitute ADA_CFLAGS.
10998 * configure: Regenerate.
10999 * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
11000 * Makefile.in: Remove mention of X_* variables.
11001 * config/pa/x-ada-hpux10: Remove.
11002 * config/pa/x-ada: Remove.
11003
11004 * doc/fragments.texi: Update.
11005
f90354fd 110062008-07-30 Olivier Hainque <hainque@adacore.com>
c67a9338
OH
11007
11008 * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
11009 * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
11010 __dso_handle explicitly here.
11011
6715192c
MLI
110122008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11013
11014 PR 34389
11015 * c-typeck.c (build_binary_op): Encapsulate code into...
11016 * c-common.c (shorten_binary_op): ...this new function.
11017 (conversion_warning): Use the new function. Handle non-negative
11018 constant in bitwise-and.
11019 * c-common.h (shorten_binary_op): Declare.
22129589 11020
473e1062
OH
110212008-07-30 Olivier Hainque <hainque@adacore.com>
11022
11023 * scan.c (make_sstring_space): Add explicit conversions of
11024 allocator's return value.
11025 * fix-header.c (recognized_function): Likewise.
11026
70b1e376
RW
110272008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11028
11029 * doc/cpp.texi: Update to GFDL 1.2.
11030 * doc/gcc.texi: Do not list GPL as Invariant Section.
11031 * doc/gccint.texi: Likewise. Update copyright years.
11032 * doc/install.texi: Update copyright years.
11033
d161cb2d
AM
110342008-07-30 Alan Modra <amodra@bigpond.net.au>
11035
11036 PR target/36955
11037 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
11038 a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
11039
54dfd46b
JH
110402008-07-29 Jan Hubicka <jh@suse.cz>
11041
11042 * c-decl.c (merge_decls): Do not handle DECL_INLINE.
11043 (grokdeclarator): Likewise.
11044 * langhooks.c (lhd_warn_unused_global_decl): Use
11045 DECL_DECLARED_INLINE_P.
11046 * print-tree.c (print_node): Remove DECL_INLINE check.
11047
ce94d354
RG
110482008-07-29 Richard Guenther <rguenther@suse.de>
11049
11050 PR tree-optimization/36945
11051 * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
11052 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
11053 Record invariant addresses un-decomposed.
11054 (copy_reference_ops_from_call): Record reference call
11055 arguments properly. Simplify.
11056 * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
11057 helper split out from ...
11058 (create_component_ref_by_pieces): ... here. Simplify.
11059 Prepare for recursive invocation for call arguments.
11060 (create_expression_by_pieces): Adjust call to
11061 create_component_ref_by_pieces.
11062 (compute_avail): Process operand 2 of reference ops.
11063
0f3a057a
RG
110642008-07-29 Richard Guenther <rguenther@suse.de>
11065
5617c135 11066 * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
0f3a057a 11067
11cc4546
JJ
110682008-07-29 Jakub Jelinek <jakub@redhat.com>
11069
11070 * c-format.c (check_format_types): Revert unwanted checkin.
11071
e90acd93
JH
110722008-07-29 Jan Hubicka <jh@suse.cz>
11073
11074 * flags.h (flag_really_no_inline): Remove.
11075 * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
11076 * toplev.c (flag_really_no_inline): Remove.
11077 * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
11078 * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
11079 (cgraph_decide_inlining_incrementally): Likewise.
11080 (compute_inline_parameters): Likewise.
11081 * opts.c (decode_options): Simplify.
11082 * c-opts.c (c_common_post_options): Do not set flag_no_inline.
11083 * common.opt (finline): Initialize to 1.
11084 * tree-inline.c (inlinable_function_p): Check flag_no_inline.
11085
110862008-07-29 Jan Hubicka <jh@suse.cz>
bf08ebeb
JH
11087
11088 * predict.c (always_optimize_for_size_p): New function.
11089 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
11090 optimize_edge_for_size_p, optimize_edge_for_speed_p,
11091 optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
11092 functions.
11093 (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
11094 * function.c (prepare_function_start): Set default profile.
11095 * function.h (rtl_data): Add maybe_hot_insn_p.
11096 * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
11097 (construct_exit_block): Likewise.
11098 (tree_expand_cfg): Likewise.
11099 * basic-block.h
11100 (optimize_bb_for_size_p, optimize_bb_for_speed_p,
11101 optimize_edge_for_size_p, optimize_edge_for_speed_p,
11102 optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
11103 (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
11104 Declare.
11105
e27fb29c
MLI
111062008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11107
11108 PR 34985
11109 * c-decl.c (merge_decls): Merge USED flags.
22129589 11110
8c54989a
KK
111112008-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
11112
11113 * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
11114 valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
11115 next_stack, lab_false and lab_over trees.
11116
4d2ad64c
RG
111172008-07-28 Richard Guenther <rguenther@suse.de>
11118
11119 PR tree-optimization/36957
11120 * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
11121 (useless_type_conversion_p): Remove.
11122 (types_compatible_p): Remove.
11123 * gimple.h (tree_ssa_useless_type_conversion): Declare.
11124 (useless_type_conversion_p): Declare.
11125 (types_compatible_p): Declare.
11126 (gimple_expr_type): Return the base type only if it is
11127 trivially convertible to the subtype.
11128
f6e377f8
AT
111292008-07-28 Andreas Tobler <a.tobler@schweiz.org>
11130
11131 * configure.ac: Use the m4_do macro to concatenate the warnings into
11132 one string in ACX_PROG_CC_WARNING_OPTS,
02bb8bce
UB
11133 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and
11134 ACX_PROG_CC_WARNINGS_ARE_ERRORS.
f6e377f8
AT
11135 * configure: Regenerate.
11136
1961418e
RG
111372008-07-28 Richard Guenther <rguenther@suse.de>
11138
11139 * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
11140 (insert_fake_stores): Remove.
11141 (realify_fake_stores): Likewise.
11142 (execute_pre): Remove dead code.
5617c135 11143 * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
1961418e
RG
11144 (find_func_aliases): Deal with it here instead.
11145 Re-enable gcc_unreachable call.
11146
726a989a
RB
111472008-07-28 Richard Guenther <rguenther@suse.de>
11148
11149 Merge from gimple-tuples-branch.
11150
11151 * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
11152 * gimple.def: New file.
11153 * gsstruct.def: Likewise.
11154 * gimple-iterator.c: Likewise.
11155 * gimple-pretty-print.c: Likewise.
11156 * tree-gimple.c: Removed. Merged into ...
11157 * gimple.c: ... here. New file.
11158 * tree-gimple.h: Removed. Merged into ...
11159 * gimple.h: ... here. New file.
11160
11161 * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
11162 * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
11163 --enable-checking=gimple flag.
11164 * config.in: Likewise.
11165 * configure: Regenerated.
11166
11167 * tree-ssa-operands.h: Tuplified.
11168 * tree-vrp.c: Likewise.
11169 * tree-loop-linear.c: Likewise.
11170 * tree-into-ssa.c: Likewise.
11171 * tree-ssa-loop-im.c: Likewise.
11172 * tree-dump.c: Likewise.
11173 * tree-complex.c: Likewise.
11174 * cgraphbuild.c: Likewise.
11175 * tree-ssa-threadupdate.c: Likewise.
11176 * tree-ssa-loop-niter.c: Likewise.
11177 * tree-pretty-print.c: Likewise.
11178 * tracer.c: Likewise.
11179 * gengtype.c: Likewise.
11180 * tree-loop-distribution.c: Likewise.
11181 * tree-ssa-loop-unswitch.c: Likewise.
11182 * cgraph.c: Likewise.
11183 * cgraph.h: Likewise.
11184 * tree-ssa-loop-manip.c: Likewise.
11185 * value-prof.c: Likewise.
11186 * tree-ssa-loop-ch.c: Likewise.
11187 * tree-tailcall.c: Likewise.
11188 * value-prof.h: Likewise.
11189 * tree.c: Likewise.
11190 * tree.h: Likewise.
11191 * tree-pass.h: Likewise.
11192 * ipa-cp.c: Likewise.
11193 * tree-scalar-evolution.c: Likewise.
11194 * tree-scalar-evolution.h: Likewise.
11195 * target.h: Likewise.
11196 * lambda-mat.c: Likewise.
11197 * tree-phinodes.c: Likewise.
11198 * diagnostic.h: Likewise.
11199 * builtins.c: Likewise.
11200 * tree-ssa-alias-warnings.c: Likewise.
11201 * cfghooks.c: Likewise.
11202 * fold-const.c: Likewise.
11203 * cfghooks.h: Likewise.
11204 * omp-low.c: Likewise.
11205 * tree-ssa-dse.c: Likewise.
11206 * ipa-reference.c: Likewise.
11207 * tree-ssa-uncprop.c: Likewise.
11208 * toplev.c: Likewise.
11209 * tree-gimple.c: Likewise.
11210 * tree-gimple.h: Likewise.
11211 * tree-chrec.c: Likewise.
11212 * tree-chrec.h: Likewise.
11213 * tree-ssa-sccvn.c: Likewise.
11214 * tree-ssa-sccvn.h: Likewise.
11215 * cgraphunit.c: Likewise.
11216 * tree-ssa-copyrename.c: Likewise.
11217 * tree-ssa-ccp.c: Likewise.
11218 * tree-ssa-loop-ivopts.c: Likewise.
11219 * tree-nomudflap.c: Likewise.
11220 * tree-call-cdce.c: Likewise.
11221 * ipa-pure-const.c: Likewise.
11222 * c-format.c: Likewise.
11223 * tree-stdarg.c: Likewise.
11224 * tree-ssa-math-opts.c: Likewise.
11225 * tree-ssa-dom.c: Likewise.
11226 * tree-nrv.c: Likewise.
11227 * tree-ssa-propagate.c: Likewise.
11228 * ipa-utils.c: Likewise.
11229 * tree-ssa-propagate.h: Likewise.
11230 * tree-ssa-alias.c: Likewise.
11231 * gimple-low.c: Likewise.
11232 * tree-ssa-sink.c: Likewise.
11233 * ipa-inline.c: Likewise.
11234 * c-semantics.c: Likewise.
11235 * dwarf2out.c: Likewise.
11236 * expr.c: Likewise.
11237 * tree-ssa-loop-ivcanon.c: Likewise.
11238 * predict.c: Likewise.
11239 * tree-ssa-loop.c: Likewise.
11240 * tree-parloops.c: Likewise.
11241 * tree-ssa-address.c: Likewise.
11242 * tree-ssa-ifcombine.c: Likewise.
11243 * matrix-reorg.c: Likewise.
11244 * c-decl.c: Likewise.
11245 * tree-eh.c: Likewise.
11246 * c-pretty-print.c: Likewise.
11247 * lambda-trans.c: Likewise.
11248 * function.c: Likewise.
11249 * langhooks.c: Likewise.
11250 * ebitmap.h: Likewise.
11251 * tree-vectorizer.c: Likewise.
11252 * function.h: Likewise.
11253 * langhooks.h: Likewise.
11254 * tree-vectorizer.h: Likewise.
11255 * ipa-type-escape.c: Likewise.
11256 * ipa-type-escape.h: Likewise.
11257 * domwalk.c: Likewise.
11258 * tree-if-conv.c: Likewise.
11259 * profile.c: Likewise.
11260 * domwalk.h: Likewise.
11261 * tree-data-ref.c: Likewise.
11262 * tree-data-ref.h: Likewise.
11263 * tree-flow-inline.h: Likewise.
11264 * tree-affine.c: Likewise.
11265 * tree-vect-analyze.c: Likewise.
11266 * c-typeck.c: Likewise.
11267 * gimplify.c: Likewise.
11268 * coretypes.h: Likewise.
11269 * tree-ssa-phiopt.c: Likewise.
11270 * calls.c: Likewise.
11271 * tree-ssa-coalesce.c: Likewise.
11272 * tree.def: Likewise.
11273 * tree-dfa.c: Likewise.
11274 * except.c: Likewise.
11275 * except.h: Likewise.
11276 * cfgexpand.c: Likewise.
11277 * tree-cfgcleanup.c: Likewise.
11278 * tree-ssa-pre.c: Likewise.
11279 * tree-ssa-live.c: Likewise.
11280 * tree-sra.c: Likewise.
11281 * tree-ssa-live.h: Likewise.
11282 * tree-predcom.c: Likewise.
11283 * lambda.h: Likewise.
11284 * tree-mudflap.c: Likewise.
11285 * ipa-prop.c: Likewise.
11286 * print-tree.c: Likewise.
11287 * tree-ssa-copy.c: Likewise.
11288 * ipa-prop.h: Likewise.
11289 * tree-ssa-forwprop.c: Likewise.
11290 * ggc-page.c: Likewise.
11291 * c-omp.c: Likewise.
11292 * tree-ssa-dce.c: Likewise.
11293 * tree-vect-patterns.c: Likewise.
11294 * tree-ssa-ter.c: Likewise.
11295 * tree-nested.c: Likewise.
11296 * tree-ssa.c: Likewise.
11297 * lambda-code.c: Likewise.
11298 * tree-ssa-loop-prefetch.c: Likewise.
11299 * tree-inline.c: Likewise.
11300 * tree-inline.h: Likewise.
11301 * tree-iterator.c: Likewise.
11302 * tree-optimize.c: Likewise.
11303 * tree-ssa-phiprop.c: Likewise.
11304 * tree-vect-transform.c: Likewise.
11305 * tree-object-size.c: Likewise.
11306 * tree-outof-ssa.c: Likewise.
11307 * cfgloop.c: Likewise.
11308 * system.h: Likewise.
11309 * tree-profile.c: Likewise.
11310 * cfgloop.h: Likewise.
11311 * c-gimplify.c: Likewise.
11312 * c-common.c: Likewise.
11313 * tree-vect-generic.c: Likewise.
11314 * tree-flow.h: Likewise.
11315 * c-common.h: Likewise.
11316 * basic-block.h: Likewise.
11317 * tree-ssa-structalias.c: Likewise.
11318 * tree-switch-conversion.c: Likewise.
11319 * tree-ssa-structalias.h: Likewise.
11320 * tree-cfg.c: Likewise.
11321 * passes.c: Likewise.
11322 * ipa-struct-reorg.c: Likewise.
11323 * ipa-struct-reorg.h: Likewise.
11324 * tree-ssa-reassoc.c: Likewise.
11325 * cfgrtl.c: Likewise.
11326 * varpool.c: Likewise.
11327 * stmt.c: Likewise.
11328 * tree-ssanames.c: Likewise.
11329 * tree-ssa-threadedge.c: Likewise.
11330 * langhooks-def.h: Likewise.
11331 * tree-ssa-operands.c: Likewise.
11332 * config/alpha/alpha.c: Likewise.
11333 * config/frv/frv.c: Likewise.
11334 * config/s390/s390.c: Likewise.
11335 * config/m32c/m32c.c: Likewise.
11336 * config/m32c/m32c-protos.h: Likewise.
11337 * config/spu/spu.c: Likewise.
11338 * config/sparc/sparc.c: Likewise.
11339 * config/i386/i386.c: Likewise.
11340 * config/sh/sh.c: Likewise.
11341 * config/xtensa/xtensa.c: Likewise.
11342 * config/stormy16/stormy16.c: Likewise.
11343 * config/ia64/ia64.c: Likewise.
11344 * config/rs6000/rs6000.c: Likewise.
11345 * config/pa/pa.c: Likewise.
11346 * config/mips/mips.c: Likewise.
11347
0d48657d
SB
113482008-07-28 Simon Baldwin <simonb@google.com>
11349
11350 * c-pragma.c (handle_pragma_message): New function.
11351 (init_pragma): Register handle_pragma_message.
11352 * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
11353 documentation.
11354
21e6dd8f
VK
113552008-07-27 Victor Kaplansky <victork@il.ibm.com>
11356
11357 PR tree-optimization/35252
11358 * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
11359 REALPART_EXPR to be considered as same load operation.
11360
330e765e
EB
113612008-07-27 Eric Botcazou <ebotcazou@adacore.com>
11362
11363 PR tree-optimization/36830
11364 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
11365 (expressions_equal_p): Return false if only one operand is null.
11366
f0947430
GP
113672008-07-26 Gerald Pfeifer <gerald@pfeifer.com>
11368
11369 * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
11370 version requirements.
11371
4326ea40
OH
113722008-07-26 Olivier Hainque <hainque@adacore.com>
11373
11374 * collect2.c (symkind): New enum. Symbol kinds we care about.
11375 (is_ctor_dtor): Return symkind instead of int. Adjust prototype,
11376 code and head comment accordingly.
11377 (scan_prog_file): Use symkind names instead of bare integers.
22129589 11378
c37f4ba4
JH
113792008-07-25 Jan Hubicka <jh@suse.cz>
11380
5617c135
UB
11381 * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
11382 DECL_INLINE.
c37f4ba4
JH
11383 * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
11384 (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
11385 * dojump.c (clear_pending_stack_adjust): Likewise.
11386 * print-tree.c (print_node): Ignore DECL_INLINE.
11387 * tree-inline.c (inlinable_function_p): Likewise.
22129589 11388
a51fa0f4
MM
113892008-07-25 Michael Meissner <gnu@the-meissners.org>
11390
11391 * doc/extend.texi (hot attribute): Document that the hot attribute
11392 turns on -O3 for some ports.
11393 (cold attribute): Document that the cold attribute turns on -Os
11394 for some ports
11395
11396 * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
11397 reflect function specific option support.
11398
11399 * target.h (struct target_option_hooks): Add fields to say whether
11400 the cold attribute implies -Os and the hot attribute implies -O3.
11401
11402 * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
11403 By default, do not turn on -Os for cold functions.
11404 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
11405 not turn on -O3 for hot functions.
11406
11407 * c-common.c (handle_hot_attribute): Use target hook to determine
11408 if hot functions should enable -O3.
11409 (handle_cold_attribute): Use target hook to determine if cold
11410 functions should enable -Os.
11411
11412 * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
11413 (override_options): Move disable scheduling to
11414 optimization_options.
11415 (optimization_options): Disable scheduling here, not
11416 override_options.
11417 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
11418 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
11419
11420 * config/ia64/ia64.c (ia64_override_options): Move setting
11421 scheduling flags to ia64_optimization_options.
11422 (ia64_optimization_options): Disable scheduling options here, and
11423 not in ia64_override_options.
11424 (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
11425 (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
11426
114272008-07-25 H.J. Lu <hongjiu.lu@intel.com>
11428
11429 PR target/36936
11430 * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
11431
1fc8feb5
MJ
114322008-07-25 Martin Jambor <mjambor@suse.cz>
11433
11434 PR tree-optimization/36926
11435 * ipa-prop.c (ipa_analyze_call_uses): Call
11436 ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
11437
42dec64c
JM
114382008-07-25 Joseph Myers <joseph@codesourcery.com>
11439
11440 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
11441 movv2si_internal): Add mem = reg alternative.
11442
7a946186
AT
114432008-07-25 Andreas Tobler <a.tobler@schweiz.org>
11444
11445 PR bootstrap/36918
11446 * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
11447 DEFAULT_PCC_STRUCT_RETURN to 127.
11448
7e8b322a
JH
114492008-07-24 Jan Hubicka <jh@suse.cz>
11450
11451 * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
11452 (build_cgraph_edges): Likewise.
11453 * cgraph.c (cgraph_node): Do not update assembler hash.
11454 (cgraph_remove_node): Drop non-unit-at-a-time code.
11455 * tree-pass.h (pass_O0_always_inline): Remove.
11456 * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
11457 * toplev.c (process_options): Flag unit-at-a-time does not imply
11458 no section anchors.
11459 * cgraphunit.c: Update comments.
11460 (decide_is_function_needed): Drop non-unit-at-a-time mode.
11461 (cgraph_assemble_pending_functions): Remove.
11462 (cgraph_reset_node): Drop non-unit-at-a-time code.
11463 (cgraph_finalize_function): Likewise.
11464 (cgraph_analyze_function): Likewise.
11465 (cgraph_finalize_compilation_unit): Likewise.
11466 (cgraph_expand_function): Likewise.
11467 (cgraph_optimize): Likesise.
11468 (save_inline_function_body): Likewise.
11469 * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
11470 * tree-ssa-alias.c (maybe_be_aliased): Likewise.
11471 * ipa-inline.c: Update comments.
11472 (enum inlining_mode): remove INLINE_SPEED.
11473 (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
11474 (cgraph_mark_inline_edge): Likewise.
11475 (try_inline): Likewise.
11476 (cgraph_decide_inlining_incrementally): Likewise.
11477 (cgraph_gate_inlining): Remove.
11478 (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
11479 (cgraph_gate_early_inlining): Likewise.
11480 (gate_inline_passes): Remove.
11481 (pass_inline_parameters, pass_ipa_inline): Remove gates.
22129589 11482 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
7e8b322a
JH
11483 pass_O0_always_inline): Remove.
11484 * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
11485 * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
11486 * opts.c (no_unit_at_a_time_default): Remove.
11487 (decode_options): Remove flag_unit_at_a_time reset and warning.
11488 * opts.h (no_unit_at_a_time_default): Remove.
11489 * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
11490 early in GNU dialect.
11491 (merge_decls): Update comment; drop unit-at-a-time check.
11492 (finish_decl): Likewise.
11493 (grok_declaration): Remove flag_inline_trees code.
11494 (finish_functions): Return on function returning non-void on all
11495 statics.
11496 * ipa-tye-escape.c (gate_type_escape_vars): Remove.
11497 * cfgexpand.c (expand_one_static_var): Remove.
11498 (expand_one_var): Remove expand_one_static_var call.
11499 (expand_used_vars_for_block): Remove flag_unit_a_time check.
11500 * c-opts.c (c_common_post_options): Remove flag_inline_trees code
11501 and flag_unit_at_a-time compatibility checks.
11502 * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
11503 * tree-inline.c (flag_inline_trees): Remove.
11504 (inlinable_function_p): Don't check it.
11505 (expand_call_inline): Remove non-unit-at-a-time code.
11506 * tree-inline.h (flag_inline_trees): Remove.
11507 * tree-optimize.c (execute_early_local_optimizations): Remove
11508 unit-at-a-time checks.
11509 (tree_rest_of_compilation): Likewise.
11510 * combine.c (setup_incoming_promotions): Likewise.
11511 * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
11512 * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
11513 * passes.c (pass_inline_parameters): Update comments; remove
11514 O0_alwaysinline pass.
11515 (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
11516 (execute_one_pass): Likewise.
11517 * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
11518 (ix86_function_sseregparm): Likewise.
11519 * arm.c (arm_function_in_section_p): Likewise.
11520 * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
11521 * varpool.c: Update comments.
11522 (decide_is_variable_needed): Remove unit-at-a-time checks.
11523 (varpool_finalize_decl): Likewise.
11524
9ccd8574
KK
115252008-07-24 Kaz Kojima <kkojima@gcc.gnu.org>
11526
11527 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
11528 to 2 instead of -1.
5617c135 11529 (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
9ccd8574 11530
56b7e765
KT
115312008-07-24 Kai Tietz <kai.tietz@onevision.com>
11532
11533 * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
11534 imp symbol extension.
11535
22129589 11536 2008-07-23 Ian Lance Taylor <iant@google.com>
11522353
ILT
11537
11538 * tree-vrp.c (infer_value_range): Ignore asm statements when
11539 looking for memory accesses for -fdelete-null-pointer-checks.
11540
e816b6b5
BE
115412008-07-24 Ben Elliston <bje@au.ibm.com>
11542
11543 * config/spu/spu-c.c (__vector_keyword): New variable.
11544 (vector_keyword): Likewise.
11545 (spu_categorize_keyword): New function.
11546 (spu_macro_to_expand): Likewise.
11547 (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
11548 compiling an ISO C dialect.
11549
ce26ee21
BE
115502008-07-24 Ben Elliston <bje@au.ibm.com>
11551
11552 * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
11553 conventional usage.
11554
7326a39e
AL
115552008-07-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
11556
11557 * configure: Regenerate.
11558 * configure.ac: Require texinfo 4.7.
11559 * doc/install.texi: Document texinfo 4.7 requirement.
11560
3e293154
MJ
115612008-07-23 Martin Jambor <mjambor@suse.cz>
11562
22129589 11563 * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
3e293154
MJ
11564 rather than for DECL_SAVED_TREE.
11565 * ipa-prop.c: Include diagnostic.h.
22129589 11566 (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
3e293154
MJ
11567 thoroughly.
11568 (ipa_detect_param_modifications): Function rewritten from scratch.
11569 (ipa_compute_jump_functions): Changed accesses to modification flags.
11570 (ipa_free_node_params_substructures): Update flags destruction.
11571 (ipa_node_duplication_hook): Update flags duplication.
11572 (ipa_print_all_params_modified): Updated flag access.
11573 * ipa-prop.h (struct ipa_param_flags): New structure.
22129589
AS
11574 (struct ipa_node_params): New field modification_analysis_done,
11575 modified_flags changed into param_flags.
11576 (ipa_is_ith_param_modified): Changed to use new flags.
3e293154
MJ
11577 * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
11578
11579 * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
11580 ipa-cp.c and split into two functions.
11581 (ipa_print_node_jump_functions): New function.
11582 (compute_scalar_jump_functions): New function.
11583 (type_like_member_ptr_p): New function.
11584 (compute_pass_through_member_ptrs): New function.
11585 (fill_member_ptr_cst_jump_function): New function.
11586 (determine_cst_member_ptr): New function.
11587 (compute_cst_member_ptr_arguments): New function.
11588 (ipa_compute_jump_functions): Complete rewrite.
11589 * ipa-prop.h (enum jump_func_type): Make explicit that we depend
11590 on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
11591 (struct ipa_member_ptr_cst): New structure.
11592 (union jump_func_value): New field member_cst.
11593 * ipa-cp.c (ipcp_lat_is_insertable): New function.
11594 (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
11595 jump function types.
11596 (ipcp_print_all_lattices): Slight fprintf rearrangement.
11597 (ipcp_print_all_structures): Call ipa_print_all_jump_functions
11598 instead of ipcp_print_all_jump_functions.
11599 (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
11600 only for replacable scalars.
11601
11602 * doc/invoke.texi (Optimize options): Add description of
11603 -findirect-inlining.
11604 * common.opt (flag_indirect_inlining): New flag.
22129589 11605 * opts.c (decode_options): Set flag_indirect_inlining when
3e293154
MJ
11606 optimize >= 3.
11607
11608 * ipa-inline.c: Include ipa-prop.h.
11609 (inline_indirect_intraprocedural_analysis): New function.
11610 (inline_generate_summary): Allocate parameter and argument info
11611 structures, call inline_indirect_intraprocedural_analysis on each
22129589 11612 node when doing indirect inlining and deallocate indirect inlining
3e293154
MJ
11613 data structures in the end.
11614 * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
11615 (free_all_ipa_structures_after_iinln): New function.
22129589 11616 (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
3e293154
MJ
11617 done.
11618 * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
11619
11620 * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
11621 (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
11622 of computing the frequency separately.
11623 (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
11624 of computing the frequency separately.
22129589 11625 * ipa-cp.c (ipcp_print_all_structures): Replace a call to
3e293154
MJ
11626 ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
11627 * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
11628 (ipa_get_stmt_member_ptr_load_param): New function.
11629 (ipa_is_ssa_with_stmt_def): New function.
11630 (ipa_note_param_call): New function.
11631 (ipa_analyze_call_uses): New function.
11632 (ipa_analyze_stmt_uses): New function.
11633 (ipa_analyze_params_uses): New function.
11634 (ipa_free_node_params_substructures): Also free the param_calls linked
11635 list.
02bb8bce
UB
11636 (ipa_node_duplication_hook): Also duplicate the param_calls
11637 linked list.
3e293154
MJ
11638 (ipa_print_node_param_flags): New function.
11639 (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
11640 (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
11641 * ipa-prop.h (struct ipa_param_flags): New field called.
11642 (struct ipa_param_call_note): New structure.
11643 (struct ipa_node_params): New fields param_calls and
11644 uses_analysis_done.
11645 (ipa_is_ith_param_called): New function.
11646 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
11647 ipa_analyze_params_uses and dump parameter flags.
11648
11649 * ipa-inline.c (cgraph_decide_recursive_inlining): Call
11650 ipa_propagate_indirect_call_infos if performing indirect inlining,
11651 pass a new parameter new_edges to it.
11652 (add_new_edges_to_heap): New fucntion.
11653 (cgraph_decide_inlining_of_small_functions): New vector
11654 new_indirect_edges for newly found indirect edges , call
11655 ipa_propagate_indirect_call_infos after inlining.
11656 (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
11657 inlining if performing indirect inlining. Call
11658 free_all_ipa_structures_after_iinln when doing so too.
11659 (inline_generate_summary): Do not call
11660 free_all_ipa_structures_after_iinln here.
11661 * ipa-prop.c (update_jump_functions_after_inlining): New function.
11662 (print_edge_addition_message): New function.
11663 (update_call_notes_after_inlining): New function.
11664 (propagate_info_to_inlined_callees): New function.
11665 (ipa_propagate_indirect_call_infos): New function.
11666 * ipa-prop.h: Include cgraph.h
11667 (struct ipa_param_call_note): Fields reordered, new field processed.
11668 * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
11669 flag indirect_call.
11670 * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
11671 rediscovered call statements.
11672 * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
11673 (dump_cgraph_node): Dump also the indirect_call flag.
11674 (cgraph_clone_edge): Copy also the indirect_call flag.
11675 * tree-inline.c (copy_bb): Do not check for fndecls from call
11676 expressions, check for edge availability when moving clones.
11677 (get_indirect_callee_fndecl): New function.
11678 (expand_call_inline): If callee declaration is not apprent from
11679 the statement, try calling get_indirect_callee_fndecl. Do not
11680 issue warnings or call sorry when not inlinings an indirect edge.
11681 * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
11682
11683 * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
11684 bit more frandly to matching.
11685 * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
11686 * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
11687 * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
22129589 11688
e62fe68a
MM
116892008-07-23 Michael Meissner <gnu@the-meissners.org>
11690
11691 PR 36907
11692 * opth-gen.awk: Suppress function specific features when building
11693 target libraries.
11694 * optc-gen.awk: Ditto.
11695
fcf73884
MLI
116962008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11697
11698 PR 35058
11699 * diagnostic.c (pedwarn): Add opt parameter.
11700 (pedwarn0): New.
11701 * c-tree.h (pedwarn_init): Add opt parameter.
11702 (pedwarn_c90): Likewise.
11703 (pedwarn_c99): Likewise.
11704 * c-errors.c (pedwarn_c99): Likewise.
11705 (pedwarn_c90): Likewise.
11706 * toplev.h (pedwarn): Update declaration.
11707 (pedwarn0): Declare.
11708 * c-lex.c: All calls to pedwarn changed.
11709 * builtins.c: All calls to pedwarn changed.
11710 * toplev.c: All calls to pedwarn changed.
11711 * c-decl.c: All calls to pedwarn changed.
11712 * c-typeck.c: All calls to pedwarn changed.
11713 * c-common.c: All calls to pedwarn changed.
11714 * c-parser.c: All calls to pedwarn changed.
22129589 11715
f5ae72a9
MM
117162008-07-23 Michael Meissner <gnu@the-meissners.org>
11717 Karthik Kumar <karthikkumar@gmail.com>
11718
11719 * attribs.c (file scope): Include c-common.h.
11720 (decl_attributes): Add support for #pragma GCC optimize and
11721 #pragma GCC option.
11722
11723 * targhooks.c (default_can_inline_p): New function that is the
11724 default for the TARGET_CAN_INLINE_P target hook.
11725
11726 * targhooks.h (default_can_inline_p): Add declaration.
11727
11728 * tree.c (cl_optimization_node): New static tree for building
11729 OPTIMIZATION_NODE tree.
11730 (cl_target_option_node): New static tree for building
11731 TARGET_OPTION_NODE tree.
11732 (cl_option_hash_table): New hash table for hashing
11733 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
11734 (cl_option_hash_hash): New function to provide the hash value for
11735 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
11736 (cl_option_hash_eq): New function to provide an equality test for
11737 OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
11738 (tree_code_size): Add support for OPTIMIZATION_NODE and
11739 TARGET_OPTION_NODE trees.
11740 (tree_code_structure): Add support for OPTIMIZATION_NODE and
11741 TARGET_OPTION_NODE trees.
11742 (build_optimization_node): Build a tree that has all of the
11743 current optimization options.
11744 (build_target_option_node): Build a tree that has the target
11745 options that might be changed on a per function basis.
11746
11747 * tree.h (file scope): Include options.h.
11748 (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
11749 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
11750 (TREE_OPTIMIZATION): Ditto.
11751 (TREE_TARGET_SPECIFIC): Ditto.
11752 (struct tree_function_decl): Add fields for remembering the
11753 current optimization options and target specific options.
11754 (struct tree_optimization_option): New tree variant that remembers
11755 the optimization options.
11756 (struct tree_target_option): New tree variant that remembers the
11757 target specific flags that might change for compiling a particular
11758 function.
11759 (union tree_node): Include tree_optimization_option and
11760 tree_target_option fields.
11761 (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
11762 TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
11763 TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
11764 TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
11765 TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
11766 optimization and target options.
11767 (optimization_default_node): New macro to refer to global_trees
11768 field.
11769 (optimization_current_node): Ditto.
11770 (optimization_cold_node): Ditto.
11771 (optimization_hot_node): Ditto.
11772 (target_option_default_node): Ditto.
11773 (target_option_current_node): Ditto.
11774 (current_option_pragma): Ditto.
11775 (current_optimize_pragma): Ditto.
11776
11777 * target.h (struct gcc_target): Add valid_option_attribute_p,
11778 target_option_save, target_option_restore, target_option_print,
11779 target_option_pragma_parse, and can_inline_p hooks.
11780
11781 * toplev.h (parse_optimize_options): Add declaration.
11782 (fast_math_flags_struct_set_p): Ditto.
11783
11784 * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
11785 adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
11786 optimize is used.
11787
11788 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
11789 tree_can_inline_p hook to see if one function can inline another.
11790 (cgraph_decide_inlining): Ditto.
11791 (cgraph_decide_inlining_incrementally): Ditto.
11792
11793 * opts.c (decode_options): Add support for running multiple times
11794 to allow functions with different target or optimization options
11795 than was specified on the command line.
11796 (fast_math_flags_struct_set_p): New function that is similar to
11797 fast_math_flags_set_p, except it uses the values in the
11798 cl_optimization structure instead of global variables.
11799
11800 * optc-gen.awk: Add support for TargetSave to allow a back end to
11801 declare new fields that need to be saved when using function
11802 specific options. Include flags.h and target.h in the options.c
11803 source. Add support for Save to indicate which options can be set
11804 for individual functions. Generate cl_optimize_save,
11805 cl_optimize_restore, cl_optimize_print, cl_target_option_save,
11806 cl_target_option_restore, cl_target_option_print functions to
11807 allow functions to use different optimization or target options.
11808
11809 * opt-functions.awk (var_type_struct): Return the type used for
11810 storing the field in a structure.
11811
11812 * opth-gen.awk: Add support for TargetSave to allow a back end to
11813 declare new fields that need to be saved when using function
11814 specific options. Add support for Save to indicate which options
11815 can be set for individual functions. Only generate one extern for
11816 Mask fields. Generate cl_optimization and cl_target_option
11817 structures to remember optimization and target options.
11818
11819 * treestruct.def (TS_OPTIMIZATION): Add support for garbage
11820 collecting new tree nodes.
11821 (TS_TARGET_OPTION): Ditto.
11822
11823 * c-decl.c (merge_decls): Merge function specific target and
11824 optimization options.
11825
11826 * function.c (invoke_set_current_function_hook): If the function
11827 uses different optimization options, change the global variables
11828 to reflect this.
11829
11830 * coretypes.h (struct cl_optimization): Add forward reference.
11831 (struct cl_target_option): Ditto.
11832
11833 * c-pragma.c (option_stack): New static vector to remember the
11834 current #pragma GCC option stack.
11835 (handle_pragma_option): New function to support #pragma GCC option
11836 to change target options.
11837 (optimize_stack): New static vector to remember the current
11838 #pragma GCC optimize stack.
11839 (handle_pragma_optimize): New function to support #pragma GCC
11840 optimize to change optimization options.
11841 (init_pragma): Add support for #pragma GCC optimize and #pragma
11842 GCC option.
11843
11844 * tree.def (OPTIMIZATION_NODE): New tree code for remembering
11845 optimization options.
11846 (TARGET_OPTION_NODE): New tree code for remembering certain target
11847 options.
11848
11849 * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
11850 TARGET_OPTION_NODE trees.
11851
11852 * common.opt (-O): Add Optimization flag.
11853 (-Os): Ditto.
11854 (-fmath-errno): Ditto.
11855 (-falign-functions): Add UInteger flag to make sure flag gets full
11856 int in cl_optimization structure.
11857 (-falign-jumps): Ditto.
11858 (-falign-labels): Ditto.
11859 (-falign-loops): Ditto.
11860 (-fsched-stalled-insns): Ditto.
11861 (-fsched-stalled-insns-dep): Ditto.
11862
11863 * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
11864 definition.
11865 (TARGET_OPTION_SAVE): Ditto.
11866 (TARGET_OPTION_RESTORE): Ditto.
11867 (TARGET_OPTION_PRINT): Ditto.
11868 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
11869 (TARGET_CAN_INLINE_P): Ditto.
11870 (TARGET_INITIALIZER): Add new hooks.
11871
11872 * tree-inline.c (tree_can_inline_p): New function to determine
11873 whether one function can inline another. Check if the functions
11874 use compatible optimization options, and also call the backend
11875 can_inline_p hook.
11876
11877 * tree-inline.h (tree_can_inline_p): Add declaration.
11878
11879 * c-common.c (c_common_attribute): Add support for option and
11880 optimize attributes.
11881 (handle_option_attribute): Add support for the option attribute to
11882 allow the user to specify different target options for compiling a
11883 specific function.
11884 (handle_optimize_attribute): Add support for the optimize
11885 attribute to allow the user to specify different optimization
11886 options for compiling a specific function.
11887 (handle_hot_attribute): Turn on -O3 optimization for this one
11888 function if it isn't the default optimization level.
11889 (handle_cold_attribute): Turn on -Os optimization for this one
11890 function if it insn't the default optimization.
11891 (const_char_p): New const char * typedef.
11892 (optimize_args): New static vector to remember the optimization
11893 arguments.
11894 (parse_optimize_options): New function to set up the optimization
5617c135 11895 arguments from either the optimize attribute or #pragma GCC optimize.
f5ae72a9
MM
11896
11897 * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
11898 (builtin_define_std): Ditto.
11899
11900 * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
5617c135 11901 Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
f5ae72a9
MM
11902 (x86_64-*-*): Ditto.
11903
11904 * Makefile.in (TREE_H): Add options.h.
11905 (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
11906
11907 * doc/extend.texi (option attribute): Document new attribute.
11908 (optimize attribute): Ditto.
11909 (hot attribute): Document hot attribute sets -O3.
11910 (cold attribute): Document cold attribute sets -Os.
11911 (#pragma GCC option): Document new pragma.
11912 (#pragma GCC optimize): Ditto.
11913
11914 * doc/options.texi (TargetSave): Document TargetSave syntax.
11915 (UInteger): Document UInteger must be used for certain flags.
11916 (Save): Document Save option to create target specific options
11917 that can be saved/restored on a function specific context.
11918
5617c135 11919 * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
f5ae72a9
MM
11920 (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
11921
5617c135 11922 * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
f5ae72a9
MM
11923 (TARGET_OPTION_SAVE): Ditto.
11924 (TARGET_OPTION_RESTORE): Ditto.
11925 (TARGET_OPTION_PRINT): Ditto.
11926 (TARGET_OPTION_PRAGMA_PARSE): Ditto.
11927 (TARGET_CAN_INLINE_P): Ditto.
11928
11929 * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
11930 -mfpmath=sse,387.
11931 (-mfpmath=both): Ditto.
11932
119332008-07-23 Michael Meissner <gnu@the-meissners.org>
11934 Karthik Kumar <karthikkumar@gmail.com>
11935
5617c135 11936 * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
f5ae72a9
MM
11937 (TARGET_POPCNT): Ditto.
11938 (TARGET_SAHF): Ditto.
11939 (TARGET_AES): Ditto.
11940 (TARGET_PCLMUL): Ditto.
11941 (TARGET_CMPXCHG16B): Ditto.
11942 (TARGET_RECIP): Move switch into target_flags.
11943 (TARGET_FUSED_MADD): Ditto.
11944 (ix86_arch_features): Make an unsigned char type.
11945 (ix86_tune_features): Ditto.
11946 (OVERRIDE_OPTIONS): Add bool argument to override_options call.
11947 (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
11948 (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
11949
11950 * config/i386/i386.opt (arch): New TargetSave field to define
5617c135 11951 fields that need to be saved for function specific option support.
f5ae72a9
MM
11952 (tune): Ditto.
11953 (fpmath): Ditto.
11954 (branch_cost): Ditto.
11955 (ix86_isa_flags_explicit): Ditto.
11956 (tune_defaulted): Ditto.
11957 (arch_specified): Ditto.
11958 (-m128-long-double): Add Save flag to save option for target
11959 specific option support.
11960 (-m80387): Ditto.
11961 (-maccumulate-outgoing-args): Ditto.
11962 (-malign-double): Ditto.
11963 (-malign-stringops): Ditto.
11964 (-mfancy-math-387): Ditto.
11965 (-mhard-float): Ditto.
11966 (-mieee-fp): Ditto.
11967 (-minline-all-stringops): Ditto.
11968 (-minline-stringops-dynamically): Ditto.
11969 (-mms-bitfields): Ditto.
11970 (-mno-align-stringops): Ditto.
11971 (-mno-fancy-math-387): Ditto.
11972 (-mno-push-args): Ditto.
11973 (-mno-red-zone): Ditto.
11974 (-mpush-args): Ditto.
11975 (-mred-zone): Ditto.
11976 (-mrtd): Ditto.
11977 (-msseregparm): Ditto.
11978 (-mstack-arg-probe): Ditto.
11979 (-m32): Ditto.
11980 (-m64): Ditto.
11981 (-mmmx): Ditto.
11982 (-m3dnow): Ditto.
11983 (-m3dnowa): Ditto.
11984 (-msse): Ditto.
11985 (-msse2): Ditto.
11986 (-msse3): Ditto.
11987 (-msse4.1): Ditto.
11988 (-msse4.2): Ditto.
11989 (-msse4): Ditto.
11990 (-mno-sse4): Ditto.
11991 (-msse4a): Ditto.
11992 (-msse5): Ditto.
11993 (-mrecip): Move flag into target_flags.
11994 (-mcld): Ditto.
11995 (-mno-fused-madd): Ditto.
11996 (-mfused-madd): Ditto.
11997 (-mabm): Move flag into ix86_isa_flags.
11998 (-mcx16): Ditto.
11999 (-mpopcnt): Ditto.
12000 (-msahf): Ditto.
12001 (-maes): Ditto.
12002 (-mpclmul): Ditto.
12003
12004 * config/i386/i386-c.c: New file for #pragma support.
12005 (ix86_target_macros_internal): New function to #define or #undef
12006 target macros based when the user uses the #pragma GCC option to
12007 change target options.
12008 (ix86_pragma_option_parse): New function to add #pragma GCC option
12009 support.
12010 (ix86_target_macros): Move defining the target macros here from
12011 TARGET_CPU_CPP_BUILTINS in i386.h.
12012 (ix86_register_pragmas): Register the #pragma GCC option hook. If
12013 defined, initialize any subtarget #pragmas.
12014
12015 * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
12016 REGISTER_TARGET_PRAGMAS.
12017
12018 * config/i386/t-i386: New file for x86 dependencies.
12019 (i386.o): Make dependencies mirror the include files used.
12020 (i386-c.o): New file, add dependencies.
12021
5617c135 12022 * config/i386/i386-protos.h (override_options): Add bool argument.
f5ae72a9
MM
12023 (ix86_valid_option_attribute_tree): Add declaration.
12024 (ix86_target_macros): Ditto.
12025 (ix86_register_macros): Ditto.
12026
12027 * config/i386/i386.c (ix86_tune_features): Move initialization of
12028 the target masks to initial_ix86_tune_features to allow functions
12029 to have different target options. Make type unsigned char,
12030 instead of unsigned int.
12031 (initial_ix86_tune_features): New static vector to hold processor
12032 masks for the tune variables.
12033 (ix86_arch_features): Move initialization of the target masks to
12034 initial_ix86_arch_features to allow functions to have different
5617c135 12035 target options. Make type unsigned char, instead of unsigned int.
f5ae72a9
MM
12036 (initial_ix86_arch_features): New static vector to hold processor
12037 masks for the arch variables.
12038 (enum ix86_function_specific_strings): New enum to describe the
12039 string options used for attribute((option(...))).
12040 (ix86_target_string): New function to return a string that
12041 describes the target options.
12042 (ix86_debug_options): New function to print the current options in
12043 the debugger.
12044 (ix86_function_specific_save): New function hook to save the
5617c135 12045 function specific global variables in the cl_target_option structure.
f5ae72a9
MM
12046 (ix86_function_specific_restore): New function hook to restore the
12047 function specific variables from the cl_target_option structure to
12048 the global variables.
12049 (ix86_function_specific_print): New function hook to print the
12050 target specific options in the cl_target_option structure.
12051 (ix86_valid_option_attribute_p): New function hook to validate
12052 attribute((option(...))) arguments.
12053 (ix86_valid_option_attribute_tree): New function that is common
12054 code between attribute((option(...))) and #pragma GCC option
5617c135 12055 support that parses the options and returns a tree holding the options.
f5ae72a9
MM
12056 (ix86_valid_option_attribute_inner_p): New helper function for
12057 ix86_valid_option_attribute_tree.
12058 (ix86_can_inline_p): New function hook to decide if one function
12059 can inline another on a target specific basis.
12060 (ix86_set_current_function); New function hook to switch target
12061 options if the user used attribute((option(...))) or #pragma GCC
12062 option.
12063 (ix86_tune_defaulted): Move to static file scope from
12064 override_options.
12065 (ix86_arch_specified): Ditto.
12066 (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
12067 ix86_isa_flags.
12068 (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
12069 (OPTION_MASK_ISA_ABM_SET): Ditto.
12070 (OPTION_MASK_ISA_POPCNT_SET): Ditto.
12071 (OPTION_MASK_ISA_CX16_SET): Ditto.
12072 (OPTION_MASK_ISA_SAHF_SET): Ditto.
12073 (OPTION_MASK_ISA_AES_UNSET): Ditto.
12074 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
12075 (OPTION_MASK_ISA_ABM_UNSET): Ditto.
12076 (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
12077 (OPTION_MASK_ISA_CX16_UNSET): Ditto.
12078 (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
12079 (struct ptt): Move to static file scope from override_options.
12080 (processor_target_table): Ditto.
12081 (cpu_names): Ditto.
5617c135 12082 (ix86_handle_option): Add support for options that are now isa options.
f5ae72a9
MM
12083 (override_options): Add support for declaring functions that
12084 support different target options than were specified on the
12085 command line. Move struct ptt, processor_target_table, cpu_names,
12086 ix86_tune_defaulted, ix86_arch_specified to static file scope.
12087 Add bool argument. Fix up error messages so the appropriate error
12088 is given for either command line or attribute.
12089 (ix86_previous_fndecl): New static to remember previous function
12090 declaration to see if we need to change target options.
12091 (ix86_builtins_isa): New array to record the ISA of each builtin
12092 function.
12093 (def_builtin): Always create the builtin function, even if the
12094 current ISA doesn't support it.
12095 (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
12096 tests for those builtins.
12097 (ix86_init_builtins): Remove TARGET_MMX test for calling
12098 ix86_init_mmx_sse_builtins.
12099 (ix86_expand_builtin): If the current ISA doesn't support a given
12100 builtin, signal an error.
12101 (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
12102 (TARGET_SET_CURRENT_FUNCTION): Ditto.
12103 (TARGET_OPTION_SAVE): Ditto.
12104 (TARGET_OPTION_RESTORE): Ditto.
12105 (TARGET_OPTION_PRINT): Ditto.
12106 (TARGET_CAN_INLINE_P): Ditto.
12107
e49cf927 121082008-07-22 Rafael Ávila de Espíndola <espindola@google.com>
3571ae2e 12109
5617c135
UB
12110 * c-typeck.c (build_external_ref): Don't call assemble_external.
12111 * final.c (output_operand): Call assemble_external.
3571ae2e 12112
2e762884
DD
121132008-07-21 DJ Delorie <dj@redhat.com>
12114
12115 * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
12116 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
12117
a03f1b22
UW
121182008-07-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12119
12120 * config/spu/spu.md ("div<mode>3"): Convert into expander, move
12121 original insn and splitter contents into ...
12122 ("*div<mode>3_fast"): ... this new pattern. Enable only if
12123 flag_unsafe_math_optimizations. Add dummy scratch register.
12124 ("*div<mode>3_adjusted"): New insn and splitter. Enable only if
12125 !flag_unsafe_math_optimizations. Returns number with next
12126 highest magnitude if this is still less or equal to the true
12127 quotient in magnitude.
12128
e49cf927 121292008-07-21 Rafael Ávila de Espíndola <espindola@google.com>
aa14403d
RAE
12130
12131 * Makefile.in: Replace toplev.h with TOPLEV_H.
12132 * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
12133 * c-lex.c (fe_file_change): Don't set in_system_header.
12134 * c-parser.c (c_token): Remove in_system_header.
12135 (c_lex_one_token): Don't set in_system_header.
12136 (c_parser_set_source_position_from_token): Don't set in_system_header.
12137 * diagnostic.c (diagnostic_report_diagnostic): Use location from
12138 diagnostic_info.
12139 (warning_at): New.
12140 * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
12141 * flags.h (in_system_header): Remove.
12142 * function.c (saved_in_system_header): Remove.
12143 (push_cfun): Don't set in_system_header.
12144 (pop_cfun): Don't set in_system_header.
12145 (push_struct_function): Don't set in_system_header.
12146 * input.h (expanded_location): Add sysp.
12147 (in_system_header_at): New.
12148 (in_system_header): New.
12149 * toplev.c (in_system_header): Remove.
12150 * toplev.h: Include input.h
12151 (warning_at): New.
12152 * tree-cfg.c (execute_warn_function_return): Call warning_at.
12153 * tree-ssa.c (warn_uninit): Call warning_at.
12154 (warn_uninitialized_var): Update calls to warn_uninit.
12155 (warn_uninitialized_phi): Update calls to warn_uninit.
12156 * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
12157 (expand_location): Initialize xloc.sysp.
12158 * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
12159 (tree_decl_with_vis): Remove in_system_header_flag.
12160
c499b300
AK
121612008-07-21 Andreas Krebbel <krebbel1@de.ibm.com>
12162
12163 PR target/36822
12164 * recog.c (asm_operand_ok): Change the order of the extra
12165 memory constraint checks.
12166
34a87fd4
AP
121672008-07-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
12168
12169 PR tree-opt/36879
12170 * tree-switch-conversion.c (build_one_array): Call
22129589 12171 varpool_mark_needed_node and varpool_finalize_decl
34a87fd4
AP
12172 instead of assemble_variable.
12173
c72321c9
JH
121742008-07-19 Jan Hubicka <jh@suse.cz>
12175
12176 * cgraph.c (cgraph_add_new_function): Do early local passes.
12177 * tree-nrv.c (gate_pass_return_slot): New gate.
12178 (pass_nrv): Add the gate.
12179 * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
12180 functions.
12181 (coalesce_ssa_name): Coalesce SSA names.
12182 * tree-ssa-live.c (remove_unused_locals): Be more conservative when
12183 not optimizing so unused user vars remains visible.
12184 * common.opt (flag_tree_ter): Always enable by default.
12185 * tree-ssa-ter.c: Include flags.h
02bb8bce
UB
12186 (is_replaceable_p): Check that locations match; when aliasing
12187 is missing be conservative about loads.
c72321c9
JH
12188 * tree-optimize.c (gate_init_datastructures): Remove.
12189 (pass_init_datastructures): New.
12190 * passes.c: Reorder passes so we always go into SSA.
12191
d6cc6ec9
JH
121922008-07-19 Jan Hubicka <jh@suse.cz>
12193
02bb8bce
UB
12194 * doc/extend.texi (flatten attribute): Remove note about
12195 unit-at-a-time.
d6cc6ec9
JH
12196 * doc/invoke.texi (--combine): Likewise.
12197 (-finline-functions-called-once): Update levels when enabled.
12198 (-funit-at-a-time): Document new behaviour.
12199 (-ftoplevel-reorder): Document that it is enabled -O0 and imply
12200 -fno-section-anchors when disabled explicitly.
12201 (inline params): They are not ignored now.
12202 (precompiled headers): Remove unit-at-a-time as being incompatible.
12203 * opts.c (decode_options): Handle unit-at-a-time as alias;
12204 imply -fno-section-anchors when toplevel reorder is disabled
12205 explicitly.
12206 * common.opt (ftoplevel-reorder): Set default value to 2.
12207 (funit-at-a-time): Set default value to 1.
12208 * config/rs6000/rs6000.c (optimization_options): Set section anchors
12209 to 2.
12210
1856c8dc
JH
122112008-07-19 Jan Hubicka <jh@suse.cz>
12212
12213 * builtins.c (expand_builtin_int_roundingfn,
12214 expand_builtin_int_roundingfn_2): Do not take subtarget argument;
12215 it is not useful.
12216
bb9e4199
RG
122172008-07-19 Richard Guenther <rguenther@suse.de>
12218
12219 PR bootstrap/36864
12220 * tree-ssa-sccvn.h (get_constant_value_id): Declare.
12221 * tree-ssa-sccvn.c (get_constant_value_id): New function.
12222 * tree-ssa-pre.c (get_expr_value_id): For newly created
12223 constant value-ids make sure to add the expression to its
12224 expression-set.
12225
a7ea9e29
JJ
122262008-07-19 Jakub Jelinek <jakub@redhat.com>
12227
12228 PR middle-end/36877
12229 * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
12230 return value of the builtin is ignored.
12231
95331614
OH
122322008-07-19 Olivier Hainque <hainque@adacore.com>
12233
12234 * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
12235 bits, a C conformant malloc implementation has to provide.
12236 * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
12237
ea471af0
JM
122382008-07-19 Joseph Myers <joseph@codesourcery.com>
12239
12240 PR target/36780
12241 PR target/36827
12242 * reload.c (find_reloads_subreg_address): Only reload address if
12243 reloaded == 0, not for reloaded != 1.
12244
12245 Revert:
12246 2008-07-16 Joseph Myers <joseph@codesourcery.com>
12247 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
12248 (m32c_legitimate_address_p): Handle "++rii" addresses created by
12249 m32c_legitimize_reload_address.
12250
12251 2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
12252 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
12253 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
12254
fa8884d8
OH
122552008-07-19 Olivier Hainque <hainque@adacore.com>
12256
12257 * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
12258 argument, saying whether nested array are to be collapsed
12259 into a single array type DIE with multiple subscripts.
12260 (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
12261 issues, centralize the nested array types collapsing control and
12262 disable the transformation for Ada.
22129589 12263
72ea2555
UB
122642008-07-18 Uros Bizjak <ubizjak@gmail.com>
12265
12266 PR target/36786
12267 * config/i386/i386.md (x86_64_shift_adj_1): Rename from
12268 x86_64_shift_adj.
12269 (x86_64_shift_adj_2): New expander.
12270 (x86_64_shift_adj_3): Ditto.
12271 * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
12272 to split TImode operands.
12273 (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
12274 (ix86_split_lshr): Ditto.
12275
c466b2cd
KVH
122762008-07-18 Kris Van Hees <kris.van.hees@oracle.com>
12277
12278 * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
12279 and __CHAR32_TYPE__.
12280 * c-typeck.c (digest_init): Support char16_t and char32_t.
12281 (set_nonincremental_init_from_string): Idem.
12282
c565a1e7
L
122832008-07-18 H.J. Lu <hongjiu.lu@intel.com>
12284
12285 PR middle-end/36859
12286 * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
12287 PREFERRED_STACK_BOUNDARY.
12288 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
12289
5ae53a25
L
122902008-07-18 H.J. Lu <hongjiu.lu@intel.com>
12291
12292 PR middle-end/36858
12293 * function.c (locate_and_pad_parm): Cap boundary earlier.
12294
711b2998
JB
122952008-07-17 Julian Brown <julian@codesourcery.com>
12296
12297 * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
12298 no-op for targets which don't use DLLs.
12299
0eae6bab
MJ
123002008-07-17 Martin Jambor <mjambor@suse.cz>
12301
12302 * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
12303 that nodes are relevant by examining the node->analyzed flag.
12304 (ipcp_init_stage): Check which nodes are relevant, assert that the
12305 relevant ones are also required.
12306 (ipcp_propagate_stage): Check on the side arrays are properly
12307 allocated.
12308 (ipcp_print_all_jump_functions): Make sure not to touch any node
12309 that is not analyzed or an edge that does not have a corresponding
12310 entry in the on-the-side vectors.
12311 (ipcp_function_scale_print): Likewise.
12312 (ipcp_update_callgraph): Check that the node is relevant.
12313 (ipcp_insert_stage): Check that the node is relevant. Check there is
12314 an info for every node and edge.
12315 * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
12316 (ipa_print_all_tree_maps): Likewise and a new variable info.
12317 (ipa_print_all_params_modified): Likewise.
12318 * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
12319
19327a1a
RZ
123202008-07-17 Roman Zippel <zippel@linux-m68k.org>
12321
12322 PR target/25343
12323 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
12324
b08c5108
PB
123252008-07-17 Paolo Bonzini <bonzini@gnu.org>
12326
12327 PR rtl-optimization/36753
12328 * fwprop.c (use_killed_between): Don't shortcut
12329 single-definition global registers.
12330
7386e3ee
JH
123312008-07-16 Jan Hubicka <jh@suse.cz>
12332
12333 * cgraph.h (varpool_empty_needed_queue): Declare.
12334 * cgraphunit.c (output_in_order): Mark all variables as needed;
12335 empty the queue.
12336 * varpool.c (varpool_assemble_node): Update debug queue.
12337 (varpool_assemble_pending_decls): Don't do it here.
12338 (varpool_empty_needed_queue): New function.
12339
de498dd4
KG
123402008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12341
12342 * recog.c (peephole2_optimize): Fix formatting.
12343
48c54229
KG
123442008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12345
12346 * c-pch.c (get_ident): Avoid C++ keywords.
12347 * combine-stack-adj.c (single_set_for_csa): Likewise.
12348 * final.c (asm_insn_count, final_scan_insn, alter_subreg,
12349 output_asm_insn): Likewise.
12350 * reload.c (push_secondary_reload, find_reusable_reload,
12351 push_reload, combine_reloads, find_reloads,
12352 debug_reload_to_stream): Likewise.
12353 * reload.h (struct reload): Likewise.
12354 * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
12355 allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
12356 emit_output_reload_insns): Likewise.
12357 * targhooks.c (default_secondary_reload): Likewise.
12358 * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
12359
55d796da
KG
123602008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12361
12362 * recog.c (validate_change_1, validate_change,
12363 validate_unshare_change, validate_replace_rtx_1, struct
12364 funny_match, constrain_operands, peephole2_optimize): Avoid C++
12365 keywords.
12366 * reload.c (push_secondary_reload, secondary_reload_class,
12367 scratch_reload_class, find_valid_class, find_reusable_reload,
12368 push_reload, find_dummy_reload, find_reloads_address_1,
12369 find_reloads_address_part, find_equiv_reg): Likewise.
12370 * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
12371 choose_reload_regs): Likewise.
12372 * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
12373 Likewise.
12374 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
12375 * sched-ebb.c (add_deps_for_risky_insns): Likewise.
12376 * sched-rgn.c (concat_INSN_LIST): Likewise.
12377 * stor-layout.c (mode_for_size, mode_for_size_tree,
12378 smallest_mode_for_size): Likewise.
12379
d858f359
KG
123802008-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12381
12382 * cfg.c (dump_reg_info): Avoid C++ keywords.
12383 * dwarf2asm.c (dw2_force_const_mem,
12384 dw2_asm_output_encoded_addr_rtx): Likewise.
72ea2555 12385 * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
d858f359
KG
12386 * expmed.c (expand_shift): Likewise.
12387 * global.c (find_reg): Likewise.
12388 * graph.c (draw_edge): Likewise.
12389 * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
12390 * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
12391 widen_clz, widen_bswap, expand_parity, expand_unop,
12392 emit_cmp_and_jump_insn_1): Likewise.
12393 * postreload.c (reload_cse_simplify_operands): Likewise.
12394 * ra.h (add_neighbor): Likewise.
12395 * reg-stack.c (remove_regno_note, change_stack): Likewise.
12396 * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
12397 record_reg_classes, copy_cost, record_address_regs,
12398 invalid_mode_change_p): Likewise.
12399 * regrename.c (regrename_optimize, scan_rtx_reg,
12400 dump_def_use_chain, find_oldest_value_reg,
12401 replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
12402
1bc39d2f
DE
124032008-07-16 David Edelsohn <edelsohn@gnu.org>
12404
12405 * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
12406 MASK_POWERPC64 for power4 in previous commit.
12407
bb95b4e7
OH
124082008-07-16 Olivier Hainque <hainque@adacore.com>
12409
12410 * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
12411 instead of bare conversion to cast const-ness away.
12412
e2b2d01e
AS
124132008-07-16 Anatoly Sokolov <aesok@post.ru>
12414
12415 * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
12416 XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
12417 * config/xtensa/xtensa.c (xtensa_function_value): New function.
12418 (TARGET_FUNCTION_VALUE): Define.
12419
9a8d7941
DE
124202008-07-16 David Edelsohn <edelsohn@gnu.org>
12421
12422 * config/rs6000/rs6000.c (processor_target_table): Add
12423 MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
12424
61945d8c
JM
124252008-07-16 Joseph Myers <joseph@codesourcery.com>
12426
12427 PR target/36827
12428 * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
12429 (m32c_legitimate_address_p): Handle "++rii" addresses created by
12430 m32c_legitimize_reload_address.
12431
e49cf927 124322007-07-16 Rafael Ávila de Espíndola <espindola@google.com>
238fe3c5 12433
5617c135
UB
12434 * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
12435 DECL_IN_SYSTEM_HEADER in sync.
238fe3c5 12436
2dfb6ce1
DB
124372008-07-15 Daniel Berlin <dberlin@dberlin.org>
12438
12439 * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
12440 * tree-ssa-pre.c (pre_expr_eq): Ditto
12441 (get_constant_for_value_id): Take a type as an argument.
12442 (fully_constant_expression): Pass in type.
12443 (find_or_generate_expression): Short circuit constant case.
12444 (create_expression_by_pieces): Remove special casing of
12445 pointer_plus.
12446 (do_regular_insertion): Short circuit constant case.
12447 (do_partial_partial_insertion): Ditto.
12448
141368f0
KK
124492008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
12450
12451 PR target/36782
12452 * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
12453
25ae96c7 124542008-07-15 Bob Wilson <bob.wilson@acm.org>
22129589 12455
25ae96c7
BW
12456 * config/xtensa/libgcc-xtensa.ver: New file.
12457 * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
22129589 12458
60564289
KG
124592008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12460
12461 * df-problems.c (df_set_note): Avoid C++ keywords.
12462 * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
12463 * dse.c (record_store, remove_useless_values): Likewise.
12464 * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
12465 gen_reg_rtx_offset, operand_subword, change_address_1,
12466 change_address, adjust_address_1, offset_address,
12467 widen_memory_access, emit_copy_of_insn_after): Likewise.
12468 * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
12469 * fwprop.c (should_replace_address, propagate_rtx_1,
12470 propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
12471 Likewise.
12472 * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
12473 gcse_emit_move_after, update_ld_motion_stores): Likewise.
12474 * lcm.c (compute_insert_delete, pre_edge_lcm,
12475 compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
12476 * lower-subreg.c (resolve_reg_notes): Likewise.
12477 * mode-switching.c (optimize_mode_switching): Likewise.
12478
32e9fa48
KG
124792008-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12480
12481 * bt-load.c (add_btr_def, migrate_btr_def,
12482 branch_target_load_optimize): Avoid C++ keywords.
12483 * caller-save.c (insert_restore, insert_save, insert_one_insn):
12484 Likewise.
12485 * combine.c (subst, simplify_set, make_extraction,
72ea2555 12486 make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
32e9fa48 12487 * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
72ea2555 12488 fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
32e9fa48 12489
ac7ee6ad
RG
124902008-07-15 Richard Guenther <rguenther@suse.de>
12491
12492 PR middle-end/36369
12493 * c-common.c (strict_aliasing_warning): Do not warn for
12494 TYPE_REF_CAN_ALIAS_ALL pointers.
12495 (c_common_get_alias_set): may_alias types are not special.
12496 * tree.c (build_pointer_type_for_mode): Look up the may_alias
12497 attribute and set can_ref_all accordingly.
12498 (build_reference_type_for_mode): Likewise.
12499 * doc/extend.texi (may_alias): Clarify.
12500
96c72efe
KK
125012008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
12502
12503 PR target/36780
12504 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
12505 (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
12506
cb8cc791
AP
125072008-07-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
12508
12509 PR target/31568
12510 * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
12511 gcc_assert, instead call output_operand_lossage.
12512
e65d1ec6
KT
125132008-07-15 Kai Tietz <kai.tietz@onevision.com>
12514
12515 * builtins.c (std_canonical_va_list): Treat structure based
12516 va_list types.
12517
6926c713
BE
125182008-07-15 Ben Elliston <bje@au.ibm.com>
12519
12520 * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
12521
e49cf927 125222007-07-14 Rafael Ávila de Espíndola <espindola@google.com>
df0ed6c5
RAE
12523
12524 * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
12525 is set.
12526
f258e5e5
JH
125272008-07-14 Jan Hubicka <jh@suse.cz>
12528
12529 * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
12530 * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
12531 fix predicates and constraints.
12532 * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
12533 * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
12534
8abc1906
DK
125352008-07-14 Doug Kwan <dougkwan@google.com>
12536
12537 * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
12538 additional option file arm/eabi.opt.
12539 * config/arm/eabi.h (File): New configuration file for EABI targets.
12540 * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
12541 SUBSUBTARGET_EXTRA_SPECS.
12542 (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
12543 * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
12544 from STARTFILE_SPEC so that it can be referenced in an override.
12545 (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
12546 (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
12547 can be referenced in an override.
12548 (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
12549 * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
12550 so that it can be referenced in an override.
12551 (LINK_SPEC): Use BPABI_LINK_SPEC.
12552 * config/arm/eabi.opt (File): New.
12553
e63ea00c
RW
125542008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12555
12556 * Makefile.in (TARGET_DEF_H): Add targhooks.h.
12557 (FIXED_VALUE_H): New variable.
12558 (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
12559 input.h, fixed-value.h.
12560 (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
12561 (BASIC_BLOCK_H): Use $(BITMAP_H).
12562 (FUNCTION_H): Add varray.h.
12563 (IPA_REFERENCE_H): Use $(BITMAP_H).
12564 (CGRAPH_H): Add $(BASIC_BLOCK_H).
12565 (DF_H): Use $(BITMAP_H).
12566 (GGC_H): Add statistics.h.
12567 (INSN_ADDR_H): New.
12568 (INSN_ATTR_H): Use it.
12569 (SYSTEM_H): Add safe-ctype.h, filenames.h.
12570 (INPUT_H): New.
12571 (SYMTAB_H): Add $(OBSTACK_H).
12572 (CPP_INTERNAL_H): New.
12573 (TREE_DUMP_H): Add tree-pass.h.
12574 (TREE_FLOW_H): Use $(BITMAP_H)
12575 (PRETTY_PRINT_H): Use $(INPUT_H).
12576 (EBITMAP_H): Rename from typo-ed EBIMAP_H.
12577 (GSTAB_H): New.
12578 (BITMAP_H): New.
12579 (many object files): Fix lots of header dependencies throughout.
12580
a4e4a2d6
RW
125812008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12582
12583 * Makefile.in (write_entries_to_file, write_entries_to_file_split):
12584 New macros.
12585 (s-gtyp-input): Use them to write tmp-gi.list.
12586 (echo_to_gi.list): Remove.
12587
caf55296
RG
125882008-07-14 Richard Guenther <rguenther@suse.de>
12589
12590 * tree-ssa-sccvn.c (pre_info): Remove.
12591 (switch_to_PRE_table): Likewise.
72ea2555 12592 (free_scc_vn): Do not clear SSA_NAME_VALUE. Do not free pre_info.
caf55296
RG
12593 (set_hashtable_value_ids): Do not create value-ids for the
12594 optimistic tables.
12595 (run_scc_vn): Remove double test. Remove bogus special-case
12596 in value-number printing.
12597 * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
12598 * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
12599 SSA_NAME_VALUE.
12600 * tree-flow-inline.h (get_value_handle): Remove.
12601 * tree-flow.h (get_value_handle): Remove.
12602
145544ab
MJ
126032008-07-14 Martin Jambor <mjambor@suse.cz>
12604
12605 * tree-switch-conversion.c (gen_inbound_check): Make sure the type
12606 in which we generate arithmetics is not a subrange.
12607
9bfb0f01
MJ
126082008-07-14 Martin Jambor <mjambor@suse.cz>
12609
12610 * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
12611
f709638a
RG
126122008-07-14 Richard Guenther <rguenther@suse.de>
12613
72ea2555 12614 * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
f709638a 12615
1f9e1fc6
AK
126162008-07-14 Andreas Krebbel <krebbel1@de.ibm.com>
12617
12618 PR target/36745
12619 * config/s390/s390.c: (s390_secondary_reload): Add a secondary
12620 reload for symbol refs moved to r0 with -fPIC.
12621 (legitimize_pic_address): Use the target register as temporary
12622 reg if possible.
12623 (emit_symbolic_move): Adjust comment.
12624 * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
12625 New expanders.
12626
5950c3c9
BE
126272008-07-14 Ben Elliston <bje@au.ibm.com>
12628
12629 * c-common.h (C_CPP_HASHNODE): New macro.
12630 * coretypes.h (struct cpp_token): Forward declare.
12631 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
12632 the context-sensitive keyword method.
12633 * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
12634 __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
12635 expand_bool_pixel): New.
12636 (altivec_categorize_keyword): New function.
12637 (init_vector_keywords): New function.
12638 (rs6000_macro_to_expand): Likewise.
12639 (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
12640 compiling an ISO C dialect.
12641
b463e8de
DB
126422008-07-13 Daniel Berlin <dberlin@dberlin.org>
12643
72ea2555 12644 * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
b463e8de
DB
12645 (create_expression_by_pieces): Fix typo.
12646 (do_regular_insertion): Use debug counter here too.
12647
f49e46d8
HPN
126482008-07-14 Hans-Peter Nilsson <hp@axis.com>
12649
12650 PR target/35492.
12651 * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
12652 CONST_OK_FOR_LETTER_P. All port-local users changed.
12653 (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
12654 implement Kp matching power-of-two.
12655 (CONSTRAINT_LEN): Define to match.
12656 * config/cris/cris.md: Replace all use of constraint K with Kc.
12657 ("*btst*): Use Kp for operand 0 of last alternative.
12658
5d94a6d0
JDA
126592008-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12660
12661 PR testsuite/36440
12662 * tree-call-cdce.c (check_target_format): Accept MIPS single, double
12663 and quad formats.
12664
4d16a7b7
JH
126652008-07-13 Jan Hubicka <jh@suse.cz>
12666
12667 * tree.c (decl_assembler_name_equal): Expect assembler name of decl
12668 to be mangled too.
12669
f4c91e0d
RG
126702008-07-13 Richard Guenther <rguenther@suse.de>
12671
12672 PR middle-end/36811
12673 * langhooks.c (lhd_print_error_function): Deal with recursive
12674 BLOCK trees.
12675
266ad5c8
JH
126762008-07-12 Jan Hubicka <jh@suse.cz>
12677
12678 * cgraph.c (assembler_name_hash): New static var.
12679 (hash_node_by_assembler_name, eq_assembler_name): New.
12680 (cgraph_node_for_asm): Use hashtable.
12681 (cgraph_remove_node): Maintain hashtable.
12682 (change_decl_assembler_name): Sanity check that names are not changing
12683 after aliasing was processed.
12684 * cgraph.h (varpoon_node): Add next GGC marker.
12685 * tree.c (decl_assembler_name_equal): Constify.
12686 (decl_assembler_name_hash): New.
12687 * tree.h (decl_assembler_name_equal): Constify.
12688 (decl_assembler_name_hash): Update.
12689
a5a12a83
DD
126902008-07-12 David Daney <ddaney@avtrex.com>
12691
12692 * config/mips/driver-native.c (host_detect_local_cpu): Handle
12693 sb1 and r5000 cpus.
12694
2feaae20
RS
126952008-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12696
12697 * doc/md.texi: Document the MIPS "v" constraint.
12698 * config/mips/mips.h (reg_class): Revert last change.
12699 (REG_CLASS_NAMES): Likewise.
12700 (REG_CLASS_CONTENTS): Likewise.
12701 * config/mips/mips.c (mips_regno_to_class): Likewise.
12702 * config/mips/constraints.md (v): Likewise, but add documentation.
12703 Add a comment to say that this constraint should not be used in
12704 gcc code.
12705
a428e1d4
DD
127062008-07-11 DJ Delorie <dj@redhat.com>
12707
12708 * config/h8300/h8300.md (length): Fix branch offset limit.
12709
22129589 127102008-07-11 Anatoly Sokolov <aesok@post.ru>
1cf0a7f1
AS
12711
12712 * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
12713 * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
12714 (avr_hard_regno_scratch_ok): New function.
12715 (TARGET_HARD_REGNO_SCRATCH_OK): Define.
12716 * config/avr/avr.md (all peepholes that request a scratch register):
12717 Remove avr_peep2_scratch_safe use.
12718
eea1139b
ILT
127192008-07-11 Tom Tromey <tromey@redhat.com>
12720 Ian Lance Taylor <iant@google.com>
12721
12722 * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
12723 (struct c_common_resword): Define.
12724 (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
12725 (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
12726 (c_common_reswords, num_c_common_reswords): Declare.
12727 * c-common.c (c_common_reswords): New global const array.
12728 (num_c_common_reswords): New const int.
12729 * c-parser.c (struct resword, reswords): Don't define.
12730 (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
12731 (c_parse_init): Clarify mask code. Use c_common_reswords rather
12732 than reswords. If warning about C++ keywords, give them a special
12733 RID code.
12734 (c_lex_one_token): Warn about C++ keywords. Call
12735 objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
12736 (c_parser_external_declaration): Look for RID_xxx rather than
12737 RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
12738 (c_parser_statement_after_labels): Likewise.
12739 (c_parser_objc_class_instance_variables): Likewise.
12740 (c_parser_objc_class_declaration): Likewise.
12741 (c_parser_objc_try_catch_statement): Likewise.
12742 * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
12743 (declspecs_add_type): Likewise.
12744
ec4d7730
AG
127452008-07-11 Angelo Graziosi <angelo.graziosi@alice.it>
12746
12747 * ggc-page.c (alloc_page):
12748 Substituting xmalloc, xcalloc with
12749 XNEWVEC and XCNEWVAR macros which add the
12750 needed casts.
12751
941a9479
RG
127522008-07-11 Richard Guenther <rguenther@suse.de>
12753
12754 PR tree-optimization/36765
12755 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
12756 aliases from HEAP vars to SMTs.
12757
8dd9a120
KG
127582008-07-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12759
12760 * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
12761 * configure.ac (loose_warn): Move -Wc++-compat from here...
12762 (strict_warn): ...to here.
12763 * configure: Regenerate.
12764
e68152b6
JM
127652008-07-10 Joseph Myers <joseph@codesourcery.com>
12766
12767 * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
12768 i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
12769 m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
12770 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
12771 excluding more specific h8300-*-* and sh-*-* targets.
12772
6999afe1
DB
127732008-07-10 Daniel Berlin <dberlin@dberlin.org>
12774
72ea2555 12775 * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
6999afe1
DB
12776 (eliminate): Ditto.
12777 (execute_pre): Call loop_optimizer_finalize in early exit.
12778
a182fb6b
JJ
127792008-07-10 Jakub Jelinek <jakub@redhat.com>
12780
b826efd9
JJ
12781 PR middle-end/36790
12782 * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
12783 uids in the bitmap, not just VAR_DECL uids.
12784
a182fb6b
JJ
12785 PR rtl-optimization/36419
12786 * combine-stack-adj.c (adjust_frame_related_expr): New function.
12787 (combine_stack_adjustments_for_block): Call it if needed. Delete
12788 correct insn.
12789 * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
12790 DW_CFA_GNU_args_size if CSA pass merged some adjustments into
12791 prologue sp adjustment.
12792
15e1dac0
PM
127932008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
12794
12795 PR other/28322
a182fb6b 12796 * opts.c (print_ignored_options): Report postponed diagnostics for
15e1dac0 12797 unknown -Wno-* options as warnings, not errors.
a182fb6b
JJ
12798 (postpone_unknown_option_error): Renamed to...
12799 (postpone_unknown_option_warning): ... this.
15e1dac0 12800
62d33f08
DK
128012008-07-09 Doug Kwan <dougkwan@google.com>
12802
12803 Revert:
12804 2008-07-08 Doug Kwan <dougkwan@google.com>
12805
12806 * config/arm/arm.opt (mandroid): New option.
12807 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
12808 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
12809 (CC1_SPEC): Same.
12810 (CC1PLUS_SPEC): Same.
12811 (LIB_SPEC): Same.
12812 (STARTFILE_SPEC): Same.
12813 (ENDFILE_SPEC): Same.
12814 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
12815 used.
12816
256f27f1
RS
128172008-07-09 Richard Sandiford <rdsandiford@googlemail.com>
12818
12819 PR target/35802
12820 * config/mips/mips.h (reg_class): Remove V1_REG.
12821 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
12822 * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
12823 instead of V1_REGS.
12824 (mips_get_tp): New function.
12825 (mips_legitimize_tls_address): Use it.
12826 * config/mips/constraints.md (v): Delete.
12827 * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
12828 (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
12829 After reload, split into a move and ...
12830 (*tls_get_tp_<mode>_split): ...this new instruction.
12831
432b5555
DD
128322008-07-09 David Daney <ddaney@avtrex.com>
12833
12834 * config/mips/driver-native.c: Include coretypes.h and tm.h.
12835
d406b663
JJ
128362008-07-09 Jakub Jelinek <jakub@redhat.com>
12837
12838 * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
12839 (push_gimplify_context): Don't allocate temp_htab nor c itself here.
12840 Add c argument.
12841 (pop_gimplify_context): Check c->temp_htab instead of optimize whether
12842 htab_delete should be called. Don't free c.
12843 (lookup_tmp_var): Create temp_htab lazily.
12844 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
12845 gimplify_body, force_gimple_operand): Adjust push_gimplify_context
12846 callers.
12847 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
12848 lower_omp_ordered, lower_omp_critical, lower_omp_for,
22129589 12849 create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
d406b663
JJ
12850 * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
12851 * tree-sra.c (generate_element_init): Likewise.
12852 * tree-mudflap.c (execute_mudflap_function_ops,
12853 execute_mudflap_function_decls): Likewise.
12854 * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
12855 * tree-gimple.h (struct gimplify_ctx): New type.
12856 (push_gimplify_context): Adjust prototype.
12857
b0a0ab2d
DB
128582008-07-09 Daniel Berlin <dberlin@dberlin.org>
12859
12860 * tree-ssa-pre.c (phi_translate_1): Update placement of
12861 add_to_value calls.
12862
dbc42c44
AS
128632008-07-09 Anatoly Sokolov <aesok@post.ru>
12864
12865 * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
12866 * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
12867 (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
12868 * targhooks.c (default_hard_regno_scratch_ok): New function.
12869 * targhooks.h (default_hard_regno_scratch_ok): Declare function.
12870 * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
12871 * recog.c: Include "target.h".
12872 (peep2_find_free_register): Add check for global regs. Add target
12873 specific check.
12874 * Makefile.in (recog.o): Depend on target.h.
12875
28f16d05
KK
128762008-07-09 Kaz Kojima <kkojima@gcc.gnu.org>
12877
12878 * config/sh/sh.c (sh_canonical_va_list_type): New.
12879 (TARGET_CANONICAL_VA_LIST_TYPE): Define.
12880
1ebc7e68
RA
128812008-07-09 Raksit Ashok <raksit@google.com>
12882
12883 * doc/invoke.texi (Option Summary): Mention new option
12884 -Wdisallowed-function-list=...
12885 (Warning Options): Document -Wdisallowed-function-list=...
12886 * common.opt (Wdisallowed-function-list=): New flag.
12887 * flags.h (warn_disallowed_functions): External definition of new
12888 boolean warning flag.
12889 (warn_if_disallowed_function_p): Declare new function.
12890 * opts.c (warning_disallowed_functions): New static variable.
12891 (warn_disallowed_functions): New boolean warning flag.
12892 (warn_if_disallowed_function_p): New function.
12893 (add_comma_separated_to_vector): Rename
12894 add_instrument_functions_exclude_list to this.
12895 (common_handle_option): Handle new option. Rename calls to
12896 add_instrument_functions_exclude_list into calls to
12897 add_comma_separated_to_vector.
12898 * c-parser.c (c_parser_postfix_expression_after_primary): New warning
12899 based on flag warn_disallowed_functions.
12900
47d268d0
CB
129012008-07-09 Christian Bruel <christian.bruel@st.com>
12902
12903 * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
12904 instead of get_attr_length.
12905
8ad97cfc
KG
129062008-07-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12907
12908 * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
12909 keywords.
12910 * genemit.c (gen_insn): Likewise.
12911 * gengtype.c (note_def_vec): Likewise.
12912 * gengtype.h (note_def_vec): Likewise.
12913 * genoutput.c (struct data, output_insn_data, process_template,
12914 gen_expand, gen_split, note_constraint): Likewise.
12915 * genrecog.c (new_decision, add_to_sequence, factor_tests,
12916 make_insn_sequence): Likewise.
12917 * gensupport.c (record_insn_name): Likewise.
12918
588021c0
DK
129192008-07-08 Doug Kwan <dougkwan@google.com>
12920
12921 * config/arm/arm.opt (mandroid): New option.
12922 * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
12923 (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
12924 (CC1_SPEC): Same.
12925 (CC1PLUS_SPEC): Same.
12926 (LIB_SPEC): Same.
12927 (STARTFILE_SPEC): Same.
12928 (ENDFILE_SPEC): Same.
12929 (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
12930 used.
12931
9946ca2d
RA
129322008-07-08 Raksit Ashok <raksit@google.com>
12933
12934 * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
12935 (set_storage_via_setmem): Fix expected_align parameter.
12936 * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
12937 missing from the list.
12938 * doc/md.texi (movmem): Explicitly state that expected alignment is
12939 to be expressed in bytes.
12940 (setmem): Explicitly state that expected alignment is to be expressed
12941 in bytes.
12942
10932211
JM
129432008-07-08 Joseph Myers <joseph@codesourcery.com>
12944
12945 * reload.c (find_reloads_subreg_address): Do not require validity
12946 of address in original mode before reloading address.
12947
7039a415
TS
129482008-07-07 Tianwei Sheng <tianweis@google.com>
12949
12950 * df-core.c (df_remove_problem): Adjust the access to avoid out of
12951 bounds array access.
12952
4c44c315
JJ
129532008-07-08 Jakub Jelinek <jakub@redhat.com>
12954
72ea2555 12955 * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
4c44c315 12956
c9145754 129572008-07-05 Daniel Berlin <dberlin@dberlin.org>
22129589 12958
c9145754
DB
12959 Fix PR tree-optimization/23455
12960 Fix PR tree-optimization/35286
12961 Fix PR tree-optimization/35287
12962 * Makefile.in (OBJS-common): Remove tree-vn.o.
72ea2555 12963 (tree-vn.o): Remove.
c9145754
DB
12964 * dbgcnt.def: Add treepre_insert debug counter.
12965 * gcc/tree-flow.h (add_to_value): Updated for other changes.
12966 (debug_value_expressions): Ditto.
12967 (print_value_expressions): Ditto.
12968 * tree-pretty-print.c (dump_generic_node): Updated for
12969 VALUE_HANDLE removal.
12970 * tree-ssa-dom.c (record_equality): Ditto.
12971 (cprop_operand): Ditto.
12972 (lookup_avail_expr): Ditto.
12973 * tree-ssa-threadedge.c
12974 (record_temporary_equivalences_from_stmts_at_dest): Ditto.
12975 (simplify_control_stmt_condition): Ditto.
12976 * tree.c (tree_code_size): Ditto.
12977 (tree_node_structure): Ditto.
12978 (iterative_hash_expr): Ditto.
12979 * tree.def: Ditto.
12980 * tree.h (VALUE_HANDLE_ID): Ditto.
12981 (VALUE_HANDLE_EXPR_SET): Ditto.
12982 (struct tree_value_handle): Ditto.
12983 (union tree_node): Ditto.
12984 * treestruct.def: Ditto.
12985 * tree-vn.c: Removed.
12986 * tree-ssa-pre.c: Rewritten entirely.
12987 * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
12988 (constant_value_ids): Ditto.
12989 (vn_nary_op_t): Moved to header.
12990 (vn_phi_t): Ditto.
12991 (vn_reference_op_t): Ditto
12992 (vn_reference_t): Ditto.
12993 (next_value_id): New variable.
12994 (VN_INFO): Add an assert.
12995 (vn_constant_eq): New function.
12996 (vn_constant_hash): Ditto.
12997 (get_or_alloc_constant_value_id): Ditto.
12998 (value_id_constant_p): Ditto.
12999 (vn_reference_compute_hash): De-staticify.
13000 (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
72ea2555
UB
13001 Disable some code with a FIXME. Remove VALUE_HANDLE use.
13002 (valueize_refs): Update opcode if it changes from ssa name to constant.
c9145754
DB
13003 (vn_reference_lookup_1): Add new argument.
13004 (vn_reference_lookup): Ditto.
13005 (vn_reference_lookup_pieces): New function.
72ea2555 13006 (vn_reference_insert): Add return type. Modify to deal with value ids.
c9145754
DB
13007 (vn_reference_insert_pieces): New function.
13008 (vn_nary_op_compute_hash): De-staticify.
13009 (vn_nary_op_eq): Ditto.
13010 (vn_nary_op_lookup_pieces): New function.
22129589 13011 (vn_nary_op_lookup): Add new argument.
c9145754 13012 (vn_nary_op_insert_pieces): New function.
72ea2555 13013 (vn_nary_op_insert): Add return type. Modify to deal with value ids.
c9145754
DB
13014 (vn_phi_insert): Ditto.
13015 (visit_unary_op): Update for callee changes.
13016 (visit_binary_op): Ditto.
13017 (visit_reference_op_load): Ditto.
13018 (visit_reference_op_store): Ditto.
13019 (init_scc_vn): Init next_value_id, constant_to_value_id and
22129589 13020 constant_value_ids.
c9145754
DB
13021 (free_scc_vn): Free them.
13022 (set_hashtable_value_ids): New function.
13023 (run_scc_vn): Use it.
13024 (get_max_value_id): New function.
13025 (get_next_value_id): Ditto.
13026 (expressions_equal_p): Moved from tree-vn.c
13027 (sort_vuses): Ditto.
13028 (sort_vuses_heap): Ditto.
13029 * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
13030 above).
13031 * tree.c (iterative_hash_hashval_t): Made non-static
13032 * tree.h (iterative_hash_hashval_t): Declare it.
22129589 13033
771578a0
MJ
130342008-07-08 Martin Jambor <mjambor@suse.cz>
13035
13036 * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
13037 instead of ipa_create_node_params.
13038 (ipcp_driver): Allocate infos with ipa_check_create_node_params and
13039 ipa_check_create_edge_args, free them with
13040 free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
13041
13042 * ipa-prop.c: Include flags.h and tree-inline.h.
13043 (ipa_node_params_vector): New variable.
13044 (ipa_edge_args_vector): New variable.
13045 (edge_removal_hook_holder): New variable.
13046 (node_removal_hook_holder): New variable.
13047 (edge_duplication_hook_holder): New variable.
13048 (node_duplication_hook_holder): New variable.
13049 (ipa_detect_param_modifications): Check for presence of modified flags.
13050 (ipa_compute_jump_functions): Check for presence of jump functions.
13051 (ipa_free_edge_args_substructures): New function.
13052 (ipa_create_node_params): Removed.
13053 (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
13054 (ipa_free_node_params_substructures): New function.
13055 (ipa_free_all_node_params): Changed to deallocate the on-the-side
13056 vector.
13057 (ipa_edge_removal_hook): New function.
13058 (ipa_node_removal_hook): New function.
13059 (duplicate_array): New function.
13060 (ipa_edge_duplication_hook): New function.
13061 (ipa_node_duplication_hook): New function.
13062 (ipa_register_cgraph_hooks): New function.
13063 (ipa_unregister_cgraph_hooks): New function.
13064 (free_all_ipa_structures_after_ipa_cp): New function.
22129589 13065
771578a0
MJ
13066 * ipa-prop.h: Include vec.h.
13067 (ipa_node_params_t): New typedef with vector types for it.
13068 (ipa_edge_args_t): New typedef with vector types for it.
13069 (IPA_NODE_REF): Changed to access an on-the-side vector.
13070 (IPA_EDGE_REF): Changed to access an on-the-side vector.
13071 (ipa_check_create_node_params): New function.
13072 (ipa_check_create_edge_args): New function.
22129589 13073
771578a0
MJ
13074 * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h. Converted
13075 all users.
22129589 13076
d2e506f2
TT
130772008-07-07 Tom Tromey <tromey@redhat.com>
13078
13079 * configure, config.in: Rebuilt.
13080 * configure.ac: Don't check for scandir or alphasort.
13081
bcbdbbb0
JM
130822008-07-07 Joseph Myers <joseph@codesourcery.com>
13083
13084 * config/arm/arm.c (arm_init_neon_builtins): Register built-in
13085 types immediately after creating them.
13086
5cef5bf5
JM
130872008-07-07 Joseph Myers <joseph@codesourcery.com>
13088
13089 * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
13090
fc93bcb6
FP
130912008-07-07 Fernando Pereira <fernando@cs.ucla.edu>
13092
72ea2555
UB
13093 * tree-ssa-structalias.c (compute_points_to_sets): Add call to
13094 dump_constraint_graph.
13095 (dump_constraint_edge): New function.
13096 (dump_constraint_graph): New function.
13097 (debug_constraint_graph): New function.
13098 (dump_constraint): Removed useless comparison.
13099 * tree-ssa-structalias.h (dump_constraint_edge): Declare.
13100 (dump_constraint_graph): Declare.
13101 (debug_constraint_graph): Declare.
13102 * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
fc93bcb6 13103
8432ea85
KT
131042008-07-07 Kai Tietz <kai.tietz@onevision.com>
13105
13106 * config/i386/i386.c (is_va_list_char_pointer): New.
13107 (ix86_va_start): Replace compare with ms_va_list_type_node
13108 by is_va_list_char_pointer.
13109 (ix86_gimplify_va_arg): Likewise.
13110
9088c1cc
MJ
131112008-07-07 Martin Jambor <mjambor@suse.cz>
13112
13113 * cgraph.c (cgraph_edge_max_uid): New variable.
13114 (struct cgraph_edge_hook_list): New type.
13115 (struct cgraph_node_hook_list): New type.
13116 (struct cgraph_2edge_hook_list): New type.
13117 (struct cgraph_2node_hook_list): New type.
13118 (first_cgraph_edge_removal_hook): New variable.
13119 (first_cgraph_node_removal_hook): New variable.
13120 (first_cgraph_edge_duplicated_hook): New variable.
13121 (first_cgraph_node_duplicated_hook): New variable.
13122 (cgraph_add_edge_removal_hook): New function.
13123 (cgraph_remove_edge_removal_hook): New function.
13124 (cgraph_call_edge_removal_hooks): New function.
13125 (cgraph_add_node_removal_hook): New function.
13126 (cgraph_remove_node_removal_hook): New function.
13127 (cgraph_call_node_removal_hooks): New function.
13128 (cgraph_add_edge_duplication_hook): New function.
13129 (cgraph_remove_edge_duplication_hook): New function.
13130 (cgraph_call_edge_duplication_hooks): New function.
13131 (cgraph_add_node_duplication_hook): New function.
13132 (cgraph_remove_node_duplication_hook): New function.
13133 (cgraph_call_node_duplication_hooks): New function.
13134 (cgraph_create_edge): Assign to edge uid.
13135 (cgraph_remove_edge): Call edge removal hooks.
13136 (cgraph_node_remove_callees): Call edge removal hooks.
13137 (cgraph_node_remove_callers): Call edge removal hooks.
13138 (cgraph_remove_node): Call node removal hooks.
13139 (cgraph_clone_edge): Call edge duplication hooks.
13140 (cgraph_clone_node): Call node duplication hooks.
13141
13142 * cgraph.h (cgraph_edge): New field uid.
13143 (cgraph_edge_hook): New type.
13144 (cgraph_node_hook): New type.
13145 (cgraph_2edge_hook): New type.
13146 (cgraph_2node_hook): New type.
13147
c71618c6
AT
131482008-07-07 Andreas Tobler <a.tobler@schweiz.org>
13149
13150 * config.in: Regenerate.
13151
3def1397
VP
131522008-07-07 Vladimir Prus <vladimir@codesourcery.com>
13153
13154 * gcc.c (print_sysroot): New.
13155 (option_map, display_help, process_command): Handle the
13156 -print-sysroot option.
13157 (main): Print the sysroot if requested.
13158 * doc/invoke.texi (Debugging Options): Document -print-sysroot.
22129589 13159
40a420d5
RW
131602008-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13161
13162 PR target/34780
13163 * unwind-pe.h (size_of_encoded_value): add attribute unused.
13164
85776d60
DJ
131652008-07-07 Daniel Jacobowitz <dan@codesourcery.com>
13166
72ea2555 13167 * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
85776d60
DJ
13168 (assign_parm_setup_block_p): Also check mode of entry_parm.
13169
bf87f41c
RG
131702008-07-07 Richard Guenther <rguenther@suse.de>
13171
13172 * tree-ssa-structalias.h (set_used_smts): Remove.
13173 * tree-ssa-structalias.c (used_smts): Likewise.
13174 (set_used_smts): Likewise.
13175 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
13176 call to set_used_smts.
13177
e5bae89b
RG
131782008-07-07 Richard Guenther <rguenther@suse.de>
13179
13180 * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
13181 (new_var_info): Set it to false.
13182 (solution_set_add): Correctly handle pointers outside a var and
13183 inside a field.
13184 (type_safe): Treat variables with is_full_var properly.
13185 (do_sd_constraint): Likewise.
13186 (do_ds_constraint): Likewise.
13187 (process_constraint): Remove zeroing offset for !use_field_sensitive.
13188 (get_constraint_for_ptr_offset): New function.
13189 (get_constraint_for_component_ref): For addresses at least include
13190 the last field of the variable. Handle is_full_vars properly.
13191 (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
13192 (handle_ptr_arith): Remove.
13193 (find_func_aliases): Simplify assignment handling.
13194 (create_function_info_for): For parameter and result varinfos set
13195 is_full_var flag.
13196 (create_variable_info_for): Set is_full_var flag whenever we
13197 just created a single varinfo for a decl.
13198 (init_alias_vars): Initialize use_field_sensitive from
13199 max-fields-for-field-sensitive parameter.
13200
115340c7
RG
132012008-07-07 Richard Guenther <rguenther@suse.de>
13202
13203 PR tree-optimization/36713
13204 * tree-flow-inline.h (is_call_used): New function.
13205 * tree-nrv.c (dest_safe_for_nrv_p): Use it.
13206 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
13207 * tree-outof-ssa.c (create_temp): Set call-used flag if required.
13208
511e41e5
MK
132092008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
13210
13211 * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
22129589 13212
bd0e50ee
MS
132132008-07-07 Mark Shinwell <shinwell@codesourcery.com>
13214
13215 * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
13216
368b55f6
NS
132172008-07-07 Maxim Kuvyrkov <maxim@codesourcery.com>
13218 Nathan Sidwell <nathan@codesourcery.com>
13219
13220 * config.gcc (m68k-*-linux*): Add with_arch. Add sysroot-suffix.h
13221 to tm_file. Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
13222 tmake_file.
13223 * config/m68k/t-linux: New.
13224 * doc/install.texi: Document m68k-*-linux is now multilibbed by
13225 default.
13226
132272008-07-07 Nathan Sidwell <nathan@codesourcery.com>
13228
13229 * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
13230 * config/m68k/m68k-devices.def: Remove multilibs that only differ
13231 by MAC/EMAC.
13232
63ab5b8c
KG
132332008-07-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13234
13235 * gcc.c (execute): Fix -Wc++-compat warning.
13236
9eb578c8
L
132372008-07-06 H.J. Lu <hongjiu.lu@intel.com>
13238
13239 PR target/36720
13240 * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
13241 constant for little endian.
13242
60730ade
RS
132432008-07-06 Richard Sandiford <rdsandiford@googlemail.com>
13244
13245 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
13246 mips_base_mips16 instead of TARGET_MIPS16.
13247 (mips_base_mips16): Declare.
13248 * config/mips/mips.c (mips_base_mips16): Make global.
13249 (was_mips16_p): Remove GTY marker.
13250 (was_mips16_pch_p): New variable.
13251 (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
13252 (mips_override_options): Force to non-MIPS16 mode initially.
13253 Do not complain about MIPS16 PIC incompatibilities here.
13254 Only allow -mgpopt if -mexplicit-relocs is in force for
13255 non-MIPS16 code.
13256
bba09b5a
AT
132572008-07-06 Andreas Tobler <a.tobler@schweiz.org>
13258
13259 * configure.ac: Check for caddr_t, define to char * if not defined.
13260 * configure: Regenerate.
13261 * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
13262 (mmap_gt_pch_use_address): Likewise.
13263 * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
13264
ee7d4b57
RG
132652008-07-06 Richard Guenther <rguenther@suse.de>
13266
13267 * tree-ssa-structalias.c (struct variable_info): Remove has_union.
13268 (new_var_info): Deal with it.
13269 (solution_set_add): Likewise.
13270 (bitpos_of_field): Make signed, fix.
13271 (struct fieldoff): Remove type and decl fields. Make size field
13272 unsigned HOST_WIDE_INT. Add has_unknown_size and may_have_pointers
13273 flags.
13274 (fieldoff_compare): Deal with it.
13275 (push_fields_onto_fieldstack): Remove has_union argument, glob
13276 adjacent non-pointer fields together.
13277 (create_function_info_for): Do not set has_union.
13278 (create_variable_info_for): Simplify.
13279
35cbb299
KT
132802008-07-06 Kai Tietz <kai.tietz@onevision.com>
13281
13282 * config.gcc (extra_headers): Add cross-stdarg.h for target
13283 x86_64-*-* and i?86-*-*.
13284 * config/i386/cross-stdarg.h: New.
13285 * builtins.c (std_fn_abi_va_list): New.
13286 (std_canonical_va_list_type): New.
13287 (stabilize_va_list): Replace va_list_type_node use by
13288 mtarget.canonical_va_list_type.
13289 (gimplify_va_arg_expr): Likewise.
13290 (expand_builtin_va_copy): Replace va_list_type_node use by
13291 mtarget.fn_abi_va_list.
13292 * tree-sra.c (is_va_list_type): New helper.
13293 (decl_can_be_decomposed_p): Replace
13294 va_list_type_node use by is_va_list_type.
13295 * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
13296 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
13297 * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
13298 * config/i386/i386-protos.h (ix86_get_valist_type): New.
13299 (ix86_enum_va_list): New.
13300 * config/i386/i386.c (sysv_va_list_type_node): New.
13301 (ms_va_list_type_node): New.
13302 (ix86_function_type_abi): Remove sorry.
13303 (ix86_build_builtin_va_list_abi): New.
13304 (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
13305 for 64-bit targets.
13306 (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
13307 (ix86_init_builtins_va_builtins_abi): New.
13308 (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
13309 for 64-bit targets.
13310 (ix86_handle_abi_attribute): New.
13311 (attribute_spec): Add sysv_abi and ms_abi.
13312 (ix86_fn_abi_va_list): New.
13313 (ix86_canonical_va_list_type): New.
13314 (ix86_enum_va_list): New.
13315 (TARGET_FN_ABI_VA_LIST): New.
13316 (TARGET_CANONICAL_VA_LIST_TYPE): New.
13317 * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
13318 * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
13319 (TARGET_CANONICAL_VA_LIST_TYPE): New.
13320 (TARGET_ENUM_VA_LIST): New.
13321 * expr.h (std_fn_abi_va_list): New.
13322 (std_canonical_va_list_type): New.
13323 * target-def.h (TARGET_FN_ABI_VA_LIST): New.
13324 (TARGET_CANONICAL_VA_LIST_TYPE): New.
13325 (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
13326 TARGET_CANONICAL_VA_LIST_TYPE.
13327 * target.h (struct gcc_target): Add fn_abi_va_list hook
13328 and canonical_va_list_type hook.
13329
0e4b00d6
AP
133302008-07-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
13331
13332 * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
13333 integral and pointer types.
13334
33c7eedf
RS
133352008-07-04 Roger Sayle <roger@eyesopen.com>
13336
72ea2555 13337 * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
33c7eedf
RS
13338 the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
13339
0dcd6f42
KK
133402008-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
13341
13342 PR target/36684
72ea2555 13343 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
0dcd6f42 13344
04e78aa9
JJ
133452008-07-04 Jakub Jelinek <jakub@redhat.com>
13346
13347 * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
13348 build_gimple_modify_stmt.
13349 (build_arrays, gen_inbound_check): Likewise. Force RHS to be
13350 gimple operand. Use fold_build* instead of build*.
13351
0e1f4c6b
RG
133522008-07-04 Richard Guenther <rguenther@suse.de>
13353
13354 * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
13355 (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
13356 properly to compute the reachability set if we do field-sensitive PTA.
13357 * invoke.texi (max-fields-for-field-sensitive): Document default.
13358 * opts.c (decode_options): Set max-fields-for-field-sensitive to
13359 100 for optimize >= 2.
13360
bf8e9c49
KG
133612008-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13362
13363 * ggc-zone.c (lookup_page_table_if_allocated,
13364 set_page_table_entry, zone_find_object_size, alloc_small_page,
13365 alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
13366 new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
13367 -Wc++-compat and/or -Wcast-qual warnings.
13368
1d3155fc
AM
133692008-07-04 Alan Modra <amodra@bigpond.net.au>
13370
13371 PR target/36634
13372 * config/rs6000/rs6000.md (call, call_value): Don't arrange for
13373 pic_offset_table_rtx to be marked as used here.
13374 (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
13375 TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
13376 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
13377 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
13378 !TARGET_SECURE_PLT.
13379
aebde504
KG
133802008-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13381
13382 * alloc-pool.c (hash_descriptor, eq_descriptor,
13383 alloc_pool_descriptor): Fix -Wc++-compat warnings.
13384 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
13385 Likewise.
13386 * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
13387 loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
72ea2555 13388 final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
aebde504
KG
13389 * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
13390 Likewise.
13391
52778e2a
EB
133922008-07-03 Eric Botcazou <ebotcazou@adacore.com>
13393
13394 * tree-flow.h (loop_only_exit_p): Declare.
13395 * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
13396 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
13397 the number of iterations if it is constant. Otherwise, if this is the
13398 only possible exit of the loop, use the conservative estimate on the
13399 number of iterations of the entire loop if available.
13400
f92518d7
RS
134012008-07-03 Richard Sandiford <rdsandiford@googlemail.com>
13402
13403 * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
13404 * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
13405 Add synchronization functions.
13406 * config/sync.c: New file.
13407 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
13408 (LIBGCC_SYNC_CFLAGS): Likewise.
13409
dcde22ac
UB
134102008-07-03 Uros Bizjak <ubizjak@gmail.com>
13411
13412 PR target/36710
13413 * config/i386/i386.md (mode): Add TF to "mode" attribute.
13414 (*pushtf_sse): New insn pattern.
13415 (pushtf splitters): New splitters.
13416
9d7e5c4d
MM
134172008-07-03 Michael Meissner <gnu@the-meissners.org>
13418
13419 PR middle-end/35736
13420 * predict.c (build_predict_expr): Use void_type_node for the tree
13421 type, instead of NULL_TREE.
13422
192f2d33
L
134232008-07-03 H.J. Lu <hongjiu.lu@intel.com>
13424
13425 * config/i386/i386.c (contains_aligned_value_p): Return true
13426 for TCmode.
13427 (ix86_data_alignment): Align TCmode to 128bits.
13428 (ix86_local_alignment): Likewise.
13429
70d3fcab
AH
134302008-07-03 Andrew Haley <aph@redhat.com>
13431
13432 PR bootstrap/33304
13433 * vec.h (VEC_TA): New.
13434 (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
13435 DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
13436 * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
13437 (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
13438 (C_COMMON_FIXED_TYPES): Remove first arg.
13439 (C_COMMON_FIXED_MODE_TYPES): Likewise.
13440 * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
13441 MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
13442 not to use empty macro arguments.
13443
1935a7ef
JM
134442008-07-02 Joseph Myers <joseph@codesourcery.com>
13445
13446 * config/alpha/vms_tramp.asm, config/arm/crti.asm,
13447 config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
13448 config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
13449 config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
13450 config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
13451 config/i386/sol2-gc1.asm, config/ia64/crti.asm,
13452 config/ia64/crtn.asm, config/m68hc11/larith.asm,
13453 config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
13454 config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
13455 config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
13456 config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
13457 config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
13458 config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
13459 config/rs6000/e500crtres64gpr.asm,
13460 config/rs6000/e500crtres64gprctr.asm,
13461 config/rs6000/e500crtrest32gpr.asm,
13462 config/rs6000/e500crtrest64gpr.asm,
13463 config/rs6000/e500crtresx32gpr.asm,
13464 config/rs6000/e500crtresx64gpr.asm,
13465 config/rs6000/e500crtsav32gpr.asm,
13466 config/rs6000/e500crtsav64gpr.asm,
13467 config/rs6000/e500crtsav64gprctr.asm,
13468 config/rs6000/e500crtsavg32gpr.asm,
13469 config/rs6000/e500crtsavg64gpr.asm,
13470 config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
13471 config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
13472 config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
13473 config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
13474 config/sparc/sol2-cn.asm: Remove .file directives.
13475
1b929c9a
RS
134762008-07-02 Richard Sandiford <rdsandiford@googlemail.com>
13477
13478 * resource.c (mark_referenced_resources): Look inside
13479 UNSPEC_VOLATILEs and ASM_INPUTs.
13480
65c5f2a6
ILT
134812008-07-02 Ian Lance Taylor <iant@google.com>
13482
13483 * rtlanal.c (add_reg_note): New function.
13484 * rtl.h (add_reg_note): Declare.
13485 * auto-inc-dec.c (attempt_change): Use add_reg_note.
13486 * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
13487 * builtins.c (expand_builtin_longjmp): Likewise.
13488 (expand_builtin_nonlocal_goto): Likewise.
13489 * calls.c (emit_call_1, expand_call): Likewise.
13490 * cfgexpand.c (add_reg_br_prob_note): Likewise.
13491 * cfglayout.c (fixup_reorder_chain): Likewise.
13492 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
13493 (commit_one_edge_insertion): Likewise.
13494 * combine.c (move_deaths, distribute_notes): Likewise.
13495 * df-problems.c (df_set_note): Likewise.
13496 * emit-rtl.c (link_cc0_insns, try_split): Likewise.
13497 (set_unique_reg_note): Likewise.
13498 (emit_copy_of_insn_after): Likewise.
13499 * expr.c (expand_expr_real): Likewise.
13500 * gcse.c (add_label_notes): Likewise.
13501 * haifa-sched.c (create_check_block_twin): Likewise.
13502 * jump.c (mark_jump_label_1): Likewise.
13503 * loop-doloop.c (add_test, doloop_modify): Likewise.
13504 * loop-unswitch.c (compare_and_jump_seq): Likewise.
13505 * lower-subreg.c (move_eh_region_note): Likewise.
13506 * optabs.c (emit_libcall_block): Likewise.
13507 * predict.c (predict_insn): Likewise.
13508 (combine_predictions_for_insn): Likewise.
13509 * recog.c (peephole2_optimize): Likewise.
13510 * regmove.c (try_auto_increment): Likewise.
13511 * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
13512 * reload.c (find_reloads): Likewise.
13513 * reload1.c (fixup_eh_region_note): Likewise.
13514 (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
13515 * reorg.c (delete_prior_computation): Likewise.
13516 (delete_computation, dbr_schedule): Likewise.
13517 * config/pa/pa.c (legitimize_pic_address): Likewise.
13518 * config/sh/sh.c (sh_reorg): Likewise.
13519
ff473280
L
135202008-07-02 H.J. Lu <hongjiu.lu@intel.com>
13521
13522 PR target/36669
13523 * config/libgcc-glibc.ver: Add %exclude.
13524 * config/m32r/libgcc-glibc.ver: Likwise.
13525 * config/s390/libgcc-glibc.ver: Likwise.
13526 * config/sh/libgcc-glibc.ver: Likwise.
13527 * config/sparc/libgcc-sparc-glibc.ver: Likwise.
13528
13529 * config/i386/libgcc-glibc.ver: New.
13530
13531 * config/i386/libgcc-x86_64-glibc.ver: Removed.
13532
135332008-07-02 H.J. Lu <hongjiu.lu@intel.com>
13534
13535 * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
13536 from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
13537 i[34567]86-*-linux*, x86_64-*-linux*. Add
13538 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
13539 i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
13540 x86_64-*-linux*. Add i386/t-linux to tmake_file for
13541 i[34567]86-*-linux*, x86_64-*-linux*.
13542
13543 * libgcc-std.ver: Add empty GCC_4.4.0.
13544
13545 * mkmap-symver.awk: Support multiple versions per symbol.
13546
13547 * config/i386/i386.c (ix86_init_builtins): Always define
13548 __builtin_fabsq and __builtin_copysignq with fallbacks.
13549 (ix86_expand_builtin): Emit normal call for __builtin_fabsq
13550 and __builtin_copysignq if SSE2 isn't available.
13551
13552 * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
13553 (LIBGCC2_TF_CEXT): Likwise.
13554 (TF_SIZE): Likwise.
13555
13556 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
13557
13558 * config/i386/sfp-machine.h: Moved to libgcc.
13559
13560 * config/i386/sfp-machine.h: New.
13561 * config/i386/t-linux: Likwise.
13562
13563 * config/i386/t-darwin: Remove softfp_wrap_start and
13564 softfp_wrap_end.
13565 * config/i386/t-darwin64: Likewise.
13566
13567 * config/i386/t-fprules-softfp64: Renamed to ...
13568 * config/i386/t-fprules-softfp: This.
13569
13570 * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
13571 and softfp_wrap_end.
13572
09357846
JM
135732008-07-02 Jason Merrill <jason@redhat.com>
13574
6010fae7
JM
13575 * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
13576
09357846
JM
13577 * tree.c (ctor_to_list): New fn.
13578 * tree.h: Declare it.
13579 (CONSTRUCTOR_ELT): New macro.
13580 (CONSTRUCTOR_NELTS): New macro.
13581
795a337a
RG
135822008-07-02 Richard Guenther <rguenther@suse.de>
13583
13584 * tree-ssa-structalias.c (struct variable_info): Reorder
13585 to fill padding on 64bit hosts. Make collapsed_to an int.
13586 (get_varinfo_fc): Deal with that.
13587 (new_var_info): Likewise.
13588 (collapse_rest_of_var): Likewise.
13589
c9db365d
JS
135902008-07-02 Joshua Sumali <jsumali@redhat.com>
13591
13592 * doc/install.texi (--enable-java-home): Document.
13593 (--enable-aot-compile-rpm): Likewise.
13594 (--with-arch-directory): Likewise.
13595 (--with-os-directory): Likewise.
13596 (--with-origin-name): Likewise.
13597 (--with-arch-suffix): Likewise.
13598 (--with-jvm-root-dir): Likewise.
13599 (--with-jvm-jar-dir): Likewise.
13600 (--with-python-dir): Likewise.
13601
9e11641d
RG
136022008-07-02 Richard Guenther <rguenther@suse.de>
13603
13604 * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
13605 from decls explicitly. Merge operand checking from tuples.
13606
3fe1efe4
MJ
136072008-07-02 Martin Jambor <mjambor@suse.cz>
13608
13609 * tree-switch-conversion.c: Included timevar.h which I forgot before.
22129589 13610
a167a676
MJ
136112008-07-02 Martin Jambor <mjambor@suse.cz>
13612
13613 * tree-switch-conversion.c: Included timevar.h
13614 (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
13615
13616 * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
13617
b1ae1681
MJ
136182008-07-02 Martin Jambor <mjambor@suse.cz>
13619
13620 * tree-switch-conversion.c: Corrected various comments and
13621 whitespace issues
13622 (build_constructors): Fixed minor formatting mistakes.
13623
13624 * invoke.texi (Optimize Options): Corrected the
13625 switch-conversion-max-branch-ratio parameter.
13626
5bc4fa7c
MS
136272008-07-02 Mark Shinwell <shinwell@codesourcery.com>
13628
13629 * final.c (asm_insn_count): Return zero for an empty asm body.
13630
5f0d975b
RG
136312008-07-02 Richard Guenther <rguenther@suse.de>
13632
13633 * bitmap.h (bitmap_set_bit): Return bool.
13634 (bitmap_clear_bit): Likewise.
13635 * bitmap.c (bitmap_set_bit): Return if the bit changed. Only
13636 write to the bitmap if it would.
13637 (bitmap_clear_bit): Likewise.
13638 * tree-ssa-structalias.c (add_implicit_graph_edge): Use
13639 bitmap_set_bit return value.
13640 (add_pred_graph_edge): Likewise.
13641 (add_graph_edge): Likewise.
13642 (do_sd_constraint): Likewise.
13643 (do_ds_constraint): Likewise.
13644
7a6942ad
KG
136452008-07-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13646
13647 * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
13648 Fix -Wc++-compat and/or -Wcast-qual warnings.
13649 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
13650 gen_regparm_prefix): Likewise.
13651 * vmsdbgout.c (write_modbeg, lookup_filename,
13652 vmsdbgout_source_line, vmsdbgout_init): Likewise.
13653
20384976
DS
136542008-07-02 Danny Smith <dannysmith@users.sourceforge.net>
13655
13656 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
13657 defaults.h definition apply.
13658
4d2a9850
DJ
136592008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
13660
13661 * function.c (assign_parm_remove_parallels): New.
13662 (assign_parm_setup_block_p): Do not return true for non-BLKmode
13663 PARALLELs.
13664 (assign_parm_setup_block): Do not handle them.
13665 (assign_parm_setup_reg, assign_parm_setup_stack): Call
13666 assign_parm_remove_parallels.
13667
f83c7f63
DJ
136682008-07-01 Daniel Jacobowitz <dan@codesourcery.com>
13669
13670 * c-typeck.c (convert_for_assignment): Use
13671 vector_targets_convertible_p.
13672 * c-common.c (vector_targets_convertible_p): New.
13673 * c-common.h (vector_targets_convertible_p): New prototype.
13674 * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
13675 opaque_p_V2SI_type_node.
13676
103a6411
SE
136772008-07-01 Steve Ellcey <sje@cup.hp.com>
13678
13679 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
13680 RFmode constants.
13681
f3e10a2b
UB
136822008-07-01 Uros Bizjak <ubizjak@gmail.com>
13683
13684 * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
13685 TFmode constants via two element DImode vector for hosts with
13686 HOST_BITS_PER_WIDE_INT < 64.
13687 (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
13688 also for HOST_BITS_PER_WIDE_INT < 64.
13689
c0d459f0
RG
136902008-07-01 Richard Guenther <rguenther@suse.de>
13691
13692 PR tree-optimization/36666
13693 * tree-ssa-structalias.c (get_constraint_for_1): Declare.
13694 (get_constraint_exp_from_ssa_var): Split into ...
13695 (get_constraint_exp_for_temp): ... this ...
13696 (get_constraint_for_ssa_var): ... and that.
13697 Return constraint expressions for all touched sub-fields
13698 if the results address is not taken.
13699 (process_constraint): Remove assertion that aggregate
13700 assignments do not happen at this place.
13701 (get_constraint_for_component_ref): Add address_p argument.
13702 Return constraint expressions for all touched sub-fields
13703 if the results address is not taken.
13704 (do_deref): Use get_constraint_exp_for_temp.
13705 (get_constraint_for_1): Rename from ...
f3e10a2b 13706 (get_constraint_for): ... this. Add the old function as wrapper.
c0d459f0
RG
13707 (do_structure_copy): Use get_constraint_for_1.
13708
b6e99746 137092008-07-01 Martin Jambor <mjambor@suse.cz>
c0d459f0 13710
dcde22ac
UB
13711 * Makefile.in (tree-switch-conversion.o): Add.
13712 (OBJS-common): Add tree-swtch-conversion.o.
13713 * passes.c (init_optimization_passes): Add pass_convert_switch.
13714 * tree-pass.h: (pass_convert_switch): Add.
13715 * tree-switch-conversion.c: New file.
13716 * gcc.dg/tree-ssa/cswtch.c: New testcase.
13717 * common.opt (ftree-cswtch): New option.
13718 * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
13719 * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
13720 * opts.c (decode_options): Set flag_tree_switch_conversion when
13721 optimization level is >= 2.
13722 * doc/invoke.texi (Optimize Options): Added description of
13723 -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
b6e99746 13724
3043c804
KG
137252008-06-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13726
13727 * config/darwin-driver.c (darwin_default_min_version): Fix
13728 -Wc++-compat warnings.
13729
f3e10a2b 137302008-06-30 Uros Bizjak <ubizjak@gmail.com>
33af070f
UB
13731
13732 * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
13733 of operand 0.
13734
727683a5
KZ
137352008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
13736
f3e10a2b 13737 * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
22129589 13738
370f38e8
KZ
137392008-06-30 Kenneth Zadeck <zadeck@naturalbridge.com>
13740
a8f77bad 13741 PR rtl-optimization/34744
f3e10a2b 13742 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
dcde22ac 13743 (df_scan_free_internal): Free data structures not
370f38e8
KZ
13744 allocated in storage pools.
13745 (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
f3e10a2b 13746 (df_refs_add_to_chains): Use df_scan_free_ref_vec and
370f38e8
KZ
13747 df_scan_free_mws_vec.
13748 * dse.c (dse_step6): Free offset_map_p and offset_map_n
13749 unconditionally.
13750
5bb77598
L
137512008-06-30 H.J. Lu <hongjiu.lu@intel.com>
13752
13753 * config/i386/i386.c (contains_aligned_value_p): Return true
13754 for __float128.
33af070f 13755 (ix86_function_arg_boundary): Return its natural boundary
5bb77598
L
13756 for __float128.
13757 (return_in_memory_32): Don't check TDmode.
13758 (ix86_split_to_parts): Support splitting into 4 parts and
13759 support TFmode for 32bit target.
13760 (ix86_split_long_move): Support splitting into 4 parts.
13761 (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
13762 for SSE2.
33af070f 13763 (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
5bb77598
L
13764 (ix86_init_builtins): Here.
13765 (ix86_scalar_mode_supported_p): Always return true for TFmode.
13766 (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
22129589 13767 'q' and 'w', respectively.
5bb77598
L
13768
13769 * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
13770 TARGET_64BIT.
13771 (movtf_internal): Likewise.
13772 (<code>tf2): Likewise.
13773 (*absnegtf2_sse): Likewise.
13774 (copysign<mode>3): Likewise.
13775 (copysign<mode>3_const): Likewise.
13776 (copysign<mode>3_var): Likewise.
13777 (define_split UNSPEC_COPYSIGN): Likewise.
13778 * config/i386/sse.md (*nandtf3): Likewise.
13779 (<code>tf3): Likewise.
13780 (*<code>tf3): Likewise.
13781
38aa4d08
JY
137822008-06-30 Joey Ye <joey.ye@intel.com>
13783 H.J. Lu <hongjiu.lu@intel.com>
13784
13785 * global.c (compute_regsets): Set frame_pointer_needed here.
33af070f 13786 * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
38aa4d08 13787
aad416fb
AL
137882008-06-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
13789
13790 * doc/install.texi (specific): Expand Windows build notes.
13791
e2cefdd9
IR
137922008-06-30 Ira Rosen <irar@il.ibm.com>
13793
13794 PR tree-optimization/36648
13795 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
13796 number of prolog iterations by step. Fix the comment.
13797
183ae595
RG
137982008-06-30 Richard Guenther <rguenther@suse.de>
13799
13800 PR middle-end/36671
13801 * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
13802 handle calls from ECF_MALLOC functions.
13803 (handle_pure_call): ECF_MALLOC functions do not return
13804 call-used memory.
13805 (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
13806
c2058aa4
AS
138072008-06-29 Andreas Schwab <schwab@suse.de>
13808
6ae89ea8
AS
13809 * config/m68k/m68k.c (print_operand): Always print a float
13810 constant in hex.
13811 * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
13812 (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
13813 Remove macros.
13814
c2058aa4
AS
13815 * config/rs6000/x-linux64: Remove never used file.
13816
faf2ecc5
RG
138172008-06-29 Richard Guenther <rguenther@suse.de>
13818
13819 * tree-ssa-structalias.h (compute_points_to_sets): Adjust
13820 prototype.
13821 (struct alias_info): Move ...
13822 * tree-ssa-alias.c: ... here.
13823 (update_alias_info): Declare.
13824 (compute_may_aliases): Call it.
13825 (update_alias_info): New function.
13826 * tree-ssa-structalias.c (update_alias_info): Move ...
13827 * tree-ssa-alias.c (update_alias_info_1): ... here.
13828 * tree-ssa-structalias.c (process_constraint_1): Remove
13829 unused from_call argument. Rename to ...
13830 (process_constraint): ... this. Delete old wrapper.
13831 (make_constraint_to): Adjust callers.
13832 (handle_const_call): Likewise.
13833 (handle_pure_call): Likewise.
13834 (init_base_vars): Likewise.
13835 (handle_lhs_call): Likewise. Remove unnecessary constraint.
13836 (find_func_aliases): We don't need structure copies for
13837 complex types.
13838 (make_constraint_from_anything): Remove.
13839 (create_variable_info_for): For globals make constraints
13840 from escaped, not from anything.
13841 (compute_points_to_sets): Do not call update_alias_info.
13842 (ipa_pta_execute): Use make_constraint_from.
13843
572e5ae3
KG
138442008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13845
13846 * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
13847 (bitmap.o-warn, dominance.o-warn): New.
13848 * configure.ac (cxx_compat_warn): Delete.
13849 (loose_warn): Add -Wcast-qual and -Wc++-compat.
13850 * system.h: Remove #pragma diagnostic for -Wcast-qual and
13851 -Wc++-compat.
13852 * configure: Regenerate.
13853
13854 * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
13855 warnings.
13856
4dc6c528
KG
138572008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13858
13859 * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
13860 * df-scan.c (df_notes_rescan): Likewise.
13861 * ggc-page.c (set_page_table_entry): Likewise.
13862 * intl.c (gcc_gettext_width): Likewise.
13863 * varasm.c (get_unnamed_section, get_noswitch_section,
13864 get_section): Likewise.
13865
d1c1c79f
AJ
138662008-06-28 Andrew Jenner <andrew@codesourcery.com>
13867
13868 * regrename.c (build_def_use): Don't copy RTX.
13869
38bb2b65
SL
138702008-06-28 Sandra Loosemore <sandra@codesourcery.com>
13871
13872 * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
13873 (Type Attributes): Fix nesting of @table and @subsection. Adjust
13874 punctuation. Use @ref instead of @xref.
13875 (Function Names): Remove stray @display/@end display.
13876 (C++ Attributes): Use @ref instead of @xref.
13877 (Deprecated Features): Fix punctuation around @xref.
13878 (Backwards Compatibility): Likewise.
13879 * doc/rtl.texi (Incdec): Remove stray @table/@end table.
13880
624b157f
JM
138812008-06-28 Joseph Myers <joseph@codesourcery.com>
13882
13883 * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
13884 constants for E500 double.
13885
ffba3fd0
UW
138862008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13887
13888 * doc/rtl.texi (const_vector): Document const_fixed as legitimate
13889 element type of const_vector.
13890
f3e10a2b 138912008-06-28 Uros Bizjak <ubizjak@gmail.com>
7ae14d31
UB
13892
13893 * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
13894 Remove FLAGS_REG clobber from expander pattern.
13895 (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
13896 (anddi3, andsi3, andhi3, andqi3): Ditto.
13897 (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
13898 (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
13899 (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
13900 (ashlsi3, ashlhi3, ashlqi3): Ditto.
13901 (ashrsi3, ashrhi3, ashrqi3): Ditto.
13902 (lshrsi3, lshrhi3, lshrqi3): Ditto.
13903 (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
13904 (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
13905
15c15196
RG
139062008-06-28 Richard Guenther <rguenther@suse.de>
13907
13908 * tree-ssa-structalias.c (callused_id, var_callused,
13909 callused_tree): Add.
13910 (handle_pure_call): New function.
13911 (find_func_aliases): Call it.
13912 (find_what_p_points_to): Handle the call-used set.
13913 (clobber_what_escaped): Likewise.
13914 (compute_call_used_vars): New function.
13915 (init_base_vars): Init the call-used variable.
13916 (do_sd_constraint): Do not propagate the solution from CALLUSED
13917 but use CALLUSED as a placeholder.
13918 (solve_graph): Likewise.
13919 * tree-flow-inline.h (gimple_call_used_vars): New function.
13920 * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
13921 (compute_call_used_vars): Declare.
13922 * tree-ssa-alias.c (set_initial_properties): Call
13923 compute_call_used_vars.
13924 (reset_alias_info): Clear call-used variables.
13925 (add_call_clobber_ops): Assert we are not called for const/pure
13926 functions. Remove handling of them.
13927 (add_call_read_ops): Handle pure functions by adding the
13928 call-used set of variables as VUSEs.
13929 * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
13930 (delete_tree_ssa): Free it.
13931 * tree-dfa.c (remove_referenced_var): Clear the var from the
13932 call-used bitmap.
13933
ff1c393b
KT
139342008-06-28 Kai Tietz <kai.tietz@onevision.com>
13935
13936 * tree.c (build_varargs_function_type_list): New.
13937 (build_function_type_list_1): New.
13938 (build_function_type_list): Use build_function_type_list_1.
13939 * tree.h (build_varargs_function_type_list): New.
13940
d74032d9
UW
139412008-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13942
13943 PR target/34856
13944 * config/spu/spu.c (spu_builtin_splats): Do not generate
13945 invalid CONST_VECTOR expressions.
13946 (spu_expand_vector_init): Likewise.
13947
61698f54
RS
139482008-06-28 Richard Sandiford <rdsandiford@googlemail.com>
13949
13950 * optabs.c (libfunc_decls): New variable.
13951 (libfunc_decl_hash, libfunc_decl_eq): New functions.
13952 (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
13953 for the same function twice.
13954
f3e10a2b 139552008-06-27 Uros Bizjak <ubizjak@gmail.com>
934f2a96
UB
13956
13957 * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
13958 ix86_expand_binary_operator directly.
13959 (*ashlti3_1): Rename from ashlti3_1. Use nonmemory_operand predicate
13960 for operand 2.
13961 (*ashrti3_1): Ditto.
13962 (*lshrti3_1): Ditto.
13963 (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
13964 (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
13965 using only one splitter. Conditionaly execute splitter before or
13966 after peephole2 pass.
13967 (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
13968 (x86_shld): Rename from x86_shld_1. Compress operand 2 constraints.
13969 Use only one alternative in asm template.
13970 (x86_64_shld): Compress operand 2 constraints. Use only one alternative
13971 in asm template.
13972 (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
13973 "J" operand constraint for operand 2.
13974 (*ashldi3_cconly_rex64): Ditto.
13975 (*ashrdi3_cmp_rex64): Ditto.
13976 (*ashrdi3_cconly_rex64): Ditto.
13977 (*lshrdi3_cmp_rex64): Ditto.
13978 (*lshrdi3_cconly_rex64): Ditto.
13979 * config/i386/predicates.md (const_1_to_63_operand): New predicate.
13980 * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
13981 (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
13982 gen_x86_shrd_1.
13983
b357f682
JJ
139842008-06-27 Jakub Jelinek <jakub@redhat.com>
13985
7ae14d31
UB
13986 * gimplify.c (omp_is_private): Don't return true if decl is not
13987 already private on #pragma omp for or #pragma omp parallel for.
ca2b1311 13988
b357f682
JJ
13989 PR debug/36617
13990 * tree-cfg.c (struct move_stmt_d): Replace block field with
13991 orig_block and new_block fields.
13992 (move_stmt_r): Only set TREE_BLOCK to p->new_block if
13993 if it used to be NULL, p->orig_block or if p->orig_block is NULL.
13994 (move_block_to_fn): Replace vars_map and new_label_map arguments
13995 with struct move_stmt_d pointer.
13996 (replace_block_vars_by_duplicates): New function.
13997 (move_sese_region_to_fn): Add ORIG_BLOCK argument. Adjust
13998 move_block_to_fn caller. If ORIG_BLOCK is non-NULL, move over
13999 all subblocks of ORIG_BLOCK to the new function. Call
14000 replace_block_vars_by_duplicates.
14001 * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
14002 * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
14003 BLOCK of the new function. Adjust move_sese_region_to_fn caller.
14004 Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
14005 (expand_omp): Temporarily set input_location to the location of
14006 region's controlling stmt.
14007 (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
14008 BIND_EXPR, push ctx->block_vars and gimplification vars into
14009 the BIND_EXPR and its block's BLOCK_VARS instead of directly
14010 into dest function.
14011 (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
14012 there are any BLOCK_VARS.
14013 (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
14014 OMP_PARALLEL or OMP_TASK stmt.
14015 (lower_omp): Save and restore input_location around the lower_omp_1
14016 call.
14017
b7091901
RG
140182008-06-27 Richard Guenther <rguenther@suse.de>
14019
14020 PR tree-optimization/36400
14021 PR tree-optimization/36373
14022 PR tree-optimization/36344
14023 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
14024 var_nonlocal, nonlocal_tree, nonlocal_id): New globals
14025 (update_alias_info): Remove call clobbering code.
14026 (make_constraint_to): New helper function.
14027 (make_escape_constraint): Likewise.
14028 (handle_rhs_call): Use it on all pointer containing arguments.
14029 Also mark the static chain escaped.
14030 (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
14031 instead of ANYTHING.
14032 (make_constraint_from): New helper split out from ...
14033 (make_constraint_from_anything): ... here.
14034 (find_func_aliases): Add constraints for escape sites.
14035 (intra_create_variable_infos): Make constraints from NONLOCAL
14036 for parameters.
14037 (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
14038 as ANYTHING.
14039 (clobber_what_p_points_to): Remove.
14040 (clobber_what_escaped): New function.
14041 (init_base_vars): Init NONLOCAL and ESCAPED.
14042 (do_sd_constraint): Do not propagate the solution from ESCAPED
14043 but use ESCAPED as a placeholder.
14044 (solve_graph): Likewise.
14045 * tree-flow.h (clobber_what_p_points_to): Remove.
14046 (clobber_what_escaped): Declare.
14047 * tree-ssa-alias.c (set_initial_properties): Call it.
14048 Remove code clobbering escaped pointers.
14049
70cf5bc1
RS
140502008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
14051
14052 * function.c (allocate_struct_function): Only allocate a unique
14053 funcdef_no if the decl is nonzero.
14054
c5cb5d18
RS
140552008-06-27 Richard Sandiford <rdsandiford@googlemail.com>
14056
14057 * config/mips/mips-protos.h (mips_split_const_insns): Declare.
14058 * config/mips/mips.c (mips_split_const_insns): New function.
14059 * config/mips/mips.md (move_type): New attribute.
7ae14d31 14060 (mode): Move attribute definition earlier in file. Add "TI" and "TF".
c5cb5d18
RS
14061 (dword_mode): New attribute.
14062 (type): Avoid long line. Map "move_type"s to "type"s,
14063 choosing "multi" for doubleword moves if appropriate.
14064 Swap MTC/MFC comments to match their declaration order.
14065 (extended_mips16): Default to "yes" if "move_type" is "sll0",
14066 "type" is "branch" or "jal" is "direct".
14067 (length): Handle "extended_mips16" first. Make the default
14068 "0" for "ghost" instructions. Set the length from "move_type".
14069 (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
14070 of "type", with "sll0" for the register alternative. Remove the
14071 "extended_mips16" attribute.
14072 (zero_extendsidi2, *clear_upper32): Use "move_type" instead
14073 of "type", with "shift_shift" for the register alternative.
14074 Remove the "length" attribute.
14075 (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
14076 (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
14077 of "type", with "andi" for the register alternative.
14078 (*zero_extendqihi2): Likewise.
14079 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
14080 of "andi" instead of a "type" of "arith".
14081 (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
14082 instead of "type".
14083 (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
14084 (mov_<store>r, *mov<mode>_ra): Likewise.
14085 (extendsidi2): Use "move_type" instead of "type", with "move"
14086 for the register alternative.
14087 (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
14088 of "type", with "signext" for the register alternative.
14089 (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
14090 (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
14091 (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
14092 (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
14093 (floatdisf2, *branch_equality<mode>_mips16): Likewise.
14094 (unnamed branch insn): Likewise.
14095 (*movdi_gp32_fp64): Fold into...
14096 (*movdi_32bit): ...here.
14097 (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
14098 (*movdf_hardfloat): ...this new pattern.
14099 (*movdf_softfloat): Remove redundant FPR alternatives.
14100 (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
14101 (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
14102 (*movv2sf): ...this new pattern. Use "DF" rather than "SF" for
14103 the "move" attribute.
14104 (*movdi_32bit): Use "move_type" instead of "type" and remove the
14105 "length" attribute. Use "fpload" and "fpstore" instead of "load"
14106 and "store" for COP loads and stores.
14107 (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
14108 (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
14109 (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
14110 (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
14111 (*movtf_mips16, *movv2sf): Likewise.
14112 (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
14113 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
14114 (mfhc1<mode>): Use "move_type" instead of "move".
14115 (*low<mode>_mips16): Use "extended_mips16" instead of "length".
14116 (loadgp_blockage): Remove the "length" attribute.
14117 (blockage, set_got_version, update_got_version): Likewise.
14118 (call_internal): Remove the "extended_mips16" attribute.
14119 (call_value_internal, call_value_multiple_internal): Likewise.
14120 * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
14121 instead of "move".
14122 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
14123 the "length" attribute.
14124
5ead67f6
KG
141252008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14126
14127 * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
14128 -Wcast-qual warnings.
14129 * c-pragma.c (dpm_eq, handle_pragma_push_macro,
14130 handle_pragma_pop_macro): Likewise.
14131 * collect2.c (resolve_lib_name): Likewise.
14132 * config/arc/arc.c (arc_init): Likewise.
14133 * config/arm/arm.c (neon_builtin_compare,
14134 locate_neon_builtin_icode): Likewise.
7ae14d31 14135 * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
5ead67f6
KG
14136 * config/bfin/bfin.c (bfin_init_machine_status,
14137 bfin_optimize_loop): Likewise.
14138 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
14139 * config/cris/cris.c (cris_init_expanders): Likewise.
14140 * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
14141 * config/darwin.c (machopic_indirection_eq,
7ae14d31 14142 machopic_indirection_name, machopic_output_indirection): Likewise.
5ead67f6
KG
14143 * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
14144 frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
14145 frv_optimize_membar): Likewise.
14146 * config/i386/cygwin.h (mingw_scan,
14147 GCC_DRIVER_HOST_INITIALIZATION): Likewise.
14148 * config/i386/cygwin1.c (mingw_scan): Likewise.
14149 * config/i386/i386.c (machopic_output_stub): Likewise.
14150 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
14151 i386_pe_unique_section): Likewise.
14152 * config/ia64/ia64.c (ia64_init_machine_status,
14153 ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
14154 Likewise.
14155 * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
14156 * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
14157 * config/m68k/m68k.c (m68k_handle_option,
14158 m68k_sched_md_init_global): Likewise.
7ae14d31
UB
14159 * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
14160 mcore_unique_section): Likewise.
5ead67f6 14161 * config/mips/mips.c (mips_block_move_straight,
7ae14d31
UB
14162 mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
14163 Likewise.
5ead67f6
KG
14164 * config/mmix/mmix.c (mmix_init_machine_status,
14165 mmix_encode_section_info): Likewise.
7ae14d31 14166 * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
5ead67f6
KG
14167 * config/rs6000/rs6000.c (rs6000_init_machine_status,
14168 print_operand_address, output_toc, redefine_groups,
14169 rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
14170 * config/s390/s390.c (s390_init_machine_status): Likewise.
14171 * config/score/score.c (score_block_move_straight,
14172 score_block_move_loop_body): Likewise.
14173 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
14174 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
14175 * emit-rtl.c (find_auto_inc): Likewise.
14176 * gcc.c (translate_options, process_command): Likewise.
14177 * reorg.c (dbr_schedule): Likewise.
14178 * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
14179 * xcoffout.c (xcoffout_declare_function): Likewise.
14180
d1caaa76
DB
141812008-06-27 Daniel Berlin <dberlin@dberlin.org>
14182
14183 * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
14184 ipa-pta working again.
14185
edae5fe3
DE
141862008-06-27 David Edelsohn <edelsohn@gnu.org>
14187
14188 * config/rs6000/t-aix52: Append large data option to LDFLAGS for
14189 genautomata.
14190
141912008-06-27 Edmar Wienskoski <edmar@freescale.com>
14192
14193 * config.gcc (powerpc*-*-*): Add new core e500mc.
14194 * config/rs6000/e500mc.md: New file.
14195 * config/rs6000/rs6000.c (processor_costs): Add new costs for
14196 e500mc.
14197 (rs6000_override_options): Add e500mc case to
14198 processor_target_table. Altivec and Spe options not allowed
14199 with e500mc. Add isel instruction to e500mc by
14200 default. Initialize rs6000_cost for e500mc.
14201 (rs6000_issue_rate): Set issue rate for e500mc.
14202 * config/rs6000/rs6000.h (processor_type): Add
14203 PROCESSOR_PPCE500MC.
14204 (ASM_CPU_SPEC): Add e500mc.
14205 Set TARGET_ISEL to rs6000_isel.
14206 * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
14207 (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
14208 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
14209 Include e500mc.md.
14210 * doc/invoke.texi: Add e500mc to list of cpus.
14211
098b9c46
LB
142122008-06-27 Laurynas Biveinis <laurynas.biveinis@gmail.com>
14213
14214 PR c/34867
14215 * c-lex.c (lex_charconst): Initialize unsignedp.
14216
b7d565dd 142172008-06-27 Olivier Hainque <hainque@adacore.com>
1a13360e
OH
14218
14219 * gimplify.c (gimplify_modify_expr_to_memset): Assert our
14220 documented assumptions.
14221
4b570560
L
142222008-06-26 H.J. Lu <hongjiu.lu@intel.com>
14223
14224 * dwarf2out.c: Remove trailing white spaces. Break long line
14225 in comments.
14226
e2ff10a9
RS
142272008-06-26 Richard Sandiford <rdsandiford@googlemail.com>
14228
14229 * libfuncs.h (LTI_synchronize): New libfunc_index.
14230 (synchronize_libfunc): Declare.
14231 * builtins.c (expand_builtin_synchronize): Consider using
14232 synchronize_libfunc before falling back on an asm blockage.
14233 * config/mips/mips.c: Include libfuncs.h
14234 (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
14235
f78c3290
NF
142362008-06-26 Nathan Froyd <froydnj@codesourcery.com>
14237
14238 * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
14239 parameter. Copy stack_reg to r11 where appropriate.
14240 (no_global_regs_above): Add gpr parameter.
14241 (rs6000_stack_info): Only add padding for SPE save area if we
14242 are saving SPE GPRs and CR.
14243 (saveres_routine_syms): New variable.
14244 (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
14245 Define.
14246 (rs6000_savres_routine_sym): New function.
14247 (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
14248 split out of...
14249 (rs6000_emit_epilogue): ...here. Use rs6000_use_multiple_p and
14250 rs6000_savres_strategy. Restore GPRs out-of-line if appropriate.
14251 Tweak FPR out-of-line saving.
14252 (rs6000_make_savres_rtx): New function.
14253 (rs6000_use_multiple_p): New function.
14254 (rs6000_savres_strategy): New function.
14255 (rs6000_emit_prologue): Use rs6000_savres_strategy. Save GPRs
14256 out-of-line if appropriate.
14257 * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
14258 if we are optimizing for size.
14259 (GP_SAVE_INLINE): Define.
14260 (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
14261 * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
14262 * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
14263 * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
14264 (*save_fpregs_<mode>): Add use of r11.
14265 (*restore_gpregs_<mode>): New insn.
14266 (*return_and_restore_gpregs_<mode>): New insn.
14267 (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
14268 use r11.
14269 * config/rs6000/spe.md (*save_gpregs_spe): New insn.
14270 (*restore_gpregs_spe): New insn.
14271 (*return_and_restore_gpregs_spe): New insn.
14272 * config/rs6000/predicates.md (save_world_operation): Fix check.
14273
e24c4814
SB
142742008-06-26 Steven Bosscher <steven@gcc.gnu.org>
14275
14276 * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
14277 this point, so assert that.
14278
25e87727
SB
142792008-06-26 Steven Bosscher <steven@gcc.gnu.org>
14280
14281 * cfganal.c: Include vec.h and vecprim.h.
14282 (compute_idf): Import from...
14283 * tree-into-ssa (compute_idf): ...here.
14284 * basic-block.h (compute_idf): Export.
14285
74b0ec7c
JM
142862008-06-26 Joseph Myers <joseph@codesourcery.com>
14287
14288 * c-decl.c (merge_decls): Use !current_function_decl to check for
14289 extern declaration of C99 inline function being at file scope.
14290
f3d14ed5
JDA
142912008-06-25 John David Anglin <dave.anglin@gcc-cnrc.gc.ca>
14292
14293 * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
14294
f883e0a7
KG
142952008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14296
14297 * alias.c (record_alias_subset, init_alias_analysis): Fix
14298 -Wc++-compat and/or -Wcast-qual warnings.
14299 * attribs.c (lookup_attribute_spec): Likewise.
14300 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
14301 copy_bb, connect_traces,
14302 find_rarely_executed_basic_blocks_and_cr): Likewise.
14303 * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
14304 note_btr_set, migrate_btr_defs): Likewise.
14305 * builtins.c (result_vector, expand_builtin_memcpy,
14306 expand_builtin_mempcpy_args, expand_builtin_strncpy,
14307 builtin_memset_read_str, expand_builtin_printf,
14308 fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
14309 Likewise.
14310 * caller-save.c (mark_set_regs): Likewise.
14311 * calls.c (expand_call, emit_library_call_value_1): Likewise.
14312 * cgraph.c (cgraph_edge): Likewise.
14313 * combine.c (likely_spilled_retval_1): Likewise.
14314 * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
14315 htab_counts_entry_del, get_coverage_counts): Likewise.
14316 * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
14317 new_cselib_val): Likewise.
14318 * dbgcnt.c (dbg_cnt_process_opt): Likewise.
14319 * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
14320 Likewise.
14321 * df-core.c (df_compact_blocks): Likewise.
14322 * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
14323 * df-scan.c (df_grow_reg_info, df_ref_create,
14324 df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
14325 df_ref_compare, df_ref_create_structure, df_bb_refs_record,
14326 df_record_entry_block_defs, df_record_exit_block_uses,
14327 df_bb_verify): Likewise.
14328 * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
14329 DF_REF_EXTRACT_MODE_CONST): New.
14330 * dominance.c (get_immediate_dominator, get_dominated_by,
14331 nearest_common_dominator, root_of_dom_tree,
14332 iterate_fix_dominators, first_dom_son, next_dom_son): Fix
14333 -Wc++-compat and/or -Wcast-qual warnings.
14334 * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
14335 record_store, replace_read, check_mem_read_rtx, scan_insn,
14336 dse_step1, dse_record_singleton_alias_set): Likewise.
14337 * dwarf2asm.c (dw2_force_const_mem): Likewise.
14338
1b4572a8
KG
143392008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14340
14341 * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
14342 dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
14343 lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
14344 assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
14345 build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
14346 add_ranges_num, add_ranges_by_labels, file_info_cmp,
14347 file_name_acquire, output_file_names, add_const_value_attribute,
14348 premark_used_types_helper, file_table_eq, file_table_hash,
14349 lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
14350 dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
14351 -Wcast-qual warnings.
14352 * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
14353 ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
14354 * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
14355 gen_reg_rtx, start_sequence, init_emit): Likewise.
14356 * et-forest.c (et_new_occ, et_new_tree): Likewise.
14357 * except.c (init_eh_for_function, gen_eh_region,
14358 remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
14359 arh_to_landing_pad, arh_to_label, add_action_record,
14360 add_call_site, switch_to_exception_section): Likewise.
14361 * expmed.c (synth_mult): Likewise.
14362 * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
14363 store_expr): Likewise.
14364 * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
14365 Likewise.
14366 * function.c (assign_stack_temp_for_type,
14367 allocate_struct_function, match_asm_constraints_1): Likewise.
14368 * gcov-io.c (gcov_allocate): Likewise.
14369 * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
14370 GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
14371 (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
14372 record_one_set, insert_expr_in_table, insert_set_in_table,
14373 dump_hash_table, compute_hash_table_work, alloc_hash_table,
14374 pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
14375 reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
14376 -Wcast-qual warnings.
14377
7cbb2a85
KG
143782008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14379
14380 * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
14381 -Wcast-qual warnings.
14382 * gcc.c (process_command): Likewise.
14383 * genattrtab.c (oballoc): Use XOBNEW.
14384 (oballocvec): Define.
14385 (attr_hash_add_rtx, attr_hash_add_string, attr_string,
14386 get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
14387 gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
14388 -Wc++-compat and/or -Wcast-qual warnings.
14389 * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
14390 XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
14391 (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
14392 gen_presence_absence_set, gen_automaton, gen_regexp_el,
14393 gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
14394 gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
14395 add_excls, process_presence_absence_names,
14396 process_presence_absence_patterns, add_presence_absence,
14397 process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
14398 get_free_state, add_arc, get_free_automata_list_el,
14399 form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
14400 transform_3, cache_presence, create_ainsns, create_automata,
14401 create_state_ainsn_table, dfa_insn_code_enlarge,
14402 output_trans_func, output_min_issue_delay_func,
14403 output_dead_lock_func, output_reset_func,
14404 output_get_cpu_unit_code_func, output_dfa_start_func,
14405 expand_automata): Likewise.
14406 * genextract.c (gen_insn): Likewise.
14407 * gengtype-lex.l: Likewise.
14408 * gengtype.c (read_input_list, adjust_field_type,
14409 process_gc_options): Likewise.
14410 * genoutput.c (note_constraint): Likewise.
14411 * genpreds.c (mangle, add_constraint): Likewise.
14412 * genrecog.c (process_define_predicate, new_decision,
14413 add_to_sequence): Likewise.
14414 * gensupport.c (record_insn_name): Likewise.
14415
d3bfe4de
KG
144162008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14417
14418 * config/i386/driver-i386.c (detect_caches_amd,
14419 detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
14420 and/or -Wcast-qual warnings.
14421 *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
14422 gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
14423 gt_pch_save): Likewise.
14424 * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
14425 gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
14426 * global.c (compute_regsets): Likewise.
14427 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
14428 finish_graph_dump_file): Likewise.
14429 * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
14430 unlink_bb_notes): Likewise.
14431 * integrate.c (get_hard_reg_initial_val): Likewise.
14432 * ipa-prop.c (ipa_push_func_to_list): Likewise.
14433 * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
14434 * local-alloc.c (update_equiv_regs): Likewise.
14435 * loop-invariant.c (check_invariant_table_size,
14436 hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
14437 Likewise.
14438 * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
14439 altered_reg_used, mark_altered): Likewise.
14440 * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
14441 insert_var_expansion_initialization,
14442 combine_var_copies_in_loop_exit, apply_opt_in_copies,
14443 release_var_copies): Likewise.
14444 * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
14445 analyze_matrix_decl, add_allocation_site, analyze_transpose,
14446 analyze_accesses_for_phi_node, check_var_notmodified_p,
14447 check_allocation_function, find_sites_in_func,
14448 record_all_accesses_in_func, transform_access_sites,
14449 transform_allocation_sites): Likewise.
14450 * omp-low.c (new_omp_region, create_omp_child_function_name,
14451 check_omp_nesting_restrictions, check_combined_parallel,
14452 lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
14453 * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
14454 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
14455 gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
14456 Likewise.
14457 * opts-common.c (prune_options): Likewise.
14458 * opts.c (add_input_filename, print_filtered_help,
14459 get_option_state): Likewise.
14460 * params.c (add_params): Likewise.
14461 * passes.c (set_pass_for_id, next_pass_1,
14462 do_per_function_toporder, pass_fini_dump_file): Likewise.
14463 * postreload.c (reload_cse_simplify_operands): Likewise.
14464 * predict.c (tree_predicted_by_p, tree_predict_edge,
14465 clear_bb_predictions, combine_predictions_for_bb): Likewise.
14466
1634b18f
KG
144672008-06-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14468
14469 * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
14470 warnings.
14471 * recog.c (check_asm_operands, validate_change_1): Likewise.
14472 * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
14473 subst_asm_stack_regs): Likewise.
14474 * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
14475 cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
14476 * regmove.c (reg_is_remote_constant_p): Likewise.
14477 * regrename.c (regrename_optimize, scan_rtx_reg,
14478 kill_clobbered_value, kill_set_value, kill_autoinc_value):
14479 Likewise.
14480 * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
14481 regstat_compute_calls_crossed): Likewise.
14482 * reload1.c (init_reload, new_insn_chain,
14483 has_nonexceptional_receiver, reload, copy_reloads,
14484 calculate_needs_all_insns, init_elim_table): Likewise.
14485 * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
14486 * rtl.c (shallow_copy_rtx_stat): Likewise.
14487 * rtlanal.c (parms_set): Likewise.
14488 * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
14489 sbitmap_resize, sbitmap_vector_alloc): Likewise.
14490 * sched-ebb.c (earliest_block_with_similiar_load,
14491 add_deps_for_risky_insns): Likewise.
14492 * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
14493 schedule_region): Likewise.
14494 * see.c (eq_descriptor_pre_extension,
14495 hash_descriptor_pre_extension, hash_del_pre_extension,
14496 eq_descriptor_properties, hash_descriptor_properties,
14497 hash_del_properties, see_seek_pre_extension_expr,
14498 see_initialize_data_structures, see_print_register_properties,
14499 see_print_pre_extension_expr, see_delete_merged_def_extension,
14500 see_delete_unmerged_def_extension, see_emit_use_extension,
14501 see_pre_delete_extension, see_map_extension, see_commit_changes,
14502 see_analyze_merged_def_local_prop,
14503 see_analyze_merged_def_local_prop,
14504 see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
14505 see_set_prop_merged_def, see_set_prop_unmerged_def,
14506 see_set_prop_unmerged_use, see_print_one_extension,
14507 see_merge_one_use_extension, see_merge_one_def_extension,
14508 see_store_reference_and_extension, see_update_uses_relevancy,
14509 see_update_defs_relevancy): Likewise.
14510 * statistics.c (hash_statistics_hash, hash_statistics_eq,
14511 hash_statistics_free, curr_statistics_hash): Likewise.
14512 * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
14513 expand_asm_operands, expand_return, case_bit_test_cmp,
14514 expand_case): Likewise.
14515 * stor-layout.c (start_record_layout): Likewise.
14516 * stringpool.c (ggc_alloc_string, gt_pch_n_S,
14517 gt_pch_save_stringpool): Likewise.
14518 * tree-data-ref.c (hash_stmt_vertex_info,
14519 have_similar_memory_accesses_1, ref_base_address_1): Likewise.
14520 * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
14521
f3e10a2b 145222008-06-25 Uros Bizjak <ubizjak@gmail.com>
0edb82cb
UB
14523
14524 PR target/36627
14525 * config/i386/i386.md : Change constraints of HImode and QImode
14526 immediate operands from "i" to "n". Change SImode "ni" constraint to
14527 "i" and SImode "rmi" constraint to "g". Remove all constraints
14528 from const0_operand and const1_operand predicated operands.
14529 (i): Change QImode and HImode attribute from "i" to "n".
14530 (*subqi_2): Change HImode operands to QImode.
14531 (*subqi_3): Ditto.
14532
5cff8550
OH
145332008-06-25 Olivier Hainque <hainque@adacore.com>
14534
14535 * Makefile.in (GTFILES_H): Use | instead of ; as separator in
14536 sed substitutions.
14537
185ab3b6
RG
145382008-06-25 Richard Guenther <rguenther@suse.de>
14539
14540 * tree-ssa-structalias.c (fieldoff_compare): Make sure to
14541 not overflow the result type.
14542
8ef834ca
RG
145432008-06-25 Richard Guenther <rguenther@suse.de>
14544
14545 * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
14546 (vn_lookup): Likewise.
14547
ee1f1270
RG
145482008-06-25 Richard Guenther <rguenther@suse.de>
14549
14550 PR tree-optimization/35518
14551 * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
14552 * tree-sra.c (instantiate_element): Use fold_build3 to build
14553 BIT_FIELD_REFs.
14554 (try_instantiate_multiple_fields): Likewise.
14555
423addc5
AP
145562008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
14557
14558 * config/rs6000/rs6000.md: Change all string instruction's clobber to
14559 be early clobbers.
14560
d2492102
AP
145612008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
14562
14563 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
14564 use_backchain_to_restore_sp to true
14565 if the offset of the link register save area would go over the 32k - 1
14566 offset limit of the load
14567 instructions.
14568
917db97b
HPN
145692008-06-25 Hans-Peter Nilsson <hp@axis.com>
14570
14571 * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
14572 anchor for the type-punning blurb. Cross-reference "Structures
14573 unions enumerations and bit-fields implementation". Provide a
14574 cast-through-pointer example. Make final sentence self-contained.
14575 * doc/implement-c.texi (Structures unions enumerations and
14576 bit-fields implementation): Cross-reference the type-punning blurb
14577 in the -fstrict-aliasing documentation.
14578
cba2d79f
AP
145792008-06-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
14580
14581 PR middle-end/36594
14582 * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
14583 the memory instead of the memory itself for the save area.
14584
8de8de02 145852008-06-24 Olivier Hainque <hainque@adacore.com>
0edb82cb 14586 Nicolas Roche <roche@adacore.com>
8de8de02
OH
14587
14588 * gengtype.c (srcdir_len): size_t instead of int.
14589 (get_file_realbasename): New function. For F a filename, the real
14590 basename of F, with all the path components stripped.
14591 (get_file_srcdir_relative_path): New function. For F a filename, the
14592 relative path to F from $(srcdir).
14593 (get_file_basename): Rewrite using get_file_srcdir_relative_path and
14594 get_file_realbasename. Adjust the head comment.
14595 (get_prefix_langdir_index): New function. For F a filename, return the
14596 lang_dir_names[] relative index of the language directory that is
14597 a prefix in F.
14598 (get_file_langdir): For F a filename, return the name of the language
14599 directory where F is located.
14600 (get_file_gtfilename): New function. The gt- output file name for an
14601 input filename F.
14602 (get_output_file_with_visibility): Replace in-line computations with
14603 uses of get_file_gtfilename and get_prefix_langdir_index.
14604 * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
14605
a80a2701
JJ
146062008-06-24 Jakub Jelinek <jakub@redhat.com>
14607
14608 PR tree-optimization/36504
14609 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
14610 references without base address.
14611
b5f772ce
UB
146122008-06-23 Uros Bizjak <ubizjak@gmail.com>
14613
0edb82cb 14614 PR middle-end/36584
b5f772ce
UB
14615 * calls.c (expand_call): Increase alignment for recursive functions.
14616
f9f6caf5
AS
146172008-06-23 Anatoly Sokolov <aesok@post.ru>
14618
14619 * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
14620 (TARGET_FUNCTION_VALUE): New define.
14621 * config/avr/avr-protos.h (avr_function_value): Remove declaration.
14622 * config/avr/avr.h (FUNCTION_VALUE): Remove.
14623
f2a55e41
UB
146242008-06-23 Uros Bizjak <ubizjak@gmail.com>
14625
14626 * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
14627 (fmod<mode>3): Ditto.
14628 (remainderxf3): Ditto.
14629 (remainder<mode>3): Ditto.
14630
53983ae9
JJ
146312008-06-23 Jakub Jelinek <jakub@redhat.com>
14632
923ba36f
JJ
14633 PR target/36533
14634 * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
14635 REG is a hard register.
14636
53983ae9
JJ
14637 PR tree-optimization/36508
14638 * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
14639 499, don't check it at all in release compilers.
14640
cc774ffb
UB
146412008-06-23 Uros Bizjak <ubizjak@gmail.com>
14642
14643 * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
14644 together with SSE_TARGET_MATH to disable insn pattern.
14645 (*fop_<MODEF:mode>_2_i387): Ditto.
14646 (*fop_<MODEF:mode>_3_i387): Ditto.
14647
34babc73
AH
146482008-06-22 Andy Hutchinson <hutchinsonandy@aim.com>
14649
14650 * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
22129589 14651
2c68ba8e
LB
146522008-06-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
14653
14654 PR middle-end/34906
14655 * gimplify.c (gimplify_asm_expr): Check the return code of
14656 parse_output_constraint call, set function return and is_inout
14657 value if it failed.
14658
d75d71e0
ILT
146592008-06-22 Ian Lance Taylor <iant@google.com>
14660
14661 * c-lex.c (narrowest_unsigned_type): Change itk to int.
14662 (narrowest_signed_type): Likewise.
14663 * c-typeck.c (c_common_type): Change local variable mclass to enum
14664 mode_class, twice.
14665 (parser_build_binary_op): Compare the TREE_CODE_CLASS with
14666 tcc_comparison, not the tree code itself.
14667 * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
14668 (c_expand_expr): Cast modifier to enum expand_modifier.
14669 * c-common.h (C_RID_CODE): Add casts.
14670 (C_SET_RID_CODE): Define.
14671 * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
14672 (c_lex_one_token): Add cast to avoid warning.
14673 (c_parser_objc_type_name): Rename local typename to type_name.
14674 (check_no_duplicate_clause): Change code parameter to enum
14675 omp_clause_code.
14676 (c_parser_omp_var_list_parens): Change kind parameter to enum
14677 omp_clause_code.
14678 (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
14679 c_parser_omp_list_var_parens.
14680 (c_parser_omp_threadprivate): Likewise.
14681 * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
14682 * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
14683 * c-format.c (NO_FMT): Define.
14684 (printf_length_specs): Use NO_FMT.
14685 (asm_fprintf_length_specs): Likewise.
14686 (gcc_diag_length_specs): Likewise.
14687 (scanf_length_specs): Likewise.
14688 (strfmon_length_specs): Likewise.
14689 (gcc_gfc_length_specs): Likewise.
14690 (printf_flag_specs): Change 0 to STD_C89.
14691 (asm_fprintf_flag_specs): Likewise.
14692 (gcc_diag_flag_specs): Likewise.
14693 (gcc_cxxdiag_flag_specs): Likewise.
14694 (scanf_flag_specs): Likewise.
14695 (strftime_flag_specs): Likewise.
14696 (strfmon_flag_specs): Likewise.
14697 (print_char_table): Likewise.
14698 (asm_fprintf_char_table): Likewise.
14699 (gcc_diag_char_table): Likewise.
14700 (gcc_tdiag_char_table): Likewise.
14701 (gcc_cdiag_char_table): Likewise.
14702 (gcc_cxxdiag_char_table): Likewise.
14703 (gcc_gfc_char_table): Likewise.
14704 (scan_char_table): Likewise.
14705 (time_char_table): Likewis.
14706 (monetary_char_table): Likewise.
14707 * c-format.h (BADLEN): Likewise.
14708
c0ed0531
ILT
147092008-06-21 Ian Lance Taylor <iant@google.com>
14710
14711 * tree.h (enum tree_code): Include all-tree.def, not tree.def.
14712 Define END_OF_BASE_TREE_CODES around inclusion.
14713 * tree.c (tree_code_type): New global array.
14714 (tree_code_length, tree_code_name): Likewise.
14715 * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
14716 $(lang_tree_files).
14717 (all-tree.def, s-alltree): New targets.
14718 (gencheck.h, s-gencheck): Remove.
14719 (tree.o): Depend upon all-tree.def.
14720 (build/gencheck.o): Remove gencheck.h dependency.
14721 (mostlyclean): Don't remove gencheck.h.
14722 * c-common.h (enum c_tree_code): Remove.
14723 * c-lang.c (tree_code_type): Remove.
14724 (tree_code_length, tree_code_name): Remove.
14725 * gencheck.c (tree_codes): Include all-tree.def, rather than
14726 tree.def, c-common.def, and gencheck.h. Undefined DEFTREECODE
14727 after it is used.
14728 * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
14729 than tree.def.
14730 * cp/cp-tree.h (enum cplus_tree_code): Remove.
14731 (operator_name_info): Size to MAX_TREE_CODES.
14732 (assignment_operator_name_info): Likewise.
14733 * cp/cp-lang.c (tree_code_type): Remove.
14734 (tree_code_length, tree_code_name): Remove.
14735 * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
14736 (assignment_operator_name_info): Likewise.
14737 * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
14738 MAX_TREE_CODES.
14739 * cp/mangle.c (write_expression): Likewise.
14740 * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
14741 * fortran/f95-lang.c (tree_code_type): Remove.
14742 (tree_code_length, tree_code_name): Remove.
14743 * java/java-tree.h (enum java_tree_code): Remove.
14744 * java/lang.c (tree_code_type): Remove.
14745 (tree_code_length, tree_code_name): Remove.
14746 * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
14747 * objc/objc-act.h (enum objc_tree_code): Remove.
14748 * objc/objc-lang.c (tree_code_type): Remove.
14749 (tree_code_length, tree_code_name): Remove.
14750 * objcp/objcp-lang.c (tree_code_type): Remove.
14751 (tree_code_length, tree_code_name): Remove.
14752 * ada/ada-tree.h (enum gnat_tree_code): Remove.
14753 * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
14754 * ada/misc.c (tree_code_type): Remove.
14755 (tree_code_length, tree_code_name): Remove.
14756
830b4fec
BF
147572008-06-21 Bernhard Fischer <aldot@gcc.gnu.org>
14758
14759 * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
14760 the grand_bitmap_obstack.
14761
3d9a9f94
KG
147622008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14763
14764 * ggc.h (GGC_RESIZEVAR): New, reorder macros.
14765 * tracer.c (tail_duplicate): Fix for -Wc++-compat.
b5f772ce 14766 * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3d9a9f94
KG
14767 * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
14768 move_stmt_r, new_label_mapper): Likewise.
14769 * tree-complex.c (cvc_lookup): Likewise.
14770 * tree-dfa.c (create_function_ann): Likewise.
14771 * tree-dump.c (dump_register): Likewise.
14772 * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
14773 find_phi_replacement_condition): Likewise.
14774 * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
14775 tree_function_versioning): Likewise.
14776 * tree-into-ssa.c (cmp_dfsnum): Likewise.
14777 * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
14778 * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
14779 get_nonlocal_debug_decl, convert_nonlocal_reference,
14780 convert_nonlocal_omp_clauses, get_local_debug_decl,
14781 convert_local_reference, convert_local_omp_clauses,
14782 convert_nl_goto_reference, convert_nl_goto_receiver,
14783 convert_tramp_reference, convert_call_expr): Likewise.
14784 * tree-outof-ssa.c (contains_tree_r): Likewise.
14785 * tree-parloops.c (reduction_phi, initialize_reductions,
14786 eliminate_local_variables_1, add_field_for_reduction,
14787 add_field_for_name, create_phi_for_local_result,
14788 create_call_for_reduction_1, create_loads_for_reductions,
14789 create_stores_for_reduction, create_loads_and_stores_for_name):
14790 Likewise.
14791 * tree-phinodes.c (allocate_phi_node): Likewise.
cc774ffb
UB
14792 * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
14793 * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3d9a9f94
KG
14794 * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
14795 * tree-ssa-coalesce.c (compare_pairs): Likewise.
14796 * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
14797 memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
14798 record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
22129589 14799 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
3d9a9f94
KG
14800 * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
14801 vn_nary_op_insert): Likewise.
14802 * tree-ssa.c (redirect_edge_var_map_add,
14803 redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
14804 * tree-vectorizer.c (vectorize_loops): Likewise.
14805 * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
14806 build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
14807 tree_cons_stat, build1_stat, build_variant_type_copy,
14808 decl_init_priority_lookup, decl_fini_priority_lookup,
14809 decl_priority_info, decl_restrict_base_lookup,
14810 decl_restrict_base_insert, decl_debug_expr_lookup,
14811 decl_debug_expr_insert, decl_value_expr_lookup,
14812 decl_value_expr_insert, type_hash_eq, type_hash_lookup,
14813 type_hash_add, get_file_function_name, tree_check_failed,
14814 tree_not_check_failed, tree_range_check_failed,
14815 omp_clause_range_check_failed, build_omp_clause,
14816 build_vl_exp_stat): Likewise.
14817 * value-prof.c (gimple_histogram_value,
14818 gimple_duplicate_stmt_histograms): Likewise.
14819 * var-tracking.c (attrs_list_insert, attrs_list_copy,
14820 unshare_variable, variable_union_info_cmp_pos, variable_union,
14821 dataflow_set_different_1, dataflow_set_different_2,
14822 vt_find_locations, variable_was_changed, set_variable_part,
cc774ffb 14823 emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3d9a9f94
KG
14824 * varasm.c (prefix_name, emutls_decl, section_entry_eq,
14825 section_entry_hash, object_block_entry_eq,
14826 object_block_entry_hash, create_block_symbol,
14827 initialize_cold_section_name, default_function_rodata_section,
14828 strip_reg_name, set_user_assembler_name, const_desc_eq,
14829 build_constant_desc, output_constant_def, lookup_constant_def,
14830 const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
14831 create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
14832 default_internal_label): Likewise.
14833 * varray.c (varray_init, varray_grow): Likewise.
14834 * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
14835
a055f99f
UB
148362008-06-20 Uros Bizjak <ubizjak@gmail.com>
14837
14838 * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
14839 operators for "test" insn. Macroize insn using SWI mode macro.
14840 (*jcc_fused_2): Ditto.
14841 (*jcc_fused_3): Macroize insn using SWI mode macro.
14842 (*jcc_fused_4): Ditto.
14843
a7849637
BF
148442008-06-20 Bernhard Fischer <aldot@gcc.gnu.org>
14845
a055f99f
UB
14846 * tree-ssa-pre.c: Fix typo in comment.
14847 (init_antic, fini_antic): Add explicit funtions for
14848 initializing and deinitializing ANTIC and AVAIL sets.
14849 (create_expression_by_pieces): Fix typo in comment.
14850 Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
14851 (execute_pre): Eventually dump details about ANTIC_IN.
a7849637 14852
e1e4cdc4
KG
148532008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14854
14855 * collect2.c (main, add_to_list): Fix for -Wc++-compat.
14856 * gcc.c (translate_options, init_spec, store_arg, read_specs,
14857 add_to_obstack, file_at_path, find_a_file, execute,
14858 add_preprocessor_option, add_assembler_option, add_linker_option,
14859 process_command, insert_wrapper, do_option_spec, do_self_spec,
14860 spec_path, do_spec_1, is_directory, main, used_arg,
14861 getenv_spec_function): Likewise.
14862 * tlink.c (symbol_hash_lookup, file_hash_lookup,
14863 demangled_hash_lookup, symbol_push, file_push, frob_extension):
14864 Likewise.
14865
1ba4e523
KZ
148662008-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
14867
14868 * doc/rtl.texi: Updated subreg section.
a7849637 14869
2368a460
JJ
148702008-06-19 Jakub Jelinek <jakub@redhat.com>
14871
14872 PR c++/36523
14873 * cgraphunit.c (cgraph_process_new_functions): Don't clear
14874 node->needed and node->reachable.
14875 * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
14876 * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
14877 (expand_task_call): Don't call expand_task_copyfn.
14878 (expand_task_copyfn): Renamed to...
14879 (finalize_task_copyfn): ... this.
14880
dea33aa7
JH
148812008-06-19 Jan Hubicka <jh@suse.cz>
14882
14883 * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
14884 clobbering framepointer.
14885
bad5e2b5
JH
148862008-06-19 Jan Hubicka <jh@suse.cz>
14887
14888 * tree-optimize.c (execute_early_local_optimizations): Set
14889 cgraph_state only at first invocation.
14890
00066bc0
KG
148912008-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14892
14893 * system.h (-Wc++-compat): Activate as a warning, no an error.
14894
f1469150
UB
148952008-06-19 Uros Bizjak <ubizjak@gmail.com>
14896
14897 * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
14898 instead of "#" in insn asm template.
14899 (*jcc_fused_2): Ditto.
14900
354f84af
UB
149012008-06-19 Uros Bizjak <ubizjak@gmail.com>
14902
14903 * config/i386/i386.h (ix86_tune_indices)
14904 [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
14905 (TARGET_FUSE_CMP_AND_BRANCH): New define.
14906 * config/i386/i386.md (*jcc_fused_1): New insn pattern
14907 (*jcc_fused_2): Ditto.
14908 * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
f1469150 14909 X86_TUNE_FUSE_CMP_AND_BRANCH targets.
354f84af
UB
14910 (print operand): Handle 'E' and 'e' code.
14911
720705d2
AS
149122008-06-19 Anatoly Sokolov <aesok@post.ru>
14913
14914 * config/avr/avr.c (avr_mcu_t): Add attiny13a.
14915 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14916 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14917
f30cfcb1
BRF
149182008-06-19 Bernhard Fischer <aldot@gcc.gnu.org>
14919
14920 * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
14921 node->decl.
14922 (cgraph_expand_function): Use local copy of decl.
14923 (cgraph_expand_all_functions): Remove redundant initialization of
14924 order_pos.
14925 (cgraph_optimize): Reword internal_error message.
14926
149272008-06-19 Chung-Lin Tang <ctang@marvell.com>
23668cf7
CLT
14928
14929 * arm-protos.h (arm_return_in_memory): Remove public
14930 arm_return_in_memory() prototype.
14931 * arm.c (arm_return_in_memory): Add static prototype, add target
14932 hook macro, change definition and comments.
14933 * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
14934
7292b8e4
BE
149352008-06-19 Ben Elliston <bje@au.ibm.com>
14936
14937 * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
14938 real.c: Remove references to IEEE 754R.
14939 * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
14940 * doc/libgcc.texi (Decimal float library routines): Likewise.
14941
7b0518e3
UW
149422008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14943
14944 * targhooks.h (struct gcc_target): New member unwind_word_mode.
14945 (default_unwind_word_mode): Add prototype.
14946 * targhooks.c (default_unwind_word_mode): New function.
14947 (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
14948 instead of word_mode.
14949 * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
14950 (TARGET_INITIALIZER): Use it.
14951
14952 * c-common.c (handle_mode_attribute): Support "unwind_word"
14953 mode attribute.
14954 * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
14955
14956 * except.c (init_eh): Use targetm.unwind_word_mode () instead of
14957 word_mode to access SjLj_Function_Context member "data".
14958 (sjlj_emit_dispatch_table): Likewise. Also, perform type
14959 conversion from targetm.eh_return_filter_mode () to
14960 targetm.unwind_word_mode () if they differ.
14961
14962 * builtin-types.def (BT_UNWINDWORD): New primitive type.
14963 (BT_FN_UNWINDWORD_PTR): New function type.
14964 (BT_FN_WORD_PTR): Remove.
14965 * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
14966 * except.c (expand_builtin_extend_pointer): Convert pointer to
14967 targetm.unwind_word_mode () instead of word_mode.
14968
14969 * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
14970 * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
14971 (spu_unwind_word_mode): New function.
14972 (TARGET_EH_RETURN_FILTER_MODE): Do not define.
14973 (TARGET_UNWIND_WORD_MODE): Define.
14974 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
14975
aa5d9939
UW
149762008-06-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14977
14978 * config/spu/spu.c (reg_align): Remove.
14979 (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
14980 (spu_split_load): Use regno_aligned_for_load instead of reg_align.
14981 (spu_split_store): Likewise.
14982
f30cfcb1 149832008-06-18 Bernhard Fischer <aldot@gcc.gnu.org>
a7816b82
BF
14984
14985 * gcc/tree-vn.c: Fix typo in comment.
14986
45f09afb
JH
149872008-06-18 Jan Hubicka <jh@suse.cz>
14988
14989 * cgraphunit.c (cgraph_optimize): Output debug info when doing
14990 toplevel reorder too.
14991
a7bf199e
JH
149922008-06-18 Jan Hubicka <jh@suse.cz>
14993
14994 * c-opts.c (c_common_post_options): PCH is not compatible with
14995 no-unit-at-a-time.
14996 * opts.c (handle_options): Enable unit-at-a-time at O0 along with
14997 -fno-toplevel-reorder by default now.
14998
3f737aa9
RW
149992008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15000
15001 PR documentation/30739
15002 * doc/install.texi (Prerequisites): Document dependency on awk.
15003
ba03a350
UB
150042008-06-18 Uros Bizjak <ubizjak@gmail.com>
15005 Ian Lance Taylor <iant@google.com>
15006
15007 PR rtl-optimization/35604
15008 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
15009 only want to change jump destinations, not eventual label comparisons.
15010
fdd7f241
JH
150112008-06-16 Jan Hubicka <jh@suse.cz>
15012
15013 * cgraphunit.c (cgraph_expand_pending_functions): Give up at
15014 syntax errors.
15015 (cgraph_analyze_function): Likewise.
15016
f0c882ab
JH
150172008-06-16 Jan Hubicka <jh@suse.cz>
15018
15019 * cgraph.h (cgraph_mark_if_needed): New function.
15020 * cgraphunit.c (cgraph_mark_if_needed): New function.
15021 * c-decl.c (duplicate_decl): Use it.
15022
ff2c88a5
JH
150232008-06-16 Jan Hubicka <jh@suse.cz>
15024
15025 * cgraph.c (cgraph_add_new_function): When in expansion state, do
15026 lowering.
15027
b7352f3f
JH
150282008-06-16 Jan Hubicka <jh@suse.cz>
15029
15030 * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
15031
900e3ae5
DJ
150322008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
15033 Kazu Hirata <kazu@codesourcery.com>
15034 Maxim Kuvyrkov <maxim@codesourcery.com
15035
15036 * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
15037 * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
15038 * config/mips/linux.h (host_detect_local_cpu): Declare, add to
15039 EXTRA_SPEC_FUNCTIONS.
15040 (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
15041 (DRIVER_SELF_SPECS): Adjust.
15042 * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
15043 * config/mips/st.h, config/mips/t-st: New.
15044 * config/mips/driver-native.c, config/mips/x-native: New.
15045 * doc/invoke.texi (MIPS): Document 'native' value for -march and
15046 -mtune options.
15047
b51469a5
MK
150482008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
15049
15050 * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
15051 from it.
15052 (ISA_HAS_FP_CONDMOVE): New macro.
15053 (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
15054 (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
15055 (ISA_HAS_NMADD3_NMSUB3): New macro.
15056 * config/mips/mips.c (mips_rtx_costs): Update.
15057 * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
15058 compiling for ST Loongson 2E/2F.
15059 (madd<mode>): Rename to madd4<mode>. Update.
15060 (madd3<mode>): New pattern.
15061 (msub<mode>): Rename to msub4<mode>. Update.
15062 (msub3<mode>): New pattern.
15063 (nmadd<mode>): Rename to nmadd4<mode>. Update.
15064 (nmadd3<mode>): New pattern.
15065 (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
15066 (nmadd3<mode>_fastmath): New pattern.
15067 (nmsub<mode>): Rename to nmsub4<mode>. Update.
15068 (nmsub3<mode>): New pattern.
15069 (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
15070 (nmsub3<mode>_fastmath): New pattern.
15071 (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
15072
50e94c7e
SB
150732008-06-18 Steven Bosscher <steven@gcc.gnu.org>
15074
15075 * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
15076 (DF_REF_INSN_INFO): New.
15077 (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
15078 (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
15079 with a NULL DF_REF_INSN_INFO.
15080 (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
15081 DF_INSN_SET.
15082 (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
15083 DF_INSN_INFO_EQ_USES): New.
15084 (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
15085 DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
15086 DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
15087 * df-core.c: Update comment for above changes.
15088 (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
15089 DF_INSN_UID_* macros.
15090 (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
15091 * df-scan.c (df_ref_record): Take a df_insn_info instead of an
15092 insn rtx. Update all callers.
15093 (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
15094 df_ref_create_structure, df_insn_refs_collect): Likewise.
15095 (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
15096 * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
15097 (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
15098 macros to access the insn refs.
15099 (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
15100 * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
15101 (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
15102 for accessing the refs.
15103 (try_fwprop_subst): Likewise.
15104 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
15105 * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
15106 for accessing the refs.
15107 * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
15108 (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
15109 to look at the insn refs.
15110 (record_uses): Likewise.
15111 * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
15112 function anymore.
15113 (mark_artificial_uses): Don't mark_insn for artificial refs.
15114 (mark_reg_rependencies): Likewise.
15115
15116 * doc/rtl.texi: Remove documentation of ADDRESSOF.
15117
18c04407
RW
151182008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15119
15120 * configure: Regenerate.
15121
7995ad77
EW
151222008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
15123
15124 * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
22129589
AS
15125 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15126 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
7995ad77 15127
e416eb8f
EW
151282008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
15129
15130 * config/avr/avr.c (avr_mcu_t): Add attiny167.
22129589
AS
15131 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15132 * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
e416eb8f 15133
59928a83
EW
151342008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
15135
15136 * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
22129589
AS
15137 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15138 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
59928a83 15139
b40bf772
BF
151402008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
15141
15142 * tree-ssa-sccvn.c: Fix format of comments.
15143
151442008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
a33a598c
BF
15145
15146 * cgraph.c: Remove unneeded forward declarations of eq_node()
15147 and hash_node().
15148
4a8cae83
SB
151492008-06-17 Steven Bosscher <steven@gcc.gnu.org>
15150
15151 * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
15152 REG_RETVAL notes.
15153 (see_update_relevancy): Likewise.
15154 * fwprop.c (try_fwprop_subst): Likewise.
15155 * rtlanal.c (noop_move_p): Likewise.
15156 * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
15157 notes to non-existing libcall blocks.
15158 * cse.c (cse_insn): Change prototype. Don't update libcall notes.
15159 Remove orig_set.
15160 (cse_extended_basic_block): Don't track libcall and no-conflict notes.
15161 (dead_libcall_p): Remove.
15162 (delete_trivially_dead_insns): Don't use it.
15163 * web.c (union_defs): Remove comment about keeping nops.
15164 * gcse.c (hash_scan_insn): Don't take libcall pointers.
15165 (compute_hash_table_work): Don't track libcall notes.
15166 (do_local_cprop): Don't take libcall pointers. Don't update
15167 libcall notes.
15168 (adjust_libcall_notes): Deleted.
15169 (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
15170 ever have existed in the first place).
15171 (replace_store_insn): Don't try to remove libcall notes.
15172 * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
15173 (resolve_reg_notes): Don't call them.
15174 (resolve_simple_move): Likewise.
15175 (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
15176 Don't remove REG_RETVAL notes.
15177 * emit-rtl.c (try_split): Don't update libcall notes.
15178 (emit_copy_of_insn_after): Dito.
15179 * cselib.c (cselib_current_insn_in_libcall): Remove.
15180 (cselib_process_insn): Don't set/clear it.
15181 (new_elt_loc_list): Don't record it.
15182 (cselib_init): Don't initialize it.
15183 * cselib.c (struct elt_loc_list): Remove in_libcall field.
15184 * loop-invariant.c (find_invariant_insn): Don't look for libcall
15185 notes.
15186 * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
15187 (sched_analyze): Don't set up deps->libcall_block_tail_insn.
15188 (init_deps): Don't initialize it.
15189 * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
15190 * combine.c (delete_noop_moves): Don't update libcall notes.
15191 (can_combine_p): Remove now pointless #if 0 block.
15192 (try_combine): Remove another obsolete #if 0 block.
15193 (distribute_notes): Don't distribute libcall notes.
15194 * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
15195 * dce.c (libcall_dead_p): Remove.
15196 (delete_unmarked_insns): Don't handle libcall blocks.
15197 (preserve_libcall_for_dce): Remove.
15198 (prescan_insns_for_dce): Don't special-case libcall block insns.
22129589 15199 * reload1 (reload): Don't handle libcall notes.
4a8cae83
SB
15200 * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
15201 documentation.
15202
ec346900
EW
152032008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
15204
15205 * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
15206 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
15207 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
15208
951a5379
EW
152092008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
15210
15211 * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
15212 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
22129589 15213 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
951a5379 15214
2d09b640
RW
152152008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15216
15217 * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
15218
54269f05
IR
152192008-06-16 Ira Rosen <irar@il.ibm.com>
15220
15221 PR tree-optimization/36493
15222 * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
15223 the arguments list. Use VECTYPE to create vector pointer.
15224 (vectorizable_store): Fail if accesses through a pointer to vectype
15225 do not alias the original memory reference operands.
15226 Call vect_create_data_ref_ptr without the removed argument.
15227 (vectorizable_load): Likewise.
15228 (vect_setup_realignment): Call vect_create_data_ref_ptr without the
15229 removed argument.
15230
f4df5771
AH
152312008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
15232
15233 PR target/36336
22129589 15234 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
f4df5771
AH
15235 reg_equiv_constant.
15236
58684fa0
MK
152372008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
15238
15239 * config/mips/loongson2ef.md: New file.
15240 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
15241 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
15242 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
15243 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
15244 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
15245 and loongson_2f.
15246 (loongson2ef.md): New include.
15247 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
15248 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
15249 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
15250 (loongson_gt_<mode>, loongson_extract_halfword)
15251 (loongson_insert_halfword_0, loongson_insert_halfword_2)
15252 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
15253 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
15254 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
15255 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
15256 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
15257 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
15258 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
15259 (vec_interleave_low<mode>): Define type attribute.
15260 * config/mips/mips.c (mips_ls2): New static variable.
15261 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
15262 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
15263 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
15264 Implement target scheduling hooks.
15265 (mips_multipass_dfa_lookahead): Update to handle tuning for
15266 Loongson 2E/2F.
15267 (mips_sched_init): Initialize data for Loongson scheduling.
15268 (mips_ls2_variable_issue): New static function.
15269 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
15270 Add sanity check.
15271 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
15272 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
15273 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
15274 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
15275 Handle ST Loongson 2E/2F cores.
15276 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
15277
1cbc62c0
RW
152782008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15279
15280 * omp-low.c (extract_omp_for_data): Fix comment typo.
15281 * c.opt: Fix typo.
15282
6ccde948
RW
152832008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15284
15285 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
15286 FIXME note about gcc/config.guess.
15287 * doc/options.texi (Option file format): Remove non-ASCII bytes.
15288 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
15289 * doc/cppopts.texi: Likewise.
15290 * doc/extend.texi: Likewise.
15291 * doc/gcc.texi: Likewise.
15292 * doc/gccint.texi: Likewise.
15293 * doc/gcov.texi: Likewise.
15294 * doc/gty.texi: Likewise.
15295 * doc/hostconfig.texi: Likewise.
15296 * doc/install.texi: Likewise.
15297 * doc/invoke.texi: Likewise.
15298 * doc/loop.texi: Likewise.
15299 * doc/makefile.texi: Likewise.
15300 * doc/md.texi: Likewise.
15301 * doc/passes.texi: Likewise.
15302 * doc/tm.texi: Likewise.
15303 * doc/tree-ssa.texi: Likewise.
15304 * doc/trouble.texi: Likewise.
15305
93581857
MS
153062008-06-15 Mark Shinwell <shinwell@codesourcery.com>
15307 Nathan Sidwell <nathan@codesourcery.com>
15308 Maxim Kuvyrkov <maxim@codesourcery.com>
15309 Richard Sandiford <rdsandiford@googlemail.com>
22129589 15310
93581857
MS
15311 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
15312 * config/mips/mips-protos.h (mips_expand_vector_init): New.
15313 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
15314 builtins.
15315 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
15316 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
15317 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
15318 V8QImode cases.
15319 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
15320 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
15321 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
15322 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
15323 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
15324 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
15325 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
15326 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
15327 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
15328 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
15329 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
15330 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
15331 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
15332 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
15333 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
15334 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
15335 (mips_builtins): Add Loongson builtins.
15336 (mips_loongson_2ef_bdesc): New.
15337 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
15338 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
15339 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
15340 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
15341 New.
15342 (mips_expand_vector_init): New.
15343 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
15344 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
15345 if appropriate.
15346 * config/mips/mips.md: Add unspec numbers for Loongson
15347 builtins. Include loongson.md.
15348 (MOVE64): Include Loongson vector modes.
15349 (SPLITF): Include Loongson vector modes.
15350 (HALFMODE): Handle Loongson vector modes.
15351 * config/mips/loongson.md: New.
15352 * config/mips/loongson.h: New.
15353 * config.gcc: Add loongson.h header for mips*-*-* targets.
15354 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
15355
397fda80
JM
153562008-06-14 Joseph Myers <joseph@codesourcery.com>
15357
15358 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
15359 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
15360 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
15361 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
15362 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
15363 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
15364 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
15365 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
15366 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
15367 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
15368 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
15369 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
15370 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
15371 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
15372 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
15373 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
15374 Remove use_fixproto=yes.
15375 (ia64*-*-hpux*): Remove comment about using fixproto.
15376 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
15377
b15a9f63
RW
153782008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15379
15380 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
15381 library rebuilds.
15382 * configure: Regenerate.
15383
9133c85e
EB
153842008-06-13 Eric Botcazou <ebotcazou@adacore.com>
15385
15386 PR middle-end/36520
15387 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
15388 before evaluating it.
15389
6cf59865
JJ
153902008-06-13 Jakub Jelinek <jakub@redhat.com>
15391
15392 PR c/36507
15393 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
15394 nested inline functions.
15395 (start_decl, start_function): Don't invert DECL_EXTERNAL
15396 for nested inline functions.
15397
a9a53350
RS
153982008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
15399
15400 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
15401 splits that must be made for correctness.
15402
fd0eb897
RS
154032008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
15404
15405 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
15406 (AVAIL_NON_MIPS16): Likewise.
15407 (mips_builtin_description): Replace target_flags with a predicate.
15408 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
15409 (dspr2_32): New availability predicates.
15410 (MIPS_BUILTIN): New macro.
15411 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
15412 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
15413 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
15414 Replace the TARGET_FLAGS parameters with AVAIL parameters.
15415 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
15416 (mips_dsp_32only_bdesc): Merge into...
15417 (mips_builtins): ...this new array.
15418 (mips_bdesc_map, mips_bdesc_arrays): Delete.
15419 (mips_init_builtins): Update after above changes.
15420 (mips_expand_builtin_1): Merge into...
15421 (mips_expand_builtin): ...here and update after above changes.
15422
ef0a4b67
PB
154232008-06-12 Paul Brook <paul@codesourcery.com>
15424
15425 * longlong.h (__arm__): Define count_leading_zeros.
15426 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
15427 (clzsi2, clzdi2): New functions.
15428 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
15429 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
15430 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
15431 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
15432 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
15433 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
15434 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
15435 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
15436 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
15437 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
15438
03b3e271
KH
154392008-06-12 Kazu Hirata <kazu@codesourcery.com>
15440
15441 * config/m68k/m68k.c (m68k_tune_flags): New.
15442 (override_options): Compute m68k_tune_flags.
15443 (MULL_COST, MULW_COST): Update for various variants of CFV2.
15444 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
15445
3ac4c44a
JJ
154462008-06-12 Jakub Jelinek <jakub@redhat.com>
15447
15448 PR middle-end/36506
ba03a350 15449 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3ac4c44a 15450
955f6531
EB
154512008-06-12 Eric Botcazou <ebotcazou@adacore.com>
15452
15453 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
15454 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
15455
bd323ce5
EB
154562008-06-12 Eric Botcazou <ebotcazou@adacore.com>
15457
15458 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
15459 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
15460
c34938a8
JJ
154612008-06-12 Jakub Jelinek <jakub@redhat.com>
15462
15463 PR middle-end/36506
15464 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
15465 reductions.
15466
b3778556
RG
154672008-06-12 Richard Guenther <rguenther@suse.de>
15468
15469 PR tree-optimization/36345
15470 * tree-flow.h (struct ptr_info_def): Align escape_mask,
15471 add memory_tag_needed flag.
15472 (may_alias_p): Declare.
15473 * tree-ssa-alias.c (may_alias_p): Export.
15474 (set_initial_properties): Use memory_tag_needed flag.
15475 (update_reference_counts): Likewise.
15476 (reset_alias_info): Reset memory_tag_needed flag.
15477 (create_name_tags): Check memory_tag_needed flag.
15478 (dump_points_to_info_for): Dump it.
15479 * tree-ssa-structalias.c (struct variable_info): Remove
15480 directly_dereferenced flag.
15481 (new_var_info): Do not initialize it.
15482 (process_constraint_1): Do not set it.
15483 (update_alias_info): Set is_dereferenced flag.
15484 (set_uids_in_ptset): Use may_alias_p.
15485 (set_used_smts): Check memory_tag_needed flag.
15486 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
15487 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
15488 memory_tag_needed flag.
15489 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
15490 from broken design.
15491
394a378c
KT
154922008-06-12 Kai Tietz <kai.tietz@onevision.com>
15493
ba03a350
UB
15494 * config/i386/i386.c (ix86_compute_frame_layout): Disable
15495 red zone for w64 abi.
394a378c
KT
15496 (ix86_expand_prologue): Likewise.
15497 (ix86_force_to_memory): Likewise.
15498 (ix86_free_from_memory): Likewise.
15499
567f0b17
EW
155002008-06-11 Edmar Wienskoski <edmar@freescale.com>
15501
15502 PR target/36425
15503 * config/rs6000/rs6000.c (rs6000_override_options): Set
ba03a350 15504 rs6000_isel conditionally to the absence of comand line override.
567f0b17
EW
15505 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
15506 Remove duplicate rs6000_isel setting.
15507 * config/rs6000/eabispe.h: Ditto.
15508
4653cae5
RG
155092008-06-11 Richard Guenther <rguenther@suse.de>
15510
15511 * alias.c (get_alias_set): Use the element alias-set for arrays.
15512 (record_component_aliases): For arrays and vectors do nothing.
15513 * c-common.c (strict_aliasing_warning): Handle the cases
15514 of alias set zero explicitly.
15515 * Makefile.in (dfp.o-warn): Add -Wno-error.
15516
8981c15b
JM
155172008-06-11 Joseph Myers <joseph@codesourcery.com>
15518
15519 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
15520 tune_32 tune_64.
15521 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
15522 tune_32 tune_64 to supported_defaults. Allow values not
15523 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
15524 x86_64. Do not override cpu_32 or cpu_64 values from target name.
15525 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
15526 with_cpu_64 to generic for 64-bit-supporting configurations, not
15527 with_cpu. Remove FIXMEs.
15528 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
15529 --with-arch-64, --with-tune-32, --with-tune-64): Document.
15530 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
15531 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
15532 arch_32 and arch_64.
15533
056c8fae 155342008-06-11 Eric Botcazou <ebotcazou@adacore.com>
ba03a350 15535 Olivier Hainque <hainque@adacore.com>
056c8fae
EB
15536
15537 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
15538 Use DECL_SIZE_UNIT to retrieve the size of the field.
15539
af06585a
JM
155402008-06-11 Joseph Myers <joseph@codesourcery.com>
15541
15542 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
15543 with function calls after declarations. Lay out
15544 neon_float_type_node before further use.
15545
fd73537b
RG
155462008-06-11 Richard Guenther <rguenther@suse.de>
15547
15548 * tree-flow.h (may_point_to_global_var): Declare.
15549 * tree-ssa-alias.c (may_point_to_global_var): New function.
15550 * tree-ssa-sink.c (is_hidden_global_store): Use it.
15551
6b7b0ba1
KH
155522008-06-10 Kazu Hirata <kazu@codesourcery.com>
15553
15554 * configure.ac: Teach that fido supports .debug_line.
15555 * configure: Regenerate.
15556
711b2510
TT
155572008-06-10 Tom Tromey <tromey@redhat.com>
15558
15559 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
15560 debug hook.
15561
bc6d4c3f
JM
155622008-06-10 Joseph Myers <joseph@codesourcery.com>
15563
15564 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
15565 (encode_decimal64, decode_decimal64, encode_decimal128,
15566 decode_decimal128): Reverse order of 32-bit parts of value if host
15567 and target endianness differ.
15568
0178d644 155692008-06-10 Vinodha Ramasamy <vinodha@google.com>
ba03a350
UB
15570
15571 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
0178d644
VR
15572 Avoid division by 0.
15573 (tree_mod_pow2_value_transform): Likewise.
15574 (tree_ic_transform): Likewise.
15575 (tree_stringops_transform): Likewise.
15576 (tree_mod_subtract_transform): Likewise.
15577 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
15578 (copy_edges_for_bb): Likewise.
15579 (initialize_cfun): Likewise.
15580
88b9490b
UB
155812008-06-10 Uros Bizjak <ubizjak@gmail.com>
15582
15583 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
15584 nonmemory_operand. Add "N" operand constraint.
15585 (*btsi): Ditto.
15586 (*jcc_btdi_mask_rex64): New instruction and split pattern.
15587 (*jcc_btsi_mask): Ditto.
15588 (*jcc_btsi_mask_1): Ditto.
15589
0627bfb4
JM
155902008-06-10 Joseph Myers <joseph@codesourcery.com>
15591
15592 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
15593 TYPE_CANONICAL for copied element type.
15594
33ee5810
UB
155952008-06-10 Uros Bizjak <ubizjak@gmail.com>
15596
15597 PR target/36473
15598 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
15599 Add m_CORE2 and m_GENERIC.
15600 * config/i386/predicates.md (bt_comparison_operator): New predicate.
15601 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
15602 (*btsi): Ditto.
15603 (*jcc_btdi_rex64): New instruction and split pattern.
15604 (*jcc_btsi): Ditto.
15605 (*jcc_btsi_1): Ditto.
15606 (*btsq): Fix Intel asm dialect operand order.
15607 (*btrq): Ditto.
15608 (*btcq): Ditto.
15609
3115c00d
AH
156102008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
15611
15612 PR middle-end/36447
22129589 15613 * simplify-rtx.c (simplify_subreg): Add check for shift count
3115c00d
AH
15614 greater than size.
15615
21dfc6dc
RS
156162008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
15617
15618 * doc/md.texi: Synchronize with later constraints.md change.
15619 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
15620 with a C implementation.
15621 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
15622 MFLO handling.
15623 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
15624 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
15625 when moving to and from MD_REGNUM.
15626 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
15627 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
15628 Handle byte and halfword moves.
15629 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
15630 separately.
15631 * config/mips/constraints.md (h): Turn into NO_REGS.
15632 (l, x): Update documentation.
15633 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
15634 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
15635 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
15636 (HILO): New mode iterator.
15637 (MOVE128): Add TI.
15638 (any_div): New code iterator.
15639 (u): Extend code attribute to div and udiv.
15640 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
15641 d_operand in the splitters. Remove redundant CONST_INT checks.
15642 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
15643 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
15644 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
15645 accordingly, using normal moves instead of unspecs to move LO into
15646 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
15647 (<u>mulsidi3): Handle expansion in C code.
15648 (<u>mulsidi3_32bit_internal): Rename to...
15649 (<u>mulsidi3_32bit): ...this.
15650 (<u>mulsidi3_32bit_r4000): Fix insn separator.
15651 (*<u>mulsidi3_64bit): Rename to...
15652 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
15653 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
15654 to set LO and HI to the multiplication result. Use a normal move
15655 for MFLO and an unspec for MFHI.
15656 (*<u>mulsidi3_64bit_parts): Replace with...
15657 (<u>mulsidi3_64bit_hilo): ...this new instruction.
15658 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
15659 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
15660 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
15661 instead of HI. Split the instruction into a separate multiplication
15662 and MFHI if !TARGET_FIX_R4000.
15663 (<su>muldi3_highpart): Likewise.
15664 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
15665 and the "=h" clobber.
15666 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
15667 (<u>mulditi3): New expander.
15668 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
15669 (madsi): Remove "=h" clobber.
15670 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
15671 Force the modulus result to be a GPR and split the instruction into
15672 a division followed by an MFHI after reload.
15673 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
15674 (*lea_high64): Use d_operand in the define_peephole2. Likewise
15675 the MIPS16 HIGH define_split.
15676 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
15677 of acc<->gpr moves to "multi".
15678 (*movdi_64bit): Replace the single "x" alternative with
15679 alternatives for moving into and out of "a".
15680 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
15681 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
15682 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
15683 Use d_operand in the splitters. Remove redundant CONST_INT checks.
15684 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
15685 (movti): New expander.
15686 (*movti, *movti_mips16): New insns.
15687 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
15688 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
15689 (mthi<GPR:mode>_<HILO:mode>): Likewise.
15690 * config/mips/predicates.md (fpr_operand): Delete.
15691 (d_operand): New predicate.
15692
0e462a95
MM
156932008-06-09 Michael Meissner <michael.meissner@amd.com>
15694
15695 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
15696 failure on some Bourne shells.
15697 (x86_64-*-*): Ditto.
15698
d3c1d2a0
KT
156992008-06-09 Kai Tietz <kai.tietz@onevision.com>
15700
15701 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
15702
2bd58b1b
EB
157032008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
15704
15705 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
15706 (sparc-sun-solaris2*): Likewise.
15707
2c2b1710
AC
157082008-06-09 Arnaud Charlet <charlet@adacore.com
15709
15710 * doc/install.texi: Update requirements to build the Ada compiler.
15711
fed6152d
SB
157122008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
15713
15714 * df-scan.c (struct df_scan_problem_data): Remove the
15715 mw_link_pool alloc pool.
15716 (df_scan_free_internal): Don't free it.
15717 (df_scan_alloc): Don't allocate it.
15718 * df.h (struct df_link): Update comment.
15719
c427220a
NS
157202008-06-08 Nathan Sidwell <nathan@codesourcery.com>
15721
15722 * except.h: Correct checks for when SJLJ exceptions must be used.
15723
cf0fd618
MLI
157242008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15725
15726 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
15727 default.
22129589 15728
f8c33439
JM
157292008-06-08 Joseph Myers <joseph@codesourcery.com>
15730
15731 PR tree-optimization/36218
15732 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
15733 configure for the build system.
15734 (BUILD_LDFLAGS): Define.
15735 * configure: Regenerate.
15736 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
15737
91635d08
AS
157382008-07-08 Anatoly Sokolov <aesok@post.ru>
15739
15740 PR target/36424
15741 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
22129589
AS
15742 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
15743 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
91635d08 15744
ae06ac00
DS
157452008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
15746
15747 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
15748
cd985f66
JM
157492008-06-07 Joseph Myers <joseph@codesourcery.com>
15750
15751 * config.gcc (Obsolete configurations): Remove list of
15752 configurations.
15753 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
15754 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
15755 targets matched by those patterns.
15756 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
15757 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
15758 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
15759 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
15760 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
15761 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
15762 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
15763 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
15764 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
15765 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
15766 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
15767 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
15768 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
15769 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
15770 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
15771 Make code for Solaris 7 and greater unconditional for Solaris.
15772 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
15773 Remove --with-* handling.
15774 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
15775 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
15776 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
15777 LINK_OS_WINDISS_SPEC): Remove.
15778 * config/rs6000/sysv4.opt (mwindiss): Remove.
15779 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
15780 * configure: Regenerate.
15781 * doc/cpp.texi: Don't mention BeOS.
15782 * doc/extend.texi (interrupt): Don't mention MS1.
15783 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
15784 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
15785 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
15786 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
15787 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
15788 Remove.
15789 * doc/invoke.texi (MT Options): Remove.
15790 (-mwindiss): Remove.
15791 (CRIS Options): Remove cris-axis-aout references.
15792 (HPPA Options): Don't mention hppa1.1-*-pro.
15793 * doc/md.texi: (MorphoTech family): Remove.
15794 * libgcc2.c: Don't handle UWIN.
15795 * config/alpha/t-unicosmk: Remove.
15796 * config/alpha/unicosmk.h: Remove.
15797 * config/arm/kaos-arm.h: Remove.
15798 * config/arm/kaos-strongarm.h: Remove.
15799 * config/arm/strongarm-coff.h: Remove.
15800 * config/arm/strongarm-elf.h: Remove.
15801 * config/arm/strongarm-pe.h: Remove.
15802 * config/arm/t-strongarm-pe: Remove.
15803 * config/arm/t-xscale-coff: Remove.
15804 * config/arm/t-xscale-elf: Remove.
15805 * config/arm/xscale-coff.h: Remove.
15806 * config/arm/xscale-elf.h: Remove.
15807 * config/chorus.h: Remove.
15808 * config/cris/aout.h: Remove.
15809 * config/cris/aout.opt: Remove.
15810 * config/cris/t-aout: Remove.
15811 * config/i386/beos-elf.h: Remove.
15812 * config/i386/kaos-i386.h: Remove.
15813 * config/i386/ptx4-i.h: Remove.
15814 * config/i386/sco5.h: Remove.
15815 * config/i386/sco5.opt: Remove.
15816 * config/i386/sysv4-cpp.h: Remove.
15817 * config/i386/sysv5.h: Remove.
15818 * config/i386/t-beos: Remove.
15819 * config/i386/t-sco5: Remove.
15820 * config/i386/t-uwin: Remove.
15821 * config/i386/uwin.asm: Remove.
15822 * config/i386/uwin.h: Remove.
15823 * config/kaos.h: Remove.
15824 * config/mips/windiss.h: Remove.
15825 * config/mt: Remove directory.
15826 * config/pa/pa-osf.h: Remove.
15827 * config/pa/pa-pro-end.h: Remove.
15828 * config/pa/t-pro: Remove.
15829 * config/ptx4.h: Remove.
15830 * config/rs6000/beos.h: Remove.
15831 * config/rs6000/kaos-ppc.h: Remove.
15832 * config/rs6000/t-beos: Remove.
15833 * config/rs6000/windiss.h: Remove.
15834 * config/sh/kaos-sh.h: Remove.
15835 * config/sol2-6.h: Remove.
15836 * config/sparc/sol26-sld.h: Remove.
15837 * config/sparc/sysv4-only.h: Remove.
15838 * config/vax/bsd.h: Remove.
15839 * config/vax/t-memfuncs: Remove.
15840 * config/vax/ultrix.h: Remove.
15841 * config/vax/vaxv.h: Remove.
15842 * config/windiss.h: Remove.
15843
f3e10a2b 158442008-06-06 Uros Bizjak <ubizjak@gmail.com>
88057dc8
UB
15845
15846 PR rtl-optimization/36438
15847 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
15848 for vector shifts with constant scalar shift operands.
15849
d0ae31b0
SM
158502008-06-06 Sandip Matte <sandip@rmicorp.com>
15851
15852 * doc/invoke.texi: Document -march=xlr.
15853 * config/mips/xlr.md: New file.
15854 * config/mips/mips.md: Include it.
15855 (cpu): Add "xlr".
15856 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
15857 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
15858 (mips_rtx_cost_data): Likewise.
15859
619fe064
NF
158602008-06-06 Nathan Froyd <froydnj@codesourcery.com>
15861
15862 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
15863 PRE_INC and PRE_DEC cases.
15864
67339062
JJ
158652008-06-06 Jakub Jelinek <jakub@redhat.com>
15866
c6eb958c
JJ
15867 PR rtl-optimization/36419
15868 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
15869 the emitting jump insn.
15870
67339062
JJ
15871 PR target/36362
15872 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
15873 is not bool, boolify the whole *expr_p and convert to the desired type.
15874
a68ab351
JJ
158752008-06-06 Jakub Jelinek <jakub@redhat.com>
15876
88057dc8 15877 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
a68ab351
JJ
15878 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
15879 Add omp_private_outer_ref hook, add another argument to
15880 omp_clause_default_ctor hook.
15881 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
15882 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
15883 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
15884 hook_tree_tree_tree_tree_null.
15885 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
15886 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
15887 * hooks.c (hook_tree_tree_tree_tree_null): New function.
15888 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
15889 * tree.def (OMP_TASK): New tree code.
15890 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
15891 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
15892 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
15893 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
15894 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
15895 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
15896 OMP_CLAUSE_COLLAPSE_EXPR): Define.
15897 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
15898 (OMP_DIRECTIVE_P): Add OMP_TASK.
15899 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
15900 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
15901 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
15902 and OMP_CLAUSE_UNTIED entries.
15903 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
15904 num_ops to 2.
15905 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
15906 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
15907 * tree-pretty-print.c (dump_omp_clause): Handle
15908 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
15909 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
15910 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
15911 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
15912 warning about unsigned iterators. Change decl/init/cond/incr
15913 arguments to TREE_VECs, check arguments for all collapsed loops.
15914 (c_finish_omp_taskwait): New function.
15915 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
15916 ws_clauses.
15917 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
15918 default_function_array_conversion on init. Add par_clauses argument.
15919 If decl is present in parallel's lastprivate clause, change it to
15920 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
15921 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
15922 collapse count in clauses.
15923 (c_parser_omp_for, c_parser_omp_parallel): Adjust
15924 c_parser_omp_for_loop callers.
15925 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
15926 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
15927 (c_parser_omp_clause_name): Handle collapse and untied clauses.
15928 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
15929 functions.
15930 (c_parser_omp_clause_schedule): Handle schedule(auto).
15931 Include correct location in the error message.
15932 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
15933 and PRAGMA_OMP_CLAUSE_UNTIED.
15934 (OMP_TASK_CLAUSE_MASK): Define.
15935 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
15936 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
15937 * tree-nested.c (convert_nonlocal_omp_clauses,
15938 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
15939 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
15940 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
15941 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
15942 OMP_CLAUSE_DECL.
15943 (conver_nonlocal_reference, convert_local_reference,
15944 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
15945 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
15946 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
15947 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
15948 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
15949 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
15950 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
15951 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
15952 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
15953 OMP_CLAUSE_UNTIED.
15954 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
15955 * c-common.h (c_finish_omp_taskwait): New prototype.
15956 * gimple-low.c (lower_stmt): Handle OMP_TASK.
15957 * tree-parloops.c (create_parallel_loop): Create 1 entry
15958 vectors for OMP_FOR_{INIT,COND,INCR}.
15959 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
15960 (make_edges): Handle OMP_TASK.
15961 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
15962 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
15963 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
15964 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
15965 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
15966 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
15967 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
15968 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
15969 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
15970 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
15971 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
15972 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
15973 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
15974 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
15975 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
15976 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
15977 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
15978 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
15979 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
15980 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
15981 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
15982 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
15983 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
15984 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
15985 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
15986 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
15987 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
15988 original iterator is present in lastprivate clause or if
15989 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
15990 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
15991 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
15992 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
15993 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
15994 if it is set, lookup var in outer contexts too. Handle
15995 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
15996 to be implicitly determined firstprivate for task regions.
15997 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
15998 if it is set, lookup var in outer contexts too. Set
15999 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
16000 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
16001 OMP_CLAUSE_UNTIED. Take region_type as last argument
16002 instead of in_parallel and in_combined_parallel.
16003 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
16004 Adjust callers.
16005 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
88057dc8 16006 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
a68ab351
JJ
16007 (new_omp_context): Set default_kind to
16008 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
16009 (omp_region_type): New enum.
16010 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
16011 fields, add region_type.
16012 (new_omp_context): Take region_type as argument instead of is_parallel
16013 and is_combined_parallel.
16014 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
16015 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
16016 ctx->is_combined_parallel checks.
16017 (gimplify_omp_task): New function.
16018 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
16019 OMP_CLAUSE_UNTIED.
16020 * omp-low.c (extract_omp_for_data): Use schedule(static)
16021 for schedule(auto). Handle pointer and unsigned iterators.
16022 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
16023 Add loops argument. Extract data for collapsed OMP_FOR loops.
16024 (expand_parallel_call): Assert sched_kind isn't auto,
16025 map runtime schedule to index 3.
16026 (struct omp_for_data_loop): New type.
16027 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
16028 Add loop, loops, collapse and iter_type fields.
16029 (workshare_safe_to_combine_p): Disallow combined for if
16030 iter_type is unsigned long long. Don't combine collapse > 1 loops
16031 unless all bounds and steps are constant. Adjust extract_omp_for_data
16032 caller.
16033 (expand_omp_for_generic): Handle pointer, unsigned and long long
16034 iterators. Handle collapsed OMP_FOR loops. Adjust
16035 for struct omp_for_data changes. If libgomp function doesn't return
16036 boolean_type_node, add comparison of the return value with 0.
16037 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
16038 pointer, unsigned and long long iterators. Adjust for struct
16039 omp_for_data changes.
16040 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
16041 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
16042 unsigned long long. Allocate loops array, pass it to
16043 extract_omp_for_data. For collapse > 1 loops use always
16044 expand_omp_for_generic.
16045 (omp_context): Add sfield_map and srecord_type fields.
16046 (is_task_ctx, lookup_sfield): New functions.
16047 (use_pointer_for_field): Use is_task_ctx helper. Change first
16048 argument's type from const_tree to tree. Clarify comment.
16049 In OMP_TASK disallow copy-in/out sharing.
16050 (build_sender_ref): Call lookup_sfield instead of lookup_field.
16051 (install_var_field): Add mask argument. Populate both record_type
16052 and srecord_type if needed.
16053 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
16054 in srecord_type.
16055 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
16056 and DECL_FIELD_OFFSET.
16057 (scan_sharing_clauses): Adjust install_var_field callers. For
16058 firstprivate clauses on explicit tasks allocate the var by value in
16059 record_type unconditionally, rather than by reference.
16060 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
16061 Use is_taskreg_ctx instead of is_parallel_ctx.
16062 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
16063 (create_omp_child_function_name): Add task_copy argument, use
16064 *_omp_cpyfn* names if it is true.
16065 (create_omp_child_function): Add task_copy argument, if true create
16066 *_omp_cpyfn* helper function.
16067 (scan_omp_parallel): Adjust create_omp_child_function callers.
16068 Rename parallel_nesting_level to taskreg_nesting_level.
16069 (scan_omp_task): New function.
16070 (lower_rec_input_clauses): Don't run constructors for firstprivate
22129589 16071 explicit task vars which are initialized by *_omp_cpyfn*.
a68ab351
JJ
16072 Pass outer var ref to omp_clause_default_ctor hook if
16073 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
16074 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
16075 OMP_CLAUSE_REDUCTION_INIT.
16076 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
16077 avoid duplicate setting of fields. Handle
16078 OMP_CLAUSE_PRIVATE_OUTER_REF.
16079 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
16080 copy-out if TREE_READONLY, only copy-in.
16081 (expand_task_copyfn): New function.
16082 (expand_task_call): New function.
16083 (struct omp_taskcopy_context): New type.
16084 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
16085 New functions.
16086 (lower_omp_parallel): Rename to...
16087 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
16088 Call create_task_copyfn if srecord_type is needed. Adjust
16089 sender_decl type.
16090 (task_shared_vars): New variable.
16091 (check_omp_nesting_restrictions): Warn if work-sharing,
16092 barrier, master or ordered region is closely nested inside OMP_TASK.
16093 Add warnings for barrier if closely nested inside of work-sharing,
16094 ordered, or master region.
16095 (scan_omp_1): Call check_omp_nesting_restrictions even for
16096 GOMP_barrier calls. Rename parallel_nesting_level to
16097 taskreg_nesting_level. Handle OMP_TASK.
16098 (lower_lastprivate_clauses): Even if some lastprivate is found on a
16099 work-sharing construct, continue looking for them on parent parallel
16100 construct.
16101 (lower_omp_for_lastprivate): Add lastprivate clauses
16102 to the beginning of dlist rather than end. Adjust for struct
16103 omp_for_data changes.
16104 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
16105 not after it. Handle collapsed OMP_FOR loops, adjust for
88057dc8 16106 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
a68ab351
JJ
16107 (get_ws_args_for): Adjust extract_omp_for_data caller.
16108 (scan_omp_for): Handle collapsed OMP_FOR
16109 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
16110 (lower_omp_single_simple): If libgomp function doesn't return
16111 boolean_type_node, add comparison of the return value with 0.
16112 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
16113 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
16114 (parallel_nesting_level): Rename to...
16115 (taskreg_nesting_level): ... this.
16116 (is_taskreg_ctx): New function.
16117 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
16118 of is_parallel_ctx.
16119 (execute_lower_omp): Rename parallel_nesting_level to
16120 taskreg_nesting_level.
16121 (expand_omp_parallel): Rename to...
16122 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
16123 Call omp_task_call for OMP_TASK regions.
16124 (expand_omp): Adjust caller, handle OMP_TASK.
16125 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
16126
16127 * bitmap.c (bitmap_default_obstack_depth): New variable.
16128 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
16129 if argument is NULL and bitmap_default_obstack is already initialized.
16130 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
16131 at the end.
16132 * matrix-reorg.c (matrix_reorg): Likewise.
16133
c4fe74e0
UB
161342008-06-06 Uros Bizjak <ubizjak@gmail.com>
16135
16136 * config/i386/i386.md (*indirect_jump): Macroize using P
16137 mode iterator. Remove !TARGET_64BIT from insn constraints.
16138 (*tablejump_1): Ditto.
16139 (*indirect_jump_rex64): Remove insn pattern.
16140 (*tablejump_1_rex64): Ditto.
16141 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
16142 and eh_return_si insn patterns.
16143
9f09b13f
RG
161442008-06-06 Richard Guenther <rguenther@suse.de>
16145
16146 * tree-ssa-structalias.c (merge_smts_into): Remove.
16147 (find_what_p_points_to): Do not bother to compute the
16148 points-to set for pt_anything pointers.
16149 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
16150 for pt_anything pointers is ok.
16151
9fbe48c0
JH
161522008-06-06 Jan Hubicka <jh@suse.cz>
16153
16154 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
16155
fa10beec
RW
161562008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16157
16158 * cgraph.c: Fix typos in comments.
16159 (cgraph_availability_names): Fix string typo.
16160 * fold-const.c: Fix typos in comments.
16161 (fold_binary): Fix typo in warning.
16162 * genautomata.c: Fix typos in comments.
16163 (check_presence_pattern_sets): Fix typo in local variable.
16164 (output_description): Fix typo in output.
16165 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
16166 * hwint.h: Likewise.
16167 * matrix-reorg.c (check_allocation_function): Likewise.
16168 * omega.c (smooth_weird_equations): Likewise.
16169 * auto-inc-dec.c: Fix typos in comments.
16170 * bb-reorder.c: Likewise.
16171 * builtins.c: Likewise.
16172 * c-common.c: Likewise.
16173 * c-cppbuiltin.c: Likewise.
16174 * c-parser.c: Likewise.
16175 * c-pretty-print.c: Likewise.
16176 * cfgcleanup.c: Likewise.
16177 * cfgexpand.c: Likewise.
16178 * cfghooks.c: Likewise.
16179 * cfglayout.c: Likewise.
16180 * cfgloopmanip.c: Likewise.
16181 * cgraphunit.c: Likewise.
16182 * coverage.c: Likewise.
16183 * dbxout.c: Likewise.
16184 * df-byte-scan.c: Likewise.
16185 * df-core.c: Likewise.
16186 * df-problems.c: Likewise.
16187 * df-scan.c: Likewise.
16188 * dfp.c: Likewise.
16189 * dominance.c: Likewise.
16190 * domwalk.c: Likewise.
16191 * dse.c: Likewise.
16192 * dwarf2out.c: Likewise.
16193 * emit-rtl.c: Likewise.
16194 * et-forest.c: Likewise.
16195 * function.c: Likewise.
16196 * function.h: Likewise.
16197 * gcc.c: Likewise.
16198 * gcov-io.c: Likewise.
16199 * gcov.c: Likewise.
16200 * gcse.c: Likewise.
16201 * genattrtab.c: Likewise.
16202 * ggc-page.c: Likewise.
16203 * gimplify.c: Likewise.
16204 * gthr-lynx.h: Likewise.
16205 * haifa-sched.c: Likewise.
16206 * ipa-cp.c: Likewise.
16207 * ipa-inline.c: Likewise.
16208 * ipa-prop.h: Likewise.
16209 * ipa-pure-const.c: Likewise.
16210 * ipa-struct-reorg.c: Likewise.
16211 * ipa-struct-reorg.h: Likewise.
16212 * ipa-type-escape.c: Likewise.
16213 * ipa.c: Likewise.
16214 * loop-doloop.c: Likewise.
16215 * mips-tfile.c: Likewise.
16216 * mkmap-flat.awk: Likewise.
16217 * mkmap-symver.awk: Likewise.
16218 * modulo-sched.c: Likewise.
16219 * omp-low.c: Likewise.
16220 * optabs.c: Likewise.
16221 * optabs.h: Likewise.
16222 * opts.c: Likewise.
16223 * passes.c: Likewise.
16224 * postreload-gcse.c: Likewise.
16225 * postreload.c: Likewise.
16226 * predict.c: Likewise.
16227 * pretty-print.h: Likewise.
16228 * profile.c: Likewise.
16229 * protoize.c: Likewise.
16230 * ra-conflict.c: Likewise.
16231 * real.c: Likewise.
16232 * recog.c: Likewise.
16233 * regclass.c: Likewise.
16234 * regs.h: Likewise.
16235 * reload.c: Likewise.
16236 * rtl-error.c: Likewise.
16237 * rtlanal.c: Likewise.
16238 * scan.h: Likewise.
16239 * sched-rgn.c: Likewise.
16240 * see.c: Likewise.
16241 * stmt.c: Likewise.
16242 * target.h: Likewise.
16243 * tree-dfa.c: Likewise.
16244 * tree-eh.c: Likewise.
16245 * tree-flow-inline.h: Likewise.
16246 * tree-inline.c: Likewise.
16247 * tree-into-ssa.c: Likewise.
16248 * tree-loop-distribution.c: Likewise.
16249 * tree-nested.c: Likewise.
16250 * tree-parloops.c: Likewise.
16251 * tree-pass.h: Likewise.
16252 * tree-pretty-print.c: Likewise.
16253 * tree-profile.c: Likewise.
16254 * tree-scalar-evolution.c: Likewise.
16255 * tree-sra.c: Likewise.
16256 * tree-ssa-alias-warnings.c: Likewise.
16257 * tree-ssa-ccp.c: Likewise.
16258 * tree-ssa-coalesce.c: Likewise.
16259 * tree-ssa-dom.c: Likewise.
16260 * tree-ssa-dse.c: Likewise.
16261 * tree-ssa-forwprop.c: Likewise.
16262 * tree-ssa-live.c: Likewise.
16263 * tree-ssa-live.h: Likewise.
16264 * tree-ssa-loop-im.c: Likewise.
16265 * tree-ssa-loop-ivopts.c: Likewise.
16266 * tree-ssa-loop-niter.c: Likewise.
16267 * tree-ssa-loop-prefetch.c: Likewise.
16268 * tree-ssa-phiopt.c: Likewise.
16269 * tree-ssa-phiprop.c: Likewise.
16270 * tree-ssa-sccvn.c: Likewise.
16271 * tree-ssa-ter.c: Likewise.
16272 * tree-ssa-threadupdate.c: Likewise.
16273 * tree-ssa.c: Likewise.
16274 * tree-vect-analyze.c: Likewise.
16275 * tree-vect-transform.c: Likewise.
16276 * tree-vectorizer.c: Likewise.
16277 * tree-vn.c: Likewise.
16278 * tree-vrp.c: Likewise.
16279 * tree.c: Likewise.
16280 * tree.def: Likewise.
16281 * tree.h: Likewise.
16282 * unwind-dw2-fde.c: Likewise.
16283 * unwind.inc: Likewise.
16284 * value-prof.c: Likewise.
16285 * vmsdbgout.c: Likewise.
16286
6bf2f78a
DE
162872008-06-05 David Edelsohn <edelsohn@gnu.org>
16288
16289 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
16290 always place FP constants in the TOC for TARGET_POWERPC64.
16291 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
16292
4f011e1e
JM
162932008-06-05 Joseph Myers <joseph@codesourcery.com>
16294
16295 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
16296 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
16297 enable for TARGET_E500_DOUBLE.
16298 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
16299 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
16300 floating-point modes like integer modes for E500 double.
16301 (rs6000_legitimate_offset_address_p): Likewise.
16302 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
16303 addressing for DDmode for E500 double.
16304 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
16305 modes as using 64-bits of registers for E500 double.
16306 (spe_build_register_parallel): Do not handle DDmode or TDmode.
16307 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
16308 specially for E500 double.
16309 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
16310 TDmode for E500 double.
16311 (rs6000_gimplify_va_arg): Only handle SDmode in registers
16312 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
16313 (rs6000_split_multireg_move): Do not handle TDmode specially for
16314 E500 double.
16315 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
16316 using 64-bit registers for E500 double.
16317 (emit_frame_save): Do not handle DDmode specially for E500 double.
16318 (gen_frame_mem_offset): Likewise.
16319 (rs6000_function_value): Do not call spe_build_register_parallel
16320 for DDmode or TDmode.
16321 (rs6000_libcall_value): Likewise.
16322 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
16323 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
16324 for E500 double.
16325
bd7415db
L
163262008-06-04 H.J. Lu <hongjiu.lu@intel.com>
16327
16328 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
16329 in comments.
16330
9e8c2a98
JG
163312008-06-04 Junjie Gu <jgu@tensilica.com>
16332
16333 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
16334 comparison for frame pointers.
16335
28734c39
AH
163362008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
16337
16338 PR target/27386
88057dc8 16339 * config/avr/avr.h (PUSH_ROUNDING): Remove.
28734c39 16340
515e442a
AH
163412008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
16342
16343 PR target/30243
16344 * builtins.c (expand_builtin_signbit): Don't take lowpart when
22129589 16345 register is already smaller or equal to required mode.
515e442a 16346
c2699190
XDL
163472008-06-04 Xinliang David Li <davidxl@google.com>
16348
22129589 16349 * tree-call-cdce.c: New file.
c2699190
XDL
16350 (cond_dead_built_in_calls): New static variable.
16351 (input_domain): New struct.
16352 (check_pow): New function.
16353 (check_builtin_call): Ditto.
16354 (check_target_format): Ditto.
16355 (is_call_dce_candidate): Ditto.
16356 (gen_one_condition): Ditto.
16357 (gen_conditions_for_domain): Ditto.
16358 (get_domain): Ditto.
16359 (gen_conditions_for_pow_cst_base): Ditto.
16360 (gen_conditions_for_pow_int_base): Ditto.
16361 (gen_conditions_for_pow): Ditto.
16362 (get_no_error_domain): Ditto.
16363 (gen_shrink_wrap_conditions): Ditto.
16364 (shrink_wrap_one_built_in_call): Ditto.
16365 (shink_wrap_conditional_dead_built_in_calls): Ditto.
16366 (tree_call_cdce): Ditto.
16367 (gate_call_cdce): Ditto.
16368 (pass_call_cdce): New gimple pass.
16369 * passes.c: (init_optimization_passes): New pass.
16370 * tree-pass.h: New pass declaration.
16371 * opts.c (decode_options): New flag setting.
16372 * common.opt: Add -ftree-builtin-call-dce flag.
16373 * Makefile.in: Add new source file.
16374 * tempvar.def: New tv_id.
16375 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
16376
7946578b
RG
163772008-06-04 Richard Guenther <rguenther@suse.de>
16378
88057dc8 16379 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
7946578b
RG
16380 (is_call_clobbered): Always check var_ann->call_clobbered.
16381 (mark_call_clobbered): Always set var_ann->call_clobbered.
16382 (clear_call_clobbered): Always clear var_ann->call_clobbered.
16383 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
16384 (reset_alias_info): Clear call clobbering info on MTAGs and
16385 globals as well.
16386 (set_pt_anything): Set pt_global_mem.
16387 (create_tag_raw): Adjust comment.
16388 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
16389
884316ff 163902008-06-04 Joseph Myers <joseph@codesourcery.com>
88057dc8 16391 Maxim Kuvyrkov <maxim@codesourcery.com>
884316ff
JM
16392
16393 * config/m68k/m68k.opt (mxgot): New option.
16394 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
16395 (m68k_output_addr_const_extra): New.
16396 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
16397 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
16398 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
16399 * doc/invoke.texi (M680x0 Options): Document -mxgot.
16400
0e19bf42
RG
164012008-06-04 Richard Guenther <rguenther@suse.de>
16402
16403 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
16404 negative or non-representable offsets.
16405
999d3194
L
164062008-06-03 H.J. Lu <hongjiu.lu@intel.com>
16407
88057dc8 16408 * config/i386/i386.c (ix86_gen_leave): New.
999d3194
L
16409 (ix86_gen_pop1): Likewise.
16410 (ix86_gen_add3): Likewise.
16411 (ix86_gen_sub3): Likewise.
16412 (ix86_gen_sub3_carry): Likewise.
16413 (ix86_gen_one_cmpl2): Likewise.
16414 (ix86_gen_monitor): Likewise.
16415 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
16416 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
16417 ix86_gen_one_cmpl2 and ix86_gen_monitor.
16418 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
16419 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
16420 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
16421 (ix86_expand_epilogue): Updated.
16422 (print_operand): Handle integer register operand for 'z'.
16423 (ix86_expand_strlensi_unroll_1): Likewise.
16424 (ix86_expand_strlen): Likewise.
16425 (ix86_expand_builtin): Likewise.
16426 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
16427 mov{q}/mov{l} and add{q}/add{l}.
16428
90b48492
KT
164292008-06-03 Kai Tietz <kai.tietz@onevision.com>
16430
d1abda32
KT
16431 * config/i386/i386.md (P): New mode iterator.
16432 (SFmode push_operand splitter): Macroize DImode and SImode pushes
16433 using P mode iterator.
458e816d
KT
16434 (DFmode push_operand splitter): Ditto.
16435 (XFmode push_operand splitter): Ditto.
d1abda32
KT
16436 (DFmode float_extend SFmode push_operand splitter): Ditto.
16437 (XFmode float_extend SFmode push_operand splitter): Do not generate
458e816d
KT
16438 SImode pushes for 64bit target. Macroize Dimode and SImode
16439 pushes using P mode iterator.
16440 (XFmode float_extend DFmode push_operand splitter): Ditto.
90b48492 16441
8a762fcb
KT
164422008-06-03 Kai Tietz <kai.tietz@onevision.com>
16443
16444 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
88057dc8 16445 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
8a762fcb
KT
16446 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
16447 return type to int.
16448 (ix86_call_abi_override): Remove check for call_used_regs.
16449
db736800
RG
164502008-06-03 Richard Guenther <rguenther@suse.de>
16451
16452 * tree-ssa-structalias.c (find_func_aliases): Add constraints
16453 for the lhs of calls if the return type contains pointers.
16454
7c800926
KT
164552008-06-03 Kai Tietz <kai.tietz@onevision.com>
16456
16457 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
16458 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
88057dc8 16459 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
7c800926
KT
16460 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
16461 of cfun and DEFAULT_ABI to deceide abi mode.
16462 (DEFAULT_ABI): New.
16463 (REG_PARM_STACK_SPACE): Removed.
16464 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
16465 (STACK_BOUNDARY): Use default target to deceide stack boundary.
16466 * config/i386/i386-protos.h (ix86_cfun_abi): New.
16467 (ix86_function_abi): Likewise.
16468 (ix86_function_type_abi): Likewise.
16469 (ix86_call_abi_override): Likewise.
16470 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
16471 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
16472 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
16473 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
16474 specific defines.
16475 (X86_64_REGPARM_MAX): New.
16476 (X86_64_SSE_REGPARM_MAX): New.
16477 (X64_REGPARM_MAX): New.
16478 (X64_SSE_REGPARM_MAX): New.
16479 (X86_32_REGPARM_MAX): New.
16480 (X86_32_SSE_REGPARM_MAX): New.
16481 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
16482 (ix86_function_regparm): Handle user calling abi.
16483 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
16484 by DEFAULT_ABI versus SYSV_ABI check.
16485 (ix86_reg_parm_stack_space): New.
16486 (ix86_function_type_abi): New.
16487 (ix86_call_abi_override): New.
16488 (ix86_function_abi): New.
16489 (ix86_cfun_abi): New.
16490 (init_cumulative_args): Call abi specific initialization.
16491 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
16492 (function_arg_64): Extend SSE_REGPARM_MAX check.
16493 (function_arg (): Remove TARGET_64BIT_MS_ABI.
16494 (ix86_pass_by_reference): Likewise.
16495 (ix86_function_value_regno_p): Likewise.
16496 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
16497 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
16498 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
16499 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
16500 (setup_incoming_varargs_64): Adjust regparm for call abi.
16501 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
16502 (ix86_va_start): Likewise.
16503 (ix86_gimplify_va_arg): Likewise.
16504 (ix86_expand_prologue): Likewise.
16505 (output_pic_addr_const): Likewise.
16506 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
16507 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
16508 (x86_output_mi_thunk): Likewise.
16509 (x86_function_profiler): Likewise.
16510 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
16511 (SYSV_ABI, MS_ABI): New constants.
16512 (DEFAULT_ABI): New.
16513 (init_regs): Add prototype of function in regclass.c file.
16514 (OVERRIDE_ABI_FORMAT): New.
16515 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
16516 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
16517 (OUTGOING_REG_PARM_STACK_SPACE): New.
16518 (ix86_reg_parm_stack_space): New prototype.
16519 (CUMULATIVE_ARGS): Add call_abi member.
16520 (machine_function): Add call_abi member.
88057dc8
UB
16521 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
16522 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
7c800926 16523
22129589 165242008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
1bf29643
AH
16525
16526 PR target/34879
16527 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
16528 (avr_builtin_setjmp_frame_value): New function.
16529 * config/avr/avr.md (nonlocal_goto_receiver): Define.
16530 (nonlocal_goto): Define.
16531
de9f679d
RS
165322008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
16533
16534 * config/mips/mips.c (mips_emit_loadgp): Return early if
16535 there is nothing do to, otherwise emit a blockage if
16536 !TARGET_EXPLICIT_RELOCS || crtl->profile.
16537 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
16538
236ec2d7
RW
165392008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16540
16541 * configure.ac: Drop unneeded backslash ending up in config.in.
16542 * acinclude.m4: Likewise.
16543 * config.in: Regenerate.
16544
3250d724
JH
165452008-05-26 Jan Hubicka <jh@suse.cz>
16546
16547 * predict.c (maybe_hot_frequency_p): Break out of...
16548 (maybe_hot_bb_p): ... here.
16549 (maybe_hot_edge_p): New.
16550 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
16551 * basic-block.h (maybe_hot_edge_p): Declare.
16552
69002843
UB
165532008-05-31 Uros Bizjak <ubizjak@gmail.com>
16554
16555 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
16556 (*cmpfp_<mode>_cc): Ditto.
16557 (*fp_jcc_8<mode>_387): Ditto.
16558 (*fop_<MODEF:mode>_2_i387): Ditto.
16559 (*fop_<MODEF:mode>_3_i387): Ditto.
16560 (*fop_xf_2_i387): Ditto.
16561 (*fop_xf_3_i387): Ditto.
16562
5f9e56b3
TB
165632008-06-02 Tomas Bily <tbily@suse.cz>
16564
69002843 16565 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5f9e56b3 16566
fa21a761
RS
165672008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
16568
16569 * config/mips/mips.c (mips_valid_offset_p): New function.
16570 (mips_valid_lo_sum_p): Likewise.
16571 (mips_classify_address): Use them.
16572 (mips_force_address): New function.
16573 (mips_legitimize_address): Use it.
16574 * config/mips/mips.md (MOVE128): New mode iterator.
16575 (movtf): Require TARGET_64BIT. Remove empty strings.
16576 (*movtf_internal): Rename to...
16577 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
16578 of "R" and use {,fp}{load,store} attributes instead of "multi".
16579 Use a separate define_split.
16580 (*movtf_mips16): New pattern.
16581
2f7e2abb
RS
165822008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
16583
16584 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
16585 * config/mips/mips.c (mips_expand_before_return): New function.
16586 (mips_expand_epilogue): Call it.
16587 * config/mips/mips.md (return): Turn into a define_expand.
16588 (*return): New insn.
16589
c41c1387
RS
165902008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
16591
16592 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
16593 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
16594 functions. Do not emit uses and clobbers of CONCATs; individually
16595 use and clobber their operands.
16596 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
16597 gen_clobber, emit_use and gen_use.
16598 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
16599 (expand_builtin_return): Likewise.
16600 * cfgbuild.c (count_basic_blocks): Likewise.
16601 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
16602 * explow.c (emit_stack_restore): Likewise.
16603 * expmed.c (extract_bit_field_1): Likewise.
16604 * expr.c (convert_move, emit_move_complex_parts): Likewise.
16605 (emit_move_multi_word, store_constructor): Likewise.
16606 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
16607 (thread_prologue_and_epilogue_insns): Likewise.
16608 * lower-subreg.c (resolve_simple_move): Likewise.
16609 * optabs.c (widen_operand, expand_binop): Likewise.
16610 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
16611 * reload.c (find_reloads): Likewise.
16612 * reload1.c (eliminate_regs_in_insn): Likewise.
16613 * stmt.c (expand_nl_goto_receiver): Likewise.
16614 * config/alpha/alpha.md (builtin_longjmp): Likewise.
16615 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
16616 * config/arm/arm.c (arm_load_pic_register): Likewise.
16617 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
16618 * config/arm/arm.md (untyped_return): Likewise.
16619 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
16620 * config/avr/avr.c (expand_prologue): Likewise.
16621 * config/bfin/bfin.c (do_unlink): Likewise.
16622 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
16623 * config/cris/cris.c (cris_expand_prologue): Likewise.
16624 * config/darwin.c (machopic_indirect_data_reference): Likewise.
16625 (machopic_legitimize_pic_address): Likewise.
16626 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
16627 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
16628 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
16629 (ix86_expand_convert_uns_didf_sse): Likewise.
16630 (ix86_expand_vector_init_general): Likewise.
16631 * config/ia64/ia64.md (eh_epilogue): Likewise.
16632 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
16633 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
16634 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
16635 (config/iq2000/iq2000.c): Likewise.
16636 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
16637 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
16638 (builtin_longjmp): Likewise.
16639 * config/mn10300/mn10300.md (call, call_value): Likewise.
16640 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
16641 * config/pdp11/pdp11.md (abshi2): Likewise.
16642 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
16643 * config/s390/s390.c (s390_emit_prologue): Likewise.
16644 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
16645 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
16646 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
16647 * config/sh/sh.c (prepare_move_operands): Likewise.
16648 (output_stack_adjust, sh_expand_epilogue): Likewise.
16649 (sh_set_return_address, sh_expand_t_scc): Likewise.
16650 * config/sparc/sparc.c (load_pic_register): Likewise.
16651 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
16652 * config/spu/spu.c (spu_expand_epilogue): Likewise.
16653 * config/v850/v850.c (expand_epilogue): Likewise.
16654
794cb45e
AS
166552008-05-31 Anatoly Sokolov <aesok@post.ru>
16656
16657 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
16658 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
16659 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
22129589
AS
16660 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
16661 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
794cb45e 16662 stack pointer register.
22129589 16663 (output_movhi): Remove code for interrupt specific writing to the
794cb45e
AS
16664 stack pointer register.
16665
39f8a3b0
RG
166662008-05-31 Richard Guenther <rguenther@suse.de>
16667
16668 PR tree-optimization/34244
16669 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
16670 (tree_expr_nonzero_warnv_p): Likewise.
16671 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
16672 ssa_name_nonnegative_p.
16673 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
16674 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
16675 not tree_expr_nonzero_warnv_p.
16676
16677 PR tree-optimization/36262
16678 Revert
16679 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
16680
69002843
UB
16681 PR tree-optimization/34244
16682 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
16683 (record_numbers_of_iterations): New function.
16684 (execute_vrp): Cache the numbers of iterations of loops.
16685 * tree-scalar-evolution.c (scev_reset_except_niters):
16686 New function.
16687 (scev_reset): Use scev_reset_except_niters.
16688 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
39f8a3b0 16689
2643f14e
BS
166902008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
16691
16692 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
16693 __WORKAROUND_RETS when appropriate.
16694
ca3a2165
UB
166952008-05-31 Uros Bizjak <ubizjak@gmail.com>
16696
16697 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
16698 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
16699 mode iterator.
16700 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
16701 *fop_df_comm_sse insn patterns using MODEF mode iterator.
16702 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
16703 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
16704 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
16705 *fop_df_1_mixed insn patterns using MODEF mode iterator.
16706 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
16707 *fop_df_1_sse insn patterns using MODEF mode iterator.
16708 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
16709 *fop_df_1_i387 insn patterns using MODEF mode iterator.
16710 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
16711 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
16712 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
16713 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
16714 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
16715 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
16716 (*fop_xf_4_i387): Use <MODE> for mode attribute.
16717 (*fop_xf_5_i387): Ditto.
16718 (*fop_xf_6_i387): Ditto.
16719
acdfeac3
RG
167202008-05-30 Richard Guenther <rguenther@suse.de>
16721
16722 * builtins.c (build_string_literal): Avoid generating
16723 a non-gimple_val result.
16724
97c3860d
DD
167252008-05-30 DJ Delorie <dj@redhat.com>
16726
16727 * exec-tool.in: Use an environment variable (private) instead of a
16728 file (shared) as a semaphore, so as to not break parallel builds.
16729
856905c2
SB
167302008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
16731
16732 * optabs.c (maybe_encapsulate_block): Remove.
16733 (emit_libcall_block): Adjust accordingly.
16734 * optabs.h (maybe_encapsulate_block): Remove prototype.
16735
16736 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
16737 Don't use maybe_encapsulate_block.
16738
0cdc04e8
SB
167392008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
16740
16741 * config/rs6000/rs6000.c (rs6000_legitimize_address,
16742 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
16743 rtx is a SYMBOL_REF before calling get_pool_constant.
16744
bfab40f8
EB
167452008-05-30 Eric Botcazou <ebotcazou@adacore.com>
16746
16747 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
16748
c100de59
DS
167492008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
16750
16751 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
16752 rather than OS names to choose INO_T_EQ definition.
16753 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
ca3a2165 16754 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
c100de59 16755
c776a6d0
DF
167562008-05-29 Daniel Franke <franke.daniel@gmail.com>
16757
16758 PR target/36348
16759 * config/darwin-f.c: New.
16760 * config/t-darwin: Added rule to build darwin-f.o.
16761 * config.gcc: Defined new variable, fortran_target_objs.
16762 (*-*-darwin*): Set fortran_target_objs.
16763 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
ca3a2165 16764 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
c776a6d0
DF
16765 * configure: Regenerated.
16766
a20007a4
L
167672008-05-29 H.J. Lu <hongjiu.lu@intel.com>
16768
16769 PR target/35771
16770 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
16771 canonical type if needed.
16772
4efa7ef9
EB
167732008-05-29 Eric Botcazou <ebotcazou@adacore.com>
16774
16775 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
16776
2f571334
RG
167772008-05-29 Richard Guenther <rguenther@suse.de>
16778
16779 PR tree-optimization/36343
16780 PR tree-optimization/36346
16781 PR tree-optimization/36347
16782 * tree-flow.h (clobber_what_p_points_to): Declare.
16783 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
16784 pointed-to variable is dereferenced is irrelevant to whether
16785 the pointer can access the pointed-to variable.
16786 (clobber_what_p_points_to): New function.
16787 * tree-ssa-alias.c (set_initial_properties): Use it.
16788 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
16789 call clobber check for NMTs.
16790
68bb68ca 167912008-05-28 Seongbae Park <seongbae.park@gmail.com>
22129589 16792
68bb68ca
SP
16793 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
16794 for printing gcov_type.
16795
b608a1bc
SP
167962008-05-28 Seongbae Park <seongbae.park@gmail.com>
16797
16798 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
16799 and the eh region information.
16800 * value-prof.c (gimple_move_stmt_histograms): New function.
16801 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
16802
77da4248
AT
168032008-05-28 Andreas Tobler <a.tobler@schweiz.org>
16804
16805 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
16806
3dfb6f59
SP
168072008-05-28 Seongbae Park <seongbae.park@gmail.com>
16808
16809 * value-prof.c (tree_ic_transform): Print counts.
16810 * tree-profile.c (tree_gen_ic_func_profiler):
ca3a2165
UB
16811 Clear __gcov_indreict_call_callee variable to avoid misattribution
16812 of the profile.
3dfb6f59 16813
e49cf927 168142008-05-28 Rafael Espíndola <espindola@google.com>
5a976da0
RAE
16815
16816 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
16817 invalid sharing.
16818
38154e4f
RG
168192008-05-28 Richard Guenther <rguenther@suse.de>
16820
16821 PR tree-optimization/36339
16822 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
16823 and clobbering code out of the loop.
16824
963fc8d0
AK
168252008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
16826
16827 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
16828 letters defined.
16829
16830 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
16831 s390_contiguous_bitmask_p, s390_symref_operand_p,
16832 s390_check_symref_alignment, s390_reload_larl_operand,
16833 s390_reload_symref_address): New functions.
16834 (s390_branch_condition_mnemonic): Support compare and branch
16835 instructions.
16836 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
16837 and 'W' constraints.
16838 (s390_secondary_reload): Add secondary reloads for unaligned
16839 symbol refs or symbol refs to floating point or QI/TI mode
16840 integer values.
16841 (legitimate_address_p): Accept symbol references as addresses.
16842 (s390_expand_insv): Use rotate and insert selected bits
16843 instruction for insv when building for z10.
16844 (print_operand_address): Handle symbol ref addresses.
ca3a2165 16845 (print_operand): Output modifier 'c' added for signed byte values.
963fc8d0
AK
16846 (s390_encode_section_info): Mark symbol refs with
16847 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
16848
16849 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
16850 (length attribute): RRF, RRR have 4 byte length.
16851 (FPALL, INTALL): New mode iterators added.
16852 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
16853 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
16854 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
16855 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
16856 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
16857 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
16858 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
16859 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
16860 instructions.
16861 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
16862 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
16863 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
16864 reload<INTALL:mode><P:mode>_toreg_z10,
16865 reload<FPALL:mode><P:mode>_tomem_z10,
16866 reload<FPALL:mode><P:mode>_toreg_z10,
16867 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
16868 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
16869 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
16870 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
16871 definition.
16872 (movmem, clrmem, cmpmem): New splitters added.
16873
16874 * config/s390/predicates.md (larl_operand): Use
16875 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
16876 SYMBOL_REF_ALIGN1_P.
16877 (s390_signed_integer_comparison,
16878 s390_unsigned_integer_comparison): New predicates.
16879
16880 * config/s390/s390-protos.h (s390_check_symref_alignment,
16881 s390_contiguous_bitmask_p, s390_reload_larl_operand,
16882 s390_reload_symref_address,
16883 s390_compare_and_branch_condition_mask): Prototypes added.
16884
16885 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
16886 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
16887 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
16888
93538e8e
AK
168892008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
16890
16891 * config/s390/s390.c (z10_cost): New cost function for z10.
ca3a2165 16892 (s390_handle_arch_option, override_options): Support -march=z10 switch.
93538e8e
AK
16893 (s390_issue_rate): Adjust issue rate for z10.
16894 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
16895 (processor_flags): Add PF_Z10.
16896 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
16897 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
16898 * gcc/config.gcc: Add z10.
16899
540f6bda
RG
169002008-05-28 Richard Guenther <rguenther@suse.de>
16901
16902 PR tree-optimization/36291
16903 * tree-flow. h (struct gimple_df): Remove var_anns member.
16904 * tree-flow-inline.h (gimple_var_anns): Remove.
16905 (var_ann): Simplify.
16906 * tree-dfa.c (create_var_ann): Simplify.
16907 (remove_referenced_var): Clear alias info from var_anns of globals.
16908 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
16909 (delete_tree_ssa): Clear alias info from var_anns of globals.
16910 Do not free var_anns.
16911 (var_ann_eq): Remove.
16912 (var_ann_hash): Likewise.
16913
33db2060
MS
169142008-05-28 Mark Shinwell <shinwell@codesourcery.com>
16915
16916 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
16917 and loongson2f entries.
16918 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
16919 * config/mips/mips.h (processor_type): Add Loongson-2E
16920 and Loongson-2F entries.
16921 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
16922 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
16923 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
16924 * doc/invoke.texi (MIPS Options): Document loongson2e
16925 and loongson2f processor names.
16926
23ac85e7
L
169272008-05-27 H.J. Lu <hongjiu.lu@intel.com>
16928
16929 PR target/35767
16930 PR target/35771
16931 * config/i386/i386.c (ix86_function_arg_boundary): Use
16932 alignment of canonical type.
16933 (ix86_expand_vector_move): Check unaligned memory access for
16934 all SSE modes.
16935
3395aa05
L
169362008-05-27 H.J. Lu <hongjiu.lu@intel.com>
16937
16938 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
16939 Moved to the front of file.
16940
3ce6e42e
XG
169412008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
16942 H.J. Lu <hongjiu.lu@intel.com>
16943
16944 * dwarf2out.c (current_fde): New.
16945 (add_cfi): Use it.
16946 (lookup_cfa:): Likewise.
16947 (dwarf2out_end_epilogue): Likewise.
16948 (dwarf2out_note_section_used): Likewise.
16949
a3299096
MM
169502008-05-27 Michael Matz <matz@suse.de>
16951
16952 PR c++/27975
16953 * c.opt (Wenum-compare): New warning option.
16954 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
16955
bd42a56b
MM
169562008-05-27 Michael Matz <matz@suse.de>
16957
16958 PR middle-end/36326
16959 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
16960 non-BLKmode types.
16961 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
16962 into memory as tail calls.
16963
a46fc136
RG
169642008-05-27 Richard Guenther <rguenther@suse.de>
16965
16966 PR tree-optimization/36339
16967 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
16968 pointers cause all addressable variables to be call clobbered.
16969
6fe2f65a
RG
169702008-05-27 Richard Guenther <rguenther@suse.de>
16971
16972 PR tree-optimization/36245
ca3a2165 16973 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
6fe2f65a 16974
fb492564
AK
169752008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
16976
16977 * config/s390/s390.md: Replace all occurences of the 'm'
16978 constraint with 'RT'.
16979
3af8e996
AK
169802008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
16981
16982 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
16983 definitions added.
16984 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
16985 "*movdi_64".
16986 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
16987 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
16988 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
16989
7ac28727
AK
169902008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
16991
16992 * reload.c: (find_reloads): Skip alternatives according to the
16993 "enabled" attribute. Constify the constraint variable.
16994 * recog.c (get_attr_enabled): Add default implementation.
16995 (extract_insn): Set the alternative_enabled_p array
16996 in the recog_data struct.
16997 (preprocess_constraints, constrain_operands): Skip
16998 alternatives according to the "enabled" attribute
16999 * recog.h (struct recog_data): New field alternative_enabled_p.
17000 (skip_alternative): New inline function.
ca3a2165 17001 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
7ac28727
AK
17002 (record_reg_classes): Skip alternative according to the
17003 "enabled" attribute.
17004
17005 * doc/md.texi: Add documention for the "enabled" attribute.
17006
a4edaf83
AK
170072008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
17008
17009 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
17010 * postreload.c (reload_cse_simplify_operands): Replace 'm'
17011 constraint with TARGET_MEM_CONSTRAINT.
17012 * recog.c (asm_operand_ok, preprocess_constraints,
17013 constrain_operands): Likewise.
17014 * regclass.c (record_reg_classes): Likewise.
ca3a2165 17015 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
a4edaf83 17016 * reload1.c (maybe_fix_stack_asms): Likewise.
ca3a2165 17017 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
a4edaf83
AK
17018 * recog.h: Adjust comment.
17019 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
ca3a2165 17020 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
a4edaf83
AK
17021 * doc/md.texi: Add a note to description of 'm' constraint.
17022 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
17023
469dfae9
EB
170242008-05-27 Eric Botcazou <ebotcazou@adacore.com>
17025
17026 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
17027 that the bitfield is of integral type before testing its precision.
17028
986a8d90 170292008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
22129589 17030 Sa Liu <saliu@de.ibm.com>
986a8d90 17031
22129589 17032 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
986a8d90
TS
17033 __modti3, __udivti3, __umodti3 and __udivmodti4.
17034 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
17035 that implement TImode mul and div functions.
17036 * config/spu/multi3.c: New. Implement __multi3.
17037 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
17038 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
17039 functions on SPU.
17040
02135bc1
SB
170412008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
17042
17043 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
17044 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
17045 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
17046 tls_sysv_suffix): New mode and mode attribute iterators.
17047 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
17048 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
17049 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
17050 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
17051 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
17052 iterators.
17053
ba977e1a
EB
170542008-05-26 Eric Botcazou <ebotcazou@adacore.com>
17055
17056 PR tree-optimization/36329
17057 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
17058 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
17059 * cgraphbuild.c (initialize_inline_failed): Use the latter
17060 macro in lieu of the former.
17061 * ipa-inline.c (cgraph_mark_inline): Likewise.
17062 (cgraph_decide_inlining_of_small_function): Likewise.
17063 (cgraph_decide_inlining): Likewise.
17064 (cgraph_decide_inlining_incrementally): Likewise.
17065
4d492420 170662008-05-26 Tristan Gingold <gingold@adacore.com>
ca3a2165 17067 Anatoly Sokolov <aesok@post.ru>
4d492420
TG
17068
17069 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
17070 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
22129589 17071 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
4d492420
TG
17072 optimization for 'avr6' architecture.
17073
319a58c6
AH
170742008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
17075
17076 PR target/34932
17077 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
17078
26fa9076
RG
170792008-05-26 Richard Guenther <rguenther@suse.de>
17080
17081 * tree-ssa-sccvn.c (expr_has_constants): Declare.
ca3a2165 17082 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
26fa9076 17083
76fe54f0
L
170842008-05-26 H.J. Lu <hongjiu.lu@intel.com>
17085
17086 PR middle-end/36253
ca3a2165 17087 * caller-save.c (insert_restore): Verify alignment of spill space.
76fe54f0 17088 (insert_save): Likewise.
76fe54f0 17089 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
76fe54f0
L
17090 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
17091 (STACK_SLOT_ALIGNMENT): Likewise.
76fe54f0
L
17092 * function.c (LOCAL_ALIGNMENT): Removed.
17093 (get_stack_local_alignment): New.
17094 (assign_stack_local): Use it. Set alignment on stack slot.
17095 (assign_stack_temp_for_type): Use get_stack_local_alignment.
76fe54f0
L
17096 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
17097 (STACK_SLOT_ALIGNMENT): New.
76fe54f0
L
17098 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
17099 stack slot in XFmode.
17100
17101 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
17102
e5f005e1
KT
171032008-05-26 Kai Tietz <kai.tietz@onevision.com>
17104
17105 PR/36321
17106 * config/i386/i386.md (allocate_stack_worker_64): Make sure
17107 argument operand in rax isn't removed.
17108
fcb4587e
RG
171092008-05-26 Richard Guenther <rguenther@suse.de>
17110
17111 PR middle-end/36300
17112 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
17113 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
17114
25497730
DF
171152008-05-26 Daniel Franke <franke.daniel@gmail.com>
17116
17117 PR bootstrap/36331
17118 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
17119
e8a25ca8
DH
171202008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
17121
17122 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
17123 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
17124
3651f7ad
EB
171252008-05-25 Eric Botcazou <ebotcazou@adacore.com>
17126
ca3a2165 17127 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3651f7ad
EB
17128 build a trampoline if we don't want one.
17129 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
17130 return zero for nested functions if we don't want a trampoline.
17131
b885a4c1
DF
171322008-05-26 Daniel Franke <franke.daniel@gmail.com>
17133
17134 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
17135
670637ee
DF
171362008-05-26 Daniel Franke <franke.daniel@gmail.com>
17137
17138 PR fortran/18428
17139 * c.opt: Removed undocumented option '-lang-fortran'.
17140 * c-common.h: Removed global variable 'lang_fortran'.
17141 * c-opts.c (c_common_handle_option): Removed code to handle
17142 option '-lang-fortran'. Updated includes.
17143 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
17144 definition of '__GFORTRAN__'.
17145 (define__GNUC__): Reimplemented to use BASEVER and
17146 cpp_define_formatted.
17147 (builtin_define_with_value_n): Removed.
17148 * c-incpath.h: Renamed to ...
17149 * incpath.h: ... this.
17150 * c-incpath.c: Renamed to ...
17151 * incpath.c: ... this. Updated includes.
17152 * fix-header.c: Updated includes.
17153 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
17154 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
17155 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
17156
4cea6c02
EB
171572008-05-25 Eric Botcazou <ebotcazou@adacore.com>
17158
17159 * tree.h: Update the table of flags used on tree nodes.
17160 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
17161 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
17162 (FORCED_LABEL): Add access check.
17163 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
17164 (ASM_INPUT_P): Likewise.
17165 (ASM_VOLATILE_P): Likewise.
17166 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
17167 (OMP_SECTION_LAST): Access private_flag directly.
17168 (OMP_RETURN_NOWAIT): Likewise.
17169 (OMP_PARALLEL_COMBINED): Likewise.
17170 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
17171 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
17172 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
17173 deprecated_flag directly.
17174
3bffa195
L
171752008-05-25 H.J. Lu <hongjiu.lu@intel.com>
17176
17177 * final.c (frame_pointer_needed): Removed.
17178 * flags.h (frame_pointer_needed): Likewise.
17179
17180 * function.h (rtl_data): Add frame_pointer_needed.
17181 (frame_pointer_needed): New.
17182
93fea8d3
AL
171832008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
17184
17185 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
17186
29470771
SB
171872008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
17188
17189 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
17190 SRC is a REG.
17191
dd25a747
AM
171922008-05-25 Alan Modra <amodra@bigpond.net.au>
17193
17194 * c-common.c (strip_array_types): Move function to..
17195 * tree.c: ..here.
17196 (get_inner_array_type): Delete.
17197 * c-common.h (strip_array_types): Move declaration to..
17198 * tree.h: ..here.
17199 (get_inner_array_type): Delete.
17200 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
17201 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
17202 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
17203 * config/pa/pa.c (emit_move_sequence): Likewise.
17204
c36c9821
L
172052008-05-24 H.J. Lu <hongjiu.lu@intel.com>
17206
17207 * config/i386/i386.md (*sse_prologue_save_insn): Set length
17208 attribute to 34.
17209
88280cf9
AH
172102008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
17211
17212 * function.c: Include target hook for nonlocal_goto frame value.
17213
7c88f67a
RG
172142008-05-24 Richard Guenther <rguenther@suse.de>
17215
ca3a2165
UB
17216 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
17217 variable can be only accessed through a pointer or a union.
7c88f67a 17218
32101f99
KG
172192008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17220
17221 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
17222 * doc/extend.texi: Likewise.
17223
80b093df
DD
172242008-05-23 DJ Delorie <dj@redhat.com>
17225
c9db440d
DD
17226 * config/m32c/jump.md (untyped_call): Add.
17227
80b093df
DD
17228 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
17229 for A24 to PSImode.
17230 (m32c_address_cost): Detail costs for indirect offsets.
17231
e49cf927 172322008-05-23 Rafael Espíndola <espindola@google.com>
fbcfcb3c
RAE
17233
17234 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
17235 if a node is a SUBREG.
17236 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
17237 is a SUBREG.
17238
007e61c2
PB
172392008-05-23 Paul Brook <paul@codesourcery.com>
17240 Carlos O'Donell <carlos@codesourcery.com>
17241
17242 * doc/extend.texi: Clarify use of __attribute__((naked)).
17243 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
17244 * target.h (gcc_target): Add allocate_stack_slots_for_args.
17245 * function.c (use_register_for_decl): Use
17246 targetm.calls.allocate_stack_slots_for_args.
ca3a2165
UB
17247 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
17248 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
007e61c2
PB
17249 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
17250
a2acd8bf
EB
172512008-05-23 Eric Botcazou <ebotcazou@adacore.com>
17252
17253 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
17254
c201998a
SM
172552008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
17256
17257 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
17258 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
17259 is only rounded once.
17260
833248d2
RG
172612008-05-23 Richard Guenther <rguenther@suse.de>
17262
ca3a2165 17263 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
833248d2 17264
922e3e33
UB
172652008-05-23 Uros Bizjak <ubizjak@gmail.com>
17266 Jakub Jelinek <jakub@redhat.com>
17267
17268 PR target/36079
17269 * configure.ac: Handle --enable-cld.
17270 * configure: Regenerated.
17271 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
17272 * config/i386/i386.h (struct machine_function): Add needs_cld field.
17273 (ix86_current_function_needs_cld): New define.
17274 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
17275 (cld): New isns pattern.
17276 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
17277 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
17278 * config/i386/i386.opt (mcld): New option.
17279 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
17280 TARGET_CLD and ix86_current_function_needs_cld.
17281 (override_options): Use -mcld by default for 32-bit code if
17282 USE_IX86_CLD.
17283
17284 * doc/install.texi (Options specification): Document --enable-cld.
17285 * doc/invoke.texi (Machine Dependent Options)
ca3a2165
UB
17286 [i386 and x86-64 Options]: Add -mcld option.
17287 (Intel 386 and AMD x86-64 Options): Document -mcld option.
922e3e33 17288
71995c2c
KT
172892008-05-23 Kai Tietz <kai.tietz@onevison.com>
17290 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
17291 (return_in_memory_64): Likewise.
17292 (return_in_memory_ms_64): Likewise.
17293
3bf5906b
KG
172942008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17295
17296 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
17297 * builtins.c (fold_builtin_fpclassify): New.
17298 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
17299 * builtins.def (BUILT_IN_FPCLASSIFY): New.
17300 * c-common.c (handle_type_generic_attribute): Adjust to accept
17301 fixed arguments before an elipsis.
17302 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
17303 * doc/extend.texi: Document __builtin_fpclassify.
17304
c63cac47
AH
173052008-05-22 Aldy Hernandez <aldyh@redhat.com>
17306
17307 * omp-low.c (gate_expand_omp_ssa): Remove.
17308 (pass_expand_omp_ssa): Remove.
17309 (gate_expand_omp): Do not check for flag_openmp_ssa.
17310 * common.opt (-fopenmp-ssa): Remove.
17311 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
17312
3217af3e
KK
173132008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
17314
17315 * config/sh/sh.opt (mfixed-range): New option.
17316 * config/sh/sh-protos.h (sh_fix_range): Declare.
17317 * config/sh/sh.c (sh_fix_range): New function.
17318 * config/sh/sh.h (sh_fixed_range_str): Declare.
17319 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
17320 is not empty.
17321 * doc/invoke.texi (SH Options): Document -mfixed-range.
17322
42b18a21
KT
173232008-05-22 Kai Tietz <kai.tietz@onevision.com>
17324
17325 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
17326 it before the redeclaration.
17327
97822902
AS
173282008-05-22 Anatoly Sokolov <aesok@post.ru>
17329
17330 * config/avr/avr.c (get_sequence_length): Add new function.
17331 (expand_prologue, expand_epilogue): Remove duplicate code.
17332
e49cf927 173332008-05-22 Rafael Espíndola <espindola@google.com>
4799e6aa
RAE
17334
17335 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
17336 sharing.
17337
9d3a9de1
L
173382008-05-22 H.J. Lu <hongjiu.lu@intel.com>
17339
17340 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
17341 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
17342
17343 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
17344 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
17345 (vect_update_misalignment_for_peel): Likewise.
17346 (vector_alignment_reachable_p): Likewise.
17347 * tree-vect-transform.c (vectorizable_load): Likewise.
17348 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
922e3e33
UB
17349 (get_vectype_for_scalar_type): Pass mode of scalar_type
17350 to UNITS_PER_SIMD_WORD.
9d3a9de1
L
17351
17352 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
17353 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
17354 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
17355 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
17356 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
17357
f8b52c2f
IR
173582008-05-22 Ira Rosen <irar@il.ibm.com>
17359
17360 PR tree-optimization/36293
17361 * tree-vect-transform.c (vect_transform_strided_load): Don't check
17362 if the first load must be skipped because of a gap.
17363
1842e4d4
RG
173642008-05-22 Richard Guenther <rguenther@suse.de>
17365
17366 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
17367 more cases of offset disambiguation that is possible if
17368 strict-aliasing rules apply.
17369 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
17370 for basic offset and type-based disambiguation.
17371
31ebe593
L
173722008-05-21 H.J. Lu <hongjiu.lu@intel.com>
17373
17374 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
17375 ix86_expand_vector_set on V16QImode for SSE4.1.
17376
c24d4112
TT
173772008-05-21 Tom Tromey <tromey@redhat.com>
17378
17379 * c.opt (Wimport): Mark as undocumented.
17380 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
17381 -Wno-import.
17382 (Warning Options): Likewise.
17383 * doc/cppopts.texi: Don't mention -Wimport.
17384
4e8d7177
SP
173852008-05-21 Sebastian Pop <sebastian.pop@amd.com>
17386
17387 PR tree-optimization/36287
17388 PR tree-optimization/36286
17389 * lambda-code.c (build_access_matrix): Do not use the loop->num
17390 for computing the number of induction variables: use the loop depth
17391 instead.
17392
6110c44a
KT
173932008-05-21 Kai Tietz <kai.tietz@onevision.com>
17394
17395 PR/36280
17396 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
17397 option -f(no-)leading-underscore.
17398
e73caa00
L
173992008-05-21 H.J. Lu <hongjiu.lu@intel.com>
17400
17401 * config/i386/i386.c (ix86_expand_vector_init_general): Use
17402 GET_MODE_NUNITS (mode).
17403
4adf8008
PB
174042008-05-21 Peter Bergner <bergner@vnet.ibm.com>
17405
17406 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
17407 (-mmulhw): Add 464 to description.
17408 (-mdlmzb): Likewise.
17409 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
17410 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
17411 464fp entries.
17412 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
17413 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
17414 * config/rs6000/rs6000.md: Update comments for 464.
17415
00a25a2d
JJ
174162008-05-21 Janis Johnson <janis187@us.ibm.com>
17417
17418 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
17419
80980aec
L
174202008-05-21 H.J. Lu <hongjiu.lu@intel.com>
17421
17422 * config/i386/sse.md (vec_extractv4sf): Removed.
17423 (vec_extractv2df): Likewise.
17424 (vec_extractv2di): Likewise.
17425 (vec_extractv4si): Likewise.
17426 (vec_extractv8hi): Likewise.
17427 (vec_extractv16qi): Likewise.
17428 (vec_extract<mode>): New.
17429
349587b8
L
174302008-05-21 H.J. Lu <hongjiu.lu@intel.com>
17431
17432 * config/i386/sse.md (vec_setv4sf): Removed.
17433 (vec_setv2df): Likewise.
17434 (vec_setv2di): Likewise.
17435 (vec_setv4si): Likewise.
17436 (vec_setv8hi): Likewise.
17437 (vec_setv16qi): Likewise.
17438 (vec_set<mode>): New.
17439
0864e1e8
L
174402008-05-21 H.J. Lu <hongjiu.lu@intel.com>
17441
17442 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
17443 goto for vec_concat and vec_interleave.
17444
f8caa3a8
L
174452008-05-21 H.J. Lu <hongjiu.lu@intel.com>
17446
17447 * config/i386/sse.md (vec_initv4sf): Removed.
17448 (vec_initv2df): Likewise.
17449 (vec_initv2di): Likewise.
17450 (vec_initv4si): Likewise.
17451 (vec_initv8hi): Likewise.
17452 (vec_initv16qi): Likewise.
17453 (vec_init<mode>): New.
17454
fb291f50
JM
174552008-05-21 Joseph Myers <joseph@codesourcery.com>
17456
17457 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
17458
dae4174e
TT
174592008-05-21 Tom Tromey <tromey@redhat.com>
17460
17461 * ggc-zone.c (lookup_page_table_if_allocated): New function.
17462 (zone_find_object_offset): Likewise.
17463 (gt_ggc_m_S): Likewise.
17464 (highest_bit): Likewise.
17465 * ggc-page.c (gt_ggc_m_S): New function.
17466 * stringpool.c (string_stack): Remove.
17467 (init_stringpool): Update.
17468 (ggc_alloc_string): Use ggc_alloc.
17469 (maybe_delete_ident): New function.
17470 (ggc_purge_stringpool): Likewise.
17471 (gt_ggc_m_S): Remove.
17472 * ggc-common.c (ggc_protect_identifiers): New global.
17473 (ggc_mark_roots): Call ggc_purge_stringpool. Use
17474 ggc_protect_identifiers.
17475 * ggc.h (ggc_protect_identifiers): Declare.
17476 (gt_ggc_m_S): Update.
17477 (ggc_purge_stringpool): Declare.
17478 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
17479 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
17480 special case.
17481 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
17482
ccbdd3bc
DM
174832008-05-21 David S. Miller <davem@davemloft.net>
17484
17485 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
17486 tmake_file.
17487
e8a2a782
EB
174882008-05-21 Eric Botcazou <ebotcazou@adacore.com>
17489
17490 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
17491 once finished.
17492
06d19617
DD
174932008-05-20 David Daney <ddaney@avtrex.com>
17494
17495 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
922e3e33
UB
17496 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
17497 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
06d19617
DD
17498 UNSPEC_UPDATE_GOT_VERSION): Renumber.
17499 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
17500 (atomic_hiqi_op): New define_code_iterator.
922e3e33 17501 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
06d19617
DD
17502 mips_expand_compare_and_swap_12.
17503 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
922e3e33 17504 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
06d19617
DD
17505 (sync_<optab><mode>, sync_old_<optab><mode>,
17506 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
922e3e33 17507 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
06d19617
DD
17508 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
17509 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
922e3e33 17510 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
06d19617
DD
17511 (test_and_set_12): New insn.
17512 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
17513 sync_new_<optab><mode>, sync_old_nand<mode>,
17514 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
17515 clobber to operand 0 for SI and DI mode insns.
17516 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
17517 mips_gen_fn_4): New typedefs.
17518 (mips_gen_fn_ptrs): Define new union type.
17519 (mips_expand_compare_and_swap_12): Remove declaration.
17520 (mips_expand_atomic_qihi): Declare function.
17521 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
17522 (mips_expand_atomic_qihi): ... this. Use new generator function
17523 parameter.
17524 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
17525 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
ca3a2165 17526 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
06d19617
DD
17527 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
17528 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
17529 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
17530 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
17531 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
17532 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
ca3a2165
UB
17533 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
17534 New macros.
06d19617 17535
a35f6a35
L
175362008-05-20 H.J. Lu <hongjiu.lu@intel.com>
17537
17538 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
17539 the missing break.
17540
9b678d96
AS
175412008-05-20 Anatoly Sokolov <aesok@post.ru>
17542
17543 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
17544 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
17545 (avr_attribute_table): Add 'OS_main' function attribute.
17546 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
17547 functions with 'OS_main' attribute.
17548
6be34936
RG
175492008-05-20 Richard Guenther <rguenther@suse.de>
17550
17551 PR tree-optimization/35204
17552 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
17553 helper, split out from ...
17554 (DFS): ... here. Make the DFS walk non-recursive.
17555
9857228c
SP
175562008-05-20 Sebastian Pop <sebastian.pop@amd.com>
17557 Jan Sjodin <jan.sjodin@amd.com>
17558
17559 PR tree-optimization/36181
17560 * tree-parloops.c (loop_has_vector_phi_nodes): New.
17561 (parallelize_loops): Don't parallelize when the loop has vector
17562 phi nodes.
17563
9f275479
JS
175642008-05-20 Jan Sjodin <jan.sjodin@amd.com>
17565 Sebastian Pop <sebastian.pop@amd.com>
17566
922e3e33
UB
17567 * tree-loop-linear.c (gather_interchange_stats): Look in the access
17568 matrix, and never look at the tree representation of the memory
17569 accesses.
9f275479 17570 (linear_transform_loops): Computes parameters and access matrices.
922e3e33
UB
17571 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
17572 when fails.
9f275479
JS
17573 (access_matrix_get_index_for_parameter): New.
17574 * tree-data-ref.h (struct access_matrix): New.
17575 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
17576 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
17577 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
17578 am_vector_index_for_loop): New.
17579 (struct data_reference): Add field access_matrix.
17580 (DR_ACCESS_MATRIX): New.
17581 (compute_data_dependences_for_loop): Update declaration.
17582 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
17583 * lambda.h (lambda_vector_vec_p): Declared.
17584 * lambda-code.c: Depend on pointer-set.h.
17585 (lambda_collect_parameters_from_af, lambda_collect_parameters,
17586 av_for_af_base, av_for_af, build_access_matrix,
17587 lambda_compute_access_matrices): New.
17588 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
17589
f30fad61
JM
175902008-05-20 Joseph Myers <joseph@codesourcery.com>
17591
17592 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
17593 $SOURCEDIR/include.
17594
5b78fc3e
JS
175952008-05-20 Jan Sjodin <jan.sjodin@amd.com>
17596 Sebastian Pop <sebastian.pop@amd.com>
17597
17598 PR tree-optimization/36206
17599 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
17600 FOLD_CONVERSIONS.
17601 (instantiate_scev_1): Rename flags to fold_conversions.
17602 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
17603 outeside instantiation_loop.
17604 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
17605 (evolution_function_is_affine_or_constant_p): Removed.
17606 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
17607 instantiate_scev.
17608 (analyze_siv_subscript): Pass in the loop nest number.
22129589 17609 Call evolution_function_is_affine_in_loop instead of
5b78fc3e
JS
17610 evolution_function_is_affine_p.
17611 (analyze_overlapping_iterations): Pass in the loop nest number.
17612
176132008-05-20 Jan Sjodin <jan.sjodin@amd.com>
17614 Sebastian Pop <sebastian.pop@amd.com>
17615
17616 PR tree-optimization/36206
17617 * tree-chrec.h (chrec_fold_op): New.
922e3e33
UB
17618 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
17619 and other trees.
5b78fc3e 17620
498f1c82
NS
176212008-05-20 Nathan Sidwell <nathan@codesourcery.com>
17622
17623 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
17624 (DIRS_EQ): New.
922e3e33
UB
17625 (remove_duplicates): Do not set inode on non-inode systems.
17626 Use DIRS_EQ.
498f1c82 17627
9c63c208
SL
176282008-05-20 Sandra Loosemore <sandra@codesourcery.com>
17629
17630 * config.gcc (tm_file): Update comments about relative pathnames.
17631
01902653
RG
176322008-05-20 Richard Guenther <rguenther@suse.de>
17633
922e3e33 17634 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
01902653
RG
17635 * tree-ssa-sccvn.c (process_scc): Likewise.
17636 * tree-ssa-sink.c (execute_sink_code): Likewise.
17637 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
17638 * tree-vrp.c (process_assert_insertions): Likewise.
17639 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
17640 (perform_tree_ssa_dce): Likewise.
17641 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
17642 (dump_dominator_optimization_stats): Likewise.
17643 * tree-vectorizer.c (vectorize_loops): Likewise.
17644
4628e602
RG
176452008-05-20 Richard Guenther <rguenther@suse.de>
17646
17647 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
17648
3b23a6d3
KT
176492008-05-20 Kai Tietz <kai.tietz@onevision.com>
17650
17651 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
17652 (ix86_i386elf_return_in_memory): Likewise.
17653 (ix86_i386interix_return_in_memory): Likewise.
17654 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
17655 (SUBTARGET_RETURN_IN_MEMORY): New.
17656 * config/i386/i386elf.h: Likewise.
17657 * config/i386/ptx4-i.h: Likewise.
17658 * config/i386/sol2-10.h: Likewise.
17659 * config/i386/sysv4.h: Likewise.
17660 * config/i386/vx-common.h: Likewise.
17661 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
17662 * config/i386/i386.c (ix86_return_in_memory): Made static and
17663 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
17664 (ix86_i386elf_return_in_memory): Removed.
17665 (ix86_i386interix_return_in_memory): Removed.
17666 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
17667 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
17668
be9ed5d5
AO
176692008-05-20 Alexandre Oliva <aoliva@redhat.com>
17670
17671 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
17672
bc300fec
XDL
176732008-05-19 Xinliang David Li <davidxl@google.com>
17674
22129589 17675 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
bc300fec
XDL
17676 * opts.c: Ditto.
17677 * common.opt: Ditto.
17678 * doc/invoke.texi: Ditto.
17679
df8e1fdc
EB
176802008-05-19 Eric Botcazou <ebotcazou@adacore.com>
17681
17682 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
fa74fa39 17683 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
df8e1fdc 17684
06a5f1ec
L
176852008-05-19 H.J. Lu <hongjiu.lu@intel.com>
17686
9479cae3 17687 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
06a5f1ec
L
17688 sizes of operand array from 8/4 to 4/2.
17689 (ix86_expand_vector_init_general): Change size of operand array
17690 from 32 to 16. Remove op0, op1 and half_mode.
17691
63e46cce
L
176922008-05-19 H.J. Lu <hongjiu.lu@intel.com>
17693
17694 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
17695 (ix86_expand_vector_init_interleave): Likewise.
ca3a2165
UB
17696 (ix86_expand_vector_init_general): Use them. Assert
17697 word_mode == SImode when n_words == 4.
63e46cce 17698
83689be0
UB
176992008-05-19 Uros Bizjak <ubizjak@gmail.com>
17700
17701 * config/i386/i386.c (ix86_secondary_reload): New static function.
17702 (TARGET_SECONDARY_RELOAD): New define.
17703 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
17704 * config/i386/i386.md (reload_outqi): Remove.
17705
05f41289
KG
177062008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17707
17708 PR middle-end/35509
05f41289
KG
17709 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
17710 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
17711 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
17712 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
17713 (fold_builtin_1): Likewise.
17714 * builtins.def (BUILT_IN_ISINF_SIGN): New.
17715 c-common.c (check_builtin_function_arguments): Handle
17716 BUILT_IN_ISINF_SIGN.
17717 * doc/extend.texi: Document __builtin_isinf_sign.
17718 * fold-const.c (operand_equal_p): Handle COND_EXPR.
17719
45a7844f
EB
177202008-05-18 Eric Botcazou <ebotcazou@adacore.com>
17721
17722 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
17723 EH cleanup at the end of the pass, search for those that have been
17724 turned into forwarder blocks and do the cleanup on their successor.
17725
a86907b2
RG
177262008-05-18 Richard Guenther <rguenther@suse.de>
17727
17728 * tree-cfg.c (verify_gimple_expr): Allow conversions from
17729 pointers to sizetype and vice versa.
17730
e29cc9b4
XDL
177312008-05-18 Xinliang David Li <davidxl@google.com>
17732
17733 * gcc/tree-ssa-dce.c: Coding style fix.
22129589 17734 (check_pow): Documentation comment.
e29cc9b4
XDL
17735 (check_log): Documenation comment. Coding style fix.
17736 (is_unnecessary_except_errno_call): Ditto.
17737 (gen_conditions_for_pow): Ditto.
17738 (gen_conditions_for_log): Ditto.
17739 (gen_shrink_wrap_conditions): Ditto.
17740 (shrink_wrap_one_built_in_calls): Ditto.
17741 * gcc/doc/invoke.texi: Better documentation string.
22129589 17742 * ChangeLog: Fix wrong change log entries from
e29cc9b4
XDL
17743 May 17 checkin on function call DCE.
17744
eb6cbf91
KK
177452008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
17746
371a0575 17747 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
eb6cbf91 17748
bfe69700
KZ
177492008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
17750
17751 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
17752 * df-problems.c (simulation routines): Fixed block comment to
17753 properly say how to add forwards scanning functions.
22129589 17754
7c7d3047
EB
177552008-05-17 Eric Botcazou <ebotcazou@adacore.com>
17756
17757 * tree-inline.c (setup_one_parameter): Remove dead code.
17758
1e17e15a
EB
177592008-05-17 Eric Botcazou <ebotcazou@adacore.com>
17760
17761 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
17762 a BIT_AND_EXPR only for an INTEGER_TYPE.
17763
e29cc9b4
XDL
177642008-05-17 Xinliang David Li <davidxl@google.com>
17765
17766 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
22129589
AS
17767 (check_pow, check_log, is_unnecessary_except_errno_call): New
17768 functions to check for eliminating math functions that are pure
e29cc9b4
XDL
17769 except for setting errno.
17770 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
17771 general condition expressions for shrink-wrapping pow/log calls.
17772 (gen_shrink_wrap_conditions): Ditto.
17773 (shrink_wrap_one_built_in_call): Ditto.
17774 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
17775 (mark_operand_necessary): If debugging, output if OP is necessary.
17776 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
17777 unnecessary.
17778 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
17779 opt level >= 2.
17780 * gcc/common.opt: New user flag -ftree-builtin-dce.
17781 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
17782
b61eacd6
DM
177832008-05-16 David S. Miller <davem@davemloft.net>
17784
371a0575 17785 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
b61eacd6
DM
17786 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
17787
c62b3659
UB
177882008-05-16 Uros Bizjak <ubizjak@gmail.com>
17789
17790 PR target/36246
17791 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
17792
07b5bc83
KZ
177932008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
17794
17795 * ifcvt.c (dead_or_predicable): Rename
17796 df_simulate_one_insn_backwards to df_simulate_one_insn.
17797 * recog.c (peephole2_optimize): Ditto.
83689be0
UB
17798 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
17799 Ditto.
07b5bc83
KZ
17800 * df.h: Rename df_simulate_one_insn_backwards to
17801 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
17802 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
17803 scanning of defs and uses.
17804 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
17805 (df_simulate_one_insn_forwards): Removed.
17806
f1f07a96
DK
178072008-05-16 Doug Kwan <dougkwan@google.com>
17808
17809 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
17810 QNaN & SNaN.
17811 (real_from_string): Handle NaNs and Inf as approriate.
17812
105f48ae
DN
178132008-05-16 Nathan Froyd <froydnj@codesourcery.com>
17814
17815 * doc/gty.texi (Source Files Containing Type Information): Note
17816 that headers should appear first in the gtfiles list.
17817
178182008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
17819
17820 * tree.def (COND_EXEC): Properly documented this code.
17821
178222008-05-16 Diego Novillo <dnovillo@google.com>
17823
17824 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
17825 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
17826 the new field.
17827
908ff6a3
KZ
178282008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
17829
17830 * tree-ssa-dse (max_stmt_uid): Removed.
22129589 17831 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
908ff6a3
KZ
17832 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
17833 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
17834 * function.h (cfun.last_stmt_uid): New field.
17835 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
371a0575
UB
17836 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
17837 New functions.
908ff6a3
KZ
17838 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
17839 (create_stmt_ann): Initialize the ann->uid field.
17840 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
17841 with new calls.
17842 * tree-flow.h (renumber_gimple_stmt_uids): New function.
17843
9defb1fe
DN
178442008-05-16 Nathan Froyd <froydnj@codesourcery.com>
17845
17846 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
17847 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
17848 (init_empty_tree_cfg): Call it.
17849
178502008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
17851
c62b3659
UB
17852 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
17853 Update all users.
9defb1fe 17854
3e894af1
KZ
178552008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
17856
17857 * doc/invoke.text (-fdump-tree-*-verbose): New option.
17858 * tree-dump.c (dump_options): New verbose option.
17859 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
17860 Add verbose dump.
17861 * tree-pass.h (TDF_VERBOSE): New dump flag.
c62b3659 17862 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3e894af1 17863 (tree-flow.h): Added include.
c62b3659 17864 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
3e894af1 17865
16869606
BS
178662008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
17867
4fc4d850
BS
17868 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
17869
16869606 17870 From Jie Zhang <jie.zhang@analog.com>
908ff6a3 17871 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16869606
BS
17872 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
17873 mcpu=bf561-none and mcpu=bf561-0.2.
17874 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
17875 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
17876 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
17877 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
371a0575 17878 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
c62b3659 17879 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
16869606
BS
17880 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
17881 option.
17882 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
17883 (cputype_selected): Remove.
17884 (bfin_handle_option): Don't use cputype_selected.
17885 (override_options): When no mcpu option, enable all workarounds.
17886 Don't use bfin_workarounds.
17887 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
17888 processor type.
17889 (DEFAULT_CPU_TYPE): Don't define.
17890
d0569f9f
RG
178912008-05-16 Richard Guenther <rguenther@suse.de>
17892
17893 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
17894 on deletion of the last stmt.
17895
d0208f9b
L
178962008-05-15 H.J. Lu <hongjiu.lu@intel.com>
17897
17898 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
17899 V8HImode for SSE2 and V16QImode for SSE4.1.
17900
1920df6c
KZ
179012008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
17902
17903 * cgraph.h (compute_inline_parameters): Made public.
17904 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
17905 variable_generate_summary, function_write_summary,
371a0575
UB
17906 variable_write_summary, variable_read_summary. Added generate_summary,
17907 write_summary, read_summary.
1920df6c
KZ
17908 * cgraphunit.c (cgraph_process_new_functions): Changed call from
17909 pass_ipa_inline.function_generate_summary, to
22129589 17910 compute_inline_parameters.
1920df6c
KZ
17911 * ipa-inline.c (compute_inline_parameters): Made public and added
17912 node parameter.
17913 (compute_inline_parameters_for_current): New function.
c62b3659 17914 (pass_inline_param): Now calls compute_inline_parameters_for_current.
1920df6c
KZ
17915 (inline_generate_summary): Removed parameter and made to loop over
17916 all cgraph nodes.
17917 (pass_ipa_inline): Updated for new IPA_PASS structure.
17918 * passes.c (execute_ipa_summary_passes): Now is called once per
17919 pass rather than once per node*pass.
22129589 17920
470a4c97
AS
179212008-05-15 Anatoly Sokolov <aesok@post.ru>
17922
22129589 17923 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
470a4c97
AS
17924 avr_have_mul_p, avr_asm_only_p): Remove variables.
17925 (avr_override_options): Remove initialization of removed variables.
22129589
AS
17926 (avr_file_start): Convert removed variables to fields of
17927 'struct base_arch_s *avr_current_arch'.
470a4c97
AS
17928 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
17929 (AVR_HAVE_MUL): (Ditto.).
17930 (AVR_HAVE_MOVW): (Ditto.).
22129589
AS
17931 (AVR_HAVE_LPMX): (Ditto.).
17932 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
470a4c97
AS
17933 avr_asm_only_p): Remove declaration.
17934
f4dea66f
DN
179352008-05-15 Diego Novillo <dnovillo@google.com>
17936
c62b3659 17937 * config/arm/arm.c (arm_return_in_memory): Fix return type.
f4dea66f
DN
17938 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
17939
36dafbd1
AN
179402008-05-15 Adam Nemet <anemet@caviumnetworks.com>
17941
17942 PR middle-end/36194
c62b3659
UB
17943 * combine.c (check_conversion): Rename back to check_promoted_subreg.
17944 Don't call record_truncated_value from here.
17945 (record_truncated_value): Turn it into a for_each_rtx callback.
17946 (record_truncated_values): New function.
17947 (combine_instructions): Call note_uses with record_truncated_values.
22129589 17948 Change name of check_conversion to check_promoted_subreg.
36dafbd1 17949
91a5b394
JJ
179502008-05-15 Janis Johnson <janis187@us.ibm.com>
17951
17952 * doc/sourcebuild.texi: Document support for torture tests.
17953
2819ae08
UB
179542008-05-15 Uros Bizjak <ubizjak@gmail.com>
17955
17956 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
17957 to alternative 4 of operand 2.
17958
9fe0cb7d
RG
179592008-05-15 Richard Guenther <rguenther@suse.de>
17960
17961 * tree-pass.h (current_pass): Declare.
17962 (get_pass_for_id): Likewise.
17963 * passes.c (passes_by_id, passes_by_id_size): New globals.
17964 (set_pass_for_id): New function.
17965 (get_pass_for_id): Likewise.
17966 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
17967 (execute_function_todo): Flush per function statistics.
17968 * toplev.c (compile_file): Init statistics.
17969 (general_init): Do early statistics initialization.
17970 (finalize): Finish statistics.
17971 * statistics.h (statistics_early_init): Declare.
17972 (statistics_init): Likewise.
17973 (statistics_fini): Likewise.
17974 (statistics_fini_pass): Likewise.
17975 (statistics_counter_event): Likewise.
17976 (statistics_histogram_event): Likewise.
17977 * statistics.c: New file.
17978 * Makefile.in (OBJS-common): Add statistics.o.
17979 (statistics.o): Add dependencies.
17980 * doc/invoke.texi (-fdump-statistics): Document.
17981
17982 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
17983 (insert): Likewise.
17984 (execute_pre): Use statistics_counter_event.
17985 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
17986 (substitute_and_fold): Increment it. Use statistics_counter_event.
17987
77f377f7
DN
179882008-05-15 Diego Novillo <dnovillo@google.com>
17989
17990 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
17991
17992 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
17993 * tree-ssa-alias.c (new_type_alias): Remove references to
17994 sub-variables from comment.
17995 * tree-ssa-operands.c (swap_tree_operands): Likewise.
17996
89b7851e
L
179972008-05-15 H.J. Lu <hongjiu.lu@intel.com>
17998
17999 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
18000 attribute to 1 only for insertps alternative.
18001
8fa477f7
BS
180022008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
18003
18004 * config/bfin/bfin.md (loadbytes): New pattern.
18005 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
18006 (bfin_init_builtins): Initialize it.
18007 (bdesc_1arg): Add it.
18008
4e8c438f
SL
180092008-05-15 Sa Liu <saliu@de.ibm.com>
18010
18011 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
18012 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
18013 * testsuite/lib/target-supports.exp: Add
18014 check_effective_target_fortran_integer_16.
18015
7ba20e60
BS
180162008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
18017
18018 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
18019 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
18020 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
18021 (TARGET_RETURN_IN_MEMORY): Define.
18022
81d19c06
RG
180232008-05-15 Richard Guenther <rguenther@suse.de>
18024
18025 PR middle-end/36244
18026 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
18027 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
18028 represent unmodifiable vars.
18029
9f59420d
RG
180302008-05-15 Richard Guenther <rguenther@suse.de>
18031
18032 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
18033 INDIRECT_REF and TARGET_MEM_REF.
18034 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
18035 TARGET_MEM_REF.
18036
6784c6e0
UB
180372008-05-15 Uros Bizjak <ubizjak@gmail.com>
18038 H.J. Lu <hongjiu.lu@intel.com>
18039
18040 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
18041 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
18042 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
18043 insn alternatives. Add missing alternatives.
18044 (*vec_concatv2di_rex64_sse4_1): Likewise.
18045 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
18046 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
18047 Require TARGET_SSE.
18048
8ded35f9
RG
180492008-05-15 Richard Guenther <rguenther@suse.de>
18050
18051 PR tree-optimization/36009
18052 PR tree-optimization/36204
18053 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
18054 (determine_invariantness_stmt): Record the loop a store is
18055 always executed in.
18056 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
18057 dependency.
18058
45ff5eda
RG
180592008-05-15 Richard Guenther <rguenther@suse.de>
18060
18061 PR tree-optimization/34330
18062 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
18063 through the pointer will alias the SMT.
18064
c5fcd670
AT
180652008-05-14 Andreas Tobler <a.tobler@schweiz.org>
18066
18067 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
18068
a3f63c28
L
180692008-05-14 H.J. Lu <hongjiu.lu@intel.com>
18070
18071 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
18072
71d46ca5
MM
180732008-05-14 Michael Meissner <michael.meissner@amd.com>
18074 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
18075
18076 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
18077 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
18078 (vashl_optab): New optab for vector/vector shifts.
18079 (vashr_optab): Ditto.
18080 (vlshr_optab): Ditto.
18081 (vrotl_optab): Ditto.
18082 (vrotr_optab): Ditto.
18083 (optab_subtype): New enum for optab_for_tree_code call.
18084 (optab_for_tree_code): Add enum optab_subtype argument.
18085
18086 * optabs.c (optab_for_tree_code): Take an additional argument to
18087 distinguish between a vector shift by a scalar and vector shift by
18088 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
18089 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
18090 vector shift by a vector.
18091 (expand_widen_pattern_expr): Pass additional argument to
18092 optab_for_tree_code.
18093
18094 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
18095 vrotl_optab, vrotr_optab.
18096
18097 * expr.c (expand_expr_real_1): Update calls to
18098 optab_for_tree_code to distinguish between vector shifted by a
18099 scalar and vector shifted by a vector.
18100 * tree-vectorizer.c (supportable_widening_operation): Ditto.
18101 (supportable_narrowing_operation): Ditto.
18102 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
18103 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
18104 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
18105 (vect_create_epilog_for_reduction): Ditto.
18106 (vectorizable_reduction): Ditto.
18107 (vectorizable_operation): Ditto.
18108 (vect_strided_store_supported): Ditto.
18109 (vect_strided_load_supported): Ditto.
18110 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
18111 * expmed.c (expand_shift): Ditto.
18112
18113 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
18114 scalar type.
18115 (ashr@var{m}3): Ditto.
18116 (vashl@var{m}3): Document new vector/vector shift standard name.
18117 (vashr@var{m}3): Ditto.
18118 (vlshr@var{m}3): Ditto.
18119 (vrotl@var{m}3): Ditto.
18120 (vrotr@var{m}3): Ditto.
18121
6784c6e0 18122 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
71d46ca5
MM
18123 (PPERM_INVERT): Ditto.
18124 (PPERM_REVERSE): Ditto.
18125 (PPERM_REV_INV): Ditto.
18126 (PPERM_ZERO): Ditto.
18127 (PPERM_ONES): Ditto.
18128 (PPERM_SIGN): Ditto.
18129 (PPERM_INV_SIGN): Ditto.
18130 (PPERM_SRC1): Ditto.
18131 (PPERM_SRC2): Ditto.
18132
18133 * config/i386/sse.md (mulv2di3): Add SSE5 support.
18134 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
18135 allows a memory operand to be the value being added, and split it
18136 to improve vectorization.
18137 (sse5_pmacsdqh_mem): Ditto.
18138 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
18139 (sse5_mulv2div2di3_high): Ditto.
18140 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
18141 (vec_pack_trunc_v4si): Ditto.
18142 (vec_pack_trunc_v2di): Ditto.
18143 (sse5_pcmov_<mode>): Remove code that tried to use use
18144 andps/andnps instead of pcmov.
18145 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
18146 pmacsdqh instructions.
18147 (vec_widen_smult_lo_v4si): Ditto.
18148
18149 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
18150 (PPERM_INVERT): Ditto.
18151 (PPERM_REVERSE): Ditto.
18152 (PPERM_REV_INV): Ditto.
18153 (PPERM_ZERO): Ditto.
18154 (PPERM_ONES): Ditto.
18155 (PPERM_SIGN): Ditto.
18156 (PPERM_INV_SIGN): Ditto.
18157 (PPERM_SRC1): Ditto.
18158 (PPERM_SRC2): Ditto.
18159 (ix86_expand_sse_movcc): Move the SSE5 test after the if
18160 true/false tests.
18161 (ix86_expand_int_vcond): If SSE5 generate all possible integer
18162 comparisons.
18163 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
18164 says ignore whether the last reference is a memory operand.
18165
181662008-05-14 Michael Meissner <michael.meissner@amd.com>
18167 Paolo Bonzini <bonzini at gnu dot org>
18168
18169 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
18170 shift patterns.
18171
6784c6e0 18172 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
71d46ca5
MM
18173 (vlshr<mode>3): Rename from vlshr<mode>3.
18174 (vashr<mode>3): Rename from vashr<mode>3.
18175 (mulv4sf3): Change the names of vector shift patterns.
18176 (mulv4si3): Ditto.
18177 (negv4sf2): Ditt.
18178
18179 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
18180 shift insns.
18181
6784c6e0 18182 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
71d46ca5
MM
18183 (SI_SHLHI): Ditto.
18184 (SI_SHL): Ditto.
18185 (SI_SHLI): Ditto.
18186 (SI_ROTH): Ditto.
18187 (SI_ROTHI): Ditto.
18188 (SI_ROT): Ditto.
18189 (SI_ROTI): Ditto.
18190 (SPU_RL_0): Ditto.
18191 (SPU_RL_1): Ditto.
18192 (SPU_RL_2): Ditto.
18193 (SPU_RL_3): Ditto.
18194 (SPU_RL_4): Ditto.
18195 (SPU_RL_5): Ditto.
18196 (SPU_RL_6): Ditto.
18197 (SPU_RL_7): Ditto.
18198 (SPU_SL_0): Ditto.
18199 (SPU_SL_1): Ditto.
18200 (SPU_SL_2): Ditto.
18201 (SPU_SL_3): Ditto.
18202 (SPU_SL_4): Ditto.
18203 (SPU_SL_5): Ditto.
18204 (SPU_SL_6): Ditto.
18205 (SPU_SL_7): Ditto.
18206
18207 * config/spu/spu.md (v): New iterator macro to add v for vector types.
18208 (floatunssidf2_internal): Change vector/vector shift names.
18209 (floatunsdidf2_internal): Ditto.
18210 (mulv8hi3): Ditto.
18211 (ashrdi3): Ditto.
18212 (ashrti3): Ditto.
18213 (cgt_df): Ditto.
18214 (cgt_v2df): Ditto.
18215 (dftsv): Ditto.
18216 (vashl<mode>3): Rename from ashl<mode>3.
18217 (vashr<mode>3): Rename from ashr<mode>3.
18218 (vlshr<mode>3): Rename from lshr<mode>3.
18219 (vrotl<mode>3): Rename from rotl<mode>3.
18220
550c9cf0
MM
182212008-05-14 Michael Meissner <michael.meissner@amd.com>
18222
18223 PR target/36224
6784c6e0
UB
18224 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
18225 multiply gives the wrong value when doing widening multiplies.
550c9cf0
MM
18226 (vec_widen_smult_lo_v4si): Ditto.
18227
84b8030f
KZ
182282008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
18229
18230 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
18231 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
22129589 18232 emit_library_call_value.
84b8030f
KZ
18233 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
18234 * tree.h (ECF_LIBCALL_BLOCK): Removed.
22129589 18235 * calls.c (initialize_argument_information, precompute_arguments,
84b8030f
KZ
18236 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
18237 (precompute_arguments): Removed flags parameter.
18238 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
22129589 18239
f403a4a2
RG
182402008-05-14 Richard Guenther <rguenther@suse.de>
18241
18242 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
18243 Make sure to register the store if the use is a PHI_NODE.
18244
da19297d
OH
182452008-05-14 Olivier Hainque <hainque@adacore.com>
18246
18247 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
18248 memory if the component is to be referenced in BLKmode according
18249 to get_inner_reference.
18250
1fd03c70
AN
182512008-05-14 Adam Nemet <anemet@caviumnetworks.com>
18252
18253 * calls.c (emit_library_call_value_1): Restore code clearing
6784c6e0 18254 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1fd03c70 18255
349c3166
OH
182562008-05-14 Olivier Hainque <hainque@adacore.com>
18257 Nicolas Roche <roche@adacore.com>
18258
18259 * configure.ac: Add support for a "gcc_subdir" variable in
18260 config-lang.in, to denote a subdirectory where the language/GCC
18261 integration files are to be found.
18262 * configure: Regenerate.
18263
2b8775f3
IR
182642008-05-14 Ira Rosen <irar@il.ibm.com>
18265
18266 PR tree-optimization/36098
18267 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
18268 value for the first load in the group in case of a gap.
18269 (vect_build_slp_tree): Check that there are no gaps in loads.
18270
d70dcf29
KZ
182712008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
18272
18273 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
18274 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
18275 expand_copysign_bit, ): Change call to emit_no_conflict_block to
18276 emit_insn and remove unneeded code to construct extra args.
18277 (emit_no_conflict_block): Removed.
18278 * optabls.h: (emit_no_conflict_block): Removed.
18279 * cse.c (cse_extended_basic_block): Remove search for
6784c6e0 18280 REG_NO_CONFLICT note.
d70dcf29
KZ
18281 * global.c: Removed incorrect comment added in revision 117.
18282 * expr.c (convert_move): Change call to emit_no_conflict_block to
18283 emit_insn.
18284 * recog.c: Change comments so that they do not mention
18285 REG_NO_CONFLICT.
18286 * local_alloc.c (combine_regs): Removed last parameter.
18287 (no_conflict_p): Removed.
18288 (block_alloc): Removed note, no_conflict_combined_regno and set
18289 local vars. Removed all code to process REG_NO_CONFLICT blocks.
18290 (combine_regs): Removed already_dead and code to look for
18291 REG_NO_CONFLICT notes.
18292 * lower_subreg (remove_retval_note): Removed code to look for
18293 REG_NO_CONFLICT block.
18294 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
18295 (resolve_clobber): Remove code to process libcalls that have
18296 REG_NO_CONFLICT notes.
18297 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
18298 case.
6784c6e0
UB
18299 * combine.c (can_combine_p, distribute_notes): Removed
18300 REG_NO_CONFLICT case.
18301 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
18302 to emit_insns.
d70dcf29
KZ
18303 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
18304 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6784c6e0 18305 Ditto.
d70dcf29 18306 * reg-notes.def (NO_CONFLICT): Removed.
c5fcd670 18307
cc44abe6
DM
183082008-05-14 David S. Miller <davem@davemloft.net>
18309
18310 * config/sparc/sparc.c (sparc_profile_hook): If
6784c6e0 18311 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
cc44abe6
DM
18312 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
18313 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
18314
0beb3d66
AK
183152008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
18316
18317 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
18318
08e64088
UB
183192008-05-13 Uros Bizjak <ubizjak@gmail.com>
18320
18321 PR target/36222
18322 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
18323 and op1 expansion before vector concat to have less live pseudos.
18324
af7ae5d1
L
183252008-05-13 H.J. Lu <hongjiu.lu@intel.com>
18326
18327 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
18328 ix86_expand_vector_set if supported.
18329
5db9ba0c
DN
183302008-05-13 Diego Novillo <dnovillo@google.com>
18331 Kenneth Zadeck <zadeck@naturalbridge.com>
18332
18333 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
18334
18335 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
18336 phinodes_print_statistics, init_ssanames, fini_ssanames,
08e64088
UB
18337 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
18338 release_ssa_name, release_defs, replace_ssa_name_symbol,
5db9ba0c
DN
18339 ssanames_print_statistics): Move ...
18340 * tree-flow.h: ... here.
08e64088
UB
18341 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
18342 Use FN instead of cfun.
5db9ba0c 18343 (make_ssa_name_fn): Rename from make_ssa_name.
08e64088 18344 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
5db9ba0c 18345 * tree-flow-inline.h (make_ssa_name): Move from
08e64088 18346 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
5db9ba0c
DN
18347 * omp-low.c (expand_omp_parallel):
18348 * tree-flow-inline.h (redirect_edge_var_map_result):
6784c6e0
UB
18349 * tree-ssa.c (init_tree_ssa): Add argument FN.
18350 Use it instead of cfun. Update all users.
5db9ba0c 18351
899015a0
TT
183522008-05-13 Tom Tromey <tromey@redhat.com>
18353
18354 PR preprocessor/22168:
18355 * doc/cpp.texi (Top): Update menu.
18356 (Alternatives to Wrapper #ifndef): New node.
18357 (Other Directives): Document deprecation.
18358 (Obsolete Features): Remove menu.
18359 (Assertions): Merge node into Obsolete Features.
18360 (Obsolete once-only headers): Move earlier; rename to Alternatives
18361 to Wrapper #ifndef.
18362 * doc/cppopts.texi: Update.
18363 * c.opt (Wdeprecated): Enable for C and ObjC.
18364 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
18365 (C++ Dialect Options): Move -Wno-deprecated from here to...
18366 (Warning Options): ... here.
18367
8ebc39d8
RG
183682008-05-13 Richard Guenther <rguenther@suse.de>
18369
18370 PR middle-end/36227
18371 * fold-const.c (fold_sign_changed_comparison): Do not allow
18372 changes in pointer-ness.
18373
ef0a7607
KK
183742008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
18375
18376 PR target/24713
18377 * config/sh/sh.c (sh_expand_prologue): Don't clear
18378 RTX_FRAME_RELATED_P for push insns.
18379
9c218cfc
AH
183802008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
18381
18382 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
18383
4c75f709
AS
183842008-05-12 Anatoly Sokolov <aesok@post.ru>
18385
18386 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
18387 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
18388 Use 'machine->is_leaf' instead of 'leaf_func_p'.
18389
fcc9fe1e
L
183902008-05-12 H.J. Lu <hongjiu.lu@intel.com>
18391
18392 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
18393 (*vec_concatv4sf_sse): This.
18394 (*sse2_concatv2si): Renamed to ...
18395 (*vec_concatv2si_sse2): This.
18396 (*sse1_concatv2si): Renamed to ...
18397 (*vec_concatv2si_sse): This.
18398 (*vec_concatv2di_rex): Renamed to ...
18399 (*vec_concatv2di_rex64): This.
18400 (*vec_concatv2si_sse4_1): New.
18401 (*vec_concatv2di_rex64_sse4_1): Likewise.
18402
162bfc7e
UB
184032008-05-12 Uros Bizjak <ubizjak@gmail.com>
18404
18405 PR rtl-optimization/36111
18406 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
18407 that was created for swappable operands.
18408
3d4e720a
ST
184092008-05-12 Samuel Tardieu <sam@rfc1149.net>
18410
18411 PR ada/36001
18412 * Makefile.in: Substitute GNATMAKE and GNATBIND.
18413 * configure.ac: Add call to ACX_PROG_GNAT.
18414
fc54bc84
VR
184152008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
18416
18417 * optc-gen.awk: Fix comment typo.
18418
2a157700
AL
184192008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
18420
18421 * pretty-print.c (pp_integer_with_precision): Use
18422 HOST_LONG_LONG_FORMAT.
18423
4e00d960
KZ
184242008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
18425
18426 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
22129589 18427
b282a8d3
L
184282008-05-10 H.J. Lu <hongjiu.lu@intel.com>
18429
18430 * config/i386/i386.c (bdesc_ptest): Removed.
18431 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
18432 (bdesc_args): Add __builtin_ia32_ptestz128,
18433 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
18434 (ix86_init_mmx_sse_builtins): Updated.
18435 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
18436 (ix86_expand_builtin): Updated.
18437
17d23165
RS
184382008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
18439
18440 * tree-cfg.c (valid_fixed_convert_types_p): New function.
18441 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
18442
d35910bf
UB
184432008-05-10 Uros Bizjak <ubizjak@gmail.com>
18444
18445 * value-prof.c (interesting_stringop_to_profile): Do not
18446 return early for BUILT_IN_MEMPCPY.
18447
17b29c0a
L
184482008-05-09 H.J. Lu <hongjiu.lu@intel.com>
18449
18450 * calls.c (expand_call): Don't use callgraph to increase
18451 preferred_stack_boundary.
18452
18453 * cgraph.h (cgraph_rtl_info): Use unsigned on
18454 preferred_incoming_stack_boundary.
18455
18456 * final.c (rest_of_clean_state): Use unsigned on
18457 preferred_stack_boundary.
18458
4822e563
TT
184592008-05-09 Tom Tromey <tromey@redhat.com>
18460
18461 PR preprocessor/22231:
18462 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
18463 proceeding.
18464
53a8f709
UB
184652008-05-09 Uros Bizjak <ubizjak@gmail.com>
18466
18467 PR tree-optimization/36129
162bfc7e 18468 * tree-ssa-ccp.c: Include value-prof.h.
53a8f709
UB
18469 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
18470 built-in function was folded to a constant.
162bfc7e 18471 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
53a8f709 18472
3f227a8c
JS
184732008-05-09 Jan Sjodin <jan.sjodin@amd.com>
18474 Sebastian Pop <sebastian.pop@amd.com>
18475
18476 * tree-scalar-evolution.c: Document instantiate_scev.
18477 (instantiate_parameters_1): Renamed instantiate_scev_1.
18478 Don't use the same loop for instantiation_loop and evolution_loop.
18479 (instantiate_scev): New.
18480 (instantiate_parameters): Moved...
18481 (resolve_mixers): Update call to instantiate_scev_1 to pass the
18482 same loop twice. Maintains the semantics for this function.
18483 * tree-scalar-evolution.h (instantiate_scev): Declare.
18484 (instantiate_parameters): ...here. Now static inline.
18485 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
18486 instead of resolve_mixers.
18487
a3e19be6
MK
184882008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
18489
18490 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
18491
1043771b
TB
184922008-05-09 Tomas Bily <tbily@suse.cz>
18493
18494 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
18495 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
18496 * tree-ssa-structalias.c (get_constraint_for): Likewise.
18497 * c-common.c (c_common_truthvalue_conversion): Likewise.
18498 * tree-object-size.c (compute_object_offset): Likewise.
18499 * tree-inline.c (estimate_num_insns_1): Likewise.
18500 * varasm.c (const_hash_1, compare_constant, copy_constant)
18501 (compute_reloc_for_constant, output_addressed_constants)
18502 (initializer_constant_valid_p): Likewise.
18503 * c-omp.c (check_omp_for_incr_expr): Likewise.
18504 * gimplify.c (gimplify_expr): Likewise.
18505 * c-typeck.c (c_finish_return): Likewise.
18506 * tree-vectorizer.c (supportable_widening_operation)
18507 (supportable_narrowing_operation): Likewise.
18508 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
18509 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
18510 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
18511 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
18512 (descr_info_loc): Likewise.
18513 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
18514 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
18515 (fold_unary): Likewise.
18516 * builtins.c (get_pointer_alignment): Likewise.
18517 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
18518 (instantiate_parameters_1): Likewise.
18519 * tree.c (expr_align, stabilize_reference): Likewise.
18520 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
18521 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
18522 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
18523 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
18524 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
162bfc7e
UB
18525 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
18526 Likewise.
1043771b
TB
18527 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
18528 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
18529 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
18530 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
18531 (forward_propagate_comparison)
18532 (tree_ssa_forward_propagate_single_use_vars): Likewise.
18533 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
18534 * emit-rtl.c (component_ref_for_mem_expr)
18535 (set_mem_attributes_minus_bitpos): Likewise.
18536 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
162bfc7e
UB
18537 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
18538 Likewise.
1043771b
TB
18539 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
18540 (build_function_call, pointer_diff, build_compound_expr)
18541 (c_finish_return): Likewise.
18542 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
162bfc7e
UB
18543 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
18544 Likewise.
1043771b
TB
18545 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
18546 * expr.c (is_aligning_offset): Likewise.
18547 * tree-ssa-alias.c (is_escape_site): Likewise.
18548 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
18549 (check_all_va_list_escapes): Likewise.
18550 * tree-ssa-loop-ivopts.c (determine_base_object)
18551 (determine_common_wider_type): Likewise.
18552 * dojump.c (do_jump): Likewise.
18553 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
18554 * tree-gimple.c (is_gimple_cast): Likewise.
18555 * fold-const.c (decode_field_reference, )
18556 (fold_sign_changed_comparison, fold_unary, fold_comparison)
18557 (fold_binary): Likewise.
18558 * tree-ssa-alias-warnings.c (find_alias_site_helper)
18559 (already_warned_in_frontend_p): Likewise.
18560 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
18561 * tree.c (really_constant_p, get_unwidened): Likewise.
18562 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
18563 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
162bfc7e
UB
18564 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
18565 Likewise.
18566 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
18567 CONVERT_EXPR_P.
1043771b
TB
18568 (CONVERT_EXPR_P): Define.
18569 (CASE_CONVERT): Define.
22129589 18570
5ba5ab9b
KZ
185712008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
18572
18573 PR middle-end/36117
162bfc7e
UB
18574 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
18575 (delete_unmarked_insns): When deleting a call, call
5ba5ab9b
KZ
18576 delete_unreachable_blocks.
18577 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
162bfc7e
UB
18578 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
18579
1353232d
RG
185802008-05-08 Richard Guenther <rguenther@suse.de>
18581
18582 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
18583 (-ftree-salias): Likewise.
18584 (salias-max-implicit-fields): Remove param documentation.
18585 (salias-max-array-elements): Likewise.
18586 * tree-pass.h (pass_create_structure_vars): Remove.
18587 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
18588 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
18589 * tree-ssa-alias.c (create_structure_vars): Remove.
18590 (gate_structure_vars): Likewise.
18591 (pass_create_structure_vars): Likewise.
18592 (gate_build_alias): Likewise.
18593 (pass_build_alias): Adjust to run always and dump the function.
18594 * common.opt (ftree-salias): Hide.
18595 * passes.c (init_optimization_passes): Remove
18596 pass_create_structure_vars, adjust comment.
18597 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
18598 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
18599 * opts.c (decode_options): Do not set flag_tree_salias.
18600 (common_handle_option): Add OPT_ftree_salias to the backward
18601 compatibility section.
18602
31de5b77
RG
186032008-05-08 Richard Guenther <rguenther@suse.de>
18604
18605 * tree-flow-inline.h (var_can_have_subvars): Move ...
18606 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
18607 * tree-flow.h (var_can_have_subvars): Remove.
18608 (push_fields_onto_fieldstack): Remove.
18609 (sort_fieldstack): Likewise.
18610 (struct fieldoff): Move ...
18611 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
18612 alias_set and base_for_components fields.
18613 (sort_fieldstack): Make static.
18614 (push_fields_onto_fieldstack): Likewise. Remove code that
18615 handles anything but RECORD_TYPEs. Remove alias_set and
18616 base_for_components handling.
18617 (create_variable_info_for): Adjust.
18618
c1a3620a 186192008-05-08 Seongbae Park <seongbae.park@gmail.com>
b70837af 18620
c1a3620a
SP
18621 * common.opt (Wframe-larger-than=): Shorten the help message
18622 to one line.
18623 * doc/invoke.texi (Wframe-larger-than=): Add more description.
18624
e49cf927 186252008-05-08 Rafael Espíndola <espindola@google.com>
04b03edb
RAE
18626
18627 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
18628 trap.
18629 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
18630 trap and that both operands are gimple values.
18631 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
18632 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
18633 is a fp operation.
18634
96c92f47
RS
186352008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
18636
18637 * read-rtl.c (join_c_conditions): Return the first string if the
18638 two strings are equal.
18639
e663da80
RS
186402008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
18641
18642 * gensupport.h (pred_data): Add a "num_codes" field.
18643 (add_predicate_code): Declare.
18644 * gensupport.c (add_predicate_code): New function.
18645 (std_pred_table): Add an "allows_const_p" field.
18646 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
18647 Remove the (incomplete) list of such codes from the codes field.
18648 (init_predicate_table): Use add_predicate_code. Add all
18649 RTX_CONST_OBJs if allows_const_p is true.
18650 * genrecog.c (process_define_predicate): Use add_predicate_code.
18651
977502ff
DD
186522008-05-08 David Daney <ddaney@avtrex.com>
18653 Richard Sandiford <rsandifo@nildram.co.uk>
22129589 18654
977502ff
DD
18655 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
18656 special case of constant zero operands.
18657 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
18658 old and new values. Special case constant zero values.
18659 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
18660 fails.
18661 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
18662 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
18663
627ab861
PB
186642008-05-08 Paolo Bonzini <bonzini@gnu.org>
18665
18666 PR target/36090
18667 * simplify-rtx.c (simplify_plus_minus): Create CONST of
18668 similar RTX_CONST_OBJ before CONST_INT.
18669
41ccb5d1
SE
186702008-05-08 Steve Ellcey <sje@cup.hp.com>
18671
18672 * stmt.c (expand_stack_restore): Change sa mode if needed.
18673
e8d6aaee
RG
186742008-05-08 Richard Guenther <rguenther@suse.de>
18675
18676 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
18677 return type to bool.
18678 (ix86_sol10_return_in_memory): Likewise.
18679 (ix86_i386elf_return_in_memory): Likewise.
18680 (ix86_i386interix_return_in_memory): Likewise.
18681 * config/i386/i386.c (ix86_return_in_memory): Likewise.
18682 (ix86_sol10_return_in_memory): Likewise.
18683 (ix86_i386elf_return_in_memory): Likewise.
18684 (ix86_i386interix_return_in_memory): Likewise.
18685
033df0b9
KT
186862008-05-08 Kai Tietz <kai.tietz@onevision.com>
18687
d7822892 18688 PR bootstrap/36180
033df0b9
KT
18689 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
18690 fndecl argument.
d7822892
UB
18691 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
18692 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
18693 declared in front.
033df0b9 18694
5611cf0b
RG
186952008-05-08 Richard Guenther <rguenther@suse.de>
18696
18697 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
18698 * tree-data-ref.h (struct dr_alias): Remove subvars field.
18699 (DR_SUBVARS): Remove.
18700 * tree-dfa.c (dump_subvars_for): Remove.
18701 (debug_subvars_for): Likewise.
18702 (dump_variable): Do not dump subvars.
18703 (remove_referenced_var): Do not remove subvars.
18704 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
18705 (lookup_subvars_for_var): Remove.
18706 (get_subvars_for_var): Likewise.
18707 (get_subvars_at): Likewise.
18708 (get_first_overlapping_subvar): Likewise.
18709 (overlap_subvar): Likewise.
18710 * tree-flow.h (subvar_t): Remove.
18711 (struct var_ann_d): Remove subvars field.
18712 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
18713 argument. Remove special handling of SFTs.
18714 (compute_tag_properties): Likewise.
18715 (set_initial_properties): Likewise.
18716 (compute_call_clobbered): Likewise.
18717 (count_mem_refs): Likewise.
18718 (compute_memory_partitions): Likewise.
18719 (compute_flow_insensitive_aliasing): Likewise.
18720 (setup_pointers_and_addressables): Likewise.
18721 (new_type_alias): Likewise.
18722 (struct used_part): Remove.
18723 (used_portions): Likewise.
18724 (struct used_part_map): Likewise.
18725 (used_part_map_eq): Likewise.
18726 (used_part_map_hash): Likewise.
18727 (free_used_part_map): Likewise.
18728 (up_lookup): Likewise.
18729 (up_insert): Likewise.
18730 (get_or_create_used_part_for): Likewise.
18731 (create_sft): Likewise.
18732 (create_overlap_variables_for): Likewise.
18733 (find_used_portions): Likewise.
18734 (create_structure_vars): Likewise.
18735 * tree.def (STRUCT_FIELD_TAG): Remove.
18736 * tree.h (MTAG_P): Adjust.
18737 (struct tree_memory_tag): Remove base_for_components and
18738 unpartitionable flags.
18739 (struct tree_struct_field_tag): Remove.
18740 (SFT_PARENT_VAR): Likewise.
18741 (SFT_OFFSET): Likewise.
18742 (SFT_SIZE): Likewise.
18743 (SFT_NONADDRESSABLE_P): Likewise.
18744 (SFT_ALIAS_SET): Likewise.
18745 (SFT_UNPARTITIONABLE_P): Likewise.
18746 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
18747 (union tree_node): Remove sft field.
18748 * alias.c (get_alias_set): Remove special handling of SFTs.
18749 * print-tree.c (print_node): Remove handling of SFTs.
18750 * tree-dump.c (dequeue_and_dump): Likewise.
18751 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
18752 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
18753 * tree-predcom.c (set_alias_info): Do not set subvars.
18754 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
18755 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
18756 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
18757 (add_vars_for_offset): Remove.
18758 (add_virtual_operand): Remove special handling of SFTs.
18759 (add_call_clobber_ops): Likewise.
18760 (add_call_read_ops): Likewise.
18761 (get_asm_expr_operands): Likewise.
18762 (get_modify_stmt_operands): Likewise.
18763 (get_expr_operands): Likewise.
18764 (add_to_addressable_set): Likewise.
18765 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
18766 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
162bfc7e 18767 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5611cf0b
RG
18768 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
18769 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
18770 (tree_node_structure): Likewise.
18771 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
18772 handling of SFTs.
18773 (find_what_p_points_to): Likewise.
18774
fb4b5171
SL
187752008-05-08 Sa Liu <saliu@de.ibm.com>
18776
18777 * config/spu/spu.md: Fixed subti3 pattern.
fb4b5171 18778
1b674de0
RG
187792008-05-08 Richard Guenther <rguenther@suse.de>
18780
18781 PR middle-end/36154
18782 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
18783 sure to create a representative for trailing arrays for PTA.
18784
b13e7b6c
RG
187852008-05-08 Richard Guenther <rguenther@suse.de>
18786
18787 PR middle-end/36172
18788 * fold-const.c (operand_equal_p): Two objects which types
18789 differ in pointerness are not equal.
18790
d7822892 187912008-05-08 Kai Tietz <kai.tietz@onevision.com>
81464b2c
KT
18792
18793 * calls.c (compute_argument_block_size): Add argument tree fndecl.
18794 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
18795 (emit_library_call_value_1): Add new variable fndecl initialized by
18796 NULL_TREE. It should be the decl type of orgfun, but this information
18797 seems not to be available here, so it uses the default calling abi.
18798 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
18799 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
18800 by TARGET_RETURN_IN_MEMORY.
18801 * config/i386/i386-interix.h: Likewise.
18802 * config/i386/i386.h: Likewise.
18803 * config/i386/i386elf.h: Likewise.
18804 * config/i386/ptx4-i.h: Likewise.
18805 * config/i386/sol2-10.h: Likewise.
18806 * config/i386/sysv4.h: Likewise.
18807 * config/i386/vx-common.h: Likewise.
18808 * config/cris/cris.h: Removed #if 0 clause.
d7822892 18809 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
81464b2c
KT
18810 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
18811 argument.
18812 (ix86_sol10_return_in_memory): Likewise.
18813 (ix86_i386elf_return_in_memory): New.
18814 (ix86_i386interix_return_in_memory): New.
18815 * config/mt/mt-protos.h (mt_return_in_memory): New.
18816 * config/mt/mt.c: Likewise.
18817 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
18818 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
18819 * config/bfin/bfin.h: Likewise.
18820 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
18821 argument.
18822 * config/bfin/bfin.c: Likewise.
18823 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
18824 * config/alpha/unicosmk.h: Likewise.
18825 * config/i386/cygming.h: Likewise.
18826 * config/iq2000/iq2000.h: Likewise.
18827 * config/mips/mips.h: Likewise.
18828 * config/mn10300/mn10300.h: Likewise.
18829 * config/rs6000/rs6000.h: Likewise.
18830 * config/score/score.h: Likewise.
18831 * config/spu/spu.h: Likewise.
18832 * config/v850/v850.h: Likewise.
18833 * defaults.h: Likewise.
18834 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
d7822892
UB
18835 * expr.c (emit_block_move): Adjust use of
18836 OUTGOING_REG_PARM_STACK_SPACE.
81464b2c
KT
18837 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
18838 OUTGOING_REG_PARM_STACK_SPACE.
18839 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
18840
4218dc2d
JJ
188412008-05-08 Jakub Jelinek <jakub@redhat.com>
18842
18843 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
18844 on OMP_RETURN for OMP_FOR.
18845
1f16b47c
JJ
18846 PR debug/35896
18847 * dwarf2out.c (dw_expand_expr, common_check): Removed.
18848 (fortran_common): New function.
18849 (gen_variable_die): Call fortran_common instead of common_check,
18850 adjust for it returning tree instead of rtx. Formatting.
18851
4218dc2d 188522008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
becfd6e5 18853
d7822892
UB
18854 PR rtl/7335
18855 PR rtl/33826
18856 * see.c (see_copy_insn): Copy new pure const attributes for new call.
18857 * c-decl.c (merge_decls): Ditto.
18858 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
18859 to RTL_CONST_OR_PURE_CALL_P.
18860 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
18861 Initialized DECL_LOOPING_CONST_PURE.
18862 (process_call_operands): Set tree_side_effects properly.
18863 * tree.h (TREE_READONLY_DECL_P): Removed.
18864 (DECL_IS_PURE): Renamed to DECL_PURE_P.
18865 (DECL_LOOPING_OR_CONST_P): New macro.
18866 (struct tree_function_decl): Added looping_const_or_pure_p.
18867 (ECF_*) Renumbered.
18868 (ECF_LOOPING_OR_CONST_P): New macro.
18869 * rtlanal.c (pure_const_p): Removed.
18870 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
18871 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
18872 to RTL_CONST_CALL_P.
18873 * ipa-pure-const.c (pure_const_state_e): Added looping field.
18874 (check_decl, check_tree, check_call, scan_function): Initialize
18875 looping.
18876 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
18877 (static_execute): Set looping true for recursive functions.
18878 Undo setting state to IPA_NEITHER for recursive functions.
22129589 18879 * cse.c (cse_insn):
d7822892 18880 * ifcvt.c (noce_can_store_speculate_p): Changed
22129589 18881 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
d7822892
UB
18882 RTL_CONST_OR_PURE_CALL_P.
18883 * dse.c (scan_insn): Ditto.
18884 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
18885 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
18886 RTL_CONST_OR_PURE_CALL_P.
18887 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
18888 pure_call_p to RTL_CONST_CALL_P.
18889 * gimplify.c (gimplify_call_expr): Clear side effects for
18890 non-looping pure and constant calls.
18891 * calls.c (emit_call_1): Set rtl flags from ecf flags.
18892 (flags_from_decl_or_type): Set ecf flags from decl flags.
18893 (initialize_argument_information): Turn off
18894 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
18895 Change const to pure if callee_copies is true rather than just
18896 turning off const.
18897 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
18898 way of marking pure calls.
18899 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
18900 Remove hack that was supposed to fix pr7335 and remove old
18901 way of marking pure calls.
18902 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
18903 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
18904 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
18905 RTL_CONST_OR_PURE_CALL_P.
18906 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
18907 * loop-invariant.c (find_exits, find_invariant_bb): Changed
18908 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
18909 * sched-deps.c (schedule_analyze): Ditto.
18910 * rtl.h (struct rtx_def): Use call field, unchanging field, and
18911 return_val field of calls to represent pure and const function info.
18912 (CONST_OR_PURE_CALL_P): Deleted macro.
18913 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
18914 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
18915 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
18916 TREE_READONLY.
18917 * tree-optimize.c (execute_fixup_cfg): Added test for
18918 ECF_LOOPING_CONST_OR_PURE.
18919 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
18920 DECL_PURE_P.
18921 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
18922 effects for looping pure or const calls.
22129589 18923 (verify_gimple_expr): Added verification code.
d7822892
UB
18924 * config/alpha/alpha.c (alpha_legitimize_address,
18925 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
18926 RTL_CONST_CALL_P.
18927 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
18928 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
18929 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
18930 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
18931 RTL_CONST_OR_PURE_CALL_P.
18932 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
18933 and const calls to be deleted.
becfd6e5 18934
d7822892 189352008-05-07 Uros Bizjak <ubizjak@gmail.com>
ffbaf337
UB
18936
18937 PR target/35714
18938 * config/i386/mmx.md (mmx_subv2sf3): New expander.
18939 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
18940 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
18941 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
18942 to handle nonimmediate operands.
18943 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
18944 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
18945 to handle nonimmediate operands.
18946 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
18947 (mmx_pmulhrwv4hi3): New expander. Use
18948 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18949 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
18950 (sse2_umulv1siv1di3): New expander. Use
18951 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18952 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
18953 (mmx_eq<mode>3): New expander. Use
18954 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18955 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
18956 (mmx_uavgv8qi3): New expander. Use
18957 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18958 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
18959 (mmx_uavgv4hi3): New expander. Use
18960 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18961
18962 * config/i386/sse.md
3a3f9d87 18963 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 18964 to handle nonimmediate operands.
3a3f9d87 18965 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 18966 to handle nonimmediate operands.
3a3f9d87 18967 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 18968 to handle nonimmediate operands.
3a3f9d87 18969 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 18970 to handle nonimmediate operands.
3a3f9d87 18971 (sse2_unpckhpd_exp): New expander. Use
ffbaf337 18972 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 18973 (sse2_unpcklpd_exp): New expander. Use
ffbaf337 18974 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 18975 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 18976 to handle nonimmediate operands.
ffbaf337
UB
18977 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
18978 to handle nonimmediate operands.
18979 (*sse2_<plusminus_insn><mode>3): Rename from
18980 sse2_<plusminus_insn><mode>3 insn pattern.
18981 (sse2_<plusminus_insn><mode>3): New expander. Use
18982 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18983 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
18984 (sse2_umulv2siv2di3): New expander. Use
18985 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18986 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
18987 (sse4_1_mulv2siv2di3): New expander. Use
18988 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18989 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
18990 (sse2_pmaddwd): New expander. Use
18991 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18992 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
18993 (sse2_eq<mode>3): New expander. Use
18994 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18995 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
18996 (sse4_1_eqv2di3): New expander. Use
18997 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
18998 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
18999 (sse2_uavgv16qi3): New expander. Use
19000 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19001 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
19002 (sse2_uavgv16qi3): New expander. Use
19003 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19004 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
19005 (sse2_uavgv8hi3): New expander. Use
19006 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19007 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
19008 (ssse3_pmulhrswv8hi3): New expander. Use
19009 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19010 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
19011 (ssse3_pmulhrswv4hi3): New expander. Use
19012 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19013
19014 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
19015 (<sse>_vmmul<mode>3): Ditto.
19016 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
19017 (divv2df3): Ditto.
19018 (ssse3_pmaddubsw128): Use register_operand for operand 1.
19019 (ssse3_pmaddubsw): Ditto.
19020
3a3f9d87
UB
19021 * config/i386/i386.c (struct_builtin_description)
19022 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
19023 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
19024 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
19025 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
19026 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
19027 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
19028 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
19029 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
19030 (ix86_fixup_binary_operands): Assert that src1
ffbaf337
UB
19031 and src2 must have the same mode when swapped.
19032 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
19033 and ix86_binary_operator_ok. Do not force operands in registers
19034 when optimizing.
19035
95622280
JH
190362008-05-07 Jan Hubicka <jh@suse.cz>
19037
19038 * cgraph.c (dump_cgraph_node): Update.
19039 * cgraph.h (cgraph_local_info): Break out inline summary.
19040 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
19041 hook.
19042 * ipa-inline (inline_summary): New accestor function.
19043 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
19044 cgraph_decide_inlining, compute_inline_parameters): Update.
19045 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
19046
96fcacb7
MK
190472008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
19048
19049 Cleanup ColdFire scheduling support and add V4 pipeline model.
19050
19051 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
19052 (define_attr cpu): Add cfv4 value.
19053 (define_attr type, define_attr type1): Merge into a single 'type'
19054 attribute. Update all uses.
19055 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
19056 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
19057 Update all uses.
19058 (define_attr opx_mem, define_attr opy_mem): Remove.
19059 (define_attr op_mem): Clean up, update comment.
19060 (define_attr size): Use specific values instead of general int.
19061 (define_attr guess, define_attr split): Remove. Update all uses.
19062 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
19063 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
19064 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
19065 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
19066 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
19067 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
19068 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
19069 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
19070 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
19071 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
19072 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
19073 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
19074 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
19075 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
19076 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
19077 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
19078 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
19079 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
19080 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
19081 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
19082 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
19083 Update or set attributes.
19084 (stack_tie): New fake instruction.
19085
19086 * config/m68k/m68k.h (TUNE_CFV4): New macro.
19087 (m68k_sched_attr_size): Update declaration.
19088 (m68k_sched_attr_type2): Remove.
19089 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
19090 Declare new bypass predicates.
19091
19092 * config/m68k/m68k.c (m68k_sched_issue_rate,
19093 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
19094 implementations.
19095 (TARGET_SCHED_ISSUE_RATE,
19096 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
19097 (override_options): Handle scheduling for ColdFire V4 core.
19098 (m68k_expand_prologue): Emit stack_tie.
19099 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
19100 'OP_TYPE_FPN'. Update all uses.
19101 (sched_guess_p): Remove.
19102 (sched_address_type): Handle symbolic addresses.
19103 (sched_get_operand): New static function.
19104 (sched_operand_type): Merge into sched_attr_op_type.
19105 (sched_attr_op_type): Handle FP registers, handle quick constants,
19106 update.
19107 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
19108 (m68k_sched_attr_size): Update. Move logic to ...
19109 (sched_get_attr_size_int): New static function.
19110 (sched_get_opxy_mem_type): New static function.
19111 (m68k_sched_attr_op_mem): Update.
19112 (m68k_sched_attr_type2): Remove.
19113 (sched_cfv4_bypass_data): New static variable.
19114 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
19115 (m68k_sched_issue_rate): Implement scheduler hook.
19116 (struct _sched_ib: enabled_p): New field.
19117 (m68k_sched_variable_issue): Update. Handle V4.
19118 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
19119 sched_dump_class_func_t, sched_dump_split_class,
19120 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
19121 sched_dump_dfa_class, m68k_sched_dump): Remove.
19122 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
19123 hook.
19124 (m68k_sched_init_global): Remove statisctics dumping, introduce
19125 sanity check that all instructions have pipeline reservations. Handle
19126 ColdFire V4 core.
19127 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
19128 Handle ColdFire V4 core.
19129 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
19130 New static functions.
19131 (m68k_sched_address_bypass_p): New bypass predicate.
19132 (sched_get_indexed_address_scale): New static function.
19133 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
19134
19135 * cf.md: Update comments.
19136 (define_attr type2): Remove. Use 'type' attribute instead.
19137 Update all uses.
19138 (cf_ib): Rename to cfv123_ib. Update all uses.
19139 (cf_oep): Rename to cfv123_oep. Update all uses.
19140 (cf_chr): Rename to cfv123_chr. Update all uses.
19141 (cf_mem): Rename to cfv123_mem. Update all uses.
19142 (cf_mac): Move to more appropriate place.
19143 (cfv123_guess): New automaton and cpu_unit.
19144 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
19145 Update uses of 'size' attribute. Handle before reload scheduling.
19146 (cfv123_guess): New dummy reservation for unhandled instructions.
19147 (cfv4_*): Pipeline description of ColdFire V4 core.
19148 (ignore): New reservation to handle 'ignore' type.
19149
2ee510b4
ILT
191502008-05-07 Ian Lance Taylor <iant@google.com>
19151
19152 PR middle-end/36013
19153 * gimplify.c (find_single_pointer_decl_1): Don't look through
19154 indirections.
19155 (find_single_pointer_decl): Adjust comments.
19156
c18c98c0
JJ
191572008-05-07 Jakub Jelinek <jakub@redhat.com>
19158
f61edbf6
JJ
19159 PR middle-end/36137
19160 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
19161 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
19162
c18c98c0
JJ
19163 PR middle-end/36106
19164 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
19165 integral type rather than floating point, then VIEW_CONVERT_EXPR
19166 to the floating point type.
19167
c18c98c0 191682008-05-07 Uros Bizjak <ubizjak@gmail.com>
537d4fa6
UB
19169
19170 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
19171 TFmode op0 to register.
19172
5f04ff80
AM
191732008-05-07 Alan Modra <amodra@bigpond.net.au>
19174
19175 * c-decl.c (grokdeclarator): Comment typo.
19176
c6c6b7aa
AH
191772008-05-06 Aldy Hernandez <aldyh@redhat.com>
19178
19179 * tree-flow.h: Remove prototype for computed_goto_p.
19180 * tree-cfg.c (computed_goto_p): Make static.
19181
4317a2fa
L
191822008-05-06 H.J. Lu <hongjiu.lu@intel.com>
19183
19184 PR target/35657
d0b48c67 19185 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4317a2fa
L
19186 (contains_aligned_value_p): This. Handle _Decimal128.
19187 (ix86_function_arg_boundary): Only align _Decimal128 to its
19188 natural boundary and handle it properly.
19189
c43f07af
MJ
191902008-05-06 Martin Jambor <mjambor@suse.cz>
19191
4317a2fa
L
19192 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
19193 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
19194 (ipcp_method_set_orig_node): Removed.
19195 (ipcp_cval_get_cvalue_type): Removed.
19196 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
19197 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
19198 (ipcp_cval_set_cvalue_type): Removed.
19199 (ipcp_cval_get_cvalue): Removed.
19200 (ipcp_cval_set_cvalue): Removed.
19201 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
19202 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
19203 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
19204 (ipcp_cval_meet): Renamed to ipa_lattice_meet
19205 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
19206 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
19207 (ipcp_get_ith_lattice): Changed parameters.
19208 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
19209 (ipcp_lattice_from_jfunc): Changed parameters.
c43f07af
MJ
19210 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
19211 (ipcp_method_cval_print): Added temporary variable info.
19212 (ipcp_redirect): Removed already unused local variable caller.
19213 (ipcp_redirect): New temporary variable orig_callee_info
19214 (ipcp_redirect): Removed newly unused local variable callee.
19215 (ipcp_redirect): Removed (a bit confusing) local variable type.
19216 (ipcp_insert_stage): Added local variable info.
22129589 19217 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
c43f07af
MJ
19218 renamed too
19219 (ipcp_formal_create): Removed.
19220 (ipcp_method_cval_set): Removed.
19221 (ipcp_propagate_stage): Renamed lattice variables.
19222 (ipcp_method_cval_set_cvalue_type): Removed.
19223 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
22129589 19224 (ipcp_print_all_lattices): Changed printed strings to refer to
c43f07af
MJ
19225 lattices rather than cvals.
19226 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
19227 (ipcp_propagate_const): Changed formal parameters.
19228 (build_const_val): Changed formal parameters.
19229 (ipcp_insert_stage): Removed useless variable cvalue
19230 (build_const_val): Changed formal parameters.
19231 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
19232 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
19233 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
19234 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
22129589 19235 (ipcp_print_func_profile_counts): Changed string from "method" to
c43f07af
MJ
19236 "function"
19237 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
19238 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
19239 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
19240 (ipcp_structures_print): Renamed to ipcp_print_all_structures
19241 (ipcp_profile_print): Renamed to ipcp_print_profile_data
19242 (ipcp_lat_is_const): Changed parameters and made inline.
19243 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
19244 (ipcp_redirect): Renamed to ipcp_need_redirect_p
22129589 19245 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
c43f07af
MJ
19246 the predicate condition directly
19247 (ipcp_propagate_stage): Added local variable args. Removed local
19248 variable callee. (Both are mere code simplifications.)
19249 (ipcp_method_dont_insert_const): Renamed to
19250 ipcp_node_not_modifiable_p.
19251 (ipcp_node_not_modifiable_p): Made inline.
19252 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
19253 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
19254 (ipcp_print_all_lattices): Removed variable cvalue
19255 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
19256 Updated comments.
19257
2b9d6cf3
OH
192582008-05-06 Olivier Hainque <hainque@adacore.com>
19259
19260 * tree-sra.c (try_instantiate_multiple_fields): Early return
19261 if field has POINTER_TYPE.
19262
18efb179
KT
192632008-05-06 Kai Tietz <kai.tietz@onevision.com>
19264
19265 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
19266 by using 'q' specifier for instruction.
19267 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
19268
38ce04d9
AS
192692008-05-06 Anatoly Sokolov <aesok@post.ru>
19270
19271 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
19272 Change mode of zero_extract from QImode to HImode.
19273 (sign bit tests peepholes): (Ditto.).
19274
333d8f61
UB
192752008-05-06 Uros Bizjak <ubizjak@gmail.com>
19276
19277 * config/i386/mmx.md: Remove double backslashes from asm templates.
d0b48c67 19278 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
333d8f61
UB
19279 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
19280 to handle nonimmediate operands.
d0b48c67 19281 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
333d8f61
UB
19282 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
19283 to handle nonimmediate operands.
d0b48c67
UB
19284 (*mmx_<code>v2sf3_finite): New insn pattern.
19285 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
333d8f61
UB
19286 (mmx_<code>v2sf3): New expander. Use
19287 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19288 (mmx_<plusminus_insn><mode>3): New expander. Use
19289 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 19290 (*mmx_<plusminus_insn><mode>3): New insn pattern.
333d8f61
UB
19291 (mmx_add<mode>3): Removed.
19292 (mmx_ssadd<mode>3): Ditto.
19293 (mmx_usadd<mode>3): Ditto.
19294 (mmx_sub<mode>3): Ditto.
19295 (mmx_sssub<mode>3): Ditto.
19296 (mmx_ussub<mode>3): Ditto.
d0b48c67 19297 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
333d8f61
UB
19298 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
19299 to handle nonimmediate operands.
d0b48c67 19300 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
333d8f61
UB
19301 insn pattern.
19302 (mmx_smulv4hi3_highpart): New expander. Use
19303 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 19304 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
333d8f61
UB
19305 insn pattern.
19306 (mmx_umulv4hi3_highpart): New expander. Use
19307 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 19308 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
333d8f61
UB
19309 (mmx_<code>v4hi3): New expander. Use
19310 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 19311 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
333d8f61
UB
19312 (mmx_<code>v8qi3): New expander. Use
19313 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 19314 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
333d8f61
UB
19315 (mmx_<code><mode>3): New expander. Use
19316 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
19317
3716f233
JH
193182008-05-05 Jan Hubicka <jh@suse.cz>
19319
19320 PR tree-optimization/36118
19321 * passes.c (pass_init_dump_file): Fix dump header.
19322
1aee3ab6
AP
193232008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
19324
19325 PR middle-end/36141
333d8f61
UB
19326 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
19327 VCE for function decls.
1aee3ab6 19328
0d07fcad
L
193292008-05-05 H.J. Lu <hongjiu.lu@intel.com>
19330
19331 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
19332
d1c3b587
L
193332008-05-05 H.J. Lu <hongjiu.lu@intel.com>
19334
19335 * config/i386/i386.md (sat_plusminus): New.
19336 (plusminus_insn): Likewise.
19337 (plusminus_mnemonic): Likewise.
19338 (addsub): Removed.
19339 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
19340 (*<addsub><mode>3_cc_overflow): Renamed to ...
19341 (*<plusminus_insn><mode>3_cc_overflow): This.
19342 (*<addsub>si3_zext_cc_overflow): Renamed to ...
19343 (*<plusminus_insn>si3_zext_cc_overflow): This.
19344
0d07fcad 19345 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
d1c3b587
L
19346 (<plusminus_insn><mode>3): This.
19347 (*<addsub><mode>3): Renamed to ...
19348 (*<plusminus_insn><mode>3): This.
19349 (<sse>_vm<addsub><mode>3): Renamed to ...
19350 (<sse>_vm<plusminus_insn><mode>3): This.
19351 (sse3_h<addsub>v4sf3): Renamed to ...
19352 (sse3_h<plusminus_insn>v4sf3): This.
19353 (sse3_h<addsub>v2df3): Renamed to ...
19354 (sse3_h<plusminus_insn>v2df3): This.
19355 (<plusminus_insn><mode>3): New.
19356 (*<plusminus_insn><mode>3): Likewise.
19357 (sse2_<plusminus_insn><mode>3): Likewise.
19358 (add<mode>): Removed.
19359 (*add<mode>3): Likewise.
19360 (sse2_ssadd<mode>3): Likewise.
19361 (sse2_usadd<mode>3): Likewise.
19362 (sub<mode>3): Likewise.
19363 (*sub<mode>3): Likewise.
19364 (sse2_sssub<mode>3): Likewise.
19365 (sse2_ussub<mode>3): Likewise.
19366
23688481
BK
193672008-05-05 Benjamin Kosnik <bkoz@redhat.com>
19368
d1c3b587
L
19369 * gthr-single.h: Add in required interface elements as per gthr.h.
19370 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
19371 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
22129589 19372 Generalize UNUSED macro.
d1c3b587
L
19373 (__gthread_once): Add.
19374 (__gthread_key_create): Add.
333d8f61 19375 (__gthread_key_delete): Add.
d1c3b587 19376 (__gthread_getspecific): Add.
333d8f61 19377 (__gthread_setspecific): Add.
22129589 19378
e06f0ff9
AP
193792008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
19380
23688481
BK
19381 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
19382 the same size types for the indirect reference on the rhs, then
19383 create a VCE.
e06f0ff9 19384
8c32cbc9
UB
193852008-05-05 Uros Bizjak <ubizjak@gmail.com>
19386
19387 * config/i386/i386.md
19388 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
19389 one insn template instead of template series.
19390 (*xordi_1_rex64): Ditto.
19391 (*xordi_2_rex64): Ditto.
19392
06d10aaf
IR
193932008-05-05 Ira Rosen <irar@il.ibm.com>
19394
8c32cbc9 19395 PR tree-optimization/36119
06d10aaf
IR
19396 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
19397 in case of SLP.
19398
24c05141
JH
193992008-06-04 Jan Hubicka <jh@suse.cz>
19400
19401 tree-optimization/36100
19402 * tree-pass.h (pass_O0_always_inline): Declare.
19403 * ipa-inline.c (inline_transform): Remove dead code.
19404 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
19405 pass_O0_always_inline): New.
19406 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
19407
8fa8585d
KT
194082008-05-04 Kai Tietz <kai.tietz@onevision.com>
19409
19410 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
19411 mnemonic in this_param move for TARGET_64BIT.
19412
62d2739a
UB
194132008-05-04 Uros Bizjak <ubizjak@gmail.com>
19414
19415 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
19416 (*strmovsi_rex_1): Ditto.
19417 (*strsetsi_1): Ditto.
19418 (*strsetsi_rex_1): Ditto.
19419
19420 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
19421 adddicc expanders using SWI mode iterator.
19422
4d31c3e1
L
194232008-05-04 H.J. Lu <hongjiu.lu@intel.com>
19424
19425 PR target/36121
62d2739a
UB
19426 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
19427 argument handling.
4d31c3e1 19428
5f7ca34b
DM
194292008-05-04 David S. Miller <davem@davemloft.net>
19430
19431 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
19432 (sparc*-*-linux*): Use linux.h in tm_file.
19433 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
19434 compiler defaulting to 32-bit.
19435 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
19436 no longer needed.
19437 * config/sparc/linux.h: Remove definitions now obtained
19438 properly from linux.h
19439 * config/sparc/linux64.h: Likewise.
19440 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
19441 don't want this setting for 32-bit builds in a biarch compiler.
19442 * doc/install.texi: Add sparc-linux to list of targets
19443 supporting --enable-targets=all.
19444
5a3db6d5
AP
194452008-05-03 Andrew Pinski <pinskia@gmail.com>
19446
19447 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
19448
3c7ae64a
L
194492008-05-03 H.J. Lu <hongjiu.lu@intel.com>
19450
19451 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
19452 after V4SI_FTYPE_V8HI.
19453 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
19454 case V4SI_FTYPE_V2DF.
19455
4218dc2d 194562008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
75643ab1
KZ
19457
19458 * doc/invoke.texi (max-flow-memory-locations): Removed.
19459 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
22129589 19460
621b5ed6
RG
194612008-05-03 Richard Guenther <rguenther@suse.de>
19462
19463 PR middle-end/34973
19464 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
19465
11835124
DM
194662008-05-02 David S. Miller <davem@davemloft.net>
19467
19468 * config.gcc (need_64bit_hwint): Document libcpp dependency.
19469
e4d35515
SB
194702008-05-02 Simon Baldwin <simonb@google.com>
19471
19472 PR bootstrap/36108
19473 * c-common.h (warn_array_subscript_range): Removed.
19474 * c-common.c (warn_array_subscript_range): Ditto.
19475 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
19476 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
19477
bb1418c1
L
194782008-05-02 H.J. Lu <hongjiu.lu@intel.com>
19479
19480 * config/i386/i386.c (ix86_special_builtin_type): New.
19481 (bdesc_special_args): Likewise.
19482 (ix86_expand_special_args_builtin): Likewise.
19483 (ix86_init_mmx_sse_builtins): Updated.
19484 (ix86_expand_builtin): Updated.
19485 (ix86_expand_store_builtin): Removed.
19486 (ix86_expand_unop_builtin): Likewise.
19487
19488 * config/i386/mm3dnow.h (__v2sf): Moved to ...
19489 * config/i386/mmintrin.h (__v2sf): Here.
19490
19491 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
19492 const __v2sf.
19493 (_mm_loadl_pi): Likewise.
19494 (_mm_storeh_pi): Replace __v2si with __v2sf.
19495 (_mm_storel_pi): Likewise.
19496
19497 * doc/extend.texi: Correct __builtin_ia32_loadhps,
19498 __builtin_ia32_loadlps, __builtin_ia32_storehps,
19499 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
19500 __builtin_ia32_loadlpd.
19501
195022008-05-02 H.J. Lu <hongjiu.lu@intel.com>
19503
19504 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
19505 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
19506 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
19507 (ix86_init_mmx_sse_builtins): Updated.
19508 (ix86_expand_args_builtin): Likewise.
19509 (ix86_expand_builtin): Likewise.
19510 (ix86_expand_unop1_builtin): Renamed to ...
19511 (ix86_expand_unop_vec_merge_builtin): This.
19512
a12f79f5
JH
195132008-05-01 Jan Hubicka <jh@suse.cz>
19514
19515 PR bootstrap/36100
19516 * ipa-inline.c (inline_generate_summary): Make static.
19517 (inline_transform): Do not call inlining at -O0; make static.
19518 * passes.c (execute_todo): Add sanity check.
19519 (execute_one_ipa_transform_pass): Execute proper flags.
19520
b5487346
EB
195212008-05-01 Eric Botcazou <ebotcazou@adacore.com>
19522
19523 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
19524 (DECL_NONADDRESSABLE_P): Likewise.
19525 * alias.c (record_component_aliases): Fix comment.
19526
ca873b0e
SB
195272008-05-01 Simon Baldwin <simonb@google.com>
19528
19529 * c-common.h (warn_array_subscript_range): New function.
19530 * c-common.c (warn_array_subscript_range): Ditto.
19531 * tree-vrp.c (check_array_ref): Corrected code to agree with
19532 comment, ignoring only arrays of size 0 or size 1.
19533 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
19534
99c25ac1
L
195352008-05-01 H.J. Lu <hongjiu.lu@intel.com>
19536
19537 * config/i386/i386.c (ix86_builtin_type): Replace
19538 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
19539 (bdesc_args): Updated.
19540 (ix86_init_mmx_sse_builtins): Likewise.
19541 (ix86_expand_args_builtin): Likewise.
19542
19543 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
19544 with __v1di.
19545
19546 * doc/extend.texi: Correct __builtin_ia32_palignr.
19547
a44acfb9
L
195482008-05-01 H.J. Lu <hongjiu.lu@intel.com>
19549
19550 PR target/36095
19551 * config/i386/i386.c (bdesc_crc32): Removed.
19552 (ix86_expand_crc32): Likewise.
19553 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
19554 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
19555 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
19556 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
19557 UINT_FTYPE_UINT_UCHAR.
19558 (bdesc_args): Updated. Add crc32 builtins.
19559 (ix86_init_mmx_sse_builtins): Updated.
19560 (ix86_expand_args_builtin): Updated to support subreg.
19561
19562 * doc/extend.texi: Correct __builtin_ia32_crc32di.
19563
17653c00
JH
195642008-05-01 Jan Hubicka <jh@suse.cz>
19565
19566 * tree-pass.h (opt_pass): Add IPA_PASS.
19567 (varpool_node, cgraph_node): Forward declare.
19568 (ipa_opt_pass): Define.
19569 (pass_ipa_inline): Turn into ipa_opt_pass.
19570 (pass_apply_inline): Remove.
19571 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
19572 (apply_inline): Turn into ....
19573 (inline_transform): ... this one.
19574 (inline_generate_summary): New function.
19575 (pass_apply_inline): Remove.
19576 * function.h (ipa_opt_pass): Forward declare structure; typedef;
19577 vector.
19578 (struct function): Add ipa_transforms_to_apply.
19579 * passes.c (register_one_dump_file): Work on IPA_PASS.
19580 (init_optimization_passes): Remove pass_inline_parameters and
19581 pass_apply_inline.
19582 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
19583 (execute_one_pass) ... here; apply transforms when possible.
19584 (add_ipa_transform_pass, execute_ipa_summary_asses,
19585 execute_one_ipa_transform_pass): New.
19586 (execute_ipa_pass_list): Update for IPA_PASS type.
19587
bd9513ea
L
195882008-05-01 H.J. Lu <hongjiu.lu@intel.com>
19589
19590 * config/i386/i386.c (ix86_builtin_type): Add
19591 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
19592 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
19593 (bdesc_args): Add SSE4a builtins.
19594 (ix86_init_mmx_sse_builtins): Updated.
19595 (ix86_expand_args_builtin): Likewise.
19596 (ix86_expand_builtin): Likewise.
19597
858e5e79
L
195982008-05-01 H.J. Lu <hongjiu.lu@intel.com>
19599
19600 * config/i386/i386.c (ix86_builtin_type): Add
19601 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
19602 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
19603 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
19604 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
19605 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
19606 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
19607 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
19608 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
19609 and DI_FTYPE_DI_DI_INT.
19610 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
19611 (ix86_init_mmx_sse_builtins): Updated.
19612 (ix86_expand_args_builtin): Likewise.
19613 (ix86_expand_builtin): Likewise.
19614 (ix86_expand_binop_imm_builtin): Removed.
19615
19616 * doc/extend.texi: Correct __builtin_ia32_palignr128.
19617
a91ded4b
RG
196182008-04-30 Richard Guenther <rguenther@suse.de>
19619
19620 PR tree-optimization/32921
19621 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
19622
ad516a74
RS
196232008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
19624
19625 * config/arm/arm.c (arm_unwind_emit): Use
19626 crtl->all_throwers_are_sibcalls instead of
19627 cfun->all_throwers_are_sibcalls.
19628 (arm_output_fn_unwind): Likewise.
19629 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
19630 instead of cfun->uses_pic_offset_table.
19631 (frv_expand_prologue): Likewise.
19632 (frv_frame_pointer_required): Likewise.
19633 (frv_expand_fdpic_call): Likewise.
19634 (frv_emit_movsi): Likewise.
19635 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
19636 cfun->returns_pcc_struct instead of
19637 current_function_returns_pcc_struct.
19638 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
19639 instead of cfun->calls_eh_return.
19640 (m32c_pushm_popm): Likewise.
19641 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
19642 "extern" declaration.
19643
00d382a8
RG
196442008-04-30 Richard Guenther <rguenther@suse.de>
19645
19646 PR tree-optimization/21636
19647 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
19648 constant address.
19649 (evaluate_stmt): Print the likely value.
19650 (ccp_visit_stmt): Avoid excessive vertical spacing.
19651
e49cf927 196522008-04-30 Rafael Espíndola <espindola@google.com>
45e18420
RAE
19653
19654 * builtins.c (fold_call_expr): Return realret.
19655 * tree-ssa-threadedge.c
19656 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
19657 __builtin_object_size.
19658
fe7df9c4
SP
196592008-04-30 Seongbae Park <seongbae.park@gmail.com>
19660
19661 * gcc.c (wrapper_string): New variable.
19662 (insert_wrapper): New function.
19663 (execute): New option -wrapper.
19664 * doc/invoke.texi (Overall Options): New driver option -wrapper.
19665
18724e30
NF
196662008-04-30 Nathan Froyd <froydnj@codesourcery.com>
19667
62d2739a
UB
19668 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
19669 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
19670 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
19671 from...
19672 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
19673 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
19674 config/rs6000/e500crtres64gprctr.asm,
19675 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
19676 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
19677 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
19678 config/rs6000/e500crtsav64gprctr.asm,
19679 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
19680 config/rs6000/e500crtsavg64gprctr.asm: New files.
19681 * config/rs6000/t-ppccomm: Add build rules for new files.
19682 (LIB2FUNCS_STATIC_EXTRA): Add new files.
19683 * config/rs6000/t-netbsd: Add build rules for new files.
19684 (LIB2FUNCS_STATIC_EXTRA): New variable.
19685 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
19686 (CRTSAVRES_DEFAULT_SPEC): Likewise.
19687 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18724e30 19688
1b667c82
L
196892008-04-30 H.J. Lu <hongjiu.lu@intel.com>
19690
19691 * config/i386/i386.c (ix86_builtin_type): Add
19692 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
19693 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
19694 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
19695 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
19696 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
19697 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
19698 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
19699 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
19700 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
19701 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
19702 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
19703 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
19704 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
19705 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
19706 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
19707 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
19708 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
19709 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
19710 V1DI_FTYPE_V2SI_V2SI.
19711 (bdesc_2arg): Moved to ...
19712 (bdesc_args): Here.
19713 (ix86_init_mmx_sse_builtins): Updated.
19714 (ix86_expand_args_builtin): Updated. Take a pointer
19715 to const struct builtin_description. Handle comparison
19716 builtin functions.
62d2739a 19717 (ix86_expand_sse_compare): Take a new argument for swapping operands.
1b667c82
L
19718 (ix86_expand_builtin): Updated.
19719
19720 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
19721 (ssse3_pmaddubsw128): This.
19722 (ssse3_pmaddubswv4hi3): Renamed to ...
19723 (ssse3_pmaddubsw): This.
19724
62d2739a 19725 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1b667c82 19726 (__builtin_ia32_packssdw128): Likewise.
62d2739a 19727 (__builtin_ia32_packuswb128): Likewise.
1b667c82
L
19728 (__builtin_ia32_pmaddubsw): Likewise.
19729 (__builtin_ia32_pmaddubsw128): Likewise.
19730
d7b339dd
RG
197312008-04-30 Richard Guenther <rguenther@suse.de>
19732
19733 PR tree-optimization/14847
19734 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
19735 (recognize_bits_test): Use it.
19736 (recognize_single_bit_test): Likewise.
19737
6a3f3fea
MJ
197382008-04-30 Martin Jambor <mjambor@suse.cz>
19739
19740 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
19741 instead of setting number of formal parameters to zero.
22129589 19742 (ipcp_init_stage): Do not set the number of actual parameters to zero
6a3f3fea
MJ
19743 either.
19744 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
19745 which are called with variable number of arguments.
19746 (ipcp_insert_stage): Explicitely skipping all nodes which are
19747 called with variable number of arguments.
22129589 19748 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
6a3f3fea
MJ
19749 number of parameters.
19750
19751 * ipa-prop.h (struct ipa_node_params): Added flag
19752 called_with_var_arguments
19753 (ipa_set_param_count): Added. Changed sole setter to use it.
19754 (ipa_get_param_count): Added. All readers of param_count
19755 converted to use it instead.
19756 (ipa_set_called_with_variable_arg): Added.
19757 (ipa_is_called_with_var_arguments): Added.
19758 (ipa_get_ith_param): Added. All readers of param_decls converted
19759 to use it instead.
22129589
AS
19760 (ipa_set_cs_argument_count): Added, sole writer to argument_count
19761 changed to use it.
6a3f3fea
MJ
19762 (ipa_get_cs_argument_count): Added, all readers of argument_count
19763 changed to cal it.
22129589 19764 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
6a3f3fea 19765 to use it.
22129589 19766
6a3f3fea
MJ
19767 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
19768 (struct ipcp_lattice): Renamed cval_type to type
19769 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
19770
19771 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
19772 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
19773 (ipcp_insert_stage): Changed the type of variable cvalue to tree
19774 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
19775 (build_const_val): Changed the type of parameter cvalue to tree
19776 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
19777 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
22129589
AS
19778
19779 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
19780 constant
6a3f3fea
MJ
19781
19782 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
19783 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
19784 (ipa_add_method): Renamed to ipa_push_func_to_list
19785 (ipa_remove_method): Renamed to ipa_pop_func_from_list
19786 (ipa_callsite_param_count): Removed.
19787 (ipa_callsite_param_count_set): Removed.
19788 (ipa_callsite_param): Removed.
19789 (ipa_callsite_callee): Removed.
19790 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
19791 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
19792 (ipa_method_formal_count): Removed.
19793 (ipa_method_formal_count_set): Removed.
19794 (ipa_method_get_tree): Removed.
19795 (ipa_method_tree_map_create): Removed.
19796 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
19797 (ipa_create_param_decls_array): Creates the array itself
22129589 19798 (ipa_create_param_decls_array): Temporary variable info instead of
6a3f3fea
MJ
19799 a few dereferences.
19800 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
19801 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
19802 (get_type): Removed.
19803 (ipa_jf_get_info_type): Removed.
19804 (ipa_node_create): Renamed to ipa_create_node_params
19805 (ipa_free): Renamed to ipa_free_all_node_params
19806 (ipa_nodes_create): Renamed to ipa_create_all_node_params
19807 (ipa_edges_create): Renamed to ipa_create_all_edge_args
19808 (ipa_edges_free): Renamed to ipa_free_all_edge_args
19809 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
22129589 19810 (ipa_free_all_node_params): Deallocation to jump_functions moved to
6a3f3fea
MJ
19811 ipa_free_all_edge_args
19812 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
19813 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
19814 (ipa_create_methodlist_node): Removed.
19815 (ipa_methodlist_method): Removed.
19816 (ipa_methodlist_method_set): Removed.
19817 (ipa_methodlist_next_method): Removed.
19818 (ipa_methodlist_next_method_set): Removed.
19819 (ipa_method_is_modified): Removed.
19820 (ipa_method_modify_create): Removed.
22129589 19821 (ipa_method_modify_init): Temporary variable info instead of a few
6a3f3fea 19822 dereferences.
22129589 19823 (ipa_detect_param_modifications): Temporary variable info instead of
6a3f3fea 19824 a few dereferences.
22129589 19825 (ipa_compute_jump_functions): Temporary variable info instead of
6a3f3fea
MJ
19826 a few dereferences.
19827 (ipa_method_modify_set): Removed.
19828 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
22129589 19829 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
6a3f3fea
MJ
19830 than craph_node as the first parameter.
19831 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
19832 (ipa_method_modify_init): Removed.
22129589 19833 (ipa_compute_jump_functions): Added a temp variable instead of
6a3f3fea
MJ
19834 repeatadly dereferencing the cgraph_edge.aux pointer
19835 (ipa_callsite_param_set_type): Removed.
22129589 19836 (ipa_compute_jump_functions): i renamed to index and moved to
6a3f3fea
MJ
19837 an inner block
19838 (ipa_callsite_param_set_info_type_formal): Removed.
19839 (ipa_callsite_param_set_info_type): Removed.
19840 (ipa_callsite_param_map_create): Removed.
19841 (ipa_callsite_tree): Removed.
19842 (ipa_callsite_caller): Removed.
19843 (ipa_pop_func_from_list): return_method removed to return_func
19844
19845 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
19846 prefixed all values with IPA_. Changed all users.
22129589
AS
19847 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
19848 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
19849 and FORMAL_IPATYPE IPA_PASS_THROUGH.
6a3f3fea
MJ
19850 (union parameter_info): Renamed to jump_func_value.
19851 (union jump_func_value): Renamed value to constant
19852 (struct ipa_jump_func): Renamed info_type to value
19853 (struct ipa_node): Renamed to ipa_node_params
19854 (struct ipa_node_params): Renamed ipa_arg_num to param_count
19855 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
19856 (struct ipa_node_params): Renamed ipa_mod to modified_flags
19857 (struct ipa_edge): Renamed to ipa_edge_args
19858 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
19859 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
19860 (struct ipa_methodlist): Renamed to ipa_func_list
19861 (struct ipa_func_list): method_p renamed to node, next_method
19862 renamed to next
19863 (ipa_methodlist_p): Removed, switched all users to struct pointer
19864 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
19865
1c9c5e43
AM
198662008-04-30 Alan Modra <amodra@bigpond.net.au>
19867
19868 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
19869 (rs6000_emit_epilogue): Use backchain to restore only when we
19870 have a large frame. Make use of frame pointer to restore if we
19871 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
19872
cf2758e3
PB
198732008-04-29 Paolo Bonzini <bonzini@gnu.org>
19874
19875 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
19876 Add mode to zero_extract.
19877 (sign bit tests peepholes): (Ditto.).
19878
f318ff0a
L
198792008-04-29 H.J. Lu <hongjiu.lu@intel.com>
19880
19881 * config/i386/i386.c (ix86_builtins): Replace Prescott New
19882 Instructions in comments with SSE3.
19883 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
19884 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
19885 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
19886 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
19887 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
19888 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
19889 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
19890 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
19891 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
19892 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
19893 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
19894 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
19895 (bdesc_sse_args): Renamed to ...
19896 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
19897 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
19898 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
19899 IX86_BUILTIN_FABSQ.
19900 (bdesc_1arg): Moved to ...
19901 (bdesc_args): Here.
19902 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
19903 Instructions in comments with SSE3.
19904 (ix86_expand_sse_operands_builtin): Renamed to ...
19905 (ix86_expand_args_builtin): This. Updated.
19906 (ix86_expand_unop1_builtin): Update comments.
19907 (ix86_expand_builtin): Updated.
19908
ace4eb90
RG
199092008-04-29 Richard Guenther <rguenther@suse.de>
19910
19911 PR tree-optimization/36078
19912 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
19913 Update virtual SSA form after cleaning up the CFG.
19914
1447bf05
RG
199152008-04-29 Richard Guenther <rguenther@suse.de>
19916
19917 PR middle-end/15255
19918 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
19919
59e6913a
RG
199202008-04-29 Richard Guenther <rguenther@suse.de>
19921
19922 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
19923 (compute_may_aliases): Do not call finalize_ref_all_pointers.
19924 (compute_flow_insensitive_aliasing): Do not treat
19925 PTR_IS_REF_ALL pointers special.
19926 (get_smt_for): Likewise.
19927 (may_alias_p): Re-structure.
19928 (is_escape_site): A ref-all pointer conversion is not an escape site.
19929 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
19930 PTR_IS_REF_ALL pointers special.
19931 * tree-ssa-structalias.h (struct alias_info): Remove
19932 ref_all_symbol_mem_tag field.
19933 (PTR_IS_REF_ALL): Remove.
19934
81ad578e
RG
199352008-04-29 Richard Guenther <rguenther@suse.de>
19936
19937 PR middle-end/36077
19938 * fold-const.c (extract_muldiv_1): In combining division constants
19939 make sure to never overflow.
19940
4830ba1f
NC
199412008-04-29 Nick Clifton <nickc@redhat.com>
19942
19943 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
19944
b1c61c7e
RW
199452008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19946
19947 PR bootstrap/35169
19948 * optc-gen.awk: Work around HP-UX/IA awk bug.
19949
d6b68fcc
DS
199502008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
19951
19952 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
19953 2008-04-25 commit.
19954
0d5fd2b8
UB
199552008-04-28 Uros Bizjak <ubizjak@gmail.com>
19956
19957 PR target/36073
19958 * config/i386/i386.md
19959 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
19960 Change operand 1 predicate to nonimmediate_operand.
19961
623f8e39
JJ
199622008-04-28 Jakub Jelinek <jakub@redhat.com>
19963
19964 PR debug/36060
19965 * dwarf2out.c (struct die_struct): Mark as chain_circular through
19966 die_sub field.
19967 * gengtype.c (walk_type, write_func_for_structure): Handle
19968 chain_circular.
19969 * doc/gty.texi: Document chain_circular.
19970
82893cba
RG
199712008-04-28 Richard Guenther <rguenther@suse.de>
19972
19973 PR tree-optimization/36066
19974 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
19975 SCEV and loop.
19976
e356fac8
UB
199772008-04-28 Uros Bizjak <ubizjak@gmail.com>
19978
19979 PR target/36064
0d5fd2b8
UB
19980 * config/i386/i386.md
19981 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
e356fac8
UB
19982 Use match_scratch instead of match_operand for operands 3 and 4.
19983
d6e840ee
RG
199842008-04-27 Richard Guenther <rguenther@suse.de>
19985
19986 PR tree-optimization/18754
19987 PR tree-optimization/34223
19988 * tree-pass.h (pass_complete_unrolli): Declare.
19989 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
19990 loop size before and after unconditionally of UL_NO_GROWTH in effect.
19991 Rewrite loop into loop closed SSA form if it is not already.
19992 (tree_unroll_loops_completely): Re-structure to iterate over
19993 innermost loops with intermediate CFG cleanups.
19994 Unroll outermost loops only if requested or the code does not grow
19995 doing so.
19996 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
19997 loops are available.
19998 (tree_vectorize): Instead do so here.
19999 (tree_complete_unroll): Also unroll outermost loops.
20000 (tree_complete_unroll_inner): New function.
20001 (gate_tree_complete_unroll_inner): Likewise.
20002 (pass_complete_unrolli): New pass.
20003 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
20004 uses outside of the loop.
20005 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
22129589 20006 form if it is available.
d6e840ee
RG
20007 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
20008 * passes.c (init_optimization_passes): Schedule complete inner
20009 loop unrolling pass before the first CCP pass after final inlining.
20010
feb60f03
NS
200112008-04-27 Nathan Sidwell <nathan@codesourcery.com>
20012
20013 * targhooks.h (default_emutls_var_fields,
20014 default_emutls_var_init): Declare.
20015 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
20016 * target.h (struct gcc_target): Add struct emutls member.
20017 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
20018 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
20019 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
20020 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
20021 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
20022 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
20023 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
20024 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
20025 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
20026 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
20027 emit debug information.
20028 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
20029 * varasm.c: Include targhooks.h.
20030 (emutls_object_section, emutls_tmpl_section): New.
20031 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
20032 (EMUTLS_SEPARATOR): New.
20033 (prefix_name): New.
20034 (get_emutls_object_name): New.
20035 (default_emutls_var_fields): New, broken out of ...
20036 (get_emutls_object_type): ... here. Adjust to use target hooks.
20037 (get_emutls_init_templ_addr): Adjust to use target hooks.
20038 (emutls_decl): Adjust to use target hooks.
20039 (emutls_finish): Likewise.
20040 (default_emutls_var_init): New, broken out of ...
20041 (assemble_variable): ... here. Adjust to use target hooks.
20042 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
20043 SECCAT_EMUTLS_TMPL.
20044 * c-common.c (handle_section_attribute): Prevent overriding
20045 sections for emulated tls with special sections.
20046 * config/i386/i386.c (x86_64_elf_select_section): Add
20047 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
20048 (x86_64_elf_unique_section): Likewise.
20049 * config/vxworks.c: Include tree.h.
20050 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
20051 (vxworks_override_options): Set TLS scheme.
623f8e39 20052 * doc/tm.texi (Emulated TLS): New node.
feb60f03 20053
6bfb7f10
SB
200542008-04-26 Simon Baldwin <simonb@google.com>
20055
20056 PR c/35652
20057 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
20058 with propagated string constants.
20059
73e8165a
UB
200602008-04-26 Uros Bizjak <ubizjak@gmail.com>
20061
20062 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
20063 constraint for operand 2 when operand 0 is memory operand.
20064 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
20065 operand 0 is memory operand.
20066 (fix_trunc<mode>_i387_with_temp): Ditto.
20067 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
20068 operand 2 when operand 1 is memory operand.
20069 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
20070 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
20071 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
20072 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
20073 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
20074 operands 2,3 and 4 when operand 1 is memory operand.
20075 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
20076 is memory operand.
20077 (fistdi2_floor_with_temp): Ditto.
20078 (fist<mode>2_floor_with_temp): Ditto.
20079 (fistdi2_ceil_with_temp): Ditto.
20080 (fist<mode>2_ceil_with_temp): Ditto.
20081 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
20082
49bce30a
RS
200832008-04-26 David Daney <ddaney@avtrex.com>
20084
20085 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
20086 unspec_volitile.
20087 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
20088 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
20089 UNSPEC_UPDATE_GOT_VERSION): Renumber.
20090 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
20091 (compare_and_swap_12): New insn.
20092 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
20093 * config/mips/mips.c (mips_force_binary): New function.
20094 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
20095 (mips_expand_compare_and_swap_12): New function.
20096 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
20097
e3b5732b
JH
200982008-04-25 Jan Hubicka <jh@suse.cz>
20099
20100 PR testsuite/35843
20101 * cfgexpand.c (pass_expand): Turn into RTL pass.
20102 * passes.c (execute_one_pass): Do pass typechecking after execution.
20103 * tree-pass.h (pass_expand): Turn into RTL pass.
20104
20105 * function.h (struct rtl_data): Move here fields
20106 accesses_prior_frames, calls_eh_return, saves_all_registers,
20107 has_nonlocal_goto, has_asm_statement, is_thunk,
20108 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
20109 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
20110 arg_pointer_save_area_init from struct function; turn into bool.
20111 (struct function): Move
20112 calls_eh_return, saves_all_registers, has_nonlocal_goto,
20113 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
20114 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
20115 tail_call_emit, arg_pointer_save_area_init
20116 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
20117 (current_function_returns_struct, current_function_returns_pcc_struct,
20118 current_function_calls_setjmp, current_function_calls_alloca,
20119 current_function_accesses_prior_frames,
20120 current_function_calls_eh_return, current_function_is_thunk,
20121 current_function_stdarg, current_function_profile,
20122 current_function_limit_stack, current_function_uses_pic_offset_table,
20123 current_function_uses_const_pool, current_function_has_nonlocal_label,
20124 current_function_saves_all_registers,
20125 current_function_has_nonlocal_goto,
20126 current_function_has_asm_statement): Remove accesor macros.
20127 * ra-conflict.c (global_conflicts): Update.
20128 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
20129 (suitable_for_tail_call_opt_p): Update.
20130 * builtins.c (expand_builtin_return_addr): Update.
20131 (expand_builtin_setjmp_setup): Update.
20132 (expand_builtin_nonlocal_goto): Update.
20133 * final.c (final_start_function): Update.
20134 (profile_function): Update.
20135 (leaf_function_p): Update.
20136 (only_leaf_regs_used): Update.
20137 * df-scan.c (df_get_exit_block_use_set): Update.
20138 * dojump.c (clear_pending_stack_adjust): Update.
20139 * tree-stdarg.c (gate_optimize_stdarg): Update.
20140 * gimple-low.c (lower_function_body): Update.
20141 * global.c (compute_regsets): Update.
20142 (global_alloc): Update.
20143 * dwarf2out.c (dwarf2out_begin_prologue): Update.
20144 * expr.c (expand_assignment): Update.
20145 * dse.c (dse_step0): Update.
20146 (dse_step1): Update.
20147 * c-decl.c (store_parm_decls): Update.
20148 * local-alloc.c (combine_regs): Update.
20149 (find_free_reg): Update.
20150 * function.c (assign_parms_augmented_arg_list): Update.
20151 (assign_parm_find_data_types): Update.
20152 (assign_parms): Update.
20153 (allocate_struct_function): Update.
20154 (expand_function_start): Update.
20155 (expand_function_end): Update.
20156 (get_arg_pointer_save_area): Update.
20157 (thread_prologue_and_epilogue_insns): Update.
20158 (rest_of_match_asm_constraints): Update.
20159 * stor-layout.c (variable_size): Update.
20160 * gcse.c (gcse_main): Update.
20161 (bypass_jumps): Update.
20162 * gimplify.c (gimplify_function_tree): Update.
20163 * calls.c (emit_call_1): Update.
20164 (expand_call): Update.
20165 * bt-load.c (compute_defs_uses_and_gen): Update.
20166 * except.c (sjlj_assign_call_site_values): Update.
20167 (sjlj_emit_function_enter): Update.
20168 (can_throw_external): Update.
20169 (set_nothrow_function_flags): Update.
20170 (expand_builtin_unwind_init): Update.
20171 (expand_eh_return): Update.
20172 (convert_to_eh_region_ranges): Update.
20173 (output_function_exception_table): Update.
20174 * emit-rtl.c (gen_tmp_stack_mem): Update.
20175 * cfgexpand.c (expand_used_vars): Update.
20176 (tree_expand_cfg): Update.
20177 * cfgcleanup.c (rest_of_handle_jump): Update.
20178 * explow.c (allocate_dynamic_stack_space): Update.
20179 * varasm.c (assemble_start_function): Update.
20180 (force_const_mem): Update.
20181 (mark_constant_pool): Update.
20182 * tree-optimize.c (tree_rest_of_compilation): Update.
20183 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
20184 * tree-cfg.c (notice_special_calls): Update.
20185 (is_ctrl_altering_stmt): Update.
20186 (tree_can_make_abnormal_goto): Update.
20187 (tree_purge_dead_abnormal_call_edges): Update.
20188 * config/alpha/predicates.md: Update.
20189 * config/alpha/alpha.c (alpha_sa_mask): Update.
20190 (alpha_sa_size): Update.
20191 (alpha_does_function_need_gp): Update.
20192 (alpha_expand_prologue): Update.
20193 (alpha_start_function): Update.
20194 (alpha_output_function_end_prologue): Update.
20195 (alpha_expand_epilogue): Update.
20196 * config/frv/frv.c (frv_stack_info): Update.
20197 (frv_expand_epilogue): Update.
20198 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
20199 (s390_register_info): Update.
20200 (s390_frame_info): Update.
20201 (s390_init_frame_layout): Update.
20202 (s390_can_eliminate): Update.
20203 (save_gprs): Update.
20204 * config/spu/spu.c (spu_split_immediate): Update.
20205 (need_to_save_reg): Update.
20206 (spu_expand_prologue): Update.
20207 (spu_expand_epilogue): Update.
20208 * config/sparc/sparc.md: Update.
20209 * config/sparc/sparc.c (eligible_for_return_delay): Update.
20210 (sparc_tls_got): Update.
20211 (legitimize_pic_address): Update.
20212 (sparc_emit_call_insn): Update.
20213 (sparc_expand_prologue): Update.
20214 (output_return): Update.
20215 (print_operand): Update.
20216 (sparc_function_ok_for_sibcall): Update.
20217 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
20218 * config/m32r/m32r.md: Update.
20219 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
20220 (m32r_compute_frame_size): Update.
20221 (m32r_expand_prologue): Update.
20222 (m32r_expand_epilogue): Update.
20223 (m32r_legitimize_pic_address): Update.
20224 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
20225 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
20226 * config/i386/i386.c (ix86_frame_pointer_required): Update.
20227 (gen_push): Update.
20228 (ix86_save_reg): Update.
20229 (ix86_compute_frame_layout): Update.
20230 (ix86_expand_prologue): Update.
20231 (ix86_expand_epilogue): Update.
20232 * config/sh/sh.c (output_stack_adjust): Update.
20233 (calc_live_regs): Update.
20234 (sh5_schedule_saves): Update.
20235 (sh_expand_prologue): Update.
20236 (sh_expand_epilogue): Update.
20237 (sh_setup_incoming_varargs): Update.
20238 (sh_allocate_initial_value): Update.
20239 (sh_get_pr_initial_val): Update.
20240 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
20241 * config/sh/sh.md (label:): Update.
20242 * config/avr/avr.c (out_movhi_mr_r): Update.
20243 * config/crx/crx.h (enum): Update.
20244 * config/xtensa/xtensa.h (along): Update.
20245 * config/stormy16/stormy16.c Update.
20246 (xstormy16_compute_stack_layout): Update.
20247 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
20248 (fr30_expand_prologue): Update.
20249 * config/cris/cris.c (cris_conditional_register_usage): Update.
20250 (cris_reg_saved_in_regsave_area): Update.
20251 (cris_initial_frame_pointer_offset): Update.
20252 (cris_simple_epilogue): Update.
20253 (cris_expand_prologue): Update.
20254 (cris_expand_epilogue): Update.
20255 (cris_expand_pic_call_address): Update.
20256 (cris_asm_output_symbol_ref): Update.
20257 (cris_asm_output_label_ref): Update.
20258 * config/cris/cris.md Update.
20259 * config/iq2000/iq2000.c (compute_frame_size): Update.
20260 (iq2000_expand_epilogue): Update.
20261 * config/mt/mt.h (save_direction): Update.
20262 * config/mn10300/mn10300.c (mn10300_function_value): Update.
20263 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
20264 (ia64_secondary_reload_class): Update.
20265 * config/m68k/m68k.c (m68k_save_reg): Update.
20266 (m68k_expand_prologue): Update.
20267 (m68k_expand_epilogue): Update.
20268 (legitimize_pic_address): Update.
20269 * config/rs6000/rs6000.c (rs6000_got_register): Update.
20270 (first_reg_to_save): Update.
20271 (first_altivec_reg_to_save): Update.
20272 (compute_vrsave_mask): Update.
20273 (compute_save_world_info): Update.
20274 (rs6000_stack_info): Update.
20275 (spe_func_has_64bit_regs_p): Update.
20276 (rs6000_ra_ever_killed): Update.
20277 (rs6000_emit_eh_reg_restore): Update.
20278 (rs6000_emit_allocate_stack): Update.
20279 (rs6000_emit_prologue): Update.
20280 (rs6000_emit_epilogue): Update.
20281 (rs6000_output_function_epilogue): Update.
20282 (output_profile_hook): Update.
20283 (rs6000_elf_declare_function_name): Update.
20284 * config/rs6000/rs6000.h (rs6000_args): Update.
20285 * config/rs6000/rs6000.md: Update.
20286 * config/mcore/mcore.c (mcore_expand_prolog): Update.
20287 * config/arc/arc.c (arc_output_function_epilogue): Update.
20288 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
20289 * config/darwin.c (machopic_function_base_name): Update.
20290 * config/score/score3.c (score3_compute_frame_size): Update.
20291 (rpush): Update.
20292 (rpop): Update.
20293 (score3_epilogue): Update.
20294 * config/score/score7.c (score7_compute_frame_size): Update.
20295 (score7_prologue): Update.
20296 (score7_epilogue): Update.
20297 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
20298 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
20299 * config/arm/arm.c (use_return_insn): Update.
20300 (require_pic_register): Update.
20301 (arm_load_pic_register): Update.
20302 (arm_compute_save_reg0_reg12_mask): Update.
20303 (arm_compute_save_reg_mask): Update.
20304 (thumb1_compute_save_reg_mask): Update.
20305 (output_return_instruction): Update.
20306 (arm_output_function_prologue): Update.
20307 (arm_output_epilogue): Update.
20308 (arm_get_frame_offsets): Update.
20309 (arm_expand_prologue): Update.
20310 (thumb_pushpop): Update.
20311 (thumb_exit): Update.
20312 (thumb1_expand_prologue): Update.
20313 (thumb1_expand_epilogue): Update.
20314 (arm_unwind_emit): Update.
20315 (arm_output_fn_unwind): Update.
20316 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
20317 * config/arm/arm.md: Update.
20318 * config/pa/pa.md: Update.
20319 * config/pa/pa.c (legitimize_pic_address): Update.
20320 (compute_frame_size): Update.
20321 (hppa_expand_prologue): Update.
20322 (hppa_expand_epilogue): Update.
20323 (borx_reg_operand): Update.
20324 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
20325 (HARD_REGNO_RENAME_OK): Update.
20326 * config/mips/mips.c (mips_global_pointer): Update.
20327 (mips_save_reg_p): Update.
20328 (mips_compute_frame_info): Update.
20329 (mips_frame_pointer_required): Update.
20330 (mips_expand_prologue): Update.
20331 (mips_expand_epilogue): Update.
20332 (mips_can_use_return_insn): Update.
20333 (mips_reorg_process_insns): Update.
20334 * config/v850/v850.c (compute_register_save_size): Update.
20335 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
20336 * config/mmix/mmix.c (along): Update.
20337 (mmix_expand_epilogue): Update.
20338 * config/bfin/bfin.c (legitimize_pic_address): Update.
20339 (must_save_p): Update.
20340 (stack_frame_needed_p): Update.
20341 (add_to_reg): Update.
20342 (bfin_expand_prologue): Update.
20343 * stmt.c (expand_asm_operands): Update.
20344 * reload1.c (reload): Update.
20345 (init_elim_table): Update.
20346
d1163987 203472008-04-25 Bob Wilson <bob.wilson@acm.org>
22129589 20348
d1163987 20349 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
22129589 20350
a5e11364
L
203512008-04-25 H.J. Lu <hongjiu.lu@intel.com>
20352
62d2739a 20353 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
a5e11364
L
20354 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
20355 (mov<mode>): Removed.
20356 (*movv4sf_internal): Likewise.
20357 (*movv2df_internal): Likewise.
20358
68d154b9
PG
203592008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
20360
20361 * config.gcc (crx-*-elf): Remove deprecation.
20362
e65e1476
DS
203632008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
20364
20365 * config/i386/cygming-crtend.c (register_frame_ctor): Register
20366 __gcc_deregister_frame with atexit.
20367 (deregister_frame_dtor): Remove.
20368
9553940c 203692008-04-24 Nathan Froyd <froydnj@codesourcery.com>
94f4765c
NF
20370 Nathan Sidwell <nathan@codesourcery.com>
20371
e6d8b0c6 20372 * config/rs6000/rs6000.opt (mspe): Remove Var property.
94f4765c 20373 (misel): Likewise.
e6d8b0c6 20374 * config/rs6000/rs6000.h (rs6000_spe): Declare.
94f4765c 20375 (rs6000_isel): Likewise.
e6d8b0c6 20376 * config/rs6000/rs6000.c (rs6000_spe): New variable.
94f4765c 20377 (rs6000_isel): New variable.
e6d8b0c6 20378 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
94f4765c 20379
5dc11954
JJ
203802008-04-24 Jakub Jelinek <jakub@redhat.com>
20381
20382 PR c++/35758
20383 * c-common.c (handle_vector_size_attribute): Call
20384 lang_hooks.types.reconstruct_complex_type instead of
20385 reconstruct_complex_type.
20386 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
20387 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
20388 * langhooks.h (struct lang_hooks_for_types): Add
20389 reconstruct_complex_type hook.
20390 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
20391 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
20392
83322951
RG
203932008-04-24 Richard Guenther <rguenther@suse.de>
20394
20395 * c-common.h (check_builtin_function_arguments): Declare.
20396 * c-common.c (validate_nargs): New function.
20397 (check_builtin_function_arguments): Likewise.
20398 * c-typeck.c (build_function_call): Call
20399 check_builtin_function_arguments.
20400 * builtins.c (fold_builtin_classify): Remove error reporting code.
20401 (fold_builtin_unordered_cmp): Likewise.
20402 (fold_builtin_1): Likewise.
20403 (fold_builtin_n): Likewise.
20404
194ac52a
JJ
204052008-04-24 Jakub Jelinek <jakub@redhat.com>
20406
20407 PR tree-optimization/36008
20408 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
20409 the original op1, rather than delta by step.
20410
9f9f72aa 204112008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
e6d8b0c6 20412 Sebastian Pop <sebastian.pop@amd.com>
9f9f72aa
AP
20413
20414 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
20415 eliminate_local_variables_stmt, eliminate_local_variables,
20416 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
20417 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
20418 of code delimited by two edges in the CFG.
20419 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
20420 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
22129589 20421 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
9f9f72aa
AP
20422 the case of parallelisation of reductions.
20423 (expr_invariant_in_region_p): New.
20424
20425 * tree-flow.h (gather_blocks_in_sese_region): Declared.
20426 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
20427
2aa43509 204282008-04-24 Ira Rosen <irar@il.ibm.com>
e6d8b0c6 20429 Richard Guenther <rguenther@suse.de>
2aa43509
IR
20430
20431 PR tree-optimization/36034
20432 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
20433 incapable of dealing with loads with gaps.
20434
e49cf927 204352008-04-24 Rafael Espíndola <espindola@google.com>
e80d7580
RAE
20436
20437 * tree-flow.h (vrp_evaluate_conditional): Change signature.
20438 * tree-ssa-propagate.c (fold_predicate_in): Update call to
20439 vrp_evaluate_conditional.
20440 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
e6d8b0c6
UB
20441 (vrp_evaluate_conditional): Split the cond argument.
20442 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
20443 (simplify_stmt_for_jump_threading): Update call to
e80d7580
RAE
20444 vrp_evaluate_conditional.
20445
0e37a1c2
IR
204462008-04-24 Ira Rosen <irar@il.ibm.com>
20447
20448 PR tree-optimization/35982
20449 * tree-vect-analyze.c (vect_check_interleaving): Check that the
20450 interleaved data-refs are of the same type.
20451
f9f9640f
DS
204522008-04-24 Danny Smith <dannysmith@users.net>
20453
e6d8b0c6
UB
20454 * c-format.c (check_format_info_main): Use strncmp rather than a
20455 magic prefix to handle multichar length specs.
f9f9640f
DS
20456 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
20457 Don't prefix "I64" and "I32" with '\0'.
20458
64ceac43
JJ
204592008-04-24 Jakub Jelinek <jakub@redhat.com>
20460
20461 PR target/36015
20462 * config/i386/i386.c (init_cumulative_args): Don't pass anything
20463 in registers for -m32 only if stdarg_p (fntype).
20464
4679504c
UB
204652008-04-24 Uros Bizjak <ubizjak@gmail.com>
20466
20467 PR rtl-optimization/36006
20468 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
20469 temp to op0 in order to avoid invalid rtx sharing.
20470
51eed280
PB
204712008-04-23 Paolo Bonzini <bonzini@gnu.org>
20472
20473 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
20474 check TREE_INVARIANT.
20475 * tree-gimple.c (is_gimple_address): New.
20476 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
20477 * tree-gimple.h (is_gimple_address): New.
20478 * tree.h (decl_address_invariant_p): New.
20479 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
20480 (build_string): Likewise.
20481 (decl_address_invariant_p): New, from is_gimple_invariant_address.
20482 (tree_invariant_p_1): Likewise.
20483 (save_expr): Use it.
20484 (tree_invariant_p): New.
20485 (skip_simple_arithmetic): Use it.
20486 (stabilize_reference_1): Use it.
20487 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
20488 simplify.
20489 (build1_stat): Drop code to compute TREE_INVARIANT.
20490 (build2_stat): Drop code to compute TREE_INVARIANT.
20491 (build3_stat): Drop code to compute TREE_INVARIANT.
20492 (build4_stat): Drop code to compute TREE_INVARIANT.
20493 (build5_stat): Drop code to compute TREE_INVARIANT.
20494 (build7_stat): Drop code to compute TREE_INVARIANT.
20495 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
20496 * tree.h (struct tree_base): Remove invariant_flag.
20497 (TREE_INVARIANT): Remove.
20498 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
20499 (fold_builtin_expect): Check TREE_CONSTANT.
20500 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
20501 * c-tree.h (c_expr_to_decl): Drop third parameter.
20502 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
20503 (build_c_cast): Don't set TREE_INVARIANT.
20504 (pop_init_level): Don't set TREE_INVARIANT.
20505 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
20506 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
20507 TREE_CONSTANT.
20508 (gimplify_init_constructor): Don't set TREE_INVARIANT.
20509 (gimplify_addr_expr): Adjust comment.
20510 * tree-mudflap.c (mf_build_string):
20511 * print-tree.c (print_node): Don't print TREE_INVARIANT.
20512 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
20513 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
20514 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
20515 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
20516 * langhooks.h (struct lang_hooks): Drop third parameter from
20517 expr_to_decl.
20518
17d2c090
RG
205192008-04-23 Richard Guenther <rguenther@suse.de>
20520
20521 PR tree-optimization/27799
20522 PR tree-optimization/32921
20523 PR tree-optimization/32624
20524 * tree-ssa-structalias.c (merge_smts_into): Only merge the
20525 SMTs aliases and the tag itself into the solution.
20526 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
20527 merge the points-to solution back into the SMT aliases.
20528 (may_alias_p): Use alias_set_subset_of instead of
20529 aliases_conflict_p. A pointer which points to
20530 memory with alias set zero may access any variable.
20531
a7a512be
RG
205322008-04-23 Richard Guenther <rguenther@suse.de>
20533
20534 * alias.c (alias_set_subset_of): Correctly handle asking
20535 if zero is a subset of an alias set with zero child.
20536 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
20537 (compute_flow_insensitive_aliasing): Correctly walk all
20538 pointers. Do not unnecessarily union sets.
20539
f3f75f69
RG
205402008-04-23 Richard Guenther <rguenther@suse.de>
20541
20542 PR middle-end/36021
20543 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
20544
09725d5e
TB
205452008-04-22 Tomas Bily <tbily@suse.cz>
20546
4679504c
UB
20547 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
20548 unreachable case.
20549 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
20550 NON_LVALUE_EXPR.
20551 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
20552 * tree-ssa-structalias.c (get_constraint_for): Likewise.
20553 * tree-inline.c (estimate_num_insns_1): Likewise.
20554 * varasm.c (const_hash_1, compare_constant, copy_constant)
20555 (compute_reloc_for_constant, output_addressed_constants): Likewise.
20556 * emit-rtl.c (component_ref_for_mem_expr)
20557 (set_mem_attributes_minus_bitpos): Likewise.
20558 * expr.c (highest_pow2_factor, expand_expr_real_1, )
20559 (is_aligning_offset): Likewise.
20560 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
20561 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
20562 * dojump.c (do_jump): Likewise.
20563 * builtins.c (get_pointer_alignment, get_memory_rtx)
20564 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
20565 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
09725d5e 20566
63cb92c1
JJ
205672008-04-23 Jakub Jelinek <jakub@redhat.com>
20568
20569 PR rtl-optimization/36017
20570 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
20571 expanding the library call.
20572
b2f06c39
ILT
205732008-04-22 Ian Lance Taylor <iant@google.com>
20574
20575 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
20576 than size_in_bytes.
20577
aafc759a
PH
205782008-04-22 Pat Haugen <pthaugen@us.ibm.com>
20579
20580 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
20581 of LR/CTR moves for Power6.
20582
4218dc2d 205832008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
5b4603fa
KZ
20584
20585 PR middle-end/36003
20586 * passes.c (init_optimization_passes): Remove
20587 pass_fast_rtl_byte_dce.
22129589 20588
6126672e
UB
205892008-04-22 Uros Bizjak <ubizjak@gmail.com>
20590
20591 PR target/29096
20592 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
20593 builtin functions to generate faster code.
20594 (_mm_cvtpu16_ps): Ditto.
20595 (_mm_cvtpi32x2_ps): Ditto.
20596
f6d2671e
NC
205972008-04-22 Nick Clifton <nickc@redhat.com>
20598
53ed2f0e
NC
20599 * common.opt (ftree-loop-distribution): Add Optimization
20600 attribute.
20601
7dd68986
NC
20602 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
20603 (frv_expand_builtin_va_start): Likewise.
20604
f6d2671e
NC
20605 * config/arm/arm.c (thumb_find_work_register): Fix location of
20606 argument register count.
20607
826fadba
MK
206082008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
20609
20610 Support scheduling for ColdFire V1 and V3 microarchitecture.
20611 Improve scheduling of multiplication instructions.
20612
20613 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
20614 (mac): New instruction attribute.
20615 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
20616 (m68k_sched_mac): New variable.
20617 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
20618 Handle cfv1 and cfv3.
20619 (max_insn_size): New static variable.
20620 (struct _sched_ib): New type.
20621 (sched_ib): New static variable.
20622 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
20623 to fields of 'struct _sched_ib sched_ib'. Update all uses.
20624 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
20625 Update.
20626 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
20627 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
20628 new variables. Update.
20629 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
20630 Add modeling of cfv3 instruction buffer. Update.
20631 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
20632 * config/m68k/m68k.h (TUNE_CFV3): New macro.
20633 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
20634 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
20635 a particular reservation applies to.
20636 (type2): Reorganize attribute values. Rename alu to alu_reg,
20637 alu_l to alu, move_l to omove. Join move to alu. Split mul
20638 to mul_l and mul_w.
20639 (cf_ib_*): Simplify description of instruction buffer.
20640 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
20641 (cf_mem): Split into cf_mem1 and cf_mem2.
20642 (cf_v2_move_??): Rename to cfv12_alu_??.
20643 (cf_v2_move_l_??): Rename to cfv12_omove_??.
20644 (cf_v2_mul_??): Remove reservations.
20645 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
20646 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
20647 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
20648 appropriate place.
20649 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
20650 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
20651 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
20652 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
20653 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
20654 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
20655 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
20656 expansions of the above reservations for instructions of sizes
20657 1, 2 and 3 words.
20658
c23da840
MK
206592008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
20660
20661 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
20662
27624b9e
AN
206632008-04-21 Adam Nemet <anemet@caviumnetworks.com>
20664
20665 * coverage.c: Include tree-pass.h.
20666 (coverage_counter_alloc): Print da_file_name to the dump file.
20667
4218dc2d 206682008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
27624b9e 20669
b60db1ba
KZ
20670 * sbitmap.c (sbitmap_range_empty_p): New function.
20671 * sbitmap.h (sbitmap_range_empty_p): New function.
27624b9e 20672 * bitmap.h: Now includes obstack.h.
b60db1ba 20673
27624b9e 206742008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
4218dc2d 20675 Kenneth Zadeck <zadeck@naturalbridge.com>
cc806ac1
RS
20676
20677 * dbgcnt.def (ra_byte_scan): Added.
20678 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
22129589 20679 when the last hit happens for a counter.
cc806ac1
RS
20680 * timevar.def (TV_DF_BYTE_LR): New variable.
20681 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
20682 * passes.c (pass_fast_rtl_byte_dce): New pass.
20683 * fwprop.c (update_df): Added mode to call df_ref_create.
20684 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
20685 DF_REF_EXTRACT_OFFSET.
22129589 20686 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
cc806ac1
RS
20687 DF_BYTE_LR_OUT, df_byte_lr): New macro.
20688 (df_mm): New enum.
20689 (df_ref_extract): Added mode field.
20690 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
20691 DF_REF_EXTRACT_OFFSET.
20692 (DF_REF_EXTRACT_MODE): New macro.
20693 (df_byte_lr_bb_info): New structure.
22129589 20694 (df_print_byte_regset, df_compute_accessed_bytes,
cc806ac1
RS
20695 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
20696 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
20697 df_byte_lr_simulate_uses,
20698 df_byte_lr_simulate_artificial_refs_at_top,
20699 df_byte_lr_simulate_artificial_refs_at_end,
20700 df_compute_accessed_bytes): New function.
20701 (df_ref_create): Add parameter.
20702 (df_byte_lr_get_bb_info): New inline function.
20703 * df-scan.c (df_ref_record, df_uses_record,
20704 df_ref_create_structure): Added mode parameter.
22129589 20705 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
cc806ac1 20706 df_defs_record, df_uses_record, df_get_conditional_uses,
22129589 20707 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
cc806ac1
RS
20708 df_entry_block_defs_collect, df_exit_block_uses_collect):
20709 Added mode parameter to calls to df_ref_record, df_uses_record,
20710 df_ref_create_structure.
4679504c 20711 (df_ref_equal_p, df_ref_compare): Added test for modes.
cc806ac1
RS
20712 (df_ref_create_structure): Added code to set mode. Renamed
20713 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
20714 DF_REF_EXTRACT_OFFSET.
20715 * df-core.c (df_print_byte_regset): New function.
20716 * df-byte-scan.c: New file.
20717 * df-problems.c (df_rd_transfer_function): Removed unnecessary
22129589 20718 calls to BITMAP_FREE.
cc806ac1
RS
20719 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
20720 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
22129589
AS
20721 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
20722 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
cc806ac1
RS
20723 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
20724 df_byte_lr_local_compute, df_byte_lr_init,
22129589
AS
20725 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
20726 df_byte_lr_transfer_function, df_byte_lr_free,
cc806ac1 20727 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
22129589 20728 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
cc806ac1
RS
20729 df_byte_lr_simulate_uses,
20730 df_byte_lr_simulate_artificial_refs_at_top,
20731 df_byte_lr_simulate_artificial_refs_at_end): New function.
20732 * dce.c (byte_dce_process_block): New function.
20733 (dce_process_block): au is now passed in rather than computed
20734 locally. Changed loops that look at artificial defs to not look
22129589
AS
20735 for conditional or partial ones, because there never are any.
20736 (fast_dce): Now is able to drive byte_dce_process_block or
cc806ac1
RS
20737 dce_process_block depending on the kind of dce being done.
20738 (rest_of_handle_fast_dce): Add parameter to fast_dce.
20739 (rest_of_handle_fast_byte_dce): New function.
20740 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
20741 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
20742
3d4cb550
DF
207432008-04-21 Daniel Franke <franke.daniel@gmail.com>
20744
20745 PR fortran/35019
20746 * gcc.h: Added fortran options that take arguments to
20747 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
20748 macros.
20749
eea05d39
EB
207502008-04-20 Eric Botcazou <ebotcazou@adacore.com>
20751
20752 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
20753 scalarization if on the LHS and not a full access.
20754
def9bf34
RW
207552008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20756
eea05d39 20757 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
def9bf34 20758
e49cf927 207592008-04-18 Rafael Espíndola <espindola@google.com>
eea05d39 20760
b7d8d447
RAE
20761 * tree-vrp.c (find_case_label_index): Fix the binary search.
20762 (find_case_label_range): New.
20763 (vrp_visit_switch_stmt): Use find_case_label_range.
20764 (simplify_switch_using_ranges): Use find_case_label_range.
20765
ed3444e9
EB
207662008-04-18 Eric Botcazou <ebotcazou@adacore.com>
20767
20768 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
20769 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
20770
893174fa
TT
207712008-04-18 Tom Tromey <tromey@redhat.com>
20772
20773 PR libcpp/15500:
20774 * doc/cpp.texi (Implementation-defined behavior): Mention
20775 -finput-charset.
20776
6e3c5c30
ILT
207772008-04-18 Ian Lance Taylor <iant@google.com>
20778
20779 * fold-const.c (pointer_may_wrap_p): New static function.
20780 (fold_comparison): Add another test for pointer overflow. Use
20781 pointer_may_wrap_p to disable some false positives.
20782
b6baa67d 207832008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
22129589 20784
b6baa67d
KVH
20785 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
20786 (fname_as_string): Match updated cpp_interpret_string prototype.
20787 (fix_string_type): Support char16_t* and char32_t*.
20788 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
20789 derivative) nodes. Register as builtin if C++0x.
20790 (c_parse_error): Support CPP_CHAR{16,32}.
22129589 20791 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
b6baa67d
KVH
20792 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
20793 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
20794 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
20795 CTI_CHAR32_ARRAY_TYPE>: New elements.
20796 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
20797 char32_type_node, signed_char32_type_node, char16_array_type_node,
20798 char32_array_type_node): New defines.
20799 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
20800 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
20801 (lex_string): Support CPP_STRING{16,32}, match updated
20802 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
20803 (lex_charconst): Support CPP_CHAR{16,32}.
20804 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
20805 and CPP_STRING{16,32}.
20806
deb984e6
PB
208072008-04-18 Paolo Bonzini <bonzini@gnu.org>
20808
20809 PR bootstrap/35457
20810 * aclocal.m4: Regenerate.
20811 * configure: Regenerate.
20812
cb91fab0
JH
208132008-04-18 Jan Hubicka <jh@suse.cz>
20814
20815 * except.c (dw2_size_of_call_site_table,
20816 sjlj_size_of_call_site_table): Use vector API for call_site_record.
20817
20818 * cgraphbuild.c (build_cgraph_edges): Update.
20819 * tree-pass.h: Update comment.
20820 * final.c (leaf_function_p): Update.
20821 (leaf_renumber_regs): Update.
20822 (rest_of_clean_state): Update.
20823 * omp-low.c (expand_omp_parallel): Update.
20824 * ipa-reference.c (analyze_function): Update.
20825 * reorg.c (find_end_label): Update.
20826 (optimize_skip): Update.
20827 (fill_simple_delay_slots): Update.
20828 (fill_simple_delay_slots): Update.
20829 (make_return_insns): Update.
20830 (dbr_schedule): Update.
20831 * gimple-low.c (record_vars_into): Update.
20832 * cfgbuild.c (make_edges): Update.
20833 * function.c (assign_stack_local): Update.
20834 (assign_parm_adjust_stack_rtl): Update.
20835 (locate_and_pad_parm): Update.
20836 (allocate_struct_function): Do not initialize stack_alignment_needed
20837 and preferred_stack_boundary here.
20838 (stack_protect_prologue): Update.
20839 (stack_protect_epilogue): Update.
20840 (expand_function_start): Initialize stack_alignment_needed,
20841 preferred_stack_boundary and max_jumptable_ents.
20842 (expand_function_end): Update.
20843 (free_after_compilation): Do not NULLify epilogue_delay_list.
20844 * function.h (struct rtl_data): Add stack_protect_guard,
20845 stack_alignment_needed,
20846 preferred_stack_boundary, epilogue_delay_list.
20847 (struct function): Remove value_histograms, stack_alignment_needed,
20848 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
20849 last_label_uid,
20850 unexpanded_var_list, stack_protect_guard.
20851 (current_function_epilogue_delay_list): Remove.
20852 * ipa-type-escape.c (analyze_function): Update.
20853 * gimplify.c (pop_gimplify_context): Update comment.
20854 * calls.c (expand_call): Update.
20855 (emit_library_call_value_1): Update.
20856 * except.c (set_nothrow_function_flags): Update.
20857 * cfgexpand.c (get_decl_align_unit): Update.
20858 (create_stack_guard): Update.
20859 (estimated_stack_frame_size): Update.
20860 (expand_used_vars): Update.
20861 (tree_expand_cfg): Free histogram earliers, init expansion variables.
20862 * explow.c (allocate_dynamic_stack_space): Update.
20863 * tree-ssa-live.c (remove_unused_locals): Update.
20864 * varasm.c (mark_constant_pool): Update.
20865 * tree-inline.c (remap_decls): Update.
20866 (initialize_cfun): Update.
20867 (declare_return_variable): Update.
20868 (inline_forbidden_p): Update.
20869 (expand_call_inline): Update.
20870 (declare_inline_vars): Update.
20871 (tree_function_versioning): Update.
20872 * tree-flow.h (value_histograms): New.
20873 (VALUE_HISTOGRAMS): New macro.
20874 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
20875 last_label_uid.
20876 * tree-cfg.c (set_bb_for_stmt): Update.
20877 (replace_by_duplicate_decl): Update.
20878 (move_block_to_fn): Update.
20879 (new_label_mapper): Update.
20880 (dump_function_to_file): Update.
20881 * ipa-struct-reorg.c (build_data_structure): Update.
20882 * cfgrtl.c (print_rtl_with_bb): Update.
20883 * reload1.c (reload): Update.
20884 (reload): Update.
20885 * config/i386/i386.c (setup_incoming_varargs_64,
20886 ix86_compute_frame_layout): Update.
20887 * config/arc/arc.c (arc_output_function_epilogue): Update.
20888
799cff46
MS
208892008-04-18 Marius Strobl <marius@FreeBSD.org>
20890
20891 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
20892 for FreeBSD as well.
20893 * gthr-posix95.h: Likewise.
20894
de907943
RS
208952008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
20896
20897 PR rtl-optimization/35838
20898 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
20899 out the byte offset of the first subreg.
20900
c2b814b9
UB
209012008-04-17 Uros Bizjak <ubizjak@gmail.com>
20902
20903 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
20904 to split_ti instead of three separate calls with single member arrays.
20905 (subti3 splitter): Ditto.
20906 (adddi3 splitter): Ditto with split_di.
20907 (subdi3 splitter): Ditto.
20908 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
20909 two separate calls with single member arrays. Swap match_dup
20910 operands 1 and 2 to better fit into the array.
20911 (negdi2 splitter): Ditto with split_di.
20912 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
20913 two separate calls with single member arrays. Swap match_dup operands
20914 6 and 7 to better fit into the array.
20915
ec2e9a15
L
209162008-04-17 H.J. Lu <hongjiu.lu@intel.com>
20917
20918 * config/i386/i386.c (sse_builtin_type): New.
20919 (bdesc_sse_args): Likewise.
20920 (bdesc_sse_3arg): Removed.
20921 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
20922 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
20923 IX86_BUILTIN_ROUNDPS.
20924 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
20925 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
20926 IX86_BUILTIN_ROUNDPS.
20927 (ix86_expand_sse_4_operands_builtin): Removed.
20928 (ix86_expand_sse_operands_builtin): New.
20929 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
20930 and CODE_FOR_sse4_1_roundps.
20931 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
20932 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
20933
e6477eaa
AM
209342008-04-17 Alan Modra <amodra@bigpond.net.au>
20935
20936 PR target/35907
20937 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
20938 regs before frame pop when needed. If use_backchain_to_restore_sp
20939 then load backchain into a temp reg to restore vr and vrsave. Add
20940 code to restore vr after frame pop if possible.
20941
ba2e1892
RG
209422008-04-17 Richard Guenther <rguenther@suse.de>
20943
20944 * tree-vn.c (expressions_equal_p): Do not check type
20945 equality or compatibility before calling operand_equal_p.
20946 * fold-const.c (operand_equal_p): Check equivalence of
20947 integer constants before bailing out due to signedness or
20948 precision differences.
20949 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
20950 spurious differences in type qualification. Ignore types
20951 for COMPONENT_REFs at all.
20952
d60819f8
CB
209532008-04-17 Christian Bruel <christian.bruel@st.com>
20954
20955 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
20956 msw_skip comparison.
22129589 20957
3d5e00a0
JJ
209582008-04-16 Jakub Jelinek <jakub@redhat.com>
20959
12e19e05
JJ
20960 PR c/35739
20961 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
20962 reg type.
20963
3d5e00a0
JJ
20964 PR tree-optimization/35899
20965 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
20966 rather than TREE_OPERAND.
20967
17c340e0
UB
209682008-04-16 Uros Bizjak <ubizjak@gmail.com>
20969
20970 PR target/35944
20971 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
20972 temporary registers. Change operand predicate to general_operand.
20973 (remainderxf3): Ditto.
20974
e544c850
RG
209752008-04-16 Richard Guenther <rguenther@suse.de>
20976
20977 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
20978 * tree-affine.c (aff_combination_expand): Look through some
20979 conversions.
20980
3d57d7ce
DK
209812008-04-15 Doug Kwan <dougkwan@google.com>
20982
20983 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
20984 for hex printing.
20985 * tree-pretty-print.c (dump_generic_node): Ditto.
20986 * final.c (output_addr_const): Ditto.
20987 * dwarf2out.c (output_cfi): Ditto.
20988 * c-pretty-print.c (pp_c_integer_constant): Ditto.
20989 * print-rtl.c (print_rtx): Ditto.
20990 * print-tree.c (print_node_brief, print_node): Ditto.
20991 * c-common.c (match_case_to_enum_1): Ditto.
20992 * sched-vis.c (print_value): Ditto.
20993 * config/i386/i386.c (print_operand): Cast to long unsigned int
20994 for hex printing.
20995
d98c89de
DS
209962008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
20997 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
20998 MS Windows VirtualProtect function.
20999
69c32ec8
JH
210002008-04-15 Jan Hubicka <jh@suse.cz>
21001
21002 * gengtype.c (write_root): Param_is argument is OK.
21003 * expr.c (expand_expr_real_1): Update call of get_exception_*.
21004 * function.h: Include varray.h
21005 (rtl_eh): New stucture based on except.c one.
21006 (call_site_record): New forward declaration and vector type.
21007 * calls.c (emit_call_1): Do not call
21008 note_current_region_may_contain_throw.
21009 * except.c (eh_status): Remove cur_region, try_region since they are
21010 unused.
21011 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
21012 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
22129589 21013 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
69c32ec8
JH
21014 Remove call_site_data_used, call_site_data_size.
21015 Turn call_site_record into vector in function.h.
21016 (note_current_region_may_contain_throw): Remove.
21017 (get_exception_pointer, get_exception_filter): Do not take struct
21018 function argument; update.
21019 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
21020 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
21021 build_post_landing_pads, dw2_build_landing_pads,
21022 sjlj_assign_call_site_values, sjlj_mark_call_sites,
22129589 21023 sjlj_emit_function_enter, sjlj_emit_function_enter,
69c32ec8
JH
21024 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
21025 sjlj_build_landing_pads, finish_eh_generation,
21026 remove_exception_handler_label, remove_eh_handler,
21027 maybe_remove_eh_handler, add_reachable_handler,
17c340e0
UB
21028 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
21029 add_action_record, collect_one_action_chain, add_call_site,
21030 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
69c32ec8
JH
21031 sjlj_output_call_site_table, output_function_exception_table,
21032 * except.h (note_current_region_may_contain_throw): Remove
21033 (get_exception_pointer, get_exception_filter): Do not take struct
21034 function argument.
21035 * Makefile.in (GTFILES): Put varargs before struct function.
21036
bd1f29d9
EB
210372008-04-15 Eric Botcazou <ebotcazou@adacore.com>
21038
21039 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
21040 punt for STRING_CST.
21041 (get_constraint_for): Deal with STRING_CST here instead.
21042
3bb3bb2d
RG
210432008-04-15 Richard Guenther <rguenther@suse.de>
21044
21045 * tree-ssa-propagate.c (substitute_and_fold): Substitute
21046 statements in a basic-block with a backward walk. Do not
21047 substitute into dead statements but instead remove those.
21048
d9338cf0
RG
210492008-04-15 Richard Guenther <rguenther@suse.de>
21050
21051 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
21052 to zero, thus disable creation of SFTs.
21053
7e80c6bf
EB
210542008-04-15 Eric Botcazou <ebotcazou@adacore.com>
21055
21056 * tree-predcom.c (suitable_reference_p): Return false if the
21057 reference can throw.
21058
b97d8153
JJ
210592008-04-15 Jakub Jelinek <jakub@redhat.com>
21060
21061 PR c/35751
21062 * c-decl.c (finish_decl): If extern or static var has variable
21063 size, set TREE_TYPE (decl) to error_mark_node.
21064
e49cf927 210652008-04-15 Rafael Espíndola <espindola@google.com>
d0599470 21066
b97d8153 21067 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d0599470
RAE
21068 variable arg1.
21069
649caaad
RG
210702008-04-15 Richard Guenther <rguenther@suse.de>
21071
21072 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
21073 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
21074 (visit_reference_op_load): Do walk vuse-vdef chains on
21075 vn_reference_lookup.
21076 (visit_reference_op_store): But do not here.
21077 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
21078 vn_reference_lookup.
21079 (vn_lookup_with_vuses): But do so here.
21080
55d7d0fa
ILT
210812008-04-14 Ian Lance Taylor <iant@google.com>
21082
21083 * fold-const.c (fold_overflow_warning): Remove assertion.
21084
2c4eec69
BE
210852008-04-15 Ben Elliston <bje@au.ibm.com>
21086
21087 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
21088 temp1 local variables.
21089
210902008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
40f39798
ZM
21091
21092 PR target/35661
21093 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
21094 ".text.unlikely" section as executable.
21095
07acc7b3
JW
210962008-04-14 James E. Wilson <wilson@tuliptree.org>
21097
21098 * config/ia64/ia64.c (rtx_needs_barrier): Handle
21099 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
21100 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
21101 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
21102 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
21103 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
21104 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
21105
4c9db6e0
ILT
211062008-04-14 Ian Lance Taylor <iant@google.com>
21107
21108 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
21109 * fold-const.c (fold_comparison): If appropriate, test
21110 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
21111 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
21112 reassociating a pointer type.
21113 * doc/invoke.texi (Optimize Options): Document that
21114 -fstrict-overflow applies to pointer wraparound.
21115
305da3ec
JH
211162008-04-13 Jan Hubicka <jh@suse.cz>
21117
21118 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
21119
298ac1dd
AP
211202008-04-12 Andrew Pinski <pinskia@gmail.com>
21121
21122 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
21123 we are going to "save the world".
21124
70a7c7f1
HPN
211252008-04-13 Hans-Peter Nilsson <hp@axis.com>
21126
21127 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
21128 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
21129 operand 0 constraint, not "=".
21130
ad7aacba
JW
211312008-04-11 James E. Wilson <wilson@tuliptree.org>
21132
21133 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
21134
9d6facc7
L
211352008-04-11 H.J. Lu <hongjiu.lu@intel.com>
21136
21137 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
21138 of size of positions_needed * CHAR_BIT.
21139
4fe663b0
L
211402008-04-11 H.J. Lu <hongjiu.lu@intel.com>
21141
21142 PR middle-end/35897
21143 * dse.c (store_info): Change positions_needed to unsigned
21144 HOST_WIDE_INT.
21145 (lowpart_bitmask): New.
21146 (record_store): Cast to unsigned HOST_WIDE_INT for
21147 positions_needed. Assert width <= size of positions_needed *
21148 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
21149 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
21150 lowpart_bitmask to set mask.
21151
9fdd7520
BS
211522008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
21153
21154 * config/bfin/constraints.md: New file.
21155 * config/bfin/bfin.md: Include it.
21156 (adddi3): Use satisfies_constraint functions instead of the old macros.
21157 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
21158 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
21159 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
21160 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
21161 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
21162 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
21163 EXTRA_CONSTRAINT): Delete.
21164 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
21165 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
21166 of the old macros.
21167 * config/bfin/bfin.c: Include "tm-constrs.h".
21168 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
21169 Use satisfies_constraint functions instead of the old macros.
21170 * doc/md.texi (Blackfin Constraints): Update file name reference.
21171
0a4bf1d3
RG
211722008-04-11 Richard Guenther <rguenther@suse.de>
21173
21174 PR tree-optimization/35869
21175 * tree-vrp.c (execute_vrp): Move switch statement update after
21176 jump threading. Schedule another cfg cleanup run.
21177
21516d64
VR
211782008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
21179
21180 PR c/35744
21181 * attribs.c (decl_attributes): Return early on errorneous node.
21182
0598f31b
OR
211832008-04-10 Oleg Ryjkov <olegr@google.com>
21184
21185 * tree.h (struct tree_base): Added a new flag default_def_flag.
21186 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
21187
a1fcb9a1
KK
211882008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
21189
21190 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
21191
6ef5fab0
JDA
211922008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21193
21194 PR target/35768
21195 * pa.md: Define mode iterator P. Define mode attribute dwc.
21196 (dcacheflush): Update pattern to use iterator P and attribute dwc.
21197 (icacheflush): Likewise.
21198 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
21199 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
21200
e47f8bba
BE
212012008-04-11 Ben Elliston <bje@au.ibm.com>
21202
21203 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
21204
e49cf927 212052008-04-10 Rafael Espíndola <espindola@google.com>
2893f753 21206
b97d8153 21207 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2893f753
RAE
21208 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
21209 (extract_range_from_expr): The same.
21210
5fb79e4c
AN
212112008-04-10 Adam Nemet <anemet@caviumnetworks.com>
21212
21213 * config/mips/mips.md (GPR2): New mode iterator.
21214 (seq): Add comment.
21215 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
21216 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
21217 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
21218 Rewrite these to take two modes, the mode of comparison and the
21219 mode of the destination.
21220 * config/mips/mips.c (mips_expand_scc): Instead of having
21221 paradoxical subreg as destination, expand "narrowing" scc if mode
21222 of comparison is SI and target is requested in DI mode.
21223 (mips_emit_int_order_test): Update comment. Make mode of
21224 comparison match CMP0 rather than TARGET. When creating inverse
21225 target use mode of TARGET.
21226
63d628b2
AN
212272008-04-10 Adam Nemet <anemet@caviumnetworks.com>
21228
21229 * gcov-dump.c (tag_summary): Only print summaries for the first
21230 GCOV_COUNTERS_SUMMABLE counters.
21231
6dd18eb1
UB
212322008-04-10 Uros Bizjak <ubizjak@gmail.com>
21233
21234 * config/i386/i386.md (absneg): New code iterator.
21235 (absnegprefix): New code attribute.
21236 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
21237 patterns using absneg code iterator.
21238 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
21239 using absneg code iterator.
21240 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
21241 *neg<mode>2 patterns using absneg code iterator.
21242 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
21243 *negextendsfdf2 patterns using absneg code iterator.
21244 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
21245 *negextendsfxf2 patterns using absneg code iterator.
21246 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
21247 *negextendsfdf2 patterns using absneg code iterator.
21248 * config/i386/sse.md (<code><mode>2): Macroize expander from
22129589 21249 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
6dd18eb1 21250
f40bee31
AK
212512008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
21252
21253 * config/s390/s390.h: Remove the remains of the recent search
21254 & replace action of current_function_outgoing_args_size.
21255
19aec6b0
IR
212562008-04-10 Ira Rosen <irar@il.ibm.com>
21257
21258 PR tree-optimization/35821
21259 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
21260 NEW_STMT_LIST is not NULL.
21261
ee8f0bd7
DE
212622008-04-09 David Edelsohn <edelsohn@gnu.org>
21263
21264 PR libstdc++/35597
21265 * toplev.c (process_options): Remove -ffunction-sections debugging
21266 warning.
21267
3a3a1fe1
PB
212682008-04-09 Peter Bergner <bergner@vnet.ibm.com>
21269
21270 PR middle-end/PR28690
21271 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
21272 than gen_rtx_fmt_ee to perform more canonicalizations.
21273
e0941605
JDA
212742008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21275
21276 PR driver/35665
21277 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
21278
2f9ea521
RG
212792008-04-09 Richard Guenther <rguenther@suse.de>
21280
21281 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
21282 (dump_function_to_file): Dump function arguments with types.
21283
02765a37
RG
212842008-04-08 Richard Guenther <rguenther@suse.de>
21285
21286 * fold-const.c (fold_widened_comparison): Do not allow
21287 sign-changes that change the result.
21288
a0f39282
JJ
212892008-04-08 Janis Johnson <janis187@us.ibm.com>
21290
21291 PR target/35839
21292 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
21293 kinds of indirect references.
21294
7f62878c
DE
212952008-04-08 David Edelsohn <edelsohn@gnu.org>
21296
21297 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
21298 GNU Fortran language string.
21299
e49cf927 213002008-04-08 Rafael Espíndola <espindola@google.com>
a1a6e271
RAE
21301
21302 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
21303 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
21304 * tree.h (tree_call_nonnegative_warnv_p): New.
21305
57b9e367
JH
213062008-04-08 Jan Hubicka <jh@suse.cz>
21307
21308 * function.c (free_after_compilation): Clear out regno_reg_rtx
21309 pointer.
21310
a95c8615
PB
213112008-04-08 Peter Bergner <bergner@vnet.ibm.com>
21312
21313 Revert
21314 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
21315
21316 PR middle-end/PR28690
21317 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
21318 same precedence as REG_POINTER and MEM_POINTER operands.
21319
903b3003
RG
213202008-04-08 Richard Guenther <rguenther@suse.de>
21321
21322 PR middle-end/35834
21323 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
21324 for adding index to base.
21325
0b03b302
KT
213262008-04-08 Kai Tietz <kai.tietz@onevision.com>
21327
21328 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
21329 (MINGW_ENABLE_EXECUTE_STACK): New.
21330 (IN_LIBGCC2): For libgcc include windows.h file for
21331 function declarations.
21332
582be0a1
HPN
213332008-04-08 Hans-Peter Nilsson <hp@axis.com>
21334
21335 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
21336 and tem2 if tem1 is not a REG or MULT.
21337
38173d38
JH
213382008-04-08 Jan Hubicka <jh@suse.cz>
21339
21340 * function.h (incomming_args): Break out of struct function.
21341 (function_subsections): Break out of struct function.
21342 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
21343 return_rtx and hard_reg_initial_vals from struct function.
21344 Kill inl_max_label_num.
21345 (current_function_pops_args, current_function_args_info,
21346 current_function_args_size, current_function_args_size,
21347 current_function_pretend_args_size,
21348 current_function_outgoing_args_size,
21349 current_function_internal_arg_pointer, current_function_return_rtx):
21350 Kill compatibility accestor macros.
21351 * builtins.c (expand_builtin_apply_args_1): Update.
21352 (expand_builtin_next_arg): Update.
21353 * df-scan.c (df_get_call_refs): Update.
21354 * dbxout.c (dbxout_function_end): Update.
21355 * dwarf2out.c (dwarf2out_switch_text_section): Update.
21356 (output_line_info): Update.
21357 (secname_for_decl): Update.
21358 (dwarf2out_var_location): Update.
21359 * function.c (free_after_compilation): Update.
21360 (assign_parm_find_stack_rtl): Update.
21361 (assign_parms): Update.
21362 (expand_dummy_function_end): Update.
21363 (expand_function_end): Update.
21364 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
21365 (expand_call): Update.
21366 (emit_library_call_value_1): Update.
21367 (store_one_arg): Update.
21368 * varasm.c (initialize_cold_section_name): Update.
21369 (unlikely_text_section): Update.
21370 (unlikely_text_section_p): Update.
21371 (assemble_start_function): Update.
21372 (assemble_end_function): Update.
21373 (default_section_type_flags): Update.
21374 (switch_to_section): Update.
21375 * integrate.c (set_decl_abstract_flags): Update.
21376 (get_hard_reg_initial_val): Update.
21377 (has_hard_reg_initial_val): Update.
21378 (allocate_initial_values): Update.
21379 * resource.c (init_resource_info): Update.
21380 * config/alpha/alpha.c (NUM_ARGS): Update.
21381 (direct_return): Update.
21382 (alpha_va_start): Update.
21383 (alpha_sa_size): Update.
21384 (alpha_initial_elimination_offset): Update.
21385 (alpha_expand_prologue): Update.
21386 (alpha_start_function): Update.
21387 (alpha_expand_epilogue): Update.
21388 (unicosmk_initial_elimination_offset):
21389 * config/alpha/alpha.md (call expander): Update.
21390 * config/s390/s390.c (s390_register_info): Update.
21391 (s390_register_info): Update.
21392 (s390_frame_info): Update.
21393 (s390_initial_elimination_offset): Update.
21394 (s390_build_builtin_va_list): Update.
21395 (s390_va_start): Update.
21396 * config/spu/spu.c (direct_return): Update.
21397 (spu_expand_prologue): Update.
21398 (spu_initial_elimination_offset): Update.
21399 (spu_build_builtin_va_list): Update.
21400 (spu_va_start): Update.
21401 * config/sparc/sparc.c (sparc_init_modes): Update.
21402 (sparc_compute_frame_size): Update.
21403 (function_value): Update.
21404 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
21405 * config/i386/i386.md (return expander): Update.
21406 * config/i386/i386.c (ix86_va_start): Update.
21407 (ix86_can_use_return_insn_p): Update.
21408 (ix86_compute_frame_layout): Update.
21409 (ix86_expand_epilogue): Update.
21410 * config/sh/sh.c (output_stack_adjust): Update.
21411 (calc_live_regs): Update.
21412 (sh_expand_prologue): Update.
21413 (sh_builtin_saveregs): Update.
21414 (sh_va_start): Update.
21415 (initial_elimination_offset): Update.
21416 (sh_allocate_initial_value): Update.
21417 (sh_function_ok_for_sibcall): Update.
21418 (sh_get_pr_initial_val): Update.
21419 * config/sh/sh.md (return expander): Update.
21420 * config/avr/avr.c (frame_pointer_required_p): UPdate.
21421 * config/crx/crx.c (crx_compute_frame): UPdate.
21422 (crx_initial_elimination_offset): UPdate.
21423 * config/xtensa/xtensa.c (compute_frame_size): Update
21424 (xtensa_builtin_saveregs): Update.
21425 (xtensa_va_start): Update.
21426 (order_regs_for_local_alloc): Update.
21427 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
21428 (xstormy16_expand_builtin_va_start): Update.
21429 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
21430 * config/m68hc11/m68hc11.md (return expanders): Update.
21431 * config/m68hc11/m68hc11.c (expand_prologue): Update.
21432 (expand_epilogue): Update.
21433 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
21434 (cris_simple_epilogue): Update.
21435 (cris_expand_prologue): Update.
21436 (cris_expand_epilogue): Update.
21437 * config/iq2000/iq2000.c (iq2000_va_start): Update.
21438 (compute_frame_size): Update.
21439 * config/mt/mt.c (mt_compute_frame_size): Update.
21440 * config/mn10300/mn10300.c (expand_prologue): Update.
21441 (expand_epilogue): Update.
21442 (initial_offset): Update.
21443 (mn10300_builtin_saveregs):
21444 * config/mn10300/mn10300.md (return expander): Update.
21445 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
21446 (ia64_initial_elimination_offset): Update.
21447 (ia64_initial_elimination_offset): Update.
21448 (ia64_expand_prologue): Update.
21449 * config/m68k/m68k.md (return expander): Update.
21450 * config/rs6000/rs6000.c (rs6000_va_start): Update.
21451 (rs6000_stack_info): Update.
21452 * config/mcore/mcore.c (layout_mcore_frame): Update.
21453 (mcore_expand_prolog): Update.
21454 * config/arc/arc.c (arc_compute_frame_size): Update.
21455 * config/score/score3.c (score3_compute_frame_size): Update.
21456 * config/score/score7.c (score7_compute_frame_size): Update.
21457 * config/arm/arm.c (use_return_insn): Update.
21458 (thumb_find_work_register): Update.
21459 (arm_compute_save_reg_mask): Update.
21460 (arm_output_function_prologue): Update.
21461 (arm_output_epilogue): Update.
21462 (arm_size_return_regs): Update.
21463 (arm_get_frame_offsets): Update.
21464 (arm_expand_prologue): Update.
21465 (thumb_exit): Update.
21466 (thumb_unexpanded_epilogue): Update.
21467 (thumb1_output_function_prologue): Update.
21468 * config/pa/pa.md (return expander): Update.
21469 * config/pa/pa.c (compute_frame_size): Update.
21470 (hppa_builtin_saveregs): Update.
21471 * config/mips/mips.c (mips_va_start): Update.
21472 (mips16_build_function_stub): Update.
21473 (mips_compute_frame_info): Update.
21474 (mips_restore_gp): Update.
21475 (mips_output_function_prologue): Update.
21476 (mips_expand_prologue): Update.
21477 * config/v850/v850.c (compute_frame_size): Update.
21478 (expand_prologue): * config/mmix/mmix.c (along): update.
21479 (mmix_initial_elimination_offset): update.
21480 (mmix_reorg): update.
21481 (mmix_use_simple_return): update.
21482 (mmix_expand_prologue): update.
21483 (mmix_expand_epilogue): Update.
21484 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
21485 (emit_link_insn): Update.
21486
5d9b8bb4
AS
214872008-04-08 Anatoly Sokolov <aesok@post.ru>
21488
22129589
AS
21489 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
21490 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
5d9b8bb4 21491 instructions.
22129589 21492 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
5d9b8bb4
AS
21493 atmega103 device.
21494
3e029763
JH
214952008-04-07 Jan Hubicka <jh@suse.cz>
21496
21497 * function.h (rtl): Rename to x_rtl.
21498 (crtl): New define.
21499 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
21500 frame_offset, stack_check_probe_note, arg_pointer_save_area,
21501 used_temp_slots avail_temp_slots, temp_slot_level,
21502 nonlocal_goto_handler_labels): Update accesstors.
21503 (rtl): New global variable.
21504 (struct function): Move some fileds to rtl_data.
21505 (get_arg_pointer_save_area): Update prototype.
21506 * builtins.c (expand_builtin_setjmp_receiver): Update call of
21507 get_arg_pointer_save_area.
21508 * expr.c (init_expr): Update
21509 * function.c (get_frame_size): Update
21510 (assign_stack_local): Update
21511 (expand_function_end): Update.
21512 (get_art_pointer_save_area): Update
22129589 21513 * function.h
3e029763
JH
21514 * emit-rtl.c (rtl): Declare.
21515 (regno_reg_rtx): Declare.
21516 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
21517 Update.
21518 (gen_reg_rtx): Update.
21519 * varasm.c (n_deferred_constatns): Update accestor.
21520 (init_varasm_status): Do not allocate varasm_status.
21521 (force_const_mem, get_pool_size, output_constant_pool): Update.
21522 * stmt.c (force_label_rtx): Do not use x_ prefixes.
21523 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
21524 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
21525 * sparc/sparc.h (INIT_EXPANDERS): Update.
21526 * ia64/ia64.h (INIT_EXPANDERS): Update.
21527
c3be2598
JW
215282008-04-07 James E. Wilson <wilson@tuliptree.org>
21529
21530 * reload.c (push_secondary_reload): Add missing break to for loop.
21531
46b71b03
PB
215322008-04-07 Peter Bergner <bergner@vnet.ibm.com>
21533
21534 PR middle-end/PR28690
21535 * rtlanal.c: Update copyright years.
21536 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
21537 as REG_POINTER and MEM_POINTER operands.
21538 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
21539 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
21540 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
21541 * gcse.c: Update copyright years.
21542 (pre_delete): Call gen_reg_rtx_and_attrs.
21543 (hoist_code): Likewise.
21544 (build_store_vectors): Likewise.
21545 (delete_store): Likewise.
21546 * loop-invariant.c (move_invariant_reg): Likewise.
21547 Update copyright years.
21548
64ef8953
UB
215492008-04-07 Uros Bizjak <ubizjak@gmail.com>
21550
21551 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
21552 control string instead of quoted.
21553
4218dc2d 215542008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
84159bd8 21555
64ef8953
UB
21556 * doc/rtl.texi: Rewrite of subreg section.
21557
8502420b
KT
215582008-04-07 Kai Tietz <kai.tietz@onevision.com>
21559
64ef8953
UB
21560 PR/35842
21561 * config/i386/i386.c (legitimize_pic_address): Add treating
21562 of dllimport SYM_REF's.
21563 (legitimize_dllimport_symbol): Add prototype.
8502420b 21564
39fcde8f
EB
215652008-04-07 Eric Botcazou <ebotcazou@adacore.com>
21566
21567 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
21568 reference in constructor with non self-referential type.
21569
9dd9bf80
EB
215702008-04-07 Eric Botcazou <ebotcazou@adacore.com>
21571
21572 Removal of Return with Depressed Stack Pointer support
21573 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
21574 (ECF_SP_DEPRESSED): Likewise.
21575 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
21576 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
21577 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
21578 (expand_call): Do not test ECF_SP_DEPRESSED.
21579 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
21580 * function.c (keep_stack_depressed): Delete.
21581 (handle_epilogue_set): Likewise.
21582 (update_epilogue_consts): Likewise.
21583 (emit_equiv_load): Likewise.
21584 (thread_prologue_and_epilogue_insns): Remove support for Return with
21585 Depressed Stack Pointer.
21586 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
21587
3633df5a
RG
215882008-04-06 Richard Guenther <rguenther@suse.de>
21589
21590 PR tree-optimization/35400
21591 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
21592 information from SSA_NAMEs.
21593
5dc77808
AS
215942008-04-06 Anatoly Sokolov <aesok@post.ru>
21595
21596 * config/avr/avr.h (avr_mega_p): Remove declaration.
21597 (AVR_MEGA): Remove macro.
21598 * config/avr/avr.c (avr_mega_p): Remove variable.
21599 (avr_override_options): Remove inicializion of avr_mega_p.
21600 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
21601 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
21602 (avr_jump_mode): (Ditto.).
21603 (avr_output_progmem_section_asm_op): (Ditto.).
21604 (avr_asm_init_sections): (Ditto.).
21605 (avr_asm_init_sections): (Ditto.).
21606 (avr_rtx_costs): (Ditto.).
21607 * config/avr/avr.md: (Ditto.).
22129589 21608 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
5dc77808
AS
21609 '__AVR_MEGA__'.
21610
8c51effa
RG
216112008-04-06 Richard Guenther <rguenther@suse.de>
21612
21613 PR tree-optimization/35842
21614 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
21615 is_gimple_invariant_address.
21616
3135ce84
FXC
216172008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
21618
21619 * gcc.c (default_compilers): Sync Fortran extensions list with
21620 that in fortran/lang-specs.h.
21621 * doc/invoke.texi: Likewise.
21622 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
21623 * dwarf2out.c (gen_compile_unit_die): Likewise.
21624
d7d7db8b
TC
216252008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
21626
21627 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
21628
27183bba
UB
216292008-04-05 Uros Bizjak <ubizjak@gmail.com>
21630
21631 PR target/12329
21632 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
21633 attribute is used for nested functions.
21634
9e016eba
JH
216352008-04-05 Jan Hubicka <jh@suse.cz>
21636
9fb7564e
JH
21637 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
21638
9e016eba
JH
21639 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
21640 letter argument.
21641 (dump_files): Update.
21642 (enable_rtl_dump_file): Do not accept letter argument.
21643 * tree-pass.h (dump_file_info): Remove letter argument.
21644 * toplev.c (decode_d_option): Update -da handling.
21645 * toplev.h (enable_rtl_dump_file): Update prototype.
21646 * passes.c (register_one_dump_file): Do not accept IPA argument; work
21647 it out based on pass type.
21648 (register_dump_files_1): Likewise.
21649 (init_optimization_passes): Update register_one_dump_file calls.
27183bba
UB
21650 (execute_one_pass): Sanity check that IPA passes are called at IPA
21651 level and RTL passes at RTL level.
9e016eba
JH
21652 (execute_pass_list): IPA pass can not be after or subpass of
21653 GIMPLE/RTL pass.
21654 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
21655 disallov RTL subpasses of IPA subpasses.
21656
23ef6d21
BE
216572008-04-05 Ben Elliston <bje@au.ibm.com>
21658
21659 * tree-cfg.c (need_fake_edge_p): Return false for calls to
21660 builtins that return exactly once and do not throw. Cache call to
21661 call_expr_flags.
21662
3c2397cd
AH
216632008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
21664
21665 PR rtl-optimization/34916
21666 PR middle-end/35519
21667 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
21668 between instruction pairs.
21669
9eb3a0dd
N
216702008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
21671
21672 * doc/invoke.texi: Document -mbitops for SH.
21673 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
21674 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
21675 * config/sh/sh.c (print_operand): Add %t operand code.
21676 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
21677 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
21678 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
21679 (extendqihi2): Likewise.
21680 (movqi_i): Likewise.
21681 (insv): Use bset, bclr and bst instructions for SH2A if possible.
21682 (extv): Use bld instruction for SH2A if possible.
21683 (extzv): Likewise.
21684 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
21685 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
21686 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
21687 (bset.b, bclr.b): Define peepholes.
21688 * config/sh/sh.opt (mbitops): New option.
21689
fdf4f148
JJ
216902008-04-04 Janis Johnson <janis187@us.ibm.com>
21691
21692 PR target/35620
21693 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
21694 and view convert expression.
21695
3088d404
JJ
216962008-04-04 Jakub Jelinek <jakub@redhat.com>
21697
21698 PR target/35364
21699 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
21700
8b96a312
L
217012008-04-04 H.J. Lu <hongjiu.lu@intel.com>
21702
21703 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
21704
21705 * config/i386/cpuid.h (bit_AES): New.
21706 (bit_PCLMUL): Likewise.
21707
21708 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
21709 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
21710 SSE2 if AES or PCLMUL is enabled.
21711 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
21712 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
21713 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
21714 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
21715 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
21716 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
21717 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
21718 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
21719 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
21720 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
21721 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
21722 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
21723 __builtin_ia32_aeskeygenassist128 and
21724 __builtin_ia32_pclmulqdq128.
21725 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
21726 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
21727 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
21728
21729 * config/i386/i386.h (TARGET_AES): New.
21730 (TARGET_PCLMUL): Likewise.
21731 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
21732
21733 * config/i386/i386.md (UNSPEC_AESENC): New.
21734 (UNSPEC_AESENCLAST): Likewise.
21735 (UNSPEC_AESDEC): Likewise.
21736 (UNSPEC_AESDECLAST): Likewise.
21737 (UNSPEC_AESIMC): Likewise.
21738 (UNSPEC_AESKEYGENASSIST): Likewise.
c9a22ea1 21739 (UNSPEC_PCLMUL): Likewise.
8b96a312
L
21740
21741 * config/i386/i386.opt (maes): New.
21742 (mpclmul): Likewise.
21743
21744 * config/i386/sse.md (aesenc): New pattern.
21745 (aesenclast): Likewise.
21746 (aesdec): Likewise.
21747 (aesdeclast): Likewise.
21748 (aesimc): Likewise.
21749 (aeskeygenassist): Likewise.
21750 (pclmulqdq): Likewise.
21751
21752 * config/i386/wmmintrin.h: New.
21753
21754 * doc/extend.texi: Document AES and PCLMUL built-in function.
21755
21756 * doc/invoke.texi: Document -maes and -mpclmul.
21757
e8924938
PB
217582008-04-04 Paolo Bonzini <bonzini@gnu.org>
21759
21760 * function.c (free_after_parsing): Replace with
21761 cxx_push_function_context from C++ front-end.
21762 (allocate_struct_function): Don't call langhook.
21763 * langhooks.h (struct lang_hooks_for_functions): Delete.
21764 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
21765 member "function".
21766 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
21767 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
21768 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
21769 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
21770 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
21771 remove LANG_HOOKS_FUNCTION_INITIALIZER.
21772 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
21773
21774 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
21775 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
22129589 21776
05008a0c
JJ
217772008-04-04 Jakub Jelinek <jakub@redhat.com>
21778
21779 PR c/35440
21780 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
21781 for all types.
21782
c071e8bc
RG
217832008-04-04 Richard Guenther <rguenther@suse.de>
21784
21785 PR middle-end/35823
21786 * fold-const.c (optimize_minmax_comparison): Use the correct
21787 type for the constant in the simplified comparison.
21788
f4a1dd0d
ZM
217892008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
21790
21791 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
21792 Pass L2 size as "--param l2-cache-size" to the compiler.
21793 (decode_l2_cache): New function to decode L2 cache parameters using
21794 0x8000006 extended cpuid function.
21795 (detect_caches_amd): Determine parameters of L2 cache using
21796 decode_l2_caches function.
21797 (decode_caches_intel): Decode L2 cache parameters.
21798 (detect_caches_intel): Determine L2 cache parameters using
21799 decode_caches_intel and decode_l2_caches functions.
21800
3ee909cb
BW
218012008-04-03 Bob Wilson <bob.wilson@acm.org>
21802
21803 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
21804 secondary input reload for subword loads from the constant pool.
21805
6db07dcb
JJ
218062008-04-03 Janis Johnson <janis187@us.ibm.com>
21807
383e91e4
JJ
21808 PR target/35713
21809 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
21810 constants of the appropriate size for runtime calculations.
21811
6db07dcb
JJ
21812 PR c/35712
21813 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
21814 decimal-float literal constant zero.
21815
5da250fc
JJ
218162008-04-03 Jakub Jelinek <jakub@redhat.com>
21817
79addd1f
JJ
21818 PR c/35738
21819 * c-parser.c (c_parser_omp_atomic): Call
21820 default_function_array_conversion on the RHS.
21821
5da250fc
JJ
21822 PR middle-end/35818
21823 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
21824 call is_variable_sized if decl has incomplete type.
21825
940f3b52
L
218262008-04-03 H.J. Lu <hongjiu.lu@intel.com>
21827
21828 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
21829
6ac935c1
AN
218302008-04-03 Adam Nemet <anemet@caviumnetworks.com>
21831
21832 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
21833 iterators.
64ef8953 21834 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6ac935c1
AN
21835 (sgt<u>): Merge sgt and sgtu into new expander.
21836 (sgt, sgtu): Remove expanders.
64ef8953 21837 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6ac935c1
AN
21838 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
21839 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
21840 *sgtu_<mode>_mips16 into new pattern.
21841 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
21842 (sge<u>): Merge sge and sgeu into new expander.
21843 (sge, sgeu): Remove expanders.
21844 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
21845 new pattern.
21846 (*sge_<mode>, second *sge_<mode>): Remove patterns.
21847 (slt<u>): Merge slt and sltu into new expander.
21848 (slt, sltu): Remove expanders.
64ef8953 21849 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6ac935c1
AN
21850 (*slt_<mode>, *sltu_<mode>): Remove patterns.
21851 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
21852 *sltu_<mode>_mips16 into new pattern.
21853 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
21854 (sle<u>): Merge sle and sleu into new expander.
21855 (sle, sleu): Remove expanders.
64ef8953 21856 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6ac935c1
AN
21857 (*sle_<mode>, *sleu_<mode>): Remove patterns.
21858 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
21859 *sleu_<mode>_mips16 into new pattern.
21860 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
21861
6b0c2336
JH
218622008-04-03 Jan Hubicka <jh@suse.cz>
21863
21864 PR tree-optimization/35795
21865 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
21866 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
21867 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
21868 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
21869 * score/score3.c (score3_output_mi_thunk): Likewise.
21870 * score/score7.c (score7_output_mi_thunk): Likewise.
21871 * mips/mips.c (mips_output_mi_thunk): Likewise.
21872
b47ee386
RG
218732008-04-03 Richard Guenther <rguenther@suse.de>
21874
21875 * tree-vrp.c (extract_range_from_unary_expr): Handle all
21876 conversions. Simplify code.
21877
2a7428c0
KK
218782008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
21879
21880 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
21881
6cba282a
TT
218822008-04-03 Tom Tromey <tromey@redhat.com>
21883 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21884
21885 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
21886 * config/bfin/t-bfin-linux (generated_files): Add
21887 linux-sysroot-suffix.h.
21888 * doc/install.texi (Prerequisites): Require make 3.80.
21889 * doc/sourcebuild.texi (Front End Directory): Document new
21890 variable.
21891 * Makefile.in (generated_files): New variable.
21892 (ALL_HOST_OBJS): New variable.
21893 ($(ALL_HOST_OBJS)): New target.
21894
9ff420f1
PB
218952008-04-03 Paolo Bonzini <bonzini@gnu.org>
21896
6b0c2336
JH
21897 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
21898 (remap_block): Call id->transform_lang_insert_block instead
21899 of langhook.
21900 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
21901 Set id.transform_lang_insert_block to NULL.
21902 (clone_body): Move to cp/optimize.c
21903 * tree-inline.h (struct copy_body_data): Change
21904 transform_lang_insert_block to function pointer.
21905 (copy_generic_body, copy_decl_no_change): Export.
21906 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
21907 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
21908 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
21909
21910 * c-tree.h (insert_block): Kill.
21911 * c-decl.c (insert_block): Kill.
9ff420f1 21912
d2784db4
PB
219132008-04-03 Paolo Bonzini <bonzini@gnu.org>
21914
6b0c2336
JH
21915 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
21916 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
21917 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
21918 argument.
21919 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
21920 argument, call {push,pop}_function_context from here.
21921 * c-parser.c: Use c_{push,pop}_function_context.
21922
21923 * function.c (push_function_context_to): Move meat ...
21924 (push_function_context): ... here. Simplify.
21925 * function.c (pop_function_context_from): Move meat ...
21926 (pop_function_context): ... here. Simplify.
21927 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
21928 leave_nested).
21929 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
21930 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
21931 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
21932 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2784db4 21933
9e0aebca
BE
219342008-04-03 Ben Elliston <bje@au.ibm.com>
21935
21936 * expmed.c (extract_force_align_mem_bit_field): Remove.
21937
55187c8a
RG
219382008-04-03 Richard Guenther <rguenther@suse.de>
21939
21940 PR middle-end/35800
21941 * expr.h (try_casesi): Adjust prototype.
21942 * expr.c (try_casesi): Take fallback label as extra parameter.
21943 Use that for gen_casesi if default_label is NULL.
21944 * stmt.c (expand_case): Pass fallback label to try_casesi,
21945 make sure to fill gaps with a fallback label if default_label
21946 is not present.
21947
e49cf927 219482008-04-03 Dominique d'Humières <dominiq@lps.ens.fr>
d7087dd2
DH
21949
21950 PR target/35801
21951 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
21952
609023ff
BE
219532008-04-03 Ben Elliston <bje@au.ibm.com>
21954
21955 * expmed.c (extract_split_bit_field): Remove if (0) code.
21956 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
21957 (do_ds_constraint): Likewise.
21958
93d45d9e
JM
219592008-04-02 Joseph Myers <joseph@codesourcery.com>
21960
21961 * doc/cppopts.texi (-dU): Document.
21962 * c-common.h (flag_dump_macros): Update comment.
21963 * c-opts.c (handle_OPT_d): Handle -dU.
21964 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
21965 dump_queued_macros, cb_used_define, cb_used_undef): New.
21966 (init_pp_output): Handle -dU.
21967 (cb_line_change): Call dump_queued_macros.
21968 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
21969
e6b69d0e
AS
219702008-04-02 Anatoly Sokolov <aesok@post.ru>
21971
22129589 21972 * config/avr/predicates.md (io_address_operand): New predicate.
e6b69d0e
AS
21973 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
21974 * config/avr/avr.c (avr_io_address_p): Remove function.
22129589 21975 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
e6b69d0e
AS
21976 'avr_io_address_p' function.
21977 (out_movhi_r_mr): (Ditto.).
21978 (out_movqi_mr_r): (Ditto.).
21979 (out_movhi_mr_r): (Ditto.).
21980 (avr_address_cost): (Ditto.).
21981
7b198002
UB
219822008-04-02 Uros Bizjak <ubizjak@gmail.com>
21983
21984 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
21985 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
21986 in 32bit mode when XMM registers are available to avoid store
21987 forwarding stalls.
21988 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
21989 corresponding post-reload splitters.
21990
abe08645
L
219912008-04-02 H.J. Lu <hongjiu.lu@intel.com>
21992
21993 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
21994 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
21995 __builtin_ia32_roundss.
21996 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
21997 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
21998 __builtin_ia32_roundss.
21999 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
22000 IX86_BUILTIN_SHUFPD here.
22001
94237c92
L
220022008-04-02 H.J. Lu <hongjiu.lu@intel.com>
22003
22004 * config/i386/i386.md (plogic): New.
22005 (plogicprefix): Likewise.
22006
22007 * config/i386/mmx.md (mmx_<code><mode>3): New.
22008 (mmx_and<mode>3): Removed.
22009 (mmx_ior<mode>3): Likewise.
22010 (mmx_xor<mode>3): Likewise.
22011
22012 * config/i386/sse.md (<code><mode>3): New.
22013 (*<code><mode>3): Likewise.
22014 (*<code><mode>3): Likewise.
22015 (<code><mode>3): Likewise.
22016 (*sse_<code><mode>3): Likewise.
22017 (*sse2_<code><mode>3): Likewise.
22018 (<code>tf3): Likewise.
22019 (*<code>tf3): Likewise.
22020 (and<mode>3): Likewise.
22021 (*and<mode>3): Likewise.
22022 (ior<mode>3): Removed.
22023 (*ior<mode>3): Likewise.
22024 (xor<mode>3): Likewise.
22025 (*xor<mode>3): Likewise.
22026 (*and<mode>3): Likewise.
22027 (*ior<mode>3): Likewise.
22028 (*xor<mode>3): Likewise.
22029 (and<mode>3): Likewise.
22030 (*sse_and<mode>3): Likewise.
22031 (*sse2_and<mode>3): Likewise.
22032 (andtf3): Likewise.
22033 (*andtf3): Likewise.
22034 (ior<mode>3): Likewise.
22035 (*sse_ior<mode>3): Likewise.
22036 (*sse2_ior<mode>3): Likewise.
22037 (iortf3): Likewise.
22038 (*iortf3): Likewise.
22039 (xor<mode>3): Likewise.
22040 (*sse_xor<mode>3): Likewise.
22041 (*sse2_xor<mode>3): Likewise.
22042 (xortf3): Likewise.
22043 (*xortf3): Likewise.
22044
b7814a18
RG
220452008-04-02 Richard Guenther <rguenther@suse.de>
22046
22047 PR tree-optimization/14495
22048 PR tree-optimization/34793
22049 * tree-vrp.c (struct switch_update): New structure.
22050 (to_remove_edges, to_update_switch_stmts): New VECs.
22051 (simplify_switch_using_ranges): New function. Remove not taken
22052 case labels and edges.
22053 (simplify_stmt_using_ranges): Call it.
22054 (identify_jump_threads): Mark edges we have queued for removal
22055 so we don't thread them.
22056 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
22057 case label vector.
22058 * tree-cfg.c (group_case_labels): Deal with missing default label.
22059 (tree_verify_flow_info): Allow missing default label.
22060 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
22061 (emit_case_nodes): Likewise.
22062 (expand_case): Do not rely on the default label to be present.
22063 * expr.c (try_casesi): Deal with NULL default_label.
22064 (do_tablejump): Likewise.
22065
8aea0bf0
RG
220662008-04-02 Richard Guenther <rguenther@suse.de>
22067
22068 PR tree-optimization/14495
22069 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
22070 SWITCH_EXPR here ...
22071 (vrp_visit_switch_stmt): ... but here (new function).
22072 (find_case_label_index): New helper function.
22073 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
22074
3f1c2278
PB
220752008-04-02 Paolo Bonzini <bonzini@gnu.org>
22076
22077 * fwprop.c: Fix ISO-C99ism.
22078
da0f6381
PB
220792008-04-02 Paolo Bonzini <bonzini@gnu.org>
22080
22081 PR bootstrap/35752
22082 * Makefile.in (objdir): Set it here.
22083 * configure.ac: Not here. Find dynamic linker characteristics.
22084 * exec-tool.in: Use them.
22085 * aclocal.m4: Regenerate.
22086 * configure: Regenerate.
22087
4846b435
PB
220882008-04-02 Paolo Bonzini <bonzini@gnu.org>
22089
22090 * expr.c (expand_var): Delete it.
22091 * expr.h (expand_var): Delete prototype.
22092 * function.c (expand_function_start): Use expand_decl instead.
22093 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
22094 langhook.
22095
4fefbcdb
AH
220962008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
22097
22098 PR rtl-optimization/35542
22099 * fwprop.c (forward_propagate_and_simplify): Replace
22100 loc_reg_mentioned_in_p with reg_mentioned_p.
22101
460d667d
PB
221022008-04-02 Paolo Bonzini <bonzini@gnu.org>
22103
4fefbcdb 22104 PR rtl-optimization/35281
460d667d
PB
22105 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
22106 (propagate_rtx_1): Handle PR_HANDLE_MEM.
22107 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
22108 (varying_mem_p): Move above propagate_rtx.
22109 (all_uses_available_at): Do not check MEMs.
22110
e49cf927 221112008-04-02 Rafael Espíndola <espindola@google.com>
a26a02d7
RAE
22112
22113 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
22114 (register_edge_assert_for_2): Split the cond argument.
22115 (register_edge_assert_for_1): Adjust for the change in
22116 register_edge_assert_for_2.
22117 (register_edge_assert_for): Split the cond argument.
22118 (find_switch_asserts): Adjust for the change in
22119 register_edge_assert_for.
22120
e8930cc1
KT
221212008-04-02 Kai Tietz <kai.tietz@onevision.com>
22122
22123 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
b97d8153 22124 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
893125e0 22125 offsets for 64-bit mingw.
b97d8153 22126 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
893125e0 22127 abi for x86_64-pc-mingw.
e8930cc1 22128
70b7b037
RG
221292008-04-02 Richard Guenther <rguenther@suse.de>
22130
22131 * tree-vrp.c (extract_range_from_assert): Make sure to not
22132 produce range min/max with TREE_OVERFOW set.
22133 If merging a anti-range and a range keep the anti-range if
22134 the range covers all values of the type.
22135 (register_edge_assert_for_2): Only allow sign-changing
22136 conversions in detecting canonical range checks. Also
22137 register an assert for the unsigned name if useful.
22138
22139 PR tree-optimization/35787
22140 * tree-vrp.c (vrp_val_max): New function.
22141 (vrp_val_min): Likewise.
22142 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
22143 (vrp_val_is_min): Likewise.
22144 (supports_overflow_infinity): Use vrp_val_{min,max}.
22145 (negative_overflow_infinity): Likewise.
22146 (positive_overflow_infinity): Likewise.
22147 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
22148 (is_positive_overflow_infinity): Likewise.
22149 (is_overflow_infinity): Likewise.
22150 (avoid_overflow_infinity): Use vrp_val_{min,max} and
22151 vrp_val_is_{min,max}.
22152 (set_and_canonicalize_value_range): Canonicalize anti-ranges
22153 to ranges if possible. Avoid empty ranges.
22154
10743280
JDA
221552008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22156
22157 PR middle-end/35705
22158 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
22159 the expression is a function address.
22160
7151ffbe
GH
221612008-04-01 George Helffrich <george@gcc.gnu.org>
22162
623f8e39 22163 PR fortran/35154, fortran/23057
7151ffbe
GH
22164 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
22165 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
22166 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
22167 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
22168 in common.
22169 (dbxout_syms): Check for COMMON-based symbol and wrap in
22170 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
22171 in bracket for efficiency.
22172
22173 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
22174 using DW_TAG_common_block + member offset.
22175 (add_pubname_string): New function.
22176 (dw_expand_expr): New function to find block name and offset for
22177 COMMON var.
22178 (common_check): New function to check whether symbol in Fortran COMMON.
22179 (gen_variable_die): If COMMON, use DW_TAG_common_block.
22180
dc197ab9
VR
221812008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
22182
22183 PR c/35436
22184 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
22185
9e9b5341
BE
221862008-04-02 Ben Elliston <bje@au.ibm.com>
22187
22188 * config/v850/v850.md (casesi): Remove if (0) code.
22189 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22190 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
22191
380edc9f
UB
221922008-04-01 Uros Bizjak <ubizjak@gmail.com>
22193
22194 * config/i386/i386.md (rex64suffix): New mode attribute.
22195 (floathi<mode>2): Disable expander for SSE math.
22196 (*floathi<mode>2_1): New insn insn_and_split pattern.
22197 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
22198 corresponding post-reload splitters.
22199 (*floathi<mode>2_i387): New macroized insn pattern.
22200 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
22201 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
22202 insn_and_split pattern.
22203 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
22204 New macroized instruction patterns and corresponding post-reload
22205 splitters.
22206 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
22207 and corresponding post-reload splitters.
22208 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
22209 New macroized instruction patterns.
22210 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
22211 macroized instruction patterns and corresponding post-reload splitters.
22212 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
22213 corresponding post-reload splitters.
22214 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
22215 New macroized instruction patterns.
22216 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
22217 corresponding post-reload splitters.
22218 (*floatsi<mode>2_i387): New macroized instruction patterns.
22219
78e8956b
L
222202008-04-01 H.J. Lu <hongjiu.lu@intel.com>
22221
22222 * config/i386/i386.md (smaxmin): New.
22223 (umaxmin): Likewise.
22224 (maxminiprefix): Likewise.
22225 (maxminfprefix): Likewise.
22226 (<code><mode>3): Likewise.
22227 (smin<mode>3): Removed.
22228 (smax<mode>3): Likewise.
22229
22230 * config/i386/mmx.md (mmx_<code>v2sf3): New.
22231 (mmx_<code>v4hi3): Likewise.
22232 (mmx_<code>v8qi3): Likewise.
22233 (mmx_smaxv2sf3): Removed.
22234 (mmx_sminv2sf3): Likewise.
22235 (mmx_umaxv8qi3): Likewise.
22236 (mmx_smaxv4hi3): Likewise.
22237 (mmx_uminv8qi3): Likewise.
22238 (mmx_sminv4hi3): Likewise.
22239
22240 * config/i386/sse.md (<addsub><mode>3): New.
22241 (*<addsub><mode>3): Likewise.
22242 (<sse>_vm<addsub><mode>3): Likewise.
22243 (<maxmin><mode>3): Likewise.
22244 (*<maxmin><mode>3_finite): Likewise.
22245 (*<maxmin><mode>3): Likewise.
22246 (<sse>_vm<maxmin><mode>3): Likewise.
22247 (sse3_h<addsub>v4sf3): Likewise.
22248 (sse3_h<addsub>v2df3): Likewise.
22249 (<maxmin>v16qi3): Likewise.
22250 (*<maxmin>v16qi3): Likewise.
22251 (<maxmin>v8hi3): Likewise.
22252 (*<maxmin>v8hi3): Likewise.
22253 (*sse4_1_<maxmin><mode>3): Likewise.
22254 (*sse4_1_<maxmin><mode>3): Likewise.
22255 (add<mode>3): Removed.
22256 (*add<mode>3): Likewise.
22257 (<sse>_vmadd<mode>3): Likewise.
22258 (sub<mode>3): Likewise.
22259 (*sub<mode>3): Likewise.
22260 (<sse>_vmsub<mode>3): Likewise.
22261 (smin<mode>3): Likewise.
22262 (*smin<mode>3_finite): Likewise.
22263 (*smin<mode>3): Likewise.
22264 (<sse>_vmsmin<mode>3): Likewise.
22265 (smax<mode>3): Likewise.
22266 (*smax<mode>3_finite): Likewise.
22267 (*smax<mode>3): Likewise.
22268 (<sse>_vmsmax<mode>3): Likewise.
22269 (sse3_haddv4sf3): Likewise.
22270 (sse3_haddv2df3): Likewise.
22271 (sse3_hsubv4sf3): Likewise.
22272 (sse3_hsubv2df3): Likewise.
22273 (umaxv16qi3): Likewise.
22274 (*umaxv16qi3): Likewise.
22275 (smaxv8hi3): Likewise.
22276 (*smaxv8hi3): Likewise.
22277 (*sse4_1_smax<mode>3): Likewise.
22278 (*sse4_1_umax<mode>3): Likewise.
22279 (uminv16qi3): Likewise.
22280 (*uminv16qi3): Likewise.
22281 (sminv8hi3): Likewise.
22282 (*sminv8hi3): Likewise.
22283 (*sse4_1_smin<mode>3): Likewise.
22284 (*sse4_1_umin<mode>3): Likewise.
22285
e49cf927 222862008-04-01 Rafael Espíndola <espindola@google.com>
220f1c29
RAE
22287
22288 * tree-cfg.c (verify_expr): remove in_phi.
78e8956b 22289 (verify_stmt): Don't call walk_tree with verify_expr. Use
220f1c29
RAE
22290 is_gimple_min_invariant instead of is_gimple_val.
22291
7f9766e4
JM
222922008-04-01 Joseph Myers <joseph@codesourcery.com>
22293
22294 * doc/include/gpl_v3.texi: Update for manpage generation.
22295 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
22296 gpl.texi.
22297 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
22298 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
22299 gpl_v3.texi instead of gpl.texi.
22300 (gpl.pod): New.
22301
d4c32e1d
JJ
223022008-04-01 Jakub Jelinek <jakub@redhat.com>
22303
22304 PR pch/13675
22305 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
22306
e49cf927 223072008-04-01 Rafael Espíndola <espindola@google.com>
764a79ed
RAE
22308
22309 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
22310 (extract_code_and_val_from_cond): Use
22311 extract_code_and_val_from_cond_with_ops.
22312
113c63b8
JH
223132008-04-01 Jan Hubicka <jh@suse.cz>
22314
22315 * function.c (free_after_compilation): Free epilogue_delay_list.
22316 (prepare_function_start): Assert that previous compilation was freed.
22317
ec24c3a3
JH
223182008-04-01 Jan Hubicka <jh@suse.cz>
22319 Jim Wilson <wilson@tuliptree.org>
22320 Andreas Tobler <andreast@gcc.gnu.org>
22321
22322 PR middle-end/35781
22323 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
22324 rtl.emit instead cfun->emit.
22325 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
22326 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
22327
1b82c3aa
BE
223282008-04-01 Ben Elliston <bje@au.ibm.com>
22329
22330 * doc/c-tree.texi (Function Basics): Fix grammatical error.
22331
2f908293
SP
223322008-03-31 Seongbae Park <seongbae.park@gmail.com>
22333
22334 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
22335 New options
22336 (fprofile-use): Add var flag_profile_use
380edc9f
UB
22337 * coverage.c (coverage_begin_output): Do not open a gcno file for
22338 output only if -ftest-coverage is set.
2f908293 22339 Do not add getpwd() to gcda file path.
380edc9f 22340 (build_gcov_info): Check the new flag
2f908293
SP
22341 flag_profile_datafile_relative_path.
22342 (coverage_init): Use profile_data_prefix.
22343 Read profile counter only if flag_profile_use is set.
22344 * opts.c (common_handle_option): New option fprofile-use=,
22345 fprofile-dir=, fprofile-generate=.
22346 * toplev.c (profile_data_prefix): New variable definition.
22347 * toplev.h (profile_data_prefix): New declaration.
22348 * doc/invoke.tex (Option Summary, Optimization Options):
22349 Add new options.
22350
1def9c3f
JW
223512008-03-31 James E. Wilson <wilson@tuliptree.org>
22352
380edc9f
UB
22353 * varasm.c (output_constant_pool_1): In LABEL_REF check,
22354 use tmp consistently.
048ffb8f 22355
1def9c3f
JW
22356 PR target/35695
22357 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
22358 * config/ia64/ia64.c (rtx_needs_barrier): Handle
22359 UNSPEC_FR_RECIP_APPROX_RES.
22360 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
22361
bb686a19
VR
223622008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
22363
22364 PR c/35750
22365 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
22366
a12bdb97
AP
223672008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
22368
22369 PR middle-end/30186
22370 * fold-const.c (fold_indirect_ref_1): Support accessing non first
22371 element of the vector via a pointer.
22372
2d4bba80
ILT
223732008-03-31 Ian Lance Taylor <iant@google.com>
22374
380edc9f 22375 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2d4bba80 22376
bd60bab2
JH
223772008-03-31 Jan Hubicka <jh@suse.cz>
22378
22379 * builtins.c (expand_builtin_setjmp_receiver): Update call of
22380 get_arg_pointer_save_area.
22381 * expr.c (init_expr): Just clear out rtl.expr.
22382 * function.c (free_after_compilation): Clear out whole RTL structure.
22383 (get_func_frame_size): Merge into ...
22384 (get_frame_size): ... this one.
22385 (assign_stack_local_1): Merge into ...
22386 (assign_stack_local): ... this one.
22387 (expand_function_end): Update call of get_arg_pointer_save_area.
22388 (get_art_pointer_save_area): Remove cfun argument.
22389 * function.h (emit_status): regno_pointer_align does not need length
22390 attribute. Move x_regno_reg_rtx to ...
22391 (regno_reg_rtx): ... new global array.
22392 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
22393 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
380edc9f
UB
22394 apply_args_value, forced_labels, stack_pointer_delta):
22395 Update accestors.
bd60bab2
JH
22396 (struct varasm_status): Move here from varasm.c
22397 (struct rtl_data): New. Move here some fields from struct function.
22398 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
22399 frame_offset, stack_check_probe_note, arg_pointer_save_area,
22400 used_temp_slots avail_temp_slots, temp_slot_level,
22401 nonlocal_goto_handler_labels): Update accesstors.
22402 (rtl): New global variable.
22403 (struct function): Move some fileds to rtl_data.
22404 (get_arg_pointer_save_area): Update prototype.
22405 * emit-rtl.c (rtl): Declare.
22406 (regno_reg_rtx): Declare.
380edc9f
UB
22407 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
22408 Update.
bd60bab2
JH
22409 (gen_reg_rtx): Update.
22410 (init_virtual_regs): Do not tate emit_status argument.
22411 (init_emit): Do not allocate emit.
22412 * varasm.c (varasm_statuc): Move to function.h.
22413 (n_deferred_constatns): Update accestor.
22414 (init_varasm_status): Do not allocate varasm_status.
22415 (force_const_mem, get_pool_size, output_constant_pool): Update.
22416 * stmt.c (force_label_rtx): Do not use x_ prefixes.
22417 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
22418
66f91b93
ZD
224192008-03-31 Zdenek Dvorak <ook@ucw.cz>
22420
22421 PR rtl-optimization/35729
22422 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
22423 references.
22424
66e1ecfe
L
224252008-03-31 H.J. Lu <hongjiu.lu@intel.com>
22426
22427 PR target/32000
22428 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
22429 load/store if memory is unaligned.
22430 (*movti_rex64): Likewise.
22431
22432 * config/i386/predicates.md (misaligned_operand): New.
22433
550386ad
AP
224342008-03-31 Andrew Pinski <pinskia@gmail.com>
22435
22436 PR tree-opt/35431
22437 * tree-ssa-phiopt.c (conditional_replacement): Return early for
22438 complex types.
22439
4e483a22
JB
224402008-03-31 Jan Beulich <jbeulich@novell.com>
22441
22442 * config/ia64/constraints.md: Add 'j' constraint.
22443 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
22444 (movdi_internal): Likewise.
22445
39ffbac9
VR
224462008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
22447
22448 PR c/35748
22449 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
22450
23594c97
L
224512008-03-30 H.J. Lu <hongjiu.lu@intel.com>
22452
22453 PR target/35757
22454 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
22455 proper error message for the third argument on blendpd and
22456 blendps.
22457
22458 * config/i386/sse.md (blendbits): New.
22459 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
22460
8f0e2671
EB
224612008-03-30 Eric Botcazou <ebotcazou@adacore.com>
22462
22463 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
22464
96648603
RG
224652008-03-30 Richard Guenther <rguenther@suse.de>
22466
22467 PR middle-end/31023
22468 * fold-const.c (fold_sign_changed_comparison): Do leave
22469 conversions to base-types alone.
22470
3ac0963a
AP
224712008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
22472
22473 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
22474 the link register if one altivec register is be saved.
22475
744c6d6e
BE
224762008-03-30 Ben Elliston <bje@au.ibm.com>
22477
22478 * final.c (final_scan_insn): Remove if (0) code.
22479
dbc518f0
VR
224802008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
22481
22482 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
22483
ad387dad
L
224842008-03-28 H.J. Lu <hongjiu.lu@intel.com>
22485
22486 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
22487 of V4SFmode to ix86_binary_operator_ok.
22488
9aba5d22
UB
224892008-03-28 Uros Bizjak <ubizjak@gmail.com>
22490
22491 * config/i386/i386.c (override_options): Initialize
22492 ix86_veclib_handler to ix86_veclibabi_svml when
22493 -mveclibabi=svml is used.
22494 (ix86_veclibabi_svml): New function for SVML ABI style
22495 vectorization support.
22496 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
22497
e49cf927 224982008-03-28 Rafael Espíndola <espindola@google.com>
2d3cd5d5
RAE
22499
22500 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
22501 (tree_binary_nonnegative_warnv_p): Make it public.
22502 (tree_single_nonnegative_warnv_p): Make it public.
22503 (tree_invalid_nonnegative_warnv_p): Make it public.
22504 (tree_unary_nonzero_warnv_p): Make it public.
22505 (tree_binary_nonzero_warnv_p): Make it public
22506 (tree_single_nonzero_warnv_p): Make it public.
22507 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
22508 (extract_range_from_binary_expr): Split the expr argument.
22509 (extract_range_from_unary_expr): Split the expr argument.
22510 (extract_range_from_comparison): Split the expr argument.
22511 (extract_range_from_expr): Use the new aux functions.
22512 (vrp_evaluate_conditional_warnv): Use
22513 vrp_evaluate_conditional_warnv_with_ops.
22514 * tree.h (tree_unary_nonzero_warnv_p): Declare.
22515 (tree_binary_nonzero_warnv_p): Declare.
22516 (tree_single_nonzero_warnv_p): Declare.
22517 (tree_expr_nonzero_warnv_p): Declare.
22518 (tree_unary_nonnegative_warnv_p): Declare.
22519 (tree_binary_nonnegative_warnv_p): Declare.
22520 (tree_single_nonnegative_warnv_p): Declare.
22521 (tree_invalid_nonnegative_warnv_p): Declare.
22522
2ab8dbf4
RG
225232008-03-28 Richard Guenther <rguenther@suse.de>
22524
22525 PR tree-optimization/30317
22526 PR tree-optimization/30911
22527 PR tree-optimization/34793
22528 * tree-vrp.c (set_and_canonicalize_value_range): New function.
22529 (struct assert_locus_d): New member EXPR.
22530 (register_new_assert_for): Add EXPR parameter to support
22531 ASSERT_EXPR <name, expr OP limit>.
22532 (register_edge_assert_for_1): Adjust callers.
22533 (find_assert_locations): Likewise.
9aba5d22 22534 (process_assert_insertions_for): Build condition from expression.
2ab8dbf4
RG
22535 (extract_range_from_assert): Handle ASSERT_EXPRs
22536 of the form ASSERT_EXPR <name, expr OP limit>.
22537 (register_edge_assert_for_2): New helper registering
22538 asserts for comparisons. Recognize range tests of the form
22539 (unsigned)i - CST1 OP CST2.
22540 (register_edge_assert_for_1): Use it.
22541 (register_edge_assert_for): Likewise.
22542 (needs_overflow_infinity): Integer sub-types
22543 do not need overflow infinities.
22544 (vrp_val_is_max): The extreme values of integer sub-types
22545 are those of the base type.
22546 (vrp_val_is_min): Likewise.
22547 * tree.def (ASSERT_EXPR): Document extra allowed conditional
22548 expressions.
22549
fc4f3261
NC
225502008-03-28 Nick Clifton <nickc@redhat.com>
22551
f6d2671e 22552 PR target/31110
fc4f3261 22553 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9aba5d22 22554 Return GENERAL_REGS for stack adjustment reloads.
fc4f3261 22555
501fb355
AP
225562008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
22557
22558 PR target/31334
22559 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
22560 const_vector when all the vectors are constant.
22561
ff779f98
BW
225622008-03-27 Bob Wilson <bob.wilson@acm.org>
22563
22564 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
22565 comparisons.
22566 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
22567 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
22568 (scc_sf): New.
22569 (s<code>_sf): Use new scc_sf attribute for opcode names.
22570
e980df8e
TT
225712008-03-27 Tom Tromey <tromey@redhat.com>
22572
22573 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
22574 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
22575 config/spu/t-spu-elf, config/i386/t-interix,
22576 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
22577 config/i386/x-darwin, config/i386/x-mingw32,
22578 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
22579 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
22580 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
22581 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
22582 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
22583 config/rs6000/x-darwin, config/rs6000/t-rs6000,
22584 config/score/t-score-elf, config/arm/t-strongarm-pe,
22585 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
22586 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
22587 Revert automatic dependency patch.
22588
c84555eb
L
225892008-03-27 H.J. Lu <hongjiu.lu@intel.com>
22590
22591 PR target/35657
22592 * config/i386/i386.c (ix86_function_arg_boundary): Align
22593 decimal floating point to its natural boundary.
22594
ffd837fe
RG
225952008-03-27 Richard Guenther <rguenther@suse.de>
22596
22597 PR middle-end/35716
22598 * fold-const.c (fold_comparison): Restrict distinct decl
22599 comparison folding to VAR_DECLs and PARM_DECLs. Do not
22600 solely rely on operand_equal_p.
22601
6b4e94bc
RG
226022008-03-27 Richard Guenther <rguenther@suse.de>
22603
22604 PR c/32511
22605 * c-common.c (handle_weak_attribute): Reject combination of
22606 weak and inline.
22607
62bc00e2
RG
226082008-03-27 Richard Guenther <rguenther@suse.de>
22609
22610 PR tree-optimization/32810
22611 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
22612 conversions from DECL_INITIAL.
22613 (fold_const_aggregate_ref): Likewise from constructor elements.
22614
72425608
ZD
226152008-03-27 Zdenek Dvorak <ook@ucw.cz>
22616
22617 * tree-affine.h (aff_combination_expand): Declare.
22618 (get_inner_reference_aff): Likewise.
22619 * tree-affine.c (aff_combination_expand): Split out from
22620 tree_to_aff_combination_expand.
22621 (get_inner_reference_aff): New function.
22622 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9aba5d22
UB
22623 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
22624 (struct lim_aux_data): sm_done field removed.
22625 (mem_ref_loc_p, mem_ref_locs_p): New types.
22626 (struct mem_ref): Added id, stored, accesses_in_loop,
22627 indep_loop, dep_loop, indep_ref, dep_ref fields.
22628 Removed is_stored, locs and next fields.
22629 (memory_accesses): New variable.
22630 (movement_possibility): Do not allow moving statements
22631 that store to memory.
22632 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
22633 New functions.
22634 (determine_max_movement): For statements with memory references,
22635 find the outermost loop in that the reference is independent.
22636 (move_computations_stmt): Mark the virtual operands for renaming.
22637 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
22638 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
22639 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
22640 add_vop_ref_mapping, create_vop_ref_mapping_loop,
22641 create_vop_ref_mapping, analyze_memory_references,
22642 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
22643 get_all_locs_in_loop, ref_always_accessed_p,
22644 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
22645 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
22646 store_motion_loop, store_motion): New functions.
22647 (struct vop_to_refs_elt): New type.
22648 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
22649 memref_hash, memref_eq, hoist_memory_references): Rewritten.
22650 (schedule_sm): Replaced by...
22651 (execute_sm): ... this.
22652 (determine_lsm_ref, hoist_memory_references,
22653 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
22654 find_more_ref_vops, free_mem_ref, free_mem_refs,
22655 determine_lsm_loop, determine_lsm): Removed.
22656 (tree_ssa_lim_finalize): Free data structures used by store motion.
22657 (tree_ssa_lim): Call analyze_memory_references. Use
22658 store_motion instead of determine_lsm.
72425608 22659
a929bc28
PB
226602008-03-27 Paolo Bonzini <bonzini@gnu.org>
22661
22662 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
22663 rename tmake_file to m68hc11/t-m68hc11.
22664 (mcore): Set inhibit_libc to true.
22665 * config.host (alpha*-dec-*vms*): Set extra_programs.
22666 (interix3*): Don't use host_xmake_file.
22667 * configure.ac: Let config.gcc override inhibit_libc.
22668 * configure: Regenerate.
22669
22670 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
22671 * config/t-openbsd-thread: Remove commented out lines.
22129589 22672
a929bc28
PB
22673 * config/x-interix: Remove.
22674
22675 * config/m68hc11/t-m68hc11-gas: Rename to...
22676 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
22677
22678 * config/mcore/t-mcore: Remove T_CFLAGS.
22679 * config/mcore/t-mcore-pe: Likewise.
22680
60d26958
PB
226812008-03-27 Paolo Bonzini <bonzini@gnu.org>
22682
22683 * configure.ac: Replace custom __GNU_SOURCE test with
22684 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
22685 * aclocal.m4: Regenerate.
22686 * configure: Regenerate.
22687 * config.in: Regenerate.
22688
bd03c084
RG
226892008-03-27 Richard Guenther <rguenther@suse.de>
22690
22691 * fold-const.c (target.h): Include.
22692 (fold_comparison): Fold comparison of addresses of decls
22693 that bind locally or of constants. Consolidate address folding code.
22694 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
22695 results from fold_binary_to_constant.
22696 (compare_values_warnv): Likewise.
22697
87a72aa8
AP
226982008-03-27 Andrew Pinski <pinskia@gmail.com>
22699
22700 PR middle-end/35429
22701 * fold-const.c (fold_truthop): Check for integeral types when folding
22702 a == 0 && b == 0 and a != 0 || b != 0 .
22703
6e1b3420
EB
227042008-03-26 Eric Botcazou <ebotcazou@adacore.com>
22705
22706 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
22707
33558d94
AS
227082008-03-26 Andreas Schwab <schwab@suse.de>
22709
22710 * doc/invoke.texi: Fix use of @item vs. @itemx.
22711
f6a9a9af
TT
227122008-03-26 Tom Tromey <tromey@redhat.com>
22713
22714 * Makefile.in (build/gensupport.o, build/print-rtl.o,
22715 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
22716 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
22717 build/gencodes.o, build/genconditions.o, build/genconfig.o,
22718 build/genconstants.o, build/genemit.o, build/genextract.o,
22719 build/genflags.o, build/genmddeps.o, build/genopinit.o,
22720 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
22721 options.h.
22722
2041e75c
RG
227232008-03-26 Richard Guenther <rguenther@suse.de>
22724
22725 Revert
22726 2008-03-26 Richard Guenther <rguenther@suse.de>
22727
22728 * fold-const.c (target.h): Include.
22729 (fold_comparison): Fold comparison of addresses of two decls
22730 that bind locally. Consolidate address folding code.
22731
aefa9d43
KG
227322008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22733
22734 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
22735 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
22736 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
22737 dconstsqrt2, dconstthird, dconste and/or dconst10.
22738 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
22739 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
22740 dconstsqrt2, dconste): Delete.
22741 (init_emit_once): Likewise. Simplify initializing dconstm1.
22742 Constify variable.
22743 * real.c (get_real_const): New.
22744 * real.h (dconst3, dconst10, dconstm2, dconstthird,
22745 dconstsqrt2, dconste): Delete.
22746 (real_value_const, get_real_const): New.
22747
35dd7cc3
L
227482008-03-26 H.J. Lu <hongjiu.lu@intel.com>
22749
22750 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
22751
22752 * config/i386/i386.c (ix86_function_arg_boundary): Check
22753 BIGGEST_ALIGNMENT instead of 128.
22754 (setup_incoming_varargs_64): Likewise.
22755
f91ed78d
TT
227562008-03-26 Tom Tromey <tromey@redhat.com>
22757
22758 * Makefile.in (DEPFILES): Add missing '/'.
22759
4990038d
RG
227602008-03-26 Richard Guenther <rguenther@suse.de>
22761
22762 * fold-const.c (target.h): Include.
22763 (fold_comparison): Fold comparison of addresses of two decls
22764 that bind locally. Consolidate address folding code.
22765
813ab1d7
NC
227662008-03-26 Nick Clifton <nickc@redhat.com>
22767
22768 PR target/31232
22769 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
22770 not allow INT+INT as a legitimate addressing mode.
22771
cf3135aa
RG
227722008-03-26 Richard Guenther <rguenther@suse.de>
22773
22774 * tree-flow.h (widen_bitfield): Remove declaration.
22775 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
22776 (widen_bitfield): Remove function.
22777 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
22778 code.
22779
fd88fd09
AP
227802008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
22781
22ec849c 22782 PR target/31558
fd88fd09
AP
22783 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
22784 error_mark_node's.
22785
fb959f72
RS
227862008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
22787
22788 PR rtl-optimization/35232
22789 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
22790 (forget_old_reloads_1, forget_marked_reloads): Don't clear
22791 reg_reloaded_call_part_clobbered here.
22792 (reload_regs_reach_end_p): New function.
22793 (reload_reg_rtx_for_input): New variable.
22794 (reload_reg_rtx_for_output): Likewise.
22795 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
22129589 22796 when reassigning a pseudo register. Load reloadreg from
fb959f72
RS
22797 reload_reg_rtx_for_input, moving the mode and register
22798 calculation to...
22799 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
22800 instead of the original when deciding whether an input reload
22801 would be a no-op or whether an output reload can be deleted.
22802 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
22803 when setting up new_spill_reg_store. Load it from
22804 reload_reg_rtx_for_output, moving the mode and register
22805 calculation to...
22806 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
22807 instead of the original when deciding whether an output reload
22808 would be a no-op. Do the same when modifying insn notes.
22809 Use rtx_equal_p instead of == to compare the registers.
22810 (inherit_piecemeal_p): Take a mode and two register numbers
22811 as argument.
22812 (emit_reload_insns): Clear new_spill_reg_store for every hard
22813 register in the reload register. Remove spill registers
22814 from reg_reloaded_valid before considering whether to record
22815 inheritance information for them. Use reload_reg_rtx_for_output
22816 instead of reg_rtx when recording output reloads. Use
22817 reload_reg_rtx_for_input instead of reg_rtx when recording
22818 input reloads. Set or clear reg_reloaded_call_part_clobbered
22819 at the same time as setting reg_reloaded_valid.
22820 (delete_output_reload): Add a new_reload_reg parameter and use it
22821 instead of rld[j].reg_rtx.
22822 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
22823 calls accordingly.
22824
a8c86f3f
TT
228252008-03-25 Tom Tromey <tromey@redhat.com>
22826
22827 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
22828 (build/genattr.o): Likewise.
22829 (build/genattrtab.o): Likewise.
22830 (build/gencodes.o): Likewise.
22831 (build/genconfig.o): Likewise.
22832 (build/genconstants.o): Likewise.
22833 (build/genemit.o): Likewise.
22834 (build/genextract.o): Likewise.
22835 (build/genflags.o): Likewise.
22836
f4d3e7fd 228372008-03-25 Bob Wilson <bob.wilson@acm.org>
22129589 22838
f4d3e7fd
BW
22839 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
22840 instead of size_int for integer types.
22841 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
22842 to match type of MINUS_EXPR.
22129589 22843
55d059d3
TT
228442008-03-25 Tom Tromey <tromey@redhat.com>
22845
22846 * configure: Rebuilt.
22847 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
22848 Makefile.
22849
2fe3178b
TT
228502008-03-25 Tom Tromey <tromey@redhat.com>
22851
22852 * config/x-solaris (host-solaris.o): Update.
22853 * config/x-linux (host-linux.o): Update.
22854 * config/x-hpux (host-hpux.o): Update.
22855 * config/x-darwin (host-darwin.o): Update.
22856 * config/v850/t-v850e (v850-c.o): Update.
22857 * config/v850/t-v850 (v850-c.o): Update.
22858 * config/t-vxworks (vxworks.o): Update.
22859 * config/t-sol2 (sol2-c.o, sol2.o): Update.
4acc3f42 22860 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2fe3178b
TT
22861 * config/spu/t-spu-elf (spu-c.o): Update.
22862 (spu.o): Remove.
22863 * config/sh/t-symbian (sh-c.o): Update.
22864 (symbian.o): Update.
22865 * config/sh/t-sh (sh-c.o): Update.
22866 * config/score/t-score-elf (score7.o, score3.o): Update.
22867 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
22868 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
22869 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
22870 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
22871 (rs6000.o): Remove.
22872 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
22873 * config/m32c/t-m32c (m32c-pragma.o): Update.
22874 * config/ia64/t-ia64 (ia64-c.o): Update.
22875 * config/i386/x-mingw32 (host-mingw32.o): Update.
22876 * config/i386/x-i386 (driver-i386.o): Update.
22877 * config/i386/x-darwin (host-i386-darwin.o): Update.
22878 * config/i386/x-cygwin (host-cygwin.o): Update.
22879 * config/i386/t-nwld (nwld.o): Update.
22880 * config/i386/t-netware (netware.o): Update.
22881 * config/i386/t-interix (winnt.o): Update.
22882 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
22883 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
22884 msformat-c.o): Update.
22885 * config/bfin/t-bfin-linux (generated_files): Add
22886 linux-sysroot-suffix.h.
22887 * config/arm/t-wince-pe (pe.o): Update.
22888 * config/arm/t-strongarm-pe (pe.o): Update.
22889 * config/arm/t-pe (pe.o): Update.
22890 * config/arm/t-arm (arm-c.o): Update.
22891 * doc/install.texi (Prerequisites): Require make 3.80.
22892 * Makefile.in: Remove .o targets.
22893 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
22894 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
22895 (simple_generated_h, simple_generated_c): Move earlier.
22896 (generated_files): New variable.
22897 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
22898 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
22899 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
22900 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
22901 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
22902 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
22903 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
22904 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
22905 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
22906 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
22907 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
22908 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
22909 (.c.o): Remove.
22910 (COMPILE.base, COMPILE): New variables.
22911 (%.o): New pattern rule.
22912 (ALL_HOST_OBJS): New variable.
22913 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
22914 (dummy-checksum.o, cc1-checksum.o): Remove.
22915 (DRIVER_SHLIB): New variable.
22916 (DRIVER_DEFINES): Use it.
22917 (gencondmd.c): Move out of build/.
22918 (s-conditions): Update.
22919 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
22920 (ALL_BUILD_OBJS): Likewise.
22921 (build/%.o): Use BUILDCOMPILE.
22922 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
22923 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
22924 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
22925 build/gencheck.o, build/gencodes.o, build/genconditions.o,
22926 build/genconfig.o, build/genconstants.o, build/genemit.o,
22927 build/genextract.o, build/genflags.o, build/genmddeps.o,
22928 build/genopinit.o, build/genoutput.o, build/genpeep.o,
22929 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
22930 build/gen-protos.o, build/scan.o, build/fix-header.o,
22931 build/scan-decls.o): Simplify.
22932 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
22933 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
22934 prefix.o, toplev.o): Reduce to variable setting.
4acc3f42 22935 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
2fe3178b 22936 ($(out_object_file), gcc-options.o): New targets.
4acc3f42 22937 ($(ALL_HOST_OBJS)): New target. Include dependency files.
2fe3178b 22938 * configure: Rebuilt.
4acc3f42
UB
22939 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
22940 * doc/sourcebuild.texi (Front End Directory): Document new variable.
2fe3178b 22941
5ade1ed2
DG
229422008-03-25 Douglas Gregor <doug.gregor@gmail.com>
22943
4acc3f42
UB
22944 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
22945 complain when we hit an error, return ERROR_MARK_NODE.
5ade1ed2 22946
de6adfa2
N
229472008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
22948
22949 * config/sh/constraints.md (Pso, Psz): New constraints.
22950 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
22951 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
22952
f326a6cb
N
229532008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
22954
4acc3f42 22955 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
f326a6cb
N
22956 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
22957
b4b0018b
N
229582008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
22959
22960 * config/sh/sh.md (prefetch): Add condition for SH2A target.
22129589 22961 (prefetch_sh2a): New.
b4b0018b 22962
e990551a
JS
229632008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
22964 Naveen.H.S <naveen.hs@kpitcummins.com>
22965
22966 * config/sh/constraints.md (I28): New constraint.
22967 * config/sh/sh.c (broken_move): Add support for movi20s.
4acc3f42 22968 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
e990551a 22969
561642fa
AP
229702008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
22971 Jayant Sonar <Jayant.sonar@kpitcummins.com>
22972 Naveen.H.S <naveen.hs@kpitcummins.com>
22973
22974 * config/sh/sh.c (SH_ATTRIBUTES): Define.
22975 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
22976 (print_operand): Handle resbank in %@ operand code.
22977 (sh_encode_section_info): New.
22978 (push_regs): Add conditions for resbank.
22979 (sh_expand_epilogue): Likewise.
22980 (sh_insert_attributes): Likewise.
22981 (sh_attribute_table): Likewise.
22982 (sh_handle_resbank_handler_attribute): New.
22983 (sh2a_handle_function_vector_handler_attribute): New.
22984 (sh2a_is_function_vector_call): New.
22985 (sh2a_get_function_vector_number): New.
22986 (sh2a_function_vector_p): New.
22987 (sh_cfun_resbank_handler_p): New.
22988 * config/sh/sh.md (calli): Emit jsr/n if possible.
22989 (calli_tbr_rel): New.
22990 (calli_pcrel): Emit jsr/n if possible.
22991 (return_i): Emit rts/n if possible.
22992 (call_valuei_tbr_rel): New.
22993 (call_valuei_pcrel): Add condition for SH2A target.
22994 (call_value): Likewise.
22995 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
22996 (sh2a_get_function_vector_number): Likewise.
22997 (sh2a_is_function_vector_call): Likewise.
22998 * doc/extend.texi: Document TBR relative addressing of SH2A.
22999 (resbank): Add description for SH2A.
23000
1b24a790
RG
230012008-03-24 Richard Guenther <rguenther@suse.de>
23002
23003 PR c/22371
23004 * gimplify.c (gimplify_modify_expr): For frontend type-correct
23005 pointer assignments change conversions according to middle-end rules.
23006 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
23007 * configure.ac: Include type checking in yes.
23008 * configure: Regenerate.
23009
52249a2e
MLI
230102008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23011
23012 * diagnostic.c (diagnostic_count_diagnostic): Delete.
23013 (diagnostic_report_diagnostic): Update. Handle ICEs here.
22129589 23014
37ca4602
NS
230152008-03-24 Nathan Sidwell <nathan@codesourcery.com>
23016
23017 * gthr-vxworks.h (UNUSED): Define.
23018
2ff8644d
L
230192008-03-23 H.J. Lu <hongjiu.lu@intel.com>
23020
9aba5d22 23021 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2ff8644d 23022
1c42f5c6
ZM
230232008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
23024
23025 * doc/extend.texi (Function Attributes): Add missing comma in the
23026 example of the "alloc_size" attribute.
22129589 23027
808e68bb
UB
230282008-03-23 Uros Bizjak <ubizjak@gmail.com>
23029
23030 Revert:
23031 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
23032
23033 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
23034 32bit host.
23035
23036 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
23037
23038 PR target/35496
23039 * stor-layout.c (update_alignment_for_field): Set minimum alignment
23040 of the underlying type of a MS bitfield layout to the natural
23041 alignment of the type.
23042
23043 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
23044
23045 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
23046 to their natural alignment to avoid store forwarding stalls.
23047
1b738915
RG
230482008-03-22 Richard Guenther <rguenther@suse.de>
23049
23050 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
23051 For PHI nodes verify the address is invariant.
23052 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
23053 (get_symbol_constant_value): Use is_gimple_min_invariant.
23054 (maybe_fold_stmt_indirect): Likewise.
23055
18b526e8
RS
230562008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
23057
23058 PR rtl-optimization/33927
23059 * Makefile.in (dse.o): Depend on $(TM_P_H).
23060 * expr.h (extract_low_bits): Declare.
23061 * expmed.c (extract_low_bits): New function.
23062 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
23063 * dse.c: Include tm_p.h.
23064 (find_shift_sequence): Remove the read_reg argument and return the
23065 read value. Emit the instructions instead of returning them.
23066 Iterate on new_mode rather than calculating it each time.
23067 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
23068 source to NEW_MODE and extract_low_bits to convert the shifted
23069 value to READ_MODE.
23070 (replace_read): Allow the load and store to have different mode
23071 classes. Use extract_low_bits when SHIFT == 0. Create the shift
23072 or extraction instructions before trying the replacement. Update
23073 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
23074
48e55066
UB
230752008-03-22 Uros Bizjak <ubizjak@gmail.com>
23076
23077 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
23078 to their natural alignment to avoid store forwarding stalls.
23079
94e98316
AP
230802008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
23081
e8afc0cb 23082 PR target/27946
94e98316
AP
23083 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
23084 encouraging but not allowing gprs for input;
23085 change the input constraint to !f#r.
23086 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
23087 gprs for output;
23088 change the output constraint to !f#r.
23089
7fb1431b
UB
230902008-03-21 Uros Bizjak <ubizjak@gmail.com>
23091
23092 PR target/13958
23093 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
23094 corresponding post-reload splitters.
23095 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
23096 when x87 FP math is selected.
23097 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
23098 New function prototype.
23099 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
23100 unreachable function to ease macroization of insn patterns.
23101
ed2024ba
MJ
231022008-03-21 Martin Jambor <mjambor@suse.cz>
23103
23104 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
23105 reference dumps if ddr is NULL or dependence is unknown.
23106
06644a07
KK
231072008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
23108
23109 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
23110 unsigned extension into account.
23111 (ATOMIC_COMPARE_AND_SWAP): Likewise.
23112 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
23113 Do computations on a scratch register.
23114
ad6003f2
RG
231152008-03-21 Richard Guenther <rguenther@suse.de>
23116
23117 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
23118 Use is_gimple_min_invariant instead of TREE_INVARIANT.
23119 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
23120 * tree-ssa-dom.c (record_equality): Likewise.
23121 * tree-inline.c (copy_body_r): Likewise.
23122 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
23123 TREE_INVARIANT.
23124
2acdc1fb
KK
231252008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
23126
23127 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
23128 as 'delete_unused' argument.
23129
16ac8575
RG
231302008-03-20 Richard Guenther <rguenther@suse.de>
23131
23132 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
23133 special casing of constant qualifiers.
23134 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
23135 care about them in general.
23136 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
23137 regardless of their type.
23138 (fold_stmt_r): Forcefully fold *& if we end up with that.
23139
433d52fd
PB
231402008-03-20 Paul Brook <paul@codesourcery.com>
23141
23142 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
23143 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
23144 linker flags.
23145 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
23146 definition.
23147 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
23148 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
23149
7621f5d5
VR
231502008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
23151
23152 * common.opt (Wmudflap): New option.
23153 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
23154 (mx_register_decls): Likewise.
23155 (mudflap_finish_file): Likewise.
23156 * doc/invoke.texi: Document -Wno-mudflap.
23157
231582008-03-20 Kai Tietz <kai.tietz@onevision.com>
6590fc9f
KT
23159
23160 * c-format.c (replace_format_name_to_system_name): New.
23161 (cmp_attribs): New.
23162 (convert_format_name_to_system_name): New.
23163 (decode_format_attr): Add use of convert_format_name_to_system_name.
23164 (format_types_orig): Add gnu_ prefix to names.
23165 (check_format_info_main): Special treating of \0 escaped names for
23166 supporting multi-character format specifiers as I32, I64.
23167 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
23168 (gnu_target_overrides_format_attributes): New.
23169 * c-format.h: Add structure target_ovr_attr to hold
23170 system specific formatter names.
23171 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
23172 msformat-c.o file to c_target_objs and cxx_target_objs.
23173 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
23174 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
23175 (TARGET_N_FORMAT_TYPES): New.
23176 * config/i386/msformat-c.c: New.
23177 * config/i386/t-cygming: Add build rule for msformat-c.o.
23178 * doc/extend.texi: Add new format names gnu_* and ms_* and
23179 further details.
23180 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
23181
4e359692
IR
231822008-03-20 Ira Rosen <irar@il.ibm.com>
23183
23184 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
23185 optimizations turned on under -O3.
23186 (ftree-vectorize): Add that the flag is turned on with -O3.
23187
41129be2
BE
231882008-03-20 Ben Elliston <bje@au.ibm.com>
23189
23190 * regmove.c (try_auto_increment): Fix spelling error in comment.
23191 * final.c (final_scan_insn): Likewise.
23192
1b1d8f88
UB
231932008-03-20 Uros Bizjak <ubizjak@gmail.com>
23194
23195 PR target/14552
23196 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
23197 allocator preferences for "y" and "r" class registers.
23198 ("*mov<mode>_internal"): Ditto.
23199 ("*movv2sf_internal_rex64"): Ditto.
23200 ("*movv2sf_internal"): Ditto.
23201
05e6ee93
MM
232022008-03-19 Michael Matz <matz@suse.de>
23203
23204 PR middle-end/35616
23205 * calls.c (expand_call): Check overlap of arguments with call
23206 address for sibcalls.
23207
cd7e0bd4
UB
232082008-03-19 Uros Bizjak <ubizjak@gmail.com>
23209
23210 PR target/35496
23211 * stor-layout.c (update_alignment_for_field): Set minimum alignment
23212 of the underlying type of a MS bitfield layout to the natural
23213 alignment of the type.
23214
8ddbbcae
JH
232152008-03-19 Jan Hubicka <jh@suse.cz>
23216
23217 PR other/35094
23218 * toplev.c (decode_d_option): Handle all CPP flags.
23219 * tree-vrp.c: Update tree_pass descriptors.
23220 * regrename.c: Update tree_pass descriptors.
23221 * fwprop.c: Update tree_pass descriptors.
23222 * doc/invoke.texi: Remove documentation of dropped -d? flags.
23223 * tree-into-ssa.c: Update tree_pass descriptors.
23224 * tree-dump.c: Update tree_pass descriptors.
23225 * tree-complex.c: Update tree_pass descriptors.
23226 * tree-dump.h: Update tree_pass descriptors.
23227 * see.c: Update tree_pass descriptors.
23228 * cgraphbuild.c: Update tree_pass descriptors.
23229 * tracer.c: Update tree_pass descriptors.
23230 * tree-loop-distribution.c: Update tree_pass descriptors.
23231 * cgraph.c: Update tree_pass descriptors.
23232 * postreload-gcse.c: Update tree_pass descriptors.
23233 * postreload.c: Update tree_pass descriptors.
23234 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
23235 * tree-tailcall.c: Update tree_pass descriptors.
23236 * tree-pass.h (tree_opt_pass): Rename to ...
23237 (opt_pass) ... this one; add "type" field and remove letter field.
23238 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
23239 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
23240 all_lowering_passes): Update declaration.
23241 * ipa-cp.c: Update tree_pass descriptors.
23242 * final.c: Update tree_pass descriptors.
23243 * omp-low.c: Update tree_pass descriptors.
23244 * tree-ssa-dse.c: Update tree_pass descriptors.
23245 * ipa-reference.c: Update tree_pass descriptors.
23246 * tree-ssa-uncprop.c: Update tree_pass descriptors.
23247 * auto-inc-dec.c: Update tree_pass descriptors.
23248 * reorg.c: Update tree_pass descriptors.
23249 * cgraphunit.c: Update tree_pass descriptors.
23250 * tree-ssa-copyrename.c: Update tree_pass descriptors.
23251 * tree-ssa-ccp.c: Update tree_pass descriptors.
23252 * df-core.c: Update tree_pass descriptors.
23253 * mode-switching.c: Update tree_pass descriptors.
23254 * tree-nomudflap.c: Update tree_pass descriptors.
23255 * modulo-sched.c: Update tree_pass descriptors.
23256 * ipa-pure-const.c: Update tree_pass descriptors.
23257 * cse.c: Update tree_pass descriptors.
23258 * web.c: Update tree_pass descriptors.
23259 * tree-stdarg.c: Update tree_pass descriptors.
23260 * tree-ssa-math-opts.c: Update tree_pass descriptors.
23261 * tree-ssa-dom.c: Update tree_pass descriptors.
23262 * tree-nrv.c: Update tree_pass descriptors.
23263 * tree-ssa-alias.c: Update tree_pass descriptors.
23264 * loop-init.c: Update tree_pass descriptors.
23265 * gimple-low.c: Update tree_pass descriptors.
23266 * ipa-inline.c: Update tree_pass descriptors.
23267 * tree-ssa-sink.c: Update tree_pass descriptors.
23268 * global.c: Update tree_pass descriptors.
23269 * ifcvt.c: Update tree_pass descriptors.
23270 * jump.c: Update tree_pass descriptors.
23271 * predict.c: Update tree_pass descriptors.
23272 * tree-ssa-loop.c: Update tree_pass descriptors.
23273 * recog.c: Update tree_pass descriptors.
23274 * dse.c: Update tree_pass descriptors.
23275 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
23276 * tree-eh.c: Update tree_pass descriptors.
23277 * regmove.c: Update tree_pass descriptors.
23278 * local-alloc.c
23279 * function.c: Update tree_pass descriptors.
23280 * tree-vectorizer.c: Update tree_pass descriptors.
23281 * gcse.c: Update tree_pass descriptors.
23282 * ipa-type-escape.c: Update tree_pass descriptors.
23283 * tree-if-conv.c: Update tree_pass descriptors.
23284 * init-regs.c: Update tree_pass descriptors.
23285 * ipa.c: Update tree_pass descriptors.
23286 * tree-ssa-phiopt.c: Update tree_pass descriptors.
23287 * rtl-factoring.c: Update tree_pass descriptors.
23288 * lower-subreg.c: Update tree_pass descriptors.
23289 * bt-load.c: Update tree_pass descriptors.
23290 * tree-dfa.c: Update tree_pass descriptors.
23291 * except.c: Update tree_pass descriptors.
23292 * emit-rtl.c: Update tree_pass descriptors.
23293 * cfgexpand.c: Update tree_pass descriptors.
23294 * tree-cfgcleanup.c: Update tree_pass descriptors.
23295 * cfgcleanup.c: Update tree_pass descriptors.
23296 * tree-ssa-pre.c: Update tree_pass descriptors.
23297 * tree-sra.c: Update tree_pass descriptors.
23298 * tree-mudflap.c: Update tree_pass descriptors.
23299 * tree-ssa-copy.c: Update tree_pass descriptors.
23300 * cfglayout.c: Update tree_pass descriptors.
23301 * tree-ssa-forwprop.c: Update tree_pass descriptors.
23302 * tree-ssa-dce.c: Update tree_pass descriptors.
23303 * tree-ssa.c: Update tree_pass descriptors.
23304 * regclass.c: Update tree_pass descriptors.
23305 * integrate.c: Update tree_pass descriptors.
23306 * tree-optimize.c: Update tree_pass descriptors.
23307 * tree-ssa-phiprop.c: Update tree_pass descriptors.
23308 * tree-object-size.c: Update tree_pass descriptors.
23309 * combine.c: Update tree_pass descriptors.
23310 * tree-outof-ssa.c: Update tree_pass descriptors.
23311 * bb-reorder.c: Update tree_pass descriptors.
23312 * stack-ptr-mod.c: Update tree_pass descriptors.
23313 * var-tracking.c: Update tree_pass descriptors.
23314 * tree-profile.c: Update tree_pass descriptors.
23315 * tree-vect-generic.c: Update tree_pass descriptors.
23316 * reg-stack.c: Update tree_pass descriptors.
23317 * sched-rgn.c: Update tree_pass descriptors.
23318 * tree-ssa-structalias.c: Update tree_pass descriptors.
23319 * tree-cfg.c: Update tree_pass descriptors.
23320 * passes.c (current_pass): Update declaration.
23321 (finish_optimization_passes): Update.
23322 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
23323 (register_one_dump_file, register_dump_files_1, next_pass_1):
5617c135 23324 Update arguments.
8ddbbcae
JH
23325 (init_optimization_passes): Update handling of new types.
23326 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
23327 * ipa-struct-reorg.c: Update tree_pass descriptors.
23328 * tree-ssa-reassoc.c: Update tree_pass descriptors.
23329 * combine-stack-adj.c: Update tree_pass descriptors.
23330 * cfgrtl.c: Update tree_pass descriptors.
23331 * dce.c: Update tree_pass descriptors.
23332 * tree-ssanames.c: Update tree_pass descriptors.
23333
8cb3ee37
RG
233342008-03-19 Richard Guenther <rguenther@suse.de>
23335
23336 PR middle-end/35609
4990038d
RG
23337 * tree-ssa.c (walk_data): New structure.
23338 (warn_uninitialized_var): If not always_executed warn with "maybe"
8cb3ee37
RG
23339 instead of "is".
23340 (execute_early_warn_uninitialized): Compute post-dominators.
23341 Initialize always_executed before processing each basic block.
23342
34614fff
MP
233432008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
23344
23345 PR target/35504
23346 * config/i386/i386.c (x86_this_parameter): Calculate correct location
23347 of "this" pointer when "regparm = N" or "fastcall" is in effect.
23348
c15477fb
RW
233492008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23350
23351 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
23352
ac5dc795
PB
233532008-03-18 Paolo Bonzini <bonzini@gnu.org>
23354
34614fff
MP
23355 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
23356 is true.
23357 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
23358 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
23359 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
23360 target after ignore has been set, and move there also the commputation
23361 of subtarget and original_target.
23362 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
23363 (LANG_HOOKS_INITIALIZER): Remove it.
23364 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
ac5dc795 23365
b80280f2
RG
233662008-03-18 Richard Guenther <rguenther@suse.de>
23367
23368 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
23369 found an expression with constants, note that in the VN for the lhs.
23370 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
23371 fold them to constants if possible. Run cleanup_cfg if done so.
23372 (execute_pre): Return todo.
23373 (do_pre): Likewise.
23374 (execute_fre): Likewise.
23375 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
23376 of constants.
23377 (get_prop_source_stmt): Look through pointer conversions.
23378
2e28e797
JH
233792008-03-18 Jan Hubicka <jh@suse.cz>
23380
23381 * tree-pretty-print.c: Include predict.h.
23382 (dump_generic_node): Dump predictor.
23383 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
23384 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
23385 * gimple-low.c (lower_stmt): Likewise.
23386 * expr.c (expand_expr_real): Likewise.
23387 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
23388 them.
23389 (build_predict_expr, build_predict_expr): New.
23390 * predict.h (predictor_name, build_predict_expr): Update.
23391 * c-typeck.c (c_finish_bc_stmt): Add prediction.
23392 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
23393 * predict.def (PRED_CONTINUE): Update hitrate.
23394 * tree.def (PREDICT_EXPR): Define.
23395 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
23396 do not handle BIND_EXPR.
23397 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
23398 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
23399 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
23400 operands.
23401
52f1c7ed
MM
234022008-03-18 Michael Matz <matz@suse.de>
23403
23404 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
23405
c8ae0bec
RG
234062008-03-18 Richard Guenther <rguenther@suse.de>
23407
23408 * tree-gimple.h (is_gimple_invariant_address): Declare.
23409 (is_gimple_constant): Likewise.
23410 * tree-gimple.c (is_gimple_constant): New function.
23411 (is_gimple_invariant_address): Likewise.
23412 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
23413 and is_gimple_invariant_address.
23414 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
23415 previous change.
23416 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
23417 an addressable base.
23418
8119fc93
JJ
234192008-03-18 Jakub Jelinek <jakub@redhat.com>
23420
23421 PR middle-end/35611
23422 * gimplify.c (gimplify_expr): Gimplify second operand of
23423 OMP_ATOMIC_LOAD.
23424
c4e5b5a8
RG
234252008-03-17 Richard Guenther <rguenther@suse.de>
23426
23427 PR tree-optimization/19637
23428 * fold-const.c (fold_unary): Remove restrictions of removing
23429 intermediate pointer-conversions (P2)(P1)P0.
23430 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
23431 conversion to void pointer.
23432 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
23433
fcb9237b
JW
234342008-03-16 James E. Wilson <wilson@tuliptree.org>
23435
23436 PR debug/31510
23437 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
23438 emulated thread local variables.
23439
461f8762
RG
234402008-03-16 Richard Guenther <rguenther@suse.de>
23441
23442 PR middle-end/35607
23443 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
23444 expand TREE_INVARIANT operations that are not gimple invariant.
23445
2a31c49c
HPN
234462008-03-16 Hans-Peter Nilsson <hp@axis.com>
23447
23448 * doc/extend.texi (Alignment): Say that the ABI controls
23449 the __alignof__ for non-strict-alignment targets rather
23450 than being a recommendation.
23451
80efdb6a
PB
234522008-03-15 Paul Brook <paul@codesourcery.com>
23453
23454 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
23455 annotations.
23456 (arm_output_fn_unwind): Mark functions that can not be unwound.
23457
ff069900
PB
234582008-03-15 Paul Brook <paul@codesourcery.com>
23459
23460 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
23461 extension instructions.
23462
87e1e42b
RG
234632008-03-15 Richard Guenther <rguenther@suse.de>
23464
23465 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
23466 and fold constant aggregate refs.
23467 (fold_const_aggregate_ref): Handle string constants
23468 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
23469 (evaluate_stmt): Simplify now that ccp_fold folds constant
23470 aggregate refs.
23471
ef87d898
PB
234722008-03-15 Paul Brook <paul@codesourcery.com>
23473
23474 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
23475 (extzv): Use gen_extzv_t2.
23476 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
23477
ed97ddc6
RG
234782008-03-15 Richard Guenther <rguenther@suse.de>
23479
23480 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
23481 (fold_const_aggregate_ref): Likewise.
23482 (get_value): Return NULL if we don't have any values.
23483 (ccp_finalize): Set const_val to NULL after freeing it.
23484 * tree-flow.h (get_symbol_constant_value): Declare.
23485 (fold_const_aggregate_ref): Likewise.
23486 * tree-ssa-sccvn.c (try_to_simplify): Use them.
23487
1fd89060
RG
234882008-03-15 Richard Guenther <rguenther@suse.de>
23489
23490 PR middle-end/35593
23491 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
23492 to not produce negative array indices if not allowed. Add
23493 parameter to indicate that.
23494 (maybe_fold_offset_to_component_ref): Allow negative array
23495 indices only for the first member of a structure.
23496 (maybe_fold_offset_to_reference): Allow negative array indices.
23497 (maybe_fold_stmt_addition): Likewise.
23498
693092fb 234992008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
cd7e0bd4 23500 Anatoly Sokolov <aesok@post.ru>
693092fb 23501
b97d8153 23502 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
693092fb
BH
23503 (avr_arch): Add ARCH_AVR6.
23504 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5617c135 23505 (initial_elimination_offset): Initialize and use 'avr_pc_size'
693092fb
BH
23506 instead of fixed value 2.
23507 (print_operand_address): Use gs() asm specifier instead of pm().
23508 (avr_assemble_integer): (Ditto.).
23509 (avr_output_addr_vec_elt): (Ditto.).
23510 (print_operand): Handle "!" code.
22129589 23511 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
693092fb
BH
23512 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
23513 (AVR_HAVE_EIJMP_EICALL): Define.
23514 (AVR_3_BYTE_PC): Redefine.
23515 (AVR_2_BYTE_PC): (Ditto.).
23516 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
23517 (LINK_SPEC): Add atmega2560 and atmega2561.
22129589 23518 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
693092fb 23519 (crtm2561.o).
22129589 23520 * config/avr/avr.md (call_insn): Use eicall instead of icall
693092fb
BH
23521 for 3 byte PC devices.
23522 (call_value_insn): (Ditto.).
23523 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
23524 (indirect_jump): Use only for for 2 byte PC devices.
23525 (*tablejump): (Ditto.).
23526 (*indirect_jump_avr6): Add insn.
23527 (*tablejump_rjmp): Don't use for 3 byte PC devices.
22129589 23528 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
693092fb
BH
23529 instead of ijmp for 3 byte PC devices.
23530 (__tablejump2__): (Ditto.).
b97d8153 23531 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
22129589 23532 (MULITLIB_DIRNAMES): (Ditto.).
693092fb
BH
23533 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
23534
ab555a5b
UB
235352008-03-15 Uros Bizjak <ubizjak@gmail.com>
23536
23537 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
23538 "sse2_umulsidi3". Use V1DI mode for operand 0.
23539 ("mmx_psadbw"): Use V1DI mode for operand 0.
23540 * config/i386/i386-modes.def (V1SI): New vector mode.
23541 * config/i386/i386.c (struct builtin_description)
23542 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
23543 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
23544 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
23545 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
23546 v1di_ftype_v8qi_v8qi type.
23547 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
23548
23549 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
23550 __builtin_ia32_pmuludq]: Fix the mode of return value.
23551
8f78ed0e
RG
235522008-03-15 Richard Guenther <rguenther@suse.de>
23553
23554 PR middle-end/35595
23555 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
23556 being a PHI_NODE.
23557
66e58b33 235582008-03-14 Bob Wilson <bob.wilson@acm.org>
22129589 23559
66e58b33
BW
23560 * doc/invoke.texi (Option Summary, Xtensa Options): Document
23561 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
23562 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
23563 unless TARGET_SERIALIZE_VOLATILE is enabled.
23564 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
23565 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
23566 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
23567
896c8b96
RG
235682008-03-14 Richard Guenther <rguenther@suse.de>
23569
23570 PR tree-optimization/34172
23571 * tree-flow.h (refs_may_alias_p): Declare.
23572 (get_single_def_stmt): Likewise.
23573 (get_single_def_stmt_from_phi): Likewise.
23574 (get_single_def_stmt_with_phi): Likewise.
23575 * tree-dfa.c (refs_may_alias_p): New function.
23576 (get_single_def_stmt): Likewise.
23577 (get_single_def_stmt_from_phi): Likewise.
23578 (get_single_def_stmt_with_phi): Likewise.
23579 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
23580 (vn_reference_lookup_1): New helper function.
23581 (vn_reference_lookup): Walk the virtual use-def chain to
23582 continue searching for a match if the def does not alias the
23583 reference we are looking for.
23584
75dd1ae2
DE
235852008-03-14 David Edelsohn <edelsohn@gnu.org>
23586
23587 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
23588 archive and Perzl. Update The Written Word listing.
23589
3d45dd59
RG
235902008-03-14 Richard Guenther <rguenther@suse.de>
23591
23592 PR tree-optimization/34043
23593 PR tree-optimization/33989
23594 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
23595 when doing FRE.
23596 (bitmap_find_leader): Use extra argument to verify dominance
23597 relationship inside a basic-block.
23598 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
23599 (find_leader_in_sets): Adjust.
23600 (create_component_ref_by_pieces): Take extra argument for
23601 dominance check, handle lookup failures.
23602 (find_or_generate_expression): Likewise.
23603 (create_expression_by_pieces): Likewise.
23604 (insert_into_preds_of_block): Adjust.
23605 (create_value_expr_from): If asked for, verify all operands
23606 are in the blocks AVAIL_OUT set.
23607 (make_values_for_stmt): Check for SSA_NAMEs that are life
23608 over an abnormal edge.
23609 (compute_avail): Remove such check.
23610 (do_SCCVN_insertion): New function.
23611 (eliminate): If we do not find a leader suitable for replacement
23612 insert a replacement expression from SCCVN if available.
23613 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
23614 (struct vn_ssa_aux): Add needs_insertion flag.
23615 * tree-ssa-sccvn.c (may_insert): New global flag.
23616 (copy_reference_ops_from_ref): Value-number union member access
23617 based on its size, not type and member if insertion is allowed.
23618 (visit_reference_op_load): For a weak match from union type
23619 punning lookup a view-converted value and insert a SSA_NAME
23620 for that value if that is not found.
23621 (visit_use): Make dumps shorter. Do not disallow value numbering
23622 SSA_NAMEs that are life over an abnormal edge to constants.
23623 (free_scc_vn): Release inserted SSA_NAMEs.
23624 (run_scc_vn): New flag to specify whether insertion is allowed.
23625 Process SSA_NAMEs in forward order.
23626 * tree-ssa-loop-im.c (for_each_index): Handle invariant
23627 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
23628 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
23629 pointer type to/from integral types that do not change the
23630 precision to regular conversions.
23631
52eaae97
UB
236322008-03-13 Uros Bizjak <ubizjak@gmail.com>
23633
23634 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
23635 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
23636 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
23637 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
75d8b30e
UB
23638 input arguments and the mode of return value. Built-in functions
23639 that operate on whole 64-bit MMX register now use V1DI mode.
52eaae97 23640
5f5f0635
AD
236412008-03-13 Alon Dayan <alond@il.ibm.com>
23642 Olga Golovanevsky <olga@il.ibm.com>
23643
23644 PR tree-optimization/35041
23645 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
23646 to locate the right position in a statement.
23647
1359ef39
UB
236482008-03-13 Uros Bizjak <ubizjak@gmail.com>
23649
23650 PR target/34000
23651 PR target/35553
23652 * config/i386/xmmintrin.h: Change all static inline functions to
23653 extern inline and add __gnu_inline__ attribute.
23654 * config/i386/bmintrin.h: Ditto.
23655 * config/i386/smmintrin.h: Ditto.
23656 * config/i386/tmmintrin.h: Ditto.
23657 * config/i386/mmintrin-common.h: Ditto.
23658 * config/i386/ammintrin.h: Ditto.
23659 * config/i386/emmintrin.h: Ditto.
23660 * config/i386/pmmintrin.h: Ditto.
23661 * config/i386/mmintrin.h: Ditto.
23662 * config/i386/mm3dnow.h: Ditto.
23663
d0fb20be
JJ
236642008-03-13 Jakub Jelinek <jakub@redhat.com>
23665
23666 PR middle-end/35185
23667 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
23668 (lower_omp_2): New function.
23669 (lower_omp_1, lower_omp): Rewritten.
23670
20cef83a
DS
236712008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
23672
23673 PR 35054
23674 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
23675 with the phrase "Microsoft Windows compilers".
23676 (Push/Pop Macro Pragmas): New subsection. Document
23677 #pragma push_macro and pragma pop_macro.
23678
5dea0c19
PB
236792008-03-12 Paul Brook <paul@codesourcery.com>
23680
23681 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
23682
d1b85efb
PB
236832008-03-12 Paul Brook <paul@codesourcery.com>
23684
23685 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
23686 (thumb2_alusi3_short): Exclude PLUS and MINUS.
23687 (thumb2_addsi_shortim): Rename ...
23688 (thumb2_addsi_short): ... to this. Allow register operands.
23689 (thumb2_subsi_short): New pattern.
23690 (thumb2_one_cmplsi2_short,
23691 thumb2_negsi2_short): New patterns and peepholes.
23692
09754904
PB
236932008-03-12 Paul Brook <paul@codesourcery.com>
23694
09754904
PB
23695 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
23696
a7438d6d
UB
236972008-03-12 Uros Bizjak <ubizjak@gmail.com>
23698
23699 * config/i386/i386.md (int_cond): New code iterator.
23700 (fp_cond): Ditto.
23701 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
23702 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
23703 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
23704 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
23705 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
23706 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
23707 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
23708 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
23709
954954d1
PB
237102008-03-12 Paul Brook <paul@codesourcery.com>
23711
23712 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
23713 instead of {arm,thumb}_compute_save_reg_mask.
23714 (output_return_instruction): Ditto.
23715 (thumb_unexpanded_epilogue): Ditto.
23716 (thumb1_expand_prologue): Ditto.
23717 (thumb1_output_function_prologue): Ditto.
23718 (arm_set_return_address): Ditto.
23719 (thumb_set_return_address): Ditto.
23720 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
23721 regs to achieve stack alignment.
23722 (thumb1_compute_save_reg_mask): Fix compiler warning.
23723 (arm_output_epilogue): Use offsets->saved_regs_mask.
23724 Adjust stack pointer by poping call clobered registers.
23725 (arm_expand_prologue): Use offsets->saved_regs_mask.
23726 Adjust stack pointer by pushing extra registers.
d0fb20be 23727 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
954954d1 23728
c83bd37c
PB
237292008-03-12 Paolo Bonzini <bonzini@gnu.org>
23730
23731 PR tree-opt/35422
23732 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
23733 conversion to the operands of a multiplication.
23734
67514449
RG
237352008-03-12 Richard Guenther <rguenther@suse.de>
23736
23737 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
23738 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
23739 * timevar.def (TV_TREE_PHIPROP): Add.
23740 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
23741 pass description. Use TV_TREE_PHIPROP.
23742 * tree-ssa-forwprop.c: Remove phiprop code.
23743
7c8f7639
JJ
237442008-03-12 Jakub Jelinek <jakub@redhat.com>
23745
23746 PR middle-end/35549
23747 * omp-low.c (maybe_lookup_decl): Constify first argument.
23748 (use_pointer_for_field): Change last argument from bool to
23749 omp_context *. Disallow shared copy-in/out in nested
23750 parallel if decl is shared in outer parallel too.
23751 (build_outer_var_ref, scan_sharing_clauses,
23752 lower_rec_input_clauses, lower_copyprivate_clauses,
23753 lower_send_clauses, lower_send_shared_vars): Adjust callers.
23754
62878103
VK
237552008-03-12 Victor Kaplansky <victork@il.ibm.com>
23756 Ira Rosen <irar@il.ibm.com>
23757
23758 * tree-vectorizer.c (free_stmt_vec_info): New function.
23759 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
23760 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
23761 * tree-vectorizer.h (free_stmt_vec_info): Declare.
23762 * tree-vect-transform.c (vectorizable_conversion): Free
23763 vec_oprnds0 if it was allocated.
23764 (vect_permute_store_chain): Remove unused VECs.
23765 (vectorizable_store): Free VECs that are allocated in the..
23766 function.
23767 (vect_transform_strided_load, vectorizable_load): Likewise.
23768 (vect_remove_stores): Simplify the code.
23769 (vect_transform_loop): Move code to vect_remove_stores().
23770 Call vect_remove_stores() and free_stmt_vec_info().
23771
9dbd54be
JDA
237722008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23773
23774 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
23775 TARGET_HPUX. Revise comment.
23776 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
23777 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
23778 Use sr4 variant of `be' instruction when not generating PIC code.
23779 (attr_length_call): Adjust for above change.
23780
76a7d3ca
AP
237812008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
23782
23783 * ipa-reference.c (static_execute): Remove module_statics_const and
23784 associated setting code.
23785
40cca4f9
UB
237862008-03-11 Uros Bizjak <ubizjak@gmail.com>
23787
23788 PR target/35540
23789 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1b1d8f88
UB
23790 predicate for operand 1.
23791 (paritysi2_cmp): Use register_operand predicate for operand 2.
40cca4f9
UB
23792 Use earlyclobber modifier for operand 1. Remove support for
23793 memory operands.
1b1d8f88 23794 (paritydi2_cmp): Use register_operand predicate for operand 3.
40cca4f9
UB
23795 Use earlyclobber modifier for operand 1. Remove support for
23796 memory operands.
23797
ec6237e4 237982008-03-11 Paul Brook <paul@codesourcery.com>
40cca4f9 23799 Vladimir Prus <vladimir@codesourcery.com>
ec6237e4
PB
23800
23801 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
23802 (arm_compute_save_reg0_reg12_mask): Always
23803 check if register 11 must be saved. Always safe hard frame pointer
23804 when frame_pointer_needeed.
23805 (arm_compute_save_reg_mask): Save IP and PC
23806 only with apcs frames.
23807 (arm_output_epilogue): Adjust Thumb2 codepath to
23808 be also invoked and work for ARM non-apcs frames.
23809 (arm_expand_prologue): Don't bother saving IP
23810 for non-apcs frame, since it's not clobbered by
23811 prologue code. Implement non-apcs frame
23812 layout.
23813
2f6025a1
PB
238142008-03-11 Paolo Bonzini <bonzini@gnu.org>
23815
23816 PR rtl-optimization/35281
23817 * expr.c (convert_move): Use a new pseudo for the intermediate
23818 from_mode->word_mode result.
23819
30e257e5
PB
238202008-03-11 Paolo Bonzini <bonzini@gnu.org>
23821
ec6237e4
PB
23822 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
23823 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
23824 * toplev.c (compile_file): Don't call it.
30e257e5 23825
ab669042
UB
238262008-03-11 Uros Bizjak <ubizjak@gmail.com>
23827
23828 PR middle-end/35526
23829 * expr.c (store_expr): Call emit_block_move if the mode
23830 of "temp" RTX is BLKmode.
23831
1ffe34d9 238322008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
ab669042 23833 Richard Guenther <rguenther@suse.de>
1ffe34d9
AP
23834
23835 PR tree-optimization/31358
23836 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
23837 the step with a NULL_TREE.
23838 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
23839 to sizetype if type is a pointer type.
23840 (add_candidate_1): Don't convert the base and step to
23841 the generic type if the orginal type is a pointer type.
23842 (add_iv_value_candidates): Use sizetype for the step
23843 if type is a pointer type.
23844 (cand_value_at): Likewise.
23845 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
23846 for pointer types.
23847 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
23848 Don't convert the tem affine to the type.
23849 (add_elt_to_tree): Use sizetype for the step if a pointer.
23850 Use POINTER_PLUS_EXPR for pointers.
23851 (aff_combination_to_tree): Use sizetype for the step if a
23852 pointer.
23853
dd6d5236
VM
238542008-03-10 Vladimir Makarov <vmakarov@redhat.com>
23855
23856 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
23857 Remove commutativity hint.
23858
8b46837c
JJ
238592008-03-10 Jakub Jelinek <jakub@redhat.com>
23860
5df27e4a
JJ
23861 PR c/35438
23862 PR c/35439
23863 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
23864 errorneous type. Check that v is a VAR_DECL.
23865
8b46837c
JJ
23866 PR middle-end/35099
23867 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
23868
725c2d32
L
238692008-03-10 H.J. Lu <hongjiu.lu@intel.com>
23870
23871 PR tree-optimization/35494
23872 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
23873 may be overriden at link and run time.
23874
3ba404df
RG
238752008-03-10 Richard Guenther <rguenther@suse.de>
23876
23877 PR tree-optimization/34677
23878 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
23879 (poolify_tree): Likewise.
23880 (modify_expr_template): Likewise.
23881 (poolify_modify_stmt): Likewise.
23882 (insert_fake_stores): Handle all component-ref style stores
23883 in addition to INDIRECT_REF. Also handle complex types.
23884 Do not poolify the inserted load.
23885 (realify_fake_stores): Do not rebuild the tree but only
23886 make it a SSA_NAME copy.
23887 (init_pre): Remove initialzation of modify_expr_template.
23888 Do not allocate modify_expr_node_pool.
23889 (fini_pre): Do not free modify_expr_node_pool.
23890
97e38a92
PB
238912008-03-10 Paul Brook <paul@codesourcery.com>
23892
23893 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
23894 to avoid conflicts.
23895
bd4dc3cd 238962008-03-10 Paul Brook <paul@codesourcery.com>
ab669042 23897 Mark Shinwell <shinwell@codesourcery.com>
bd4dc3cd 23898
bd4dc3cd
PB
23899 * config/arm/cortex-r4.md: New.
23900 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
23901 insn attributes.
23902 * config/arm/arm.md: Include cortex-r4.md.
23903 (insn): Add smmls, sdiv and udiv values.
23904 (generic_sched): Don't use generic scheduling for Cortex-R4.
23905 (arm_issue_rate): New function.
23906 (TARGET_SCHED_ISSUE_RATE): Define.
23907
9886a872
SP
239082008-03-10 Sebastian Pop <sebastian.pop@amd.com>
23909
23910 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
23911
e5eff6a3
RG
239122008-03-10 Richard Guenther <rguenther@suse.de>
23913
23914 * tree-ssa-pre.c (get_sccvn_value): Simplify.
23915 (compute_avail): Do not add stmt uses to AVAIL_OUT.
23916
0d4c700c
PB
239172008-03-10 Paolo Bonzini <bonzini@gnu.org>
23918
23919 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
23920 Set default to true.
23921
802e3f8c
RW
239222008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23923
23924 * c.opt (Wsynth): Deprecate.
23925 * doc/invoke.texi (Option Summary, Warning Options): Document
23926 -Wno-format-contains-nul.
23927
be3d4789
UB
239282008-03-09 Uros Bizjak <ubizjak@gmail.com>
23929
23930 PR target/35496
3b509e33 23931 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
be3d4789
UB
23932 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
23933
e83a75a7
IR
239342008-03-09 Ira Rosen <irar@il.ibm.com>
23935
23936 * config/rs6000/rs6000.c (builtin_description): Rename vector
23937 left shift operations.
23938 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
23939 (altivec_vsl<VI_char>): Rename to ...
23940 (ashl<mode>3): ... new name.
23941 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
23942 gen_ashlv4si3.
23943 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
23944
fc9161c1
RG
239452008-03-08 Richard Guenther <rguenther@suse.de>
23946
23947 * coverage.h (tree_coverage_counter_addr): Declare.
23948 * coverage.c (tree_coverage_counter_addr): New function.
23949 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
23950 before using again.
23951 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
23952 (tree_gen_one_value_profiler): Likewise.
23953 (tree_gen_ic_profiler): Likewise.
23954 (tree_gen_average_profiler): Likewise.
23955 (tree_gen_ior_profiler): Likewise.
23956
49a1fb2d
RG
239572008-03-08 Richard Guenther <rguenther@suse.de>
23958
23959 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
23960 (vn_binary_op_insert): Likewise.
23961 (vn_unary_op_lookup): Likewise.
23962 (vn_unary_op_insert): Likewise.
23963 (vn_nary_op_lookup): Declare.
23964 (vn_nary_op_insert): Likewise.
23965 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
23966 and binary hashes, use a single obstack for unary_op_pool
23967 and binary_op_pool.
23968 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
23969 a single struct vn_nary_op_s. Store tree code length and
23970 a variable number of operands.
23971 (struct vn_reference_op_struct): Remove unused op2.
23972 (vn_reference_op_eq): Do not compare op2.
23973 (vn_reference_op_compute_hash): Do not compute hash of op2.
23974 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
23975 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
23976 with vn_nary_op_compute_hash.
23977 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
23978 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
23979 vn_nary_op_lookup.
23980 (vn_unary_op_insert, vn_binary_op_insert): Replace with
23981 vn_nary_op_insert.
23982 (visit_unary_op): Call nary functions.
23983 (visit_binary_op): Likewise.
23984 (process_scc): Adjust for struct vn_tables_s changes.
23985 (allocate_vn_table): Likewise.
23986 (free_vn_table): Likewise.
23987 * tree-vn.c (vn_add): Call nary functions.
23988 (vn_lookup): Likewise.
23989
2725b75c
JJ
239902008-03-08 Jakub Jelinek <jakub@redhat.com>
23991
23992 PR target/35498
23993 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
23994 wdst back after sync_compare_and_swapqhi_internal.
23995
10a97ae6
UB
239962008-03-08 Uros Bizjak <ubizjak@gmail.com>
23997
23998 PR target/22152
23999 * config/i386/i386-modes.def (V1DI): New vector mode.
24000 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
24001 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
24002 (MMXMODE248): Ditto.
24003 (MMXMODE): Add V1DI mode.
24004 (mmxvecsize): Change DI mode to V1DI mode.
24005 ("mov<mode>): Use MMXMODEI8 mode iterator.
24006 ("*mov<mode>_internal_rex64"): Ditto.
24007 ("*mov<mode>_internal"): Ditto.
24008 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
24009 ("mmx_sub<mode>3"): Ditto.
24010 ("mmx_adddi3"): Remove insn pattern.
24011 ("mmx_subdi3"): Ditto.
24012 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
24013 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
24014 ("mmx_ashl<mode>3"): Ditto.
24015 ("mmx_lshrdi3"): Remove insn pattern.
24016 ("mmx_ashldi3"): Ditto.
24017 * config/i386/i386.c (classify_argument): Handle V1DImode.
24018 (function_arg_advance_32): Ditto.
24019 (function_arg_32): Ditto.
24020 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
24021 mmx_addv1di3 insn pattern.
24022 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
24023 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
24024 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
24025 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
24026 Remove definitions of built-in functions.
24027 (V1DI_type_node): New node.
24028 (v1di_ftype_v1di_int): Ditto.
24029 (v1di_ftype_v1di_v1di): Ditto.
24030 (v2si_ftype_v2si_si): Ditto.
24031 (v4hi_ftype_v4hi_di): Remove node.
24032 (v2si_ftype_v2si_di): Ditto.
24033 (ix86_init_mmx_sse_builtins): Handle V1DImode.
24034 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
24035 Redefine builtins using def_builtin_const with *_ftype_*_int node.
24036 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
24037 Add new builtins using def_builtin_const.
24038 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
24039 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
24040 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
24041 * config/i386/mmintrin.h (__v1di): New typedef.
24042 (_mm_add_si64): Cast arguments to __v1di type.
24043 (_mm_sub_si64): Ditto.
24044 (_mm_sll_pi16): Cast __count to __v4hi type.
24045 (_mm_sll_pi32): Cast __count to __v2si type.
24046 (_mm_sll_si64): Cast arguments to __v1di type.
24047 (_mm_srl_pi16): Cast __count to __v4hi type.
24048 (_mm_srl_pi32): Cast __count to __v2si type.
24049 (_mm_srl_si64): Cast arguments to __v1di type.
24050 (_mm_sra_pi16): Cast __count to __v4hi type.
24051 (_mm_sra_pi32): Cast __count to __v2si type.
24052 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
24053 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
24054 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
24055 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
24056 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
24057 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
24058 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
24059 (_mm_srai_pi32): Use __builtin_ia32_psradi.
24060 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
24061 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
24062 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
24063 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
24064
08c3b5b0
JM
240652008-03-07 Joseph Myers <joseph@codesourcery.com>
24066
24067 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
24068
efc05e3c
PB
240692008-03-07 Peter Bergner <bergner@vnet.ibm.com>
24070
24071 PR target/35373
24072 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
24073 reg+const addressing for Altivec modes. Don't generate reg+reg
24074 addressing for TFmode or TDmode quantities.
24075
cf7bc668
PB
240762008-03-07 Paolo Bonzini <bonzini@gnu.org>
24077
24078 * c-common.c (vector_types_convertible_p): Call langhook
24079 instead of comptypes.
24080
b0940154
AP
240812008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
24082
24083 PR tree-opt/35402
24084 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
24085 integral and scalar float variables which have a
24086 NULL DECL_INITIAL.
24087
48081aae
NF
240882008-03-06 Nathan Froyd <froydnj@codesourcery.com>
24089
24090 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
24091 dwarf_register_span hook when emitting unwind information for
24092 register-to-memory saves.
24093 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
24094 (rs6000_frame_related): Remove call to spe_synthesize_frame.
24095
251923f5
JJ
240962008-03-06 Jakub Jelinek <jakub@redhat.com>
24097
24098 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
24099 for the same VAR_DECL.
24100
e8645a40
TT
241012008-03-06 Tom Tromey <tromey@redhat.com>
24102
24103 * treelang: Delete.
24104 * doc/standards.texi (Standards): Don't mention treelang.
24105 * doc/invoke.texi (Overall Options): Don't mention treelang.
24106 * doc/install.texi (Prerequisites): Don't mention bison or
24107 treelang.
24108 (Configuration): Don't mention treelang.
24109 (Building): Likewise.
24110 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
24111
97efb03a
PB
241122008-03-06 Paolo Bonzini <bonzini@gnu.org>
24113
24114 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
24115 word-extractions out of a multi-word object.
24116
fc0f49f3
RG
241172008-03-06 Richard Guenther <rguenther@suse.de>
24118
24119 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
24120 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
24121 result type and precision.
24122 * expr.c (get_inner_reference): Set unsignedp based on the result
24123 type of BIT_FIELD_REF.
24124 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
24125 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
24126 (try_instantiate_multiple_fields): Likewise. Use the correct type
24127 for BIT_FIELD_REF.
24128 (sra_build_assignment): Likewise.
24129 (sra_build_elt_assignment): Likewise.
24130 (sra_explode_bitfield_assignment): Likewise.
24131 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
24132 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
24133 set BIT_FIELD_REF_UNSIGNED.
24134 (vectorizable_load): Likewise.
24135
e186ff69
AK
241362008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
24137
24138 * cse.c (cse_extended_basic_block): Invalidate artificial defs
24139 at bb start.
24140
4c067742
RG
241412008-03-06 Richard Guenther <rguenther@suse.de>
24142
24143 * alias.c (struct alias_set_entry): Move has_zero_child field
24144 to pack with alias_set.
24145
23880b97
L
241462008-03-05 H.J. Lu <hongjiu.lu@intel.com>
24147
24148 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
24149 32bit host.
24150
6ab81302
ILT
241512008-03-05 Ian Lance Taylor <iant@google.com>
24152
24153 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
24154
4218dc2d 241552008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
ca9052ce
KZ
24156
24157 * fwprop.c (update_df): Support width and offset parameters of
24158 df_ref_create.
24159 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
24160 global_conflicts): Change DF_REF_EXTRACT to either
24161 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
24162 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
24163 * df-scan.c (df_ref_record, df_defs_record,
24164 df_ref_create_structure, df_def_record_1, df_uses_record,
24165 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
24166 df_bb_refs_collect, df_entry_block_defs_collect,
24167 df_exit_block_uses_collect): Support new width and offset fields.
24168 (ref_extract_pool): New storage pool.
24169 (df_free_ref): New function.
24170 (df_reg_chain_unlink, df_free_collection_rec,
24171 df_sort_and_compress_refs): Call df_free_ref.
24172 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
24173 of df_ref_extract.
24174 (df_ref_create_structure): Allocate df_ref_extract if offset and
24175 width fields are used.
24176 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
22129589 24177 (df_uses_record): Get offset and width from ZERO_EXTRACT
ca9052ce
KZ
24178 and SIGN_EXTRACT.
24179 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
24180 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
24181 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
24182 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
24183 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
24184 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
24185 (df_ref_extract): New structure.
24186 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
24187 (df_ref_create): Add width and offset parameters.
22129589 24188
63d195d5
RG
241892008-03-05 Richard Guenther <rguenther@suse.de>
24190
24191 * tree-ssa-structalias.c (get_constraint_for_component_ref):
24192 Use ranges_overlap_p.
24193 (offset_overlaps_with_access): Rename
24194 to ranges_overlap_p and move ...
24195 * tree-flow-inline.h (ranges_overlap_p): ... here.
24196
24197 * tree.h (get_inner_reference, handled_component_p): Update
24198 comments.
24199
24200 * tree.h (record_component_aliases, get_alias_set,
24201 alias_sets_conflict_p, alias_sets_must_conflict_p,
24202 objects_must_conflict_p): Move declarations ...
24203 * alias.h (record_component_aliases, get_alias_set,
24204 alias_sets_conflict_p, alias_sets_must_conflict_p,
24205 objects_must_conflict_p): ... here.
24206 Include coretypes.h.
24207 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
24208
ea7e6d5a
AH
242092008-03-05 Aldy Hernandez <aldyh@redhat.com>
24210
24211 * cfg.c: Include tree-flow.h.
24212 (remove_edge_raw): Call redirect_edge_var_map_clear.
24213 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
24214 * tree-flow-inline.h (redirect_edge_var_map_def): New.
24215 (redirect_edge_var_map_result): New.
24216 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
24217 PENDING_STMT use with redirect_edge_var_map_*.
24218 * tree-ssa.c (edge_var_maps): New definition.
24219 (redirect_edge_var_map_add): New.
24220 (redirect_edge_var_map_clear): New.
24221 (redirect_edge_var_map_dup): New.
24222 (redirect_edge_var_map_vector): New.
24223 (redirect_edge_var_map_destroy): New.
24224 (ssa_redirect_edge): Replace PENDING_STMT use with
24225 redirect_edge_var_map_*.
24226 (flush_pending_stmts): Same.
24227 (delete_tree_ssa): Destroy edge var map.
24228 * tree-flow.h (struct _edge_var_map): New.
24229 Define edge_var_map vector type.
24230 Declare redirect_edge_var_map_* prototypes.
24231 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
24232 * tree-cfg.c (reinstall_phi_args): Replace
24233 PENDING_STMT use with redirect_edge_var_map_*.
24234
1bdcf037
RG
242352008-03-05 Richard Guenther <rguenther@suse.de>
24236
24237 PR tree-optimization/35472
24238 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
24239 whose single use_stmt has a overlapping set of loaded and
24240 stored symbols as that use_stmt might be a noop assignment then.
24241
fec5fe47
JS
242422008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
24243
24244 * gthr-rtems.h: Implement __gthread_mutex_destroy.
24245
e55f42fb
RG
242462008-03-05 Richard Guenther <rguenther@suse.de>
24247
24248 PR c++/35336
24249 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
24250 should be constants.
24251 * tree-cfg.c (verify_expr): Verify it.
24252 * fold-const.c (fold_truthop): Remove code generating
24253 BIT_FIELD_REFs of structure bases.
24254 (fold_binary): Likewise.
24255 (fold_ternary): Position and size of BIT_FIELD_REFs are
24256 always host integers.
24257 (make_bit_field_ref): Remove.
24258 (optimize_bit_field_compare): Remove.
24259 (all_ones_mask_p): Remove.
24260
1da266fe
GL
242612008-03-05 Gabor Loki <loki@gcc.gnu.org>
24262
24263 PR gcc/33009
24264 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
24265 (split_block_and_df_analyze): New. Split basic block and rebuild
24266 dataflow.
24267 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
24268 SPLIT_BLOCK.
24269 (split_pattern_seq): Likewise.
24270 (erase_matching_seqs): Likewise.
24271 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
24272
07c40d0b
GK
242732008-03-04 Geoff Keating <geoffk@apple.com>
24274
24275 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
24276 declaration and code.
24277 (tree_invalid_nonnegative_warnv_p): Likewise.
24278
4c754988
SB
242792008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
24280
24281 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
24282 examples. Truncate option-names then causing overfull hbox.
24283
399fe3e1
JDA
242842008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24285
24286 PR target/35222
24287 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
24288 on hpux10.
24289 * configure: Rebuilt.
24290
e49cf927 242912008-03-04 Rafael Espíndola <espindola@google.com>
e918a58a
RAE
24292
24293 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
24294 (tree_unary_nonnegative_warnv_p): New.
24295 (tree_binary_nonnegative_warnv_p): New.
24296 (tree_single_nonnegative_warnv_p): New.
24297 (tree_invalid_nonnegative_warnv_p): New.
24298 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
24299
ee8ea087
MLI
243002008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24301
24302 PR 28322
24303 * opts.c (handle_option): Postpone 'unknown option' errors only for
24304 warning options.
24305
b5220972
L
243062008-03-04 H.J. Lu <hongjiu.lu@intel.com>
24307
24308 PR target/35453
24309 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
24310 (_SIDD_XXX): This.
24311
e49cf927 243122008-03-04 Rafael Espíndola <espindola@google.com>
74dd418c
RAE
24313
24314 * fold-const.c (tree_unary_nonzero_warnv_p): New.
24315 (tree_binary_nonzero_warnv_p): New.
24316 (tree_single_nonzero_warnv_p): New.
24317 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
24318
5ce0e197
UB
243192008-03-04 Uros Bizjak <ubizjak@gmail.com>
24320
24321 PR middle-end/35456
24322 * fold-const.c (fold_cond_expr_with_comparison): Prevent
24323 transformations for modes that have signed zeros.
24324 * ifcvt.c (noce_try_abs): Ditto.
24325
2c7c6f54
JM
243262008-03-04 Joseph Myers <joseph@codesourcery.com>
24327
24328 * config/i386/i386.c (override_options): Force
24329 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
24330
b7884852
JH
243312008-03-04 Jan Hubicka <jh@suse.cz>
24332
24333 PR c++/35262
24334 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
24335 in last commit.
24336
ab65b56b
DS
243372008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
24338
24339 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
cd7e0bd4 24340 label to probe the stack.
ab65b56b 24341
c262f705
DS
243422008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
24343
24344 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
24345 (__gthr_win32_mutex_destroy): Declare.
24346 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
24347 __gthr_win32_mutex_destroy.
24348 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
24349
44682fab
JH
243502008-03-03 Jan Hubicka <jh@suse.cz>
24351
24352 PR c++/35262
24353 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
24354 aggressive on inlining cold calls.
24355
9a327766
RG
243562008-03-03 Richard Guenther <rguenther@suse.de>
24357
24358 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
24359 struct copies into the expression table.
24360 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
24361 (try_to_simplify): Likewise.
24362 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
24363 integral and pointer arguments which do not change the
24364 precision to NOP_EXPRs.
24365 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
24366 VIEW_CONVERT_EXPR case.
24367
6a732743
SP
243682008-03-02 Sebastian Pop <sebastian.pop@amd.com>
24369
24370 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
24371 defined in a loop at depth 0 is invariant.
24372 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
24373 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
24374 be called at loop depth 0.
24375
0e5997c0
JJ
243762008-03-02 Jakub Jelinek <jakub@redhat.com>
24377
24378 PR driver/35420
24379 * gcc.c (process_command): Update copyright notice dates.
24380 * gcov.c (print_version): Likewise.
24381 * gcov-dump.c (print_version): Likewise.
24382 * mips-tfile.c (main): Likewise.
24383 * mips-tdump.c (main): Likewise.
24384
393eda6a
MLI
243852008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24386
24387 PR 24924
24388 * c-common.c (flag_permissive): Delete.
24389 (constant_expression_warnings): Check flags first.
24390 (constant_expression_error): New.
24391 * c-common.h (flag_permissive): Delete.
24392 (constant_expression_error): Declare.
24393 * flags.h (flag_permissive): Declare. Update description.
24394 * diagnostic.c (pedwarn): Update.
24395 (permerror): New.
24396 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
24397 (permissive_error_kind): New.
24398 * toplev.c (flag_permissive): Define. Update description.
24399 * toplev.h (permissive_error_kind): Declare.
24400 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
24401 (pedwarn_c90): Use pedantic_warning_kind.
24402 * c-opts.c (c_common_post_options): flag_permissive does not affect
24403 flag_pedantic_errors.
24404
9677aa89
JM
244052008-03-02 Joseph Myers <joseph@codesourcery.com>
24406
24407 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
24408 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
24409 __absvsi2, __absvDI2): Use unsigned arithmetic.
24410
f3130d75 244112008-03-02 Andi Kleen <ak@suse.de>
ab669042 24412 Richard Guenther <rguenther@suse.de>
f3130d75
AK
24413
24414 * struct-equiv.c: Remove file.
24415 * cfg_cleanup.c (condjump_equiv_p): Remove.
24416 * Makefile.in (OBJS-common): Remove struct-equiv.o.
24417 (struct-equiv.o): Remove rule.
24418 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
22129589 24419 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
f3130d75
AK
24420 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
24421
89c3cbc6
AO
244222008-03-01 Alexandre Oliva <aoliva@redhat.com>
24423
24424 * ifcvt.c (noce_process_if_block): Try to handle only the then
24425 block if the else block exists but isn't suitable.
24426
5eb4a9af
JB
244272008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
24428
24429 PR gcc/35063
24430 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
24431 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
24432 regression from previous patch.
24433
4dabf736
JB
244342008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
24435
24436 PR gcc/35063
24437 * gthr.h: Add __gthread_mutex_destroy as a function that must be
24438 implemented.
24439 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
24440 * gthr-single.h (__gthread_mutex_destroy): Likewise.
24441 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
24442 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
24443 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
24444 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
24445 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
24446 (__gthread_mutex_destroy_function): Rename to
24447 __gthread_mutex_destroy.
24448 * gthr-dce.h (__gthread_mutex_destroy): Call
24449 pthread_mutex_destroy.
24450 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
24451 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
24452 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
24453
63642d5a
AO
244542008-03-01 Alexandre Oliva <aoliva@redhat.com>
24455
24456 * df-scan.c (df_ref_chain_change_bb): Simplify.
24457 (df_insn_change_bb): Add new_bb argument. Simplify. Call
24458 set_block_for_insn if there's any change.
24459 * df.h ((df_insn_change_bb): Fix prototype.
24460 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
24461 df_insn_change_bb, don't call set_block_for_insn.
24462 * emit-rtl.c (reorder_insns): Likewise.
24463 * haifa-sched.c (move_insn): Likewise.
24464
e0651058
AO
244652008-03-01 Alexandre Oliva <aoliva@redhat.com>
24466
24467 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
24468
d2b6be72
AO
244692008-03-01 Alexandre Oliva <aoliva@redhat.com>
24470
24471 * tree-flow-inline.h (next_readonly_imm_use): Return
24472 NULL_USE_OPERAND_P after the end.
24473
2fb5f2af
RG
244742008-03-01 Richard Guenther <rguenther@suse.de>
24475
24476 PR tree-optimization/35411
24477 * tree-sra.c (sra_build_assignment): Split conversion to
24478 final type to a separate statement if we are not assigning
24479 to a register.
24480
c17ee676
FXC
244812008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
24482
24483 * fold-const.c (fold_convertible_p): Correct the logic to follow
24484 that in fold_convert().
24485
f31c9f09
DG
244862008-02-29 Douglas Gregor <doug.gregor@gmail.com>
24487
24488 PR c++/35315
24489 * tree-inline.c (build_duplicate_type): When we make a
24490 duplicate type, make it unique in the canonical types system.
24491
966e8f4d
TT
244922008-02-29 Tom Tromey <tromey@redhat.com>
24493
24494 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
24495 input_file_stack_history, input_file_stack_restored): Remove.
24496 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
24497 * input.h (struct file_stack): Remove.
24498 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
24499 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
24500 Likewise.
24501 * diagnostic.h (struct diagnostic_context) <last_module>: Change
24502 type.
24503 (diagnostic_last_module_changed): Add 'map' argument.
24504 (diagnostic_set_last_function): Likewise.
24505 * diagnostic.c (undiagnostic_report_current_module): Iterate using
24506 line map, not input_file_stack.
24507 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
24508
3cbe0ba6
PB
245092008-02-29 Paul Brook <paul@codesourcery.com>
24510
24511 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
24512
d96ae4d4
PB
245132008-02-29 Paul Brook <paul@codesourcery.com>
24514
24515 * config/arm/ieee754-df.S (muldf3): Use RET macros.
24516
5be891a4
RG
245172008-02-29 Richard Guenther <rguenther@suse.de>
24518
24519 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
24520 vn_lookup_or_add.
24521 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
24522 value for comparing for a store match.
24523 (simplify_unary_expression): Do nothing for SSA_NAMEs.
24524 (try_to_simplify): Do not do a full-blown reference lookup.
24525
b0fbea13
KK
245262008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
24527
24528 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
24529 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
24530
24531 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
24532
0c96231b
SP
245332008-02-29 Sebastian Pop <sebastian.pop@amd.com>
24534
24535 * tree-loop-linear.c (try_interchange_loops): Compare memory access
24536 strides against cache sizes.
24537
d973ac5a
KK
245382008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
24539
24540 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
24541 constant to fpul.
24542
4613543f
RS
245432008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
24544
24545 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
24546 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
24547 is smaller than the original promoted value.
24548 (simplify_subreg): If OP is a SUBREG, try to preserve its
24549 SUBREG_PROMOTED_VAR_P information.
24550
cbfb21c1
SB
245512008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
24552
24553 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
24554 (VN_INFO_GET): Allocate new objects on the obstack.
24555 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
24556 for rpo_numbers_temp, for consistency.
24557 (free_scc_vn): Free the obstack.
24558
dea61d92
SP
245592008-02-28 Sebastian Pop <sebastian.pop@amd.com>
24560
24561 * doc/invoke.texi: Document -ftree-loop-distribution.
24562 * tree-loop-distribution.c: New.
24563 * tree-pass.h (pass_loop_distribution): New.
24564 * graphds.h (struct graph): Add htab_t indices.
24565 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
24566 * tree-vectorizer.c (rename_variables_in_loop): Extern.
24567 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
24568 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
24569 * tree-data-ref.c (debug_data_dependence_relations): New.
24570 (dump_data_dependence_relation): Also print data references.
24571 (free_data_ref): Extern.
24572 (same_access_functions): Moved...
24573 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
24574 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
24575 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
24576 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
24577 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
24578 (stmts_from_loop): Skip LABEL_EXPR.
5ce0e197
UB
24579 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
24580 New.
dea61d92
SP
24581 (build_rdg): Initialize rdg->indices htab.
24582 (free_rdg, stores_from_loop, ref_base_address,
24583 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
24584 have_similar_memory_accesses_1, ref_base_address_1,
24585 remove_similar_memory_refs): New.
24586 * tree-data-ref.h: Depend on tree-chrec.h.
24587 (debug_data_dependence_relations, free_data_ref): Declared.
24588 (same_access_functions): ... here.
5ce0e197
UB
24589 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
24590 New.
dea61d92
SP
24591 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
24592 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
24593 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
24594 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
24595 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
24596 rdg_vertex_for_stmt): Declared.
24597 (struct rdg_edge): Add level.
24598 (RDGE_LEVEL): New.
24599 (free_rdg, stores_from_loop, remove_similar_memory_refs,
5ce0e197
UB
24600 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
24601 Declared.
dea61d92
SP
24602 (rdg_has_similar_memory_accesses): New.
24603 * tree-vect-analyze.c: Remove unused static decls.
24604 * lambda.h (dependence_level): New.
24605 * common.opt (ftree-loop-distribution): New.
22129589 24606 * tree-flow.h (mark_virtual_ops_in_bb,
dea61d92
SP
24607 slpeel_tree_duplicate_loop_to_edge_cfg,
24608 rename_variables_in_loop): Declared.
24609 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
24610 (OBJS-common): Add tree-loop-distribution.o.
24611 (tree-loop-distribution.o): New rule.
24612 * tree-cfg.c (mark_virtual_ops_in_bb): New.
24613 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
24614 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
24615
dde75838
JM
246162008-02-28 Joseph Myers <joseph@codesourcery.com>
24617
24618 PR target/33963
24619 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
24620 other than structures and unions.
24621
3b302421
RG
246222008-02-28 Richard Guenther <rguenther@suse.de>
24623
24624 Revert:
24625 2008-02-26 Richard Guenther <rguenther@suse.de>
24626
24627 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
24628 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
24629 (lookup_decl_from_uid): Declare.
24630 (remove_decl_from_map): Likewise.
24631 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
24632 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
24633 (decl_for_uid_map): New global hashtable mapping DECL_UID
24634 to the decl tree.
24635 (init_ttree): Allocate it.
24636 (insert_decl_to_uid_decl_map): New helper function.
24637 (make_node_stat): Insert new decls into the map.
24638 (copy_node_stat): Likewise.
24639 (lookup_decl_from_uid): New function.
24640 (remove_decl_from_map): Likewise.
24641 (print_decl_for_uid_map_statistics): New helper.
24642 (dump_tree_statistics): Call it.
24643
24644 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
24645 (referenced_var_iterator): Adjust.
24646 (FOR_EACH_REFERENCED_VAR): Adjust.
24647 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
24648 (num_referenced_vars): Adjust.
24649 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
24650 (first_referenced_var): Remove.
24651 (end_referenced_vars_p): Likewise.
24652 (next_referenced_var): Likewise.
24653 (referenced_var_iterator_set): New helper function.
24654 * tree-dfa.c (referenced_var_lookup): Adjust.
24655 (referenced_var_check_and_insert): Likewise.
24656 (remove_referenced_var): Likewise.
24657 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
24658 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24659 (verify_call_clobbering): Likewise.
24660 (verify_memory_partitions): Likewise.
24661 (init_tree_ssa): Allocate bitmap instead of hashtable for
24662 referenced_vars.
24663 (delete_tree_ssa): Adjust.
24664 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
24665 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24666 (compute_tag_properties): Likewise.
24667 (set_initial_properties): Likewise.
24668 (find_partition_for): Likewise.
24669 (update_reference_counts): Likewise.
24670 (dump_may_aliases_for): Likewise.
24671 * tree-ssa-operands.c (add_virtual_operand): Likewise.
24672 (add_call_clobber_ops): Likewise.
24673 (add_call_read_ops): Likewise.
24674 (get_asm_expr_operands): Likewise.
24675 * tree-into-ssa.c (dump_decl_set): Likewise.
24676 (update_ssa): Likewise.
24677 * tree-sra.c (scan_function): Likewise.
24678 (decide_instantiations): Likewise.
24679 (scalarize_parms): Likewise.
24680 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
24681 (dsa_named_for): Likewise.
24682 * tree-ssa-structalias.c (update_alias_info): Likewise.
24683 (merge_smts_into): Likewise.
24684
2a1ed4fc
DD
246852008-02-27 David Daney <ddaney@avtrex.com>
24686
24687 PR target/34409
24688 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
24689 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
24690 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
24691 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
24692 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
24693
c92712d1
UB
246942008-02-27 Uros Bizjak <ubizjak@gmail.com>
24695
24696 PR target/25477
24697 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
24698 (BUILT_IN_NEXTTOWARD): Remove.
24699 (BUILT_IN_NEXTTOWARDF): Ditto.
24700 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
24701 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
24702
a8bafc43
TT
247032008-02-27 Tom Tromey <tromey@redhat.com>
24704
24705 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
24706 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
24707
8220334a
JB
247082008-02-27 Jan Beulich <jbeulich@novell.com>
24709
24710 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
24711 update the respective field on newdecl.
24712
8bf6e270
RE
247132008-02-27 Revital Eres <eres@il.ibm.com>
24714
24715 PR rtl-optimization/34999
24716 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
24717 crossing edges that ends with a call insn.
24718 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
24719 call insn and clear the EDGE_CROSSING flag of the crossing edge
24720 when fixing fallthru edges.
24721
7fb52af2
RG
247222008-02-27 Richard Guenther <rguenther@suse.de>
24723
3b302421 24724 PR middle-end/35390
7fb52af2
RG
24725 * fold-const.c (fold_unary): Return the correct argument,
24726 converted to the result type.
24727
70582b3a
RG
247282008-02-27 Richard Guenther <rguenther@suse.de>
24729
24730 PR middle-end/34971
24731 * expr.c (expand_expr_real_1): Assert on rotates that operate
24732 on partial modes.
24733 * fold-const.c (fold_binary): Use the types precision, not the
24734 bitsize of the mode if folding rotate expressions. Build rotates
24735 only for full modes.
24736
a25a8f3b
JJ
247372008-02-27 Jakub Jelinek <jakub@redhat.com>
24738
24739 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
24740 and CPP_PRAGMA_EOL.
24741 * c-pragma.c (pragma_ns_name): New typedef.
24742 (registered_pp_pragmas): New variable.
24743 (c_pp_lookup_pragma): New function.
24744 (c_register_pragma_1): If flag_preprocess_only, do nothing
24745 for non-expanded pragmas, for expanded ones push pragma's
24746 namespace and name into registered_pp_pragmas vector.
24747 (c_invoke_pragma_handler): Register OpenMP pragmas even when
24748 flag_preprocess_only, don't register GCC pch_preprocess
24749 pragma if flag_preprocess_only.
24750 * c-opts.c (c_common_init): Call init_pragma even if
24751 flag_preprocess_only.
24752 * c-pragma.c (c_pp_lookup_pragma): New prototype.
24753 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
24754 cpp_register_pragma if flag_preprocess_only.
24755
369239ef
RW
247562008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24757
24758 PR c/28800
24759 * c-parser.c (c_parser_translation_unit): Warn for empty
24760 translation unit, not empty source file.
24761
f5c630c3
PB
247622008-02-26 Paul Brook <paul@codesourcery.com>
24763
24764 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
24765 operand for Thumb-2.
24766 * config/arm/arm.h (reg_class): Add CORE_REGS.
24767 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
24768 (BASE_REG_CLASS): Use CORE_REGS.
24769 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
24770 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
24771 (REGNO_OK_FOR_INDEX_P): Exclude SP.
24772 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
24773 ARM_REGNO_OK_FOR_INDEX_P.
24774 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
24775 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
24776 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
24777 (ldm/stm peepholes): Ditto.
24778 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
24779 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
24780 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
24781 * config/arm/constraints.md: Enable "k" constraint on ARM.
24782
0d158b6e
BE
247832008-02-27 Ben Elliston <bje@au.ibm.com>
24784
24785 * config/rs6000/rs6000.c: Annotate cache line size field in all
24786 instances of struct processor_costs.
24787
7d817ebc
DE
247882008-02-26 David Edelsohn <edelsohn@gnu.org>
24789
24790 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
24791 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
24792 jump_bypass): New counters.
24793 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
24794 * dce.c (gate_ud_dce): Same.
24795 (gate_fast_dce): Same.
24796 * dse.c (gate_dse1): New function.
24797 (gate_dse2): New function.
24798 (gate_dse): Merge results of new gate functions.
24799 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
24800 (gate_handle_jump_bypass): Add dbg_cnt.
24801 (gate_handle_gcse): Add dbg_cnt.
24802 * ifcvt.c (gate_handle_if_conversion): Same.
24803 (gate_handle_if_after_combine): Same.
24804 (gate_handle_if_after_reload): Same.
24805 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
24806
a19b7d46
EW
248072008-02-26 Edmar Wienskoski <edmar@freescale.com>
24808
24809 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
24810 line sizes.
24811 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
24812
317c435f
JM
248132008-02-26 Jason Merrill <jason@redhat.com>
24814
24815 PR c++/35315
22129589 24816 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
317c435f
JM
24817 alone if it's the naming decl for the type's main variant.
24818
2d593c86
TT
248192008-02-26 Tom Tromey <tromey@redhat.com>
24820
24821 * system.h (USE_MAPPED_LOCATION): Poison.
24822 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
24823 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
24824 (make_goto_expr_edges): Likewise.
24825 (remove_bb): Likewise.
24826 (execute_warn_function_return): Likewise.
24827 * basic-block.h (struct edge_def) <goto_locus>: Change type to
24828 location_t.
24829 * c-common.c (fname_decl): Remove old location code.
24830 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
24831 location code.
24832 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
24833 variant.
24834 (ASM_INPUT_SOURCE_LOCATION): Likewise.
24835 (gen_rtx_ASM_INPUT): Likewise.
24836 (gen_rtx_ASM_INPUT_loc): Likewise.
24837 (get_rtx_asm_OPERANDS): Remove.
24838 * cfglayout.c (insn_locators_alloc): Remove old location code.
24839 (set_curr_insn_source_location): Likewise.
24840 (curr_insn_locator): Likewise.
24841 * print-tree.c (print_node): Remove old location code.
24842 * tree-mudflap.c (mf_varname_tree): Remove old location code.
24843 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
24844 * cfgexpand.c (expand_gimple_cond_expr): Don't use
24845 location_from_locus.
24846 (construct_exit_block): Remove old location code.
24847 * emit-rtl.c (force_next_line_note): Remove old location code.
24848 * profile.c (branch_prob): Remove old location code.
24849 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
24850 LOC_LINE): Remove old-location variants.
24851 * langhooks.c (lhd_print_error_function): Remove old location
24852 code.
24853 * configure, config.in: Rebuilt.
24854 * configure.ac (--enable-mapped-location): Remove.
24855 * c-decl.c (c_init_decl_processing): Remove old location code.
24856 (finish_function): Likewise.
24857 * recog.c (decode_asm_operands): Remove old location code.
24858 * c-pch.c (c_common_read_pch): Remove old location code.
24859 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
24860 variants.
24861 * gimple-low.c (lower_function_body): Remove old location code.
24862 * toplev.c (unknown_location): Remove.
24863 (push_srcloc): Remove old-location variant.
24864 (process_options): Remove old location code.
24865 (lang_dependent_init): Likewise.
24866 * input.h (UNKNOWN_LOCATION): Move definition.
24867 (location_t): Undeprecate.
24868 (source_locus): Remove.
24869 (location_from_locus): Remove.
24870 (struct location_s): Remove.
24871 Remove all old-location code.
24872 (input_line, input_filename): Remove.
24873 * final.c (final_scan_insn): Remove old location code.
24874 * diagnostic.c (diagnostic_build_prefix): Remove
24875 USE_MAPPED_LOCATION test.
24876 * tree.h (gimple_stmt) <locus>: Now a location_t.
24877 (tree_exp) <locus>: Likewise.
24878 (DECL_IS_BUILTIN): Remove old-location variant.
24879 (annotate_with_file_line, annotate_with_locus): Likewise.
24880 (expr_locus, set_expr_locus): Update.
24881 * tree.c (build1_stat): Remove old location code.
24882 (last_annotated_node): Remove.
24883 (annotate_with_file_line): Remove old-location variant.
24884 (annotate_with_locus): Likewise.
24885 (expr_location): Remove old location code.
24886 (set_expr_location): Likewise.
24887 (expr_has_location): Likewise.
24888 (expr_locus): Likewise.
24889 (set_expr_locus): Likewise.
24890 (expr_filename): Don't use location_from_locus.
24891 (expr_lineno): Likewise.
24892 * rtl-error.c (location_for_asm): Remove old location code.
24893 * c-lex.c (cb_line_change): Remove old location code.
24894 (fe_file_change): Likewise.
24895 (cb_def_pragma): Likewise.
24896 (c_lex_with_flags): Likewise.
24897 * gengtype.c (do_typedef): Don't special-case location types.
24898 (define_location_structures): Remove.
24899 (main): Don't call define_location_structures.
24900 * tree-pretty-print.c (dump_implicit_edges): Remove old location
24901 code.
24902
4f01eeb4
MLI
249032008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24904
cd7e0bd4 24905 PR 26264
4f01eeb4
MLI
24906 * builtins.def (BUILT_IN_STDARG_START): Remove.
24907 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
24908 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
24909 * tree-inline.c (inline_forbidden_p_1): Likewise.
22129589 24910
bbd59cf4
RG
249112008-02-26 Richard Guenther <rguenther@suse.de>
24912
24913 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
24914 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
24915 (lookup_decl_from_uid): Declare.
24916 (remove_decl_from_map): Likewise.
24917 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
24918 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
24919 (decl_for_uid_map): New global hashtable mapping DECL_UID
24920 to the decl tree.
24921 (init_ttree): Allocate it.
24922 (insert_decl_to_uid_decl_map): New helper function.
24923 (make_node_stat): Insert new decls into the map.
24924 (copy_node_stat): Likewise.
24925 (lookup_decl_from_uid): New function.
24926 (remove_decl_from_map): Likewise.
24927 (print_decl_for_uid_map_statistics): New helper.
24928 (dump_tree_statistics): Call it.
24929
24930 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
24931 (referenced_var_iterator): Adjust.
24932 (FOR_EACH_REFERENCED_VAR): Adjust.
24933 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
24934 (num_referenced_vars): Adjust.
24935 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
24936 (first_referenced_var): Remove.
24937 (end_referenced_vars_p): Likewise.
24938 (next_referenced_var): Likewise.
24939 (referenced_var_iterator_set): New helper function.
24940 * tree-dfa.c (referenced_var_lookup): Adjust.
24941 (referenced_var_check_and_insert): Likewise.
24942 (remove_referenced_var): Likewise.
24943 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
24944 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24945 (verify_call_clobbering): Likewise.
24946 (verify_memory_partitions): Likewise.
24947 (init_tree_ssa): Allocate bitmap instead of hashtable for
24948 referenced_vars.
24949 (delete_tree_ssa): Adjust.
24950 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
24951 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
24952 (compute_tag_properties): Likewise.
24953 (set_initial_properties): Likewise.
24954 (find_partition_for): Likewise.
24955 (update_reference_counts): Likewise.
24956 (dump_may_aliases_for): Likewise.
24957 * tree-ssa-operands.c (add_virtual_operand): Likewise.
24958 (add_call_clobber_ops): Likewise.
24959 (add_call_read_ops): Likewise.
24960 (get_asm_expr_operands): Likewise.
24961 * tree-into-ssa.c (dump_decl_set): Likewise.
24962 (update_ssa): Likewise.
24963 * tree-sra.c (scan_function): Likewise.
24964 (decide_instantiations): Likewise.
24965 (scalarize_parms): Likewise.
24966 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
24967 (dsa_named_for): Likewise.
24968 * tree-ssa-structalias.c (update_alias_info): Likewise.
24969 (merge_smts_into): Likewise.
24970
16302daf
MLI
249712008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24972
24973 PR 34351
24974 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
24975 * c-opts.c (c_common_handle_option): Wall enables
24976 Wvolatile-register-var.
24977 * common.opt: Move Wvolatile-register-var to...
24978 * c.opt: ...here.
22129589 24979
e8fc888d
MLI
249802008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24981
24982 * common.opt (Wlarger-than=): New.
24983 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
24984 -Wlarger-than=.
24985 * opts.c (common_handle_option): Handle -Wlarger-than=.
24986 * optc-gen.awk: Likewise.
24987 * opth-gen.awk: Likewise.
24988 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
24989 * tree-optimize.c (tree_rest_of_compilation): Likewise.
22129589 24990
683d6ff9
MLI
249912008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24992
24993 * c-common.c (match_case_to_enum_1): Add appropriate
24994 OPT_W* parameter to warning.
24995 (c_do_switch_warnings): Likewise.
24996 * c-typeck.c (warning_init): Add one more parameter following
24997 'warning' function.
24998 (push_init_level): Update call to warning_init.
24999 (pop_init_level): Likewise.
25000 (add_pending_init): Likewise.
25001 (output_init_element: Likewise.
25002
369dcbd9
MLI
250032008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25004
25005 PR 28322
25006 * toplev.c (toplev_main): If there are warnings or error, print
25007 errors for ignored options.
25008 * opts.c (ignored_options): New static variable.
25009 (postpone_unknown_option_error): New.
25010 (print_ignored_options): New.
25011 (handle_option): Postpone errors for unknown -Wno-* options.
25012 * opts.h (print_ignored_options): Declare.
22129589 25013
23dc794c
RS
250142008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
25015
25016 * config/mips/mips.md (loadgp_blockage, blockage): Change type
25017 to "ghost".
25018
381a258b
RG
250192008-02-25 Richard Guenther <rguenther@suse.de>
25020
25021 Revert:
25022 2008-02-25 Richard Guenther <rguenther@suse.de>
25023
25024 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25025 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25026 (lookup_decl_from_uid): Declare.
25027 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25028 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25029 (decl_for_uid_map): New global hashtable mapping DECL_UID
25030 to the decl tree.
25031 (init_ttree): Allocate it.
25032 (insert_decl_to_uid_decl_map): New helper function.
25033 (make_node_stat): Insert new decls into the map.
25034 (copy_node_stat): Likewise.
25035 (lookup_decl_from_uid): New function.
25036 (print_decl_for_uid_map_statistics): New helper.
25037 (dump_tree_statistics): Call it.
25038
25039 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25040 (referenced_var_iterator): Adjust.
25041 (FOR_EACH_REFERENCED_VAR): Adjust.
25042 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25043 (num_referenced_vars): Adjust.
25044 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25045 (first_referenced_var): Remove.
25046 (end_referenced_vars_p): Likewise.
25047 (next_referenced_var): Likewise.
25048 (referenced_var_iterator_set): New helper function.
25049 * tree-dfa.c (referenced_var_lookup): Adjust.
25050 (referenced_var_check_and_insert): Likewise.
25051 (remove_referenced_var): Likewise.
25052 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25053 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25054 (verify_call_clobbering): Likewise.
25055 (verify_memory_partitions): Likewise.
25056 (init_tree_ssa): Allocate bitmap instead of hashtable for
25057 referenced_vars.
25058 (delete_tree_ssa): Adjust.
25059 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25060 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25061 (compute_tag_properties): Likewise.
25062 (set_initial_properties): Likewise.
25063 (find_partition_for): Likewise.
25064 (update_reference_counts): Likewise.
25065 (dump_may_aliases_for): Likewise.
25066 * tree-ssa-operands.c (add_virtual_operand): Likewise.
25067 (add_call_clobber_ops): Likewise.
25068 (add_call_read_ops): Likewise.
25069 (get_asm_expr_operands): Likewise.
25070 * tree-into-ssa.c (dump_decl_set): Likewise.
25071 (update_ssa): Likewise.
25072 * tree-sra.c (scan_function): Likewise.
25073 (decide_instantiations): Likewise.
25074 (scalarize_parms): Likewise.
25075 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25076 (dsa_named_for): Likewise.
25077 * tree-ssa-structalias.c (update_alias_info): Likewise.
25078 (merge_smts_into): Likewise.
25079
89453ec7
JB
250802008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
25081
25082 PR fortran/29549
25083 * doc/invoke.texi (-fcx-limited-range): Document new option.
25084 * toplev.c (process_options): Handle -fcx-fortran-rules.
cd7e0bd4 25085 * common.opt: Add documentation for -fcx-fortran-rules.
89453ec7 25086
8cc6d3e0
JB
250872008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
25088
25089 PR c/35162
25090 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
25091 actual behaviour and C99.
22129589 25092
cd679487
BE
250932008-02-26 Ben Elliston <bje@au.ibm.com>
25094
25095 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
25096 (ASM_CPU_POWER6_SPEC): Likewise.
25097 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
25098 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
25099 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
25100
7660c722
RG
251012008-02-25 Richard Guenther <rguenther@suse.de>
25102
25103 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
25104 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
25105 (lookup_decl_from_uid): Declare.
25106 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
25107 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
25108 (decl_for_uid_map): New global hashtable mapping DECL_UID
25109 to the decl tree.
25110 (init_ttree): Allocate it.
25111 (insert_decl_to_uid_decl_map): New helper function.
25112 (make_node_stat): Insert new decls into the map.
25113 (copy_node_stat): Likewise.
25114 (lookup_decl_from_uid): New function.
25115 (print_decl_for_uid_map_statistics): New helper.
25116 (dump_tree_statistics): Call it.
25117
25118 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
25119 (referenced_var_iterator): Adjust.
25120 (FOR_EACH_REFERENCED_VAR): Adjust.
25121 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
25122 (num_referenced_vars): Adjust.
25123 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
25124 (first_referenced_var): Remove.
25125 (end_referenced_vars_p): Likewise.
25126 (next_referenced_var): Likewise.
25127 (referenced_var_iterator_set): New helper function.
25128 * tree-dfa.c (referenced_var_lookup): Adjust.
25129 (referenced_var_check_and_insert): Likewise.
25130 (remove_referenced_var): Likewise.
25131 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
25132 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25133 (verify_call_clobbering): Likewise.
25134 (verify_memory_partitions): Likewise.
25135 (init_tree_ssa): Allocate bitmap instead of hashtable for
25136 referenced_vars.
25137 (delete_tree_ssa): Adjust.
25138 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
25139 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
25140 (compute_tag_properties): Likewise.
25141 (set_initial_properties): Likewise.
25142 (find_partition_for): Likewise.
25143 (update_reference_counts): Likewise.
25144 (dump_may_aliases_for): Likewise.
25145 * tree-ssa-operands.c (add_virtual_operand): Likewise.
25146 (add_call_clobber_ops): Likewise.
25147 (add_call_read_ops): Likewise.
25148 (get_asm_expr_operands): Likewise.
25149 * tree-into-ssa.c (dump_decl_set): Likewise.
25150 (update_ssa): Likewise.
25151 * tree-sra.c (scan_function): Likewise.
25152 (decide_instantiations): Likewise.
25153 (scalarize_parms): Likewise.
25154 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
25155 (dsa_named_for): Likewise.
25156 * tree-ssa-structalias.c (update_alias_info): Likewise.
25157 (merge_smts_into): Likewise.
25158
2e4e39f6
AK
251592008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
25160
25161 PR target/35258
25162 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
25163 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
25164 * alias.h (nonoverlapping_memrefs_p): Likewise.
25165
891984af
JB
251662008-02-25 Jan Beulich <jbeulich@novell.com>
25167
c92712d1 25168 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
891984af
JB
25169 * config/i386/netware-libgcc.exp: Add __bswap?i2,
25170 __emultls_get_address, __emultls_register_common,
25171 __floatundi?f, and _Unwind_GetIPInfo.
25172 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
25173 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
25174 (gen_regparm_prefix): Likewise.
25175 (i386_nlm_encode_section_info): Sync with
25176 config/i386/winnt.c:i386_pe_encode_section_info().
25177 (i386_nlm_maybe_mangle_decl_assembler_name): New.
25178 i386_nlm_mangle_decl_assembler_name): New.
25179 (netware_override_options): New.
25180 * config/i386/netware.h (netware_override_options): Declare.
25181 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
25182 (i386_nlm_mangle_decl_assembler_name): Declare.
25183 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
25184
98266db0
BE
251852008-02-25 Ben Elliston <bje@au.ibm.com>
25186
25187 PR other/32948
25188 * c-decl.c (grokdeclarator): Remove unused local variables
25189 `typedef_type' and `type_as_written'.
25190 * bb-reorder.c
25191 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
25192 unused local variable `has_hot_blocks'.
25193 (fix_crossing_conditional_branches): Remove unused local variable
25194 `prev_bb'.
22129589 25195
93e50125
UB
251962008-02-25 Uros Bizjak <ubizjak@gmail.com>
25197
25198 PR middle-end/19984
25199 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
25200 using DEF_C99_BUILTIN.
25201 (BUILT_IN_NANF): Ditto.
25202 (BUILT_IN_NANL): Ditto.
25203
0de5a32f 252042008-02-25 Ayal Zaks <zaks@il.ibm.com>
433331d4 25205 Revital Eres <eres@il.ibm.com>
0de5a32f
AZ
25206
25207 * modulo-sched.c (calculate_must_precede_follow): Address TODO
25208 regarding the order of two dependent insns in the same row.
25209
d4cba6d4
EB
252102008-02-25 Eric Botcazou <ebotcazou@adacore.com>
25211
25212 * stor-layout.c (layout_decl): Do not bump the alignment of a
25213 bit-field to more than byte alignment if it is packed.
25214
642639ce
DE
252152008-02-24 David Edelsohn <edelsohn@gnu.org>
25216
25217 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
25218 e300c2 and e300c3.
25219
faebccf9
DN
252202008-02-24 Diego Novillo <dnovillo@google.com>
25221
25222 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
25223
25224 PR 33738
25225 * tree-vrp.c (vrp_evaluate_conditional): With
25226 -Wtype-limits, emit a warning when comparing against a
25227 constant outside the natural range of OP0's type.
25228 * c.opt (Wtype-limits): Move ...
25229 * common.opt (Wtype-limits): ... here.
25230
88c7f01b 252312008-02-24 Edmar Wienskoski <edmar@freescale.com>
fa41c305
EW
25232
25233 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
25234 * config/rs6000/e300c2c3.md: New file.
25235 * config/rs6000/rs6000.c (processor_costs): Add new costs for
25236 e300c2 and e300c3.
25237 (rs6000_override_options): Add e300c2 and e300c3 cases to
25238 processor_target_table. Do not allow usage of Altivec or Spe
25239 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
25240 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
25241 * config/rs6000/rs6000.h (processor_type): Add
25242 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
25243 (ASM_CPU_SPEC): Add e300c2 and e300c3.
25244 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
25245 and ppce300c3. Include e300c2c3.md.
25246
153fbec8
DE
252472008-02-23 David Edelsohn <edelsohn@gnu.org>
25248
25249 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
25250 instead of TARGET_STRICT_ALIGN.
25251
03d4f106
JM
252522008-02-23 Joseph Myers <joseph@codesourcery.com>
25253
25254 * explow.c (memory_address): Assert that the generated address is
25255 valid.
25256
fb220235
FXC
252572008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
25258
25259 PR target/25477
25260 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
25261 * config/darwin-ppc-ldouble-patch.def: New file.
25262 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
25263 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
25264 SUBTARGET_INIT_BUILTINS if defined.
93e50125
UB
25265 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
25266 New functions.
fb220235 25267
f79db4f6
AP
252682008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
25269
25270 PR rtl-opt/33512
25271 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
25272 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
25273
bb1f73c2
AP
252742008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
25275
25276 PR pch/35027
25277 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
25278 file" warning condtional on -Winvalid-PCH.
25279
8ddcfde1
DJ
252802008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
25281
25282 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
25283
84495fd9
UB
252842008-02-23 Uros Bizjak <ubizjak@gmail.com>
25285
25286 PR target/22076
22129589 25287 PR target/34256
84495fd9
UB
25288 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
25289 prevent reload from using MMX registers.
25290 (*mov<mode>_internal): Ditto.
25291 (*movv2sf_internal_rex64): Ditto.
25292 (*movv2sf_internal): Ditto.
25293
73c17ad2
RW
252942008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25295
25296 PR documentation/31569
25297 * doc/install.texi2html: Use makeinfo --no-number-sections.
25298
61dd226f
NF
252992008-02-22 Nathan Froyd <froydnj@codesourcery.com>
25300
25301 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
25302 ensure that we can address an entire entity > 8 bytes. Don't
25303 generate reg+reg addressing for such data.
25304
2165fd38
NF
253052008-02-22 Nathan Froyd <froydnj@codesourcery.com>
25306
25307 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
25308 strings when optimizing for size, unless the target cares about
25309 alignment.
25310
ad5ebb34
TT
253112008-02-22 Tom Tromey <tromey@redhat.com>
25312
25313 * regclass.c (current_pass): Remove declaration.
25314
34d02d17
AS
253152008-02-22 Anatoly Sokolov <aesok@post.ru>
25316
25317 * config/avr/libgcc.S (__RAMPZ__): Define.
25318 (__do_copy_data): Add for devices with 128KB code memory.
25319
a4899c01
NF
253202008-02-22 Nathan Froyd <froydnj@codesourcery.com>
25321
25322 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
25323 Use spe_abi.
25324 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
25325
fe82487e
HPN
253262008-02-22 Hans-Peter Nilsson <hp@axis.com>
25327
25328 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
25329 GENNONACR_REGS.
25330
ae311566
RW
253312008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25332
25333 PR c/19999
25334 * c-typeck.c (build_binary_op): Warn about floating point
25335 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
25336
a2db2771
JJ
253372008-02-21 Janis Johnson <janis187@us.ibm.com>
25338
25339 PR target/34526
25340 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
25341 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
25342 add vrsave.
25343 (rs6000_override_options): Set altivec_abi as default, not override,
25344 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
25345 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
25346 is used; use new member spe_abi.
25347 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
25348 spe_abi and altivec_abi.
25349
89fd06fb
TB
253502008-02-22 Tomas Bily <tbily@suse.cz>
25351
25352 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
25353
703fdf5a
RW
253542008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25355
25356 PR bootstrap/35273
25357 * config.build (build_file_translate): Set to `CMD //c' only if
25358 it works.
25359 * Makefile.in (build_file_translate): Improve comment.
25360
0ca16832
JH
253612008-02-21 Jan Hubicka <jh@suse.cz>
25362
25363 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
25364 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
25365 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
25366
c754abbf
MM
253672008-02-21 Michael Matz <matz@suse.de>
25368
25369 PR target/35264
25370 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
25371
85845bb9
UB
253722008-02-21 Uros Bizjak <ubizjak@gmail.com>
25373
25374 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
25375 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
25376 as insn constraint.
25377 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
25378 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
25379 SSE_VEC_FLOAT_MODE_P as insn constraint.
25380 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
25381 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
25382 sse4a_movntdf using MODEF mode iterator.
25383 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
25384 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
25385 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
25386 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
25387 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
25388 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
25389 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
25390
dedd42d5
RG
253912008-02-21 Richard Guenther <rguenther@suse.de>
25392
25393 * tree.def (PAREN_EXPR): New tree code.
25394 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
25395 and PAREN_EXPR.
25396 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
25397 * expr.c (expand_expr_real_1): Likewise.
25398 * tree-inline.c (estimate_num_insns_1): Likewise.
25399 * tree-complex.c (expand_complex_move): Likewise.
25400 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
25401 as plain x.
25402
7a3cb3ab
KK
254032008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
25404
25405 PR target/35225
25406 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
25407
6d4d15b8
KK
254082008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
25409
25410 PR target/35190
25411 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
25412
25413 * config/sh/sh.c (find_barrier): Don't go past
25414 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
25415
6d4a8967
DD
254162008-02-20 DJ Delorie <dj@redhat.com>
25417
25418 * config/h8300/h8300.md (insv): Force source operand to be a register.
25419
25420 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
25421 as a jump, not as a plain insn.
22129589 25422
a214518f
SP
254232008-02-20 Seongbae Park <seongbae.park@gmail.com>
25424
25425 * doc/invoke.texi (Warning Options): Add new option
25426 -Wframe-larger-than=.
25427 (-Wframe-larger-than): Document.
25428
25429 * flags.h (warn_frame_larger_than, frame_larger_than_size):
25430 Add declarations for new option variables.
25431
25432 * final.c (final_start_function): Check the frame size
25433 before emission and issue a Wframe-larger-than warning.
25434
25435 * opts.c (warn_frame_larger_than, frame_larger_than_size):
25436 Add definitions for new option variables.
25437 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
25438
25439 * common.opt (Wframe-larger-than=): New option.
25440
993ac7c7
UB
254412008-02-20 Uros Bizjak <ubizjak@gmail.com>
25442
25443 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
25444 (<sse>_div<mode>3): Ditto.
25445 (<sse>_vmdiv<mode>3): Ditto.
25446 (<sse>_vmsqrt<mode>2): Ditto.
25447 (*smax<mode>3): Ditto.
25448 (sse5_frcz<mode>2): Ditto.
25449 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
25450 as insn constraint.
25451
4cd8e76f
RG
254522008-02-20 Richard Guenther <rguenther@suse.de>
25453
25454 PR middle-end/35265
25455 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
25456 be happy with INTEGRAL_TYPE_P.
25457
41bb1f06
RG
254582008-02-20 Richard Guenther <rguenther@suse.de>
25459
25460 * fold-const.c (split_tree): Associate floatig-point expressions
25461 if flag_associative_math is set.
25462
2dc0f633
RG
254632008-02-20 Richard Guenther <rguenther@suse.de>
25464
25465 * tree.h (fold_real_zero_addition_p): Declare.
25466 * fold-const.c (fold_real_zero_addition_p): Export.
25467 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
25468 floating-point operations with zero and one.
25469
1c8bd6a3
PB
254702008-02-20 Paolo Bonzini <bonzini@gnu.org>
25471
4b40b2a5
UB
25472 * doc/install.texi: Correct references to CFLAGS, replacing them
25473 with BOOT_CFLAGS. Document flags used during bootstrap for
25474 target libraries.
22129589 25475
d6023b50
UB
254762008-02-20 Uros Bizjak <ubizjak@gmail.com>
25477
25478 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
25479 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
25480 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
25481 insn constraint.
25482 (smin<mode>3): Ditto from similar patterns.
25483 (smax<mode>3): Ditto.
25484 (*ieee_smin<mode>3): Ditto.
25485 (*ieee_smax<mode>3): Ditto.
25486 * config/i386/sse.md (sse): New mode attribute.
25487 (mov<mode>): Macroize expander from movv4sf and movv2df using
25488 SSEMODEF2P mode iterator.
25489 (<sse>_movnt<mode>): Ditto from similar patterns. Use
25490 SSE_VEC_FLOAT_MODE_P as insn constraint.
25491 (storent<mode>): Ditto.
25492 (storent<mode>): Macroize expander from storentsf and storentdf using
25493 MODEF mode iterator.
25494 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
25495 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
25496 (abs<mode>2): Ditto from similar patterns.
25497 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
25498 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
25499 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
25500 (<sse>_vmsqrt<mode>2): Ditto.
25501 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
25502 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
25503 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
25504 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
25505 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
25506 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
25507 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
25508 insn constraint.
25509 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
25510 iterator and SSE_FLOAT_MODE_P as insn constraint.
25511 (<sse>_ucomi): Ditto from similar patterns.
25512 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
25513 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
25514 SSE_VEC_FLOAT_MODE_P as insn constraint.
25515 (vcond<mode>): Ditto from similar patterns.
25516 (and<mode>3, *and<mode>3): Ditto.
25517 (<sse>_nand<mode>3): Ditto.
25518 (ior<mode>3, *ior<mode>3): Ditto.
25519 (xor<mode>3, *xor<mode>3): Ditto.
25520 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
25521 iterator and SSE_FLOAT_MODE_P as insn constraint.
25522 (*nand<mode>3): Ditto from similar patterns.
25523 (*ior<mode>3): Ditto.
25524 (*xor<mode>3): Ditto.
25525
76a893cf
IR
255262008-02-20 Ira Rosen <irar@il.ibm.com>
25527
25528 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
25529 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
25530 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
25531
daac0317
JH
255322008-02-19 Jan Hubicka <jh@suse.cz>
25533
a8971bdb
UB
25534 * predict.c (tree_bb_level_predictions): Remove variable next
25535 mistakely introduced by previous commit.
daac0317 25536
3e4b9ad0
JH
255372008-02-19 Jan Hubicka <jh@suse.cz>
25538
25539 * predict.c (predict_paths_leading_to): Rewrite.
25540 (predict_paths_for_bb): New.
25541 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
25542
a0e527e3
RW
255432008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25544
25545 PR bootstrap/35218
25546 * Makefile.in (build_file_translate): New.
25547 (gcc-vers.texi): Use it for translating $(abs_srcdir).
25548 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
25549 * configure.ac (build_file_translate): Substitute it.
25550 * configure: Regenerate.
25551
9d5cee3d
JH
255522008-02-19 Jan Hubicka <jh@suse.cz>
25553
25554 PR rtl-optimization/34408
3e4b9ad0
JH
25555 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
25556 invalid sharing.
9d5cee3d 25557
8723e2fe
JH
255582008-02-19 Jan Hubicka <jh@suse.cz>
25559
25560 PR middle-end/28779
3e4b9ad0
JH
25561 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
25562 call_expr.
8723e2fe 25563
5ba5440f
L
255642008-02-19 H.J. Lu <hongjiu.lu@intel.com>
25565
25566 PR Ada/35186
25567 * config/i386/i386-modes.def: Revert the last DI alignment
25568 change until Ada people can look into it.
25569
c01c261d
NC
255702008-02-19 Nick Clifton <nickc@redhat.com>
25571
25572 * opts.c (print_specific_help): Fix typo in --help text.
25573
2e834acb
JJ
255742008-02-19 Jakub Jelinek <jakub@redhat.com>
25575
25576 PR target/35239
25577 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
25578 32-bit inline asm without asm alternatives for host GCC < 3.0.
25579
9cadd7f7
RG
255802008-02-19 Richard Guenther <rguenther@suse.de>
25581
25582 PR tree-optimization/34989
25583 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
25584 Allow propagation to INDIRECT_REF if we can simplify only.
25585
ffc30173
MLI
255862008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25587
25588 * c-common.c (warn_for_collisions_1): Use appropriate option when
25589 warning.
25590
b3eaaf1a
NC
255912008-02-19 Nick Clifton <nickc@redhat.com>
25592
25593 PR other/31349
a8971bdb 25594 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
b3eaaf1a
NC
25595 (handle_options): Fix indentation.
25596 (print_filtered_help): If no language-specific options were
25597 displayed tell the user how to list all the options supported by
25598 the language's front-end.
25599 (print_specific_help): Fix indentation and remove duplicate line.
25600 (common_handle_option): Handle the -v option.
25601 For --help enable the display of undocumented options if the -v
25602 switch has been included on the command line.
25603 For --help= check for overlaps in the arguments between the option
25604 classes and the language names and issue a warning when they
25605 cannot be disambiguated.
25606 * c.opt (v): Pass on to the common option handler.
25607
22129589 256082008-02-19 Revital Eres <eres@il.ibm.com>
de82c453
RE
25609
25610 * modulo-sched.c (sms_schedule): Change dump message when
25611 create_ddg function fails.
25612 (try_scheduling_node_in_cycle): Rename row to cycle.
25613 (print_partial_schedule): Rename CYCLE to ROW.
25614
32159434 256152008-02-19 Christian Bruel <christian.bruel@st.com>
a8971bdb
UB
25616 Zdenek Dvorak <ook@ucw.cz>
25617
25618 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
25619
0e93e1b4
UB
256202008-02-19 Uros Bizjak <ubizjak@gmail.com>
25621
25622 PR target/33555
25623 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
25624 (*x86_movdicc_0_m1_se): Ditto.
25625
02d353cf
UB
256262008-02-19 Uros Bizjak <ubizjak@gmail.com>
25627
25628 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
25629 (CMPtype): Define as __gcc_CMPtype.
25630 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
25631 (CMPtype): Define as __gcc_CMPtype.
25632
35dee980
HPN
256332008-02-19 Hans-Peter Nilsson <hp@axis.com>
25634
25635 Support valgrind 3.3 for --enable-checking=valgrind.
25636 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
25637 here.
25638 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
25639 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
25640 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
25641 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
25642 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
25643 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
25644 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
25645 respectively.
25646 * ggc-zone.c: Similar.
25647 * ggc-page.c: Similar.
25648
27e03cf1
PB
256492008-02-19 Paul Brook <paul@codesourcery.com>
25650
25651 PR target/35071
25652 * config/arm/ieee754-df.S: Fix do_it typo.
25653 * config/arm/ieee754-sf.S: Fix do_it typo.
25654
287a7d41
L
256552008-02-18 H.J. Lu <hongjiu.lu@intel.com>
25656
25657 PR target/35189
25658 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
25659 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
25660 (OPTION_MASK_ISA_SSE_SET): Likewise.
25661 (OPTION_MASK_ISA_SSE2_SET): Likewise.
25662 (OPTION_MASK_ISA_SSE3_SET): Likewise.
25663 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
25664 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
25665 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
25666 (OPTION_MASK_ISA_SSE4_SET): Likewise.
25667 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
25668 (OPTION_MASK_ISA_SSE5_SET): Likewise.
25669 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
25670 (OPTION_MASK_ISA_MMX_UNSET): Updated.
25671 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
25672 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
25673 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
25674 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
25675 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
25676 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
25677 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
25678 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
25679 (OPTION_MASK_ISA_SSE4): Removed.
25680 (ix86_handle_option): Turn on bits in ix86_isa_flags and
3b509e33 25681 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
287a7d41
L
25682 (override_options): Don't turn on implied SSE/MMX bits in
25683 ix86_isa_flags.
25684
feaffcaa
L
256852008-02-18 H.J. Lu <hongjiu.lu@intel.com>
25686
25687 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
25688 32bit host.
25689
b2ae828d
JY
256902008-02-18 Joey Ye <joey.ye@intel.com>
25691
25692 PR middle-end/34921
25693 * tree-nested.c (insert_field_into_struct): Set type alignment
25694 to field alignment if the former is less than the latter.
25695
8d855c3d
JJ
256962008-02-18 Jakub Jelinek <jakub@redhat.com>
25697
25698 * BASE-VER: Set to 4.4.0.
25699
923158be
RW
257002008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25701
25702 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
25703 * doc/cfg.texi: Likewise.
25704 * doc/extend.texi: Likewise.
25705 * doc/gty.texi: Likewise.
25706 * doc/invoke.texi: Likewise.
25707 * doc/loop.texi: Likewise.
25708 * doc/md.texi: Likewise.
25709 * doc/passes.texi: Likewise.
25710 * doc/rtl.texi: Likewise.
25711 * doc/sourcebuild.texi: Likewise.
25712 * doc/tm.texi: Likewise.
25713 * doc/tree-ssa.texi: Likewise.
25714
f0a77246
RG
257152008-02-17 Richard Guenther <rguenther@suse.de>
25716
25717 PR middle-end/35227
25718 * tree-complex.c (init_parameter_lattice_values): Handle parameters
25719 without default definition.
25720
e09deb14
RG
257212008-02-17 Richard Guenther <rguenther@suse.de>
25722
25723 PR tree-optimization/35231
25724 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
25725 if A | B != 1.
25726
e6528d32
UB
257272008-02-17 Uros Bizjak <ubizjak@gmail.com>
25728
25729 Revert:
22129589 25730 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
e6528d32
UB
25731 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
25732 libgcc_cmp_return mode.
25733
93e052a8
MLI
257342008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25735
25736 PR c/28368
25737 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
25738
2a49e6f8
RC
257392008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
25740
25741 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
25742 multilibs.
25743
0ee2ea09
RW
257442008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25745
25746 * doc/c-tree.texi: Use `@.' where appropriate.
25747 * doc/extend.texi: Likewise.
25748 * doc/install.texi: Likewise.
25749 * doc/invoke.texi: Likewise.
25750 * doc/loop.texi: Likewise.
25751 * doc/makefile.texi: Likewise.
25752 * doc/md.texi: Likewise.
25753 * doc/passes.texi: Likewise.
25754 * doc/standards.texi: Likewise.
25755 * doc/tm.texi: Likewise.
25756
ac84c062
JJ
257572008-02-15 Jakub Jelinek <jakub@redhat.com>
25758
25759 PR middle-end/35196
25760 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
25761 in entry_bb.
25762 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
25763 rather than in entry_bb.
25764
6a9e8571
UB
257652008-02-15 Uros Bizjak <ubizjak@gmail.com>
25766
25767 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
25768 libgcc_cmp_return mode.
25769
6837b3b8
JJ
257702008-02-15 Jakub Jelinek <jakub@redhat.com>
25771
25772 PR middle-end/35130
25773 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
25774 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
25775
2e58df6e 257762008-02-15 Richard Guenther <rguenther@suse.de>
6a9e8571 25777 Zdenek Dvorak <ook@ucw.cz>
2e58df6e
RG
25778
25779 PR tree-optimization/35164
25780 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
25781 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
25782 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
25783 Only propagate addresses which do not have abnormal SSA_NAMEs
25784 in their operands.
25785
206598fb
JM
257862008-02-15 Joseph Myers <joseph@codesourcery.com>
25787
25788 PR target/35088
25789 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
25790
18168b3f
JH
257912008-02-15 Jan Hubicka <jh@suse.cz>
25792
25793 PR middle-end/35149
25794 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
25795
6f6b8f81
UB
257962008-02-15 Uros Bizjak <ubizjak@gmail.com>
25797
25798 PR middle-end/34621
25799 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
25800 when calculating alignment_pad.
25801
979c67a5
UB
258022008-02-15 Uros Bizjak <ubizjak@gmail.com>
25803
25804 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
25805 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
25806 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
25807 and STACK_BOUNDARY define.
25808
101e174d
DS
258092008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
25810
25811 PR preprocessor/35061
25812 * c-pragma.c (handle_pragma_pop_macro): Check that
25813 pushed_macro_table has been allocated.
25814
928bc34f
EB
258152008-02-14 Eric Botcazou <ebotcazou@adacore.com>
25816
25817 PR middle-end/35136
25818 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
25819 (force_gimple_operand): Likewise.
25820 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
25821 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
25822 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
25823 (find_interesting_uses_address): Check addressability and alignment
25824 of the base expression only after substituting bases of IVs into it.
25825
a5bfb13a
MM
258262008-02-14 Michael Matz <matz@suse.de>
25827
25828 PR target/34930
25829 * function.c (instantiate_virtual_regs_in_insn): Reload address
25830 before falling back to reloading the whole operand.
25831
b49326f1
AK
258322008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
25833
25834 * config/s390/s390.c (s390_mainpool_start): Emit the pool
25835 before the first section switch note.
25836
021efafc
RW
258372008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25838
346341a4
RW
25839 * doc/bugreport.texi: Update copyright years.
25840 * doc/c-tree.texi: Likewise.
25841 * doc/cfg.texi: Likewise.
25842 * doc/cpp.texi: Likewise.
25843 * doc/cppinternals.texi: Likewise.
25844 * doc/fragments.texi: Likewise.
25845 * doc/frontends.texi: Likewise.
25846 * doc/gcc.texi: Likewise.
25847 * doc/gty.texi: Likewise.
25848 * doc/hostconfig.texi: Likewise.
25849 * doc/implement-c.texi: Likewise.
25850 * doc/libgcc.texi: Likewise.
25851 * doc/loop.texi: Likewise.
25852 * doc/makefile.texi: Likewise.
25853 * doc/options.texi: Likewise.
25854 * doc/passes.texi: Likewise.
25855 * doc/rtl.texi: Likewise.
25856 * doc/sourcebuild.texi: Likewise.
25857 * doc/standards.texi: Likewise.
25858 * doc/tree-ssa.texi: Likewise.
25859 * doc/trouble.texi: Likewise.
25860
021efafc
RW
25861 * doc/extend.texi: Use @: or add comma where appropriate.
25862 * doc/invoke.texi: Likewise.
25863 * doc/tm.texi: Likewise.
25864
583da60a
AM
258652008-02-14 Alan Modra <amodra@bigpond.net.au>
25866
25867 PR target/34393
25868 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
25869 to a reg.
25870
2a6627c2
JN
258712008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
25872
25873 * doc/md.texi (clz, ctz): Add reference.
25874 * doc/rtl.texi (clz, ctz): Likewise.
25875
1b0c753a
RW
258762008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25877
25878 PR other/35148
25879 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
25880 srcdir.
25881
03870a04
AK
258822008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
25883
25884 * config/s390/s390.c (struct constant_pool): New field
25885 emit_pool_after added.
25886 (s390_mainpool_start): Set the emit_pool_after flag according
25887 to the section switch notes.
25888 (s390_mainpool_finish): Consider emit_pool_after when emitting
25889 the literal pool at the end of the function.
25890 (s390_chunkify_start): Force literal pool splits at section
25891 switch notes.
25892
be71b673
MM
258932008-02-13 Michael Matz <matz@suse.de>
25894
25895 PR debug/35065
25896 * var-tracking.c (clobber_variable_part): Correctly traverse the
25897 list.
25898
fed39e22
MLI
258992008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25900
25901 PR 29673
25902 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
25903 Add -fdump-ipa-inline.
25904 * tree-dump.c (dump_files): Remove tree-inlined dump.
25905 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
22129589 25906
8665227f
RG
259072008-02-12 Richard Guenther <rguenther@suse.de>
25908
25909 PR tree-optimization/35171
25910 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
25911 default defs.
25912
8f768a5a
RG
259132008-02-12 Richard Guenther <rguenther@suse.de>
25914
25915 PR middle-end/35163
25916 * fold-const.c (fold_widened_comparison): Use get_unwidened in
25917 value-preserving mode. Disallow final truncation.
25918
81186f7b
EB
259192008-02-12 Eric Botcazou <ebotcazou@adacore.com>
25920
25921 PR middle-end/35136
25922 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
25923 code from here to...
25924 (force_gimple_operand): ...here.
25925
d7b8033f
JJ
259262008-02-12 Jakub Jelinek <jakub@redhat.com>
25927
e4521d11
JJ
25928 PR c++/35144
25929 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
25930 non-compatible pointers.
25931 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
25932 different FIELD_DECLs, try harder by comparing field offsets, sizes
25933 and types.
25934
d7b8033f
JJ
25935 PR inline-asm/35160
25936 * function.c (match_asm_constraints_1): Don't replace the same input
25937 multiple times.
25938
d6f77715
AS
259392008-02-12 Anatoly Sokolov <aesok@post.ru>
25940
25941 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
25942 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
25943 (expand_epilogue): Restore RAMPZ register.
25944 * config/avr/avr.md (RAMPZ_ADDR): New constant.
25945
35b35fd0
KT
259462008-02-11 Kai Tietz <kai.tietz@onevision.com>
25947
40049ccc 25948 * config/i386/cygwin.asm: (__alloca): Correct calling
35b35fd0
KT
25949 convention and alignment.
25950 (__chkstk): Force 8 byte stack alignment.
25951
a6e2d112 259522008-02-11 Uros Bizjak <ubizjak@gmail.com>
f8c5cff4 25953 Richard Guenther <rguenther@suse.de>
a6e2d112
UB
25954
25955 PR tree-optimization/33992
25956 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
25957 the zero we compare against.
25958
40049ccc
UB
259592008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
25960
25961 PR libfortran/35063
25962 * gthr-win32.h (__gthread_mutex_destroy_function): New function
25963 to CloseHandle after unlocking to prevent accumulation of handle
25964 count.
25965
4d811a05
JDA
259662008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25967
25968 PR middle_end/34150
25969 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
25970 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
25971 and update LABEL_NUSES during and after reload.
25972
e37f6a49
SB
259732008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
25974
25975 PR middle-end/34627
a3395528 25976 * combine.c (simplify_if_then_else): Make sure the comparison is
e37f6a49
SB
25977 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
25978
34917a10
RS
259792008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
25980
25981 PR bootstrap/35051
25982 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
25983 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
25984 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
25985 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
25986 * tree.h (get_type_static_bounds): Likewise.
25987
670b0231
RW
259882008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25989
25990 * doc/invoke.texi (Option Summary, C++ Dialect Options)
25991 (Objective-C and Objective-C++ Dialect Options, Warning Options):
25992 Make -Wfoo language annotations match what the compiler outputs.
25993
069c47ee
SL
259942008-02-08 Sa Liu <saliu@de.ibm.com>
25995
22129589 25996 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
069c47ee 25997 intrinsics spu_convts, spu_convtu, spu_convtf.
069c47ee 25998
ccd2a21e
HPN
259992008-02-08 Hans-Peter Nilsson <hp@axis.com>
26000
26001 * doc/extend.texi (Function Attributes) <noinline>: Mention
26002 asm ("") as method to keep calls.
26003
af47e6ac
MLI
260042008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26005
26006 PR other/32754
26007 * doc/options.texi (Options): Replace references to opts.sh with
26008 optc-gen.awk.
26009 * opts-common.c: Likewise.
26010 * optc-gen.awk: Likewise.
22129589 26011
96e2afa8
AK
260122008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
26013
26014 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
26015
260162008-02-07 Richard Henderson <rth@redhat.com>
32891ff6
RH
26017
26018 PR rtl-opt/33410
26019 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
22129589 26020 EXPR_LIST for the REG_EQUAL instead of a comparison with a
32891ff6
RH
26021 funny mode.
26022
c4ae80d9
UB
260232008-02-07 Uros Bizjak <ubizjak@gmail.com>
26024
26025 PR tree-optimization/35085
26026 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
26027 for operand entry oe2 in addition to operand entry oe3 in order to
26028 expose more opportunities for vectorizer sum reduction.
26029
72fb133f
KG
260302008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26031
26032 PR other/35107
26033 * Makefile.in (LIBS): Remove $(GMPLIBS).
26034 (cc1-dummy, cc1): Add $(GMPLIBS).
26035
20a415f8
JH
260362008-02-06 Jan Hubicka <jh@suse.cz>
26037
88b089d5 26038 PR target/23322
20a415f8
JH
26039 * i386.md (moddf_integer): Do not produce partial memory stalls for
26040 targets where it hurts.
26041
cc8d36a1
UB
260422008-02-06 Uros Bizjak <ubizjak@gmail.com>
26043
26044 PR target/35083
26045 * optabs.c (expand_float): Do not check for decimal modes when
26046 expanding unsigned integer through signed conversion.
26047
2ccd9cb2
NC
260482008-02-06 Nick Clifton <nickc@redhat.com>
26049
26050 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
26051 inside the clobber with a match_operand and duplicated operand
26052 number in the constraint.
26053 (ineqbranchsi): Delete redundant comment.
26054
ecb2366e
RC
260552008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
26056
22129589 26057 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
448b96d0
RC
26058 builtin_define ("__USE_INIT_FINI__").
26059 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
26060 -msx multilibs.
ecb2366e
RC
26061 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
26062
ccd4e386
RW
260632008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26064
26065 PR documentation/30330
26066 * doc/invoke.texi (C++ Dialect Options)
26067 (Objective-C and Objective-C++ Dialect Options, Warning Options):
26068 For each warning option -Wfoo that allows -Wno-foo, ensure both
26069 -Wfoo and -Wno-foo are listed in the option index. Fix index
26070 entry of -Wswitch-default, index -Wnormalized= including the
26071 `=', and -Wlarger-than-@var{len} including @var{len}.
26072
def7425b
UB
260732008-02-05 Uros Bizjak <ubizjak@gmail.com>
26074
26075 * config/i386/i386.md (floatunssisf2): Use
26076 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
26077 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
26078 Macroize expander using MODEF mode iterator.
26079
c1e7d240
DN
260802008-02-05 Diego Novillo <dnovillo@google.com>
26081
26082 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
26083
26084 PR 33738
def7425b 26085 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
c1e7d240 26086
3a204175
KG
260872008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26088
26089 PR other/35070
26090 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
26091
7074bc2e
L
260922008-02-05 H.J. Lu <hongjiu.lu@intel.com>
26093
26094 PR target/35084
26095 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
26096 to indicate if a message should be generated.
26097 (init_cumulative_args): Updated.
26098 (function_value_32): Likewise.
26099
0f5098ae
JM
261002008-02-05 Joseph Myers <joseph@codesourcery.com>
26101
26102 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
26103
4a534152
UB
261042008-02-05 Uros Bizjak <ubizjak@gmail.com>
26105
26106 PR target/35083
26107 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
26108 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
26109
3467b230
DN
261102008-02-04 Diego Novillo <dnovillo@google.com>
26111
26112 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
26113
26114 PR 33738
26115 * tree-vrp.c (vrp_evaluate_conditional): With
26116 -Wtype-limits, emit a warning when comparing against a
26117 constant outside the natural range of OP0's type.
26118
22199fd2
RG
261192008-02-04 Richard Guenther <rguenther@suse.de>
26120
26121 PR middle-end/33631
26122 * expr.c (count_type_elements): Give for unions instead of
26123 guessing.
26124
1a1640db
RG
261252008-02-04 Richard Guenther <rguenther@suse.de>
26126
26127 PR middle-end/35043
26128 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
26129 to TYPE_DOMAINs base type instead of using bitsizetype here.
26130
0fcedd9c
JM
261312008-02-03 Jason Merrill <jason@redhat.com>
26132
26133 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
26134
a31cfd58
RW
261352008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26136
26137 PR other/29972
26138 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
26139 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
26140 (RS/6000 and PowerPC Options): Fix typos and markup.
26141 * doc/passes.texi (Tree-SSA passes): Likewise.
26142
6994f254
MM
261432008-02-02 Michael Matz <matz@suse.de>
26144
26145 PR target/35045
26146 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
26147 from record_last_reg_set_info.
26148 (record_last_reg_set_info): Take an RTX argument, iterate over all
26149 constituent hardregs.
26150 (record_last_set_info, record_opr_changes): Change calls to
26151 new signature or to record_last_reg_set_info_regno.
26152
27f56cb1
GP
261532008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
26154
26155 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
26156
3e836a31
HPN
261572008-02-01 Hans-Peter Nilsson <hp@axis.com>
26158
26159 PR rtl-optimization/34773
26160 * reg-notes.def (EQUAL): Mention significance of combination of
26161 REG_EQUAL and REG_RETVAL.
26162 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
26163 insn that has a REG_RETVAL.
26164
d5be1dd4
RS
261652008-02-01 Roger Sayle <roger@eyesopen.com>
26166
26167 PR bootstrap/33781
26168 * configure.ac (--enable-fixed-point): Disable unless explicitly
26169 requested on IRIX.
26170 * configure: Regenerate.
26171
7c9c2f2a
RG
261722008-02-01 Richard Guenther <rguenther@suse.de>
26173
26174 PR other/35042
26175 * invoke.texi (-finline-limit): Remove no longer true parts
26176 of the documentation. Note that there is no default value.
26177
a18c20ec
AP
261782008-02-01 Andrew Pinski <pinskia@gmail.com>
26179 Mark Mitchell <mark@codesourcery.com>
26180 Ben Elliston <bje@au.ibm.com>
26181
26182 PR c/29326
26183 * doc/extend.texi (Other Builtins): Document.
26184
dc9a511d
TB
261852008-01-31 Tom Browder <tom.browder@gmail.com>
26186
26187 * doc/c-tree.texi (Types): Fix grammar.
26188 (Expression trees): Ditto.
26189 * doc/passes.texi (Tree-SSA passes): Ditto.
22129589 26190
dc9a511d
TB
26191 * doc/configterms.texi (Configure Terms): Fix typo.
26192 * doc/cpp.texi (Common Predefined Macros): Ditto.
26193 * doc/md.texi (Machine Constraints): Ditto.
22129589 26194
dc9a511d
TB
26195 * doc/makefile.texi (Makefile): Add comma.
26196
5dc81ee9
TB
261972008-01-31 Tom Browder <tom.browder@gmail.com>
26198 Gerald Pfeifer <gerald@pfeifer.com>
22129589 26199
5dc81ee9
TB
26200 * doc/sourcebuild.texi (Front End): Remove references to CVS
26201 and CVSROOT/modules.
26202 (Texinfo Manuals): Replace reference to CVS by one to SVN.
26203 (Back End): Remove reference to CVS.
26204
5ca3d30c
RS
262052008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
26206
26207 PR target/34900
26208 * config/mips/mips.c (gen_load_const_gp): New function, taking a
26209 comment from...
26210 (mips16_gp_pseudo_reg): ...here.
26211 * config/mips/mips.md (load_const_gp): Replace with...
26212 (load_const_gp_<mode>): ...this :P-based insn.
26213
89fe7f1b
MLI
262142008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26215
26216 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
26217 options. Minor fixes.
26218 (-std): Move reference to standards closer to where language
26219 standards are first mentioned.
22129589 26220
1f7f6676
RS
262212008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
26222
26223 PR rtl-optimization/34995
26224 * reload.c (alternative_allows_const_pool_ref): Take an rtx
26225 parameter and return a bool. If the rtx parameter is nonnull,
26226 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
26227 (find_reloads): Update call accordingly. Pass the new operand
26228 if it needed no address reloads, otherwise pass null.
26229
2ae7b972
RH
262302008-01-30 Richard Henderson <rth@redhat.com>
26231
26232 PR c/34993
26233 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
26234 for unbounded arrays.
26235
493f36a7
SR
262362008-01-30 Silvius Rus <rus@google.com>
26237
26238 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
26239
d6951cae
JH
262402008-01-30 Jan Hubicka <jh@suse.cz>
26241
26242 PR target/34982
26243 * i386.c (init_cumulative_args): Use real function declaration when
26244 calling locally.
26245
f36a5a88
RS
262462008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
26247
26248 PR rtl-optimization/34998
26249 * global.c (build_insn_chain): Treat non-subreg_lowpart
26250 SUBREGs of pseudos as clobbering all the words covered by the
26251 SUBREG, not just all the bytes.
26252 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
26253 original df_ref rather than an extract parameter.
26254 (global_conflicts): Update call accordingly.
26255
393c0058
AK
262562008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
26257
26258 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
26259 the overflow check to make it easier to read.
26260 (__fixtfdi): Change the type of the ll member in union
26261 long_double to UDItype_x.
26262
1033ffa8
JJ
262632008-01-30 Jakub Jelinek <jakub@redhat.com>
26264
2bafad93
JJ
26265 PR middle-end/34969
26266 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
26267 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
26268 * tree-inline.c (fold_marked_statements): Call
26269 cgraph_update_edges_for_call_stmt if folding a call statement.
26270 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
26271 debug_generic_stmt calls, reset it back afterwards.
26272
1033ffa8
JJ
26273 PR c/35017
26274 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
26275 static decls.
26276 * c-typeck.c (build_external_ref): Don't pedwarn about
26277 static vars in current function's scope.
26278
ed32d842
JM
262792008-01-29 Joseph Myers <joseph@codesourcery.com>
26280
26281 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
26282
ea429753
BF
262832008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
26284
26285 PR c/35002
26286 * ipa-struct-reorg.c: Fix spelling.
26287 * params.def: Ditto.
26288
4f5c64b8
RG
262892008-01-29 Richard Guenther <rguenther@suse.de>
26290
26291 PR middle-end/35006
26292 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
26293 field.
26294 * tree-inline.c (remap_type): Increment remapping_type_depth
26295 around remapping types.
26296 (copy_body_r): Only add referenced variables if they are referenced
26297 from code, not types.
26298
7b3e2d46
DG
262992008-01-29 Douglas Gregor <doug.gregor@gmail.com>
26300
26301 PR c++/34055
26302 PR c++/34103
26303 PR c++/34219
26304 PR c++/34606
26305 PR c++/34753
26306 PR c++/34754
26307 PR c++/34755
26308 PR c++/34919
26309 PR c++/34961
26310 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
26311 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
26312
12720317
AH
263132008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
26314
26315 PR target/34412
22129589 26316 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
12720317
AH
26317 pointer for tiny stack.
26318
b814cc0a
BF
263192008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
26320
26321 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
26322
f46ff798
BF
263232008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
26324
26325 * config/vx-common.h: Fix typo in comment.
26326
e8b0eabc
ILT
263272008-01-28 Ian Lance Taylor <iant@google.com>
26328
26329 PR c++/34862
26330 PR c++/33407
26331 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
26332 coalesce pointers if they have different DECL_NO_TBAA_P values.
26333 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
26334 between variables with different DECL_NO_TBAA_P values.
26335
2aa42e6e
NF
263362008-01-28 Nathan Froyd <froydnj@codesourcery.com>
26337
26338 PR 31535
26339 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
26340 are not legitimate small data references on SPE targets.
26341
4e2e9e9b
DD
263422008-01-28 David Daney <ddaney@avtrex.com>
26343
26344 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
26345
a26c7632
DD
263462008-01-28 David Daney <ddaney@avtrex.com>
26347
26348 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
26349
4f605349
JM
263502008-01-27 Joseph Myers <joseph@codesourcery.com>
26351
26352 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
26353 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
26354 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
26355 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
26356 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
26357 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
26358 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
26359 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
26360
9e148d6a
BF
263612008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
26362
26363 * basic-block.h (condjump_equiv_p): Fix comment.
26364
f749d3c6
BF
263652008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
26366
26367 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
26368 print_generic_stmt_indented): Fix comment.
26369
fed6d628
BF
263702008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
26371
26372 * configure.ac (__stack_chk_fail): Add detecion for availability
26373 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
26374 * configure: Regenerate.
26375
c01e4479
MK
263762008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
26377
26378 PR middle-end/34688
26379 * final.c (output_addr_const): Handle TRUNCATE.
26380
6e8c65f6
ZD
263812008-01-26 Zdenek Dvorak <ook@ucw.cz>
26382
26383 PR target/34711
26384 * tree-ssa-loop-ivopts.c (comp_cost): New type.
26385 (zero_cost, infinite_cost): New constants.
26386 (struct cost_pair): Change type of cost to comp_cost.
26387 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
26388 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
26389 New functions.
26390 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
26391 split_address_cost, ptr_difference_cost, difference_cost,
26392 get_computation_cost_at, get_computation_cost,
26393 determine_use_iv_cost_generic, determine_use_iv_cost_address,
26394 determine_use_iv_cost_condition, determine_use_iv_costs,
26395 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
26396 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
26397 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
26398 Change type of cost to comp_cost.
26399 (determine_iv_cost): Increase cost of non-original ivs, instead
26400 of decreasing the cost of original ones.
22129589 26401 (get_address_cost): Indicate the complexity of the addressing mode
6e8c65f6
ZD
26402 in comp_cost.
26403 (try_add_cand_for): Prefer using ivs not specific to some object.
26404 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
26405
c01e4479 264062008-01-26 Peter Bergner <bergner@vnet.ibm.com>
e41b2a33
PB
26407 Janis Johnson <janis187@us.ibm.com>
26408
26409 PR target/34814
26410 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
26411 (TARGET_INSTANTIATE_DECLS): Likewise.
26412 * target.h (expand_to_rtl_hook): New target hook.
26413 (instantiate_decls): Likewise.
26414 * function.c (instantiate_decl): Make non-static. Rename to...
26415 (instantiate_decl_rtl): ... this.
26416 (instantiate_expr): Use instantiate_decl_rtl.
26417 (instantiate_decls_1): Likewise.
26418 (instantiate_decls): Likewise.
26419 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
26420 * function.h (instantiate_decl_rtl): Add prototype.
26421 * cfgexpand.c (target.h): New include.
26422 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
26423 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
26424 (TARGET_INSTANTIATE_DECLS): Likewise.
26425 (TARGET_INITIALIZER): New target hooks added.
26426 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
26427 New prototype.
26428 * config/rs6000/rs6000.c (tree-flow.h): New include.
26429 (machine_function): Add sdmode_stack_slot field.
26430 (rs6000_alloc_sdmode_stack_slot): New function.
26431 (rs6000_instantiate_decls): Likewise.
26432 (rs6000_secondary_memory_needed_rtx): Likewise.
26433 (rs6000_check_sdmode): Likewise.
26434 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
26435 (TARGET_INSTANTIATE_DECLS): Likewise.
26436 (rs6000_hard_regno_mode_ok): Allow SDmode.
26437 (num_insns_constant): Likewise. Handle _Decimal32 constants.
26438 (rs6000_emit_move): Handle SDmode.
26439 (function_arg_advance): Likewise.
26440 (function_arg): Likewise.
26441 (rs6000_gimplify_va_arg): Likewise. Add special handling of
26442 SDmode var args for 32-bit compiles.
26443 (rs6000_secondary_reload_class): Handle SDmode.
26444 (rs6000_output_function_epilogue): Likewise.
26445 (rs6000_function_value): Simplify if statement.
26446 (rs6000_libcall_value): Likewise.
26447 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
26448 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
26449 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
26450 (movsd_hardfloat): New define_insn.
26451 (movsd_softfloat): Likewise.
26452 (movsd_store): Likewise.
26453 (movsd_load): Likewise.
26454 (extendsddd2): Likewise.
26455 (extendsdtd2): Likewise.
26456 (truncddsd2): Likewise.
26457 (movdd_hardfloat64): Fixup comment.
26458 (UNSPEC_MOVSD_LOAD): New constant.
26459 (UNSPEC_MOVSD_STORE): Likewise.
26460
6f536f74
JJ
264612008-01-26 Jakub Jelinek <jakub@redhat.com>
26462
26463 PR c++/34965
26464 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
26465 TRUTH_XOR_EXPR.
26466 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
26467 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
26468 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
26469 and TRUTH_XOR_EXPR.
26470
ba6a1b78
DE
264712008-01-26 David Edelsohn <edelsohn@gnu.org>
26472
26473 PR target/34794
26474 * config.gcc: Separate AIX 5.3 from AIX 6.1.
26475 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
26476 __LONGDOUBLE128 too.
26477 * config/rs6000/aix61.h: New file.
26478
1230d7f8
RS
264792008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
26480
26481 PR rtl-optimization/34959
26482 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
26483 popcount and parity rtxes the same mode as their operand.
26484 Truncate or extend the result to the return value's mode
26485 if necessary.
26486
dbc90b65
RS
264872008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
26488
26489 PR target/34981
26490 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
26491 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
26492 to GOT_VERSION_REGNUM.
26493 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
26494 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
26495 * config/mips/mips.c (mips_emit_call_insn): New function.
26496 (mips_call_tls_get_addr): Call mips_expand_call directly.
26497 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
26498 emit_call_insn.
26499 (mips16_build_call_stub): Likewise. Return the call insn or null.
26500 (mips_expand_call): Update the call to mips16_build_call_stub
26501 accordingly and a remove redundant condition. Assert that MIPS16
26502 stubs do not use lazy binding. Use mips_emit_call_insn and return
26503 the call insn.
26504 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
26505 TARGET_USE_GOT.
26506 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
26507 (mips_avoid_hazard): Remove hazard_set handling.
26508 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
26509 (UNSPEC_RESTORE_GP): ...this.
26510 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
26511 (FAKE_CALL_REGNO): Rename to...
26512 (GOT_VERSION_REGNUM): ...this.
26513 (type): Add "ghost" value. Add an associated insn reservation.
26514 (hazard_set): Remove.
26515 (exception_receiver): Rename to...
26516 (restore_gp): ...this and update the unspec identifier accordingly.
26517 (exception_receiver, nonlocal_got_receiver): New expanders.
26518 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
26519 FAKE_CALL_REGNO. Remove hazard_set attribute.
26520 (set_got_version, update_got_version): New patterns.
26521
763a27ee
DS
265222008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
26523
26524 PR target/34970
26525 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
26526
3725c0ca
JM
265272008-01-25 Joseph Myers <joseph@codesourcery.com>
26528
26529 PR other/31955
26530 * doc/install.texi2html: Generate gcc-vers.texi.
26531
0288980f
DD
265322008-01-25 DJ Delorie <dj@redhat.com>
26533
26534 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
26535
8d8da227
JM
265362008-01-25 Joseph Myers <joseph@codesourcery.com>
26537
26538 * config/c4x: Remove directory.
26539 * config.gcc (crx-*, mt-*): Mark obsolete.
26540 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
26541 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
26542 sh-*-rtemscoff*): Remove cases.
26543 * defaults.h (C4X_FLOAT_FORMAT): Remove.
26544 * real.c (encode_c4x_single, decode_c4x_single,
26545 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
26546 c4x_extended_format): Remove.
26547 * real.h (c4x_single_format, c4x_extended_format): Remove.
26548 * doc/extend.texi (interrupt, naked): Remove mention of attributes
26549 on C4x.
26550 (Pragmas): Remove comment about c4x pragmas.
26551 * doc/install.texi (c4x): Remove target-specific instructions.
26552 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
26553 * doc/md.texi (Machine Constraints): Remove C4x documentation.
26554 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
26555 refer to C4x source files as examples.
26556 (C4X_FLOAT_FORMAT): Remove documentation.
26557
fb7c3b05
BS
265582008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
26559
26560 * config/bfin/bfin.c (override_options): Reorder tests so that
26561 flag_pic gets enabled for -msep-data.
26562
dd3b33d7
RG
265632008-01-25 Richard Guenther <rguenther@suse.de>
26564
26565 PR middle-end/32244
26566 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
26567 to its bitfield precision if required.
26568
c256730c
JJ
265692008-01-25 Jakub Jelinek <jakub@redhat.com>
26570
26571 PR middle-end/33880
26572 * tree-nested.c (walk_omp_for): New function.
26573 (convert_nonlocal_reference, convert_local_reference): Call
26574 walk_omp_for on OMP_FOR.
26575 (convert_call_expr): Call walk_body on OMP_FOR's
26576 OMP_FOR_PRE_INIT_BODY.
26577
59805c3b
RG
265782008-01-25 Richard Guenther <rguenther@suse.de>
26579
26580 PR tree-optimization/34966
26581 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
26582 default defs and PHI_NODEs we have to insert after the
26583 defining statement.
26584
f84fe9b6
NC
265852008-01-24 Nick Clifton <nickc@redhat.com>
26586
26587 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
26588 Provide a default definition.
26589 (LIBGCC2_UNITS_PER_WORD): Likewise.
26590
26591 * config/stormy16/stormy16.c: Include df.h for the prototype
26592 for df_regs_ever_live_p.
26593 (xstormy16_expand_builtin_va_start): Convert the stack offset
26594 into a component_ref and then use POINTER_PLUS_EXPR to add it
26595 to the incoming_virtual_args_rtx.
26596 (xstormy16_gimplify_va_arg_expr): Rename to
26597 xstormy16_gimplify_va_arg_expr.
26598 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
26599 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
26600 xstormy16_gimplify_va_arg_expr.
26601 Fix up some formatting issues.
26602
26603 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
26604 Move to predicates.md.
26605 (xs_hi_general_operand): Likewise.
26606 (xs_hi_nonmemory_operand): Likewise.
26607 * config/stormy16/predicates.md:
26608 (xstormy16_carry_plus_operand): New predicate.
26609 (xs_hi_general_operand): New predicate.
26610 (xs_hi_nonmemory_operand): New predicate.
26611 * config/stormy16/stormy16-protos.h:
26612 (xstormy16_carry_plus_operand): Delete prototype.
26613 (xs_hi_general_operand): Likewise.
26614 (xs_hi_nonmemory_operand): Likewise.
26615
26616 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
26617 modifiers as they are no longer needed and they can trigger
26618 reload spill failures.
26619
26620 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
26621 with a match_operand in order to help reload.
26622
26623 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
26624 constraint with 'e' for the 8th alternative as this version of
26625 the mov.w instruction only accepts the lower 8 registers.
26626
d1f0728e
UB
266272008-01-25 Uros Bizjak <ubizjak@gmail.com>
26628
26629 PR target/34856
26630 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
26631 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
26632 vector elements.
26633
80e67011
JJ
266342008-01-25 Jakub Jelinek <jakub@redhat.com>
26635
26636 PR middle-end/33333
26637 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
26638
1525f2c3
GO
266392008-01-25 Golovanevsky Olga <olga@il.ibm.com>
26640
26641 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
26642 New functions.
26643 (remove_structure): Update allocations list before removing structure.
22129589 26644
bd91d743
OG
266452008-01-25 Golovanevsky Olga <olga@il.ibm.com>
26646
22129589 26647 * ipa-struct-reorg.c (is_safe_cond_expr,
bd91d743
OG
26648 create_new_stmts_for_cond_expr): Use integer_zerop function,
26649 that recognize not only zero-pointer, but zero-integer too.
26650
ae7a8ebc
BE
266512008-01-25 Ben Elliston <bje@au.ibm.com>
26652
26653 PR other/22232
26654 * fixproto: Escape "." in sed expression that strips leading "./".
26655
3371362c
L
266562008-01-24 H.J. Lu <hongjiu.lu@intel.com>
26657
26658 PR driver/34904
26659 * gcc.c (SWITCH_OK): Removed.
26660 (SWITCH_LIVE): Changed to bit.
26661 (SWITCH_FALSE): Likewise.
26662 (SWITCH_IGNORE): Likewise.
26663 (switchstr): Change live_cond to unsigned int.
26664 (process_command): Replace SWITCH_OK with 0.
26665 (do_self_spec): Likewise.
26666 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
26667 (give_switch): Likewise.
26668 (used_arg): Likewise.
26669 (do_spec_1): Set the SWITCH_IGNORE bit.
26670 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
26671 bits. Set the SWITCH_LIVE bit.
26672
5f1b2ee6
AK
266732008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
26674
26675 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
26676
986d97ed
RS
266772008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
26678
26679 PR tree-optimization/34472
26680 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
26681 parameter to a "bool *" and set *DATA to false if there is
26682 an unsafe access. Do not delete the structure here.
26683 (check_cond_exprs): Delete it here instead.
26684 (check_cond_exprs, exclude_cold_structs): Do not increase
26685 I when removing a structure.
26686
fcc44808
UB
266872008-01-24 Uros Bizjak <ubizjak@gmail.com>
26688
26689 PR target/34856
26690 * config/i386/i386.c (ix86_expand_vector_init): Consider only
26691 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
26692
134c2de3
JJ
266932008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
26694
26695 PR middle-end/34934
26696 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
26697 a fixed vector for stack.
26698
89bf8683
BE
266992008-01-24 Ben Elliston <bje@au.ibm.com>
26700
26701 PR c++/25701
26702 * doc/gcc.texi (Software development): Add a direntry for g++.
22129589 26703
02a4bca9
HPN
267042008-01-23 Hans-Peter Nilsson <hp@axis.com>
26705
6c660aeb
HPN
26706 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
26707 stale and straggling -fforce-addr comments above.
26708
02a4bca9
HPN
26709 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
26710 define.
26711 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
26712 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
26713
b4da9f9d
MM
267142008-01-23 Michael Matz <matz@suse.de>
26715
26716 PR debug/34895
26717 * dwarf2out.c (force_type_die): Use modified_type_die instead of
26718 gen_type_die.
26719
1b7af7b0
AK
267202008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
26721
26722 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
26723 malloc result type.
26724
19298da4
AS
267252008-01-23 Anatoly Sokolov <aesok@post.ru>
26726
26727 * config/avr/avr.c (avr_current_arch): New variable.
26728 (avr_arch_types): Add 'avr31' and 'avr51' entries.
26729 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
26730 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
22129589 26731 (avr_override_options): Init 'avr_current_arch'.
19298da4 26732 (base_arch_s): Move from here...
22129589
AS
26733 * config/avr/avr.h (base_arch_s): ... here. Add new members
26734 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
19298da4 26735 'mega' to 'have_jmp_call'.
22129589 26736 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
5617c135 26737 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
19298da4 26738 macros.
22129589 26739 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
19298da4 26740 architectures.
22129589 26741 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5617c135 26742 MULTILIB_MATCHES): Ditto.
19298da4 26743
b86b3ea3
RG
267442008-01-23 Richard Guenther <rguenther@suse.de>
26745
26746 PR middle-end/31529
26747 * cgraphunit.c (cgraph_reset_node): Always mark the node
26748 not reachable if it is not queued already.
26749
fa8d4a0f
BS
267502008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
26751
26752 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
26753 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
26754 (cputype_selected): New static variable.
26755 (bfin_handle_option): Set it if -mcpu is used.
26756 (override_option): Select default set of workarounds if no cpu type
26757 selected on the command line.
26758 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
64882649
BS
26759
26760 From Michael Frysinger <michael.frysinger@analog.com>
26761 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
26762 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
26763
26764 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
26765 for bf547, bf523, bf524, and bf526.
26766 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
26767 bf526.
26768 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
26769 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
26770 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
26771 __ADSPBF547__ and __ADSPBF54x__ for bf547.
26772 * doc/invoke.texi (Blackfin Options): Document that
26773 -mcpu now accept bf547, bf523, bf524, and bf526.
26774
df1a98ae
EB
267752008-01-22 Eric Botcazou <ebotcazou@adacore.com>
26776
26777 PR rtl-optimization/34628
26778 * combine.c (try_combine): Stop and undo after the first combination
26779 if an autoincrement side-effect on the first insn has effectively
26780 been lost.
26781
1a23970d
DE
267822008-01-22 David Edelsohn <edelsohn@gnu.org>
26783
26784 PR target/34529
26785 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
26786 Offset addresses are not valid for Altivec or paired float modes.
26787
42a89d2d
JJ
267882008-01-22 Jakub Jelinek <jakub@redhat.com>
26789
61c3a446
JJ
26790 PR c++/34607
26791 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
26792 if DECL_INITIAL (decl) is error_mark_node.
26793
270e749d
JJ
26794 PR c++/34914
26795 * c-common.c (handle_vector_size_attribute): Only allow
26796 integral, scalar float and fixed point types. Handle OFFSET_TYPE
26797 the same way as pointer, array etc. types.
26798 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
26799
42a89d2d
JJ
26800 PR c++/34917
26801 * tree.c (build_type_attribute_qual_variant): Call
26802 build_qualified_type if attributes are equal, but quals are not.
26803
027b740e
MLI
268042008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26805
26806 PR 32102
26807 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
26808 * flags.h (warn_strict_aliasing): Remove.
26809 (warn_strict_overflow): Remove.
26810 * opts.c (warn_strict_aliasing): Remove.
26811 (warn_strict_overflow): Remove.
26812 * c-opts.c (c_common_handle_option): -Wall only sets
26813 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
26814 (c_common_post_options): Give default values to -Wstrict-aliasing
26815 and -Wstrict-overflow if they are uninitialized.
26816 * common.opt (Wstrict-aliasing): Specify Var and Init.
26817 (Wstrict-overflow): Likewise.
26818
4218dc2d 268192008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
963acd6f
KZ
26820
26821 PR rtl-optimization/26854
26822 PR rtl-optimization/34400
26823 PR rtl-optimization/34884
26824 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
26825 DF_RD->gen.
26826 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
26827 (df_rd_bb_info.expanded_lr_out): Deleted
26828 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
26829 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
26830 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
26831 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
26832 Removed code to allocate, initialize or free expanded_lr_out.
26833 (df_rd_bb_local_compute_process_def): Restructured to make more
26834 understandable.
26835 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
26836 sets if the sets are being trimmed.
26837
115e6e55
L
268382008-01-22 H.J. Lu <hongjiu.lu@intel.com>
26839
26840 PR bootstrap/32287
26841 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
26842 (as_vers): Likewise.
26843 * configure: Regenerated.
26844
f9d02384
MLI
268452008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
26846
26847 PR middle-end/33092
26848 * tree-pass.h (pass_build_alias): New pass.
26849 * tree-ssa-alias.c (gate_build_alias): New.
26850 (pass_build_alias): New.
26851 * passes.c (init_optimization_passes): Add pass_build_alias after
26852 pass_create_structure_vars.
26853
0387c142
WG
268542008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
26855
26856 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
26857 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
26858 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
26859 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
26860 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
26861 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
26862 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
26863 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
26864 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
26865 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
26866 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
26867 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
26868 * config/s390/s390.md (FP_ALL): New mode iterator.
26869 (_d): New mode attribute.
26870 ("*signbit<mode>2>"): Changed mode of first operand.
26871 ("isinf<mode>2"): Changed mode of first operand.
26872 ("*TDC_insn"): Adaptation for DFP modes.
26873
1d4f5374
BE
268742008-01-22 Ben Elliston <bje@au.ibm.com>
26875
26876 * tree.c (check_qualified_type): Improve function description.
26877
33b45227
JM
268782008-01-21 Jason Merrill <jason@redhat.com>
26879
26880 PR c++/34196
26881 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
26882 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
26883 if it is set.
26884
79e168da
DD
268852008-01-21 DJ Delorie <dj@redhat.com>
26886
26887 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
26888 return zero.
26889
bb0c55f6
RG
268902008-01-21 Richard Guenther <rguenther@suse.de>
26891
26892 PR middle-end/34856
26893 * tree-cfg.c (verify_expr): Allow all invariant expressions
26894 instead of just constant class ones as reference argument.
26895 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
26896 like any other constant.
26897 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
26898
94c54fea
L
268992008-01-21 H.J. Lu <hongjiu.lu@intel.com>
26900
26901 * regmove.c (fixup_match_1): Update call crossed frequencies.
26902
c54e3854
RG
269032008-01-21 Richard Guenther <rguenther@suse.de>
26904
26905 PR c/34885
26906 * tree-inline.c (setup_one_parameter): Deal with mismatched
26907 types using a VIEW_CONVERT_EXPR.
26908
b158b5c6
AD
269092008-01-21 Alon Dayan <alond@il.ibm.com>
26910 Olga Golovanevsky <olga@il.ibm.com>
22129589 26911
b158b5c6
AD
26912 PR tree-optimization/34701
26913 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
26914 when the structure size is not a power of 2.
26915
4218dc2d 269162008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
604f825c
KZ
26917
26918 * doc/install.texi: Add doc for --enable-checking=df.
22129589 26919
539c54ba
KK
269202008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
26921
26922 PR rtl-optimization/34808
26923 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
26924
ecff8c1c
RS
269252008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
26926
26927 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
26928 input.
26929
4218dc2d 269302008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2b49e1a0
KZ
26931
26932 PR rtl-optimization/26854
26933 PR rtl-optimization/34400
26934 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
26935 DF_RD->gen.
26936 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
26937 (df_rd_bb_info.expanded_lr_out): New.
26938 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
26939 * loop_iv.c (iv_analysis_loop_init): Ditto.
26940 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
26941 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
26942 Added code to allocate, initialize or free expanded_lr_out.
26943 (df_rd_bb_local_compute_process_def): Restructured to make
26944 more understandable.
26945 (df_rd_confluence_n): Add code to do nothing with fake edges and
26946 code to no apply invalidate_by_call sets if the sets are being trimmed.
26947 (df_lr_local_finalize): Renamed to df_lr_finalize.
26948 (df_live_local_finalize): Renamed to df_live_finalize.
26949
0decaff6
RS
269502008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
26951
26952 PR target/34831
26953 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
26954 deciding whether to use reciprocal instructions.
26955
d0b9dbd5
UB
269562008-01-19 Uros Bizjak <ubizjak@gmail.com>
26957
26958 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
26959 dwarf2out_note_section_used if cold_text_section is NULL.
26960
135a171d
JJ
269612008-01-19 Jakub Jelinek <jakub@redhat.com>
26962
26963 PR gcov-profile/34610
26964 * tree-cfg.c (make_edges): Mark both outgoing edges from
26965 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
26966 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
26967 from OMP_FOR and OMP_CONTINUE outgoing edges.
26968
26969 * tree-profile.c (tree_profiling): Return early if
26970 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
26971 at the end.
26972 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
26973 from cfun to child_cfun.
26974 * function.h (struct function): Add after_tree_profile bit.
26975
0a84fec6
AS
269762008-01-19 Anatoly Sokolov <aesok@post.ru>
26977
26978 * config/avr/avr.S (_exit): Disable interrupt.
26979
5aa52064
KZ
269802008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
26981 Steven Bosscher <stevenb.gcc@gmail.com>
26982
26983 PR rtl-optimization/26854
26984 PR rtl-optimization/34400
26985 * df-problems.c (df_live_scratch): New scratch bitmap.
26986 (df_live_alloc): Allocate df_live_scratch when doing df_live.
26987 (df_live_reset): Clear the proper bitmaps.
26988 (df_live_bb_local_compute): Only process the artificial defs once
26989 since the order is not important.
26990 (df_live_init): Init the df_live sets only with the variables
26991 found live by df_lr.
26992 (df_live_transfer_function): Use the df_lr sets to prune the
22129589 26993 df_live sets as they are being computed.
5aa52064
KZ
26994 (df_live_free): Free df_live_scratch.
26995
28a08168
ILT
269962008-01-18 Ian Lance Taylor <iant@google.com>
26997
26998 * common.opt: Add fmerge-debug-strings.
26999 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
27000 flag_merge_debug_strings rather than flag_merge_constants.
27001 * doc/invoke.texi (Option Summary): Mention
27002 -fmerge-debug-strings.
27003 (Debugging Options): Document -fmerge-debug-strings.
27004
1ea193c2
ILT
270052008-01-18 Ian Lance Taylor <iant@google.com>
27006
27007 PR c++/33407
27008 * tree.h (DECL_IS_OPERATOR_NEW): Define.
27009 (struct tree_function_decl): Add new field operator_new_flag.
27010 * tree-inline.c (expand_call_inline): When inlining a call to
27011 operator new, force the return value to go into a variable, and
27012 set DECL_NO_TBAA_P on that variable.
27013 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
27014
74ab34d3
UB
270152008-01-18 Uros Bizjak <ubizjak@gmail.com>
27016
27017 PR debug/34484
27018 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
27019 DWARF2_DEBUGGING_INFO.
27020 (dwarf2out_note_section_used): Ditto. Add prototype.
27021 (have_multiple_function_sections, text_section_used,
27022 cold_text_section_used, *cold_text_sections): Move declarations
27023 before their uses.
27024
9a75e92d 270252008-01-17 Bob Wilson <bob.wilson@acm.org>
6c633d45
BW
27026
27027 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
27028 field and add signal_ra.
27029 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
27030 assignments to frame state pc. Move end of stack check after
27031 MD_FALLBACK_FRAME_STATE_FOR.
27032 (uw_update_context_1): Use frame state signal_regs if set, instead
27033 of checking signal_frame flag.
27034 (uw_update_context): Use frame state signal_ra if set.
27035 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
27036 * config/xtensa/linux-unwind.h: New file.
27037
9a75e92d 270382008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
4117d6f7
BF
27039
27040 * modulo-sched.c (get_sched_window): Fix comment typo.
27041
fae25b37
AM
270422008-01-17 Andrew MacLeod <amacleod@redhat.com>
27043
27044 PR tree-optimization/34648
27045 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
27046
2e152e16
AS
270472008-01-17 Anatoly Sokolov <aesok@post.ru>
27048
27049 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
27050 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
27051
185082a7
SP
270522008-01-17 Seongbae Park <seongbae.park@gmail.com>
27053
27054 PR rtl-optimization/34400
27055 * df-core.c (df_worklist_dataflow_overeager,
27056 df_worklist_dataflow_doublequeue): New functions.
27057 (df_worklist_dataflow): Two different worklist solvers.
27058 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
27059 New param.
27060
01a550c2
SP
270612008-01-16 Sebastian Pop <sebastian.pop@amd.com>
27062
27063 PR testsuite/34821
27064 * doc/invoke.texi: Document the dependence on pthread for fopenmp
27065 and ftree-parallelize-loops.
27066
80663107
MN
270672008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
27068
27069 PR rtl-optimization/34826
27070 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
27071
599824d2
AK
270722008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
27073
27074 * global.c (find_reg): Mark the eh regs as used if necessary.
27075 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
27076 * ra.h (struct allocno): no_eh_reg field added. Changed
27077 no_stack_reg type to bitfield.
27078
9328dd57
EB
270792008-01-17 Eric Botcazou <ebotcazou@adacore.com>
27080
27081 * tree.c (substitute_in_expr): Add missing 'break'.
27082
8a5b57cd
RG
270832008-01-17 Richard Guenther <rguenther@suse.de>
27084
27085 PR tree-optimization/34825
27086 * tree-ssa-math-opts.c (is_division_by): Do not recognize
27087 x / x as division to handle.
27088
e7ce29e7
JDA
270892008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27090
27091 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
27092 "-pthread" is specified.
27093 * pa-hpux11.h (LIB_SPEC): Likewise.
27094
9a75e92d 270952008-01-16 Janis Johnson <janis187@us.ibm.com>
37b87a3a
JJ
27096 Peter Bergner <bergner@vnet.ibm.com>
27097
27098 PR rtl-optimization/33796
27099 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
27100
6595ec51
JDA
271012008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27102
27103 PR libgfortran/34699
27104 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
27105 static links.
27106 * pa-hpux10.h (LINK_SPEC): Likewise.
27107 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
27108
bdb55eae
RG
271092008-01-16 Richard Guenther <rguenther@suse.de>
27110
27111 PR middle-end/32628
27112 * fold-const.c (fold_convert_const_int_from_int): Do not
27113 set overflow if that occured only because of a sign extension
27114 change when converting from/to a sizetype with the same
27115 precision and signedness.
27116
2e2c7ce2
UB
271172008-01-16 Uros Bizjak <ubizjak@gmail.com>
27118
27119 PR debug/34249
27120 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
27121 location address to the correct place. Update copyright year.
27122
d49c149d
SP
271232008-01-16 Sebastian Pop <sebastian.pop@amd.com>
27124
27125 * lambda-code.c (lambda_transform_legal_p): Handle the case of
27126 no dependences in the dependence_relations vector.
27127
a03c6d64
JH
271282008-01-16 Jan Hubicka <jh@suse.cz>
27129
27130 PR rtl-optimization/31396
27131 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
27132 * cfg.c (dump_reg_info): Print it.
27133 * regs.h (struct reg_info_t): add freq_calls_crossed.
27134 (REG_FREQ_CALLS_CROSSED): New macro.
27135 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
27136 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
27137 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
27138 regmove_optimize): Update call crossed frequencies.
27139 * local-alloc.c (struct qty): Add freq_calls_crossed.
27140 (alloc_qty): Copute freq_calls_crossed.
27141 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
27142 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
27143 * ra.h (struct allocno): Add freq_calls_crossed.
27144
daf49354
SP
271452008-01-16 Sebastian Pop <sebastian.pop@amd.com>
27146
27147 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
27148 libgomp when compiling with ftree-parallelize-loops.
27149 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
27150
a1a5996d
RG
271512008-01-16 Richard Guenther <rguenther@suse.de>
27152
27153 PR tree-optimization/34769
27154 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
27155 * tree.c (int_cst_value): Instead make this function more
27156 permissive in what it accepts as valid input. Document this
27157 function always sign-extends the value.
27158
de4af523 271592008-01-16 Jakub Jelinek <jakub@redhat.com>
d0b9dbd5 27160 Richard Guenther <rguenther@suse.de>
de4af523
JJ
27161
27162 PR c/34668
27163 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
27164 (gimple_fold_indirect_ref_rhs): ... this.
27165 (gimple_fold_indirect_ref): New function with foldings
27166 that preserve lvalueness.
27167 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
27168 * tree-flow.h (gimple_fold_indirect_ref): Declare.
27169 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
27170 to fold an INDIRECT_REF, fall back to the old use of
27171 fold_indirect_ref_1.
27172
6935bae7
SP
271732008-01-16 Sebastian Pop <sebastian.pop@amd.com>
27174
22129589 27175 * tree-data-ref.c (subscript_dependence_tester_1): Call
6935bae7
SP
27176 free_conflict_function.
27177 (compute_self_dependence): Same.
27178
a4b6974e
UB
271792008-01-16 Uros Bizjak <ubizjak@gmail.com>
27180
27181 PR debug/34249
27182 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
27183 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
27184 function global.
27185 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
27186 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
27187 for DWARF2_UNWIND_INFO targets.
27188
eb1387a0
RG
271892008-01-16 Richard Guenther <rguenther@suse.de>
27190
27191 PR c/34768
27192 * c-typeck.c (common_pointer_type): Do not merge inconsistent
27193 type qualifiers for function types.
27194
9326236d
JD
271952008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
27196
27197 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
27198 loop_iterator li from previous commit.
27199
272002008-01-15 Sebastian Pop <sebastian.pop@amd.com>
92a6bdbd
SP
27201
27202 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
27203
1d4af1e8
SP
272042008-01-12 Sebastian Pop <sebastian.pop@amd.com>
27205
27206 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
27207 (parallelize_loops): Don't parallelize irreducible components.
27208
8103eebf
MLI
272092008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
27210
27211 PR c++/24924
27212 * c-opts (c_common_post_options): Do not enable CPP
27213 flag_pedantic_errors by default.
22129589 27214
d556d181
EB
272152008-01-14 Eric Botcazou <ebotcazou@adacore.com>
27216
27217 PR rtl-optimization/31944
27218 * cse.c (remove_pseudo_from_table): New function.
27219 (merge_equiv_classes): Use above function to remove pseudo-registers.
27220 (invalidate): Likewise.
27221
726612d2
RG
272222008-01-13 Richard Guenther <rguenther@suse.de>
27223
27224 PR middle-end/34601
27225 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
27226 instead of TYPE_MODE to deal with calls from expand_one_error_var.
27227
51134e52
UB
272282008-01-13 Uros Bizjak <ubizjak@gmail.com>
27229
27230 * gcse.c (cprop_jump): Call validate_unshare_change instead of
27231 validate_change to unshare the source of the PC set.
27232
3097760b
JH
272332008-01-12 Jan Hubicka <jh@suse.cz>
27234
27235 PR middle-end/32135
27236 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
27237 references above array bounds. This might trigger bounds checks for
27238 pointers to arrays.
27239
42b22da8
SP
272402008-01-12 Sebastian Pop <sebastian.pop@amd.com>
27241
27242 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
27243 new_replaceable_dependencies.
27244
5db2e9ca
DK
272452008-01-12 Doug Kwan <dougkwan@google.com>
27246
27247 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
27248 instead of OPT_Wreturn_type in warning due to ignored return type
27249 qualifiers.
27250 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
27251 options included in -Wextra.
27252 * c.opt: New option -Wignored_qualifiers.
27253 * doc/invoke.texi (Warning Options, -Wextra): Add new option
27254 -Wignore_qualifiers.
27255 (-Wignored-qualifiers): Document.
27256 (-Wreturn-type): Remove description of functionality now handled
27257 by -Wignored-qualifiers.
27258
52ef2874
EB
272592008-01-12 Eric Botcazou <ebotcazou@adacore.com>
27260
27261 PR ada/33788
27262 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
27263 NOP_EXPR if it is between integral types with the same precision.
27264
a60b56a4
JH
272652008-01-12 Jan Hubicka <jh@suse.cz>
27266
27267 PR other/28023
27268 * invoke.texi (max-inline-recursive-depth): Fix default value.
27269
29ac1d9a
ZD
272702008-01-12 Zdenek Dvorak <ook@ucw.cz>
27271
27272 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
27273 correct type.
27274
166b25dc 272752008-01-11 Bob Wilson <bob.wilson@acm.org>
22129589 27276
166b25dc 27277 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
22129589 27278
ad8151b7
JW
272792008-01-11 James E. Wilson <wilson@specifix.com>
27280
27281 PR target/26015
27282 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
27283
0d40cc60
AS
272842008-01-11 Anatoly Sokolov <aesok@post.ru>
27285
22129589
AS
27286 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
27287 save/restore frame pointer register and don't use 'call-prologues'
0d40cc60
AS
27288 optimization in function with "OS_task" attribute.
27289
15af420d
EB
272902008-01-11 Eric Botcazou <ebotcazou@adacore.com>
27291
27292 PR middle-end/31309
27293 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
27294 when copying to memory.
27295
c1e3e2d9
SB
272962008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
27297
27298 PR rtl-optimization/30905
27299 * cfgcleanup.c: Include dce.h
27300 (crossjumps_occured): New global variable.
27301 (try_crossjump_bb): Exit loop after finding a fallthru edge.
27302 If something changed, set crossjumps_occured to true.
27303 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
27304 Don't add/remove fake edges to exit here...
27305 (cleanup_cfg): ...but do it here, when crossjumping.
27306 Run a fast DCE when successful crossjumps occured in the latest
27307 iteration of try_optimize_cfg.
27308
8d0eca24
RG
273092008-01-11 Richard Guenther <rguenther@suse.de>
27310
27311 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
27312 (struct vn_unary_op_s): Likewise.
27313 (vn_reference_insert): Free old reference on hash collision.
27314
acfb3980
RA
273152008-01-10 Raksit Ashok <raksit@google.com>
27316
27317 PR rtl-optimization/27971
31bfe034
RA
27318 * combine.c (find_split_point): Split PLUS expressions which are
27319 inside a MEM rtx, and whose first operand is complex.
acfb3980 27320
b8a669d0
DD
273212008-01-10 DJ Delorie <dj@redhat.com>
27322
27323 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
27324 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
27325 (m32c_hard_regno_ok): Call the underlying function.
27326
d0f76c4b
RG
273272008-01-10 Richard Guenther <rguenther@suse.de>
27328
27329 PR middle-end/34683
27330 * tree-cfg.c (tree_merge_blocks): Do not go through the
27331 full-blown folding and stmt updating path if we just deal
27332 with virtual operands.
27333 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
27334 test for abnormal SSA_NAMEs.
27335
90d12f1f
AK
273362008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
27337
27338 PR middle-end/34641
27339 * reload.c (push_reload): Add assertions. All constants from
27340 reg_equiv_constant should have been used for replacing the respective
27341 pseudo earlier.
27342 (find_reloads_address): Invoke find_reloads_address_part for
27343 constant taken from the reg_equiv_constant array.
27344
71ae8557
SB
273452008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
27346
27347 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
27348 field (valnum) the first in the struct. Replace bools with
27349 unit bit fields.
27350
125e025e
RG
273512008-01-10 Richard Guenther <rguenther@suse.de>
27352
27353 PR tree-optimization/34651
27354 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
27355 types and ordering for masking and converting.
27356
64cbaace
SP
273572008-01-09 Sebastian Pop <sebastian.pop@amd.com>
27358
27359 PR tree-optimization/34017
27360 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
27361 also for PHI_NODE expressions.
27362
88743d3a
JH
273632008-01-09 Jan Hubicka <jh@suse.cz>
27364
27365 PR tree-optimization/34708
27366 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
27367 based on number of case labels.
27368 (init_inline_once): Remove switch_cost.
27369 * tree-inline.h (eni_weights_d): Remove switch_cost.
27370
c3e203cf
RG
273712008-01-09 Richard Guenther <rguenther@suse.de>
27372 Andrew Pinski <andrew_pinski@playstation.sony.com>
27373
27374 PR middle-end/30132
27375 * gimplify.c (gimplify_cond_expr): Do not create an addressable
27376 temporary if an rvalue is ok or an lvalue is not required.
27377
def49dd7
RG
273782008-01-09 Richard Guenther <rguenther@suse.de>
27379
27380 PR middle-end/34458
27381 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
27382 adjust return type.
27383
cbad2e09
RG
273842008-01-09 Richard Guenther <rguenther@suse.de>
27385
27386 PR middle-end/34679
27387 * tree.c (host_integerp): Check for sizetype only if the
27388 type is an integer type.
27389
59e5c37d
SB
273902008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
27391
27392 PR debug/26364
27393 * opts.c (decode_options): Disable inlining of functions called
27394 once if not in unit-at-a-time mode.
27395
712db60e
AO
273962008-01-09 Alexandre Oliva <aoliva@redhat.com>
27397
27398 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
27399
3fe2f42a
RG
274002008-01-08 Richard Guenther <rguenther@suse.de>
27401
27402 PR middle-end/31863
27403 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
27404 out early if the result will be unused.
27405
4d869718
UB
274062008-01-08 Uros Bizjak <ubizjak@gmail.com>
27407
27408 PR target/34709
27409 Revert:
27410
27411 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
27412 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
22129589
AS
27413 for TARGET_RECIP.
27414
cedbd764 274152008-01-08 Jan Sjodin <jan.sjodin@amd.com>
22129589 27416
4d869718
UB
27417 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
27418 for vectorization tuned.
22129589 27419
a9990582
RG
274202008-01-08 Richard Guenther <rguenther@suse.de>
27421
27422 PR tree-optimization/34683
27423 * tree-ssa-operands.c (operand_build_cmp): Export.
27424 * tree-ssa-operands.h (operand_build_cmp): Declare.
27425 * tree-vn.c (vuses_compare): Remove.
27426 (sort_vuses): Use operand_build_cmp.
27427 (sort_vuses_heap): Likewise.
27428 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
27429 to re-use old VEC if available. Do not sort already sorted VUSEs.
27430 (vdefs_to_vec): Do not sort already sorted VDEFs.
27431
c90eee44
JJ
274322008-01-08 Jakub Jelinek <jakub@redhat.com>
27433
27434 PR middle-end/34694
27435 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
27436
8bce96f5
UB
274372008-01-08 Uros Bizjak <ubizjak@gmail.com>
27438
27439 PR target/34702
27440 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
27441 limitations of reciprocal sequences on x86 targets.
27442
4eefcc98
RG
274432008-01-08 Richard Guenther <rguenther@suse.de>
27444
27445 PR tree-optimization/34683
27446 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
27447
b69d564b
JJ
274482008-01-07 Jakub Jelinek <jakub@redhat.com>
27449
27450 PR target/34622
27451 * config/darwin.c (darwin_mergeable_string_section): Don't use
27452 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
27453
6b761851
UB
274542008-01-07 Uros Bizjak <ubizjak@gmail.com>
27455
27456 PR target/34682
27457 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
27458 negxf2. Macroize expander using X87MODEF mode iterator. Change
27459 predicates of op0 and op1 to register_operand.
8bce96f5
UB
27460 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
27461 expander using X87MODEF mode iterator. Change predicates of
27462 op0 and op1 to register_operand.
6b761851
UB
27463 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
27464 corresponding patterns and macroize using MODEF macro. Change
27465 predicates of op0 and op1 to register_operand and remove
27466 "m" constraint. Disparage "r" alternative with "!".
27467 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
27468 macroize using X87MODEF macro. Change predicates of op0 and op1
27469 to register_operand and remove "m" constraint. Disparage "r"
27470 alternative with "!".
27471 (absneg splitter with memory operands): Remove.
27472 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
27473 patterns and macroize using X87MODEF mode iterator.
27474 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
27475 Change predicate of op1 to register_operand.
27476 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8bce96f5 27477 for memory operands.
6b761851 27478
5ca0373f
NF
274792008-01-07 Nathan Froyd <froydnj@codesourcery.com>
27480
27481 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
27482
2eac9a76
RG
274832008-01-07 Richard Guenther <rguenther@suse.de>
27484
27485 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
27486 fields.
27487
b61ea03d
RG
274882008-01-07 Richard Guenther <rguenther@suse.de>
27489
27490 PR tree-optimization/34683
27491 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
27492 VOPs of the needed size to save memory. Use VEC_quick_push
27493 to save compile-time.
27494 (vdefs_to_vec): Likewise.
27495
c4bd75cd 274962008-01-07 Sa Liu <saliu@de.ibm.com>
b61ea03d 27497
6b761851
UB
27498 * config/spu/spu.md (divdf3): Genetate inline code for double
27499 division. The implementation doesn't handle INF or NAN, therefore it
27500 only applies when -ffinite-math-only is given.
c4bd75cd 27501
ba551ec2
PC
275022008-01-06 Paolo Carlini <pcarlini@suse.de>
27503
27504 PR libstdc++/34680
27505 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
27506 * doc/cpp.texi ([Common Predefined Macros]): Document.
27507
43db7979
UB
275082008-01-06 Uros Bizjak <ubizjak@gmail.com>
27509
27510 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
27511 order to use commutative addition instead of subtraction.
27512
2c460d12
RE
275132008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
27514 Mircea Namolaru <namolaru@il.ibm.com>
27515 Vladimir Yanovsky <yanov@il.ibm.com>
27516 Revital Eres <eres@il.ibm.com>
27517
27518 PR tree-optimization/34263
27519 * tree-outof-ssa.c (process_single_block_loop_latch,
27520 contains_tree_r): New functions.
27521 (analyze_edges_for_bb): Call process_single_block_loop_latch
27522 function to empty single-basic-block latch block if possible.
27523
5a37a60c
UB
275242008-01-05 Uros Bizjak <ubizjak@gmail.com>
27525
27526 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
27527 for TARGET_RECIP.
27528 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
27529
1a8a3a5e
RS
275302008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
27531
27532 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
27533
2a4430a6
RS
275342008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
27535
27536 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
27537
58fcda21
JJ
275382008-01-05 Jakub Jelinek <jakub@redhat.com>
27539
27540 PR tree-optimization/34618
27541 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
27542 flag from T.
27543
f1bf33ce
UB
275442008-01-05 Uros Bizjak <ubizjak@gmail.com>
27545
27546 PR target/34673
27547 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
27548 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
27549 Update copyright year.
27550
27551 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
27552 Update copyright year.
27553 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
27554 using NR fixup.
27555
12a6309e
ZZ
275562008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
27557
27558 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
27559 edge does not point to current bb before changing need_assert.
27560
bdb69bee
RG
275612008-01-04 Richard Guenther <rguenther@suse.de>
27562
27563 PR middle-end/34029
27564 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
27565 for verifying purposes if they are is_gimple_min_invariant.
27566
ffed8a01
AH
275672008-01-04 Aldy Hernandez <aldyh@redhat.com>
27568
27569 PR tree-optimization/34448
27570 PR tree-optimization/34465
27571 * gimplify.c (gimplify_init_constructor): Add new parameter
27572 notify_temp_creation. Use it.
27573 (gimplify_modify_expr_rhs): Take volatiles into account when
27574 optimizing constructors.
27575 Do not optimize constructors if gimplify_init_constructor will dump to
27576 memory.
27577 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
27578 * gcc.c-torture/compile/pr34448.c: New.
27579
b5ca517c
JJ
275802008-01-04 Jakub Jelinek <jakub@redhat.com>
27581
27582 PR gcov-profile/34609
27583 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
27584 return_slot if result is TREE_ADDRESSABLE.
27585
6a3d1d49
RS
275862008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
27587
27588 * config/mips/mips.md (sqrt_condition): Tweak comment.
27589 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
27590
6fc3c3c0
TT
275912008-01-03 Tom Tromey <tromey@redhat.com>
27592
b5ca517c 27593 PR c/34457
6fc3c3c0
TT
27594 * c-common.c (c_type_hash): Handle VLAs.
27595
045685a9
JH
275962008-01-03 Jan Hubicka <jh@suse.cz>
27597
27598 PR tree-optimization/31081
27599 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
27600 0 when inlining and not inlining to first basic block.
27601 (remap_decl): When var is initialized to 0, don't set default_def.
27602 (expand_call_inline): Set entry_bb.
27603 * tree-inline.h (copy_body_data): Add entry_bb.
27604
2092ee7d
JJ
276052008-01-03 Jakub Jelinek <jakub@redhat.com>
27606
cac67c08
JJ
27607 PR c++/34619
27608 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
27609 before returning.
27610
2092ee7d
JJ
27611 PR tree-optimization/29484
27612 * tree-inline.c (inline_forbidden_p_2): New function.
27613 (inline_forbidden_p): Disallow inlining if some static var
27614 has an address of a local LABEL_DECL in its initializer.
27615 * doc/extend.texi (Labels as Values): Document &&foo behaviour
27616 vs. inlining.
27617
2726bafe 276182008-01-03 Sebastian Pop <sebastian.pop@amd.com>
097392de
SP
27619
27620 PR tree-optimization/34635
27621 * tree-data-ref.c (add_other_self_distances): Make sure that the
27622 evolution step is constant.
27623
99819c63
JJ
276242008-01-03 Jakub Jelinek <jakub@redhat.com>
27625
27626 PR middle-end/34608
12a6309e 27627 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
99819c63 27628
1463dfa4
RS
276292008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
27630
27631 * tree-sra.c (scalarize_init): Insert the generate_element_init
27632 statements after the generate_element_zero statements.
27633
ee6ec666
RG
276342008-01-02 Richard Guenther <rguenther@suse.de>
27635
27636 PR middle-end/34093
27637 PR middle-end/31976
27638 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
27639 for very large number of operands instead of ICEing.
27640
6893e828
AN
276412008-01-02 Arthur Norman <acn1@cam.ac.uk>
27642
12a6309e 27643 PR target/34013
d0fb20be 27644 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6893e828
AN
27645 while stack probing.
27646
1a7817e4
DG
276472008-01-01 Douglas Gregor <doug.gregor@gmail.com>
27648
6893e828 27649 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12a6309e 27650 in C++0x mode.
1a7817e4 27651
882e337b
VR
276522008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
27653
27654 PR libmudflap/26442
27655 * tree-mudflap.c (mx_register_decls): Guard warning by
27656 !DECL_ARTIFICIAL check.
27657
f02ffa12
JJ
276582008-01-01 Jakub Jelinek <jakub@redhat.com>
27659
27660 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
27661 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
27662 sse5_perm<mode>): Fix constraints.