]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
loongson2ef.md: New file.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
58684fa0
MK
12008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2
3 * config/mips/loongson2ef.md: New file.
4 * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
5 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
6 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
7 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
8 (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
9 and loongson_2f.
10 (loongson2ef.md): New include.
11 * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
12 (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
13 (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
14 (loongson_gt_<mode>, loongson_extract_halfword)
15 (loongson_insert_halfword_0, loongson_insert_halfword_2)
16 (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
17 (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
18 (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
19 (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
20 (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
21 (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
22 (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
23 (vec_interleave_low<mode>): Define type attribute.
24 * config/mips/mips.c (mips_ls2): New static variable.
25 (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
26 (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
27 (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
28 Implement target scheduling hooks.
29 (mips_multipass_dfa_lookahead): Update to handle tuning for
30 Loongson 2E/2F.
31 (mips_sched_init): Initialize data for Loongson scheduling.
32 (mips_ls2_variable_issue): New static function.
33 (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
34 Add sanity check.
35 (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
36 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
37 * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
38 (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
39 Handle ST Loongson 2E/2F cores.
40 (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
41
1cbc62c0
RW
422008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
43
44 * omp-low.c (extract_omp_for_data): Fix comment typo.
45 * c.opt: Fix typo.
46
6ccde948
RW
472008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
48
49 * doc/sourcebuild.texi (Config Fragments): Remove obsolete
50 FIXME note about gcc/config.guess.
51 * doc/options.texi (Option file format): Remove non-ASCII bytes.
52 * doc/cpp.texi: Expand TABs, drop indentation outside examples.
53 * doc/cppopts.texi: Likewise.
54 * doc/extend.texi: Likewise.
55 * doc/gcc.texi: Likewise.
56 * doc/gccint.texi: Likewise.
57 * doc/gcov.texi: Likewise.
58 * doc/gty.texi: Likewise.
59 * doc/hostconfig.texi: Likewise.
60 * doc/install.texi: Likewise.
61 * doc/invoke.texi: Likewise.
62 * doc/loop.texi: Likewise.
63 * doc/makefile.texi: Likewise.
64 * doc/md.texi: Likewise.
65 * doc/passes.texi: Likewise.
66 * doc/tm.texi: Likewise.
67 * doc/tree-ssa.texi: Likewise.
68 * doc/trouble.texi: Likewise.
69
93581857
MS
702008-06-15 Mark Shinwell <shinwell@codesourcery.com>
71 Nathan Sidwell <nathan@codesourcery.com>
72 Maxim Kuvyrkov <maxim@codesourcery.com>
73 Richard Sandiford <rdsandiford@googlemail.com>
74
75 * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
76 * config/mips/mips-protos.h (mips_expand_vector_init): New.
77 * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
78 builtins.
79 * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
80 (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
81 (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
82 V8QImode cases.
83 (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
84 (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
85 (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
86 (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
87 (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
88 (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
89 (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
90 (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
91 (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
92 (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
93 (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
94 (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
95 (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
96 (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
97 (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
98 (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
99 (mips_builtins): Add Loongson builtins.
100 (mips_loongson_2ef_bdesc): New.
101 (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
102 (mips_builtin_vector_type): Handle unsigned versions of vector modes.
103 (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
104 (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
105 New.
106 (mips_expand_vector_init): New.
107 * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
108 (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
109 if appropriate.
110 * config/mips/mips.md: Add unspec numbers for Loongson
111 builtins. Include loongson.md.
112 (MOVE64): Include Loongson vector modes.
113 (SPLITF): Include Loongson vector modes.
114 (HALFMODE): Handle Loongson vector modes.
115 * config/mips/loongson.md: New.
116 * config/mips/loongson.h: New.
117 * config.gcc: Add loongson.h header for mips*-*-* targets.
118 * doc/extend.texi (MIPS Loongson Built-in Functions): New.
119
397fda80
JM
1202008-06-14 Joseph Myers <joseph@codesourcery.com>
121
122 * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
123 h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
124 i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
125 iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
126 m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
127 m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
128 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
129 mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
130 mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
131 mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
132 powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
133 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
134 sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
135 sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
136 sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
137 v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
138 Remove use_fixproto=yes.
139 (ia64*-*-hpux*): Remove comment about using fixproto.
140 (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
141
b15a9f63
RW
1422008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
143
144 * configure.ac: Update gthr-default.h lazily, to avoid unneeded
145 library rebuilds.
146 * configure: Regenerate.
147
9133c85e
EB
1482008-06-13 Eric Botcazou <ebotcazou@adacore.com>
149
150 PR middle-end/36520
151 * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
152 before evaluating it.
153
6cf59865
JJ
1542008-06-13 Jakub Jelinek <jakub@redhat.com>
155
156 PR c/36507
157 * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
158 nested inline functions.
159 (start_decl, start_function): Don't invert DECL_EXTERNAL
160 for nested inline functions.
161
a9a53350
RS
1622008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
163
164 * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
165 splits that must be made for correctness.
166
fd0eb897
RS
1672008-06-13 Richard Sandiford <rdsandiford@googlemail.com>
168
169 * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
170 (AVAIL_NON_MIPS16): Likewise.
171 (mips_builtin_description): Replace target_flags with a predicate.
172 (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
173 (dspr2_32): New availability predicates.
174 (MIPS_BUILTIN): New macro.
175 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
176 (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
177 (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
178 Replace the TARGET_FLAGS parameters with AVAIL parameters.
179 (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
180 (mips_dsp_32only_bdesc): Merge into...
181 (mips_builtins): ...this new array.
182 (mips_bdesc_map, mips_bdesc_arrays): Delete.
183 (mips_init_builtins): Update after above changes.
184 (mips_expand_builtin_1): Merge into...
185 (mips_expand_builtin): ...here and update after above changes.
186
ef0a4b67
PB
1872008-06-12 Paul Brook <paul@codesourcery.com>
188
189 * longlong.h (__arm__): Define count_leading_zeros.
190 * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
191 (clzsi2, clzdi2): New functions.
192 * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
193 * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
194 * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
195 * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
196 * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
197 * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
198 * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
199 * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
200 * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
201 * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
202
03b3e271
KH
2032008-06-12 Kazu Hirata <kazu@codesourcery.com>
204
205 * config/m68k/m68k.c (m68k_tune_flags): New.
206 (override_options): Compute m68k_tune_flags.
207 (MULL_COST, MULW_COST): Update for various variants of CFV2.
208 * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
209
3ac4c44a
JJ
2102008-06-12 Jakub Jelinek <jakub@redhat.com>
211
212 PR middle-end/36506
213 * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus
214 warning.
215
955f6531
EB
2162008-06-12 Eric Botcazou <ebotcazou@adacore.com>
217
218 * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
219 TREE_THIS_VOLATILE on INDIRECT_REF nodes.
220
bd323ce5
EB
2212008-06-12 Eric Botcazou <ebotcazou@adacore.com>
222
223 * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
224 (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
225
c34938a8
JJ
2262008-06-12 Jakub Jelinek <jakub@redhat.com>
227
228 PR middle-end/36506
229 * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
230 reductions.
231
b3778556
RG
2322008-06-12 Richard Guenther <rguenther@suse.de>
233
234 PR tree-optimization/36345
235 * tree-flow.h (struct ptr_info_def): Align escape_mask,
236 add memory_tag_needed flag.
237 (may_alias_p): Declare.
238 * tree-ssa-alias.c (may_alias_p): Export.
239 (set_initial_properties): Use memory_tag_needed flag.
240 (update_reference_counts): Likewise.
241 (reset_alias_info): Reset memory_tag_needed flag.
242 (create_name_tags): Check memory_tag_needed flag.
243 (dump_points_to_info_for): Dump it.
244 * tree-ssa-structalias.c (struct variable_info): Remove
245 directly_dereferenced flag.
246 (new_var_info): Do not initialize it.
247 (process_constraint_1): Do not set it.
248 (update_alias_info): Set is_dereferenced flag.
249 (set_uids_in_ptset): Use may_alias_p.
250 (set_used_smts): Check memory_tag_needed flag.
251 (find_what_p_points_to): Likewise. Pass is_dereferenced flag.
252 * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
253 memory_tag_needed flag.
254 * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
255 from broken design.
256
394a378c
KT
2572008-06-12 Kai Tietz <kai.tietz@onevision.com>
258
259 * config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for
260 w64 abi.
261 (ix86_expand_prologue): Likewise.
262 (ix86_force_to_memory): Likewise.
263 (ix86_free_from_memory): Likewise.
264
567f0b17
EW
2652008-06-11 Edmar Wienskoski <edmar@freescale.com>
266
267 PR target/36425
268 * config/rs6000/rs6000.c (rs6000_override_options): Set
269 rs6000_isel conditionally to the absence of comand line
270 override.
271 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
272 Remove duplicate rs6000_isel setting.
273 * config/rs6000/eabispe.h: Ditto.
274
4653cae5
RG
2752008-06-11 Richard Guenther <rguenther@suse.de>
276
277 * alias.c (get_alias_set): Use the element alias-set for arrays.
278 (record_component_aliases): For arrays and vectors do nothing.
279 * c-common.c (strict_aliasing_warning): Handle the cases
280 of alias set zero explicitly.
281 * Makefile.in (dfp.o-warn): Add -Wno-error.
282
8981c15b
JM
2832008-06-11 Joseph Myers <joseph@codesourcery.com>
284
285 * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
286 tune_32 tune_64.
287 (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
288 tune_32 tune_64 to supported_defaults. Allow values not
289 supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
290 x86_64. Do not override cpu_32 or cpu_64 values from target name.
291 (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
292 with_cpu_64 to generic for 64-bit-supporting configurations, not
293 with_cpu. Remove FIXMEs.
294 * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
295 --with-arch-64, --with-tune-32, --with-tune-64): Document.
296 * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
297 (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
298 arch_32 and arch_64.
299
056c8fae
EB
3002008-06-11 Eric Botcazou <ebotcazou@adacore.com>
301 Olivier Hainque <hainque@adacore.com>
302
303 * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
304 Use DECL_SIZE_UNIT to retrieve the size of the field.
305
af06585a
JM
3062008-06-11 Joseph Myers <joseph@codesourcery.com>
307
308 * config/arm/arm.c (arm_init_neon_builtins): Move initialization
309 with function calls after declarations. Lay out
310 neon_float_type_node before further use.
311
fd73537b
RG
3122008-06-11 Richard Guenther <rguenther@suse.de>
313
314 * tree-flow.h (may_point_to_global_var): Declare.
315 * tree-ssa-alias.c (may_point_to_global_var): New function.
316 * tree-ssa-sink.c (is_hidden_global_store): Use it.
317
6b7b0ba1
KH
3182008-06-10 Kazu Hirata <kazu@codesourcery.com>
319
320 * configure.ac: Teach that fido supports .debug_line.
321 * configure: Regenerate.
322
711b2510
TT
3232008-06-10 Tom Tromey <tromey@redhat.com>
324
325 * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
326 debug hook.
327
bc6d4c3f
JM
3282008-06-10 Joseph Myers <joseph@codesourcery.com>
329
330 * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
331 (encode_decimal64, decode_decimal64, encode_decimal128,
332 decode_decimal128): Reverse order of 32-bit parts of value if host
333 and target endianness differ.
334
0178d644
VR
3352008-06-10 Vinodha Ramasamy <vinodha@google.com>
336 * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
337 Avoid division by 0.
338 (tree_mod_pow2_value_transform): Likewise.
339 (tree_ic_transform): Likewise.
340 (tree_stringops_transform): Likewise.
341 (tree_mod_subtract_transform): Likewise.
342 * tree-inline-c (copy_bb): Corrected int type to gcov_type.
343 (copy_edges_for_bb): Likewise.
344 (initialize_cfun): Likewise.
345
88b9490b
UB
3462008-06-10 Uros Bizjak <ubizjak@gmail.com>
347
348 * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
349 nonmemory_operand. Add "N" operand constraint.
350 (*btsi): Ditto.
351 (*jcc_btdi_mask_rex64): New instruction and split pattern.
352 (*jcc_btsi_mask): Ditto.
353 (*jcc_btsi_mask_1): Ditto.
354
0627bfb4
JM
3552008-06-10 Joseph Myers <joseph@codesourcery.com>
356
357 * config/rs6000/rs6000.c (build_opaque_vector_type): Set
358 TYPE_CANONICAL for copied element type.
359
33ee5810
UB
3602008-06-10 Uros Bizjak <ubizjak@gmail.com>
361
362 PR target/36473
363 * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
364 Add m_CORE2 and m_GENERIC.
365 * config/i386/predicates.md (bt_comparison_operator): New predicate.
366 * config/i386/i386.md (*btdi_rex64): New instruction pattern.
367 (*btsi): Ditto.
368 (*jcc_btdi_rex64): New instruction and split pattern.
369 (*jcc_btsi): Ditto.
370 (*jcc_btsi_1): Ditto.
371 (*btsq): Fix Intel asm dialect operand order.
372 (*btrq): Ditto.
373 (*btcq): Ditto.
374
3115c00d
AH
3752008-06-09 Andy Hutchinson <hutchinsonandy@aim.com>
376
377 PR middle-end/36447
378 * simplify-rtx.c (simplify_subreg): Add check for shift count
379 greater than size.
380
21dfc6dc
RS
3812008-06-09 Richard Sandiford <rdsandiford@googlemail.com>
382
383 * doc/md.texi: Synchronize with later constraints.md change.
384 * longlong.h (umul_ppmm): Replace the MIPS asm implementation
385 with a C implementation.
386 * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
387 MFLO handling.
388 (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
389 (mips_split_doubleword_move): Use special MTHI and MFHI instructions
390 when moving to and from MD_REGNUM.
391 (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
392 Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
393 Handle byte and halfword moves.
394 (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
395 separately.
396 * config/mips/constraints.md (h): Turn into NO_REGS.
397 (l, x): Update documentation.
398 * config/mips/mips.md (UNSPEC_MFHILO): Delete.
399 (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
400 (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
401 (HILO): New mode iterator.
402 (MOVE128): Add TI.
403 (any_div): New code iterator.
404 (u): Extend code attribute to div and udiv.
405 (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
406 d_operand in the splitters. Remove redundant CONST_INT checks.
407 (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
408 (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
409 (*muls): Remove "=h" clobbers. Adjust peephole2s and define_splits
410 accordingly, using normal moves instead of unspecs to move LO into
411 a GPR. Use d_operand and lo_operand instead of *_REG_P checks.
412 (<u>mulsidi3): Handle expansion in C code.
413 (<u>mulsidi3_32bit_internal): Rename to...
414 (<u>mulsidi3_32bit): ...this.
415 (<u>mulsidi3_32bit_r4000): Fix insn separator.
416 (*<u>mulsidi3_64bit): Rename to...
417 (<u>mulsidi3_64bit): ...this. Combine DImode "=h" and "=l" clobbers
418 into a TImode "=x" clobber. In the split, use an UNSPEC_SET_HILO
419 to set LO and HI to the multiplication result. Use a normal move
420 for MFLO and an unspec for MFHI.
421 (*<u>mulsidi3_64bit_parts): Replace with...
422 (<u>mulsidi3_64bit_hilo): ...this new instruction.
423 (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
424 (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
425 and extend it to TARGET_FIX_R4000. Store the destination in a GPR
426 instead of HI. Split the instruction into a separate multiplication
427 and MFHI if !TARGET_FIX_R4000.
428 (<su>muldi3_highpart): Likewise.
429 (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
430 and the "=h" clobber.
431 (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
432 (<u>mulditi3): New expander.
433 (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
434 (madsi): Remove "=h" clobber.
435 (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
436 Force the modulus result to be a GPR and split the instruction into
437 a division followed by an MFHI after reload.
438 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
439 (*lea_high64): Use d_operand in the define_peephole2. Likewise
440 the MIPS16 HIGH define_split.
441 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
442 of acc<->gpr moves to "multi".
443 (*movdi_64bit): Replace the single "x" alternative with
444 alternatives for moving into and out of "a".
445 (*movhi_internal, *movqi_internal): Likewise. Use mips_output_move.
446 (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
447 (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
448 Use d_operand in the splitters. Remove redundant CONST_INT checks.
449 (*movhi_mips16, *movqi_mips16): Likewise. Use mips_output_move.
450 (movti): New expander.
451 (*movti, *movti_mips16): New insns.
452 (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
453 (mfhi<GPR:mode>_<HILO:mode>): New pattern.
454 (mthi<GPR:mode>_<HILO:mode>): Likewise.
455 * config/mips/predicates.md (fpr_operand): Delete.
456 (d_operand): New predicate.
457
0e462a95
MM
4582008-06-09 Michael Meissner <michael.meissner@amd.com>
459
460 * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
461 failure on some Bourne shells.
462 (x86_64-*-*): Ditto.
463
d3c1d2a0
KT
4642008-06-09 Kai Tietz <kai.tietz@onevision.com>
465
466 * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
467
2bd58b1b
EB
4682008-06-09 Eric Botcazou <ebotcazou@libertysurf.fr>
469
470 * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
471 (sparc-sun-solaris2*): Likewise.
472
2c2b1710
AC
4732008-06-09 Arnaud Charlet <charlet@adacore.com
474
475 * doc/install.texi: Update requirements to build the Ada compiler.
476
fed6152d
SB
4772008-06-08 Steven Bosscher <stevenb.gcc@gmail.com>
478
479 * df-scan.c (struct df_scan_problem_data): Remove the
480 mw_link_pool alloc pool.
481 (df_scan_free_internal): Don't free it.
482 (df_scan_alloc): Don't allocate it.
483 * df.h (struct df_link): Update comment.
484
c427220a
NS
4852008-06-08 Nathan Sidwell <nathan@codesourcery.com>
486
487 * except.h: Correct checks for when SJLJ exceptions must be used.
488
cf0fd618
MLI
4892008-06-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
490
491 * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
492 default.
493
f8c33439
JM
4942008-06-08 Joseph Myers <joseph@codesourcery.com>
495
496 PR tree-optimization/36218
497 * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
498 configure for the build system.
499 (BUILD_LDFLAGS): Define.
500 * configure: Regenerate.
501 * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
502
91635d08
AS
5032008-07-08 Anatoly Sokolov <aesok@post.ru>
504
505 PR target/36424
506 * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
507 * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
508 * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
509
ae06ac00
DS
5102008-06-07 Danny Smith <dannysmith@users.sourceforge.net>
511
512 * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
513
cd985f66
JM
5142008-06-07 Joseph Myers <joseph@codesourcery.com>
515
516 * config.gcc (Obsolete configurations): Remove list of
517 configurations.
518 (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
519 *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
520 targets matched by those patterns.
521 (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
522 m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
523 alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
524 arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
525 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
526 i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
527 i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
528 i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
529 i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
530 mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
531 powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
532 powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
533 strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
534 vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
535 i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
536 Make code for Solaris 7 and greater unconditional for Solaris.
537 (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
538 Remove --with-* handling.
539 * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
540 (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
541 ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
542 LINK_OS_WINDISS_SPEC): Remove.
543 * config/rs6000/sysv4.opt (mwindiss): Remove.
544 * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
545 * configure: Regenerate.
546 * doc/cpp.texi: Don't mention BeOS.
547 * doc/extend.texi (interrupt): Don't mention MS1.
548 * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
549 m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
550 alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
551 i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
552 powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
553 Remove.
554 * doc/invoke.texi (MT Options): Remove.
555 (-mwindiss): Remove.
556 (CRIS Options): Remove cris-axis-aout references.
557 (HPPA Options): Don't mention hppa1.1-*-pro.
558 * doc/md.texi: (MorphoTech family): Remove.
559 * libgcc2.c: Don't handle UWIN.
560 * config/alpha/t-unicosmk: Remove.
561 * config/alpha/unicosmk.h: Remove.
562 * config/arm/kaos-arm.h: Remove.
563 * config/arm/kaos-strongarm.h: Remove.
564 * config/arm/strongarm-coff.h: Remove.
565 * config/arm/strongarm-elf.h: Remove.
566 * config/arm/strongarm-pe.h: Remove.
567 * config/arm/t-strongarm-pe: Remove.
568 * config/arm/t-xscale-coff: Remove.
569 * config/arm/t-xscale-elf: Remove.
570 * config/arm/xscale-coff.h: Remove.
571 * config/arm/xscale-elf.h: Remove.
572 * config/chorus.h: Remove.
573 * config/cris/aout.h: Remove.
574 * config/cris/aout.opt: Remove.
575 * config/cris/t-aout: Remove.
576 * config/i386/beos-elf.h: Remove.
577 * config/i386/kaos-i386.h: Remove.
578 * config/i386/ptx4-i.h: Remove.
579 * config/i386/sco5.h: Remove.
580 * config/i386/sco5.opt: Remove.
581 * config/i386/sysv4-cpp.h: Remove.
582 * config/i386/sysv5.h: Remove.
583 * config/i386/t-beos: Remove.
584 * config/i386/t-sco5: Remove.
585 * config/i386/t-uwin: Remove.
586 * config/i386/uwin.asm: Remove.
587 * config/i386/uwin.h: Remove.
588 * config/kaos.h: Remove.
589 * config/mips/windiss.h: Remove.
590 * config/mt: Remove directory.
591 * config/pa/pa-osf.h: Remove.
592 * config/pa/pa-pro-end.h: Remove.
593 * config/pa/t-pro: Remove.
594 * config/ptx4.h: Remove.
595 * config/rs6000/beos.h: Remove.
596 * config/rs6000/kaos-ppc.h: Remove.
597 * config/rs6000/t-beos: Remove.
598 * config/rs6000/windiss.h: Remove.
599 * config/sh/kaos-sh.h: Remove.
600 * config/sol2-6.h: Remove.
601 * config/sparc/sol26-sld.h: Remove.
602 * config/sparc/sysv4-only.h: Remove.
603 * config/vax/bsd.h: Remove.
604 * config/vax/t-memfuncs: Remove.
605 * config/vax/ultrix.h: Remove.
606 * config/vax/vaxv.h: Remove.
607 * config/windiss.h: Remove.
608
88057dc8
UB
6092008-06-06 Uros Bizjak <ubizjak@gmail.com>
610
611 PR rtl-optimization/36438
612 * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
613 for vector shifts with constant scalar shift operands.
614
d0ae31b0
SM
6152008-06-06 Sandip Matte <sandip@rmicorp.com>
616
617 * doc/invoke.texi: Document -march=xlr.
618 * config/mips/xlr.md: New file.
619 * config/mips/mips.md: Include it.
620 (cpu): Add "xlr".
621 * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
622 * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
623 (mips_rtx_cost_data): Likewise.
624
619fe064
NF
6252008-06-06 Nathan Froyd <froydnj@codesourcery.com>
626
627 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
628 PRE_INC and PRE_DEC cases.
629
67339062
JJ
6302008-06-06 Jakub Jelinek <jakub@redhat.com>
631
c6eb958c
JJ
632 PR rtl-optimization/36419
633 * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
634 the emitting jump insn.
635
67339062
JJ
636 PR target/36362
637 * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
638 is not bool, boolify the whole *expr_p and convert to the desired type.
639
a68ab351
JJ
6402008-06-06 Jakub Jelinek <jakub@redhat.com>
641
88057dc8 642 * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
a68ab351
JJ
643 * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
644 Add omp_private_outer_ref hook, add another argument to
645 omp_clause_default_ctor hook.
646 * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
647 (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
648 (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
649 hook_tree_tree_tree_tree_null.
650 (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
651 LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
652 * hooks.c (hook_tree_tree_tree_tree_null): New function.
653 * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
654 * tree.def (OMP_TASK): New tree code.
655 * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
656 OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
657 OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
658 OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
659 OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
660 OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
661 OMP_CLAUSE_COLLAPSE_EXPR): Define.
662 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
663 (OMP_DIRECTIVE_P): Add OMP_TASK.
664 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
665 (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
666 * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
667 and OMP_CLAUSE_UNTIED entries.
668 (omp_clause_num_ops): Likewise. Increase OMP_CLAUSE_LASTPRIVATE
669 num_ops to 2.
670 (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
671 Walk OMP_CLAUSE_LASTPRIVATE_STMT.
672 * tree-pretty-print.c (dump_omp_clause): Handle
673 OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
674 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
675 (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
676 * c-omp.c (c_finish_omp_for): Allow pointer iterators. Remove
677 warning about unsigned iterators. Change decl/init/cond/incr
678 arguments to TREE_VECs, check arguments for all collapsed loops.
679 (c_finish_omp_taskwait): New function.
680 (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
681 ws_clauses.
682 * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops. Call
683 default_function_array_conversion on init. Add par_clauses argument.
684 If decl is present in parallel's lastprivate clause, change it to
685 shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
686 Add clauses argument, on success set OMP_FOR_CLAUSES to it. Look up
687 collapse count in clauses.
688 (c_parser_omp_for, c_parser_omp_parallel): Adjust
689 c_parser_omp_for_loop callers.
690 (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
691 (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
692 (c_parser_omp_clause_name): Handle collapse and untied clauses.
693 (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
694 functions.
695 (c_parser_omp_clause_schedule): Handle schedule(auto).
696 Include correct location in the error message.
697 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
698 and PRAGMA_OMP_CLAUSE_UNTIED.
699 (OMP_TASK_CLAUSE_MASK): Define.
700 (c_parser_omp_task, c_parser_omp_taskwait): New functions.
701 (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
702 * tree-nested.c (convert_nonlocal_omp_clauses,
703 convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
704 OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
705 OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
706 Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
707 OMP_CLAUSE_DECL.
708 (conver_nonlocal_reference, convert_local_reference,
709 convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL. Use
710 OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
711 (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
712 * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
713 * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
714 * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
715 (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
716 * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
717 (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
718 OMP_CLAUSE_UNTIED.
719 * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
720 * c-common.h (c_finish_omp_taskwait): New prototype.
721 * gimple-low.c (lower_stmt): Handle OMP_TASK.
722 * tree-parloops.c (create_parallel_loop): Create 1 entry
723 vectors for OMP_FOR_{INIT,COND,INCR}.
724 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
725 (make_edges): Handle OMP_TASK.
726 * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
727 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
728 * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
729 * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
730 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
731 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
732 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
733 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
734 * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
735 BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
736 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
737 BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
738 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
739 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
740 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
741 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
742 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
743 BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
744 BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
745 BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
746 BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
747 BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
748 BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
749 BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
750 BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
751 * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
752 handle POINTER_PLUS_EXPR. If loop counter has been replaced and
753 original iterator is present in lastprivate clause or if
754 collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle collapsed
755 OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
756 (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
757 (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
758 (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
759 if it is set, lookup var in outer contexts too. Handle
760 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE. Handle vars that are supposed
761 to be implicitly determined firstprivate for task regions.
762 (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
763 if it is set, lookup var in outer contexts too. Set
764 OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
765 Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
766 OMP_CLAUSE_UNTIED. Take region_type as last argument
767 instead of in_parallel and in_combined_parallel.
768 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
769 Adjust callers.
770 (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
88057dc8 771 GOVD_PRIVATE_OUTER_REF is set. Call omp_finish_clause langhook.
a68ab351
JJ
772 (new_omp_context): Set default_kind to
773 OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
774 (omp_region_type): New enum.
775 (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
776 fields, add region_type.
777 (new_omp_context): Take region_type as argument instead of is_parallel
778 and is_combined_parallel.
779 (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
780 omp_is_private, omp_check_private): Adjust ctx->is_parallel and
781 ctx->is_combined_parallel checks.
782 (gimplify_omp_task): New function.
783 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
784 OMP_CLAUSE_UNTIED.
785 * omp-low.c (extract_omp_for_data): Use schedule(static)
786 for schedule(auto). Handle pointer and unsigned iterators.
787 Compute fd->iter_type. Handle POINTER_PLUS_EXPR increments.
788 Add loops argument. Extract data for collapsed OMP_FOR loops.
789 (expand_parallel_call): Assert sched_kind isn't auto,
790 map runtime schedule to index 3.
791 (struct omp_for_data_loop): New type.
792 (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
793 Add loop, loops, collapse and iter_type fields.
794 (workshare_safe_to_combine_p): Disallow combined for if
795 iter_type is unsigned long long. Don't combine collapse > 1 loops
796 unless all bounds and steps are constant. Adjust extract_omp_for_data
797 caller.
798 (expand_omp_for_generic): Handle pointer, unsigned and long long
799 iterators. Handle collapsed OMP_FOR loops. Adjust
800 for struct omp_for_data changes. If libgomp function doesn't return
801 boolean_type_node, add comparison of the return value with 0.
802 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
803 pointer, unsigned and long long iterators. Adjust for struct
804 omp_for_data changes.
805 (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
806 to index 3. Use GOMP_loop_ull*{start,next} if iter_type is
807 unsigned long long. Allocate loops array, pass it to
808 extract_omp_for_data. For collapse > 1 loops use always
809 expand_omp_for_generic.
810 (omp_context): Add sfield_map and srecord_type fields.
811 (is_task_ctx, lookup_sfield): New functions.
812 (use_pointer_for_field): Use is_task_ctx helper. Change first
813 argument's type from const_tree to tree. Clarify comment.
814 In OMP_TASK disallow copy-in/out sharing.
815 (build_sender_ref): Call lookup_sfield instead of lookup_field.
816 (install_var_field): Add mask argument. Populate both record_type
817 and srecord_type if needed.
818 (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
819 in srecord_type.
820 (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
821 and DECL_FIELD_OFFSET.
822 (scan_sharing_clauses): Adjust install_var_field callers. For
823 firstprivate clauses on explicit tasks allocate the var by value in
824 record_type unconditionally, rather than by reference.
825 Handle OMP_CLAUSE_PRIVATE_OUTER_REF. Scan OMP_CLAUSE_LASTPRIVATE_STMT.
826 Use is_taskreg_ctx instead of is_parallel_ctx.
827 Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
828 (create_omp_child_function_name): Add task_copy argument, use
829 *_omp_cpyfn* names if it is true.
830 (create_omp_child_function): Add task_copy argument, if true create
831 *_omp_cpyfn* helper function.
832 (scan_omp_parallel): Adjust create_omp_child_function callers.
833 Rename parallel_nesting_level to taskreg_nesting_level.
834 (scan_omp_task): New function.
835 (lower_rec_input_clauses): Don't run constructors for firstprivate
836 explicit task vars which are initialized by *_omp_cpyfn*.
837 Pass outer var ref to omp_clause_default_ctor hook if
838 OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
839 Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
840 OMP_CLAUSE_REDUCTION_INIT.
841 (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
842 avoid duplicate setting of fields. Handle
843 OMP_CLAUSE_PRIVATE_OUTER_REF.
844 (lower_send_shared_vars): Use srecord_type if non-NULL. Don't
845 copy-out if TREE_READONLY, only copy-in.
846 (expand_task_copyfn): New function.
847 (expand_task_call): New function.
848 (struct omp_taskcopy_context): New type.
849 (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
850 New functions.
851 (lower_omp_parallel): Rename to...
852 (lower_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
853 Call create_task_copyfn if srecord_type is needed. Adjust
854 sender_decl type.
855 (task_shared_vars): New variable.
856 (check_omp_nesting_restrictions): Warn if work-sharing,
857 barrier, master or ordered region is closely nested inside OMP_TASK.
858 Add warnings for barrier if closely nested inside of work-sharing,
859 ordered, or master region.
860 (scan_omp_1): Call check_omp_nesting_restrictions even for
861 GOMP_barrier calls. Rename parallel_nesting_level to
862 taskreg_nesting_level. Handle OMP_TASK.
863 (lower_lastprivate_clauses): Even if some lastprivate is found on a
864 work-sharing construct, continue looking for them on parent parallel
865 construct.
866 (lower_omp_for_lastprivate): Add lastprivate clauses
867 to the beginning of dlist rather than end. Adjust for struct
868 omp_for_data changes.
869 (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
870 not after it. Handle collapsed OMP_FOR loops, adjust for
88057dc8 871 OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
a68ab351
JJ
872 (get_ws_args_for): Adjust extract_omp_for_data caller.
873 (scan_omp_for): Handle collapsed OMP_FOR
874 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
875 (lower_omp_single_simple): If libgomp function doesn't return
876 boolean_type_node, add comparison of the return value with 0.
877 (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
878 loops, adjust for OMP_FOR_{INIT,COND,INCR} changes. Handle OMP_TASK.
879 (parallel_nesting_level): Rename to...
880 (taskreg_nesting_level): ... this.
881 (is_taskreg_ctx): New function.
882 (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
883 of is_parallel_ctx.
884 (execute_lower_omp): Rename parallel_nesting_level to
885 taskreg_nesting_level.
886 (expand_omp_parallel): Rename to...
887 (expand_omp_taskreg): ... this. Use OMP_TASKREG_* macros where needed.
888 Call omp_task_call for OMP_TASK regions.
889 (expand_omp): Adjust caller, handle OMP_TASK.
890 (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
891
892 * bitmap.c (bitmap_default_obstack_depth): New variable.
893 (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
894 if argument is NULL and bitmap_default_obstack is already initialized.
895 * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
896 at the end.
897 * matrix-reorg.c (matrix_reorg): Likewise.
898
c4fe74e0
UB
8992008-06-06 Uros Bizjak <ubizjak@gmail.com>
900
901 * config/i386/i386.md (*indirect_jump): Macroize using P
902 mode iterator. Remove !TARGET_64BIT from insn constraints.
903 (*tablejump_1): Ditto.
904 (*indirect_jump_rex64): Remove insn pattern.
905 (*tablejump_1_rex64): Ditto.
906 (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
907 and eh_return_si insn patterns.
908
9f09b13f
RG
9092008-06-06 Richard Guenther <rguenther@suse.de>
910
911 * tree-ssa-structalias.c (merge_smts_into): Remove.
912 (find_what_p_points_to): Do not bother to compute the
913 points-to set for pt_anything pointers.
914 * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
915 for pt_anything pointers is ok.
916
9fbe48c0
JH
9172008-06-06 Jan Hubicka <jh@suse.cz>
918
919 * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
920
fa10beec
RW
9212008-06-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
922
923 * cgraph.c: Fix typos in comments.
924 (cgraph_availability_names): Fix string typo.
925 * fold-const.c: Fix typos in comments.
926 (fold_binary): Fix typo in warning.
927 * genautomata.c: Fix typos in comments.
928 (check_presence_pattern_sets): Fix typo in local variable.
929 (output_description): Fix typo in output.
930 * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
931 * hwint.h: Likewise.
932 * matrix-reorg.c (check_allocation_function): Likewise.
933 * omega.c (smooth_weird_equations): Likewise.
934 * auto-inc-dec.c: Fix typos in comments.
935 * bb-reorder.c: Likewise.
936 * builtins.c: Likewise.
937 * c-common.c: Likewise.
938 * c-cppbuiltin.c: Likewise.
939 * c-parser.c: Likewise.
940 * c-pretty-print.c: Likewise.
941 * cfgcleanup.c: Likewise.
942 * cfgexpand.c: Likewise.
943 * cfghooks.c: Likewise.
944 * cfglayout.c: Likewise.
945 * cfgloopmanip.c: Likewise.
946 * cgraphunit.c: Likewise.
947 * coverage.c: Likewise.
948 * dbxout.c: Likewise.
949 * df-byte-scan.c: Likewise.
950 * df-core.c: Likewise.
951 * df-problems.c: Likewise.
952 * df-scan.c: Likewise.
953 * dfp.c: Likewise.
954 * dominance.c: Likewise.
955 * domwalk.c: Likewise.
956 * dse.c: Likewise.
957 * dwarf2out.c: Likewise.
958 * emit-rtl.c: Likewise.
959 * et-forest.c: Likewise.
960 * function.c: Likewise.
961 * function.h: Likewise.
962 * gcc.c: Likewise.
963 * gcov-io.c: Likewise.
964 * gcov.c: Likewise.
965 * gcse.c: Likewise.
966 * genattrtab.c: Likewise.
967 * ggc-page.c: Likewise.
968 * gimplify.c: Likewise.
969 * gthr-lynx.h: Likewise.
970 * haifa-sched.c: Likewise.
971 * ipa-cp.c: Likewise.
972 * ipa-inline.c: Likewise.
973 * ipa-prop.h: Likewise.
974 * ipa-pure-const.c: Likewise.
975 * ipa-struct-reorg.c: Likewise.
976 * ipa-struct-reorg.h: Likewise.
977 * ipa-type-escape.c: Likewise.
978 * ipa.c: Likewise.
979 * loop-doloop.c: Likewise.
980 * mips-tfile.c: Likewise.
981 * mkmap-flat.awk: Likewise.
982 * mkmap-symver.awk: Likewise.
983 * modulo-sched.c: Likewise.
984 * omp-low.c: Likewise.
985 * optabs.c: Likewise.
986 * optabs.h: Likewise.
987 * opts.c: Likewise.
988 * passes.c: Likewise.
989 * postreload-gcse.c: Likewise.
990 * postreload.c: Likewise.
991 * predict.c: Likewise.
992 * pretty-print.h: Likewise.
993 * profile.c: Likewise.
994 * protoize.c: Likewise.
995 * ra-conflict.c: Likewise.
996 * real.c: Likewise.
997 * recog.c: Likewise.
998 * regclass.c: Likewise.
999 * regs.h: Likewise.
1000 * reload.c: Likewise.
1001 * rtl-error.c: Likewise.
1002 * rtlanal.c: Likewise.
1003 * scan.h: Likewise.
1004 * sched-rgn.c: Likewise.
1005 * see.c: Likewise.
1006 * stmt.c: Likewise.
1007 * target.h: Likewise.
1008 * tree-dfa.c: Likewise.
1009 * tree-eh.c: Likewise.
1010 * tree-flow-inline.h: Likewise.
1011 * tree-inline.c: Likewise.
1012 * tree-into-ssa.c: Likewise.
1013 * tree-loop-distribution.c: Likewise.
1014 * tree-nested.c: Likewise.
1015 * tree-parloops.c: Likewise.
1016 * tree-pass.h: Likewise.
1017 * tree-pretty-print.c: Likewise.
1018 * tree-profile.c: Likewise.
1019 * tree-scalar-evolution.c: Likewise.
1020 * tree-sra.c: Likewise.
1021 * tree-ssa-alias-warnings.c: Likewise.
1022 * tree-ssa-ccp.c: Likewise.
1023 * tree-ssa-coalesce.c: Likewise.
1024 * tree-ssa-dom.c: Likewise.
1025 * tree-ssa-dse.c: Likewise.
1026 * tree-ssa-forwprop.c: Likewise.
1027 * tree-ssa-live.c: Likewise.
1028 * tree-ssa-live.h: Likewise.
1029 * tree-ssa-loop-im.c: Likewise.
1030 * tree-ssa-loop-ivopts.c: Likewise.
1031 * tree-ssa-loop-niter.c: Likewise.
1032 * tree-ssa-loop-prefetch.c: Likewise.
1033 * tree-ssa-phiopt.c: Likewise.
1034 * tree-ssa-phiprop.c: Likewise.
1035 * tree-ssa-sccvn.c: Likewise.
1036 * tree-ssa-ter.c: Likewise.
1037 * tree-ssa-threadupdate.c: Likewise.
1038 * tree-ssa.c: Likewise.
1039 * tree-vect-analyze.c: Likewise.
1040 * tree-vect-transform.c: Likewise.
1041 * tree-vectorizer.c: Likewise.
1042 * tree-vn.c: Likewise.
1043 * tree-vrp.c: Likewise.
1044 * tree.c: Likewise.
1045 * tree.def: Likewise.
1046 * tree.h: Likewise.
1047 * unwind-dw2-fde.c: Likewise.
1048 * unwind.inc: Likewise.
1049 * value-prof.c: Likewise.
1050 * vmsdbgout.c: Likewise.
1051
6bf2f78a
DE
10522008-06-05 David Edelsohn <edelsohn@gnu.org>
1053
1054 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1055 always place FP constants in the TOC for TARGET_POWERPC64.
1056 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1057
4f011e1e
JM
10582008-06-05 Joseph Myers <joseph@codesourcery.com>
1059
1060 * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1061 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1062 enable for TARGET_E500_DOUBLE.
1063 (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1064 * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1065 floating-point modes like integer modes for E500 double.
1066 (rs6000_legitimate_offset_address_p): Likewise.
1067 (rs6000_legitimize_address): Likewise. Do not allow REG+REG
1068 addressing for DDmode for E500 double.
1069 (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1070 modes as using 64-bits of registers for E500 double.
1071 (spe_build_register_parallel): Do not handle DDmode or TDmode.
1072 (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1073 specially for E500 double.
1074 (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1075 TDmode for E500 double.
1076 (rs6000_gimplify_va_arg): Only handle SDmode in registers
1077 specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1078 (rs6000_split_multireg_move): Do not handle TDmode specially for
1079 E500 double.
1080 (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1081 using 64-bit registers for E500 double.
1082 (emit_frame_save): Do not handle DDmode specially for E500 double.
1083 (gen_frame_mem_offset): Likewise.
1084 (rs6000_function_value): Do not call spe_build_register_parallel
1085 for DDmode or TDmode.
1086 (rs6000_libcall_value): Likewise.
1087 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1088 DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1089 for E500 double.
1090
bd7415db
L
10912008-06-04 H.J. Lu <hongjiu.lu@intel.com>
1092
1093 * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1094 in comments.
1095
9e8c2a98
JG
10962008-06-04 Junjie Gu <jgu@tensilica.com>
1097
1098 * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1099 comparison for frame pointers.
1100
28734c39
AH
11012008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
1102
1103 PR target/27386
88057dc8 1104 * config/avr/avr.h (PUSH_ROUNDING): Remove.
28734c39 1105
515e442a
AH
11062008-06-04 Andy Hutchinson <hutchinsonandy@aim.com>
1107
1108 PR target/30243
1109 * builtins.c (expand_builtin_signbit): Don't take lowpart when
1110 register is already smaller or equal to required mode.
1111
c2699190
XDL
11122008-06-04 Xinliang David Li <davidxl@google.com>
1113
1114 * tree-call-cdce.c: New file.
1115 (cond_dead_built_in_calls): New static variable.
1116 (input_domain): New struct.
1117 (check_pow): New function.
1118 (check_builtin_call): Ditto.
1119 (check_target_format): Ditto.
1120 (is_call_dce_candidate): Ditto.
1121 (gen_one_condition): Ditto.
1122 (gen_conditions_for_domain): Ditto.
1123 (get_domain): Ditto.
1124 (gen_conditions_for_pow_cst_base): Ditto.
1125 (gen_conditions_for_pow_int_base): Ditto.
1126 (gen_conditions_for_pow): Ditto.
1127 (get_no_error_domain): Ditto.
1128 (gen_shrink_wrap_conditions): Ditto.
1129 (shrink_wrap_one_built_in_call): Ditto.
1130 (shink_wrap_conditional_dead_built_in_calls): Ditto.
1131 (tree_call_cdce): Ditto.
1132 (gate_call_cdce): Ditto.
1133 (pass_call_cdce): New gimple pass.
1134 * passes.c: (init_optimization_passes): New pass.
1135 * tree-pass.h: New pass declaration.
1136 * opts.c (decode_options): New flag setting.
1137 * common.opt: Add -ftree-builtin-call-dce flag.
1138 * Makefile.in: Add new source file.
1139 * tempvar.def: New tv_id.
1140 * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1141
7946578b
RG
11422008-06-04 Richard Guenther <rguenther@suse.de>
1143
88057dc8 1144 * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
7946578b
RG
1145 (is_call_clobbered): Always check var_ann->call_clobbered.
1146 (mark_call_clobbered): Always set var_ann->call_clobbered.
1147 (clear_call_clobbered): Always clear var_ann->call_clobbered.
1148 * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1149 (reset_alias_info): Clear call clobbering info on MTAGs and
1150 globals as well.
1151 (set_pt_anything): Set pt_global_mem.
1152 (create_tag_raw): Adjust comment.
1153 (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1154
884316ff 11552008-06-04 Joseph Myers <joseph@codesourcery.com>
88057dc8 1156 Maxim Kuvyrkov <maxim@codesourcery.com>
884316ff
JM
1157
1158 * config/m68k/m68k.opt (mxgot): New option.
1159 * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1160 (m68k_output_addr_const_extra): New.
1161 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1162 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1163 * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1164 * doc/invoke.texi (M680x0 Options): Document -mxgot.
1165
0e19bf42
RG
11662008-06-04 Richard Guenther <rguenther@suse.de>
1167
1168 * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1169 negative or non-representable offsets.
1170
999d3194
L
11712008-06-03 H.J. Lu <hongjiu.lu@intel.com>
1172
88057dc8 1173 * config/i386/i386.c (ix86_gen_leave): New.
999d3194
L
1174 (ix86_gen_pop1): Likewise.
1175 (ix86_gen_add3): Likewise.
1176 (ix86_gen_sub3): Likewise.
1177 (ix86_gen_sub3_carry): Likewise.
1178 (ix86_gen_one_cmpl2): Likewise.
1179 (ix86_gen_monitor): Likewise.
1180 (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1181 ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1182 ix86_gen_one_cmpl2 and ix86_gen_monitor.
1183 (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1184 (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1185 mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1186 (ix86_expand_epilogue): Updated.
1187 (print_operand): Handle integer register operand for 'z'.
1188 (ix86_expand_strlensi_unroll_1): Likewise.
1189 (ix86_expand_strlen): Likewise.
1190 (ix86_expand_builtin): Likewise.
1191 (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1192 mov{q}/mov{l} and add{q}/add{l}.
1193
90b48492
KT
11942008-06-03 Kai Tietz <kai.tietz@onevision.com>
1195
d1abda32
KT
1196 * config/i386/i386.md (P): New mode iterator.
1197 (SFmode push_operand splitter): Macroize DImode and SImode pushes
1198 using P mode iterator.
458e816d
KT
1199 (DFmode push_operand splitter): Ditto.
1200 (XFmode push_operand splitter): Ditto.
d1abda32
KT
1201 (DFmode float_extend SFmode push_operand splitter): Ditto.
1202 (XFmode float_extend SFmode push_operand splitter): Do not generate
458e816d
KT
1203 SImode pushes for 64bit target. Macroize Dimode and SImode
1204 pushes using P mode iterator.
1205 (XFmode float_extend DFmode push_operand splitter): Ditto.
90b48492 1206
8a762fcb
KT
12072008-06-03 Kai Tietz <kai.tietz@onevision.com>
1208
1209 * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
88057dc8 1210 * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
8a762fcb
KT
1211 * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1212 return type to int.
1213 (ix86_call_abi_override): Remove check for call_used_regs.
1214
db736800
RG
12152008-06-03 Richard Guenther <rguenther@suse.de>
1216
1217 * tree-ssa-structalias.c (find_func_aliases): Add constraints
1218 for the lhs of calls if the return type contains pointers.
1219
7c800926
KT
12202008-06-03 Kai Tietz <kai.tietz@onevision.com>
1221
1222 * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1223 * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
88057dc8 1224 * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
7c800926
KT
1225 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1226 of cfun and DEFAULT_ABI to deceide abi mode.
1227 (DEFAULT_ABI): New.
1228 (REG_PARM_STACK_SPACE): Removed.
1229 (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1230 (STACK_BOUNDARY): Use default target to deceide stack boundary.
1231 * config/i386/i386-protos.h (ix86_cfun_abi): New.
1232 (ix86_function_abi): Likewise.
1233 (ix86_function_type_abi): Likewise.
1234 (ix86_call_abi_override): Likewise.
1235 * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1236 specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1237 * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1238 (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1239 specific defines.
1240 (X86_64_REGPARM_MAX): New.
1241 (X86_64_SSE_REGPARM_MAX): New.
1242 (X64_REGPARM_MAX): New.
1243 (X64_SSE_REGPARM_MAX): New.
1244 (X86_32_REGPARM_MAX): New.
1245 (X86_32_SSE_REGPARM_MAX): New.
1246 (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1247 (ix86_function_regparm): Handle user calling abi.
1248 (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1249 by DEFAULT_ABI versus SYSV_ABI check.
1250 (ix86_reg_parm_stack_space): New.
1251 (ix86_function_type_abi): New.
1252 (ix86_call_abi_override): New.
1253 (ix86_function_abi): New.
1254 (ix86_cfun_abi): New.
1255 (init_cumulative_args): Call abi specific initialization.
1256 (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1257 (function_arg_64): Extend SSE_REGPARM_MAX check.
1258 (function_arg (): Remove TARGET_64BIT_MS_ABI.
1259 (ix86_pass_by_reference): Likewise.
1260 (ix86_function_value_regno_p): Likewise.
1261 (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1262 (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1263 (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1264 (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1265 (setup_incoming_varargs_64): Adjust regparm for call abi.
1266 (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1267 (ix86_va_start): Likewise.
1268 (ix86_gimplify_va_arg): Likewise.
1269 (ix86_expand_prologue): Likewise.
1270 (output_pic_addr_const): Likewise.
1271 (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1272 (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1273 (x86_output_mi_thunk): Likewise.
1274 (x86_function_profiler): Likewise.
1275 * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1276 (SYSV_ABI, MS_ABI): New constants.
1277 (DEFAULT_ABI): New.
1278 (init_regs): Add prototype of function in regclass.c file.
1279 (OVERRIDE_ABI_FORMAT): New.
1280 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1281 (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1282 (OUTGOING_REG_PARM_STACK_SPACE): New.
1283 (ix86_reg_parm_stack_space): New prototype.
1284 (CUMULATIVE_ARGS): Add call_abi member.
1285 (machine_function): Add call_abi member.
88057dc8
UB
1286 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1287 TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
7c800926 1288
1bf29643
AH
12892008-06-02 Andy Hutchinson <hutchinsonandy@aim.com>
1290
1291 PR target/34879
1292 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1293 (avr_builtin_setjmp_frame_value): New function.
1294 * config/avr/avr.md (nonlocal_goto_receiver): Define.
1295 (nonlocal_goto): Define.
1296
de9f679d
RS
12972008-06-02 Richard Sandiford <rdsandiford@googlemail.com>
1298
1299 * config/mips/mips.c (mips_emit_loadgp): Return early if
1300 there is nothing do to, otherwise emit a blockage if
1301 !TARGET_EXPLICIT_RELOCS || crtl->profile.
1302 * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1303
236ec2d7
RW
13042008-06-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1305
1306 * configure.ac: Drop unneeded backslash ending up in config.in.
1307 * acinclude.m4: Likewise.
1308 * config.in: Regenerate.
1309
3250d724
JH
13102008-05-26 Jan Hubicka <jh@suse.cz>
1311
1312 * predict.c (maybe_hot_frequency_p): Break out of...
1313 (maybe_hot_bb_p): ... here.
1314 (maybe_hot_edge_p): New.
1315 * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1316 * basic-block.h (maybe_hot_edge_p): Declare.
1317
69002843
UB
13182008-05-31 Uros Bizjak <ubizjak@gmail.com>
1319
1320 * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1321 (*cmpfp_<mode>_cc): Ditto.
1322 (*fp_jcc_8<mode>_387): Ditto.
1323 (*fop_<MODEF:mode>_2_i387): Ditto.
1324 (*fop_<MODEF:mode>_3_i387): Ditto.
1325 (*fop_xf_2_i387): Ditto.
1326 (*fop_xf_3_i387): Ditto.
1327
5f9e56b3
TB
13282008-06-02 Tomas Bily <tbily@suse.cz>
1329
69002843 1330 * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5f9e56b3 1331
fa21a761
RS
13322008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1333
1334 * config/mips/mips.c (mips_valid_offset_p): New function.
1335 (mips_valid_lo_sum_p): Likewise.
1336 (mips_classify_address): Use them.
1337 (mips_force_address): New function.
1338 (mips_legitimize_address): Use it.
1339 * config/mips/mips.md (MOVE128): New mode iterator.
1340 (movtf): Require TARGET_64BIT. Remove empty strings.
1341 (*movtf_internal): Rename to...
1342 (*movtf): ...this and require !TARGET_MIPS16. Use "m" instead
1343 of "R" and use {,fp}{load,store} attributes instead of "multi".
1344 Use a separate define_split.
1345 (*movtf_mips16): New pattern.
1346
2f7e2abb
RS
13472008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1348
1349 * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1350 * config/mips/mips.c (mips_expand_before_return): New function.
1351 (mips_expand_epilogue): Call it.
1352 * config/mips/mips.md (return): Turn into a define_expand.
1353 (*return): New insn.
1354
c41c1387
RS
13552008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
1356
1357 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1358 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1359 functions. Do not emit uses and clobbers of CONCATs; individually
1360 use and clobber their operands.
1361 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1362 gen_clobber, emit_use and gen_use.
1363 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1364 (expand_builtin_return): Likewise.
1365 * cfgbuild.c (count_basic_blocks): Likewise.
1366 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1367 * explow.c (emit_stack_restore): Likewise.
1368 * expmed.c (extract_bit_field_1): Likewise.
1369 * expr.c (convert_move, emit_move_complex_parts): Likewise.
1370 (emit_move_multi_word, store_constructor): Likewise.
1371 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1372 (thread_prologue_and_epilogue_insns): Likewise.
1373 * lower-subreg.c (resolve_simple_move): Likewise.
1374 * optabs.c (widen_operand, expand_binop): Likewise.
1375 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1376 * reload.c (find_reloads): Likewise.
1377 * reload1.c (eliminate_regs_in_insn): Likewise.
1378 * stmt.c (expand_nl_goto_receiver): Likewise.
1379 * config/alpha/alpha.md (builtin_longjmp): Likewise.
1380 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1381 * config/arm/arm.c (arm_load_pic_register): Likewise.
1382 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1383 * config/arm/arm.md (untyped_return): Likewise.
1384 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1385 * config/avr/avr.c (expand_prologue): Likewise.
1386 * config/bfin/bfin.c (do_unlink): Likewise.
1387 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1388 * config/cris/cris.c (cris_expand_prologue): Likewise.
1389 * config/darwin.c (machopic_indirect_data_reference): Likewise.
1390 (machopic_legitimize_pic_address): Likewise.
1391 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1392 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1393 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1394 (ix86_expand_convert_uns_didf_sse): Likewise.
1395 (ix86_expand_vector_init_general): Likewise.
1396 * config/ia64/ia64.md (eh_epilogue): Likewise.
1397 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1398 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1399 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1400 (config/iq2000/iq2000.c): Likewise.
1401 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1402 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1403 (builtin_longjmp): Likewise.
1404 * config/mn10300/mn10300.md (call, call_value): Likewise.
1405 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1406 * config/pdp11/pdp11.md (abshi2): Likewise.
1407 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1408 * config/s390/s390.c (s390_emit_prologue): Likewise.
1409 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1410 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1411 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1412 * config/sh/sh.c (prepare_move_operands): Likewise.
1413 (output_stack_adjust, sh_expand_epilogue): Likewise.
1414 (sh_set_return_address, sh_expand_t_scc): Likewise.
1415 * config/sparc/sparc.c (load_pic_register): Likewise.
1416 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1417 * config/spu/spu.c (spu_expand_epilogue): Likewise.
1418 * config/v850/v850.c (expand_epilogue): Likewise.
1419
794cb45e
AS
14202008-05-31 Anatoly Sokolov <aesok@post.ru>
1421
1422 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1423 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1424 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1425 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
1426 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
1427 stack pointer register.
1428 (output_movhi): Remove code for interrupt specific writing to the
1429 stack pointer register.
1430
39f8a3b0
RG
14312008-05-31 Richard Guenther <rguenther@suse.de>
1432
1433 PR tree-optimization/34244
1434 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1435 (tree_expr_nonzero_warnv_p): Likewise.
1436 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1437 ssa_name_nonnegative_p.
1438 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1439 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1440 not tree_expr_nonzero_warnv_p.
1441
1442 PR tree-optimization/36262
1443 Revert
1444 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
1445
69002843
UB
1446 PR tree-optimization/34244
1447 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1448 (record_numbers_of_iterations): New function.
1449 (execute_vrp): Cache the numbers of iterations of loops.
1450 * tree-scalar-evolution.c (scev_reset_except_niters):
1451 New function.
1452 (scev_reset): Use scev_reset_except_niters.
1453 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
39f8a3b0 1454
2643f14e
BS
14552008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
1456
1457 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1458 __WORKAROUND_RETS when appropriate.
1459
ca3a2165
UB
14602008-05-31 Uros Bizjak <ubizjak@gmail.com>
1461
1462 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1463 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1464 mode iterator.
1465 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1466 *fop_df_comm_sse insn patterns using MODEF mode iterator.
1467 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1468 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1469 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1470 *fop_df_1_mixed insn patterns using MODEF mode iterator.
1471 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1472 *fop_df_1_sse insn patterns using MODEF mode iterator.
1473 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1474 *fop_df_1_i387 insn patterns using MODEF mode iterator.
1475 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1476 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1477 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1478 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1479 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1480 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1481 (*fop_xf_4_i387): Use <MODE> for mode attribute.
1482 (*fop_xf_5_i387): Ditto.
1483 (*fop_xf_6_i387): Ditto.
1484
acdfeac3
RG
14852008-05-30 Richard Guenther <rguenther@suse.de>
1486
1487 * builtins.c (build_string_literal): Avoid generating
1488 a non-gimple_val result.
1489
97c3860d
DD
14902008-05-30 DJ Delorie <dj@redhat.com>
1491
1492 * exec-tool.in: Use an environment variable (private) instead of a
1493 file (shared) as a semaphore, so as to not break parallel builds.
1494
856905c2
SB
14952008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
1496
1497 * optabs.c (maybe_encapsulate_block): Remove.
1498 (emit_libcall_block): Adjust accordingly.
1499 * optabs.h (maybe_encapsulate_block): Remove prototype.
1500
1501 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1502 Don't use maybe_encapsulate_block.
1503
0cdc04e8
SB
15042008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
1505
1506 * config/rs6000/rs6000.c (rs6000_legitimize_address,
1507 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1508 rtx is a SYMBOL_REF before calling get_pool_constant.
1509
bfab40f8
EB
15102008-05-30 Eric Botcazou <ebotcazou@adacore.com>
1511
1512 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1513
c100de59
DS
15142008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
1515
1516 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1517 rather than OS names to choose INO_T_EQ definition.
1518 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
ca3a2165 1519 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
c100de59 1520
c776a6d0
DF
15212008-05-29 Daniel Franke <franke.daniel@gmail.com>
1522
1523 PR target/36348
1524 * config/darwin-f.c: New.
1525 * config/t-darwin: Added rule to build darwin-f.o.
1526 * config.gcc: Defined new variable, fortran_target_objs.
1527 (*-*-darwin*): Set fortran_target_objs.
1528 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
ca3a2165 1529 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
c776a6d0
DF
1530 * configure: Regenerated.
1531
a20007a4
L
15322008-05-29 H.J. Lu <hongjiu.lu@intel.com>
1533
1534 PR target/35771
1535 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1536 canonical type if needed.
1537
4efa7ef9
EB
15382008-05-29 Eric Botcazou <ebotcazou@adacore.com>
1539
1540 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1541
2f571334
RG
15422008-05-29 Richard Guenther <rguenther@suse.de>
1543
1544 PR tree-optimization/36343
1545 PR tree-optimization/36346
1546 PR tree-optimization/36347
1547 * tree-flow.h (clobber_what_p_points_to): Declare.
1548 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1549 pointed-to variable is dereferenced is irrelevant to whether
1550 the pointer can access the pointed-to variable.
1551 (clobber_what_p_points_to): New function.
1552 * tree-ssa-alias.c (set_initial_properties): Use it.
1553 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1554 call clobber check for NMTs.
1555
68bb68ca
SP
15562008-05-28 Seongbae Park <seongbae.park@gmail.com>
1557
1558 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1559 for printing gcov_type.
1560
b608a1bc
SP
15612008-05-28 Seongbae Park <seongbae.park@gmail.com>
1562
1563 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1564 and the eh region information.
1565 * value-prof.c (gimple_move_stmt_histograms): New function.
1566 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1567
77da4248
AT
15682008-05-28 Andreas Tobler <a.tobler@schweiz.org>
1569
1570 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1571
3dfb6f59
SP
15722008-05-28 Seongbae Park <seongbae.park@gmail.com>
1573
1574 * value-prof.c (tree_ic_transform): Print counts.
1575 * tree-profile.c (tree_gen_ic_func_profiler):
ca3a2165
UB
1576 Clear __gcov_indreict_call_callee variable to avoid misattribution
1577 of the profile.
3dfb6f59 1578
5a976da0
RAE
15792008-05-28 Rafael Espindola <espindola@google.com>
1580
1581 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1582 invalid sharing.
1583
38154e4f
RG
15842008-05-28 Richard Guenther <rguenther@suse.de>
1585
1586 PR tree-optimization/36339
1587 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1588 and clobbering code out of the loop.
1589
963fc8d0
AK
15902008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
1591
1592 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1593 letters defined.
1594
1595 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1596 s390_contiguous_bitmask_p, s390_symref_operand_p,
1597 s390_check_symref_alignment, s390_reload_larl_operand,
1598 s390_reload_symref_address): New functions.
1599 (s390_branch_condition_mnemonic): Support compare and branch
1600 instructions.
1601 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1602 and 'W' constraints.
1603 (s390_secondary_reload): Add secondary reloads for unaligned
1604 symbol refs or symbol refs to floating point or QI/TI mode
1605 integer values.
1606 (legitimate_address_p): Accept symbol references as addresses.
1607 (s390_expand_insv): Use rotate and insert selected bits
1608 instruction for insv when building for z10.
1609 (print_operand_address): Handle symbol ref addresses.
ca3a2165 1610 (print_operand): Output modifier 'c' added for signed byte values.
963fc8d0
AK
1611 (s390_encode_section_info): Mark symbol refs with
1612 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1613
1614 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1615 (length attribute): RRF, RRR have 4 byte length.
1616 (FPALL, INTALL): New mode iterators added.
1617 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1618 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1619 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1620 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1621 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1622 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1623 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1624 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1625 instructions.
1626 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1627 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1628 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1629 reload<INTALL:mode><P:mode>_toreg_z10,
1630 reload<FPALL:mode><P:mode>_tomem_z10,
1631 reload<FPALL:mode><P:mode>_toreg_z10,
1632 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1633 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1634 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1635 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1636 definition.
1637 (movmem, clrmem, cmpmem): New splitters added.
1638
1639 * config/s390/predicates.md (larl_operand): Use
1640 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1641 SYMBOL_REF_ALIGN1_P.
1642 (s390_signed_integer_comparison,
1643 s390_unsigned_integer_comparison): New predicates.
1644
1645 * config/s390/s390-protos.h (s390_check_symref_alignment,
1646 s390_contiguous_bitmask_p, s390_reload_larl_operand,
1647 s390_reload_symref_address,
1648 s390_compare_and_branch_condition_mask): Prototypes added.
1649
1650 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1651 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1652 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1653
93538e8e
AK
16542008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
1655
1656 * config/s390/s390.c (z10_cost): New cost function for z10.
ca3a2165 1657 (s390_handle_arch_option, override_options): Support -march=z10 switch.
93538e8e
AK
1658 (s390_issue_rate): Adjust issue rate for z10.
1659 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1660 (processor_flags): Add PF_Z10.
1661 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1662 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1663 * gcc/config.gcc: Add z10.
1664
540f6bda
RG
16652008-05-28 Richard Guenther <rguenther@suse.de>
1666
1667 PR tree-optimization/36291
1668 * tree-flow. h (struct gimple_df): Remove var_anns member.
1669 * tree-flow-inline.h (gimple_var_anns): Remove.
1670 (var_ann): Simplify.
1671 * tree-dfa.c (create_var_ann): Simplify.
1672 (remove_referenced_var): Clear alias info from var_anns of globals.
1673 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1674 (delete_tree_ssa): Clear alias info from var_anns of globals.
1675 Do not free var_anns.
1676 (var_ann_eq): Remove.
1677 (var_ann_hash): Likewise.
1678
33db2060
MS
16792008-05-28 Mark Shinwell <shinwell@codesourcery.com>
1680
1681 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1682 and loongson2f entries.
1683 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1684 * config/mips/mips.h (processor_type): Add Loongson-2E
1685 and Loongson-2F entries.
1686 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1687 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1688 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1689 * doc/invoke.texi (MIPS Options): Document loongson2e
1690 and loongson2f processor names.
1691
23ac85e7
L
16922008-05-27 H.J. Lu <hongjiu.lu@intel.com>
1693
1694 PR target/35767
1695 PR target/35771
1696 * config/i386/i386.c (ix86_function_arg_boundary): Use
1697 alignment of canonical type.
1698 (ix86_expand_vector_move): Check unaligned memory access for
1699 all SSE modes.
1700
3395aa05
L
17012008-05-27 H.J. Lu <hongjiu.lu@intel.com>
1702
1703 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1704 Moved to the front of file.
1705
3ce6e42e
XG
17062008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
1707 H.J. Lu <hongjiu.lu@intel.com>
1708
1709 * dwarf2out.c (current_fde): New.
1710 (add_cfi): Use it.
1711 (lookup_cfa:): Likewise.
1712 (dwarf2out_end_epilogue): Likewise.
1713 (dwarf2out_note_section_used): Likewise.
1714
a3299096
MM
17152008-05-27 Michael Matz <matz@suse.de>
1716
1717 PR c++/27975
1718 * c.opt (Wenum-compare): New warning option.
1719 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
1720
bd42a56b
MM
17212008-05-27 Michael Matz <matz@suse.de>
1722
1723 PR middle-end/36326
1724 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1725 non-BLKmode types.
1726 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1727 into memory as tail calls.
1728
a46fc136
RG
17292008-05-27 Richard Guenther <rguenther@suse.de>
1730
1731 PR tree-optimization/36339
1732 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1733 pointers cause all addressable variables to be call clobbered.
1734
6fe2f65a
RG
17352008-05-27 Richard Guenther <rguenther@suse.de>
1736
1737 PR tree-optimization/36245
ca3a2165 1738 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
6fe2f65a 1739
fb492564
AK
17402008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
1741
1742 * config/s390/s390.md: Replace all occurences of the 'm'
1743 constraint with 'RT'.
1744
3af8e996
AK
17452008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
1746
1747 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1748 definitions added.
1749 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1750 "*movdi_64".
1751 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1752 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1753 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1754
7ac28727
AK
17552008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
1756
1757 * reload.c: (find_reloads): Skip alternatives according to the
1758 "enabled" attribute. Constify the constraint variable.
1759 * recog.c (get_attr_enabled): Add default implementation.
1760 (extract_insn): Set the alternative_enabled_p array
1761 in the recog_data struct.
1762 (preprocess_constraints, constrain_operands): Skip
1763 alternatives according to the "enabled" attribute
1764 * recog.h (struct recog_data): New field alternative_enabled_p.
1765 (skip_alternative): New inline function.
ca3a2165 1766 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
7ac28727
AK
1767 (record_reg_classes): Skip alternative according to the
1768 "enabled" attribute.
1769
1770 * doc/md.texi: Add documention for the "enabled" attribute.
1771
a4edaf83
AK
17722008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
1773
1774 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1775 * postreload.c (reload_cse_simplify_operands): Replace 'm'
1776 constraint with TARGET_MEM_CONSTRAINT.
1777 * recog.c (asm_operand_ok, preprocess_constraints,
1778 constrain_operands): Likewise.
1779 * regclass.c (record_reg_classes): Likewise.
ca3a2165 1780 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
a4edaf83 1781 * reload1.c (maybe_fix_stack_asms): Likewise.
ca3a2165 1782 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
a4edaf83
AK
1783 * recog.h: Adjust comment.
1784 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
ca3a2165 1785 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
a4edaf83
AK
1786 * doc/md.texi: Add a note to description of 'm' constraint.
1787 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1788
469dfae9
EB
17892008-05-27 Eric Botcazou <ebotcazou@adacore.com>
1790
1791 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1792 that the bitfield is of integral type before testing its precision.
1793
986a8d90
TS
17942008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
1795 Sa Liu <saliu@de.ibm.com>
1796
1797 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
1798 __modti3, __udivti3, __umodti3 and __udivmodti4.
1799 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1800 that implement TImode mul and div functions.
1801 * config/spu/multi3.c: New. Implement __multi3.
1802 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1803 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1804 functions on SPU.
1805
02135bc1
SB
18062008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
1807
1808 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1809 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1810 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1811 tls_sysv_suffix): New mode and mode attribute iterators.
1812 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1813 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1814 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1815 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1816 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1817 iterators.
1818
ba977e1a
EB
18192008-05-26 Eric Botcazou <ebotcazou@adacore.com>
1820
1821 PR tree-optimization/36329
1822 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1823 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1824 * cgraphbuild.c (initialize_inline_failed): Use the latter
1825 macro in lieu of the former.
1826 * ipa-inline.c (cgraph_mark_inline): Likewise.
1827 (cgraph_decide_inlining_of_small_function): Likewise.
1828 (cgraph_decide_inlining): Likewise.
1829 (cgraph_decide_inlining_incrementally): Likewise.
1830
4d492420 18312008-05-26 Tristan Gingold <gingold@adacore.com>
ca3a2165 1832 Anatoly Sokolov <aesok@post.ru>
4d492420
TG
1833
1834 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1835 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1836 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
1837 optimization for 'avr6' architecture.
1838
319a58c6
AH
18392008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
1840
1841 PR target/34932
1842 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1843
26fa9076
RG
18442008-05-26 Richard Guenther <rguenther@suse.de>
1845
1846 * tree-ssa-sccvn.c (expr_has_constants): Declare.
ca3a2165 1847 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
26fa9076 1848
76fe54f0
L
18492008-05-26 H.J. Lu <hongjiu.lu@intel.com>
1850
1851 PR middle-end/36253
ca3a2165 1852 * caller-save.c (insert_restore): Verify alignment of spill space.
76fe54f0 1853 (insert_save): Likewise.
76fe54f0 1854 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
76fe54f0
L
1855 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1856 (STACK_SLOT_ALIGNMENT): Likewise.
76fe54f0
L
1857 * function.c (LOCAL_ALIGNMENT): Removed.
1858 (get_stack_local_alignment): New.
1859 (assign_stack_local): Use it. Set alignment on stack slot.
1860 (assign_stack_temp_for_type): Use get_stack_local_alignment.
76fe54f0
L
1861 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1862 (STACK_SLOT_ALIGNMENT): New.
76fe54f0
L
1863 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1864 stack slot in XFmode.
1865
1866 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1867
e5f005e1
KT
18682008-05-26 Kai Tietz <kai.tietz@onevision.com>
1869
1870 PR/36321
1871 * config/i386/i386.md (allocate_stack_worker_64): Make sure
1872 argument operand in rax isn't removed.
1873
fcb4587e
RG
18742008-05-26 Richard Guenther <rguenther@suse.de>
1875
1876 PR middle-end/36300
1877 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1878 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
1879
25497730
DF
18802008-05-26 Daniel Franke <franke.daniel@gmail.com>
1881
1882 PR bootstrap/36331
1883 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1884
e8a25ca8
DH
18852008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
1886
1887 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1888 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1889
3651f7ad
EB
18902008-05-25 Eric Botcazou <ebotcazou@adacore.com>
1891
ca3a2165 1892 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3651f7ad
EB
1893 build a trampoline if we don't want one.
1894 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1895 return zero for nested functions if we don't want a trampoline.
1896
b885a4c1
DF
18972008-05-26 Daniel Franke <franke.daniel@gmail.com>
1898
1899 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1900
670637ee
DF
19012008-05-26 Daniel Franke <franke.daniel@gmail.com>
1902
1903 PR fortran/18428
1904 * c.opt: Removed undocumented option '-lang-fortran'.
1905 * c-common.h: Removed global variable 'lang_fortran'.
1906 * c-opts.c (c_common_handle_option): Removed code to handle
1907 option '-lang-fortran'. Updated includes.
1908 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1909 definition of '__GFORTRAN__'.
1910 (define__GNUC__): Reimplemented to use BASEVER and
1911 cpp_define_formatted.
1912 (builtin_define_with_value_n): Removed.
1913 * c-incpath.h: Renamed to ...
1914 * incpath.h: ... this.
1915 * c-incpath.c: Renamed to ...
1916 * incpath.c: ... this. Updated includes.
1917 * fix-header.c: Updated includes.
1918 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
1919 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
1920 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
1921
4cea6c02
EB
19222008-05-25 Eric Botcazou <ebotcazou@adacore.com>
1923
1924 * tree.h: Update the table of flags used on tree nodes.
1925 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
1926 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
1927 (FORCED_LABEL): Add access check.
1928 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
1929 (ASM_INPUT_P): Likewise.
1930 (ASM_VOLATILE_P): Likewise.
1931 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
1932 (OMP_SECTION_LAST): Access private_flag directly.
1933 (OMP_RETURN_NOWAIT): Likewise.
1934 (OMP_PARALLEL_COMBINED): Likewise.
1935 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
1936 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
1937 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
1938 deprecated_flag directly.
1939
3bffa195
L
19402008-05-25 H.J. Lu <hongjiu.lu@intel.com>
1941
1942 * final.c (frame_pointer_needed): Removed.
1943 * flags.h (frame_pointer_needed): Likewise.
1944
1945 * function.h (rtl_data): Add frame_pointer_needed.
1946 (frame_pointer_needed): New.
1947
93fea8d3
AL
19482008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
1949
1950 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
1951
29470771
SB
19522008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
1953
1954 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
1955 SRC is a REG.
1956
dd25a747
AM
19572008-05-25 Alan Modra <amodra@bigpond.net.au>
1958
1959 * c-common.c (strip_array_types): Move function to..
1960 * tree.c: ..here.
1961 (get_inner_array_type): Delete.
1962 * c-common.h (strip_array_types): Move declaration to..
1963 * tree.h: ..here.
1964 (get_inner_array_type): Delete.
1965 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
1966 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1967 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1968 * config/pa/pa.c (emit_move_sequence): Likewise.
1969
c36c9821
L
19702008-05-24 H.J. Lu <hongjiu.lu@intel.com>
1971
1972 * config/i386/i386.md (*sse_prologue_save_insn): Set length
1973 attribute to 34.
1974
88280cf9
AH
19752008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
1976
1977 * function.c: Include target hook for nonlocal_goto frame value.
1978
7c88f67a
RG
19792008-05-24 Richard Guenther <rguenther@suse.de>
1980
ca3a2165
UB
1981 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
1982 variable can be only accessed through a pointer or a union.
7c88f67a 1983
32101f99
KG
19842008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1985
1986 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
1987 * doc/extend.texi: Likewise.
1988
80b093df
DD
19892008-05-23 DJ Delorie <dj@redhat.com>
1990
c9db440d
DD
1991 * config/m32c/jump.md (untyped_call): Add.
1992
80b093df
DD
1993 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
1994 for A24 to PSImode.
1995 (m32c_address_cost): Detail costs for indirect offsets.
1996
fbcfcb3c
RAE
19972008-05-23 Rafael Espindola <espindola@google.com>
1998
1999 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2000 if a node is a SUBREG.
2001 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2002 is a SUBREG.
2003
007e61c2
PB
20042008-05-23 Paul Brook <paul@codesourcery.com>
2005 Carlos O'Donell <carlos@codesourcery.com>
2006
2007 * doc/extend.texi: Clarify use of __attribute__((naked)).
2008 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2009 * target.h (gcc_target): Add allocate_stack_slots_for_args.
2010 * function.c (use_register_for_decl): Use
2011 targetm.calls.allocate_stack_slots_for_args.
ca3a2165
UB
2012 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2013 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
007e61c2
PB
2014 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2015
a2acd8bf
EB
20162008-05-23 Eric Botcazou <ebotcazou@adacore.com>
2017
2018 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2019
c201998a
SM
20202008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
2021
2022 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2023 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2024 is only rounded once.
2025
833248d2
RG
20262008-05-23 Richard Guenther <rguenther@suse.de>
2027
ca3a2165 2028 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
833248d2 2029
922e3e33
UB
20302008-05-23 Uros Bizjak <ubizjak@gmail.com>
2031 Jakub Jelinek <jakub@redhat.com>
2032
2033 PR target/36079
2034 * configure.ac: Handle --enable-cld.
2035 * configure: Regenerated.
2036 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2037 * config/i386/i386.h (struct machine_function): Add needs_cld field.
2038 (ix86_current_function_needs_cld): New define.
2039 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2040 (cld): New isns pattern.
2041 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2042 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2043 * config/i386/i386.opt (mcld): New option.
2044 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2045 TARGET_CLD and ix86_current_function_needs_cld.
2046 (override_options): Use -mcld by default for 32-bit code if
2047 USE_IX86_CLD.
2048
2049 * doc/install.texi (Options specification): Document --enable-cld.
2050 * doc/invoke.texi (Machine Dependent Options)
ca3a2165
UB
2051 [i386 and x86-64 Options]: Add -mcld option.
2052 (Intel 386 and AMD x86-64 Options): Document -mcld option.
922e3e33 2053
71995c2c
KT
20542008-05-23 Kai Tietz <kai.tietz@onevison.com>
2055 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2056 (return_in_memory_64): Likewise.
2057 (return_in_memory_ms_64): Likewise.
2058
3bf5906b
KG
20592008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2060
2061 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2062 * builtins.c (fold_builtin_fpclassify): New.
2063 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2064 * builtins.def (BUILT_IN_FPCLASSIFY): New.
2065 * c-common.c (handle_type_generic_attribute): Adjust to accept
2066 fixed arguments before an elipsis.
2067 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2068 * doc/extend.texi: Document __builtin_fpclassify.
2069
c63cac47
AH
20702008-05-22 Aldy Hernandez <aldyh@redhat.com>
2071
2072 * omp-low.c (gate_expand_omp_ssa): Remove.
2073 (pass_expand_omp_ssa): Remove.
2074 (gate_expand_omp): Do not check for flag_openmp_ssa.
2075 * common.opt (-fopenmp-ssa): Remove.
2076 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2077
3217af3e
KK
20782008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
2079
2080 * config/sh/sh.opt (mfixed-range): New option.
2081 * config/sh/sh-protos.h (sh_fix_range): Declare.
2082 * config/sh/sh.c (sh_fix_range): New function.
2083 * config/sh/sh.h (sh_fixed_range_str): Declare.
2084 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2085 is not empty.
2086 * doc/invoke.texi (SH Options): Document -mfixed-range.
2087
42b18a21
KT
20882008-05-22 Kai Tietz <kai.tietz@onevision.com>
2089
2090 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2091 it before the redeclaration.
2092
97822902
AS
20932008-05-22 Anatoly Sokolov <aesok@post.ru>
2094
2095 * config/avr/avr.c (get_sequence_length): Add new function.
2096 (expand_prologue, expand_epilogue): Remove duplicate code.
2097
4799e6aa
RAE
20982008-05-22 Rafael Espindola <espindola@google.com>
2099
2100 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2101 sharing.
2102
9d3a9de1
L
21032008-05-22 H.J. Lu <hongjiu.lu@intel.com>
2104
2105 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2106 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2107
2108 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2109 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2110 (vect_update_misalignment_for_peel): Likewise.
2111 (vector_alignment_reachable_p): Likewise.
2112 * tree-vect-transform.c (vectorizable_load): Likewise.
2113 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
922e3e33
UB
2114 (get_vectype_for_scalar_type): Pass mode of scalar_type
2115 to UNITS_PER_SIMD_WORD.
9d3a9de1
L
2116
2117 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2118 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2119 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2120 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2121 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2122
f8b52c2f
IR
21232008-05-22 Ira Rosen <irar@il.ibm.com>
2124
2125 PR tree-optimization/36293
2126 * tree-vect-transform.c (vect_transform_strided_load): Don't check
2127 if the first load must be skipped because of a gap.
2128
1842e4d4
RG
21292008-05-22 Richard Guenther <rguenther@suse.de>
2130
2131 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
2132 more cases of offset disambiguation that is possible if
2133 strict-aliasing rules apply.
2134 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2135 for basic offset and type-based disambiguation.
2136
31ebe593
L
21372008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2138
2139 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2140 ix86_expand_vector_set on V16QImode for SSE4.1.
2141
c24d4112
TT
21422008-05-21 Tom Tromey <tromey@redhat.com>
2143
2144 * c.opt (Wimport): Mark as undocumented.
2145 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2146 -Wno-import.
2147 (Warning Options): Likewise.
2148 * doc/cppopts.texi: Don't mention -Wimport.
2149
4e8d7177
SP
21502008-05-21 Sebastian Pop <sebastian.pop@amd.com>
2151
2152 PR tree-optimization/36287
2153 PR tree-optimization/36286
2154 * lambda-code.c (build_access_matrix): Do not use the loop->num
2155 for computing the number of induction variables: use the loop depth
2156 instead.
2157
6110c44a
KT
21582008-05-21 Kai Tietz <kai.tietz@onevision.com>
2159
2160 PR/36280
2161 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2162 option -f(no-)leading-underscore.
2163
e73caa00
L
21642008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2165
2166 * config/i386/i386.c (ix86_expand_vector_init_general): Use
2167 GET_MODE_NUNITS (mode).
2168
4adf8008
PB
21692008-05-21 Peter Bergner <bergner@vnet.ibm.com>
2170
2171 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2172 (-mmulhw): Add 464 to description.
2173 (-mdlmzb): Likewise.
2174 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2175 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2176 464fp entries.
2177 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2178 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2179 * config/rs6000/rs6000.md: Update comments for 464.
2180
00a25a2d
JJ
21812008-05-21 Janis Johnson <janis187@us.ibm.com>
2182
2183 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2184
80980aec
L
21852008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2186
2187 * config/i386/sse.md (vec_extractv4sf): Removed.
2188 (vec_extractv2df): Likewise.
2189 (vec_extractv2di): Likewise.
2190 (vec_extractv4si): Likewise.
2191 (vec_extractv8hi): Likewise.
2192 (vec_extractv16qi): Likewise.
2193 (vec_extract<mode>): New.
2194
349587b8
L
21952008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2196
2197 * config/i386/sse.md (vec_setv4sf): Removed.
2198 (vec_setv2df): Likewise.
2199 (vec_setv2di): Likewise.
2200 (vec_setv4si): Likewise.
2201 (vec_setv8hi): Likewise.
2202 (vec_setv16qi): Likewise.
2203 (vec_set<mode>): New.
2204
0864e1e8
L
22052008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2206
2207 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2208 goto for vec_concat and vec_interleave.
2209
f8caa3a8
L
22102008-05-21 H.J. Lu <hongjiu.lu@intel.com>
2211
2212 * config/i386/sse.md (vec_initv4sf): Removed.
2213 (vec_initv2df): Likewise.
2214 (vec_initv2di): Likewise.
2215 (vec_initv4si): Likewise.
2216 (vec_initv8hi): Likewise.
2217 (vec_initv16qi): Likewise.
2218 (vec_init<mode>): New.
2219
fb291f50
JM
22202008-05-21 Joseph Myers <joseph@codesourcery.com>
2221
2222 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2223
dae4174e
TT
22242008-05-21 Tom Tromey <tromey@redhat.com>
2225
2226 * ggc-zone.c (lookup_page_table_if_allocated): New function.
2227 (zone_find_object_offset): Likewise.
2228 (gt_ggc_m_S): Likewise.
2229 (highest_bit): Likewise.
2230 * ggc-page.c (gt_ggc_m_S): New function.
2231 * stringpool.c (string_stack): Remove.
2232 (init_stringpool): Update.
2233 (ggc_alloc_string): Use ggc_alloc.
2234 (maybe_delete_ident): New function.
2235 (ggc_purge_stringpool): Likewise.
2236 (gt_ggc_m_S): Remove.
2237 * ggc-common.c (ggc_protect_identifiers): New global.
2238 (ggc_mark_roots): Call ggc_purge_stringpool. Use
2239 ggc_protect_identifiers.
2240 * ggc.h (ggc_protect_identifiers): Declare.
2241 (gt_ggc_m_S): Update.
2242 (ggc_purge_stringpool): Declare.
2243 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2244 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2245 special case.
2246 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2247
ccbdd3bc
DM
22482008-05-21 David S. Miller <davem@davemloft.net>
2249
2250 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2251 tmake_file.
2252
e8a2a782
EB
22532008-05-21 Eric Botcazou <ebotcazou@adacore.com>
2254
2255 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2256 once finished.
2257
06d19617
DD
22582008-05-20 David Daney <ddaney@avtrex.com>
2259
2260 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
922e3e33
UB
2261 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2262 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
06d19617
DD
2263 UNSPEC_UPDATE_GOT_VERSION): Renumber.
2264 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2265 (atomic_hiqi_op): New define_code_iterator.
922e3e33 2266 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
06d19617
DD
2267 mips_expand_compare_and_swap_12.
2268 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
922e3e33 2269 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
06d19617
DD
2270 (sync_<optab><mode>, sync_old_<optab><mode>,
2271 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
922e3e33 2272 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
06d19617
DD
2273 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2274 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
922e3e33 2275 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
06d19617
DD
2276 (test_and_set_12): New insn.
2277 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2278 sync_new_<optab><mode>, sync_old_nand<mode>,
2279 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
2280 clobber to operand 0 for SI and DI mode insns.
2281 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2282 mips_gen_fn_4): New typedefs.
2283 (mips_gen_fn_ptrs): Define new union type.
2284 (mips_expand_compare_and_swap_12): Remove declaration.
2285 (mips_expand_atomic_qihi): Declare function.
2286 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2287 (mips_expand_atomic_qihi): ... this. Use new generator function
2288 parameter.
2289 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2290 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
ca3a2165 2291 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
06d19617
DD
2292 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2293 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2294 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2295 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2296 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2297 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
ca3a2165
UB
2298 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2299 New macros.
06d19617 2300
a35f6a35
L
23012008-05-20 H.J. Lu <hongjiu.lu@intel.com>
2302
2303 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2304 the missing break.
2305
9b678d96
AS
23062008-05-20 Anatoly Sokolov <aesok@post.ru>
2307
2308 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2309 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2310 (avr_attribute_table): Add 'OS_main' function attribute.
2311 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2312 functions with 'OS_main' attribute.
2313
6be34936
RG
23142008-05-20 Richard Guenther <rguenther@suse.de>
2315
2316 PR tree-optimization/35204
2317 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2318 helper, split out from ...
2319 (DFS): ... here. Make the DFS walk non-recursive.
2320
9857228c
SP
23212008-05-20 Sebastian Pop <sebastian.pop@amd.com>
2322 Jan Sjodin <jan.sjodin@amd.com>
2323
2324 PR tree-optimization/36181
2325 * tree-parloops.c (loop_has_vector_phi_nodes): New.
2326 (parallelize_loops): Don't parallelize when the loop has vector
2327 phi nodes.
2328
9f275479
JS
23292008-05-20 Jan Sjodin <jan.sjodin@amd.com>
2330 Sebastian Pop <sebastian.pop@amd.com>
2331
922e3e33
UB
2332 * tree-loop-linear.c (gather_interchange_stats): Look in the access
2333 matrix, and never look at the tree representation of the memory
2334 accesses.
9f275479 2335 (linear_transform_loops): Computes parameters and access matrices.
922e3e33
UB
2336 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2337 when fails.
9f275479
JS
2338 (access_matrix_get_index_for_parameter): New.
2339 * tree-data-ref.h (struct access_matrix): New.
2340 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2341 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2342 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2343 am_vector_index_for_loop): New.
2344 (struct data_reference): Add field access_matrix.
2345 (DR_ACCESS_MATRIX): New.
2346 (compute_data_dependences_for_loop): Update declaration.
2347 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2348 * lambda.h (lambda_vector_vec_p): Declared.
2349 * lambda-code.c: Depend on pointer-set.h.
2350 (lambda_collect_parameters_from_af, lambda_collect_parameters,
2351 av_for_af_base, av_for_af, build_access_matrix,
2352 lambda_compute_access_matrices): New.
2353 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2354
f30fad61
JM
23552008-05-20 Joseph Myers <joseph@codesourcery.com>
2356
2357 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2358 $SOURCEDIR/include.
2359
5b78fc3e
JS
23602008-05-20 Jan Sjodin <jan.sjodin@amd.com>
2361 Sebastian Pop <sebastian.pop@amd.com>
2362
2363 PR tree-optimization/36206
2364 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2365 FOLD_CONVERSIONS.
2366 (instantiate_scev_1): Rename flags to fold_conversions.
2367 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2368 outeside instantiation_loop.
2369 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2370 (evolution_function_is_affine_or_constant_p): Removed.
2371 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2372 instantiate_scev.
2373 (analyze_siv_subscript): Pass in the loop nest number.
2374 Call evolution_function_is_affine_in_loop instead of
2375 evolution_function_is_affine_p.
2376 (analyze_overlapping_iterations): Pass in the loop nest number.
2377
23782008-05-20 Jan Sjodin <jan.sjodin@amd.com>
2379 Sebastian Pop <sebastian.pop@amd.com>
2380
2381 PR tree-optimization/36206
2382 * tree-chrec.h (chrec_fold_op): New.
922e3e33
UB
2383 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2384 and other trees.
5b78fc3e 2385
498f1c82
NS
23862008-05-20 Nathan Sidwell <nathan@codesourcery.com>
2387
2388 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2389 (DIRS_EQ): New.
922e3e33
UB
2390 (remove_duplicates): Do not set inode on non-inode systems.
2391 Use DIRS_EQ.
498f1c82 2392
9c63c208
SL
23932008-05-20 Sandra Loosemore <sandra@codesourcery.com>
2394
2395 * config.gcc (tm_file): Update comments about relative pathnames.
2396
01902653
RG
23972008-05-20 Richard Guenther <rguenther@suse.de>
2398
922e3e33 2399 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
01902653
RG
2400 * tree-ssa-sccvn.c (process_scc): Likewise.
2401 * tree-ssa-sink.c (execute_sink_code): Likewise.
2402 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2403 * tree-vrp.c (process_assert_insertions): Likewise.
2404 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2405 (perform_tree_ssa_dce): Likewise.
2406 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2407 (dump_dominator_optimization_stats): Likewise.
2408 * tree-vectorizer.c (vectorize_loops): Likewise.
2409
4628e602
RG
24102008-05-20 Richard Guenther <rguenther@suse.de>
2411
2412 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2413
3b23a6d3
KT
24142008-05-20 Kai Tietz <kai.tietz@onevision.com>
2415
2416 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2417 (ix86_i386elf_return_in_memory): Likewise.
2418 (ix86_i386interix_return_in_memory): Likewise.
2419 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2420 (SUBTARGET_RETURN_IN_MEMORY): New.
2421 * config/i386/i386elf.h: Likewise.
2422 * config/i386/ptx4-i.h: Likewise.
2423 * config/i386/sol2-10.h: Likewise.
2424 * config/i386/sysv4.h: Likewise.
2425 * config/i386/vx-common.h: Likewise.
2426 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2427 * config/i386/i386.c (ix86_return_in_memory): Made static and
2428 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2429 (ix86_i386elf_return_in_memory): Removed.
2430 (ix86_i386interix_return_in_memory): Removed.
2431 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2432 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2433
be9ed5d5
AO
24342008-05-20 Alexandre Oliva <aoliva@redhat.com>
2435
2436 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2437
bc300fec
XDL
24382008-05-19 Xinliang David Li <davidxl@google.com>
2439
2440 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
2441 * opts.c: Ditto.
2442 * common.opt: Ditto.
2443 * doc/invoke.texi: Ditto.
2444
df8e1fdc
EB
24452008-05-19 Eric Botcazou <ebotcazou@adacore.com>
2446
2447 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
fa74fa39 2448 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
df8e1fdc 2449
06a5f1ec
L
24502008-05-19 H.J. Lu <hongjiu.lu@intel.com>
2451
9479cae3 2452 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
06a5f1ec
L
2453 sizes of operand array from 8/4 to 4/2.
2454 (ix86_expand_vector_init_general): Change size of operand array
2455 from 32 to 16. Remove op0, op1 and half_mode.
2456
63e46cce
L
24572008-05-19 H.J. Lu <hongjiu.lu@intel.com>
2458
2459 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2460 (ix86_expand_vector_init_interleave): Likewise.
ca3a2165
UB
2461 (ix86_expand_vector_init_general): Use them. Assert
2462 word_mode == SImode when n_words == 4.
63e46cce 2463
83689be0
UB
24642008-05-19 Uros Bizjak <ubizjak@gmail.com>
2465
2466 * config/i386/i386.c (ix86_secondary_reload): New static function.
2467 (TARGET_SECONDARY_RELOAD): New define.
2468 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2469 * config/i386/i386.md (reload_outqi): Remove.
2470
05f41289
KG
24712008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2472
2473 PR middle-end/35509
05f41289
KG
2474 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2475 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
2476 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2477 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2478 (fold_builtin_1): Likewise.
2479 * builtins.def (BUILT_IN_ISINF_SIGN): New.
2480 c-common.c (check_builtin_function_arguments): Handle
2481 BUILT_IN_ISINF_SIGN.
2482 * doc/extend.texi: Document __builtin_isinf_sign.
2483 * fold-const.c (operand_equal_p): Handle COND_EXPR.
2484
45a7844f
EB
24852008-05-18 Eric Botcazou <ebotcazou@adacore.com>
2486
2487 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2488 EH cleanup at the end of the pass, search for those that have been
2489 turned into forwarder blocks and do the cleanup on their successor.
2490
a86907b2
RG
24912008-05-18 Richard Guenther <rguenther@suse.de>
2492
2493 * tree-cfg.c (verify_gimple_expr): Allow conversions from
2494 pointers to sizetype and vice versa.
2495
e29cc9b4
XDL
24962008-05-18 Xinliang David Li <davidxl@google.com>
2497
2498 * gcc/tree-ssa-dce.c: Coding style fix.
2499 (check_pow): Documentation comment.
2500 (check_log): Documenation comment. Coding style fix.
2501 (is_unnecessary_except_errno_call): Ditto.
2502 (gen_conditions_for_pow): Ditto.
2503 (gen_conditions_for_log): Ditto.
2504 (gen_shrink_wrap_conditions): Ditto.
2505 (shrink_wrap_one_built_in_calls): Ditto.
2506 * gcc/doc/invoke.texi: Better documentation string.
2507 * ChangeLog: Fix wrong change log entries from
2508 May 17 checkin on function call DCE.
2509
eb6cbf91
KK
25102008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
2511
371a0575 2512 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
eb6cbf91 2513
bfe69700
KZ
25142008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
2515
2516 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2517 * df-problems.c (simulation routines): Fixed block comment to
2518 properly say how to add forwards scanning functions.
2519
7c7d3047
EB
25202008-05-17 Eric Botcazou <ebotcazou@adacore.com>
2521
2522 * tree-inline.c (setup_one_parameter): Remove dead code.
2523
1e17e15a
EB
25242008-05-17 Eric Botcazou <ebotcazou@adacore.com>
2525
2526 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2527 a BIT_AND_EXPR only for an INTEGER_TYPE.
2528
e29cc9b4
XDL
25292008-05-17 Xinliang David Li <davidxl@google.com>
2530
2531 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2532 (check_pow, check_log, is_unnecessary_except_errno_call): New
2533 functions to check for eliminating math functions that are pure
2534 except for setting errno.
2535 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2536 general condition expressions for shrink-wrapping pow/log calls.
2537 (gen_shrink_wrap_conditions): Ditto.
2538 (shrink_wrap_one_built_in_call): Ditto.
2539 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2540 (mark_operand_necessary): If debugging, output if OP is necessary.
2541 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2542 unnecessary.
2543 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2544 opt level >= 2.
2545 * gcc/common.opt: New user flag -ftree-builtin-dce.
2546 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2547
b61eacd6
DM
25482008-05-16 David S. Miller <davem@davemloft.net>
2549
371a0575 2550 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
b61eacd6
DM
2551 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2552
c62b3659
UB
25532008-05-16 Uros Bizjak <ubizjak@gmail.com>
2554
2555 PR target/36246
2556 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2557
07b5bc83
KZ
25582008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2559
2560 * ifcvt.c (dead_or_predicable): Rename
2561 df_simulate_one_insn_backwards to df_simulate_one_insn.
2562 * recog.c (peephole2_optimize): Ditto.
83689be0
UB
2563 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2564 Ditto.
07b5bc83
KZ
2565 * df.h: Rename df_simulate_one_insn_backwards to
2566 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
2567 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2568 scanning of defs and uses.
2569 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2570 (df_simulate_one_insn_forwards): Removed.
2571
f1f07a96
DK
25722008-05-16 Doug Kwan <dougkwan@google.com>
2573
2574 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2575 QNaN & SNaN.
2576 (real_from_string): Handle NaNs and Inf as approriate.
2577
105f48ae
DN
25782008-05-16 Nathan Froyd <froydnj@codesourcery.com>
2579
2580 * doc/gty.texi (Source Files Containing Type Information): Note
2581 that headers should appear first in the gtfiles list.
2582
25832008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2584
2585 * tree.def (COND_EXEC): Properly documented this code.
2586
25872008-05-16 Diego Novillo <dnovillo@google.com>
2588
2589 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2590 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2591 the new field.
2592
908ff6a3
KZ
25932008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2594
2595 * tree-ssa-dse (max_stmt_uid): Removed.
2596 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
2597 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2598 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2599 * function.h (cfun.last_stmt_uid): New field.
2600 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
371a0575
UB
2601 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2602 New functions.
908ff6a3
KZ
2603 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2604 (create_stmt_ann): Initialize the ann->uid field.
2605 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2606 with new calls.
2607 * tree-flow.h (renumber_gimple_stmt_uids): New function.
2608
9defb1fe
DN
26092008-05-16 Nathan Froyd <froydnj@codesourcery.com>
2610
2611 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2612 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2613 (init_empty_tree_cfg): Call it.
2614
26152008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2616
c62b3659
UB
2617 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
2618 Update all users.
9defb1fe 2619
3e894af1
KZ
26202008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
2621
2622 * doc/invoke.text (-fdump-tree-*-verbose): New option.
2623 * tree-dump.c (dump_options): New verbose option.
2624 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2625 Add verbose dump.
2626 * tree-pass.h (TDF_VERBOSE): New dump flag.
c62b3659 2627 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3e894af1 2628 (tree-flow.h): Added include.
c62b3659 2629 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
3e894af1 2630
16869606
BS
26312008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
2632
4fc4d850
BS
2633 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2634
16869606 2635 From Jie Zhang <jie.zhang@analog.com>
908ff6a3 2636 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16869606
BS
2637 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2638 mcpu=bf561-none and mcpu=bf561-0.2.
2639 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2640 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2641 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2642 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
371a0575 2643 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
c62b3659 2644 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
16869606
BS
2645 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
2646 option.
2647 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2648 (cputype_selected): Remove.
2649 (bfin_handle_option): Don't use cputype_selected.
2650 (override_options): When no mcpu option, enable all workarounds.
2651 Don't use bfin_workarounds.
2652 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2653 processor type.
2654 (DEFAULT_CPU_TYPE): Don't define.
2655
d0569f9f
RG
26562008-05-16 Richard Guenther <rguenther@suse.de>
2657
2658 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2659 on deletion of the last stmt.
2660
d0208f9b
L
26612008-05-15 H.J. Lu <hongjiu.lu@intel.com>
2662
2663 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2664 V8HImode for SSE2 and V16QImode for SSE4.1.
2665
1920df6c
KZ
26662008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
2667
2668 * cgraph.h (compute_inline_parameters): Made public.
2669 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2670 variable_generate_summary, function_write_summary,
371a0575
UB
2671 variable_write_summary, variable_read_summary. Added generate_summary,
2672 write_summary, read_summary.
1920df6c
KZ
2673 * cgraphunit.c (cgraph_process_new_functions): Changed call from
2674 pass_ipa_inline.function_generate_summary, to
2675 compute_inline_parameters.
2676 * ipa-inline.c (compute_inline_parameters): Made public and added
2677 node parameter.
2678 (compute_inline_parameters_for_current): New function.
c62b3659 2679 (pass_inline_param): Now calls compute_inline_parameters_for_current.
1920df6c
KZ
2680 (inline_generate_summary): Removed parameter and made to loop over
2681 all cgraph nodes.
2682 (pass_ipa_inline): Updated for new IPA_PASS structure.
2683 * passes.c (execute_ipa_summary_passes): Now is called once per
2684 pass rather than once per node*pass.
2685
470a4c97
AS
26862008-05-15 Anatoly Sokolov <aesok@post.ru>
2687
2688 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
2689 avr_have_mul_p, avr_asm_only_p): Remove variables.
2690 (avr_override_options): Remove initialization of removed variables.
2691 (avr_file_start): Convert removed variables to fields of
2692 'struct base_arch_s *avr_current_arch'.
2693 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2694 (AVR_HAVE_MUL): (Ditto.).
2695 (AVR_HAVE_MOVW): (Ditto.).
2696 (AVR_HAVE_LPMX): (Ditto.).
2697 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
2698 avr_asm_only_p): Remove declaration.
2699
f4dea66f
DN
27002008-05-15 Diego Novillo <dnovillo@google.com>
2701
c62b3659 2702 * config/arm/arm.c (arm_return_in_memory): Fix return type.
f4dea66f
DN
2703 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2704
36dafbd1
AN
27052008-05-15 Adam Nemet <anemet@caviumnetworks.com>
2706
2707 PR middle-end/36194
c62b3659
UB
2708 * combine.c (check_conversion): Rename back to check_promoted_subreg.
2709 Don't call record_truncated_value from here.
2710 (record_truncated_value): Turn it into a for_each_rtx callback.
2711 (record_truncated_values): New function.
2712 (combine_instructions): Call note_uses with record_truncated_values.
2713 Change name of check_conversion to check_promoted_subreg.
36dafbd1 2714
91a5b394
JJ
27152008-05-15 Janis Johnson <janis187@us.ibm.com>
2716
2717 * doc/sourcebuild.texi: Document support for torture tests.
2718
2819ae08
UB
27192008-05-15 Uros Bizjak <ubizjak@gmail.com>
2720
2721 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2722 to alternative 4 of operand 2.
2723
9fe0cb7d
RG
27242008-05-15 Richard Guenther <rguenther@suse.de>
2725
2726 * tree-pass.h (current_pass): Declare.
2727 (get_pass_for_id): Likewise.
2728 * passes.c (passes_by_id, passes_by_id_size): New globals.
2729 (set_pass_for_id): New function.
2730 (get_pass_for_id): Likewise.
2731 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2732 (execute_function_todo): Flush per function statistics.
2733 * toplev.c (compile_file): Init statistics.
2734 (general_init): Do early statistics initialization.
2735 (finalize): Finish statistics.
2736 * statistics.h (statistics_early_init): Declare.
2737 (statistics_init): Likewise.
2738 (statistics_fini): Likewise.
2739 (statistics_fini_pass): Likewise.
2740 (statistics_counter_event): Likewise.
2741 (statistics_histogram_event): Likewise.
2742 * statistics.c: New file.
2743 * Makefile.in (OBJS-common): Add statistics.o.
2744 (statistics.o): Add dependencies.
2745 * doc/invoke.texi (-fdump-statistics): Document.
2746
2747 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2748 (insert): Likewise.
2749 (execute_pre): Use statistics_counter_event.
2750 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2751 (substitute_and_fold): Increment it. Use statistics_counter_event.
2752
77f377f7
DN
27532008-05-15 Diego Novillo <dnovillo@google.com>
2754
2755 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2756
2757 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2758 * tree-ssa-alias.c (new_type_alias): Remove references to
2759 sub-variables from comment.
2760 * tree-ssa-operands.c (swap_tree_operands): Likewise.
2761
89b7851e
L
27622008-05-15 H.J. Lu <hongjiu.lu@intel.com>
2763
2764 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2765 attribute to 1 only for insertps alternative.
2766
8fa477f7
BS
27672008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
2768
2769 * config/bfin/bfin.md (loadbytes): New pattern.
2770 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2771 (bfin_init_builtins): Initialize it.
2772 (bdesc_1arg): Add it.
2773
4e8c438f
SL
27742008-05-15 Sa Liu <saliu@de.ibm.com>
2775
2776 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2777 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2778 * testsuite/lib/target-supports.exp: Add
2779 check_effective_target_fortran_integer_16.
2780
7ba20e60
BS
27812008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
2782
2783 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2784 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2785 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
2786 (TARGET_RETURN_IN_MEMORY): Define.
2787
81d19c06
RG
27882008-05-15 Richard Guenther <rguenther@suse.de>
2789
2790 PR middle-end/36244
2791 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2792 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2793 represent unmodifiable vars.
2794
9f59420d
RG
27952008-05-15 Richard Guenther <rguenther@suse.de>
2796
2797 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2798 INDIRECT_REF and TARGET_MEM_REF.
2799 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2800 TARGET_MEM_REF.
2801
6784c6e0
UB
28022008-05-15 Uros Bizjak <ubizjak@gmail.com>
2803 H.J. Lu <hongjiu.lu@intel.com>
2804
2805 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2806 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2807 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
2808 insn alternatives. Add missing alternatives.
2809 (*vec_concatv2di_rex64_sse4_1): Likewise.
2810 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2811 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2812 Require TARGET_SSE.
2813
8ded35f9
RG
28142008-05-15 Richard Guenther <rguenther@suse.de>
2815
2816 PR tree-optimization/36009
2817 PR tree-optimization/36204
2818 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2819 (determine_invariantness_stmt): Record the loop a store is
2820 always executed in.
2821 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2822 dependency.
2823
45ff5eda
RG
28242008-05-15 Richard Guenther <rguenther@suse.de>
2825
2826 PR tree-optimization/34330
2827 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2828 through the pointer will alias the SMT.
2829
c5fcd670
AT
28302008-05-14 Andreas Tobler <a.tobler@schweiz.org>
2831
2832 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2833
a3f63c28
L
28342008-05-14 H.J. Lu <hongjiu.lu@intel.com>
2835
2836 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2837
71d46ca5
MM
28382008-05-14 Michael Meissner <michael.meissner@amd.com>
2839 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2840
2841 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2842 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2843 (vashl_optab): New optab for vector/vector shifts.
2844 (vashr_optab): Ditto.
2845 (vlshr_optab): Ditto.
2846 (vrotl_optab): Ditto.
2847 (vrotr_optab): Ditto.
2848 (optab_subtype): New enum for optab_for_tree_code call.
2849 (optab_for_tree_code): Add enum optab_subtype argument.
2850
2851 * optabs.c (optab_for_tree_code): Take an additional argument to
2852 distinguish between a vector shift by a scalar and vector shift by
2853 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
2854 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
2855 vector shift by a vector.
2856 (expand_widen_pattern_expr): Pass additional argument to
2857 optab_for_tree_code.
2858
2859 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2860 vrotl_optab, vrotr_optab.
2861
2862 * expr.c (expand_expr_real_1): Update calls to
2863 optab_for_tree_code to distinguish between vector shifted by a
2864 scalar and vector shifted by a vector.
2865 * tree-vectorizer.c (supportable_widening_operation): Ditto.
2866 (supportable_narrowing_operation): Ditto.
2867 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2868 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2869 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2870 (vect_create_epilog_for_reduction): Ditto.
2871 (vectorizable_reduction): Ditto.
2872 (vectorizable_operation): Ditto.
2873 (vect_strided_store_supported): Ditto.
2874 (vect_strided_load_supported): Ditto.
2875 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2876 * expmed.c (expand_shift): Ditto.
2877
2878 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2879 scalar type.
2880 (ashr@var{m}3): Ditto.
2881 (vashl@var{m}3): Document new vector/vector shift standard name.
2882 (vashr@var{m}3): Ditto.
2883 (vlshr@var{m}3): Ditto.
2884 (vrotl@var{m}3): Ditto.
2885 (vrotr@var{m}3): Ditto.
2886
6784c6e0 2887 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
71d46ca5
MM
2888 (PPERM_INVERT): Ditto.
2889 (PPERM_REVERSE): Ditto.
2890 (PPERM_REV_INV): Ditto.
2891 (PPERM_ZERO): Ditto.
2892 (PPERM_ONES): Ditto.
2893 (PPERM_SIGN): Ditto.
2894 (PPERM_INV_SIGN): Ditto.
2895 (PPERM_SRC1): Ditto.
2896 (PPERM_SRC2): Ditto.
2897
2898 * config/i386/sse.md (mulv2di3): Add SSE5 support.
2899 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2900 allows a memory operand to be the value being added, and split it
2901 to improve vectorization.
2902 (sse5_pmacsdqh_mem): Ditto.
2903 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2904 (sse5_mulv2div2di3_high): Ditto.
2905 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2906 (vec_pack_trunc_v4si): Ditto.
2907 (vec_pack_trunc_v2di): Ditto.
2908 (sse5_pcmov_<mode>): Remove code that tried to use use
2909 andps/andnps instead of pcmov.
2910 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2911 pmacsdqh instructions.
2912 (vec_widen_smult_lo_v4si): Ditto.
2913
2914 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
2915 (PPERM_INVERT): Ditto.
2916 (PPERM_REVERSE): Ditto.
2917 (PPERM_REV_INV): Ditto.
2918 (PPERM_ZERO): Ditto.
2919 (PPERM_ONES): Ditto.
2920 (PPERM_SIGN): Ditto.
2921 (PPERM_INV_SIGN): Ditto.
2922 (PPERM_SRC1): Ditto.
2923 (PPERM_SRC2): Ditto.
2924 (ix86_expand_sse_movcc): Move the SSE5 test after the if
2925 true/false tests.
2926 (ix86_expand_int_vcond): If SSE5 generate all possible integer
2927 comparisons.
2928 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
2929 says ignore whether the last reference is a memory operand.
2930
29312008-05-14 Michael Meissner <michael.meissner@amd.com>
2932 Paolo Bonzini <bonzini at gnu dot org>
2933
2934 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
2935 shift patterns.
2936
6784c6e0 2937 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
71d46ca5
MM
2938 (vlshr<mode>3): Rename from vlshr<mode>3.
2939 (vashr<mode>3): Rename from vashr<mode>3.
2940 (mulv4sf3): Change the names of vector shift patterns.
2941 (mulv4si3): Ditto.
2942 (negv4sf2): Ditt.
2943
2944 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
2945 shift insns.
2946
6784c6e0 2947 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
71d46ca5
MM
2948 (SI_SHLHI): Ditto.
2949 (SI_SHL): Ditto.
2950 (SI_SHLI): Ditto.
2951 (SI_ROTH): Ditto.
2952 (SI_ROTHI): Ditto.
2953 (SI_ROT): Ditto.
2954 (SI_ROTI): Ditto.
2955 (SPU_RL_0): Ditto.
2956 (SPU_RL_1): Ditto.
2957 (SPU_RL_2): Ditto.
2958 (SPU_RL_3): Ditto.
2959 (SPU_RL_4): Ditto.
2960 (SPU_RL_5): Ditto.
2961 (SPU_RL_6): Ditto.
2962 (SPU_RL_7): Ditto.
2963 (SPU_SL_0): Ditto.
2964 (SPU_SL_1): Ditto.
2965 (SPU_SL_2): Ditto.
2966 (SPU_SL_3): Ditto.
2967 (SPU_SL_4): Ditto.
2968 (SPU_SL_5): Ditto.
2969 (SPU_SL_6): Ditto.
2970 (SPU_SL_7): Ditto.
2971
2972 * config/spu/spu.md (v): New iterator macro to add v for vector types.
2973 (floatunssidf2_internal): Change vector/vector shift names.
2974 (floatunsdidf2_internal): Ditto.
2975 (mulv8hi3): Ditto.
2976 (ashrdi3): Ditto.
2977 (ashrti3): Ditto.
2978 (cgt_df): Ditto.
2979 (cgt_v2df): Ditto.
2980 (dftsv): Ditto.
2981 (vashl<mode>3): Rename from ashl<mode>3.
2982 (vashr<mode>3): Rename from ashr<mode>3.
2983 (vlshr<mode>3): Rename from lshr<mode>3.
2984 (vrotl<mode>3): Rename from rotl<mode>3.
2985
550c9cf0
MM
29862008-05-14 Michael Meissner <michael.meissner@amd.com>
2987
2988 PR target/36224
6784c6e0
UB
2989 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
2990 multiply gives the wrong value when doing widening multiplies.
550c9cf0
MM
2991 (vec_widen_smult_lo_v4si): Ditto.
2992
84b8030f
KZ
29932008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
2994
2995 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
2996 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
2997 emit_library_call_value.
2998 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
2999 * tree.h (ECF_LIBCALL_BLOCK): Removed.
3000 * calls.c (initialize_argument_information, precompute_arguments,
3001 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3002 (precompute_arguments): Removed flags parameter.
3003 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3004
f403a4a2
RG
30052008-05-14 Richard Guenther <rguenther@suse.de>
3006
3007 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3008 Make sure to register the store if the use is a PHI_NODE.
3009
da19297d
OH
30102008-05-14 Olivier Hainque <hainque@adacore.com>
3011
3012 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3013 memory if the component is to be referenced in BLKmode according
3014 to get_inner_reference.
3015
1fd03c70
AN
30162008-05-14 Adam Nemet <anemet@caviumnetworks.com>
3017
3018 * calls.c (emit_library_call_value_1): Restore code clearing
6784c6e0 3019 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1fd03c70 3020
349c3166
OH
30212008-05-14 Olivier Hainque <hainque@adacore.com>
3022 Nicolas Roche <roche@adacore.com>
3023
3024 * configure.ac: Add support for a "gcc_subdir" variable in
3025 config-lang.in, to denote a subdirectory where the language/GCC
3026 integration files are to be found.
3027 * configure: Regenerate.
3028
2b8775f3
IR
30292008-05-14 Ira Rosen <irar@il.ibm.com>
3030
3031 PR tree-optimization/36098
3032 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3033 value for the first load in the group in case of a gap.
3034 (vect_build_slp_tree): Check that there are no gaps in loads.
3035
d70dcf29
KZ
30362008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
3037
3038 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3039 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3040 expand_copysign_bit, ): Change call to emit_no_conflict_block to
3041 emit_insn and remove unneeded code to construct extra args.
3042 (emit_no_conflict_block): Removed.
3043 * optabls.h: (emit_no_conflict_block): Removed.
3044 * cse.c (cse_extended_basic_block): Remove search for
6784c6e0 3045 REG_NO_CONFLICT note.
d70dcf29
KZ
3046 * global.c: Removed incorrect comment added in revision 117.
3047 * expr.c (convert_move): Change call to emit_no_conflict_block to
3048 emit_insn.
3049 * recog.c: Change comments so that they do not mention
3050 REG_NO_CONFLICT.
3051 * local_alloc.c (combine_regs): Removed last parameter.
3052 (no_conflict_p): Removed.
3053 (block_alloc): Removed note, no_conflict_combined_regno and set
3054 local vars. Removed all code to process REG_NO_CONFLICT blocks.
3055 (combine_regs): Removed already_dead and code to look for
3056 REG_NO_CONFLICT notes.
3057 * lower_subreg (remove_retval_note): Removed code to look for
3058 REG_NO_CONFLICT block.
3059 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3060 (resolve_clobber): Remove code to process libcalls that have
3061 REG_NO_CONFLICT notes.
3062 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3063 case.
6784c6e0
UB
3064 * combine.c (can_combine_p, distribute_notes): Removed
3065 REG_NO_CONFLICT case.
3066 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3067 to emit_insns.
d70dcf29
KZ
3068 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3069 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6784c6e0 3070 Ditto.
d70dcf29 3071 * reg-notes.def (NO_CONFLICT): Removed.
c5fcd670 3072
cc44abe6
DM
30732008-05-14 David S. Miller <davem@davemloft.net>
3074
3075 * config/sparc/sparc.c (sparc_profile_hook): If
6784c6e0 3076 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
cc44abe6
DM
3077 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3078 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3079
0beb3d66
AK
30802008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
3081
3082 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3083
08e64088
UB
30842008-05-13 Uros Bizjak <ubizjak@gmail.com>
3085
3086 PR target/36222
3087 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3088 and op1 expansion before vector concat to have less live pseudos.
3089
af7ae5d1
L
30902008-05-13 H.J. Lu <hongjiu.lu@intel.com>
3091
3092 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3093 ix86_expand_vector_set if supported.
3094
5db9ba0c
DN
30952008-05-13 Diego Novillo <dnovillo@google.com>
3096 Kenneth Zadeck <zadeck@naturalbridge.com>
3097
3098 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3099
3100 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3101 phinodes_print_statistics, init_ssanames, fini_ssanames,
08e64088
UB
3102 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3103 release_ssa_name, release_defs, replace_ssa_name_symbol,
5db9ba0c
DN
3104 ssanames_print_statistics): Move ...
3105 * tree-flow.h: ... here.
08e64088
UB
3106 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3107 Use FN instead of cfun.
5db9ba0c 3108 (make_ssa_name_fn): Rename from make_ssa_name.
08e64088 3109 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
5db9ba0c 3110 * tree-flow-inline.h (make_ssa_name): Move from
08e64088 3111 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
5db9ba0c
DN
3112 * omp-low.c (expand_omp_parallel):
3113 * tree-flow-inline.h (redirect_edge_var_map_result):
6784c6e0
UB
3114 * tree-ssa.c (init_tree_ssa): Add argument FN.
3115 Use it instead of cfun. Update all users.
5db9ba0c 3116
899015a0
TT
31172008-05-13 Tom Tromey <tromey@redhat.com>
3118
3119 PR preprocessor/22168:
3120 * doc/cpp.texi (Top): Update menu.
3121 (Alternatives to Wrapper #ifndef): New node.
3122 (Other Directives): Document deprecation.
3123 (Obsolete Features): Remove menu.
3124 (Assertions): Merge node into Obsolete Features.
3125 (Obsolete once-only headers): Move earlier; rename to Alternatives
3126 to Wrapper #ifndef.
3127 * doc/cppopts.texi: Update.
3128 * c.opt (Wdeprecated): Enable for C and ObjC.
3129 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3130 (C++ Dialect Options): Move -Wno-deprecated from here to...
3131 (Warning Options): ... here.
3132
8ebc39d8
RG
31332008-05-13 Richard Guenther <rguenther@suse.de>
3134
3135 PR middle-end/36227
3136 * fold-const.c (fold_sign_changed_comparison): Do not allow
3137 changes in pointer-ness.
3138
ef0a7607
KK
31392008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3140
3141 PR target/24713
3142 * config/sh/sh.c (sh_expand_prologue): Don't clear
3143 RTX_FRAME_RELATED_P for push insns.
3144
9c218cfc
AH
31452008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
3146
3147 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3148
4c75f709
AS
31492008-05-12 Anatoly Sokolov <aesok@post.ru>
3150
3151 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3152 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3153 Use 'machine->is_leaf' instead of 'leaf_func_p'.
3154
fcc9fe1e
L
31552008-05-12 H.J. Lu <hongjiu.lu@intel.com>
3156
3157 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3158 (*vec_concatv4sf_sse): This.
3159 (*sse2_concatv2si): Renamed to ...
3160 (*vec_concatv2si_sse2): This.
3161 (*sse1_concatv2si): Renamed to ...
3162 (*vec_concatv2si_sse): This.
3163 (*vec_concatv2di_rex): Renamed to ...
3164 (*vec_concatv2di_rex64): This.
3165 (*vec_concatv2si_sse4_1): New.
3166 (*vec_concatv2di_rex64_sse4_1): Likewise.
3167
162bfc7e
UB
31682008-05-12 Uros Bizjak <ubizjak@gmail.com>
3169
3170 PR rtl-optimization/36111
3171 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3172 that was created for swappable operands.
3173
3d4e720a
ST
31742008-05-12 Samuel Tardieu <sam@rfc1149.net>
3175
3176 PR ada/36001
3177 * Makefile.in: Substitute GNATMAKE and GNATBIND.
3178 * configure.ac: Add call to ACX_PROG_GNAT.
3179
fc54bc84
VR
31802008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
3181
3182 * optc-gen.awk: Fix comment typo.
3183
2a157700
AL
31842008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3185
3186 * pretty-print.c (pp_integer_with_precision): Use
3187 HOST_LONG_LONG_FORMAT.
3188
4e00d960
KZ
31892008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
3190
3191 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3192
b282a8d3
L
31932008-05-10 H.J. Lu <hongjiu.lu@intel.com>
3194
3195 * config/i386/i386.c (bdesc_ptest): Removed.
3196 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3197 (bdesc_args): Add __builtin_ia32_ptestz128,
3198 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3199 (ix86_init_mmx_sse_builtins): Updated.
3200 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3201 (ix86_expand_builtin): Updated.
3202
17d23165
RS
32032008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
3204
3205 * tree-cfg.c (valid_fixed_convert_types_p): New function.
3206 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3207
d35910bf
UB
32082008-05-10 Uros Bizjak <ubizjak@gmail.com>
3209
3210 * value-prof.c (interesting_stringop_to_profile): Do not
3211 return early for BUILT_IN_MEMPCPY.
3212
17b29c0a
L
32132008-05-09 H.J. Lu <hongjiu.lu@intel.com>
3214
3215 * calls.c (expand_call): Don't use callgraph to increase
3216 preferred_stack_boundary.
3217
3218 * cgraph.h (cgraph_rtl_info): Use unsigned on
3219 preferred_incoming_stack_boundary.
3220
3221 * final.c (rest_of_clean_state): Use unsigned on
3222 preferred_stack_boundary.
3223
4822e563
TT
32242008-05-09 Tom Tromey <tromey@redhat.com>
3225
3226 PR preprocessor/22231:
3227 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3228 proceeding.
3229
53a8f709
UB
32302008-05-09 Uros Bizjak <ubizjak@gmail.com>
3231
3232 PR tree-optimization/36129
162bfc7e 3233 * tree-ssa-ccp.c: Include value-prof.h.
53a8f709
UB
3234 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3235 built-in function was folded to a constant.
162bfc7e 3236 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
53a8f709 3237
3f227a8c
JS
32382008-05-09 Jan Sjodin <jan.sjodin@amd.com>
3239 Sebastian Pop <sebastian.pop@amd.com>
3240
3241 * tree-scalar-evolution.c: Document instantiate_scev.
3242 (instantiate_parameters_1): Renamed instantiate_scev_1.
3243 Don't use the same loop for instantiation_loop and evolution_loop.
3244 (instantiate_scev): New.
3245 (instantiate_parameters): Moved...
3246 (resolve_mixers): Update call to instantiate_scev_1 to pass the
3247 same loop twice. Maintains the semantics for this function.
3248 * tree-scalar-evolution.h (instantiate_scev): Declare.
3249 (instantiate_parameters): ...here. Now static inline.
3250 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3251 instead of resolve_mixers.
3252
a3e19be6
MK
32532008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
3254
3255 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3256
1043771b
TB
32572008-05-09 Tomas Bily <tbily@suse.cz>
3258
3259 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3260 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3261 * tree-ssa-structalias.c (get_constraint_for): Likewise.
3262 * c-common.c (c_common_truthvalue_conversion): Likewise.
3263 * tree-object-size.c (compute_object_offset): Likewise.
3264 * tree-inline.c (estimate_num_insns_1): Likewise.
3265 * varasm.c (const_hash_1, compare_constant, copy_constant)
3266 (compute_reloc_for_constant, output_addressed_constants)
3267 (initializer_constant_valid_p): Likewise.
3268 * c-omp.c (check_omp_for_incr_expr): Likewise.
3269 * gimplify.c (gimplify_expr): Likewise.
3270 * c-typeck.c (c_finish_return): Likewise.
3271 * tree-vectorizer.c (supportable_widening_operation)
3272 (supportable_narrowing_operation): Likewise.
3273 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3274 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3275 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3276 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3277 (descr_info_loc): Likewise.
3278 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3279 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3280 (fold_unary): Likewise.
3281 * builtins.c (get_pointer_alignment): Likewise.
3282 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3283 (instantiate_parameters_1): Likewise.
3284 * tree.c (expr_align, stabilize_reference): Likewise.
3285 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3286 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3287 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3288 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3289 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
162bfc7e
UB
3290 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3291 Likewise.
1043771b
TB
3292 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3293 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3294 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3295 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3296 (forward_propagate_comparison)
3297 (tree_ssa_forward_propagate_single_use_vars): Likewise.
3298 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3299 * emit-rtl.c (component_ref_for_mem_expr)
3300 (set_mem_attributes_minus_bitpos): Likewise.
3301 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
162bfc7e
UB
3302 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
3303 Likewise.
1043771b
TB
3304 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
3305 (build_function_call, pointer_diff, build_compound_expr)
3306 (c_finish_return): Likewise.
3307 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
162bfc7e
UB
3308 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
3309 Likewise.
1043771b
TB
3310 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
3311 * expr.c (is_aligning_offset): Likewise.
3312 * tree-ssa-alias.c (is_escape_site): Likewise.
3313 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
3314 (check_all_va_list_escapes): Likewise.
3315 * tree-ssa-loop-ivopts.c (determine_base_object)
3316 (determine_common_wider_type): Likewise.
3317 * dojump.c (do_jump): Likewise.
3318 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
3319 * tree-gimple.c (is_gimple_cast): Likewise.
3320 * fold-const.c (decode_field_reference, )
3321 (fold_sign_changed_comparison, fold_unary, fold_comparison)
3322 (fold_binary): Likewise.
3323 * tree-ssa-alias-warnings.c (find_alias_site_helper)
3324 (already_warned_in_frontend_p): Likewise.
3325 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
3326 * tree.c (really_constant_p, get_unwidened): Likewise.
3327 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
3328 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
162bfc7e
UB
3329 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
3330 Likewise.
3331 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
3332 CONVERT_EXPR_P.
1043771b
TB
3333 (CONVERT_EXPR_P): Define.
3334 (CASE_CONVERT): Define.
3335
5ba5ab9b
KZ
33362008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
3337
3338 PR middle-end/36117
162bfc7e
UB
3339 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
3340 (delete_unmarked_insns): When deleting a call, call
5ba5ab9b
KZ
3341 delete_unreachable_blocks.
3342 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
162bfc7e
UB
3343 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
3344
1353232d
RG
33452008-05-08 Richard Guenther <rguenther@suse.de>
3346
3347 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
3348 (-ftree-salias): Likewise.
3349 (salias-max-implicit-fields): Remove param documentation.
3350 (salias-max-array-elements): Likewise.
3351 * tree-pass.h (pass_create_structure_vars): Remove.
3352 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3353 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3354 * tree-ssa-alias.c (create_structure_vars): Remove.
3355 (gate_structure_vars): Likewise.
3356 (pass_create_structure_vars): Likewise.
3357 (gate_build_alias): Likewise.
3358 (pass_build_alias): Adjust to run always and dump the function.
3359 * common.opt (ftree-salias): Hide.
3360 * passes.c (init_optimization_passes): Remove
3361 pass_create_structure_vars, adjust comment.
3362 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
3363 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
3364 * opts.c (decode_options): Do not set flag_tree_salias.
3365 (common_handle_option): Add OPT_ftree_salias to the backward
3366 compatibility section.
3367
31de5b77
RG
33682008-05-08 Richard Guenther <rguenther@suse.de>
3369
3370 * tree-flow-inline.h (var_can_have_subvars): Move ...
3371 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
3372 * tree-flow.h (var_can_have_subvars): Remove.
3373 (push_fields_onto_fieldstack): Remove.
3374 (sort_fieldstack): Likewise.
3375 (struct fieldoff): Move ...
3376 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
3377 alias_set and base_for_components fields.
3378 (sort_fieldstack): Make static.
3379 (push_fields_onto_fieldstack): Likewise. Remove code that
3380 handles anything but RECORD_TYPEs. Remove alias_set and
3381 base_for_components handling.
3382 (create_variable_info_for): Adjust.
3383
c1a3620a 33842008-05-08 Seongbae Park <seongbae.park@gmail.com>
b70837af 3385
c1a3620a
SP
3386 * common.opt (Wframe-larger-than=): Shorten the help message
3387 to one line.
3388 * doc/invoke.texi (Wframe-larger-than=): Add more description.
3389
04b03edb
RAE
33902008-05-08 Rafael Espindola <espindola@google.com>
3391
3392 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
3393 trap.
3394 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
3395 trap and that both operands are gimple values.
3396 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
3397 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
3398 is a fp operation.
3399
96c92f47
RS
34002008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
3401
3402 * read-rtl.c (join_c_conditions): Return the first string if the
3403 two strings are equal.
3404
e663da80
RS
34052008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
3406
3407 * gensupport.h (pred_data): Add a "num_codes" field.
3408 (add_predicate_code): Declare.
3409 * gensupport.c (add_predicate_code): New function.
3410 (std_pred_table): Add an "allows_const_p" field.
3411 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
3412 Remove the (incomplete) list of such codes from the codes field.
3413 (init_predicate_table): Use add_predicate_code. Add all
3414 RTX_CONST_OBJs if allows_const_p is true.
3415 * genrecog.c (process_define_predicate): Use add_predicate_code.
3416
977502ff
DD
34172008-05-08 David Daney <ddaney@avtrex.com>
3418 Richard Sandiford <rsandifo@nildram.co.uk>
3419
3420 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
3421 special case of constant zero operands.
3422 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
3423 old and new values. Special case constant zero values.
3424 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
3425 fails.
3426 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
3427 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
3428
627ab861
PB
34292008-05-08 Paolo Bonzini <bonzini@gnu.org>
3430
3431 PR target/36090
3432 * simplify-rtx.c (simplify_plus_minus): Create CONST of
3433 similar RTX_CONST_OBJ before CONST_INT.
3434
41ccb5d1
SE
34352008-05-08 Steve Ellcey <sje@cup.hp.com>
3436
3437 * stmt.c (expand_stack_restore): Change sa mode if needed.
3438
e8d6aaee
RG
34392008-05-08 Richard Guenther <rguenther@suse.de>
3440
3441 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
3442 return type to bool.
3443 (ix86_sol10_return_in_memory): Likewise.
3444 (ix86_i386elf_return_in_memory): Likewise.
3445 (ix86_i386interix_return_in_memory): Likewise.
3446 * config/i386/i386.c (ix86_return_in_memory): Likewise.
3447 (ix86_sol10_return_in_memory): Likewise.
3448 (ix86_i386elf_return_in_memory): Likewise.
3449 (ix86_i386interix_return_in_memory): Likewise.
3450
033df0b9
KT
34512008-05-08 Kai Tietz <kai.tietz@onevision.com>
3452
d7822892 3453 PR bootstrap/36180
033df0b9
KT
3454 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
3455 fndecl argument.
d7822892
UB
3456 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
3457 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
3458 declared in front.
033df0b9 3459
5611cf0b
RG
34602008-05-08 Richard Guenther <rguenther@suse.de>
3461
3462 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
3463 * tree-data-ref.h (struct dr_alias): Remove subvars field.
3464 (DR_SUBVARS): Remove.
3465 * tree-dfa.c (dump_subvars_for): Remove.
3466 (debug_subvars_for): Likewise.
3467 (dump_variable): Do not dump subvars.
3468 (remove_referenced_var): Do not remove subvars.
3469 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
3470 (lookup_subvars_for_var): Remove.
3471 (get_subvars_for_var): Likewise.
3472 (get_subvars_at): Likewise.
3473 (get_first_overlapping_subvar): Likewise.
3474 (overlap_subvar): Likewise.
3475 * tree-flow.h (subvar_t): Remove.
3476 (struct var_ann_d): Remove subvars field.
3477 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
3478 argument. Remove special handling of SFTs.
3479 (compute_tag_properties): Likewise.
3480 (set_initial_properties): Likewise.
3481 (compute_call_clobbered): Likewise.
3482 (count_mem_refs): Likewise.
3483 (compute_memory_partitions): Likewise.
3484 (compute_flow_insensitive_aliasing): Likewise.
3485 (setup_pointers_and_addressables): Likewise.
3486 (new_type_alias): Likewise.
3487 (struct used_part): Remove.
3488 (used_portions): Likewise.
3489 (struct used_part_map): Likewise.
3490 (used_part_map_eq): Likewise.
3491 (used_part_map_hash): Likewise.
3492 (free_used_part_map): Likewise.
3493 (up_lookup): Likewise.
3494 (up_insert): Likewise.
3495 (get_or_create_used_part_for): Likewise.
3496 (create_sft): Likewise.
3497 (create_overlap_variables_for): Likewise.
3498 (find_used_portions): Likewise.
3499 (create_structure_vars): Likewise.
3500 * tree.def (STRUCT_FIELD_TAG): Remove.
3501 * tree.h (MTAG_P): Adjust.
3502 (struct tree_memory_tag): Remove base_for_components and
3503 unpartitionable flags.
3504 (struct tree_struct_field_tag): Remove.
3505 (SFT_PARENT_VAR): Likewise.
3506 (SFT_OFFSET): Likewise.
3507 (SFT_SIZE): Likewise.
3508 (SFT_NONADDRESSABLE_P): Likewise.
3509 (SFT_ALIAS_SET): Likewise.
3510 (SFT_UNPARTITIONABLE_P): Likewise.
3511 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
3512 (union tree_node): Remove sft field.
3513 * alias.c (get_alias_set): Remove special handling of SFTs.
3514 * print-tree.c (print_node): Remove handling of SFTs.
3515 * tree-dump.c (dequeue_and_dump): Likewise.
3516 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
3517 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
3518 * tree-predcom.c (set_alias_info): Do not set subvars.
3519 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
3520 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
3521 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
3522 (add_vars_for_offset): Remove.
3523 (add_virtual_operand): Remove special handling of SFTs.
3524 (add_call_clobber_ops): Likewise.
3525 (add_call_read_ops): Likewise.
3526 (get_asm_expr_operands): Likewise.
3527 (get_modify_stmt_operands): Likewise.
3528 (get_expr_operands): Likewise.
3529 (add_to_addressable_set): Likewise.
3530 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
3531 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
162bfc7e 3532 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5611cf0b
RG
3533 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
3534 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
3535 (tree_node_structure): Likewise.
3536 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
3537 handling of SFTs.
3538 (find_what_p_points_to): Likewise.
3539
fb4b5171
SL
35402008-05-08 Sa Liu <saliu@de.ibm.com>
3541
3542 * config/spu/spu.md: Fixed subti3 pattern.
fb4b5171 3543
1b674de0
RG
35442008-05-08 Richard Guenther <rguenther@suse.de>
3545
3546 PR middle-end/36154
3547 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
3548 sure to create a representative for trailing arrays for PTA.
3549
b13e7b6c
RG
35502008-05-08 Richard Guenther <rguenther@suse.de>
3551
3552 PR middle-end/36172
3553 * fold-const.c (operand_equal_p): Two objects which types
3554 differ in pointerness are not equal.
3555
d7822892 35562008-05-08 Kai Tietz <kai.tietz@onevision.com>
81464b2c
KT
3557
3558 * calls.c (compute_argument_block_size): Add argument tree fndecl.
3559 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
3560 (emit_library_call_value_1): Add new variable fndecl initialized by
3561 NULL_TREE. It should be the decl type of orgfun, but this information
3562 seems not to be available here, so it uses the default calling abi.
3563 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
3564 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
3565 by TARGET_RETURN_IN_MEMORY.
3566 * config/i386/i386-interix.h: Likewise.
3567 * config/i386/i386.h: Likewise.
3568 * config/i386/i386elf.h: Likewise.
3569 * config/i386/ptx4-i.h: Likewise.
3570 * config/i386/sol2-10.h: Likewise.
3571 * config/i386/sysv4.h: Likewise.
3572 * config/i386/vx-common.h: Likewise.
3573 * config/cris/cris.h: Removed #if 0 clause.
d7822892 3574 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
81464b2c
KT
3575 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
3576 argument.
3577 (ix86_sol10_return_in_memory): Likewise.
3578 (ix86_i386elf_return_in_memory): New.
3579 (ix86_i386interix_return_in_memory): New.
3580 * config/mt/mt-protos.h (mt_return_in_memory): New.
3581 * config/mt/mt.c: Likewise.
3582 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3583 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
3584 * config/bfin/bfin.h: Likewise.
3585 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
3586 argument.
3587 * config/bfin/bfin.c: Likewise.
3588 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
3589 * config/alpha/unicosmk.h: Likewise.
3590 * config/i386/cygming.h: Likewise.
3591 * config/iq2000/iq2000.h: Likewise.
3592 * config/mips/mips.h: Likewise.
3593 * config/mn10300/mn10300.h: Likewise.
3594 * config/rs6000/rs6000.h: Likewise.
3595 * config/score/score.h: Likewise.
3596 * config/spu/spu.h: Likewise.
3597 * config/v850/v850.h: Likewise.
3598 * defaults.h: Likewise.
3599 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
d7822892
UB
3600 * expr.c (emit_block_move): Adjust use of
3601 OUTGOING_REG_PARM_STACK_SPACE.
81464b2c
KT
3602 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
3603 OUTGOING_REG_PARM_STACK_SPACE.
3604 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
3605
4218dc2d
JJ
36062008-05-08 Jakub Jelinek <jakub@redhat.com>
3607
3608 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
3609 on OMP_RETURN for OMP_FOR.
3610
1f16b47c
JJ
3611 PR debug/35896
3612 * dwarf2out.c (dw_expand_expr, common_check): Removed.
3613 (fortran_common): New function.
3614 (gen_variable_die): Call fortran_common instead of common_check,
3615 adjust for it returning tree instead of rtx. Formatting.
3616
4218dc2d 36172008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
becfd6e5 3618
d7822892
UB
3619 PR rtl/7335
3620 PR rtl/33826
3621 * see.c (see_copy_insn): Copy new pure const attributes for new call.
3622 * c-decl.c (merge_decls): Ditto.
3623 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
3624 to RTL_CONST_OR_PURE_CALL_P.
3625 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
3626 Initialized DECL_LOOPING_CONST_PURE.
3627 (process_call_operands): Set tree_side_effects properly.
3628 * tree.h (TREE_READONLY_DECL_P): Removed.
3629 (DECL_IS_PURE): Renamed to DECL_PURE_P.
3630 (DECL_LOOPING_OR_CONST_P): New macro.
3631 (struct tree_function_decl): Added looping_const_or_pure_p.
3632 (ECF_*) Renumbered.
3633 (ECF_LOOPING_OR_CONST_P): New macro.
3634 * rtlanal.c (pure_const_p): Removed.
3635 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
3636 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
3637 to RTL_CONST_CALL_P.
3638 * ipa-pure-const.c (pure_const_state_e): Added looping field.
3639 (check_decl, check_tree, check_call, scan_function): Initialize
3640 looping.
3641 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
3642 (static_execute): Set looping true for recursive functions.
3643 Undo setting state to IPA_NEITHER for recursive functions.
3644 * cse.c (cse_insn):
3645 * ifcvt.c (noce_can_store_speculate_p): Changed
3646 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
3647 RTL_CONST_OR_PURE_CALL_P.
3648 * dse.c (scan_insn): Ditto.
3649 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
3650 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
3651 RTL_CONST_OR_PURE_CALL_P.
3652 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
3653 pure_call_p to RTL_CONST_CALL_P.
3654 * gimplify.c (gimplify_call_expr): Clear side effects for
3655 non-looping pure and constant calls.
3656 * calls.c (emit_call_1): Set rtl flags from ecf flags.
3657 (flags_from_decl_or_type): Set ecf flags from decl flags.
3658 (initialize_argument_information): Turn off
3659 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
3660 Change const to pure if callee_copies is true rather than just
3661 turning off const.
3662 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
3663 way of marking pure calls.
3664 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
3665 Remove hack that was supposed to fix pr7335 and remove old
3666 way of marking pure calls.
3667 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
3668 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
3669 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
3670 RTL_CONST_OR_PURE_CALL_P.
3671 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
3672 * loop-invariant.c (find_exits, find_invariant_bb): Changed
3673 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
3674 * sched-deps.c (schedule_analyze): Ditto.
3675 * rtl.h (struct rtx_def): Use call field, unchanging field, and
3676 return_val field of calls to represent pure and const function info.
3677 (CONST_OR_PURE_CALL_P): Deleted macro.
3678 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
3679 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
3680 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
3681 TREE_READONLY.
3682 * tree-optimize.c (execute_fixup_cfg): Added test for
3683 ECF_LOOPING_CONST_OR_PURE.
3684 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
3685 DECL_PURE_P.
3686 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
3687 effects for looping pure or const calls.
3688 (verify_gimple_expr): Added verification code.
3689 * config/alpha/alpha.c (alpha_legitimize_address,
3690 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
3691 RTL_CONST_CALL_P.
3692 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
3693 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
3694 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
3695 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
3696 RTL_CONST_OR_PURE_CALL_P.
3697 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
3698 and const calls to be deleted.
becfd6e5 3699
d7822892 37002008-05-07 Uros Bizjak <ubizjak@gmail.com>
ffbaf337
UB
3701
3702 PR target/35714
3703 * config/i386/mmx.md (mmx_subv2sf3): New expander.
3704 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
3705 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
3706 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
3707 to handle nonimmediate operands.
3708 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
3709 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
3710 to handle nonimmediate operands.
3711 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
3712 (mmx_pmulhrwv4hi3): New expander. Use
3713 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3714 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
3715 (sse2_umulv1siv1di3): New expander. Use
3716 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3717 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
3718 (mmx_eq<mode>3): New expander. Use
3719 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3720 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
3721 (mmx_uavgv8qi3): New expander. Use
3722 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3723 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
3724 (mmx_uavgv4hi3): New expander. Use
3725 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3726
3727 * config/i386/sse.md
3a3f9d87 3728 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 3729 to handle nonimmediate operands.
3a3f9d87 3730 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 3731 to handle nonimmediate operands.
3a3f9d87 3732 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 3733 to handle nonimmediate operands.
3a3f9d87 3734 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 3735 to handle nonimmediate operands.
3a3f9d87 3736 (sse2_unpckhpd_exp): New expander. Use
ffbaf337 3737 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 3738 (sse2_unpcklpd_exp): New expander. Use
ffbaf337 3739 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 3740 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 3741 to handle nonimmediate operands.
ffbaf337
UB
3742 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
3743 to handle nonimmediate operands.
3744 (*sse2_<plusminus_insn><mode>3): Rename from
3745 sse2_<plusminus_insn><mode>3 insn pattern.
3746 (sse2_<plusminus_insn><mode>3): New expander. Use
3747 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3748 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
3749 (sse2_umulv2siv2di3): New expander. Use
3750 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3751 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
3752 (sse4_1_mulv2siv2di3): New expander. Use
3753 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3754 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
3755 (sse2_pmaddwd): New expander. Use
3756 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3757 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
3758 (sse2_eq<mode>3): New expander. Use
3759 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3760 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
3761 (sse4_1_eqv2di3): New expander. Use
3762 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3763 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3764 (sse2_uavgv16qi3): New expander. Use
3765 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3766 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
3767 (sse2_uavgv16qi3): New expander. Use
3768 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3769 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
3770 (sse2_uavgv8hi3): New expander. Use
3771 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3772 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
3773 (ssse3_pmulhrswv8hi3): New expander. Use
3774 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3775 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
3776 (ssse3_pmulhrswv4hi3): New expander. Use
3777 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3778
3779 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
3780 (<sse>_vmmul<mode>3): Ditto.
3781 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
3782 (divv2df3): Ditto.
3783 (ssse3_pmaddubsw128): Use register_operand for operand 1.
3784 (ssse3_pmaddubsw): Ditto.
3785
3a3f9d87
UB
3786 * config/i386/i386.c (struct_builtin_description)
3787 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
3788 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
3789 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
3790 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
3791 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
3792 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
3793 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
3794 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
3795 (ix86_fixup_binary_operands): Assert that src1
ffbaf337
UB
3796 and src2 must have the same mode when swapped.
3797 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
3798 and ix86_binary_operator_ok. Do not force operands in registers
3799 when optimizing.
3800
95622280
JH
38012008-05-07 Jan Hubicka <jh@suse.cz>
3802
3803 * cgraph.c (dump_cgraph_node): Update.
3804 * cgraph.h (cgraph_local_info): Break out inline summary.
3805 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
3806 hook.
3807 * ipa-inline (inline_summary): New accestor function.
3808 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
3809 cgraph_decide_inlining, compute_inline_parameters): Update.
3810 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
3811
96fcacb7
MK
38122008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
3813
3814 Cleanup ColdFire scheduling support and add V4 pipeline model.
3815
3816 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
3817 (define_attr cpu): Add cfv4 value.
3818 (define_attr type, define_attr type1): Merge into a single 'type'
3819 attribute. Update all uses.
3820 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
3821 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
3822 Update all uses.
3823 (define_attr opx_mem, define_attr opy_mem): Remove.
3824 (define_attr op_mem): Clean up, update comment.
3825 (define_attr size): Use specific values instead of general int.
3826 (define_attr guess, define_attr split): Remove. Update all uses.
3827 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
3828 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
3829 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
3830 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
3831 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
3832 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
3833 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
3834 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
3835 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
3836 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
3837 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
3838 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
3839 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
3840 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
3841 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
3842 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
3843 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
3844 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
3845 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
3846 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
3847 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
3848 Update or set attributes.
3849 (stack_tie): New fake instruction.
3850
3851 * config/m68k/m68k.h (TUNE_CFV4): New macro.
3852 (m68k_sched_attr_size): Update declaration.
3853 (m68k_sched_attr_type2): Remove.
3854 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
3855 Declare new bypass predicates.
3856
3857 * config/m68k/m68k.c (m68k_sched_issue_rate,
3858 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
3859 implementations.
3860 (TARGET_SCHED_ISSUE_RATE,
3861 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
3862 (override_options): Handle scheduling for ColdFire V4 core.
3863 (m68k_expand_prologue): Emit stack_tie.
3864 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
3865 'OP_TYPE_FPN'. Update all uses.
3866 (sched_guess_p): Remove.
3867 (sched_address_type): Handle symbolic addresses.
3868 (sched_get_operand): New static function.
3869 (sched_operand_type): Merge into sched_attr_op_type.
3870 (sched_attr_op_type): Handle FP registers, handle quick constants,
3871 update.
3872 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
3873 (m68k_sched_attr_size): Update. Move logic to ...
3874 (sched_get_attr_size_int): New static function.
3875 (sched_get_opxy_mem_type): New static function.
3876 (m68k_sched_attr_op_mem): Update.
3877 (m68k_sched_attr_type2): Remove.
3878 (sched_cfv4_bypass_data): New static variable.
3879 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
3880 (m68k_sched_issue_rate): Implement scheduler hook.
3881 (struct _sched_ib: enabled_p): New field.
3882 (m68k_sched_variable_issue): Update. Handle V4.
3883 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
3884 sched_dump_class_func_t, sched_dump_split_class,
3885 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
3886 sched_dump_dfa_class, m68k_sched_dump): Remove.
3887 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
3888 hook.
3889 (m68k_sched_init_global): Remove statisctics dumping, introduce
3890 sanity check that all instructions have pipeline reservations. Handle
3891 ColdFire V4 core.
3892 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3893 Handle ColdFire V4 core.
3894 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
3895 New static functions.
3896 (m68k_sched_address_bypass_p): New bypass predicate.
3897 (sched_get_indexed_address_scale): New static function.
3898 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
3899
3900 * cf.md: Update comments.
3901 (define_attr type2): Remove. Use 'type' attribute instead.
3902 Update all uses.
3903 (cf_ib): Rename to cfv123_ib. Update all uses.
3904 (cf_oep): Rename to cfv123_oep. Update all uses.
3905 (cf_chr): Rename to cfv123_chr. Update all uses.
3906 (cf_mem): Rename to cfv123_mem. Update all uses.
3907 (cf_mac): Move to more appropriate place.
3908 (cfv123_guess): New automaton and cpu_unit.
3909 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
3910 Update uses of 'size' attribute. Handle before reload scheduling.
3911 (cfv123_guess): New dummy reservation for unhandled instructions.
3912 (cfv4_*): Pipeline description of ColdFire V4 core.
3913 (ignore): New reservation to handle 'ignore' type.
3914
2ee510b4
ILT
39152008-05-07 Ian Lance Taylor <iant@google.com>
3916
3917 PR middle-end/36013
3918 * gimplify.c (find_single_pointer_decl_1): Don't look through
3919 indirections.
3920 (find_single_pointer_decl): Adjust comments.
3921
c18c98c0
JJ
39222008-05-07 Jakub Jelinek <jakub@redhat.com>
3923
f61edbf6
JJ
3924 PR middle-end/36137
3925 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
3926 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
3927
c18c98c0
JJ
3928 PR middle-end/36106
3929 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
3930 integral type rather than floating point, then VIEW_CONVERT_EXPR
3931 to the floating point type.
3932
c18c98c0 39332008-05-07 Uros Bizjak <ubizjak@gmail.com>
537d4fa6
UB
3934
3935 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
3936 TFmode op0 to register.
3937
5f04ff80
AM
39382008-05-07 Alan Modra <amodra@bigpond.net.au>
3939
3940 * c-decl.c (grokdeclarator): Comment typo.
3941
c6c6b7aa
AH
39422008-05-06 Aldy Hernandez <aldyh@redhat.com>
3943
3944 * tree-flow.h: Remove prototype for computed_goto_p.
3945 * tree-cfg.c (computed_goto_p): Make static.
3946
4317a2fa
L
39472008-05-06 H.J. Lu <hongjiu.lu@intel.com>
3948
3949 PR target/35657
d0b48c67 3950 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4317a2fa
L
3951 (contains_aligned_value_p): This. Handle _Decimal128.
3952 (ix86_function_arg_boundary): Only align _Decimal128 to its
3953 natural boundary and handle it properly.
3954
c43f07af
MJ
39552008-05-06 Martin Jambor <mjambor@suse.cz>
3956
4317a2fa
L
3957 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
3958 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
3959 (ipcp_method_set_orig_node): Removed.
3960 (ipcp_cval_get_cvalue_type): Removed.
3961 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
3962 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
3963 (ipcp_cval_set_cvalue_type): Removed.
3964 (ipcp_cval_get_cvalue): Removed.
3965 (ipcp_cval_set_cvalue): Removed.
3966 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
3967 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
3968 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
3969 (ipcp_cval_meet): Renamed to ipa_lattice_meet
3970 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
3971 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
3972 (ipcp_get_ith_lattice): Changed parameters.
3973 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
3974 (ipcp_lattice_from_jfunc): Changed parameters.
c43f07af
MJ
3975 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
3976 (ipcp_method_cval_print): Added temporary variable info.
3977 (ipcp_redirect): Removed already unused local variable caller.
3978 (ipcp_redirect): New temporary variable orig_callee_info
3979 (ipcp_redirect): Removed newly unused local variable callee.
3980 (ipcp_redirect): Removed (a bit confusing) local variable type.
3981 (ipcp_insert_stage): Added local variable info.
3982 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
3983 renamed too
3984 (ipcp_formal_create): Removed.
3985 (ipcp_method_cval_set): Removed.
3986 (ipcp_propagate_stage): Renamed lattice variables.
3987 (ipcp_method_cval_set_cvalue_type): Removed.
3988 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
3989 (ipcp_print_all_lattices): Changed printed strings to refer to
3990 lattices rather than cvals.
3991 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
3992 (ipcp_propagate_const): Changed formal parameters.
3993 (build_const_val): Changed formal parameters.
3994 (ipcp_insert_stage): Removed useless variable cvalue
3995 (build_const_val): Changed formal parameters.
3996 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
3997 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
3998 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
3999 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
4000 (ipcp_print_func_profile_counts): Changed string from "method" to
4001 "function"
4002 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
4003 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
4004 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
4005 (ipcp_structures_print): Renamed to ipcp_print_all_structures
4006 (ipcp_profile_print): Renamed to ipcp_print_profile_data
4007 (ipcp_lat_is_const): Changed parameters and made inline.
4008 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
4009 (ipcp_redirect): Renamed to ipcp_need_redirect_p
4010 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
4011 the predicate condition directly
4012 (ipcp_propagate_stage): Added local variable args. Removed local
4013 variable callee. (Both are mere code simplifications.)
4014 (ipcp_method_dont_insert_const): Renamed to
4015 ipcp_node_not_modifiable_p.
4016 (ipcp_node_not_modifiable_p): Made inline.
4017 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
4018 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
4019 (ipcp_print_all_lattices): Removed variable cvalue
4020 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
4021 Updated comments.
4022
2b9d6cf3
OH
40232008-05-06 Olivier Hainque <hainque@adacore.com>
4024
4025 * tree-sra.c (try_instantiate_multiple_fields): Early return
4026 if field has POINTER_TYPE.
4027
18efb179
KT
40282008-05-06 Kai Tietz <kai.tietz@onevision.com>
4029
4030 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
4031 by using 'q' specifier for instruction.
4032 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
4033
38ce04d9
AS
40342008-05-06 Anatoly Sokolov <aesok@post.ru>
4035
4036 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4037 Change mode of zero_extract from QImode to HImode.
4038 (sign bit tests peepholes): (Ditto.).
4039
333d8f61
UB
40402008-05-06 Uros Bizjak <ubizjak@gmail.com>
4041
4042 * config/i386/mmx.md: Remove double backslashes from asm templates.
d0b48c67 4043 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
333d8f61
UB
4044 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
4045 to handle nonimmediate operands.
d0b48c67 4046 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
333d8f61
UB
4047 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
4048 to handle nonimmediate operands.
d0b48c67
UB
4049 (*mmx_<code>v2sf3_finite): New insn pattern.
4050 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
333d8f61
UB
4051 (mmx_<code>v2sf3): New expander. Use
4052 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4053 (mmx_<plusminus_insn><mode>3): New expander. Use
4054 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 4055 (*mmx_<plusminus_insn><mode>3): New insn pattern.
333d8f61
UB
4056 (mmx_add<mode>3): Removed.
4057 (mmx_ssadd<mode>3): Ditto.
4058 (mmx_usadd<mode>3): Ditto.
4059 (mmx_sub<mode>3): Ditto.
4060 (mmx_sssub<mode>3): Ditto.
4061 (mmx_ussub<mode>3): Ditto.
d0b48c67 4062 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
333d8f61
UB
4063 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
4064 to handle nonimmediate operands.
d0b48c67 4065 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
333d8f61
UB
4066 insn pattern.
4067 (mmx_smulv4hi3_highpart): New expander. Use
4068 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 4069 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
333d8f61
UB
4070 insn pattern.
4071 (mmx_umulv4hi3_highpart): New expander. Use
4072 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 4073 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
333d8f61
UB
4074 (mmx_<code>v4hi3): New expander. Use
4075 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 4076 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
333d8f61
UB
4077 (mmx_<code>v8qi3): New expander. Use
4078 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 4079 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
333d8f61
UB
4080 (mmx_<code><mode>3): New expander. Use
4081 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4082
3716f233
JH
40832008-05-05 Jan Hubicka <jh@suse.cz>
4084
4085 PR tree-optimization/36118
4086 * passes.c (pass_init_dump_file): Fix dump header.
4087
1aee3ab6
AP
40882008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
4089
4090 PR middle-end/36141
333d8f61
UB
4091 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
4092 VCE for function decls.
1aee3ab6 4093
0d07fcad
L
40942008-05-05 H.J. Lu <hongjiu.lu@intel.com>
4095
4096 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
4097
d1c3b587
L
40982008-05-05 H.J. Lu <hongjiu.lu@intel.com>
4099
4100 * config/i386/i386.md (sat_plusminus): New.
4101 (plusminus_insn): Likewise.
4102 (plusminus_mnemonic): Likewise.
4103 (addsub): Removed.
4104 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
4105 (*<addsub><mode>3_cc_overflow): Renamed to ...
4106 (*<plusminus_insn><mode>3_cc_overflow): This.
4107 (*<addsub>si3_zext_cc_overflow): Renamed to ...
4108 (*<plusminus_insn>si3_zext_cc_overflow): This.
4109
0d07fcad 4110 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
d1c3b587
L
4111 (<plusminus_insn><mode>3): This.
4112 (*<addsub><mode>3): Renamed to ...
4113 (*<plusminus_insn><mode>3): This.
4114 (<sse>_vm<addsub><mode>3): Renamed to ...
4115 (<sse>_vm<plusminus_insn><mode>3): This.
4116 (sse3_h<addsub>v4sf3): Renamed to ...
4117 (sse3_h<plusminus_insn>v4sf3): This.
4118 (sse3_h<addsub>v2df3): Renamed to ...
4119 (sse3_h<plusminus_insn>v2df3): This.
4120 (<plusminus_insn><mode>3): New.
4121 (*<plusminus_insn><mode>3): Likewise.
4122 (sse2_<plusminus_insn><mode>3): Likewise.
4123 (add<mode>): Removed.
4124 (*add<mode>3): Likewise.
4125 (sse2_ssadd<mode>3): Likewise.
4126 (sse2_usadd<mode>3): Likewise.
4127 (sub<mode>3): Likewise.
4128 (*sub<mode>3): Likewise.
4129 (sse2_sssub<mode>3): Likewise.
4130 (sse2_ussub<mode>3): Likewise.
4131
23688481
BK
41322008-05-05 Benjamin Kosnik <bkoz@redhat.com>
4133
d1c3b587
L
4134 * gthr-single.h: Add in required interface elements as per gthr.h.
4135 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
4136 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
4137 Generalize UNUSED macro.
4138 (__gthread_once): Add.
4139 (__gthread_key_create): Add.
333d8f61 4140 (__gthread_key_delete): Add.
d1c3b587 4141 (__gthread_getspecific): Add.
333d8f61 4142 (__gthread_setspecific): Add.
23688481 4143
e06f0ff9
AP
41442008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
4145
23688481
BK
4146 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
4147 the same size types for the indirect reference on the rhs, then
4148 create a VCE.
e06f0ff9 4149
8c32cbc9
UB
41502008-05-05 Uros Bizjak <ubizjak@gmail.com>
4151
4152 * config/i386/i386.md
4153 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
4154 one insn template instead of template series.
4155 (*xordi_1_rex64): Ditto.
4156 (*xordi_2_rex64): Ditto.
4157
06d10aaf
IR
41582008-05-05 Ira Rosen <irar@il.ibm.com>
4159
8c32cbc9 4160 PR tree-optimization/36119
06d10aaf
IR
4161 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
4162 in case of SLP.
4163
24c05141
JH
41642008-06-04 Jan Hubicka <jh@suse.cz>
4165
4166 tree-optimization/36100
4167 * tree-pass.h (pass_O0_always_inline): Declare.
4168 * ipa-inline.c (inline_transform): Remove dead code.
4169 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
4170 pass_O0_always_inline): New.
4171 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
4172
8fa8585d
KT
41732008-05-04 Kai Tietz <kai.tietz@onevision.com>
4174
4175 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
4176 mnemonic in this_param move for TARGET_64BIT.
4177
62d2739a
UB
41782008-05-04 Uros Bizjak <ubizjak@gmail.com>
4179
4180 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
4181 (*strmovsi_rex_1): Ditto.
4182 (*strsetsi_1): Ditto.
4183 (*strsetsi_rex_1): Ditto.
4184
4185 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
4186 adddicc expanders using SWI mode iterator.
4187
4d31c3e1
L
41882008-05-04 H.J. Lu <hongjiu.lu@intel.com>
4189
4190 PR target/36121
62d2739a
UB
4191 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
4192 argument handling.
4d31c3e1 4193
5f7ca34b
DM
41942008-05-04 David S. Miller <davem@davemloft.net>
4195
4196 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
4197 (sparc*-*-linux*): Use linux.h in tm_file.
4198 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
4199 compiler defaulting to 32-bit.
4200 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
4201 no longer needed.
4202 * config/sparc/linux.h: Remove definitions now obtained
4203 properly from linux.h
4204 * config/sparc/linux64.h: Likewise.
4205 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
4206 don't want this setting for 32-bit builds in a biarch compiler.
4207 * doc/install.texi: Add sparc-linux to list of targets
4208 supporting --enable-targets=all.
4209
5a3db6d5
AP
42102008-05-03 Andrew Pinski <pinskia@gmail.com>
4211
4212 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
4213
3c7ae64a
L
42142008-05-03 H.J. Lu <hongjiu.lu@intel.com>
4215
4216 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
4217 after V4SI_FTYPE_V8HI.
4218 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
4219 case V4SI_FTYPE_V2DF.
4220
4218dc2d 42212008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
75643ab1
KZ
4222
4223 * doc/invoke.texi (max-flow-memory-locations): Removed.
4224 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
4225
621b5ed6
RG
42262008-05-03 Richard Guenther <rguenther@suse.de>
4227
4228 PR middle-end/34973
4229 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
4230
11835124
DM
42312008-05-02 David S. Miller <davem@davemloft.net>
4232
4233 * config.gcc (need_64bit_hwint): Document libcpp dependency.
4234
e4d35515
SB
42352008-05-02 Simon Baldwin <simonb@google.com>
4236
4237 PR bootstrap/36108
4238 * c-common.h (warn_array_subscript_range): Removed.
4239 * c-common.c (warn_array_subscript_range): Ditto.
4240 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
4241 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
4242
bb1418c1
L
42432008-05-02 H.J. Lu <hongjiu.lu@intel.com>
4244
4245 * config/i386/i386.c (ix86_special_builtin_type): New.
4246 (bdesc_special_args): Likewise.
4247 (ix86_expand_special_args_builtin): Likewise.
4248 (ix86_init_mmx_sse_builtins): Updated.
4249 (ix86_expand_builtin): Updated.
4250 (ix86_expand_store_builtin): Removed.
4251 (ix86_expand_unop_builtin): Likewise.
4252
4253 * config/i386/mm3dnow.h (__v2sf): Moved to ...
4254 * config/i386/mmintrin.h (__v2sf): Here.
4255
4256 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
4257 const __v2sf.
4258 (_mm_loadl_pi): Likewise.
4259 (_mm_storeh_pi): Replace __v2si with __v2sf.
4260 (_mm_storel_pi): Likewise.
4261
4262 * doc/extend.texi: Correct __builtin_ia32_loadhps,
4263 __builtin_ia32_loadlps, __builtin_ia32_storehps,
4264 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
4265 __builtin_ia32_loadlpd.
4266
42672008-05-02 H.J. Lu <hongjiu.lu@intel.com>
4268
4269 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
4270 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
4271 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
4272 (ix86_init_mmx_sse_builtins): Updated.
4273 (ix86_expand_args_builtin): Likewise.
4274 (ix86_expand_builtin): Likewise.
4275 (ix86_expand_unop1_builtin): Renamed to ...
4276 (ix86_expand_unop_vec_merge_builtin): This.
4277
a12f79f5
JH
42782008-05-01 Jan Hubicka <jh@suse.cz>
4279
4280 PR bootstrap/36100
4281 * ipa-inline.c (inline_generate_summary): Make static.
4282 (inline_transform): Do not call inlining at -O0; make static.
4283 * passes.c (execute_todo): Add sanity check.
4284 (execute_one_ipa_transform_pass): Execute proper flags.
4285
b5487346
EB
42862008-05-01 Eric Botcazou <ebotcazou@adacore.com>
4287
4288 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
4289 (DECL_NONADDRESSABLE_P): Likewise.
4290 * alias.c (record_component_aliases): Fix comment.
4291
ca873b0e
SB
42922008-05-01 Simon Baldwin <simonb@google.com>
4293
4294 * c-common.h (warn_array_subscript_range): New function.
4295 * c-common.c (warn_array_subscript_range): Ditto.
4296 * tree-vrp.c (check_array_ref): Corrected code to agree with
4297 comment, ignoring only arrays of size 0 or size 1.
4298 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
4299
99c25ac1
L
43002008-05-01 H.J. Lu <hongjiu.lu@intel.com>
4301
4302 * config/i386/i386.c (ix86_builtin_type): Replace
4303 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
4304 (bdesc_args): Updated.
4305 (ix86_init_mmx_sse_builtins): Likewise.
4306 (ix86_expand_args_builtin): Likewise.
4307
4308 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
4309 with __v1di.
4310
4311 * doc/extend.texi: Correct __builtin_ia32_palignr.
4312
a44acfb9
L
43132008-05-01 H.J. Lu <hongjiu.lu@intel.com>
4314
4315 PR target/36095
4316 * config/i386/i386.c (bdesc_crc32): Removed.
4317 (ix86_expand_crc32): Likewise.
4318 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
4319 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
4320 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
4321 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
4322 UINT_FTYPE_UINT_UCHAR.
4323 (bdesc_args): Updated. Add crc32 builtins.
4324 (ix86_init_mmx_sse_builtins): Updated.
4325 (ix86_expand_args_builtin): Updated to support subreg.
4326
4327 * doc/extend.texi: Correct __builtin_ia32_crc32di.
4328
17653c00
JH
43292008-05-01 Jan Hubicka <jh@suse.cz>
4330
4331 * tree-pass.h (opt_pass): Add IPA_PASS.
4332 (varpool_node, cgraph_node): Forward declare.
4333 (ipa_opt_pass): Define.
4334 (pass_ipa_inline): Turn into ipa_opt_pass.
4335 (pass_apply_inline): Remove.
4336 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
4337 (apply_inline): Turn into ....
4338 (inline_transform): ... this one.
4339 (inline_generate_summary): New function.
4340 (pass_apply_inline): Remove.
4341 * function.h (ipa_opt_pass): Forward declare structure; typedef;
4342 vector.
4343 (struct function): Add ipa_transforms_to_apply.
4344 * passes.c (register_one_dump_file): Work on IPA_PASS.
4345 (init_optimization_passes): Remove pass_inline_parameters and
4346 pass_apply_inline.
4347 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
4348 (execute_one_pass) ... here; apply transforms when possible.
4349 (add_ipa_transform_pass, execute_ipa_summary_asses,
4350 execute_one_ipa_transform_pass): New.
4351 (execute_ipa_pass_list): Update for IPA_PASS type.
4352
bd9513ea
L
43532008-05-01 H.J. Lu <hongjiu.lu@intel.com>
4354
4355 * config/i386/i386.c (ix86_builtin_type): Add
4356 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
4357 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
4358 (bdesc_args): Add SSE4a builtins.
4359 (ix86_init_mmx_sse_builtins): Updated.
4360 (ix86_expand_args_builtin): Likewise.
4361 (ix86_expand_builtin): Likewise.
4362
858e5e79
L
43632008-05-01 H.J. Lu <hongjiu.lu@intel.com>
4364
4365 * config/i386/i386.c (ix86_builtin_type): Add
4366 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
4367 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
4368 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
4369 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
4370 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
4371 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
4372 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
4373 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
4374 and DI_FTYPE_DI_DI_INT.
4375 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
4376 (ix86_init_mmx_sse_builtins): Updated.
4377 (ix86_expand_args_builtin): Likewise.
4378 (ix86_expand_builtin): Likewise.
4379 (ix86_expand_binop_imm_builtin): Removed.
4380
4381 * doc/extend.texi: Correct __builtin_ia32_palignr128.
4382
a91ded4b
RG
43832008-04-30 Richard Guenther <rguenther@suse.de>
4384
4385 PR tree-optimization/32921
4386 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
4387
ad516a74
RS
43882008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
4389
4390 * config/arm/arm.c (arm_unwind_emit): Use
4391 crtl->all_throwers_are_sibcalls instead of
4392 cfun->all_throwers_are_sibcalls.
4393 (arm_output_fn_unwind): Likewise.
4394 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
4395 instead of cfun->uses_pic_offset_table.
4396 (frv_expand_prologue): Likewise.
4397 (frv_frame_pointer_required): Likewise.
4398 (frv_expand_fdpic_call): Likewise.
4399 (frv_emit_movsi): Likewise.
4400 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
4401 cfun->returns_pcc_struct instead of
4402 current_function_returns_pcc_struct.
4403 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
4404 instead of cfun->calls_eh_return.
4405 (m32c_pushm_popm): Likewise.
4406 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
4407 "extern" declaration.
4408
00d382a8
RG
44092008-04-30 Richard Guenther <rguenther@suse.de>
4410
4411 PR tree-optimization/21636
4412 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
4413 constant address.
4414 (evaluate_stmt): Print the likely value.
4415 (ccp_visit_stmt): Avoid excessive vertical spacing.
4416
45e18420
RAE
44172008-04-30 Rafael Espindola <espindola@google.com>
4418
4419 * builtins.c (fold_call_expr): Return realret.
4420 * tree-ssa-threadedge.c
4421 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
4422 __builtin_object_size.
4423
fe7df9c4
SP
44242008-04-30 Seongbae Park <seongbae.park@gmail.com>
4425
4426 * gcc.c (wrapper_string): New variable.
4427 (insert_wrapper): New function.
4428 (execute): New option -wrapper.
4429 * doc/invoke.texi (Overall Options): New driver option -wrapper.
4430
18724e30
NF
44312008-04-30 Nathan Froyd <froydnj@codesourcery.com>
4432
62d2739a
UB
4433 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
4434 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
4435 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
4436 from...
4437 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
4438 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
4439 config/rs6000/e500crtres64gprctr.asm,
4440 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
4441 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
4442 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
4443 config/rs6000/e500crtsav64gprctr.asm,
4444 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
4445 config/rs6000/e500crtsavg64gprctr.asm: New files.
4446 * config/rs6000/t-ppccomm: Add build rules for new files.
4447 (LIB2FUNCS_STATIC_EXTRA): Add new files.
4448 * config/rs6000/t-netbsd: Add build rules for new files.
4449 (LIB2FUNCS_STATIC_EXTRA): New variable.
4450 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
4451 (CRTSAVRES_DEFAULT_SPEC): Likewise.
4452 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18724e30 4453
1b667c82
L
44542008-04-30 H.J. Lu <hongjiu.lu@intel.com>
4455
4456 * config/i386/i386.c (ix86_builtin_type): Add
4457 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
4458 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
4459 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
4460 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
4461 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
4462 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
4463 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
4464 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
4465 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
4466 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
4467 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
4468 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
4469 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
4470 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
4471 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
4472 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
4473 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
4474 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
4475 V1DI_FTYPE_V2SI_V2SI.
4476 (bdesc_2arg): Moved to ...
4477 (bdesc_args): Here.
4478 (ix86_init_mmx_sse_builtins): Updated.
4479 (ix86_expand_args_builtin): Updated. Take a pointer
4480 to const struct builtin_description. Handle comparison
4481 builtin functions.
62d2739a 4482 (ix86_expand_sse_compare): Take a new argument for swapping operands.
1b667c82
L
4483 (ix86_expand_builtin): Updated.
4484
4485 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
4486 (ssse3_pmaddubsw128): This.
4487 (ssse3_pmaddubswv4hi3): Renamed to ...
4488 (ssse3_pmaddubsw): This.
4489
62d2739a 4490 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1b667c82 4491 (__builtin_ia32_packssdw128): Likewise.
62d2739a 4492 (__builtin_ia32_packuswb128): Likewise.
1b667c82
L
4493 (__builtin_ia32_pmaddubsw): Likewise.
4494 (__builtin_ia32_pmaddubsw128): Likewise.
4495
d7b339dd
RG
44962008-04-30 Richard Guenther <rguenther@suse.de>
4497
4498 PR tree-optimization/14847
4499 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
4500 (recognize_bits_test): Use it.
4501 (recognize_single_bit_test): Likewise.
4502
6a3f3fea
MJ
45032008-04-30 Martin Jambor <mjambor@suse.cz>
4504
4505 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
4506 instead of setting number of formal parameters to zero.
4507 (ipcp_init_stage): Do not set the number of actual parameters to zero
4508 either.
4509 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
4510 which are called with variable number of arguments.
4511 (ipcp_insert_stage): Explicitely skipping all nodes which are
4512 called with variable number of arguments.
4513 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
4514 number of parameters.
4515
4516 * ipa-prop.h (struct ipa_node_params): Added flag
4517 called_with_var_arguments
4518 (ipa_set_param_count): Added. Changed sole setter to use it.
4519 (ipa_get_param_count): Added. All readers of param_count
4520 converted to use it instead.
4521 (ipa_set_called_with_variable_arg): Added.
4522 (ipa_is_called_with_var_arguments): Added.
4523 (ipa_get_ith_param): Added. All readers of param_decls converted
4524 to use it instead.
4525 (ipa_set_cs_argument_count): Added, sole writer to argument_count
4526 changed to use it.
4527 (ipa_get_cs_argument_count): Added, all readers of argument_count
4528 changed to cal it.
4529 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
4530 to use it.
4531
4532 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
4533 (struct ipcp_lattice): Renamed cval_type to type
4534 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
4535
4536 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
4537 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
4538 (ipcp_insert_stage): Changed the type of variable cvalue to tree
4539 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
4540 (build_const_val): Changed the type of parameter cvalue to tree
4541 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
4542 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
4543
4544 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
4545 constant
4546
4547 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
4548 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
4549 (ipa_add_method): Renamed to ipa_push_func_to_list
4550 (ipa_remove_method): Renamed to ipa_pop_func_from_list
4551 (ipa_callsite_param_count): Removed.
4552 (ipa_callsite_param_count_set): Removed.
4553 (ipa_callsite_param): Removed.
4554 (ipa_callsite_callee): Removed.
4555 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
4556 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
4557 (ipa_method_formal_count): Removed.
4558 (ipa_method_formal_count_set): Removed.
4559 (ipa_method_get_tree): Removed.
4560 (ipa_method_tree_map_create): Removed.
4561 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
4562 (ipa_create_param_decls_array): Creates the array itself
4563 (ipa_create_param_decls_array): Temporary variable info instead of
4564 a few dereferences.
4565 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
4566 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
4567 (get_type): Removed.
4568 (ipa_jf_get_info_type): Removed.
4569 (ipa_node_create): Renamed to ipa_create_node_params
4570 (ipa_free): Renamed to ipa_free_all_node_params
4571 (ipa_nodes_create): Renamed to ipa_create_all_node_params
4572 (ipa_edges_create): Renamed to ipa_create_all_edge_args
4573 (ipa_edges_free): Renamed to ipa_free_all_edge_args
4574 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
4575 (ipa_free_all_node_params): Deallocation to jump_functions moved to
4576 ipa_free_all_edge_args
4577 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
4578 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
4579 (ipa_create_methodlist_node): Removed.
4580 (ipa_methodlist_method): Removed.
4581 (ipa_methodlist_method_set): Removed.
4582 (ipa_methodlist_next_method): Removed.
4583 (ipa_methodlist_next_method_set): Removed.
4584 (ipa_method_is_modified): Removed.
4585 (ipa_method_modify_create): Removed.
4586 (ipa_method_modify_init): Temporary variable info instead of a few
4587 dereferences.
4588 (ipa_detect_param_modifications): Temporary variable info instead of
4589 a few dereferences.
4590 (ipa_compute_jump_functions): Temporary variable info instead of
4591 a few dereferences.
4592 (ipa_method_modify_set): Removed.
4593 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
4594 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
4595 than craph_node as the first parameter.
4596 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
4597 (ipa_method_modify_init): Removed.
4598 (ipa_compute_jump_functions): Added a temp variable instead of
4599 repeatadly dereferencing the cgraph_edge.aux pointer
4600 (ipa_callsite_param_set_type): Removed.
4601 (ipa_compute_jump_functions): i renamed to index and moved to
4602 an inner block
4603 (ipa_callsite_param_set_info_type_formal): Removed.
4604 (ipa_callsite_param_set_info_type): Removed.
4605 (ipa_callsite_param_map_create): Removed.
4606 (ipa_callsite_tree): Removed.
4607 (ipa_callsite_caller): Removed.
4608 (ipa_pop_func_from_list): return_method removed to return_func
4609
4610 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
4611 prefixed all values with IPA_. Changed all users.
4612 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
4613 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
4614 and FORMAL_IPATYPE IPA_PASS_THROUGH.
4615 (union parameter_info): Renamed to jump_func_value.
4616 (union jump_func_value): Renamed value to constant
4617 (struct ipa_jump_func): Renamed info_type to value
4618 (struct ipa_node): Renamed to ipa_node_params
4619 (struct ipa_node_params): Renamed ipa_arg_num to param_count
4620 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
4621 (struct ipa_node_params): Renamed ipa_mod to modified_flags
4622 (struct ipa_edge): Renamed to ipa_edge_args
4623 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
4624 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
4625 (struct ipa_methodlist): Renamed to ipa_func_list
4626 (struct ipa_func_list): method_p renamed to node, next_method
4627 renamed to next
4628 (ipa_methodlist_p): Removed, switched all users to struct pointer
4629 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
4630
1c9c5e43
AM
46312008-04-30 Alan Modra <amodra@bigpond.net.au>
4632
4633 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
4634 (rs6000_emit_epilogue): Use backchain to restore only when we
4635 have a large frame. Make use of frame pointer to restore if we
4636 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
4637
cf2758e3
PB
46382008-04-29 Paolo Bonzini <bonzini@gnu.org>
4639
4640 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
4641 Add mode to zero_extract.
4642 (sign bit tests peepholes): (Ditto.).
4643
f318ff0a
L
46442008-04-29 H.J. Lu <hongjiu.lu@intel.com>
4645
4646 * config/i386/i386.c (ix86_builtins): Replace Prescott New
4647 Instructions in comments with SSE3.
4648 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
4649 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
4650 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
4651 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
4652 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
4653 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
4654 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
4655 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
4656 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
4657 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
4658 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
4659 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
4660 (bdesc_sse_args): Renamed to ...
4661 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
4662 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
4663 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
4664 IX86_BUILTIN_FABSQ.
4665 (bdesc_1arg): Moved to ...
4666 (bdesc_args): Here.
4667 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
4668 Instructions in comments with SSE3.
4669 (ix86_expand_sse_operands_builtin): Renamed to ...
4670 (ix86_expand_args_builtin): This. Updated.
4671 (ix86_expand_unop1_builtin): Update comments.
4672 (ix86_expand_builtin): Updated.
4673
ace4eb90
RG
46742008-04-29 Richard Guenther <rguenther@suse.de>
4675
4676 PR tree-optimization/36078
4677 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
4678 Update virtual SSA form after cleaning up the CFG.
4679
1447bf05
RG
46802008-04-29 Richard Guenther <rguenther@suse.de>
4681
4682 PR middle-end/15255
4683 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
4684
59e6913a
RG
46852008-04-29 Richard Guenther <rguenther@suse.de>
4686
4687 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
4688 (compute_may_aliases): Do not call finalize_ref_all_pointers.
4689 (compute_flow_insensitive_aliasing): Do not treat
4690 PTR_IS_REF_ALL pointers special.
4691 (get_smt_for): Likewise.
4692 (may_alias_p): Re-structure.
4693 (is_escape_site): A ref-all pointer conversion is not an escape site.
4694 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
4695 PTR_IS_REF_ALL pointers special.
4696 * tree-ssa-structalias.h (struct alias_info): Remove
4697 ref_all_symbol_mem_tag field.
4698 (PTR_IS_REF_ALL): Remove.
4699
81ad578e
RG
47002008-04-29 Richard Guenther <rguenther@suse.de>
4701
4702 PR middle-end/36077
4703 * fold-const.c (extract_muldiv_1): In combining division constants
4704 make sure to never overflow.
4705
4830ba1f
NC
47062008-04-29 Nick Clifton <nickc@redhat.com>
4707
4708 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
4709
b1c61c7e
RW
47102008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4711
4712 PR bootstrap/35169
4713 * optc-gen.awk: Work around HP-UX/IA awk bug.
4714
d6b68fcc
DS
47152008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
4716
4717 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
4718 2008-04-25 commit.
4719
0d5fd2b8
UB
47202008-04-28 Uros Bizjak <ubizjak@gmail.com>
4721
4722 PR target/36073
4723 * config/i386/i386.md
4724 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
4725 Change operand 1 predicate to nonimmediate_operand.
4726
623f8e39
JJ
47272008-04-28 Jakub Jelinek <jakub@redhat.com>
4728
4729 PR debug/36060
4730 * dwarf2out.c (struct die_struct): Mark as chain_circular through
4731 die_sub field.
4732 * gengtype.c (walk_type, write_func_for_structure): Handle
4733 chain_circular.
4734 * doc/gty.texi: Document chain_circular.
4735
82893cba
RG
47362008-04-28 Richard Guenther <rguenther@suse.de>
4737
4738 PR tree-optimization/36066
4739 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
4740 SCEV and loop.
4741
e356fac8
UB
47422008-04-28 Uros Bizjak <ubizjak@gmail.com>
4743
4744 PR target/36064
0d5fd2b8
UB
4745 * config/i386/i386.md
4746 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
e356fac8
UB
4747 Use match_scratch instead of match_operand for operands 3 and 4.
4748
d6e840ee
RG
47492008-04-27 Richard Guenther <rguenther@suse.de>
4750
4751 PR tree-optimization/18754
4752 PR tree-optimization/34223
4753 * tree-pass.h (pass_complete_unrolli): Declare.
4754 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
4755 loop size before and after unconditionally of UL_NO_GROWTH in effect.
4756 Rewrite loop into loop closed SSA form if it is not already.
4757 (tree_unroll_loops_completely): Re-structure to iterate over
4758 innermost loops with intermediate CFG cleanups.
4759 Unroll outermost loops only if requested or the code does not grow
4760 doing so.
4761 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
4762 loops are available.
4763 (tree_vectorize): Instead do so here.
4764 (tree_complete_unroll): Also unroll outermost loops.
4765 (tree_complete_unroll_inner): New function.
4766 (gate_tree_complete_unroll_inner): Likewise.
4767 (pass_complete_unrolli): New pass.
4768 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
4769 uses outside of the loop.
4770 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
4771 form if it is available.
4772 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
4773 * passes.c (init_optimization_passes): Schedule complete inner
4774 loop unrolling pass before the first CCP pass after final inlining.
4775
feb60f03
NS
47762008-04-27 Nathan Sidwell <nathan@codesourcery.com>
4777
4778 * targhooks.h (default_emutls_var_fields,
4779 default_emutls_var_init): Declare.
4780 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
4781 * target.h (struct gcc_target): Add struct emutls member.
4782 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
4783 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
4784 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
4785 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
4786 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
4787 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
4788 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
4789 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
4790 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
4791 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
4792 emit debug information.
4793 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
4794 * varasm.c: Include targhooks.h.
4795 (emutls_object_section, emutls_tmpl_section): New.
4796 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
4797 (EMUTLS_SEPARATOR): New.
4798 (prefix_name): New.
4799 (get_emutls_object_name): New.
4800 (default_emutls_var_fields): New, broken out of ...
4801 (get_emutls_object_type): ... here. Adjust to use target hooks.
4802 (get_emutls_init_templ_addr): Adjust to use target hooks.
4803 (emutls_decl): Adjust to use target hooks.
4804 (emutls_finish): Likewise.
4805 (default_emutls_var_init): New, broken out of ...
4806 (assemble_variable): ... here. Adjust to use target hooks.
4807 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
4808 SECCAT_EMUTLS_TMPL.
4809 * c-common.c (handle_section_attribute): Prevent overriding
4810 sections for emulated tls with special sections.
4811 * config/i386/i386.c (x86_64_elf_select_section): Add
4812 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
4813 (x86_64_elf_unique_section): Likewise.
4814 * config/vxworks.c: Include tree.h.
4815 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
4816 (vxworks_override_options): Set TLS scheme.
623f8e39 4817 * doc/tm.texi (Emulated TLS): New node.
feb60f03 4818
6bfb7f10
SB
48192008-04-26 Simon Baldwin <simonb@google.com>
4820
4821 PR c/35652
4822 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
4823 with propagated string constants.
4824
73e8165a
UB
48252008-04-26 Uros Bizjak <ubizjak@gmail.com>
4826
4827 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
4828 constraint for operand 2 when operand 0 is memory operand.
4829 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
4830 operand 0 is memory operand.
4831 (fix_trunc<mode>_i387_with_temp): Ditto.
4832 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
4833 operand 2 when operand 1 is memory operand.
4834 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
4835 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
4836 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
4837 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
4838 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
4839 operands 2,3 and 4 when operand 1 is memory operand.
4840 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
4841 is memory operand.
4842 (fistdi2_floor_with_temp): Ditto.
4843 (fist<mode>2_floor_with_temp): Ditto.
4844 (fistdi2_ceil_with_temp): Ditto.
4845 (fist<mode>2_ceil_with_temp): Ditto.
4846 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
4847
49bce30a
RS
48482008-04-26 David Daney <ddaney@avtrex.com>
4849
4850 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
4851 unspec_volitile.
4852 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
4853 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
4854 UNSPEC_UPDATE_GOT_VERSION): Renumber.
4855 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
4856 (compare_and_swap_12): New insn.
4857 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
4858 * config/mips/mips.c (mips_force_binary): New function.
4859 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
4860 (mips_expand_compare_and_swap_12): New function.
4861 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
4862
e3b5732b
JH
48632008-04-25 Jan Hubicka <jh@suse.cz>
4864
4865 PR testsuite/35843
4866 * cfgexpand.c (pass_expand): Turn into RTL pass.
4867 * passes.c (execute_one_pass): Do pass typechecking after execution.
4868 * tree-pass.h (pass_expand): Turn into RTL pass.
4869
4870 * function.h (struct rtl_data): Move here fields
4871 accesses_prior_frames, calls_eh_return, saves_all_registers,
4872 has_nonlocal_goto, has_asm_statement, is_thunk,
4873 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
4874 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
4875 arg_pointer_save_area_init from struct function; turn into bool.
4876 (struct function): Move
4877 calls_eh_return, saves_all_registers, has_nonlocal_goto,
4878 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
4879 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
4880 tail_call_emit, arg_pointer_save_area_init
4881 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
4882 (current_function_returns_struct, current_function_returns_pcc_struct,
4883 current_function_calls_setjmp, current_function_calls_alloca,
4884 current_function_accesses_prior_frames,
4885 current_function_calls_eh_return, current_function_is_thunk,
4886 current_function_stdarg, current_function_profile,
4887 current_function_limit_stack, current_function_uses_pic_offset_table,
4888 current_function_uses_const_pool, current_function_has_nonlocal_label,
4889 current_function_saves_all_registers,
4890 current_function_has_nonlocal_goto,
4891 current_function_has_asm_statement): Remove accesor macros.
4892 * ra-conflict.c (global_conflicts): Update.
4893 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
4894 (suitable_for_tail_call_opt_p): Update.
4895 * builtins.c (expand_builtin_return_addr): Update.
4896 (expand_builtin_setjmp_setup): Update.
4897 (expand_builtin_nonlocal_goto): Update.
4898 * final.c (final_start_function): Update.
4899 (profile_function): Update.
4900 (leaf_function_p): Update.
4901 (only_leaf_regs_used): Update.
4902 * df-scan.c (df_get_exit_block_use_set): Update.
4903 * dojump.c (clear_pending_stack_adjust): Update.
4904 * tree-stdarg.c (gate_optimize_stdarg): Update.
4905 * gimple-low.c (lower_function_body): Update.
4906 * global.c (compute_regsets): Update.
4907 (global_alloc): Update.
4908 * dwarf2out.c (dwarf2out_begin_prologue): Update.
4909 * expr.c (expand_assignment): Update.
4910 * dse.c (dse_step0): Update.
4911 (dse_step1): Update.
4912 * c-decl.c (store_parm_decls): Update.
4913 * local-alloc.c (combine_regs): Update.
4914 (find_free_reg): Update.
4915 * function.c (assign_parms_augmented_arg_list): Update.
4916 (assign_parm_find_data_types): Update.
4917 (assign_parms): Update.
4918 (allocate_struct_function): Update.
4919 (expand_function_start): Update.
4920 (expand_function_end): Update.
4921 (get_arg_pointer_save_area): Update.
4922 (thread_prologue_and_epilogue_insns): Update.
4923 (rest_of_match_asm_constraints): Update.
4924 * stor-layout.c (variable_size): Update.
4925 * gcse.c (gcse_main): Update.
4926 (bypass_jumps): Update.
4927 * gimplify.c (gimplify_function_tree): Update.
4928 * calls.c (emit_call_1): Update.
4929 (expand_call): Update.
4930 * bt-load.c (compute_defs_uses_and_gen): Update.
4931 * except.c (sjlj_assign_call_site_values): Update.
4932 (sjlj_emit_function_enter): Update.
4933 (can_throw_external): Update.
4934 (set_nothrow_function_flags): Update.
4935 (expand_builtin_unwind_init): Update.
4936 (expand_eh_return): Update.
4937 (convert_to_eh_region_ranges): Update.
4938 (output_function_exception_table): Update.
4939 * emit-rtl.c (gen_tmp_stack_mem): Update.
4940 * cfgexpand.c (expand_used_vars): Update.
4941 (tree_expand_cfg): Update.
4942 * cfgcleanup.c (rest_of_handle_jump): Update.
4943 * explow.c (allocate_dynamic_stack_space): Update.
4944 * varasm.c (assemble_start_function): Update.
4945 (force_const_mem): Update.
4946 (mark_constant_pool): Update.
4947 * tree-optimize.c (tree_rest_of_compilation): Update.
4948 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
4949 * tree-cfg.c (notice_special_calls): Update.
4950 (is_ctrl_altering_stmt): Update.
4951 (tree_can_make_abnormal_goto): Update.
4952 (tree_purge_dead_abnormal_call_edges): Update.
4953 * config/alpha/predicates.md: Update.
4954 * config/alpha/alpha.c (alpha_sa_mask): Update.
4955 (alpha_sa_size): Update.
4956 (alpha_does_function_need_gp): Update.
4957 (alpha_expand_prologue): Update.
4958 (alpha_start_function): Update.
4959 (alpha_output_function_end_prologue): Update.
4960 (alpha_expand_epilogue): Update.
4961 * config/frv/frv.c (frv_stack_info): Update.
4962 (frv_expand_epilogue): Update.
4963 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
4964 (s390_register_info): Update.
4965 (s390_frame_info): Update.
4966 (s390_init_frame_layout): Update.
4967 (s390_can_eliminate): Update.
4968 (save_gprs): Update.
4969 * config/spu/spu.c (spu_split_immediate): Update.
4970 (need_to_save_reg): Update.
4971 (spu_expand_prologue): Update.
4972 (spu_expand_epilogue): Update.
4973 * config/sparc/sparc.md: Update.
4974 * config/sparc/sparc.c (eligible_for_return_delay): Update.
4975 (sparc_tls_got): Update.
4976 (legitimize_pic_address): Update.
4977 (sparc_emit_call_insn): Update.
4978 (sparc_expand_prologue): Update.
4979 (output_return): Update.
4980 (print_operand): Update.
4981 (sparc_function_ok_for_sibcall): Update.
4982 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
4983 * config/m32r/m32r.md: Update.
4984 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
4985 (m32r_compute_frame_size): Update.
4986 (m32r_expand_prologue): Update.
4987 (m32r_expand_epilogue): Update.
4988 (m32r_legitimize_pic_address): Update.
4989 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
4990 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
4991 * config/i386/i386.c (ix86_frame_pointer_required): Update.
4992 (gen_push): Update.
4993 (ix86_save_reg): Update.
4994 (ix86_compute_frame_layout): Update.
4995 (ix86_expand_prologue): Update.
4996 (ix86_expand_epilogue): Update.
4997 * config/sh/sh.c (output_stack_adjust): Update.
4998 (calc_live_regs): Update.
4999 (sh5_schedule_saves): Update.
5000 (sh_expand_prologue): Update.
5001 (sh_expand_epilogue): Update.
5002 (sh_setup_incoming_varargs): Update.
5003 (sh_allocate_initial_value): Update.
5004 (sh_get_pr_initial_val): Update.
5005 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
5006 * config/sh/sh.md (label:): Update.
5007 * config/avr/avr.c (out_movhi_mr_r): Update.
5008 * config/crx/crx.h (enum): Update.
5009 * config/xtensa/xtensa.h (along): Update.
5010 * config/stormy16/stormy16.c Update.
5011 (xstormy16_compute_stack_layout): Update.
5012 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
5013 (fr30_expand_prologue): Update.
5014 * config/cris/cris.c (cris_conditional_register_usage): Update.
5015 (cris_reg_saved_in_regsave_area): Update.
5016 (cris_initial_frame_pointer_offset): Update.
5017 (cris_simple_epilogue): Update.
5018 (cris_expand_prologue): Update.
5019 (cris_expand_epilogue): Update.
5020 (cris_expand_pic_call_address): Update.
5021 (cris_asm_output_symbol_ref): Update.
5022 (cris_asm_output_label_ref): Update.
5023 * config/cris/cris.md Update.
5024 * config/iq2000/iq2000.c (compute_frame_size): Update.
5025 (iq2000_expand_epilogue): Update.
5026 * config/mt/mt.h (save_direction): Update.
5027 * config/mn10300/mn10300.c (mn10300_function_value): Update.
5028 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
5029 (ia64_secondary_reload_class): Update.
5030 * config/m68k/m68k.c (m68k_save_reg): Update.
5031 (m68k_expand_prologue): Update.
5032 (m68k_expand_epilogue): Update.
5033 (legitimize_pic_address): Update.
5034 * config/rs6000/rs6000.c (rs6000_got_register): Update.
5035 (first_reg_to_save): Update.
5036 (first_altivec_reg_to_save): Update.
5037 (compute_vrsave_mask): Update.
5038 (compute_save_world_info): Update.
5039 (rs6000_stack_info): Update.
5040 (spe_func_has_64bit_regs_p): Update.
5041 (rs6000_ra_ever_killed): Update.
5042 (rs6000_emit_eh_reg_restore): Update.
5043 (rs6000_emit_allocate_stack): Update.
5044 (rs6000_emit_prologue): Update.
5045 (rs6000_emit_epilogue): Update.
5046 (rs6000_output_function_epilogue): Update.
5047 (output_profile_hook): Update.
5048 (rs6000_elf_declare_function_name): Update.
5049 * config/rs6000/rs6000.h (rs6000_args): Update.
5050 * config/rs6000/rs6000.md: Update.
5051 * config/mcore/mcore.c (mcore_expand_prolog): Update.
5052 * config/arc/arc.c (arc_output_function_epilogue): Update.
5053 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
5054 * config/darwin.c (machopic_function_base_name): Update.
5055 * config/score/score3.c (score3_compute_frame_size): Update.
5056 (rpush): Update.
5057 (rpop): Update.
5058 (score3_epilogue): Update.
5059 * config/score/score7.c (score7_compute_frame_size): Update.
5060 (score7_prologue): Update.
5061 (score7_epilogue): Update.
5062 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
5063 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
5064 * config/arm/arm.c (use_return_insn): Update.
5065 (require_pic_register): Update.
5066 (arm_load_pic_register): Update.
5067 (arm_compute_save_reg0_reg12_mask): Update.
5068 (arm_compute_save_reg_mask): Update.
5069 (thumb1_compute_save_reg_mask): Update.
5070 (output_return_instruction): Update.
5071 (arm_output_function_prologue): Update.
5072 (arm_output_epilogue): Update.
5073 (arm_get_frame_offsets): Update.
5074 (arm_expand_prologue): Update.
5075 (thumb_pushpop): Update.
5076 (thumb_exit): Update.
5077 (thumb1_expand_prologue): Update.
5078 (thumb1_expand_epilogue): Update.
5079 (arm_unwind_emit): Update.
5080 (arm_output_fn_unwind): Update.
5081 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
5082 * config/arm/arm.md: Update.
5083 * config/pa/pa.md: Update.
5084 * config/pa/pa.c (legitimize_pic_address): Update.
5085 (compute_frame_size): Update.
5086 (hppa_expand_prologue): Update.
5087 (hppa_expand_epilogue): Update.
5088 (borx_reg_operand): Update.
5089 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
5090 (HARD_REGNO_RENAME_OK): Update.
5091 * config/mips/mips.c (mips_global_pointer): Update.
5092 (mips_save_reg_p): Update.
5093 (mips_compute_frame_info): Update.
5094 (mips_frame_pointer_required): Update.
5095 (mips_expand_prologue): Update.
5096 (mips_expand_epilogue): Update.
5097 (mips_can_use_return_insn): Update.
5098 (mips_reorg_process_insns): Update.
5099 * config/v850/v850.c (compute_register_save_size): Update.
5100 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
5101 * config/mmix/mmix.c (along): Update.
5102 (mmix_expand_epilogue): Update.
5103 * config/bfin/bfin.c (legitimize_pic_address): Update.
5104 (must_save_p): Update.
5105 (stack_frame_needed_p): Update.
5106 (add_to_reg): Update.
5107 (bfin_expand_prologue): Update.
5108 * stmt.c (expand_asm_operands): Update.
5109 * reload1.c (reload): Update.
5110 (init_elim_table): Update.
5111
d1163987
BW
51122008-04-25 Bob Wilson <bob.wilson@acm.org>
5113
5114 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
5115
a5e11364
L
51162008-04-25 H.J. Lu <hongjiu.lu@intel.com>
5117
62d2739a 5118 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
a5e11364
L
5119 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
5120 (mov<mode>): Removed.
5121 (*movv4sf_internal): Likewise.
5122 (*movv2df_internal): Likewise.
5123
68d154b9
PG
51242008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
5125
5126 * config.gcc (crx-*-elf): Remove deprecation.
5127
e65e1476
DS
51282008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
5129
5130 * config/i386/cygming-crtend.c (register_frame_ctor): Register
5131 __gcc_deregister_frame with atexit.
5132 (deregister_frame_dtor): Remove.
5133
9553940c 51342008-04-24 Nathan Froyd <froydnj@codesourcery.com>
94f4765c
NF
5135 Nathan Sidwell <nathan@codesourcery.com>
5136
e6d8b0c6 5137 * config/rs6000/rs6000.opt (mspe): Remove Var property.
94f4765c 5138 (misel): Likewise.
e6d8b0c6 5139 * config/rs6000/rs6000.h (rs6000_spe): Declare.
94f4765c 5140 (rs6000_isel): Likewise.
e6d8b0c6 5141 * config/rs6000/rs6000.c (rs6000_spe): New variable.
94f4765c 5142 (rs6000_isel): New variable.
e6d8b0c6 5143 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
94f4765c 5144
5dc11954
JJ
51452008-04-24 Jakub Jelinek <jakub@redhat.com>
5146
5147 PR c++/35758
5148 * c-common.c (handle_vector_size_attribute): Call
5149 lang_hooks.types.reconstruct_complex_type instead of
5150 reconstruct_complex_type.
5151 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
5152 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
5153 * langhooks.h (struct lang_hooks_for_types): Add
5154 reconstruct_complex_type hook.
5155 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
5156 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
5157
83322951
RG
51582008-04-24 Richard Guenther <rguenther@suse.de>
5159
5160 * c-common.h (check_builtin_function_arguments): Declare.
5161 * c-common.c (validate_nargs): New function.
5162 (check_builtin_function_arguments): Likewise.
5163 * c-typeck.c (build_function_call): Call
5164 check_builtin_function_arguments.
5165 * builtins.c (fold_builtin_classify): Remove error reporting code.
5166 (fold_builtin_unordered_cmp): Likewise.
5167 (fold_builtin_1): Likewise.
5168 (fold_builtin_n): Likewise.
5169
194ac52a
JJ
51702008-04-24 Jakub Jelinek <jakub@redhat.com>
5171
5172 PR tree-optimization/36008
5173 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
5174 the original op1, rather than delta by step.
5175
9f9f72aa 51762008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
e6d8b0c6 5177 Sebastian Pop <sebastian.pop@amd.com>
9f9f72aa
AP
5178
5179 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
5180 eliminate_local_variables_stmt, eliminate_local_variables,
5181 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
5182 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
5183 of code delimited by two edges in the CFG.
5184 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
5185 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
5186 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
5187 the case of parallelisation of reductions.
5188 (expr_invariant_in_region_p): New.
5189
5190 * tree-flow.h (gather_blocks_in_sese_region): Declared.
5191 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
5192
2aa43509 51932008-04-24 Ira Rosen <irar@il.ibm.com>
e6d8b0c6 5194 Richard Guenther <rguenther@suse.de>
2aa43509
IR
5195
5196 PR tree-optimization/36034
5197 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
5198 incapable of dealing with loads with gaps.
5199
e80d7580
RAE
52002008-04-24 Rafael Espindola <espindola@google.com>
5201
5202 * tree-flow.h (vrp_evaluate_conditional): Change signature.
5203 * tree-ssa-propagate.c (fold_predicate_in): Update call to
5204 vrp_evaluate_conditional.
5205 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
e6d8b0c6
UB
5206 (vrp_evaluate_conditional): Split the cond argument.
5207 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
5208 (simplify_stmt_for_jump_threading): Update call to
e80d7580
RAE
5209 vrp_evaluate_conditional.
5210
0e37a1c2
IR
52112008-04-24 Ira Rosen <irar@il.ibm.com>
5212
5213 PR tree-optimization/35982
5214 * tree-vect-analyze.c (vect_check_interleaving): Check that the
5215 interleaved data-refs are of the same type.
5216
f9f9640f
DS
52172008-04-24 Danny Smith <dannysmith@users.net>
5218
e6d8b0c6
UB
5219 * c-format.c (check_format_info_main): Use strncmp rather than a
5220 magic prefix to handle multichar length specs.
f9f9640f
DS
5221 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
5222 Don't prefix "I64" and "I32" with '\0'.
5223
64ceac43
JJ
52242008-04-24 Jakub Jelinek <jakub@redhat.com>
5225
5226 PR target/36015
5227 * config/i386/i386.c (init_cumulative_args): Don't pass anything
5228 in registers for -m32 only if stdarg_p (fntype).
5229
4679504c
UB
52302008-04-24 Uros Bizjak <ubizjak@gmail.com>
5231
5232 PR rtl-optimization/36006
5233 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
5234 temp to op0 in order to avoid invalid rtx sharing.
5235
51eed280
PB
52362008-04-23 Paolo Bonzini <bonzini@gnu.org>
5237
5238 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
5239 check TREE_INVARIANT.
5240 * tree-gimple.c (is_gimple_address): New.
5241 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
5242 * tree-gimple.h (is_gimple_address): New.
5243 * tree.h (decl_address_invariant_p): New.
5244 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
5245 (build_string): Likewise.
5246 (decl_address_invariant_p): New, from is_gimple_invariant_address.
5247 (tree_invariant_p_1): Likewise.
5248 (save_expr): Use it.
5249 (tree_invariant_p): New.
5250 (skip_simple_arithmetic): Use it.
5251 (stabilize_reference_1): Use it.
5252 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
5253 simplify.
5254 (build1_stat): Drop code to compute TREE_INVARIANT.
5255 (build2_stat): Drop code to compute TREE_INVARIANT.
5256 (build3_stat): Drop code to compute TREE_INVARIANT.
5257 (build4_stat): Drop code to compute TREE_INVARIANT.
5258 (build5_stat): Drop code to compute TREE_INVARIANT.
5259 (build7_stat): Drop code to compute TREE_INVARIANT.
5260 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
5261 * tree.h (struct tree_base): Remove invariant_flag.
5262 (TREE_INVARIANT): Remove.
5263 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
5264 (fold_builtin_expect): Check TREE_CONSTANT.
5265 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
5266 * c-tree.h (c_expr_to_decl): Drop third parameter.
5267 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
5268 (build_c_cast): Don't set TREE_INVARIANT.
5269 (pop_init_level): Don't set TREE_INVARIANT.
5270 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
5271 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
5272 TREE_CONSTANT.
5273 (gimplify_init_constructor): Don't set TREE_INVARIANT.
5274 (gimplify_addr_expr): Adjust comment.
5275 * tree-mudflap.c (mf_build_string):
5276 * print-tree.c (print_node): Don't print TREE_INVARIANT.
5277 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
5278 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
5279 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
5280 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
5281 * langhooks.h (struct lang_hooks): Drop third parameter from
5282 expr_to_decl.
5283
17d2c090
RG
52842008-04-23 Richard Guenther <rguenther@suse.de>
5285
5286 PR tree-optimization/27799
5287 PR tree-optimization/32921
5288 PR tree-optimization/32624
5289 * tree-ssa-structalias.c (merge_smts_into): Only merge the
5290 SMTs aliases and the tag itself into the solution.
5291 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
5292 merge the points-to solution back into the SMT aliases.
5293 (may_alias_p): Use alias_set_subset_of instead of
5294 aliases_conflict_p. A pointer which points to
5295 memory with alias set zero may access any variable.
5296
a7a512be
RG
52972008-04-23 Richard Guenther <rguenther@suse.de>
5298
5299 * alias.c (alias_set_subset_of): Correctly handle asking
5300 if zero is a subset of an alias set with zero child.
5301 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
5302 (compute_flow_insensitive_aliasing): Correctly walk all
5303 pointers. Do not unnecessarily union sets.
5304
f3f75f69
RG
53052008-04-23 Richard Guenther <rguenther@suse.de>
5306
5307 PR middle-end/36021
5308 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
5309
09725d5e
TB
53102008-04-22 Tomas Bily <tbily@suse.cz>
5311
4679504c
UB
5312 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
5313 unreachable case.
5314 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
5315 NON_LVALUE_EXPR.
5316 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
5317 * tree-ssa-structalias.c (get_constraint_for): Likewise.
5318 * tree-inline.c (estimate_num_insns_1): Likewise.
5319 * varasm.c (const_hash_1, compare_constant, copy_constant)
5320 (compute_reloc_for_constant, output_addressed_constants): Likewise.
5321 * emit-rtl.c (component_ref_for_mem_expr)
5322 (set_mem_attributes_minus_bitpos): Likewise.
5323 * expr.c (highest_pow2_factor, expand_expr_real_1, )
5324 (is_aligning_offset): Likewise.
5325 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
5326 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
5327 * dojump.c (do_jump): Likewise.
5328 * builtins.c (get_pointer_alignment, get_memory_rtx)
5329 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
5330 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
09725d5e 5331
63cb92c1
JJ
53322008-04-23 Jakub Jelinek <jakub@redhat.com>
5333
5334 PR rtl-optimization/36017
5335 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
5336 expanding the library call.
5337
b2f06c39
ILT
53382008-04-22 Ian Lance Taylor <iant@google.com>
5339
5340 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
5341 than size_in_bytes.
5342
aafc759a
PH
53432008-04-22 Pat Haugen <pthaugen@us.ibm.com>
5344
5345 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
5346 of LR/CTR moves for Power6.
5347
4218dc2d 53482008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
5b4603fa
KZ
5349
5350 PR middle-end/36003
5351 * passes.c (init_optimization_passes): Remove
5352 pass_fast_rtl_byte_dce.
5353
6126672e
UB
53542008-04-22 Uros Bizjak <ubizjak@gmail.com>
5355
5356 PR target/29096
5357 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
5358 builtin functions to generate faster code.
5359 (_mm_cvtpu16_ps): Ditto.
5360 (_mm_cvtpi32x2_ps): Ditto.
5361
f6d2671e
NC
53622008-04-22 Nick Clifton <nickc@redhat.com>
5363
53ed2f0e
NC
5364 * common.opt (ftree-loop-distribution): Add Optimization
5365 attribute.
5366
7dd68986
NC
5367 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
5368 (frv_expand_builtin_va_start): Likewise.
5369
f6d2671e
NC
5370 * config/arm/arm.c (thumb_find_work_register): Fix location of
5371 argument register count.
5372
826fadba
MK
53732008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
5374
5375 Support scheduling for ColdFire V1 and V3 microarchitecture.
5376 Improve scheduling of multiplication instructions.
5377
5378 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
5379 (mac): New instruction attribute.
5380 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
5381 (m68k_sched_mac): New variable.
5382 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
5383 Handle cfv1 and cfv3.
5384 (max_insn_size): New static variable.
5385 (struct _sched_ib): New type.
5386 (sched_ib): New static variable.
5387 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
5388 to fields of 'struct _sched_ib sched_ib'. Update all uses.
5389 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
5390 Update.
5391 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
5392 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
5393 new variables. Update.
5394 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
5395 Add modeling of cfv3 instruction buffer. Update.
5396 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
5397 * config/m68k/m68k.h (TUNE_CFV3): New macro.
5398 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
5399 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
5400 a particular reservation applies to.
5401 (type2): Reorganize attribute values. Rename alu to alu_reg,
5402 alu_l to alu, move_l to omove. Join move to alu. Split mul
5403 to mul_l and mul_w.
5404 (cf_ib_*): Simplify description of instruction buffer.
5405 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
5406 (cf_mem): Split into cf_mem1 and cf_mem2.
5407 (cf_v2_move_??): Rename to cfv12_alu_??.
5408 (cf_v2_move_l_??): Rename to cfv12_omove_??.
5409 (cf_v2_mul_??): Remove reservations.
5410 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
5411 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
5412 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
5413 appropriate place.
5414 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
5415 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
5416 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
5417 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
5418 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
5419 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
5420 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
5421 expansions of the above reservations for instructions of sizes
5422 1, 2 and 3 words.
5423
c23da840
MK
54242008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
5425
5426 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
5427
27624b9e
AN
54282008-04-21 Adam Nemet <anemet@caviumnetworks.com>
5429
5430 * coverage.c: Include tree-pass.h.
5431 (coverage_counter_alloc): Print da_file_name to the dump file.
5432
4218dc2d 54332008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
27624b9e 5434
b60db1ba
KZ
5435 * sbitmap.c (sbitmap_range_empty_p): New function.
5436 * sbitmap.h (sbitmap_range_empty_p): New function.
27624b9e 5437 * bitmap.h: Now includes obstack.h.
b60db1ba 5438
27624b9e 54392008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
4218dc2d 5440 Kenneth Zadeck <zadeck@naturalbridge.com>
cc806ac1
RS
5441
5442 * dbgcnt.def (ra_byte_scan): Added.
5443 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
5444 when the last hit happens for a counter.
5445 * timevar.def (TV_DF_BYTE_LR): New variable.
5446 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
5447 * passes.c (pass_fast_rtl_byte_dce): New pass.
5448 * fwprop.c (update_df): Added mode to call df_ref_create.
5449 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5450 DF_REF_EXTRACT_OFFSET.
5451 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
5452 DF_BYTE_LR_OUT, df_byte_lr): New macro.
5453 (df_mm): New enum.
5454 (df_ref_extract): Added mode field.
5455 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
5456 DF_REF_EXTRACT_OFFSET.
5457 (DF_REF_EXTRACT_MODE): New macro.
5458 (df_byte_lr_bb_info): New structure.
5459 (df_print_byte_regset, df_compute_accessed_bytes,
5460 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
5461 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
5462 df_byte_lr_simulate_uses,
5463 df_byte_lr_simulate_artificial_refs_at_top,
5464 df_byte_lr_simulate_artificial_refs_at_end,
5465 df_compute_accessed_bytes): New function.
5466 (df_ref_create): Add parameter.
5467 (df_byte_lr_get_bb_info): New inline function.
5468 * df-scan.c (df_ref_record, df_uses_record,
5469 df_ref_create_structure): Added mode parameter.
5470 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
5471 df_defs_record, df_uses_record, df_get_conditional_uses,
5472 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
5473 df_entry_block_defs_collect, df_exit_block_uses_collect):
5474 Added mode parameter to calls to df_ref_record, df_uses_record,
5475 df_ref_create_structure.
4679504c 5476 (df_ref_equal_p, df_ref_compare): Added test for modes.
cc806ac1
RS
5477 (df_ref_create_structure): Added code to set mode. Renamed
5478 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
5479 DF_REF_EXTRACT_OFFSET.
5480 * df-core.c (df_print_byte_regset): New function.
5481 * df-byte-scan.c: New file.
5482 * df-problems.c (df_rd_transfer_function): Removed unnecessary
5483 calls to BITMAP_FREE.
5484 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
5485 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
5486 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
5487 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
5488 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
5489 df_byte_lr_local_compute, df_byte_lr_init,
5490 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
5491 df_byte_lr_transfer_function, df_byte_lr_free,
5492 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
5493 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
5494 df_byte_lr_simulate_uses,
5495 df_byte_lr_simulate_artificial_refs_at_top,
5496 df_byte_lr_simulate_artificial_refs_at_end): New function.
5497 * dce.c (byte_dce_process_block): New function.
5498 (dce_process_block): au is now passed in rather than computed
5499 locally. Changed loops that look at artificial defs to not look
5500 for conditional or partial ones, because there never are any.
5501 (fast_dce): Now is able to drive byte_dce_process_block or
5502 dce_process_block depending on the kind of dce being done.
5503 (rest_of_handle_fast_dce): Add parameter to fast_dce.
5504 (rest_of_handle_fast_byte_dce): New function.
5505 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
5506 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
5507
3d4cb550
DF
55082008-04-21 Daniel Franke <franke.daniel@gmail.com>
5509
5510 PR fortran/35019
5511 * gcc.h: Added fortran options that take arguments to
5512 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
5513 macros.
5514
eea05d39
EB
55152008-04-20 Eric Botcazou <ebotcazou@adacore.com>
5516
5517 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
5518 scalarization if on the LHS and not a full access.
5519
def9bf34
RW
55202008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5521
eea05d39 5522 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
def9bf34 5523
b7d8d447 55242008-04-18 Rafael Espindola <espindola@google.com>
eea05d39 5525
b7d8d447
RAE
5526 * tree-vrp.c (find_case_label_index): Fix the binary search.
5527 (find_case_label_range): New.
5528 (vrp_visit_switch_stmt): Use find_case_label_range.
5529 (simplify_switch_using_ranges): Use find_case_label_range.
5530
ed3444e9
EB
55312008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5532
5533 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
5534 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
5535
893174fa
TT
55362008-04-18 Tom Tromey <tromey@redhat.com>
5537
5538 PR libcpp/15500:
5539 * doc/cpp.texi (Implementation-defined behavior): Mention
5540 -finput-charset.
5541
6e3c5c30
ILT
55422008-04-18 Ian Lance Taylor <iant@google.com>
5543
5544 * fold-const.c (pointer_may_wrap_p): New static function.
5545 (fold_comparison): Add another test for pointer overflow. Use
5546 pointer_may_wrap_p to disable some false positives.
5547
b6baa67d
KVH
55482008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
5549
5550 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
5551 (fname_as_string): Match updated cpp_interpret_string prototype.
5552 (fix_string_type): Support char16_t* and char32_t*.
5553 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
5554 derivative) nodes. Register as builtin if C++0x.
5555 (c_parse_error): Support CPP_CHAR{16,32}.
5556 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
5557 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
5558 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
5559 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
5560 CTI_CHAR32_ARRAY_TYPE>: New elements.
5561 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
5562 char32_type_node, signed_char32_type_node, char16_array_type_node,
5563 char32_array_type_node): New defines.
5564 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
5565 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
5566 (lex_string): Support CPP_STRING{16,32}, match updated
5567 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
5568 (lex_charconst): Support CPP_CHAR{16,32}.
5569 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
5570 and CPP_STRING{16,32}.
5571
deb984e6
PB
55722008-04-18 Paolo Bonzini <bonzini@gnu.org>
5573
5574 PR bootstrap/35457
5575 * aclocal.m4: Regenerate.
5576 * configure: Regenerate.
5577
cb91fab0
JH
55782008-04-18 Jan Hubicka <jh@suse.cz>
5579
5580 * except.c (dw2_size_of_call_site_table,
5581 sjlj_size_of_call_site_table): Use vector API for call_site_record.
5582
5583 * cgraphbuild.c (build_cgraph_edges): Update.
5584 * tree-pass.h: Update comment.
5585 * final.c (leaf_function_p): Update.
5586 (leaf_renumber_regs): Update.
5587 (rest_of_clean_state): Update.
5588 * omp-low.c (expand_omp_parallel): Update.
5589 * ipa-reference.c (analyze_function): Update.
5590 * reorg.c (find_end_label): Update.
5591 (optimize_skip): Update.
5592 (fill_simple_delay_slots): Update.
5593 (fill_simple_delay_slots): Update.
5594 (make_return_insns): Update.
5595 (dbr_schedule): Update.
5596 * gimple-low.c (record_vars_into): Update.
5597 * cfgbuild.c (make_edges): Update.
5598 * function.c (assign_stack_local): Update.
5599 (assign_parm_adjust_stack_rtl): Update.
5600 (locate_and_pad_parm): Update.
5601 (allocate_struct_function): Do not initialize stack_alignment_needed
5602 and preferred_stack_boundary here.
5603 (stack_protect_prologue): Update.
5604 (stack_protect_epilogue): Update.
5605 (expand_function_start): Initialize stack_alignment_needed,
5606 preferred_stack_boundary and max_jumptable_ents.
5607 (expand_function_end): Update.
5608 (free_after_compilation): Do not NULLify epilogue_delay_list.
5609 * function.h (struct rtl_data): Add stack_protect_guard,
5610 stack_alignment_needed,
5611 preferred_stack_boundary, epilogue_delay_list.
5612 (struct function): Remove value_histograms, stack_alignment_needed,
5613 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
5614 last_label_uid,
5615 unexpanded_var_list, stack_protect_guard.
5616 (current_function_epilogue_delay_list): Remove.
5617 * ipa-type-escape.c (analyze_function): Update.
5618 * gimplify.c (pop_gimplify_context): Update comment.
5619 * calls.c (expand_call): Update.
5620 (emit_library_call_value_1): Update.
5621 * except.c (set_nothrow_function_flags): Update.
5622 * cfgexpand.c (get_decl_align_unit): Update.
5623 (create_stack_guard): Update.
5624 (estimated_stack_frame_size): Update.
5625 (expand_used_vars): Update.
5626 (tree_expand_cfg): Free histogram earliers, init expansion variables.
5627 * explow.c (allocate_dynamic_stack_space): Update.
5628 * tree-ssa-live.c (remove_unused_locals): Update.
5629 * varasm.c (mark_constant_pool): Update.
5630 * tree-inline.c (remap_decls): Update.
5631 (initialize_cfun): Update.
5632 (declare_return_variable): Update.
5633 (inline_forbidden_p): Update.
5634 (expand_call_inline): Update.
5635 (declare_inline_vars): Update.
5636 (tree_function_versioning): Update.
5637 * tree-flow.h (value_histograms): New.
5638 (VALUE_HISTOGRAMS): New macro.
5639 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
5640 last_label_uid.
5641 * tree-cfg.c (set_bb_for_stmt): Update.
5642 (replace_by_duplicate_decl): Update.
5643 (move_block_to_fn): Update.
5644 (new_label_mapper): Update.
5645 (dump_function_to_file): Update.
5646 * ipa-struct-reorg.c (build_data_structure): Update.
5647 * cfgrtl.c (print_rtl_with_bb): Update.
5648 * reload1.c (reload): Update.
5649 (reload): Update.
5650 * config/i386/i386.c (setup_incoming_varargs_64,
5651 ix86_compute_frame_layout): Update.
5652 * config/arc/arc.c (arc_output_function_epilogue): Update.
5653
799cff46
MS
56542008-04-18 Marius Strobl <marius@FreeBSD.org>
5655
5656 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
5657 for FreeBSD as well.
5658 * gthr-posix95.h: Likewise.
5659
de907943
RS
56602008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
5661
5662 PR rtl-optimization/35838
5663 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
5664 out the byte offset of the first subreg.
5665
c2b814b9
UB
56662008-04-17 Uros Bizjak <ubizjak@gmail.com>
5667
5668 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
5669 to split_ti instead of three separate calls with single member arrays.
5670 (subti3 splitter): Ditto.
5671 (adddi3 splitter): Ditto with split_di.
5672 (subdi3 splitter): Ditto.
5673 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
5674 two separate calls with single member arrays. Swap match_dup
5675 operands 1 and 2 to better fit into the array.
5676 (negdi2 splitter): Ditto with split_di.
5677 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
5678 two separate calls with single member arrays. Swap match_dup operands
5679 6 and 7 to better fit into the array.
5680
ec2e9a15
L
56812008-04-17 H.J. Lu <hongjiu.lu@intel.com>
5682
5683 * config/i386/i386.c (sse_builtin_type): New.
5684 (bdesc_sse_args): Likewise.
5685 (bdesc_sse_3arg): Removed.
5686 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5687 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
5688 IX86_BUILTIN_ROUNDPS.
5689 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
5690 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
5691 IX86_BUILTIN_ROUNDPS.
5692 (ix86_expand_sse_4_operands_builtin): Removed.
5693 (ix86_expand_sse_operands_builtin): New.
5694 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
5695 and CODE_FOR_sse4_1_roundps.
5696 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
5697 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
5698
e6477eaa
AM
56992008-04-17 Alan Modra <amodra@bigpond.net.au>
5700
5701 PR target/35907
5702 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
5703 regs before frame pop when needed. If use_backchain_to_restore_sp
5704 then load backchain into a temp reg to restore vr and vrsave. Add
5705 code to restore vr after frame pop if possible.
5706
ba2e1892
RG
57072008-04-17 Richard Guenther <rguenther@suse.de>
5708
5709 * tree-vn.c (expressions_equal_p): Do not check type
5710 equality or compatibility before calling operand_equal_p.
5711 * fold-const.c (operand_equal_p): Check equivalence of
5712 integer constants before bailing out due to signedness or
5713 precision differences.
5714 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
5715 spurious differences in type qualification. Ignore types
5716 for COMPONENT_REFs at all.
5717
d60819f8
CB
57182008-04-17 Christian Bruel <christian.bruel@st.com>
5719
5720 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
5721 msw_skip comparison.
5722
3d5e00a0
JJ
57232008-04-16 Jakub Jelinek <jakub@redhat.com>
5724
12e19e05
JJ
5725 PR c/35739
5726 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
5727 reg type.
5728
3d5e00a0
JJ
5729 PR tree-optimization/35899
5730 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
5731 rather than TREE_OPERAND.
5732
17c340e0
UB
57332008-04-16 Uros Bizjak <ubizjak@gmail.com>
5734
5735 PR target/35944
5736 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
5737 temporary registers. Change operand predicate to general_operand.
5738 (remainderxf3): Ditto.
5739
e544c850
RG
57402008-04-16 Richard Guenther <rguenther@suse.de>
5741
5742 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
5743 * tree-affine.c (aff_combination_expand): Look through some
5744 conversions.
5745
3d57d7ce
DK
57462008-04-15 Doug Kwan <dougkwan@google.com>
5747
5748 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
5749 for hex printing.
5750 * tree-pretty-print.c (dump_generic_node): Ditto.
5751 * final.c (output_addr_const): Ditto.
5752 * dwarf2out.c (output_cfi): Ditto.
5753 * c-pretty-print.c (pp_c_integer_constant): Ditto.
5754 * print-rtl.c (print_rtx): Ditto.
5755 * print-tree.c (print_node_brief, print_node): Ditto.
5756 * c-common.c (match_case_to_enum_1): Ditto.
5757 * sched-vis.c (print_value): Ditto.
5758 * config/i386/i386.c (print_operand): Cast to long unsigned int
5759 for hex printing.
5760
d98c89de
DS
57612008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
5762 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
5763 MS Windows VirtualProtect function.
5764
69c32ec8
JH
57652008-04-15 Jan Hubicka <jh@suse.cz>
5766
5767 * gengtype.c (write_root): Param_is argument is OK.
5768 * expr.c (expand_expr_real_1): Update call of get_exception_*.
5769 * function.h: Include varray.h
5770 (rtl_eh): New stucture based on except.c one.
5771 (call_site_record): New forward declaration and vector type.
5772 * calls.c (emit_call_1): Do not call
5773 note_current_region_may_contain_throw.
5774 * except.c (eh_status): Remove cur_region, try_region since they are
5775 unused.
5776 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
5777 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
5778 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
5779 Remove call_site_data_used, call_site_data_size.
5780 Turn call_site_record into vector in function.h.
5781 (note_current_region_may_contain_throw): Remove.
5782 (get_exception_pointer, get_exception_filter): Do not take struct
5783 function argument; update.
5784 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
5785 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
5786 build_post_landing_pads, dw2_build_landing_pads,
5787 sjlj_assign_call_site_values, sjlj_mark_call_sites,
5788 sjlj_emit_function_enter, sjlj_emit_function_enter,
5789 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5790 sjlj_build_landing_pads, finish_eh_generation,
5791 remove_exception_handler_label, remove_eh_handler,
5792 maybe_remove_eh_handler, add_reachable_handler,
17c340e0
UB
5793 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
5794 add_action_record, collect_one_action_chain, add_call_site,
5795 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
69c32ec8
JH
5796 sjlj_output_call_site_table, output_function_exception_table,
5797 * except.h (note_current_region_may_contain_throw): Remove
5798 (get_exception_pointer, get_exception_filter): Do not take struct
5799 function argument.
5800 * Makefile.in (GTFILES): Put varargs before struct function.
5801
bd1f29d9
EB
58022008-04-15 Eric Botcazou <ebotcazou@adacore.com>
5803
5804 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
5805 punt for STRING_CST.
5806 (get_constraint_for): Deal with STRING_CST here instead.
5807
3bb3bb2d
RG
58082008-04-15 Richard Guenther <rguenther@suse.de>
5809
5810 * tree-ssa-propagate.c (substitute_and_fold): Substitute
5811 statements in a basic-block with a backward walk. Do not
5812 substitute into dead statements but instead remove those.
5813
d9338cf0
RG
58142008-04-15 Richard Guenther <rguenther@suse.de>
5815
5816 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
5817 to zero, thus disable creation of SFTs.
5818
7e80c6bf
EB
58192008-04-15 Eric Botcazou <ebotcazou@adacore.com>
5820
5821 * tree-predcom.c (suitable_reference_p): Return false if the
5822 reference can throw.
5823
b97d8153
JJ
58242008-04-15 Jakub Jelinek <jakub@redhat.com>
5825
5826 PR c/35751
5827 * c-decl.c (finish_decl): If extern or static var has variable
5828 size, set TREE_TYPE (decl) to error_mark_node.
5829
d0599470
RAE
58302008-04-15 Rafael Espindola <espindola@google.com>
5831
b97d8153 5832 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d0599470
RAE
5833 variable arg1.
5834
649caaad
RG
58352008-04-15 Richard Guenther <rguenther@suse.de>
5836
5837 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5838 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
5839 (visit_reference_op_load): Do walk vuse-vdef chains on
5840 vn_reference_lookup.
5841 (visit_reference_op_store): But do not here.
5842 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
5843 vn_reference_lookup.
5844 (vn_lookup_with_vuses): But do so here.
5845
55d7d0fa
ILT
58462008-04-14 Ian Lance Taylor <iant@google.com>
5847
5848 * fold-const.c (fold_overflow_warning): Remove assertion.
5849
2c4eec69
BE
58502008-04-15 Ben Elliston <bje@au.ibm.com>
5851
5852 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
5853 temp1 local variables.
5854
58552008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
40f39798
ZM
5856
5857 PR target/35661
5858 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
5859 ".text.unlikely" section as executable.
5860
07acc7b3
JW
58612008-04-14 James E. Wilson <wilson@tuliptree.org>
5862
5863 * config/ia64/ia64.c (rtx_needs_barrier): Handle
5864 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
5865 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
5866 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
5867 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
5868 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
5869 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
5870
4c9db6e0
ILT
58712008-04-14 Ian Lance Taylor <iant@google.com>
5872
5873 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
5874 * fold-const.c (fold_comparison): If appropriate, test
5875 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
5876 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
5877 reassociating a pointer type.
5878 * doc/invoke.texi (Optimize Options): Document that
5879 -fstrict-overflow applies to pointer wraparound.
5880
305da3ec
JH
58812008-04-13 Jan Hubicka <jh@suse.cz>
5882
5883 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
5884
298ac1dd
AP
58852008-04-12 Andrew Pinski <pinskia@gmail.com>
5886
5887 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
5888 we are going to "save the world".
5889
70a7c7f1
HPN
58902008-04-13 Hans-Peter Nilsson <hp@axis.com>
5891
5892 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
5893 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
5894 operand 0 constraint, not "=".
5895
ad7aacba
JW
58962008-04-11 James E. Wilson <wilson@tuliptree.org>
5897
5898 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
5899
9d6facc7
L
59002008-04-11 H.J. Lu <hongjiu.lu@intel.com>
5901
5902 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
5903 of size of positions_needed * CHAR_BIT.
5904
4fe663b0
L
59052008-04-11 H.J. Lu <hongjiu.lu@intel.com>
5906
5907 PR middle-end/35897
5908 * dse.c (store_info): Change positions_needed to unsigned
5909 HOST_WIDE_INT.
5910 (lowpart_bitmask): New.
5911 (record_store): Cast to unsigned HOST_WIDE_INT for
5912 positions_needed. Assert width <= size of positions_needed *
5913 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
5914 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
5915 lowpart_bitmask to set mask.
5916
9fdd7520
BS
59172008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
5918
5919 * config/bfin/constraints.md: New file.
5920 * config/bfin/bfin.md: Include it.
5921 (adddi3): Use satisfies_constraint functions instead of the old macros.
5922 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
5923 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
5924 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
5925 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
5926 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
5927 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
5928 EXTRA_CONSTRAINT): Delete.
5929 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
5930 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
5931 of the old macros.
5932 * config/bfin/bfin.c: Include "tm-constrs.h".
5933 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
5934 Use satisfies_constraint functions instead of the old macros.
5935 * doc/md.texi (Blackfin Constraints): Update file name reference.
5936
0a4bf1d3
RG
59372008-04-11 Richard Guenther <rguenther@suse.de>
5938
5939 PR tree-optimization/35869
5940 * tree-vrp.c (execute_vrp): Move switch statement update after
5941 jump threading. Schedule another cfg cleanup run.
5942
21516d64
VR
59432008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
5944
5945 PR c/35744
5946 * attribs.c (decl_attributes): Return early on errorneous node.
5947
0598f31b
OR
59482008-04-10 Oleg Ryjkov <olegr@google.com>
5949
5950 * tree.h (struct tree_base): Added a new flag default_def_flag.
5951 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
5952
a1fcb9a1
KK
59532008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
5954
5955 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
5956
6ef5fab0
JDA
59572008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5958
5959 PR target/35768
5960 * pa.md: Define mode iterator P. Define mode attribute dwc.
5961 (dcacheflush): Update pattern to use iterator P and attribute dwc.
5962 (icacheflush): Likewise.
5963 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
5964 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
5965
e47f8bba
BE
59662008-04-11 Ben Elliston <bje@au.ibm.com>
5967
5968 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
5969
2893f753
RAE
59702008-04-10 Rafael Espindola <espindola@google.com>
5971
b97d8153 5972 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2893f753
RAE
5973 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
5974 (extract_range_from_expr): The same.
5975
5fb79e4c
AN
59762008-04-10 Adam Nemet <anemet@caviumnetworks.com>
5977
5978 * config/mips/mips.md (GPR2): New mode iterator.
5979 (seq): Add comment.
5980 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
5981 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
5982 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
5983 Rewrite these to take two modes, the mode of comparison and the
5984 mode of the destination.
5985 * config/mips/mips.c (mips_expand_scc): Instead of having
5986 paradoxical subreg as destination, expand "narrowing" scc if mode
5987 of comparison is SI and target is requested in DI mode.
5988 (mips_emit_int_order_test): Update comment. Make mode of
5989 comparison match CMP0 rather than TARGET. When creating inverse
5990 target use mode of TARGET.
5991
63d628b2
AN
59922008-04-10 Adam Nemet <anemet@caviumnetworks.com>
5993
5994 * gcov-dump.c (tag_summary): Only print summaries for the first
5995 GCOV_COUNTERS_SUMMABLE counters.
5996
6dd18eb1
UB
59972008-04-10 Uros Bizjak <ubizjak@gmail.com>
5998
5999 * config/i386/i386.md (absneg): New code iterator.
6000 (absnegprefix): New code attribute.
6001 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
6002 patterns using absneg code iterator.
6003 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
6004 using absneg code iterator.
6005 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
6006 *neg<mode>2 patterns using absneg code iterator.
6007 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6008 *negextendsfdf2 patterns using absneg code iterator.
6009 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
6010 *negextendsfxf2 patterns using absneg code iterator.
6011 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
6012 *negextendsfdf2 patterns using absneg code iterator.
6013 * config/i386/sse.md (<code><mode>2): Macroize expander from
6014 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
6015
f40bee31
AK
60162008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
6017
6018 * config/s390/s390.h: Remove the remains of the recent search
6019 & replace action of current_function_outgoing_args_size.
6020
19aec6b0
IR
60212008-04-10 Ira Rosen <irar@il.ibm.com>
6022
6023 PR tree-optimization/35821
6024 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
6025 NEW_STMT_LIST is not NULL.
6026
ee8f0bd7
DE
60272008-04-09 David Edelsohn <edelsohn@gnu.org>
6028
6029 PR libstdc++/35597
6030 * toplev.c (process_options): Remove -ffunction-sections debugging
6031 warning.
6032
3a3a1fe1
PB
60332008-04-09 Peter Bergner <bergner@vnet.ibm.com>
6034
6035 PR middle-end/PR28690
6036 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
6037 than gen_rtx_fmt_ee to perform more canonicalizations.
6038
e0941605
JDA
60392008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6040
6041 PR driver/35665
6042 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
6043
2f9ea521
RG
60442008-04-09 Richard Guenther <rguenther@suse.de>
6045
6046 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
6047 (dump_function_to_file): Dump function arguments with types.
6048
02765a37
RG
60492008-04-08 Richard Guenther <rguenther@suse.de>
6050
6051 * fold-const.c (fold_widened_comparison): Do not allow
6052 sign-changes that change the result.
6053
a0f39282
JJ
60542008-04-08 Janis Johnson <janis187@us.ibm.com>
6055
6056 PR target/35839
6057 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
6058 kinds of indirect references.
6059
7f62878c
DE
60602008-04-08 David Edelsohn <edelsohn@gnu.org>
6061
6062 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
6063 GNU Fortran language string.
6064
a1a6e271
RAE
60652008-04-08 Rafael Espindola <espindola@google.com>
6066
6067 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
6068 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
6069 * tree.h (tree_call_nonnegative_warnv_p): New.
6070
57b9e367
JH
60712008-04-08 Jan Hubicka <jh@suse.cz>
6072
6073 * function.c (free_after_compilation): Clear out regno_reg_rtx
6074 pointer.
6075
a95c8615
PB
60762008-04-08 Peter Bergner <bergner@vnet.ibm.com>
6077
6078 Revert
6079 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
6080
6081 PR middle-end/PR28690
6082 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
6083 same precedence as REG_POINTER and MEM_POINTER operands.
6084
903b3003
RG
60852008-04-08 Richard Guenther <rguenther@suse.de>
6086
6087 PR middle-end/35834
6088 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
6089 for adding index to base.
6090
0b03b302
KT
60912008-04-08 Kai Tietz <kai.tietz@onevision.com>
6092
6093 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
6094 (MINGW_ENABLE_EXECUTE_STACK): New.
6095 (IN_LIBGCC2): For libgcc include windows.h file for
6096 function declarations.
6097
582be0a1
HPN
60982008-04-08 Hans-Peter Nilsson <hp@axis.com>
6099
6100 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
6101 and tem2 if tem1 is not a REG or MULT.
6102
38173d38
JH
61032008-04-08 Jan Hubicka <jh@suse.cz>
6104
6105 * function.h (incomming_args): Break out of struct function.
6106 (function_subsections): Break out of struct function.
6107 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
6108 return_rtx and hard_reg_initial_vals from struct function.
6109 Kill inl_max_label_num.
6110 (current_function_pops_args, current_function_args_info,
6111 current_function_args_size, current_function_args_size,
6112 current_function_pretend_args_size,
6113 current_function_outgoing_args_size,
6114 current_function_internal_arg_pointer, current_function_return_rtx):
6115 Kill compatibility accestor macros.
6116 * builtins.c (expand_builtin_apply_args_1): Update.
6117 (expand_builtin_next_arg): Update.
6118 * df-scan.c (df_get_call_refs): Update.
6119 * dbxout.c (dbxout_function_end): Update.
6120 * dwarf2out.c (dwarf2out_switch_text_section): Update.
6121 (output_line_info): Update.
6122 (secname_for_decl): Update.
6123 (dwarf2out_var_location): Update.
6124 * function.c (free_after_compilation): Update.
6125 (assign_parm_find_stack_rtl): Update.
6126 (assign_parms): Update.
6127 (expand_dummy_function_end): Update.
6128 (expand_function_end): Update.
6129 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
6130 (expand_call): Update.
6131 (emit_library_call_value_1): Update.
6132 (store_one_arg): Update.
6133 * varasm.c (initialize_cold_section_name): Update.
6134 (unlikely_text_section): Update.
6135 (unlikely_text_section_p): Update.
6136 (assemble_start_function): Update.
6137 (assemble_end_function): Update.
6138 (default_section_type_flags): Update.
6139 (switch_to_section): Update.
6140 * integrate.c (set_decl_abstract_flags): Update.
6141 (get_hard_reg_initial_val): Update.
6142 (has_hard_reg_initial_val): Update.
6143 (allocate_initial_values): Update.
6144 * resource.c (init_resource_info): Update.
6145 * config/alpha/alpha.c (NUM_ARGS): Update.
6146 (direct_return): Update.
6147 (alpha_va_start): Update.
6148 (alpha_sa_size): Update.
6149 (alpha_initial_elimination_offset): Update.
6150 (alpha_expand_prologue): Update.
6151 (alpha_start_function): Update.
6152 (alpha_expand_epilogue): Update.
6153 (unicosmk_initial_elimination_offset):
6154 * config/alpha/alpha.md (call expander): Update.
6155 * config/s390/s390.c (s390_register_info): Update.
6156 (s390_register_info): Update.
6157 (s390_frame_info): Update.
6158 (s390_initial_elimination_offset): Update.
6159 (s390_build_builtin_va_list): Update.
6160 (s390_va_start): Update.
6161 * config/spu/spu.c (direct_return): Update.
6162 (spu_expand_prologue): Update.
6163 (spu_initial_elimination_offset): Update.
6164 (spu_build_builtin_va_list): Update.
6165 (spu_va_start): Update.
6166 * config/sparc/sparc.c (sparc_init_modes): Update.
6167 (sparc_compute_frame_size): Update.
6168 (function_value): Update.
6169 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
6170 * config/i386/i386.md (return expander): Update.
6171 * config/i386/i386.c (ix86_va_start): Update.
6172 (ix86_can_use_return_insn_p): Update.
6173 (ix86_compute_frame_layout): Update.
6174 (ix86_expand_epilogue): Update.
6175 * config/sh/sh.c (output_stack_adjust): Update.
6176 (calc_live_regs): Update.
6177 (sh_expand_prologue): Update.
6178 (sh_builtin_saveregs): Update.
6179 (sh_va_start): Update.
6180 (initial_elimination_offset): Update.
6181 (sh_allocate_initial_value): Update.
6182 (sh_function_ok_for_sibcall): Update.
6183 (sh_get_pr_initial_val): Update.
6184 * config/sh/sh.md (return expander): Update.
6185 * config/avr/avr.c (frame_pointer_required_p): UPdate.
6186 * config/crx/crx.c (crx_compute_frame): UPdate.
6187 (crx_initial_elimination_offset): UPdate.
6188 * config/xtensa/xtensa.c (compute_frame_size): Update
6189 (xtensa_builtin_saveregs): Update.
6190 (xtensa_va_start): Update.
6191 (order_regs_for_local_alloc): Update.
6192 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
6193 (xstormy16_expand_builtin_va_start): Update.
6194 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
6195 * config/m68hc11/m68hc11.md (return expanders): Update.
6196 * config/m68hc11/m68hc11.c (expand_prologue): Update.
6197 (expand_epilogue): Update.
6198 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
6199 (cris_simple_epilogue): Update.
6200 (cris_expand_prologue): Update.
6201 (cris_expand_epilogue): Update.
6202 * config/iq2000/iq2000.c (iq2000_va_start): Update.
6203 (compute_frame_size): Update.
6204 * config/mt/mt.c (mt_compute_frame_size): Update.
6205 * config/mn10300/mn10300.c (expand_prologue): Update.
6206 (expand_epilogue): Update.
6207 (initial_offset): Update.
6208 (mn10300_builtin_saveregs):
6209 * config/mn10300/mn10300.md (return expander): Update.
6210 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
6211 (ia64_initial_elimination_offset): Update.
6212 (ia64_initial_elimination_offset): Update.
6213 (ia64_expand_prologue): Update.
6214 * config/m68k/m68k.md (return expander): Update.
6215 * config/rs6000/rs6000.c (rs6000_va_start): Update.
6216 (rs6000_stack_info): Update.
6217 * config/mcore/mcore.c (layout_mcore_frame): Update.
6218 (mcore_expand_prolog): Update.
6219 * config/arc/arc.c (arc_compute_frame_size): Update.
6220 * config/score/score3.c (score3_compute_frame_size): Update.
6221 * config/score/score7.c (score7_compute_frame_size): Update.
6222 * config/arm/arm.c (use_return_insn): Update.
6223 (thumb_find_work_register): Update.
6224 (arm_compute_save_reg_mask): Update.
6225 (arm_output_function_prologue): Update.
6226 (arm_output_epilogue): Update.
6227 (arm_size_return_regs): Update.
6228 (arm_get_frame_offsets): Update.
6229 (arm_expand_prologue): Update.
6230 (thumb_exit): Update.
6231 (thumb_unexpanded_epilogue): Update.
6232 (thumb1_output_function_prologue): Update.
6233 * config/pa/pa.md (return expander): Update.
6234 * config/pa/pa.c (compute_frame_size): Update.
6235 (hppa_builtin_saveregs): Update.
6236 * config/mips/mips.c (mips_va_start): Update.
6237 (mips16_build_function_stub): Update.
6238 (mips_compute_frame_info): Update.
6239 (mips_restore_gp): Update.
6240 (mips_output_function_prologue): Update.
6241 (mips_expand_prologue): Update.
6242 * config/v850/v850.c (compute_frame_size): Update.
6243 (expand_prologue): * config/mmix/mmix.c (along): update.
6244 (mmix_initial_elimination_offset): update.
6245 (mmix_reorg): update.
6246 (mmix_use_simple_return): update.
6247 (mmix_expand_prologue): update.
6248 (mmix_expand_epilogue): Update.
6249 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
6250 (emit_link_insn): Update.
6251
5d9b8bb4
AS
62522008-04-08 Anatoly Sokolov <aesok@post.ru>
6253
6254 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
6255 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
6256 instructions.
6257 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
6258 atmega103 device.
6259
3e029763
JH
62602008-04-07 Jan Hubicka <jh@suse.cz>
6261
6262 * function.h (rtl): Rename to x_rtl.
6263 (crtl): New define.
6264 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
6265 frame_offset, stack_check_probe_note, arg_pointer_save_area,
6266 used_temp_slots avail_temp_slots, temp_slot_level,
6267 nonlocal_goto_handler_labels): Update accesstors.
6268 (rtl): New global variable.
6269 (struct function): Move some fileds to rtl_data.
6270 (get_arg_pointer_save_area): Update prototype.
6271 * builtins.c (expand_builtin_setjmp_receiver): Update call of
6272 get_arg_pointer_save_area.
6273 * expr.c (init_expr): Update
6274 * function.c (get_frame_size): Update
6275 (assign_stack_local): Update
6276 (expand_function_end): Update.
6277 (get_art_pointer_save_area): Update
6278 * function.h
6279 * emit-rtl.c (rtl): Declare.
6280 (regno_reg_rtx): Declare.
6281 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
6282 Update.
6283 (gen_reg_rtx): Update.
6284 * varasm.c (n_deferred_constatns): Update accestor.
6285 (init_varasm_status): Do not allocate varasm_status.
6286 (force_const_mem, get_pool_size, output_constant_pool): Update.
6287 * stmt.c (force_label_rtx): Do not use x_ prefixes.
6288 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
6289 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
6290 * sparc/sparc.h (INIT_EXPANDERS): Update.
6291 * ia64/ia64.h (INIT_EXPANDERS): Update.
6292
c3be2598
JW
62932008-04-07 James E. Wilson <wilson@tuliptree.org>
6294
6295 * reload.c (push_secondary_reload): Add missing break to for loop.
6296
46b71b03
PB
62972008-04-07 Peter Bergner <bergner@vnet.ibm.com>
6298
6299 PR middle-end/PR28690
6300 * rtlanal.c: Update copyright years.
6301 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
6302 as REG_POINTER and MEM_POINTER operands.
6303 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
6304 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
6305 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
6306 * gcse.c: Update copyright years.
6307 (pre_delete): Call gen_reg_rtx_and_attrs.
6308 (hoist_code): Likewise.
6309 (build_store_vectors): Likewise.
6310 (delete_store): Likewise.
6311 * loop-invariant.c (move_invariant_reg): Likewise.
6312 Update copyright years.
6313
64ef8953
UB
63142008-04-07 Uros Bizjak <ubizjak@gmail.com>
6315
6316 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
6317 control string instead of quoted.
6318
4218dc2d 63192008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
84159bd8 6320
64ef8953
UB
6321 * doc/rtl.texi: Rewrite of subreg section.
6322
8502420b
KT
63232008-04-07 Kai Tietz <kai.tietz@onevision.com>
6324
64ef8953
UB
6325 PR/35842
6326 * config/i386/i386.c (legitimize_pic_address): Add treating
6327 of dllimport SYM_REF's.
6328 (legitimize_dllimport_symbol): Add prototype.
8502420b 6329
39fcde8f
EB
63302008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6331
6332 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
6333 reference in constructor with non self-referential type.
6334
9dd9bf80
EB
63352008-04-07 Eric Botcazou <ebotcazou@adacore.com>
6336
6337 Removal of Return with Depressed Stack Pointer support
6338 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
6339 (ECF_SP_DEPRESSED): Likewise.
6340 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
6341 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
6342 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6343 (expand_call): Do not test ECF_SP_DEPRESSED.
6344 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6345 * function.c (keep_stack_depressed): Delete.
6346 (handle_epilogue_set): Likewise.
6347 (update_epilogue_consts): Likewise.
6348 (emit_equiv_load): Likewise.
6349 (thread_prologue_and_epilogue_insns): Remove support for Return with
6350 Depressed Stack Pointer.
6351 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
6352
3633df5a
RG
63532008-04-06 Richard Guenther <rguenther@suse.de>
6354
6355 PR tree-optimization/35400
6356 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
6357 information from SSA_NAMEs.
6358
5dc77808
AS
63592008-04-06 Anatoly Sokolov <aesok@post.ru>
6360
6361 * config/avr/avr.h (avr_mega_p): Remove declaration.
6362 (AVR_MEGA): Remove macro.
6363 * config/avr/avr.c (avr_mega_p): Remove variable.
6364 (avr_override_options): Remove inicializion of avr_mega_p.
6365 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6366 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
6367 (avr_jump_mode): (Ditto.).
6368 (avr_output_progmem_section_asm_op): (Ditto.).
6369 (avr_asm_init_sections): (Ditto.).
6370 (avr_asm_init_sections): (Ditto.).
6371 (avr_rtx_costs): (Ditto.).
6372 * config/avr/avr.md: (Ditto.).
6373 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
6374 '__AVR_MEGA__'.
6375
8c51effa
RG
63762008-04-06 Richard Guenther <rguenther@suse.de>
6377
6378 PR tree-optimization/35842
6379 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
6380 is_gimple_invariant_address.
6381
3135ce84
FXC
63822008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6383
6384 * gcc.c (default_compilers): Sync Fortran extensions list with
6385 that in fortran/lang-specs.h.
6386 * doc/invoke.texi: Likewise.
6387 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
6388 * dwarf2out.c (gen_compile_unit_die): Likewise.
6389
d7d7db8b
TC
63902008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
6391
6392 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
6393
27183bba
UB
63942008-04-05 Uros Bizjak <ubizjak@gmail.com>
6395
6396 PR target/12329
6397 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
6398 attribute is used for nested functions.
6399
9e016eba
JH
64002008-04-05 Jan Hubicka <jh@suse.cz>
6401
9fb7564e
JH
6402 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
6403
9e016eba
JH
6404 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
6405 letter argument.
6406 (dump_files): Update.
6407 (enable_rtl_dump_file): Do not accept letter argument.
6408 * tree-pass.h (dump_file_info): Remove letter argument.
6409 * toplev.c (decode_d_option): Update -da handling.
6410 * toplev.h (enable_rtl_dump_file): Update prototype.
6411 * passes.c (register_one_dump_file): Do not accept IPA argument; work
6412 it out based on pass type.
6413 (register_dump_files_1): Likewise.
6414 (init_optimization_passes): Update register_one_dump_file calls.
27183bba
UB
6415 (execute_one_pass): Sanity check that IPA passes are called at IPA
6416 level and RTL passes at RTL level.
9e016eba
JH
6417 (execute_pass_list): IPA pass can not be after or subpass of
6418 GIMPLE/RTL pass.
6419 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
6420 disallov RTL subpasses of IPA subpasses.
6421
23ef6d21
BE
64222008-04-05 Ben Elliston <bje@au.ibm.com>
6423
6424 * tree-cfg.c (need_fake_edge_p): Return false for calls to
6425 builtins that return exactly once and do not throw. Cache call to
6426 call_expr_flags.
6427
3c2397cd
AH
64282008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
6429
6430 PR rtl-optimization/34916
6431 PR middle-end/35519
6432 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
6433 between instruction pairs.
6434
9eb3a0dd
N
64352008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
6436
6437 * doc/invoke.texi: Document -mbitops for SH.
6438 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
6439 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
6440 * config/sh/sh.c (print_operand): Add %t operand code.
6441 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
6442 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
6443 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
6444 (extendqihi2): Likewise.
6445 (movqi_i): Likewise.
6446 (insv): Use bset, bclr and bst instructions for SH2A if possible.
6447 (extv): Use bld instruction for SH2A if possible.
6448 (extzv): Likewise.
6449 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
6450 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
6451 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
6452 (bset.b, bclr.b): Define peepholes.
6453 * config/sh/sh.opt (mbitops): New option.
6454
fdf4f148
JJ
64552008-04-04 Janis Johnson <janis187@us.ibm.com>
6456
6457 PR target/35620
6458 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
6459 and view convert expression.
6460
3088d404
JJ
64612008-04-04 Jakub Jelinek <jakub@redhat.com>
6462
6463 PR target/35364
6464 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
6465
8b96a312
L
64662008-04-04 H.J. Lu <hongjiu.lu@intel.com>
6467
6468 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
6469
6470 * config/i386/cpuid.h (bit_AES): New.
6471 (bit_PCLMUL): Likewise.
6472
6473 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
6474 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
6475 SSE2 if AES or PCLMUL is enabled.
6476 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
6477 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6478 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
6479 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
6480 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
6481 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
6482 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
6483 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
6484 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
6485 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
6486 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
6487 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
6488 __builtin_ia32_aeskeygenassist128 and
6489 __builtin_ia32_pclmulqdq128.
6490 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
6491 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
6492 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
6493
6494 * config/i386/i386.h (TARGET_AES): New.
6495 (TARGET_PCLMUL): Likewise.
6496 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
6497
6498 * config/i386/i386.md (UNSPEC_AESENC): New.
6499 (UNSPEC_AESENCLAST): Likewise.
6500 (UNSPEC_AESDEC): Likewise.
6501 (UNSPEC_AESDECLAST): Likewise.
6502 (UNSPEC_AESIMC): Likewise.
6503 (UNSPEC_AESKEYGENASSIST): Likewise.
c9a22ea1 6504 (UNSPEC_PCLMUL): Likewise.
8b96a312
L
6505
6506 * config/i386/i386.opt (maes): New.
6507 (mpclmul): Likewise.
6508
6509 * config/i386/sse.md (aesenc): New pattern.
6510 (aesenclast): Likewise.
6511 (aesdec): Likewise.
6512 (aesdeclast): Likewise.
6513 (aesimc): Likewise.
6514 (aeskeygenassist): Likewise.
6515 (pclmulqdq): Likewise.
6516
6517 * config/i386/wmmintrin.h: New.
6518
6519 * doc/extend.texi: Document AES and PCLMUL built-in function.
6520
6521 * doc/invoke.texi: Document -maes and -mpclmul.
6522
e8924938
PB
65232008-04-04 Paolo Bonzini <bonzini@gnu.org>
6524
6525 * function.c (free_after_parsing): Replace with
6526 cxx_push_function_context from C++ front-end.
6527 (allocate_struct_function): Don't call langhook.
6528 * langhooks.h (struct lang_hooks_for_functions): Delete.
6529 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
6530 member "function".
6531 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
6532 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
6533 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
6534 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
6535 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
6536 remove LANG_HOOKS_FUNCTION_INITIALIZER.
6537 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
6538
6539 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
6540 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
6541
05008a0c
JJ
65422008-04-04 Jakub Jelinek <jakub@redhat.com>
6543
6544 PR c/35440
6545 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
6546 for all types.
6547
c071e8bc
RG
65482008-04-04 Richard Guenther <rguenther@suse.de>
6549
6550 PR middle-end/35823
6551 * fold-const.c (optimize_minmax_comparison): Use the correct
6552 type for the constant in the simplified comparison.
6553
f4a1dd0d
ZM
65542008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
6555
6556 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
6557 Pass L2 size as "--param l2-cache-size" to the compiler.
6558 (decode_l2_cache): New function to decode L2 cache parameters using
6559 0x8000006 extended cpuid function.
6560 (detect_caches_amd): Determine parameters of L2 cache using
6561 decode_l2_caches function.
6562 (decode_caches_intel): Decode L2 cache parameters.
6563 (detect_caches_intel): Determine L2 cache parameters using
6564 decode_caches_intel and decode_l2_caches functions.
6565
3ee909cb
BW
65662008-04-03 Bob Wilson <bob.wilson@acm.org>
6567
6568 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
6569 secondary input reload for subword loads from the constant pool.
6570
6db07dcb
JJ
65712008-04-03 Janis Johnson <janis187@us.ibm.com>
6572
383e91e4
JJ
6573 PR target/35713
6574 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
6575 constants of the appropriate size for runtime calculations.
6576
6db07dcb
JJ
6577 PR c/35712
6578 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
6579 decimal-float literal constant zero.
6580
5da250fc
JJ
65812008-04-03 Jakub Jelinek <jakub@redhat.com>
6582
79addd1f
JJ
6583 PR c/35738
6584 * c-parser.c (c_parser_omp_atomic): Call
6585 default_function_array_conversion on the RHS.
6586
5da250fc
JJ
6587 PR middle-end/35818
6588 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
6589 call is_variable_sized if decl has incomplete type.
6590
940f3b52
L
65912008-04-03 H.J. Lu <hongjiu.lu@intel.com>
6592
6593 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
6594
6ac935c1
AN
65952008-04-03 Adam Nemet <anemet@caviumnetworks.com>
6596
6597 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
6598 iterators.
64ef8953 6599 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6ac935c1
AN
6600 (sgt<u>): Merge sgt and sgtu into new expander.
6601 (sgt, sgtu): Remove expanders.
64ef8953 6602 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6ac935c1
AN
6603 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
6604 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
6605 *sgtu_<mode>_mips16 into new pattern.
6606 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
6607 (sge<u>): Merge sge and sgeu into new expander.
6608 (sge, sgeu): Remove expanders.
6609 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
6610 new pattern.
6611 (*sge_<mode>, second *sge_<mode>): Remove patterns.
6612 (slt<u>): Merge slt and sltu into new expander.
6613 (slt, sltu): Remove expanders.
64ef8953 6614 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6ac935c1
AN
6615 (*slt_<mode>, *sltu_<mode>): Remove patterns.
6616 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
6617 *sltu_<mode>_mips16 into new pattern.
6618 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
6619 (sle<u>): Merge sle and sleu into new expander.
6620 (sle, sleu): Remove expanders.
64ef8953 6621 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6ac935c1
AN
6622 (*sle_<mode>, *sleu_<mode>): Remove patterns.
6623 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
6624 *sleu_<mode>_mips16 into new pattern.
6625 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
6626
6b0c2336
JH
66272008-04-03 Jan Hubicka <jh@suse.cz>
6628
6629 PR tree-optimization/35795
6630 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
6631 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
6632 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
6633 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
6634 * score/score3.c (score3_output_mi_thunk): Likewise.
6635 * score/score7.c (score7_output_mi_thunk): Likewise.
6636 * mips/mips.c (mips_output_mi_thunk): Likewise.
6637
b47ee386
RG
66382008-04-03 Richard Guenther <rguenther@suse.de>
6639
6640 * tree-vrp.c (extract_range_from_unary_expr): Handle all
6641 conversions. Simplify code.
6642
2a7428c0
KK
66432008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
6644
6645 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
6646
6cba282a
TT
66472008-04-03 Tom Tromey <tromey@redhat.com>
6648 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6649
6650 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6651 * config/bfin/t-bfin-linux (generated_files): Add
6652 linux-sysroot-suffix.h.
6653 * doc/install.texi (Prerequisites): Require make 3.80.
6654 * doc/sourcebuild.texi (Front End Directory): Document new
6655 variable.
6656 * Makefile.in (generated_files): New variable.
6657 (ALL_HOST_OBJS): New variable.
6658 ($(ALL_HOST_OBJS)): New target.
6659
9ff420f1
PB
66602008-04-03 Paolo Bonzini <bonzini@gnu.org>
6661
6b0c2336
JH
6662 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
6663 (remap_block): Call id->transform_lang_insert_block instead
6664 of langhook.
6665 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
6666 Set id.transform_lang_insert_block to NULL.
6667 (clone_body): Move to cp/optimize.c
6668 * tree-inline.h (struct copy_body_data): Change
6669 transform_lang_insert_block to function pointer.
6670 (copy_generic_body, copy_decl_no_change): Export.
6671 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
6672 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
6673 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
6674
6675 * c-tree.h (insert_block): Kill.
6676 * c-decl.c (insert_block): Kill.
9ff420f1 6677
d2784db4
PB
66782008-04-03 Paolo Bonzini <bonzini@gnu.org>
6679
6b0c2336
JH
6680 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6681 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6682 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
6683 argument.
6684 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
6685 argument, call {push,pop}_function_context from here.
6686 * c-parser.c: Use c_{push,pop}_function_context.
6687
6688 * function.c (push_function_context_to): Move meat ...
6689 (push_function_context): ... here. Simplify.
6690 * function.c (pop_function_context_from): Move meat ...
6691 (pop_function_context): ... here. Simplify.
6692 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
6693 leave_nested).
6694 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6695 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
6696 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
6697 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2784db4 6698
9e0aebca
BE
66992008-04-03 Ben Elliston <bje@au.ibm.com>
6700
6701 * expmed.c (extract_force_align_mem_bit_field): Remove.
6702
55187c8a
RG
67032008-04-03 Richard Guenther <rguenther@suse.de>
6704
6705 PR middle-end/35800
6706 * expr.h (try_casesi): Adjust prototype.
6707 * expr.c (try_casesi): Take fallback label as extra parameter.
6708 Use that for gen_casesi if default_label is NULL.
6709 * stmt.c (expand_case): Pass fallback label to try_casesi,
6710 make sure to fill gaps with a fallback label if default_label
6711 is not present.
6712
d7087dd2
DH
67132008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
6714
6715 PR target/35801
6716 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
6717
609023ff
BE
67182008-04-03 Ben Elliston <bje@au.ibm.com>
6719
6720 * expmed.c (extract_split_bit_field): Remove if (0) code.
6721 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
6722 (do_ds_constraint): Likewise.
6723
93d45d9e
JM
67242008-04-02 Joseph Myers <joseph@codesourcery.com>
6725
6726 * doc/cppopts.texi (-dU): Document.
6727 * c-common.h (flag_dump_macros): Update comment.
6728 * c-opts.c (handle_OPT_d): Handle -dU.
6729 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
6730 dump_queued_macros, cb_used_define, cb_used_undef): New.
6731 (init_pp_output): Handle -dU.
6732 (cb_line_change): Call dump_queued_macros.
6733 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
6734
e6b69d0e
AS
67352008-04-02 Anatoly Sokolov <aesok@post.ru>
6736
6737 * config/avr/predicates.md (io_address_operand): New predicate.
6738 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
6739 * config/avr/avr.c (avr_io_address_p): Remove function.
6740 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
6741 'avr_io_address_p' function.
6742 (out_movhi_r_mr): (Ditto.).
6743 (out_movqi_mr_r): (Ditto.).
6744 (out_movhi_mr_r): (Ditto.).
6745 (avr_address_cost): (Ditto.).
6746
7b198002
UB
67472008-04-02 Uros Bizjak <ubizjak@gmail.com>
6748
6749 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
6750 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
6751 in 32bit mode when XMM registers are available to avoid store
6752 forwarding stalls.
6753 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
6754 corresponding post-reload splitters.
6755
abe08645
L
67562008-04-02 H.J. Lu <hongjiu.lu@intel.com>
6757
6758 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
6759 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
6760 __builtin_ia32_roundss.
6761 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
6762 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
6763 __builtin_ia32_roundss.
6764 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
6765 IX86_BUILTIN_SHUFPD here.
6766
94237c92
L
67672008-04-02 H.J. Lu <hongjiu.lu@intel.com>
6768
6769 * config/i386/i386.md (plogic): New.
6770 (plogicprefix): Likewise.
6771
6772 * config/i386/mmx.md (mmx_<code><mode>3): New.
6773 (mmx_and<mode>3): Removed.
6774 (mmx_ior<mode>3): Likewise.
6775 (mmx_xor<mode>3): Likewise.
6776
6777 * config/i386/sse.md (<code><mode>3): New.
6778 (*<code><mode>3): Likewise.
6779 (*<code><mode>3): Likewise.
6780 (<code><mode>3): Likewise.
6781 (*sse_<code><mode>3): Likewise.
6782 (*sse2_<code><mode>3): Likewise.
6783 (<code>tf3): Likewise.
6784 (*<code>tf3): Likewise.
6785 (and<mode>3): Likewise.
6786 (*and<mode>3): Likewise.
6787 (ior<mode>3): Removed.
6788 (*ior<mode>3): Likewise.
6789 (xor<mode>3): Likewise.
6790 (*xor<mode>3): Likewise.
6791 (*and<mode>3): Likewise.
6792 (*ior<mode>3): Likewise.
6793 (*xor<mode>3): Likewise.
6794 (and<mode>3): Likewise.
6795 (*sse_and<mode>3): Likewise.
6796 (*sse2_and<mode>3): Likewise.
6797 (andtf3): Likewise.
6798 (*andtf3): Likewise.
6799 (ior<mode>3): Likewise.
6800 (*sse_ior<mode>3): Likewise.
6801 (*sse2_ior<mode>3): Likewise.
6802 (iortf3): Likewise.
6803 (*iortf3): Likewise.
6804 (xor<mode>3): Likewise.
6805 (*sse_xor<mode>3): Likewise.
6806 (*sse2_xor<mode>3): Likewise.
6807 (xortf3): Likewise.
6808 (*xortf3): Likewise.
6809
b7814a18
RG
68102008-04-02 Richard Guenther <rguenther@suse.de>
6811
6812 PR tree-optimization/14495
6813 PR tree-optimization/34793
6814 * tree-vrp.c (struct switch_update): New structure.
6815 (to_remove_edges, to_update_switch_stmts): New VECs.
6816 (simplify_switch_using_ranges): New function. Remove not taken
6817 case labels and edges.
6818 (simplify_stmt_using_ranges): Call it.
6819 (identify_jump_threads): Mark edges we have queued for removal
6820 so we don't thread them.
6821 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
6822 case label vector.
6823 * tree-cfg.c (group_case_labels): Deal with missing default label.
6824 (tree_verify_flow_info): Allow missing default label.
6825 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
6826 (emit_case_nodes): Likewise.
6827 (expand_case): Do not rely on the default label to be present.
6828 * expr.c (try_casesi): Deal with NULL default_label.
6829 (do_tablejump): Likewise.
6830
8aea0bf0
RG
68312008-04-02 Richard Guenther <rguenther@suse.de>
6832
6833 PR tree-optimization/14495
6834 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
6835 SWITCH_EXPR here ...
6836 (vrp_visit_switch_stmt): ... but here (new function).
6837 (find_case_label_index): New helper function.
6838 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
6839
3f1c2278
PB
68402008-04-02 Paolo Bonzini <bonzini@gnu.org>
6841
6842 * fwprop.c: Fix ISO-C99ism.
6843
da0f6381
PB
68442008-04-02 Paolo Bonzini <bonzini@gnu.org>
6845
6846 PR bootstrap/35752
6847 * Makefile.in (objdir): Set it here.
6848 * configure.ac: Not here. Find dynamic linker characteristics.
6849 * exec-tool.in: Use them.
6850 * aclocal.m4: Regenerate.
6851 * configure: Regenerate.
6852
4846b435
PB
68532008-04-02 Paolo Bonzini <bonzini@gnu.org>
6854
6855 * expr.c (expand_var): Delete it.
6856 * expr.h (expand_var): Delete prototype.
6857 * function.c (expand_function_start): Use expand_decl instead.
6858 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
6859 langhook.
6860
4fefbcdb
AH
68612008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
6862
6863 PR rtl-optimization/35542
6864 * fwprop.c (forward_propagate_and_simplify): Replace
6865 loc_reg_mentioned_in_p with reg_mentioned_p.
6866
460d667d
PB
68672008-04-02 Paolo Bonzini <bonzini@gnu.org>
6868
4fefbcdb 6869 PR rtl-optimization/35281
460d667d
PB
6870 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
6871 (propagate_rtx_1): Handle PR_HANDLE_MEM.
6872 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
6873 (varying_mem_p): Move above propagate_rtx.
6874 (all_uses_available_at): Do not check MEMs.
6875
a26a02d7
RAE
68762008-04-02 Rafael Espindola <espindola@google.com>
6877
6878 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
6879 (register_edge_assert_for_2): Split the cond argument.
6880 (register_edge_assert_for_1): Adjust for the change in
6881 register_edge_assert_for_2.
6882 (register_edge_assert_for): Split the cond argument.
6883 (find_switch_asserts): Adjust for the change in
6884 register_edge_assert_for.
6885
e8930cc1
KT
68862008-04-02 Kai Tietz <kai.tietz@onevision.com>
6887
6888 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
b97d8153 6889 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
893125e0 6890 offsets for 64-bit mingw.
b97d8153 6891 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
893125e0 6892 abi for x86_64-pc-mingw.
e8930cc1 6893
70b7b037
RG
68942008-04-02 Richard Guenther <rguenther@suse.de>
6895
6896 * tree-vrp.c (extract_range_from_assert): Make sure to not
6897 produce range min/max with TREE_OVERFOW set.
6898 If merging a anti-range and a range keep the anti-range if
6899 the range covers all values of the type.
6900 (register_edge_assert_for_2): Only allow sign-changing
6901 conversions in detecting canonical range checks. Also
6902 register an assert for the unsigned name if useful.
6903
6904 PR tree-optimization/35787
6905 * tree-vrp.c (vrp_val_max): New function.
6906 (vrp_val_min): Likewise.
6907 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
6908 (vrp_val_is_min): Likewise.
6909 (supports_overflow_infinity): Use vrp_val_{min,max}.
6910 (negative_overflow_infinity): Likewise.
6911 (positive_overflow_infinity): Likewise.
6912 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
6913 (is_positive_overflow_infinity): Likewise.
6914 (is_overflow_infinity): Likewise.
6915 (avoid_overflow_infinity): Use vrp_val_{min,max} and
6916 vrp_val_is_{min,max}.
6917 (set_and_canonicalize_value_range): Canonicalize anti-ranges
6918 to ranges if possible. Avoid empty ranges.
6919
10743280
JDA
69202008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6921
6922 PR middle-end/35705
6923 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
6924 the expression is a function address.
6925
7151ffbe
GH
69262008-04-01 George Helffrich <george@gcc.gnu.org>
6927
623f8e39 6928 PR fortran/35154, fortran/23057
7151ffbe
GH
6929 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
6930 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
6931 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
6932 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
6933 in common.
6934 (dbxout_syms): Check for COMMON-based symbol and wrap in
6935 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
6936 in bracket for efficiency.
6937
6938 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
6939 using DW_TAG_common_block + member offset.
6940 (add_pubname_string): New function.
6941 (dw_expand_expr): New function to find block name and offset for
6942 COMMON var.
6943 (common_check): New function to check whether symbol in Fortran COMMON.
6944 (gen_variable_die): If COMMON, use DW_TAG_common_block.
6945
dc197ab9
VR
69462008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
6947
6948 PR c/35436
6949 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
6950
9e9b5341
BE
69512008-04-02 Ben Elliston <bje@au.ibm.com>
6952
6953 * config/v850/v850.md (casesi): Remove if (0) code.
6954 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6955 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
6956
380edc9f
UB
69572008-04-01 Uros Bizjak <ubizjak@gmail.com>
6958
6959 * config/i386/i386.md (rex64suffix): New mode attribute.
6960 (floathi<mode>2): Disable expander for SSE math.
6961 (*floathi<mode>2_1): New insn insn_and_split pattern.
6962 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
6963 corresponding post-reload splitters.
6964 (*floathi<mode>2_i387): New macroized insn pattern.
6965 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
6966 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
6967 insn_and_split pattern.
6968 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
6969 New macroized instruction patterns and corresponding post-reload
6970 splitters.
6971 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
6972 and corresponding post-reload splitters.
6973 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
6974 New macroized instruction patterns.
6975 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
6976 macroized instruction patterns and corresponding post-reload splitters.
6977 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
6978 corresponding post-reload splitters.
6979 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
6980 New macroized instruction patterns.
6981 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
6982 corresponding post-reload splitters.
6983 (*floatsi<mode>2_i387): New macroized instruction patterns.
6984
78e8956b
L
69852008-04-01 H.J. Lu <hongjiu.lu@intel.com>
6986
6987 * config/i386/i386.md (smaxmin): New.
6988 (umaxmin): Likewise.
6989 (maxminiprefix): Likewise.
6990 (maxminfprefix): Likewise.
6991 (<code><mode>3): Likewise.
6992 (smin<mode>3): Removed.
6993 (smax<mode>3): Likewise.
6994
6995 * config/i386/mmx.md (mmx_<code>v2sf3): New.
6996 (mmx_<code>v4hi3): Likewise.
6997 (mmx_<code>v8qi3): Likewise.
6998 (mmx_smaxv2sf3): Removed.
6999 (mmx_sminv2sf3): Likewise.
7000 (mmx_umaxv8qi3): Likewise.
7001 (mmx_smaxv4hi3): Likewise.
7002 (mmx_uminv8qi3): Likewise.
7003 (mmx_sminv4hi3): Likewise.
7004
7005 * config/i386/sse.md (<addsub><mode>3): New.
7006 (*<addsub><mode>3): Likewise.
7007 (<sse>_vm<addsub><mode>3): Likewise.
7008 (<maxmin><mode>3): Likewise.
7009 (*<maxmin><mode>3_finite): Likewise.
7010 (*<maxmin><mode>3): Likewise.
7011 (<sse>_vm<maxmin><mode>3): Likewise.
7012 (sse3_h<addsub>v4sf3): Likewise.
7013 (sse3_h<addsub>v2df3): Likewise.
7014 (<maxmin>v16qi3): Likewise.
7015 (*<maxmin>v16qi3): Likewise.
7016 (<maxmin>v8hi3): Likewise.
7017 (*<maxmin>v8hi3): Likewise.
7018 (*sse4_1_<maxmin><mode>3): Likewise.
7019 (*sse4_1_<maxmin><mode>3): Likewise.
7020 (add<mode>3): Removed.
7021 (*add<mode>3): Likewise.
7022 (<sse>_vmadd<mode>3): Likewise.
7023 (sub<mode>3): Likewise.
7024 (*sub<mode>3): Likewise.
7025 (<sse>_vmsub<mode>3): Likewise.
7026 (smin<mode>3): Likewise.
7027 (*smin<mode>3_finite): Likewise.
7028 (*smin<mode>3): Likewise.
7029 (<sse>_vmsmin<mode>3): Likewise.
7030 (smax<mode>3): Likewise.
7031 (*smax<mode>3_finite): Likewise.
7032 (*smax<mode>3): Likewise.
7033 (<sse>_vmsmax<mode>3): Likewise.
7034 (sse3_haddv4sf3): Likewise.
7035 (sse3_haddv2df3): Likewise.
7036 (sse3_hsubv4sf3): Likewise.
7037 (sse3_hsubv2df3): Likewise.
7038 (umaxv16qi3): Likewise.
7039 (*umaxv16qi3): Likewise.
7040 (smaxv8hi3): Likewise.
7041 (*smaxv8hi3): Likewise.
7042 (*sse4_1_smax<mode>3): Likewise.
7043 (*sse4_1_umax<mode>3): Likewise.
7044 (uminv16qi3): Likewise.
7045 (*uminv16qi3): Likewise.
7046 (sminv8hi3): Likewise.
7047 (*sminv8hi3): Likewise.
7048 (*sse4_1_smin<mode>3): Likewise.
7049 (*sse4_1_umin<mode>3): Likewise.
7050
220f1c29
RAE
70512008-04-01 Rafael Espindola <espindola@google.com>
7052
7053 * tree-cfg.c (verify_expr): remove in_phi.
78e8956b 7054 (verify_stmt): Don't call walk_tree with verify_expr. Use
220f1c29
RAE
7055 is_gimple_min_invariant instead of is_gimple_val.
7056
7f9766e4
JM
70572008-04-01 Joseph Myers <joseph@codesourcery.com>
7058
7059 * doc/include/gpl_v3.texi: Update for manpage generation.
7060 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
7061 gpl.texi.
7062 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
7063 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
7064 gpl_v3.texi instead of gpl.texi.
7065 (gpl.pod): New.
7066
d4c32e1d
JJ
70672008-04-01 Jakub Jelinek <jakub@redhat.com>
7068
7069 PR pch/13675
7070 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
7071
764a79ed
RAE
70722008-04-01 Rafael Espindola <espindola@google.com>
7073
7074 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
7075 (extract_code_and_val_from_cond): Use
7076 extract_code_and_val_from_cond_with_ops.
7077
113c63b8
JH
70782008-04-01 Jan Hubicka <jh@suse.cz>
7079
7080 * function.c (free_after_compilation): Free epilogue_delay_list.
7081 (prepare_function_start): Assert that previous compilation was freed.
7082
ec24c3a3
JH
70832008-04-01 Jan Hubicka <jh@suse.cz>
7084 Jim Wilson <wilson@tuliptree.org>
7085 Andreas Tobler <andreast@gcc.gnu.org>
7086
7087 PR middle-end/35781
7088 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
7089 rtl.emit instead cfun->emit.
7090 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
7091 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
7092
1b82c3aa
BE
70932008-04-01 Ben Elliston <bje@au.ibm.com>
7094
7095 * doc/c-tree.texi (Function Basics): Fix grammatical error.
7096
2f908293
SP
70972008-03-31 Seongbae Park <seongbae.park@gmail.com>
7098
7099 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
7100 New options
7101 (fprofile-use): Add var flag_profile_use
380edc9f
UB
7102 * coverage.c (coverage_begin_output): Do not open a gcno file for
7103 output only if -ftest-coverage is set.
2f908293 7104 Do not add getpwd() to gcda file path.
380edc9f 7105 (build_gcov_info): Check the new flag
2f908293
SP
7106 flag_profile_datafile_relative_path.
7107 (coverage_init): Use profile_data_prefix.
7108 Read profile counter only if flag_profile_use is set.
7109 * opts.c (common_handle_option): New option fprofile-use=,
7110 fprofile-dir=, fprofile-generate=.
7111 * toplev.c (profile_data_prefix): New variable definition.
7112 * toplev.h (profile_data_prefix): New declaration.
7113 * doc/invoke.tex (Option Summary, Optimization Options):
7114 Add new options.
7115
1def9c3f
JW
71162008-03-31 James E. Wilson <wilson@tuliptree.org>
7117
380edc9f
UB
7118 * varasm.c (output_constant_pool_1): In LABEL_REF check,
7119 use tmp consistently.
048ffb8f 7120
1def9c3f
JW
7121 PR target/35695
7122 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
7123 * config/ia64/ia64.c (rtx_needs_barrier): Handle
7124 UNSPEC_FR_RECIP_APPROX_RES.
7125 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
7126
bb686a19
VR
71272008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
7128
7129 PR c/35750
7130 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
7131
a12bdb97
AP
71322008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
7133
7134 PR middle-end/30186
7135 * fold-const.c (fold_indirect_ref_1): Support accessing non first
7136 element of the vector via a pointer.
7137
2d4bba80
ILT
71382008-03-31 Ian Lance Taylor <iant@google.com>
7139
380edc9f 7140 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2d4bba80 7141
bd60bab2
JH
71422008-03-31 Jan Hubicka <jh@suse.cz>
7143
7144 * builtins.c (expand_builtin_setjmp_receiver): Update call of
7145 get_arg_pointer_save_area.
7146 * expr.c (init_expr): Just clear out rtl.expr.
7147 * function.c (free_after_compilation): Clear out whole RTL structure.
7148 (get_func_frame_size): Merge into ...
7149 (get_frame_size): ... this one.
7150 (assign_stack_local_1): Merge into ...
7151 (assign_stack_local): ... this one.
7152 (expand_function_end): Update call of get_arg_pointer_save_area.
7153 (get_art_pointer_save_area): Remove cfun argument.
7154 * function.h (emit_status): regno_pointer_align does not need length
7155 attribute. Move x_regno_reg_rtx to ...
7156 (regno_reg_rtx): ... new global array.
7157 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
7158 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
380edc9f
UB
7159 apply_args_value, forced_labels, stack_pointer_delta):
7160 Update accestors.
bd60bab2
JH
7161 (struct varasm_status): Move here from varasm.c
7162 (struct rtl_data): New. Move here some fields from struct function.
7163 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
7164 frame_offset, stack_check_probe_note, arg_pointer_save_area,
7165 used_temp_slots avail_temp_slots, temp_slot_level,
7166 nonlocal_goto_handler_labels): Update accesstors.
7167 (rtl): New global variable.
7168 (struct function): Move some fileds to rtl_data.
7169 (get_arg_pointer_save_area): Update prototype.
7170 * emit-rtl.c (rtl): Declare.
7171 (regno_reg_rtx): Declare.
380edc9f
UB
7172 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
7173 Update.
bd60bab2
JH
7174 (gen_reg_rtx): Update.
7175 (init_virtual_regs): Do not tate emit_status argument.
7176 (init_emit): Do not allocate emit.
7177 * varasm.c (varasm_statuc): Move to function.h.
7178 (n_deferred_constatns): Update accestor.
7179 (init_varasm_status): Do not allocate varasm_status.
7180 (force_const_mem, get_pool_size, output_constant_pool): Update.
7181 * stmt.c (force_label_rtx): Do not use x_ prefixes.
7182 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
7183
66f91b93
ZD
71842008-03-31 Zdenek Dvorak <ook@ucw.cz>
7185
7186 PR rtl-optimization/35729
7187 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
7188 references.
7189
66e1ecfe
L
71902008-03-31 H.J. Lu <hongjiu.lu@intel.com>
7191
7192 PR target/32000
7193 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
7194 load/store if memory is unaligned.
7195 (*movti_rex64): Likewise.
7196
7197 * config/i386/predicates.md (misaligned_operand): New.
7198
550386ad
AP
71992008-03-31 Andrew Pinski <pinskia@gmail.com>
7200
7201 PR tree-opt/35431
7202 * tree-ssa-phiopt.c (conditional_replacement): Return early for
7203 complex types.
7204
4e483a22
JB
72052008-03-31 Jan Beulich <jbeulich@novell.com>
7206
7207 * config/ia64/constraints.md: Add 'j' constraint.
7208 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
7209 (movdi_internal): Likewise.
7210
39ffbac9
VR
72112008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
7212
7213 PR c/35748
7214 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
7215
23594c97
L
72162008-03-30 H.J. Lu <hongjiu.lu@intel.com>
7217
7218 PR target/35757
7219 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
7220 proper error message for the third argument on blendpd and
7221 blendps.
7222
7223 * config/i386/sse.md (blendbits): New.
7224 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
7225
8f0e2671
EB
72262008-03-30 Eric Botcazou <ebotcazou@adacore.com>
7227
7228 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
7229
96648603
RG
72302008-03-30 Richard Guenther <rguenther@suse.de>
7231
7232 PR middle-end/31023
7233 * fold-const.c (fold_sign_changed_comparison): Do leave
7234 conversions to base-types alone.
7235
3ac0963a
AP
72362008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
7237
7238 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
7239 the link register if one altivec register is be saved.
7240
744c6d6e
BE
72412008-03-30 Ben Elliston <bje@au.ibm.com>
7242
7243 * final.c (final_scan_insn): Remove if (0) code.
7244
dbc518f0
VR
72452008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
7246
7247 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
7248
ad387dad
L
72492008-03-28 H.J. Lu <hongjiu.lu@intel.com>
7250
7251 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
7252 of V4SFmode to ix86_binary_operator_ok.
7253
9aba5d22
UB
72542008-03-28 Uros Bizjak <ubizjak@gmail.com>
7255
7256 * config/i386/i386.c (override_options): Initialize
7257 ix86_veclib_handler to ix86_veclibabi_svml when
7258 -mveclibabi=svml is used.
7259 (ix86_veclibabi_svml): New function for SVML ABI style
7260 vectorization support.
7261 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
7262
2d3cd5d5
RAE
72632008-03-28 Rafael Espindola <espindola@google.com>
7264
7265 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
7266 (tree_binary_nonnegative_warnv_p): Make it public.
7267 (tree_single_nonnegative_warnv_p): Make it public.
7268 (tree_invalid_nonnegative_warnv_p): Make it public.
7269 (tree_unary_nonzero_warnv_p): Make it public.
7270 (tree_binary_nonzero_warnv_p): Make it public
7271 (tree_single_nonzero_warnv_p): Make it public.
7272 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
7273 (extract_range_from_binary_expr): Split the expr argument.
7274 (extract_range_from_unary_expr): Split the expr argument.
7275 (extract_range_from_comparison): Split the expr argument.
7276 (extract_range_from_expr): Use the new aux functions.
7277 (vrp_evaluate_conditional_warnv): Use
7278 vrp_evaluate_conditional_warnv_with_ops.
7279 * tree.h (tree_unary_nonzero_warnv_p): Declare.
7280 (tree_binary_nonzero_warnv_p): Declare.
7281 (tree_single_nonzero_warnv_p): Declare.
7282 (tree_expr_nonzero_warnv_p): Declare.
7283 (tree_unary_nonnegative_warnv_p): Declare.
7284 (tree_binary_nonnegative_warnv_p): Declare.
7285 (tree_single_nonnegative_warnv_p): Declare.
7286 (tree_invalid_nonnegative_warnv_p): Declare.
7287
2ab8dbf4
RG
72882008-03-28 Richard Guenther <rguenther@suse.de>
7289
7290 PR tree-optimization/30317
7291 PR tree-optimization/30911
7292 PR tree-optimization/34793
7293 * tree-vrp.c (set_and_canonicalize_value_range): New function.
7294 (struct assert_locus_d): New member EXPR.
7295 (register_new_assert_for): Add EXPR parameter to support
7296 ASSERT_EXPR <name, expr OP limit>.
7297 (register_edge_assert_for_1): Adjust callers.
7298 (find_assert_locations): Likewise.
9aba5d22 7299 (process_assert_insertions_for): Build condition from expression.
2ab8dbf4
RG
7300 (extract_range_from_assert): Handle ASSERT_EXPRs
7301 of the form ASSERT_EXPR <name, expr OP limit>.
7302 (register_edge_assert_for_2): New helper registering
7303 asserts for comparisons. Recognize range tests of the form
7304 (unsigned)i - CST1 OP CST2.
7305 (register_edge_assert_for_1): Use it.
7306 (register_edge_assert_for): Likewise.
7307 (needs_overflow_infinity): Integer sub-types
7308 do not need overflow infinities.
7309 (vrp_val_is_max): The extreme values of integer sub-types
7310 are those of the base type.
7311 (vrp_val_is_min): Likewise.
7312 * tree.def (ASSERT_EXPR): Document extra allowed conditional
7313 expressions.
7314
fc4f3261
NC
73152008-03-28 Nick Clifton <nickc@redhat.com>
7316
f6d2671e 7317 PR target/31110
fc4f3261 7318 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9aba5d22 7319 Return GENERAL_REGS for stack adjustment reloads.
fc4f3261 7320
501fb355
AP
73212008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
7322
7323 PR target/31334
7324 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
7325 const_vector when all the vectors are constant.
7326
ff779f98
BW
73272008-03-27 Bob Wilson <bob.wilson@acm.org>
7328
7329 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
7330 comparisons.
7331 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
7332 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
7333 (scc_sf): New.
7334 (s<code>_sf): Use new scc_sf attribute for opcode names.
7335
e980df8e
TT
73362008-03-27 Tom Tromey <tromey@redhat.com>
7337
7338 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
7339 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
7340 config/spu/t-spu-elf, config/i386/t-interix,
7341 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
7342 config/i386/x-darwin, config/i386/x-mingw32,
7343 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
7344 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
7345 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
7346 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
7347 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
7348 config/rs6000/x-darwin, config/rs6000/t-rs6000,
7349 config/score/t-score-elf, config/arm/t-strongarm-pe,
7350 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
7351 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
7352 Revert automatic dependency patch.
7353
c84555eb
L
73542008-03-27 H.J. Lu <hongjiu.lu@intel.com>
7355
7356 PR target/35657
7357 * config/i386/i386.c (ix86_function_arg_boundary): Align
7358 decimal floating point to its natural boundary.
7359
ffd837fe
RG
73602008-03-27 Richard Guenther <rguenther@suse.de>
7361
7362 PR middle-end/35716
7363 * fold-const.c (fold_comparison): Restrict distinct decl
7364 comparison folding to VAR_DECLs and PARM_DECLs. Do not
7365 solely rely on operand_equal_p.
7366
6b4e94bc
RG
73672008-03-27 Richard Guenther <rguenther@suse.de>
7368
7369 PR c/32511
7370 * c-common.c (handle_weak_attribute): Reject combination of
7371 weak and inline.
7372
62bc00e2
RG
73732008-03-27 Richard Guenther <rguenther@suse.de>
7374
7375 PR tree-optimization/32810
7376 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
7377 conversions from DECL_INITIAL.
7378 (fold_const_aggregate_ref): Likewise from constructor elements.
7379
72425608
ZD
73802008-03-27 Zdenek Dvorak <ook@ucw.cz>
7381
7382 * tree-affine.h (aff_combination_expand): Declare.
7383 (get_inner_reference_aff): Likewise.
7384 * tree-affine.c (aff_combination_expand): Split out from
7385 tree_to_aff_combination_expand.
7386 (get_inner_reference_aff): New function.
7387 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9aba5d22
UB
7388 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
7389 (struct lim_aux_data): sm_done field removed.
7390 (mem_ref_loc_p, mem_ref_locs_p): New types.
7391 (struct mem_ref): Added id, stored, accesses_in_loop,
7392 indep_loop, dep_loop, indep_ref, dep_ref fields.
7393 Removed is_stored, locs and next fields.
7394 (memory_accesses): New variable.
7395 (movement_possibility): Do not allow moving statements
7396 that store to memory.
7397 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
7398 New functions.
7399 (determine_max_movement): For statements with memory references,
7400 find the outermost loop in that the reference is independent.
7401 (move_computations_stmt): Mark the virtual operands for renaming.
7402 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
7403 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
7404 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
7405 add_vop_ref_mapping, create_vop_ref_mapping_loop,
7406 create_vop_ref_mapping, analyze_memory_references,
7407 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
7408 get_all_locs_in_loop, ref_always_accessed_p,
7409 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
7410 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
7411 store_motion_loop, store_motion): New functions.
7412 (struct vop_to_refs_elt): New type.
7413 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
7414 memref_hash, memref_eq, hoist_memory_references): Rewritten.
7415 (schedule_sm): Replaced by...
7416 (execute_sm): ... this.
7417 (determine_lsm_ref, hoist_memory_references,
7418 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
7419 find_more_ref_vops, free_mem_ref, free_mem_refs,
7420 determine_lsm_loop, determine_lsm): Removed.
7421 (tree_ssa_lim_finalize): Free data structures used by store motion.
7422 (tree_ssa_lim): Call analyze_memory_references. Use
7423 store_motion instead of determine_lsm.
72425608 7424
a929bc28
PB
74252008-03-27 Paolo Bonzini <bonzini@gnu.org>
7426
7427 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
7428 rename tmake_file to m68hc11/t-m68hc11.
7429 (mcore): Set inhibit_libc to true.
7430 * config.host (alpha*-dec-*vms*): Set extra_programs.
7431 (interix3*): Don't use host_xmake_file.
7432 * configure.ac: Let config.gcc override inhibit_libc.
7433 * configure: Regenerate.
7434
7435 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
7436 * config/t-openbsd-thread: Remove commented out lines.
7437
7438 * config/x-interix: Remove.
7439
7440 * config/m68hc11/t-m68hc11-gas: Rename to...
7441 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
7442
7443 * config/mcore/t-mcore: Remove T_CFLAGS.
7444 * config/mcore/t-mcore-pe: Likewise.
7445
60d26958
PB
74462008-03-27 Paolo Bonzini <bonzini@gnu.org>
7447
7448 * configure.ac: Replace custom __GNU_SOURCE test with
7449 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
7450 * aclocal.m4: Regenerate.
7451 * configure: Regenerate.
7452 * config.in: Regenerate.
7453
bd03c084
RG
74542008-03-27 Richard Guenther <rguenther@suse.de>
7455
7456 * fold-const.c (target.h): Include.
7457 (fold_comparison): Fold comparison of addresses of decls
7458 that bind locally or of constants. Consolidate address folding code.
7459 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
7460 results from fold_binary_to_constant.
7461 (compare_values_warnv): Likewise.
7462
87a72aa8
AP
74632008-03-27 Andrew Pinski <pinskia@gmail.com>
7464
7465 PR middle-end/35429
7466 * fold-const.c (fold_truthop): Check for integeral types when folding
7467 a == 0 && b == 0 and a != 0 || b != 0 .
7468
6e1b3420
EB
74692008-03-26 Eric Botcazou <ebotcazou@adacore.com>
7470
7471 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
7472
33558d94
AS
74732008-03-26 Andreas Schwab <schwab@suse.de>
7474
7475 * doc/invoke.texi: Fix use of @item vs. @itemx.
7476
f6a9a9af
TT
74772008-03-26 Tom Tromey <tromey@redhat.com>
7478
7479 * Makefile.in (build/gensupport.o, build/print-rtl.o,
7480 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
7481 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
7482 build/gencodes.o, build/genconditions.o, build/genconfig.o,
7483 build/genconstants.o, build/genemit.o, build/genextract.o,
7484 build/genflags.o, build/genmddeps.o, build/genopinit.o,
7485 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
7486 options.h.
7487
2041e75c
RG
74882008-03-26 Richard Guenther <rguenther@suse.de>
7489
7490 Revert
7491 2008-03-26 Richard Guenther <rguenther@suse.de>
7492
7493 * fold-const.c (target.h): Include.
7494 (fold_comparison): Fold comparison of addresses of two decls
7495 that bind locally. Consolidate address folding code.
7496
aefa9d43
KG
74972008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7498
7499 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
7500 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
7501 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
7502 dconstsqrt2, dconstthird, dconste and/or dconst10.
7503 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
7504 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
7505 dconstsqrt2, dconste): Delete.
7506 (init_emit_once): Likewise. Simplify initializing dconstm1.
7507 Constify variable.
7508 * real.c (get_real_const): New.
7509 * real.h (dconst3, dconst10, dconstm2, dconstthird,
7510 dconstsqrt2, dconste): Delete.
7511 (real_value_const, get_real_const): New.
7512
35dd7cc3
L
75132008-03-26 H.J. Lu <hongjiu.lu@intel.com>
7514
7515 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
7516
7517 * config/i386/i386.c (ix86_function_arg_boundary): Check
7518 BIGGEST_ALIGNMENT instead of 128.
7519 (setup_incoming_varargs_64): Likewise.
7520
f91ed78d
TT
75212008-03-26 Tom Tromey <tromey@redhat.com>
7522
7523 * Makefile.in (DEPFILES): Add missing '/'.
7524
4990038d
RG
75252008-03-26 Richard Guenther <rguenther@suse.de>
7526
7527 * fold-const.c (target.h): Include.
7528 (fold_comparison): Fold comparison of addresses of two decls
7529 that bind locally. Consolidate address folding code.
7530
813ab1d7
NC
75312008-03-26 Nick Clifton <nickc@redhat.com>
7532
7533 PR target/31232
7534 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
7535 not allow INT+INT as a legitimate addressing mode.
7536
cf3135aa
RG
75372008-03-26 Richard Guenther <rguenther@suse.de>
7538
7539 * tree-flow.h (widen_bitfield): Remove declaration.
7540 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
7541 (widen_bitfield): Remove function.
7542 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
7543 code.
7544
fd88fd09
AP
75452008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
7546
22ec849c 7547 PR target/31558
fd88fd09
AP
7548 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
7549 error_mark_node's.
7550
fb959f72
RS
75512008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
7552
7553 PR rtl-optimization/35232
7554 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
7555 (forget_old_reloads_1, forget_marked_reloads): Don't clear
7556 reg_reloaded_call_part_clobbered here.
7557 (reload_regs_reach_end_p): New function.
7558 (reload_reg_rtx_for_input): New variable.
7559 (reload_reg_rtx_for_output): Likewise.
7560 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
7561 when reassigning a pseudo register. Load reloadreg from
7562 reload_reg_rtx_for_input, moving the mode and register
7563 calculation to...
7564 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
7565 instead of the original when deciding whether an input reload
7566 would be a no-op or whether an output reload can be deleted.
7567 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
7568 when setting up new_spill_reg_store. Load it from
7569 reload_reg_rtx_for_output, moving the mode and register
7570 calculation to...
7571 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
7572 instead of the original when deciding whether an output reload
7573 would be a no-op. Do the same when modifying insn notes.
7574 Use rtx_equal_p instead of == to compare the registers.
7575 (inherit_piecemeal_p): Take a mode and two register numbers
7576 as argument.
7577 (emit_reload_insns): Clear new_spill_reg_store for every hard
7578 register in the reload register. Remove spill registers
7579 from reg_reloaded_valid before considering whether to record
7580 inheritance information for them. Use reload_reg_rtx_for_output
7581 instead of reg_rtx when recording output reloads. Use
7582 reload_reg_rtx_for_input instead of reg_rtx when recording
7583 input reloads. Set or clear reg_reloaded_call_part_clobbered
7584 at the same time as setting reg_reloaded_valid.
7585 (delete_output_reload): Add a new_reload_reg parameter and use it
7586 instead of rld[j].reg_rtx.
7587 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
7588 calls accordingly.
7589
a8c86f3f
TT
75902008-03-25 Tom Tromey <tromey@redhat.com>
7591
7592 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
7593 (build/genattr.o): Likewise.
7594 (build/genattrtab.o): Likewise.
7595 (build/gencodes.o): Likewise.
7596 (build/genconfig.o): Likewise.
7597 (build/genconstants.o): Likewise.
7598 (build/genemit.o): Likewise.
7599 (build/genextract.o): Likewise.
7600 (build/genflags.o): Likewise.
7601
f4d3e7fd
BW
76022008-03-25 Bob Wilson <bob.wilson@acm.org>
7603
7604 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
7605 instead of size_int for integer types.
7606 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
7607 to match type of MINUS_EXPR.
7608
55d059d3
TT
76092008-03-25 Tom Tromey <tromey@redhat.com>
7610
7611 * configure: Rebuilt.
7612 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
7613 Makefile.
7614
2fe3178b
TT
76152008-03-25 Tom Tromey <tromey@redhat.com>
7616
7617 * config/x-solaris (host-solaris.o): Update.
7618 * config/x-linux (host-linux.o): Update.
7619 * config/x-hpux (host-hpux.o): Update.
7620 * config/x-darwin (host-darwin.o): Update.
7621 * config/v850/t-v850e (v850-c.o): Update.
7622 * config/v850/t-v850 (v850-c.o): Update.
7623 * config/t-vxworks (vxworks.o): Update.
7624 * config/t-sol2 (sol2-c.o, sol2.o): Update.
4acc3f42 7625 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2fe3178b
TT
7626 * config/spu/t-spu-elf (spu-c.o): Update.
7627 (spu.o): Remove.
7628 * config/sh/t-symbian (sh-c.o): Update.
7629 (symbian.o): Update.
7630 * config/sh/t-sh (sh-c.o): Update.
7631 * config/score/t-score-elf (score7.o, score3.o): Update.
7632 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
7633 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
7634 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
7635 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
7636 (rs6000.o): Remove.
7637 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
7638 * config/m32c/t-m32c (m32c-pragma.o): Update.
7639 * config/ia64/t-ia64 (ia64-c.o): Update.
7640 * config/i386/x-mingw32 (host-mingw32.o): Update.
7641 * config/i386/x-i386 (driver-i386.o): Update.
7642 * config/i386/x-darwin (host-i386-darwin.o): Update.
7643 * config/i386/x-cygwin (host-cygwin.o): Update.
7644 * config/i386/t-nwld (nwld.o): Update.
7645 * config/i386/t-netware (netware.o): Update.
7646 * config/i386/t-interix (winnt.o): Update.
7647 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
7648 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
7649 msformat-c.o): Update.
7650 * config/bfin/t-bfin-linux (generated_files): Add
7651 linux-sysroot-suffix.h.
7652 * config/arm/t-wince-pe (pe.o): Update.
7653 * config/arm/t-strongarm-pe (pe.o): Update.
7654 * config/arm/t-pe (pe.o): Update.
7655 * config/arm/t-arm (arm-c.o): Update.
7656 * doc/install.texi (Prerequisites): Require make 3.80.
7657 * Makefile.in: Remove .o targets.
7658 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
7659 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
7660 (simple_generated_h, simple_generated_c): Move earlier.
7661 (generated_files): New variable.
7662 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
7663 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
7664 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
7665 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
7666 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
7667 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
7668 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
7669 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
7670 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
7671 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
7672 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
7673 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
7674 (.c.o): Remove.
7675 (COMPILE.base, COMPILE): New variables.
7676 (%.o): New pattern rule.
7677 (ALL_HOST_OBJS): New variable.
7678 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
7679 (dummy-checksum.o, cc1-checksum.o): Remove.
7680 (DRIVER_SHLIB): New variable.
7681 (DRIVER_DEFINES): Use it.
7682 (gencondmd.c): Move out of build/.
7683 (s-conditions): Update.
7684 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
7685 (ALL_BUILD_OBJS): Likewise.
7686 (build/%.o): Use BUILDCOMPILE.
7687 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
7688 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
7689 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
7690 build/gencheck.o, build/gencodes.o, build/genconditions.o,
7691 build/genconfig.o, build/genconstants.o, build/genemit.o,
7692 build/genextract.o, build/genflags.o, build/genmddeps.o,
7693 build/genopinit.o, build/genoutput.o, build/genpeep.o,
7694 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
7695 build/gen-protos.o, build/scan.o, build/fix-header.o,
7696 build/scan-decls.o): Simplify.
7697 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
7698 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
7699 prefix.o, toplev.o): Reduce to variable setting.
4acc3f42 7700 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
2fe3178b 7701 ($(out_object_file), gcc-options.o): New targets.
4acc3f42 7702 ($(ALL_HOST_OBJS)): New target. Include dependency files.
2fe3178b 7703 * configure: Rebuilt.
4acc3f42
UB
7704 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
7705 * doc/sourcebuild.texi (Front End Directory): Document new variable.
2fe3178b 7706
5ade1ed2
DG
77072008-03-25 Douglas Gregor <doug.gregor@gmail.com>
7708
4acc3f42
UB
7709 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
7710 complain when we hit an error, return ERROR_MARK_NODE.
5ade1ed2 7711
de6adfa2
N
77122008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
7713
7714 * config/sh/constraints.md (Pso, Psz): New constraints.
7715 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
7716 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
7717
f326a6cb
N
77182008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
7719
4acc3f42 7720 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
f326a6cb
N
7721 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
7722
b4b0018b
N
77232008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
7724
7725 * config/sh/sh.md (prefetch): Add condition for SH2A target.
7726 (prefetch_sh2a): New.
7727
e990551a
JS
77282008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
7729 Naveen.H.S <naveen.hs@kpitcummins.com>
7730
7731 * config/sh/constraints.md (I28): New constraint.
7732 * config/sh/sh.c (broken_move): Add support for movi20s.
4acc3f42 7733 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
e990551a 7734
561642fa
AP
77352008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
7736 Jayant Sonar <Jayant.sonar@kpitcummins.com>
7737 Naveen.H.S <naveen.hs@kpitcummins.com>
7738
7739 * config/sh/sh.c (SH_ATTRIBUTES): Define.
7740 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
7741 (print_operand): Handle resbank in %@ operand code.
7742 (sh_encode_section_info): New.
7743 (push_regs): Add conditions for resbank.
7744 (sh_expand_epilogue): Likewise.
7745 (sh_insert_attributes): Likewise.
7746 (sh_attribute_table): Likewise.
7747 (sh_handle_resbank_handler_attribute): New.
7748 (sh2a_handle_function_vector_handler_attribute): New.
7749 (sh2a_is_function_vector_call): New.
7750 (sh2a_get_function_vector_number): New.
7751 (sh2a_function_vector_p): New.
7752 (sh_cfun_resbank_handler_p): New.
7753 * config/sh/sh.md (calli): Emit jsr/n if possible.
7754 (calli_tbr_rel): New.
7755 (calli_pcrel): Emit jsr/n if possible.
7756 (return_i): Emit rts/n if possible.
7757 (call_valuei_tbr_rel): New.
7758 (call_valuei_pcrel): Add condition for SH2A target.
7759 (call_value): Likewise.
7760 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
7761 (sh2a_get_function_vector_number): Likewise.
7762 (sh2a_is_function_vector_call): Likewise.
7763 * doc/extend.texi: Document TBR relative addressing of SH2A.
7764 (resbank): Add description for SH2A.
7765
1b24a790
RG
77662008-03-24 Richard Guenther <rguenther@suse.de>
7767
7768 PR c/22371
7769 * gimplify.c (gimplify_modify_expr): For frontend type-correct
7770 pointer assignments change conversions according to middle-end rules.
7771 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
7772 * configure.ac: Include type checking in yes.
7773 * configure: Regenerate.
7774
52249a2e
MLI
77752008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7776
7777 * diagnostic.c (diagnostic_count_diagnostic): Delete.
7778 (diagnostic_report_diagnostic): Update. Handle ICEs here.
7779
37ca4602
NS
77802008-03-24 Nathan Sidwell <nathan@codesourcery.com>
7781
7782 * gthr-vxworks.h (UNUSED): Define.
7783
2ff8644d
L
77842008-03-23 H.J. Lu <hongjiu.lu@intel.com>
7785
9aba5d22 7786 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2ff8644d 7787
1c42f5c6
ZM
77882008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
7789
7790 * doc/extend.texi (Function Attributes): Add missing comma in the
7791 example of the "alloc_size" attribute.
7792
808e68bb
UB
77932008-03-23 Uros Bizjak <ubizjak@gmail.com>
7794
7795 Revert:
7796 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
7797
7798 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7799 32bit host.
7800
7801 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
7802
7803 PR target/35496
7804 * stor-layout.c (update_alignment_for_field): Set minimum alignment
7805 of the underlying type of a MS bitfield layout to the natural
7806 alignment of the type.
7807
7808 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
7809
7810 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7811 to their natural alignment to avoid store forwarding stalls.
7812
1b738915
RG
78132008-03-22 Richard Guenther <rguenther@suse.de>
7814
7815 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
7816 For PHI nodes verify the address is invariant.
7817 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
7818 (get_symbol_constant_value): Use is_gimple_min_invariant.
7819 (maybe_fold_stmt_indirect): Likewise.
7820
18b526e8
RS
78212008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
7822
7823 PR rtl-optimization/33927
7824 * Makefile.in (dse.o): Depend on $(TM_P_H).
7825 * expr.h (extract_low_bits): Declare.
7826 * expmed.c (extract_low_bits): New function.
7827 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
7828 * dse.c: Include tm_p.h.
7829 (find_shift_sequence): Remove the read_reg argument and return the
7830 read value. Emit the instructions instead of returning them.
7831 Iterate on new_mode rather than calculating it each time.
7832 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
7833 source to NEW_MODE and extract_low_bits to convert the shifted
7834 value to READ_MODE.
7835 (replace_read): Allow the load and store to have different mode
7836 classes. Use extract_low_bits when SHIFT == 0. Create the shift
7837 or extraction instructions before trying the replacement. Update
7838 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
7839
48e55066
UB
78402008-03-22 Uros Bizjak <ubizjak@gmail.com>
7841
7842 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
7843 to their natural alignment to avoid store forwarding stalls.
7844
94e98316
AP
78452008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
7846
e8afc0cb 7847 PR target/27946
94e98316
AP
7848 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
7849 encouraging but not allowing gprs for input;
7850 change the input constraint to !f#r.
7851 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
7852 gprs for output;
7853 change the output constraint to !f#r.
7854
7fb1431b
UB
78552008-03-21 Uros Bizjak <ubizjak@gmail.com>
7856
7857 PR target/13958
7858 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
7859 corresponding post-reload splitters.
7860 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
7861 when x87 FP math is selected.
7862 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
7863 New function prototype.
7864 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
7865 unreachable function to ease macroization of insn patterns.
7866
ed2024ba
MJ
78672008-03-21 Martin Jambor <mjambor@suse.cz>
7868
7869 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
7870 reference dumps if ddr is NULL or dependence is unknown.
7871
06644a07
KK
78722008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
7873
7874 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
7875 unsigned extension into account.
7876 (ATOMIC_COMPARE_AND_SWAP): Likewise.
7877 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
7878 Do computations on a scratch register.
7879
ad6003f2
RG
78802008-03-21 Richard Guenther <rguenther@suse.de>
7881
7882 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7883 Use is_gimple_min_invariant instead of TREE_INVARIANT.
7884 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7885 * tree-ssa-dom.c (record_equality): Likewise.
7886 * tree-inline.c (copy_body_r): Likewise.
7887 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
7888 TREE_INVARIANT.
7889
2acdc1fb
KK
78902008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
7891
7892 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
7893 as 'delete_unused' argument.
7894
16ac8575
RG
78952008-03-20 Richard Guenther <rguenther@suse.de>
7896
7897 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
7898 special casing of constant qualifiers.
7899 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
7900 care about them in general.
7901 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
7902 regardless of their type.
7903 (fold_stmt_r): Forcefully fold *& if we end up with that.
7904
433d52fd
PB
79052008-03-20 Paul Brook <paul@codesourcery.com>
7906
7907 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
7908 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
7909 linker flags.
7910 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
7911 definition.
7912 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
7913 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
7914
7621f5d5
VR
79152008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
7916
7917 * common.opt (Wmudflap): New option.
7918 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
7919 (mx_register_decls): Likewise.
7920 (mudflap_finish_file): Likewise.
7921 * doc/invoke.texi: Document -Wno-mudflap.
7922
79232008-03-20 Kai Tietz <kai.tietz@onevision.com>
6590fc9f
KT
7924
7925 * c-format.c (replace_format_name_to_system_name): New.
7926 (cmp_attribs): New.
7927 (convert_format_name_to_system_name): New.
7928 (decode_format_attr): Add use of convert_format_name_to_system_name.
7929 (format_types_orig): Add gnu_ prefix to names.
7930 (check_format_info_main): Special treating of \0 escaped names for
7931 supporting multi-character format specifiers as I32, I64.
7932 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
7933 (gnu_target_overrides_format_attributes): New.
7934 * c-format.h: Add structure target_ovr_attr to hold
7935 system specific formatter names.
7936 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
7937 msformat-c.o file to c_target_objs and cxx_target_objs.
7938 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7939 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
7940 (TARGET_N_FORMAT_TYPES): New.
7941 * config/i386/msformat-c.c: New.
7942 * config/i386/t-cygming: Add build rule for msformat-c.o.
7943 * doc/extend.texi: Add new format names gnu_* and ms_* and
7944 further details.
7945 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
7946
4e359692
IR
79472008-03-20 Ira Rosen <irar@il.ibm.com>
7948
7949 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
7950 optimizations turned on under -O3.
7951 (ftree-vectorize): Add that the flag is turned on with -O3.
7952
41129be2
BE
79532008-03-20 Ben Elliston <bje@au.ibm.com>
7954
7955 * regmove.c (try_auto_increment): Fix spelling error in comment.
7956 * final.c (final_scan_insn): Likewise.
7957
1b1d8f88
UB
79582008-03-20 Uros Bizjak <ubizjak@gmail.com>
7959
7960 PR target/14552
7961 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
7962 allocator preferences for "y" and "r" class registers.
7963 ("*mov<mode>_internal"): Ditto.
7964 ("*movv2sf_internal_rex64"): Ditto.
7965 ("*movv2sf_internal"): Ditto.
7966
05e6ee93
MM
79672008-03-19 Michael Matz <matz@suse.de>
7968
7969 PR middle-end/35616
7970 * calls.c (expand_call): Check overlap of arguments with call
7971 address for sibcalls.
7972
cd7e0bd4
UB
79732008-03-19 Uros Bizjak <ubizjak@gmail.com>
7974
7975 PR target/35496
7976 * stor-layout.c (update_alignment_for_field): Set minimum alignment
7977 of the underlying type of a MS bitfield layout to the natural
7978 alignment of the type.
7979
8ddbbcae
JH
79802008-03-19 Jan Hubicka <jh@suse.cz>
7981
7982 PR other/35094
7983 * toplev.c (decode_d_option): Handle all CPP flags.
7984 * tree-vrp.c: Update tree_pass descriptors.
7985 * regrename.c: Update tree_pass descriptors.
7986 * fwprop.c: Update tree_pass descriptors.
7987 * doc/invoke.texi: Remove documentation of dropped -d? flags.
7988 * tree-into-ssa.c: Update tree_pass descriptors.
7989 * tree-dump.c: Update tree_pass descriptors.
7990 * tree-complex.c: Update tree_pass descriptors.
7991 * tree-dump.h: Update tree_pass descriptors.
7992 * see.c: Update tree_pass descriptors.
7993 * cgraphbuild.c: Update tree_pass descriptors.
7994 * tracer.c: Update tree_pass descriptors.
7995 * tree-loop-distribution.c: Update tree_pass descriptors.
7996 * cgraph.c: Update tree_pass descriptors.
7997 * postreload-gcse.c: Update tree_pass descriptors.
7998 * postreload.c: Update tree_pass descriptors.
7999 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
8000 * tree-tailcall.c: Update tree_pass descriptors.
8001 * tree-pass.h (tree_opt_pass): Rename to ...
8002 (opt_pass) ... this one; add "type" field and remove letter field.
8003 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
8004 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
8005 all_lowering_passes): Update declaration.
8006 * ipa-cp.c: Update tree_pass descriptors.
8007 * final.c: Update tree_pass descriptors.
8008 * omp-low.c: Update tree_pass descriptors.
8009 * tree-ssa-dse.c: Update tree_pass descriptors.
8010 * ipa-reference.c: Update tree_pass descriptors.
8011 * tree-ssa-uncprop.c: Update tree_pass descriptors.
8012 * auto-inc-dec.c: Update tree_pass descriptors.
8013 * reorg.c: Update tree_pass descriptors.
8014 * cgraphunit.c: Update tree_pass descriptors.
8015 * tree-ssa-copyrename.c: Update tree_pass descriptors.
8016 * tree-ssa-ccp.c: Update tree_pass descriptors.
8017 * df-core.c: Update tree_pass descriptors.
8018 * mode-switching.c: Update tree_pass descriptors.
8019 * tree-nomudflap.c: Update tree_pass descriptors.
8020 * modulo-sched.c: Update tree_pass descriptors.
8021 * ipa-pure-const.c: Update tree_pass descriptors.
8022 * cse.c: Update tree_pass descriptors.
8023 * web.c: Update tree_pass descriptors.
8024 * tree-stdarg.c: Update tree_pass descriptors.
8025 * tree-ssa-math-opts.c: Update tree_pass descriptors.
8026 * tree-ssa-dom.c: Update tree_pass descriptors.
8027 * tree-nrv.c: Update tree_pass descriptors.
8028 * tree-ssa-alias.c: Update tree_pass descriptors.
8029 * loop-init.c: Update tree_pass descriptors.
8030 * gimple-low.c: Update tree_pass descriptors.
8031 * ipa-inline.c: Update tree_pass descriptors.
8032 * tree-ssa-sink.c: Update tree_pass descriptors.
8033 * global.c: Update tree_pass descriptors.
8034 * ifcvt.c: Update tree_pass descriptors.
8035 * jump.c: Update tree_pass descriptors.
8036 * predict.c: Update tree_pass descriptors.
8037 * tree-ssa-loop.c: Update tree_pass descriptors.
8038 * recog.c: Update tree_pass descriptors.
8039 * dse.c: Update tree_pass descriptors.
8040 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
8041 * tree-eh.c: Update tree_pass descriptors.
8042 * regmove.c: Update tree_pass descriptors.
8043 * local-alloc.c
8044 * function.c: Update tree_pass descriptors.
8045 * tree-vectorizer.c: Update tree_pass descriptors.
8046 * gcse.c: Update tree_pass descriptors.
8047 * ipa-type-escape.c: Update tree_pass descriptors.
8048 * tree-if-conv.c: Update tree_pass descriptors.
8049 * init-regs.c: Update tree_pass descriptors.
8050 * ipa.c: Update tree_pass descriptors.
8051 * tree-ssa-phiopt.c: Update tree_pass descriptors.
8052 * rtl-factoring.c: Update tree_pass descriptors.
8053 * lower-subreg.c: Update tree_pass descriptors.
8054 * bt-load.c: Update tree_pass descriptors.
8055 * tree-dfa.c: Update tree_pass descriptors.
8056 * except.c: Update tree_pass descriptors.
8057 * emit-rtl.c: Update tree_pass descriptors.
8058 * cfgexpand.c: Update tree_pass descriptors.
8059 * tree-cfgcleanup.c: Update tree_pass descriptors.
8060 * cfgcleanup.c: Update tree_pass descriptors.
8061 * tree-ssa-pre.c: Update tree_pass descriptors.
8062 * tree-sra.c: Update tree_pass descriptors.
8063 * tree-mudflap.c: Update tree_pass descriptors.
8064 * tree-ssa-copy.c: Update tree_pass descriptors.
8065 * cfglayout.c: Update tree_pass descriptors.
8066 * tree-ssa-forwprop.c: Update tree_pass descriptors.
8067 * tree-ssa-dce.c: Update tree_pass descriptors.
8068 * tree-ssa.c: Update tree_pass descriptors.
8069 * regclass.c: Update tree_pass descriptors.
8070 * integrate.c: Update tree_pass descriptors.
8071 * tree-optimize.c: Update tree_pass descriptors.
8072 * tree-ssa-phiprop.c: Update tree_pass descriptors.
8073 * tree-object-size.c: Update tree_pass descriptors.
8074 * combine.c: Update tree_pass descriptors.
8075 * tree-outof-ssa.c: Update tree_pass descriptors.
8076 * bb-reorder.c: Update tree_pass descriptors.
8077 * stack-ptr-mod.c: Update tree_pass descriptors.
8078 * var-tracking.c: Update tree_pass descriptors.
8079 * tree-profile.c: Update tree_pass descriptors.
8080 * tree-vect-generic.c: Update tree_pass descriptors.
8081 * reg-stack.c: Update tree_pass descriptors.
8082 * sched-rgn.c: Update tree_pass descriptors.
8083 * tree-ssa-structalias.c: Update tree_pass descriptors.
8084 * tree-cfg.c: Update tree_pass descriptors.
8085 * passes.c (current_pass): Update declaration.
8086 (finish_optimization_passes): Update.
8087 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
8088 (register_one_dump_file, register_dump_files_1, next_pass_1):
8089 Update arguments.
8090 (init_optimization_passes): Update handling of new types.
8091 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
8092 * ipa-struct-reorg.c: Update tree_pass descriptors.
8093 * tree-ssa-reassoc.c: Update tree_pass descriptors.
8094 * combine-stack-adj.c: Update tree_pass descriptors.
8095 * cfgrtl.c: Update tree_pass descriptors.
8096 * dce.c: Update tree_pass descriptors.
8097 * tree-ssanames.c: Update tree_pass descriptors.
8098
8cb3ee37
RG
80992008-03-19 Richard Guenther <rguenther@suse.de>
8100
8101 PR middle-end/35609
4990038d
RG
8102 * tree-ssa.c (walk_data): New structure.
8103 (warn_uninitialized_var): If not always_executed warn with "maybe"
8cb3ee37
RG
8104 instead of "is".
8105 (execute_early_warn_uninitialized): Compute post-dominators.
8106 Initialize always_executed before processing each basic block.
8107
34614fff
MP
81082008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
8109
8110 PR target/35504
8111 * config/i386/i386.c (x86_this_parameter): Calculate correct location
8112 of "this" pointer when "regparm = N" or "fastcall" is in effect.
8113
c15477fb
RW
81142008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8115
8116 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
8117
ac5dc795
PB
81182008-03-18 Paolo Bonzini <bonzini@gnu.org>
8119
34614fff
MP
8120 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
8121 is true.
8122 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
8123 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
8124 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
8125 target after ignore has been set, and move there also the commputation
8126 of subtarget and original_target.
8127 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8128 (LANG_HOOKS_INITIALIZER): Remove it.
8129 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
ac5dc795 8130
b80280f2
RG
81312008-03-18 Richard Guenther <rguenther@suse.de>
8132
8133 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
8134 found an expression with constants, note that in the VN for the lhs.
8135 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
8136 fold them to constants if possible. Run cleanup_cfg if done so.
8137 (execute_pre): Return todo.
8138 (do_pre): Likewise.
8139 (execute_fre): Likewise.
8140 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
8141 of constants.
8142 (get_prop_source_stmt): Look through pointer conversions.
8143
2e28e797
JH
81442008-03-18 Jan Hubicka <jh@suse.cz>
8145
8146 * tree-pretty-print.c: Include predict.h.
8147 (dump_generic_node): Dump predictor.
8148 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
8149 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
8150 * gimple-low.c (lower_stmt): Likewise.
8151 * expr.c (expand_expr_real): Likewise.
8152 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
8153 them.
8154 (build_predict_expr, build_predict_expr): New.
8155 * predict.h (predictor_name, build_predict_expr): Update.
8156 * c-typeck.c (c_finish_bc_stmt): Add prediction.
8157 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
8158 * predict.def (PRED_CONTINUE): Update hitrate.
8159 * tree.def (PREDICT_EXPR): Define.
8160 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
8161 do not handle BIND_EXPR.
8162 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
8163 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
8164 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
8165 operands.
8166
52f1c7ed
MM
81672008-03-18 Michael Matz <matz@suse.de>
8168
8169 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
8170
c8ae0bec
RG
81712008-03-18 Richard Guenther <rguenther@suse.de>
8172
8173 * tree-gimple.h (is_gimple_invariant_address): Declare.
8174 (is_gimple_constant): Likewise.
8175 * tree-gimple.c (is_gimple_constant): New function.
8176 (is_gimple_invariant_address): Likewise.
8177 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
8178 and is_gimple_invariant_address.
8179 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
8180 previous change.
8181 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
8182 an addressable base.
8183
8119fc93
JJ
81842008-03-18 Jakub Jelinek <jakub@redhat.com>
8185
8186 PR middle-end/35611
8187 * gimplify.c (gimplify_expr): Gimplify second operand of
8188 OMP_ATOMIC_LOAD.
8189
c4e5b5a8
RG
81902008-03-17 Richard Guenther <rguenther@suse.de>
8191
8192 PR tree-optimization/19637
8193 * fold-const.c (fold_unary): Remove restrictions of removing
8194 intermediate pointer-conversions (P2)(P1)P0.
8195 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
8196 conversion to void pointer.
8197 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
8198
fcb9237b
JW
81992008-03-16 James E. Wilson <wilson@tuliptree.org>
8200
8201 PR debug/31510
8202 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
8203 emulated thread local variables.
8204
461f8762
RG
82052008-03-16 Richard Guenther <rguenther@suse.de>
8206
8207 PR middle-end/35607
8208 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8209 expand TREE_INVARIANT operations that are not gimple invariant.
8210
2a31c49c
HPN
82112008-03-16 Hans-Peter Nilsson <hp@axis.com>
8212
8213 * doc/extend.texi (Alignment): Say that the ABI controls
8214 the __alignof__ for non-strict-alignment targets rather
8215 than being a recommendation.
8216
80efdb6a
PB
82172008-03-15 Paul Brook <paul@codesourcery.com>
8218
8219 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
8220 annotations.
8221 (arm_output_fn_unwind): Mark functions that can not be unwound.
8222
ff069900
PB
82232008-03-15 Paul Brook <paul@codesourcery.com>
8224
8225 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
8226 extension instructions.
8227
87e1e42b
RG
82282008-03-15 Richard Guenther <rguenther@suse.de>
8229
8230 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
8231 and fold constant aggregate refs.
8232 (fold_const_aggregate_ref): Handle string constants
8233 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
8234 (evaluate_stmt): Simplify now that ccp_fold folds constant
8235 aggregate refs.
8236
ef87d898
PB
82372008-03-15 Paul Brook <paul@codesourcery.com>
8238
8239 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
8240 (extzv): Use gen_extzv_t2.
8241 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
8242
ed97ddc6
RG
82432008-03-15 Richard Guenther <rguenther@suse.de>
8244
8245 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
8246 (fold_const_aggregate_ref): Likewise.
8247 (get_value): Return NULL if we don't have any values.
8248 (ccp_finalize): Set const_val to NULL after freeing it.
8249 * tree-flow.h (get_symbol_constant_value): Declare.
8250 (fold_const_aggregate_ref): Likewise.
8251 * tree-ssa-sccvn.c (try_to_simplify): Use them.
8252
1fd89060
RG
82532008-03-15 Richard Guenther <rguenther@suse.de>
8254
8255 PR middle-end/35593
8256 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
8257 to not produce negative array indices if not allowed. Add
8258 parameter to indicate that.
8259 (maybe_fold_offset_to_component_ref): Allow negative array
8260 indices only for the first member of a structure.
8261 (maybe_fold_offset_to_reference): Allow negative array indices.
8262 (maybe_fold_stmt_addition): Likewise.
8263
693092fb 82642008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
cd7e0bd4 8265 Anatoly Sokolov <aesok@post.ru>
693092fb 8266
b97d8153 8267 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
693092fb
BH
8268 (avr_arch): Add ARCH_AVR6.
8269 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
8270 (initial_elimination_offset): Initialize and use 'avr_pc_size'
8271 instead of fixed value 2.
8272 (print_operand_address): Use gs() asm specifier instead of pm().
8273 (avr_assemble_integer): (Ditto.).
8274 (avr_output_addr_vec_elt): (Ditto.).
8275 (print_operand): Handle "!" code.
b97d8153 8276 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
693092fb
BH
8277 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
8278 (AVR_HAVE_EIJMP_EICALL): Define.
8279 (AVR_3_BYTE_PC): Redefine.
8280 (AVR_2_BYTE_PC): (Ditto.).
8281 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
8282 (LINK_SPEC): Add atmega2560 and atmega2561.
8283 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
8284 (crtm2561.o).
b97d8153 8285 * config/avr/avr.md (call_insn): Use eicall instead of icall
693092fb
BH
8286 for 3 byte PC devices.
8287 (call_value_insn): (Ditto.).
8288 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
8289 (indirect_jump): Use only for for 2 byte PC devices.
8290 (*tablejump): (Ditto.).
8291 (*indirect_jump_avr6): Add insn.
8292 (*tablejump_rjmp): Don't use for 3 byte PC devices.
b97d8153 8293 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
693092fb
BH
8294 instead of ijmp for 3 byte PC devices.
8295 (__tablejump2__): (Ditto.).
b97d8153 8296 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
693092fb
BH
8297 (MULITLIB_DIRNAMES): (Ditto.).
8298 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
8299
ab555a5b
UB
83002008-03-15 Uros Bizjak <ubizjak@gmail.com>
8301
8302 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
8303 "sse2_umulsidi3". Use V1DI mode for operand 0.
8304 ("mmx_psadbw"): Use V1DI mode for operand 0.
8305 * config/i386/i386-modes.def (V1SI): New vector mode.
8306 * config/i386/i386.c (struct builtin_description)
8307 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
8308 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
8309 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
8310 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
8311 v1di_ftype_v8qi_v8qi type.
8312 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
8313
8314 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
8315 __builtin_ia32_pmuludq]: Fix the mode of return value.
8316
8f78ed0e
RG
83172008-03-15 Richard Guenther <rguenther@suse.de>
8318
8319 PR middle-end/35595
8320 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
8321 being a PHI_NODE.
8322
66e58b33
BW
83232008-03-14 Bob Wilson <bob.wilson@acm.org>
8324
8325 * doc/invoke.texi (Option Summary, Xtensa Options): Document
8326 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
8327 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
8328 unless TARGET_SERIALIZE_VOLATILE is enabled.
8329 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
8330 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
8331 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
8332
896c8b96
RG
83332008-03-14 Richard Guenther <rguenther@suse.de>
8334
8335 PR tree-optimization/34172
8336 * tree-flow.h (refs_may_alias_p): Declare.
8337 (get_single_def_stmt): Likewise.
8338 (get_single_def_stmt_from_phi): Likewise.
8339 (get_single_def_stmt_with_phi): Likewise.
8340 * tree-dfa.c (refs_may_alias_p): New function.
8341 (get_single_def_stmt): Likewise.
8342 (get_single_def_stmt_from_phi): Likewise.
8343 (get_single_def_stmt_with_phi): Likewise.
8344 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
8345 (vn_reference_lookup_1): New helper function.
8346 (vn_reference_lookup): Walk the virtual use-def chain to
8347 continue searching for a match if the def does not alias the
8348 reference we are looking for.
8349
75dd1ae2
DE
83502008-03-14 David Edelsohn <edelsohn@gnu.org>
8351
8352 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
8353 archive and Perzl. Update The Written Word listing.
8354
3d45dd59
RG
83552008-03-14 Richard Guenther <rguenther@suse.de>
8356
8357 PR tree-optimization/34043
8358 PR tree-optimization/33989
8359 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
8360 when doing FRE.
8361 (bitmap_find_leader): Use extra argument to verify dominance
8362 relationship inside a basic-block.
8363 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
8364 (find_leader_in_sets): Adjust.
8365 (create_component_ref_by_pieces): Take extra argument for
8366 dominance check, handle lookup failures.
8367 (find_or_generate_expression): Likewise.
8368 (create_expression_by_pieces): Likewise.
8369 (insert_into_preds_of_block): Adjust.
8370 (create_value_expr_from): If asked for, verify all operands
8371 are in the blocks AVAIL_OUT set.
8372 (make_values_for_stmt): Check for SSA_NAMEs that are life
8373 over an abnormal edge.
8374 (compute_avail): Remove such check.
8375 (do_SCCVN_insertion): New function.
8376 (eliminate): If we do not find a leader suitable for replacement
8377 insert a replacement expression from SCCVN if available.
8378 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
8379 (struct vn_ssa_aux): Add needs_insertion flag.
8380 * tree-ssa-sccvn.c (may_insert): New global flag.
8381 (copy_reference_ops_from_ref): Value-number union member access
8382 based on its size, not type and member if insertion is allowed.
8383 (visit_reference_op_load): For a weak match from union type
8384 punning lookup a view-converted value and insert a SSA_NAME
8385 for that value if that is not found.
8386 (visit_use): Make dumps shorter. Do not disallow value numbering
8387 SSA_NAMEs that are life over an abnormal edge to constants.
8388 (free_scc_vn): Release inserted SSA_NAMEs.
8389 (run_scc_vn): New flag to specify whether insertion is allowed.
8390 Process SSA_NAMEs in forward order.
8391 * tree-ssa-loop-im.c (for_each_index): Handle invariant
8392 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
8393 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
8394 pointer type to/from integral types that do not change the
8395 precision to regular conversions.
8396
52eaae97
UB
83972008-03-13 Uros Bizjak <ubizjak@gmail.com>
8398
8399 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8400 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8401 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
8402 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
75d8b30e
UB
8403 input arguments and the mode of return value. Built-in functions
8404 that operate on whole 64-bit MMX register now use V1DI mode.
52eaae97 8405
5f5f0635
AD
84062008-03-13 Alon Dayan <alond@il.ibm.com>
8407 Olga Golovanevsky <olga@il.ibm.com>
8408
8409 PR tree-optimization/35041
8410 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
8411 to locate the right position in a statement.
8412
1359ef39
UB
84132008-03-13 Uros Bizjak <ubizjak@gmail.com>
8414
8415 PR target/34000
8416 PR target/35553
8417 * config/i386/xmmintrin.h: Change all static inline functions to
8418 extern inline and add __gnu_inline__ attribute.
8419 * config/i386/bmintrin.h: Ditto.
8420 * config/i386/smmintrin.h: Ditto.
8421 * config/i386/tmmintrin.h: Ditto.
8422 * config/i386/mmintrin-common.h: Ditto.
8423 * config/i386/ammintrin.h: Ditto.
8424 * config/i386/emmintrin.h: Ditto.
8425 * config/i386/pmmintrin.h: Ditto.
8426 * config/i386/mmintrin.h: Ditto.
8427 * config/i386/mm3dnow.h: Ditto.
8428
d0fb20be
JJ
84292008-03-13 Jakub Jelinek <jakub@redhat.com>
8430
8431 PR middle-end/35185
8432 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
8433 (lower_omp_2): New function.
8434 (lower_omp_1, lower_omp): Rewritten.
8435
20cef83a
DS
84362008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
8437
8438 PR 35054
8439 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
8440 with the phrase "Microsoft Windows compilers".
8441 (Push/Pop Macro Pragmas): New subsection. Document
8442 #pragma push_macro and pragma pop_macro.
8443
5dea0c19
PB
84442008-03-12 Paul Brook <paul@codesourcery.com>
8445
8446 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
8447
d1b85efb
PB
84482008-03-12 Paul Brook <paul@codesourcery.com>
8449
8450 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
8451 (thumb2_alusi3_short): Exclude PLUS and MINUS.
8452 (thumb2_addsi_shortim): Rename ...
8453 (thumb2_addsi_short): ... to this. Allow register operands.
8454 (thumb2_subsi_short): New pattern.
8455 (thumb2_one_cmplsi2_short,
8456 thumb2_negsi2_short): New patterns and peepholes.
8457
09754904
PB
84582008-03-12 Paul Brook <paul@codesourcery.com>
8459
09754904
PB
8460 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
8461
a7438d6d
UB
84622008-03-12 Uros Bizjak <ubizjak@gmail.com>
8463
8464 * config/i386/i386.md (int_cond): New code iterator.
8465 (fp_cond): Ditto.
8466 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
8467 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
8468 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
8469 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
8470 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
8471 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
8472 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
8473 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
8474
954954d1
PB
84752008-03-12 Paul Brook <paul@codesourcery.com>
8476
8477 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
8478 instead of {arm,thumb}_compute_save_reg_mask.
8479 (output_return_instruction): Ditto.
8480 (thumb_unexpanded_epilogue): Ditto.
8481 (thumb1_expand_prologue): Ditto.
8482 (thumb1_output_function_prologue): Ditto.
8483 (arm_set_return_address): Ditto.
8484 (thumb_set_return_address): Ditto.
8485 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
8486 regs to achieve stack alignment.
8487 (thumb1_compute_save_reg_mask): Fix compiler warning.
8488 (arm_output_epilogue): Use offsets->saved_regs_mask.
8489 Adjust stack pointer by poping call clobered registers.
8490 (arm_expand_prologue): Use offsets->saved_regs_mask.
8491 Adjust stack pointer by pushing extra registers.
d0fb20be 8492 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
954954d1 8493
c83bd37c
PB
84942008-03-12 Paolo Bonzini <bonzini@gnu.org>
8495
8496 PR tree-opt/35422
8497 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
8498 conversion to the operands of a multiplication.
8499
67514449
RG
85002008-03-12 Richard Guenther <rguenther@suse.de>
8501
8502 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
8503 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
8504 * timevar.def (TV_TREE_PHIPROP): Add.
8505 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
8506 pass description. Use TV_TREE_PHIPROP.
8507 * tree-ssa-forwprop.c: Remove phiprop code.
8508
7c8f7639
JJ
85092008-03-12 Jakub Jelinek <jakub@redhat.com>
8510
8511 PR middle-end/35549
8512 * omp-low.c (maybe_lookup_decl): Constify first argument.
8513 (use_pointer_for_field): Change last argument from bool to
8514 omp_context *. Disallow shared copy-in/out in nested
8515 parallel if decl is shared in outer parallel too.
8516 (build_outer_var_ref, scan_sharing_clauses,
8517 lower_rec_input_clauses, lower_copyprivate_clauses,
8518 lower_send_clauses, lower_send_shared_vars): Adjust callers.
8519
62878103
VK
85202008-03-12 Victor Kaplansky <victork@il.ibm.com>
8521 Ira Rosen <irar@il.ibm.com>
8522
8523 * tree-vectorizer.c (free_stmt_vec_info): New function.
8524 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
8525 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
8526 * tree-vectorizer.h (free_stmt_vec_info): Declare.
8527 * tree-vect-transform.c (vectorizable_conversion): Free
8528 vec_oprnds0 if it was allocated.
8529 (vect_permute_store_chain): Remove unused VECs.
8530 (vectorizable_store): Free VECs that are allocated in the..
8531 function.
8532 (vect_transform_strided_load, vectorizable_load): Likewise.
8533 (vect_remove_stores): Simplify the code.
8534 (vect_transform_loop): Move code to vect_remove_stores().
8535 Call vect_remove_stores() and free_stmt_vec_info().
8536
9dbd54be
JDA
85372008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8538
8539 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
8540 TARGET_HPUX. Revise comment.
8541 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
8542 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
8543 Use sr4 variant of `be' instruction when not generating PIC code.
8544 (attr_length_call): Adjust for above change.
8545
76a7d3ca
AP
85462008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
8547
8548 * ipa-reference.c (static_execute): Remove module_statics_const and
8549 associated setting code.
8550
40cca4f9
UB
85512008-03-11 Uros Bizjak <ubizjak@gmail.com>
8552
8553 PR target/35540
8554 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1b1d8f88
UB
8555 predicate for operand 1.
8556 (paritysi2_cmp): Use register_operand predicate for operand 2.
40cca4f9
UB
8557 Use earlyclobber modifier for operand 1. Remove support for
8558 memory operands.
1b1d8f88 8559 (paritydi2_cmp): Use register_operand predicate for operand 3.
40cca4f9
UB
8560 Use earlyclobber modifier for operand 1. Remove support for
8561 memory operands.
8562
ec6237e4 85632008-03-11 Paul Brook <paul@codesourcery.com>
40cca4f9 8564 Vladimir Prus <vladimir@codesourcery.com>
ec6237e4
PB
8565
8566 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
8567 (arm_compute_save_reg0_reg12_mask): Always
8568 check if register 11 must be saved. Always safe hard frame pointer
8569 when frame_pointer_needeed.
8570 (arm_compute_save_reg_mask): Save IP and PC
8571 only with apcs frames.
8572 (arm_output_epilogue): Adjust Thumb2 codepath to
8573 be also invoked and work for ARM non-apcs frames.
8574 (arm_expand_prologue): Don't bother saving IP
8575 for non-apcs frame, since it's not clobbered by
8576 prologue code. Implement non-apcs frame
8577 layout.
8578
2f6025a1
PB
85792008-03-11 Paolo Bonzini <bonzini@gnu.org>
8580
8581 PR rtl-optimization/35281
8582 * expr.c (convert_move): Use a new pseudo for the intermediate
8583 from_mode->word_mode result.
8584
30e257e5
PB
85852008-03-11 Paolo Bonzini <bonzini@gnu.org>
8586
ec6237e4
PB
8587 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
8588 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
8589 * toplev.c (compile_file): Don't call it.
30e257e5 8590
ab669042
UB
85912008-03-11 Uros Bizjak <ubizjak@gmail.com>
8592
8593 PR middle-end/35526
8594 * expr.c (store_expr): Call emit_block_move if the mode
8595 of "temp" RTX is BLKmode.
8596
1ffe34d9 85972008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
ab669042 8598 Richard Guenther <rguenther@suse.de>
1ffe34d9
AP
8599
8600 PR tree-optimization/31358
8601 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
8602 the step with a NULL_TREE.
8603 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
8604 to sizetype if type is a pointer type.
8605 (add_candidate_1): Don't convert the base and step to
8606 the generic type if the orginal type is a pointer type.
8607 (add_iv_value_candidates): Use sizetype for the step
8608 if type is a pointer type.
8609 (cand_value_at): Likewise.
8610 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8611 for pointer types.
8612 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
8613 Don't convert the tem affine to the type.
8614 (add_elt_to_tree): Use sizetype for the step if a pointer.
8615 Use POINTER_PLUS_EXPR for pointers.
8616 (aff_combination_to_tree): Use sizetype for the step if a
8617 pointer.
8618
dd6d5236
VM
86192008-03-10 Vladimir Makarov <vmakarov@redhat.com>
8620
8621 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
8622 Remove commutativity hint.
8623
8b46837c
JJ
86242008-03-10 Jakub Jelinek <jakub@redhat.com>
8625
5df27e4a
JJ
8626 PR c/35438
8627 PR c/35439
8628 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
8629 errorneous type. Check that v is a VAR_DECL.
8630
8b46837c
JJ
8631 PR middle-end/35099
8632 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
8633
725c2d32
L
86342008-03-10 H.J. Lu <hongjiu.lu@intel.com>
8635
8636 PR tree-optimization/35494
8637 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
8638 may be overriden at link and run time.
8639
3ba404df
RG
86402008-03-10 Richard Guenther <rguenther@suse.de>
8641
8642 PR tree-optimization/34677
8643 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
8644 (poolify_tree): Likewise.
8645 (modify_expr_template): Likewise.
8646 (poolify_modify_stmt): Likewise.
8647 (insert_fake_stores): Handle all component-ref style stores
8648 in addition to INDIRECT_REF. Also handle complex types.
8649 Do not poolify the inserted load.
8650 (realify_fake_stores): Do not rebuild the tree but only
8651 make it a SSA_NAME copy.
8652 (init_pre): Remove initialzation of modify_expr_template.
8653 Do not allocate modify_expr_node_pool.
8654 (fini_pre): Do not free modify_expr_node_pool.
8655
97e38a92
PB
86562008-03-10 Paul Brook <paul@codesourcery.com>
8657
8658 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
8659 to avoid conflicts.
8660
bd4dc3cd 86612008-03-10 Paul Brook <paul@codesourcery.com>
ab669042 8662 Mark Shinwell <shinwell@codesourcery.com>
bd4dc3cd 8663
bd4dc3cd
PB
8664 * config/arm/cortex-r4.md: New.
8665 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
8666 insn attributes.
8667 * config/arm/arm.md: Include cortex-r4.md.
8668 (insn): Add smmls, sdiv and udiv values.
8669 (generic_sched): Don't use generic scheduling for Cortex-R4.
8670 (arm_issue_rate): New function.
8671 (TARGET_SCHED_ISSUE_RATE): Define.
8672
9886a872
SP
86732008-03-10 Sebastian Pop <sebastian.pop@amd.com>
8674
8675 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
8676
e5eff6a3
RG
86772008-03-10 Richard Guenther <rguenther@suse.de>
8678
8679 * tree-ssa-pre.c (get_sccvn_value): Simplify.
8680 (compute_avail): Do not add stmt uses to AVAIL_OUT.
8681
0d4c700c
PB
86822008-03-10 Paolo Bonzini <bonzini@gnu.org>
8683
8684 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
8685 Set default to true.
8686
802e3f8c
RW
86872008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8688
8689 * c.opt (Wsynth): Deprecate.
8690 * doc/invoke.texi (Option Summary, Warning Options): Document
8691 -Wno-format-contains-nul.
8692
be3d4789
UB
86932008-03-09 Uros Bizjak <ubizjak@gmail.com>
8694
8695 PR target/35496
3b509e33 8696 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
be3d4789
UB
8697 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
8698
e83a75a7
IR
86992008-03-09 Ira Rosen <irar@il.ibm.com>
8700
8701 * config/rs6000/rs6000.c (builtin_description): Rename vector
8702 left shift operations.
8703 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
8704 (altivec_vsl<VI_char>): Rename to ...
8705 (ashl<mode>3): ... new name.
8706 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
8707 gen_ashlv4si3.
8708 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
8709
fc9161c1
RG
87102008-03-08 Richard Guenther <rguenther@suse.de>
8711
8712 * coverage.h (tree_coverage_counter_addr): Declare.
8713 * coverage.c (tree_coverage_counter_addr): New function.
8714 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
8715 before using again.
8716 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
8717 (tree_gen_one_value_profiler): Likewise.
8718 (tree_gen_ic_profiler): Likewise.
8719 (tree_gen_average_profiler): Likewise.
8720 (tree_gen_ior_profiler): Likewise.
8721
49a1fb2d
RG
87222008-03-08 Richard Guenther <rguenther@suse.de>
8723
8724 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
8725 (vn_binary_op_insert): Likewise.
8726 (vn_unary_op_lookup): Likewise.
8727 (vn_unary_op_insert): Likewise.
8728 (vn_nary_op_lookup): Declare.
8729 (vn_nary_op_insert): Likewise.
8730 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
8731 and binary hashes, use a single obstack for unary_op_pool
8732 and binary_op_pool.
8733 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
8734 a single struct vn_nary_op_s. Store tree code length and
8735 a variable number of operands.
8736 (struct vn_reference_op_struct): Remove unused op2.
8737 (vn_reference_op_eq): Do not compare op2.
8738 (vn_reference_op_compute_hash): Do not compute hash of op2.
8739 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
8740 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
8741 with vn_nary_op_compute_hash.
8742 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
8743 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
8744 vn_nary_op_lookup.
8745 (vn_unary_op_insert, vn_binary_op_insert): Replace with
8746 vn_nary_op_insert.
8747 (visit_unary_op): Call nary functions.
8748 (visit_binary_op): Likewise.
8749 (process_scc): Adjust for struct vn_tables_s changes.
8750 (allocate_vn_table): Likewise.
8751 (free_vn_table): Likewise.
8752 * tree-vn.c (vn_add): Call nary functions.
8753 (vn_lookup): Likewise.
8754
2725b75c
JJ
87552008-03-08 Jakub Jelinek <jakub@redhat.com>
8756
8757 PR target/35498
8758 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
8759 wdst back after sync_compare_and_swapqhi_internal.
8760
10a97ae6
UB
87612008-03-08 Uros Bizjak <ubizjak@gmail.com>
8762
8763 PR target/22152
8764 * config/i386/i386-modes.def (V1DI): New vector mode.
8765 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
8766 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
8767 (MMXMODE248): Ditto.
8768 (MMXMODE): Add V1DI mode.
8769 (mmxvecsize): Change DI mode to V1DI mode.
8770 ("mov<mode>): Use MMXMODEI8 mode iterator.
8771 ("*mov<mode>_internal_rex64"): Ditto.
8772 ("*mov<mode>_internal"): Ditto.
8773 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
8774 ("mmx_sub<mode>3"): Ditto.
8775 ("mmx_adddi3"): Remove insn pattern.
8776 ("mmx_subdi3"): Ditto.
8777 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
8778 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
8779 ("mmx_ashl<mode>3"): Ditto.
8780 ("mmx_lshrdi3"): Remove insn pattern.
8781 ("mmx_ashldi3"): Ditto.
8782 * config/i386/i386.c (classify_argument): Handle V1DImode.
8783 (function_arg_advance_32): Ditto.
8784 (function_arg_32): Ditto.
8785 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
8786 mmx_addv1di3 insn pattern.
8787 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
8788 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
8789 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
8790 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
8791 Remove definitions of built-in functions.
8792 (V1DI_type_node): New node.
8793 (v1di_ftype_v1di_int): Ditto.
8794 (v1di_ftype_v1di_v1di): Ditto.
8795 (v2si_ftype_v2si_si): Ditto.
8796 (v4hi_ftype_v4hi_di): Remove node.
8797 (v2si_ftype_v2si_di): Ditto.
8798 (ix86_init_mmx_sse_builtins): Handle V1DImode.
8799 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
8800 Redefine builtins using def_builtin_const with *_ftype_*_int node.
8801 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
8802 Add new builtins using def_builtin_const.
8803 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
8804 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
8805 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
8806 * config/i386/mmintrin.h (__v1di): New typedef.
8807 (_mm_add_si64): Cast arguments to __v1di type.
8808 (_mm_sub_si64): Ditto.
8809 (_mm_sll_pi16): Cast __count to __v4hi type.
8810 (_mm_sll_pi32): Cast __count to __v2si type.
8811 (_mm_sll_si64): Cast arguments to __v1di type.
8812 (_mm_srl_pi16): Cast __count to __v4hi type.
8813 (_mm_srl_pi32): Cast __count to __v2si type.
8814 (_mm_srl_si64): Cast arguments to __v1di type.
8815 (_mm_sra_pi16): Cast __count to __v4hi type.
8816 (_mm_sra_pi32): Cast __count to __v2si type.
8817 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
8818 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
8819 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
8820 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
8821 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
8822 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
8823 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
8824 (_mm_srai_pi32): Use __builtin_ia32_psradi.
8825 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
8826 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
8827 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
8828 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
8829
08c3b5b0
JM
88302008-03-07 Joseph Myers <joseph@codesourcery.com>
8831
8832 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
8833
efc05e3c
PB
88342008-03-07 Peter Bergner <bergner@vnet.ibm.com>
8835
8836 PR target/35373
8837 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
8838 reg+const addressing for Altivec modes. Don't generate reg+reg
8839 addressing for TFmode or TDmode quantities.
8840
cf7bc668
PB
88412008-03-07 Paolo Bonzini <bonzini@gnu.org>
8842
8843 * c-common.c (vector_types_convertible_p): Call langhook
8844 instead of comptypes.
8845
b0940154
AP
88462008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
8847
8848 PR tree-opt/35402
8849 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
8850 integral and scalar float variables which have a
8851 NULL DECL_INITIAL.
8852
48081aae
NF
88532008-03-06 Nathan Froyd <froydnj@codesourcery.com>
8854
8855 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
8856 dwarf_register_span hook when emitting unwind information for
8857 register-to-memory saves.
8858 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
8859 (rs6000_frame_related): Remove call to spe_synthesize_frame.
8860
251923f5
JJ
88612008-03-06 Jakub Jelinek <jakub@redhat.com>
8862
8863 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
8864 for the same VAR_DECL.
8865
e8645a40
TT
88662008-03-06 Tom Tromey <tromey@redhat.com>
8867
8868 * treelang: Delete.
8869 * doc/standards.texi (Standards): Don't mention treelang.
8870 * doc/invoke.texi (Overall Options): Don't mention treelang.
8871 * doc/install.texi (Prerequisites): Don't mention bison or
8872 treelang.
8873 (Configuration): Don't mention treelang.
8874 (Building): Likewise.
8875 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
8876
97efb03a
PB
88772008-03-06 Paolo Bonzini <bonzini@gnu.org>
8878
8879 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
8880 word-extractions out of a multi-word object.
8881
fc0f49f3
RG
88822008-03-06 Richard Guenther <rguenther@suse.de>
8883
8884 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
8885 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
8886 result type and precision.
8887 * expr.c (get_inner_reference): Set unsignedp based on the result
8888 type of BIT_FIELD_REF.
8889 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
8890 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
8891 (try_instantiate_multiple_fields): Likewise. Use the correct type
8892 for BIT_FIELD_REF.
8893 (sra_build_assignment): Likewise.
8894 (sra_build_elt_assignment): Likewise.
8895 (sra_explode_bitfield_assignment): Likewise.
8896 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
8897 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
8898 set BIT_FIELD_REF_UNSIGNED.
8899 (vectorizable_load): Likewise.
8900
e186ff69
AK
89012008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
8902
8903 * cse.c (cse_extended_basic_block): Invalidate artificial defs
8904 at bb start.
8905
4c067742
RG
89062008-03-06 Richard Guenther <rguenther@suse.de>
8907
8908 * alias.c (struct alias_set_entry): Move has_zero_child field
8909 to pack with alias_set.
8910
23880b97
L
89112008-03-05 H.J. Lu <hongjiu.lu@intel.com>
8912
8913 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8914 32bit host.
8915
6ab81302
ILT
89162008-03-05 Ian Lance Taylor <iant@google.com>
8917
8918 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
8919
4218dc2d 89202008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
ca9052ce
KZ
8921
8922 * fwprop.c (update_df): Support width and offset parameters of
8923 df_ref_create.
8924 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
8925 global_conflicts): Change DF_REF_EXTRACT to either
8926 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
8927 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8928 * df-scan.c (df_ref_record, df_defs_record,
8929 df_ref_create_structure, df_def_record_1, df_uses_record,
8930 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
8931 df_bb_refs_collect, df_entry_block_defs_collect,
8932 df_exit_block_uses_collect): Support new width and offset fields.
8933 (ref_extract_pool): New storage pool.
8934 (df_free_ref): New function.
8935 (df_reg_chain_unlink, df_free_collection_rec,
8936 df_sort_and_compress_refs): Call df_free_ref.
8937 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
8938 of df_ref_extract.
8939 (df_ref_create_structure): Allocate df_ref_extract if offset and
8940 width fields are used.
8941 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
8942 (df_uses_record): Get offset and width from ZERO_EXTRACT
8943 and SIGN_EXTRACT.
8944 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
8945 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
8946 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8947 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
8948 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
8949 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
8950 (df_ref_extract): New structure.
8951 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
8952 (df_ref_create): Add width and offset parameters.
8953
63d195d5
RG
89542008-03-05 Richard Guenther <rguenther@suse.de>
8955
8956 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8957 Use ranges_overlap_p.
8958 (offset_overlaps_with_access): Rename
8959 to ranges_overlap_p and move ...
8960 * tree-flow-inline.h (ranges_overlap_p): ... here.
8961
8962 * tree.h (get_inner_reference, handled_component_p): Update
8963 comments.
8964
8965 * tree.h (record_component_aliases, get_alias_set,
8966 alias_sets_conflict_p, alias_sets_must_conflict_p,
8967 objects_must_conflict_p): Move declarations ...
8968 * alias.h (record_component_aliases, get_alias_set,
8969 alias_sets_conflict_p, alias_sets_must_conflict_p,
8970 objects_must_conflict_p): ... here.
8971 Include coretypes.h.
8972 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
8973
ea7e6d5a
AH
89742008-03-05 Aldy Hernandez <aldyh@redhat.com>
8975
8976 * cfg.c: Include tree-flow.h.
8977 (remove_edge_raw): Call redirect_edge_var_map_clear.
8978 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
8979 * tree-flow-inline.h (redirect_edge_var_map_def): New.
8980 (redirect_edge_var_map_result): New.
8981 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
8982 PENDING_STMT use with redirect_edge_var_map_*.
8983 * tree-ssa.c (edge_var_maps): New definition.
8984 (redirect_edge_var_map_add): New.
8985 (redirect_edge_var_map_clear): New.
8986 (redirect_edge_var_map_dup): New.
8987 (redirect_edge_var_map_vector): New.
8988 (redirect_edge_var_map_destroy): New.
8989 (ssa_redirect_edge): Replace PENDING_STMT use with
8990 redirect_edge_var_map_*.
8991 (flush_pending_stmts): Same.
8992 (delete_tree_ssa): Destroy edge var map.
8993 * tree-flow.h (struct _edge_var_map): New.
8994 Define edge_var_map vector type.
8995 Declare redirect_edge_var_map_* prototypes.
8996 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
8997 * tree-cfg.c (reinstall_phi_args): Replace
8998 PENDING_STMT use with redirect_edge_var_map_*.
8999
1bdcf037
RG
90002008-03-05 Richard Guenther <rguenther@suse.de>
9001
9002 PR tree-optimization/35472
9003 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
9004 whose single use_stmt has a overlapping set of loaded and
9005 stored symbols as that use_stmt might be a noop assignment then.
9006
fec5fe47
JS
90072008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
9008
9009 * gthr-rtems.h: Implement __gthread_mutex_destroy.
9010
e55f42fb
RG
90112008-03-05 Richard Guenther <rguenther@suse.de>
9012
9013 PR c++/35336
9014 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
9015 should be constants.
9016 * tree-cfg.c (verify_expr): Verify it.
9017 * fold-const.c (fold_truthop): Remove code generating
9018 BIT_FIELD_REFs of structure bases.
9019 (fold_binary): Likewise.
9020 (fold_ternary): Position and size of BIT_FIELD_REFs are
9021 always host integers.
9022 (make_bit_field_ref): Remove.
9023 (optimize_bit_field_compare): Remove.
9024 (all_ones_mask_p): Remove.
9025
1da266fe
GL
90262008-03-05 Gabor Loki <loki@gcc.gnu.org>
9027
9028 PR gcc/33009
9029 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
9030 (split_block_and_df_analyze): New. Split basic block and rebuild
9031 dataflow.
9032 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
9033 SPLIT_BLOCK.
9034 (split_pattern_seq): Likewise.
9035 (erase_matching_seqs): Likewise.
9036 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
9037
07c40d0b
GK
90382008-03-04 Geoff Keating <geoffk@apple.com>
9039
9040 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
9041 declaration and code.
9042 (tree_invalid_nonnegative_warnv_p): Likewise.
9043
4c754988
SB
90442008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
9045
9046 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
9047 examples. Truncate option-names then causing overfull hbox.
9048
399fe3e1
JDA
90492008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9050
9051 PR target/35222
9052 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
9053 on hpux10.
9054 * configure: Rebuilt.
9055
e918a58a
RAE
90562008-03-04 Rafael Espindola <espindola@google.com>
9057
9058 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
9059 (tree_unary_nonnegative_warnv_p): New.
9060 (tree_binary_nonnegative_warnv_p): New.
9061 (tree_single_nonnegative_warnv_p): New.
9062 (tree_invalid_nonnegative_warnv_p): New.
9063 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
9064
ee8ea087
MLI
90652008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9066
9067 PR 28322
9068 * opts.c (handle_option): Postpone 'unknown option' errors only for
9069 warning options.
9070
b5220972
L
90712008-03-04 H.J. Lu <hongjiu.lu@intel.com>
9072
9073 PR target/35453
9074 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
9075 (_SIDD_XXX): This.
9076
74dd418c
RAE
90772008-03-04 Rafael Espindola <espindola@google.com>
9078
9079 * fold-const.c (tree_unary_nonzero_warnv_p): New.
9080 (tree_binary_nonzero_warnv_p): New.
9081 (tree_single_nonzero_warnv_p): New.
9082 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
9083
5ce0e197
UB
90842008-03-04 Uros Bizjak <ubizjak@gmail.com>
9085
9086 PR middle-end/35456
9087 * fold-const.c (fold_cond_expr_with_comparison): Prevent
9088 transformations for modes that have signed zeros.
9089 * ifcvt.c (noce_try_abs): Ditto.
9090
2c7c6f54
JM
90912008-03-04 Joseph Myers <joseph@codesourcery.com>
9092
9093 * config/i386/i386.c (override_options): Force
9094 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
9095
b7884852
JH
90962008-03-04 Jan Hubicka <jh@suse.cz>
9097
9098 PR c++/35262
9099 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
9100 in last commit.
9101
ab65b56b
DS
91022008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
9103
9104 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
cd7e0bd4 9105 label to probe the stack.
ab65b56b 9106
c262f705
DS
91072008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
9108
9109 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
9110 (__gthr_win32_mutex_destroy): Declare.
9111 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
9112 __gthr_win32_mutex_destroy.
9113 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
9114
44682fab
JH
91152008-03-03 Jan Hubicka <jh@suse.cz>
9116
9117 PR c++/35262
9118 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
9119 aggressive on inlining cold calls.
9120
9a327766
RG
91212008-03-03 Richard Guenther <rguenther@suse.de>
9122
9123 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
9124 struct copies into the expression table.
9125 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
9126 (try_to_simplify): Likewise.
9127 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
9128 integral and pointer arguments which do not change the
9129 precision to NOP_EXPRs.
9130 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
9131 VIEW_CONVERT_EXPR case.
9132
6a732743
SP
91332008-03-02 Sebastian Pop <sebastian.pop@amd.com>
9134
9135 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
9136 defined in a loop at depth 0 is invariant.
9137 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
9138 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
9139 be called at loop depth 0.
9140
0e5997c0
JJ
91412008-03-02 Jakub Jelinek <jakub@redhat.com>
9142
9143 PR driver/35420
9144 * gcc.c (process_command): Update copyright notice dates.
9145 * gcov.c (print_version): Likewise.
9146 * gcov-dump.c (print_version): Likewise.
9147 * mips-tfile.c (main): Likewise.
9148 * mips-tdump.c (main): Likewise.
9149
393eda6a
MLI
91502008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9151
9152 PR 24924
9153 * c-common.c (flag_permissive): Delete.
9154 (constant_expression_warnings): Check flags first.
9155 (constant_expression_error): New.
9156 * c-common.h (flag_permissive): Delete.
9157 (constant_expression_error): Declare.
9158 * flags.h (flag_permissive): Declare. Update description.
9159 * diagnostic.c (pedwarn): Update.
9160 (permerror): New.
9161 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
9162 (permissive_error_kind): New.
9163 * toplev.c (flag_permissive): Define. Update description.
9164 * toplev.h (permissive_error_kind): Declare.
9165 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
9166 (pedwarn_c90): Use pedantic_warning_kind.
9167 * c-opts.c (c_common_post_options): flag_permissive does not affect
9168 flag_pedantic_errors.
9169
9677aa89
JM
91702008-03-02 Joseph Myers <joseph@codesourcery.com>
9171
9172 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
9173 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
9174 __absvsi2, __absvDI2): Use unsigned arithmetic.
9175
f3130d75 91762008-03-02 Andi Kleen <ak@suse.de>
ab669042 9177 Richard Guenther <rguenther@suse.de>
f3130d75
AK
9178
9179 * struct-equiv.c: Remove file.
9180 * cfg_cleanup.c (condjump_equiv_p): Remove.
9181 * Makefile.in (OBJS-common): Remove struct-equiv.o.
9182 (struct-equiv.o): Remove rule.
9183 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
9184 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
9185 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
9186
89c3cbc6
AO
91872008-03-01 Alexandre Oliva <aoliva@redhat.com>
9188
9189 * ifcvt.c (noce_process_if_block): Try to handle only the then
9190 block if the else block exists but isn't suitable.
9191
5eb4a9af
JB
91922008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
9193
9194 PR gcc/35063
9195 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
9196 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
9197 regression from previous patch.
9198
4dabf736
JB
91992008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
9200
9201 PR gcc/35063
9202 * gthr.h: Add __gthread_mutex_destroy as a function that must be
9203 implemented.
9204 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
9205 * gthr-single.h (__gthread_mutex_destroy): Likewise.
9206 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
9207 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
9208 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
9209 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
9210 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
9211 (__gthread_mutex_destroy_function): Rename to
9212 __gthread_mutex_destroy.
9213 * gthr-dce.h (__gthread_mutex_destroy): Call
9214 pthread_mutex_destroy.
9215 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
9216 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
9217 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
9218
63642d5a
AO
92192008-03-01 Alexandre Oliva <aoliva@redhat.com>
9220
9221 * df-scan.c (df_ref_chain_change_bb): Simplify.
9222 (df_insn_change_bb): Add new_bb argument. Simplify. Call
9223 set_block_for_insn if there's any change.
9224 * df.h ((df_insn_change_bb): Fix prototype.
9225 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
9226 df_insn_change_bb, don't call set_block_for_insn.
9227 * emit-rtl.c (reorder_insns): Likewise.
9228 * haifa-sched.c (move_insn): Likewise.
9229
e0651058
AO
92302008-03-01 Alexandre Oliva <aoliva@redhat.com>
9231
9232 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
9233
d2b6be72
AO
92342008-03-01 Alexandre Oliva <aoliva@redhat.com>
9235
9236 * tree-flow-inline.h (next_readonly_imm_use): Return
9237 NULL_USE_OPERAND_P after the end.
9238
2fb5f2af
RG
92392008-03-01 Richard Guenther <rguenther@suse.de>
9240
9241 PR tree-optimization/35411
9242 * tree-sra.c (sra_build_assignment): Split conversion to
9243 final type to a separate statement if we are not assigning
9244 to a register.
9245
c17ee676
FXC
92462008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
9247
9248 * fold-const.c (fold_convertible_p): Correct the logic to follow
9249 that in fold_convert().
9250
f31c9f09
DG
92512008-02-29 Douglas Gregor <doug.gregor@gmail.com>
9252
9253 PR c++/35315
9254 * tree-inline.c (build_duplicate_type): When we make a
9255 duplicate type, make it unique in the canonical types system.
9256
966e8f4d
TT
92572008-02-29 Tom Tromey <tromey@redhat.com>
9258
9259 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
9260 input_file_stack_history, input_file_stack_restored): Remove.
9261 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9262 * input.h (struct file_stack): Remove.
9263 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
9264 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
9265 Likewise.
9266 * diagnostic.h (struct diagnostic_context) <last_module>: Change
9267 type.
9268 (diagnostic_last_module_changed): Add 'map' argument.
9269 (diagnostic_set_last_function): Likewise.
9270 * diagnostic.c (undiagnostic_report_current_module): Iterate using
9271 line map, not input_file_stack.
9272 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
9273
3cbe0ba6
PB
92742008-02-29 Paul Brook <paul@codesourcery.com>
9275
9276 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
9277
d96ae4d4
PB
92782008-02-29 Paul Brook <paul@codesourcery.com>
9279
9280 * config/arm/ieee754-df.S (muldf3): Use RET macros.
9281
5be891a4
RG
92822008-02-29 Richard Guenther <rguenther@suse.de>
9283
9284 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
9285 vn_lookup_or_add.
9286 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
9287 value for comparing for a store match.
9288 (simplify_unary_expression): Do nothing for SSA_NAMEs.
9289 (try_to_simplify): Do not do a full-blown reference lookup.
9290
b0fbea13
KK
92912008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
9292
9293 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
9294 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
9295
9296 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
9297
0c96231b
SP
92982008-02-29 Sebastian Pop <sebastian.pop@amd.com>
9299
9300 * tree-loop-linear.c (try_interchange_loops): Compare memory access
9301 strides against cache sizes.
9302
d973ac5a
KK
93032008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
9304
9305 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
9306 constant to fpul.
9307
4613543f
RS
93082008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
9309
9310 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
9311 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
9312 is smaller than the original promoted value.
9313 (simplify_subreg): If OP is a SUBREG, try to preserve its
9314 SUBREG_PROMOTED_VAR_P information.
9315
cbfb21c1
SB
93162008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
9317
9318 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
9319 (VN_INFO_GET): Allocate new objects on the obstack.
9320 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
9321 for rpo_numbers_temp, for consistency.
9322 (free_scc_vn): Free the obstack.
9323
dea61d92
SP
93242008-02-28 Sebastian Pop <sebastian.pop@amd.com>
9325
9326 * doc/invoke.texi: Document -ftree-loop-distribution.
9327 * tree-loop-distribution.c: New.
9328 * tree-pass.h (pass_loop_distribution): New.
9329 * graphds.h (struct graph): Add htab_t indices.
9330 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
9331 * tree-vectorizer.c (rename_variables_in_loop): Extern.
9332 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
9333 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
9334 * tree-data-ref.c (debug_data_dependence_relations): New.
9335 (dump_data_dependence_relation): Also print data references.
9336 (free_data_ref): Extern.
9337 (same_access_functions): Moved...
9338 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
9339 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9340 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
9341 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
9342 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
9343 (stmts_from_loop): Skip LABEL_EXPR.
5ce0e197
UB
9344 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
9345 New.
dea61d92
SP
9346 (build_rdg): Initialize rdg->indices htab.
9347 (free_rdg, stores_from_loop, ref_base_address,
9348 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
9349 have_similar_memory_accesses_1, ref_base_address_1,
9350 remove_similar_memory_refs): New.
9351 * tree-data-ref.h: Depend on tree-chrec.h.
9352 (debug_data_dependence_relations, free_data_ref): Declared.
9353 (same_access_functions): ... here.
5ce0e197
UB
9354 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
9355 New.
dea61d92
SP
9356 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
9357 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
9358 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
9359 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
9360 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
9361 rdg_vertex_for_stmt): Declared.
9362 (struct rdg_edge): Add level.
9363 (RDGE_LEVEL): New.
9364 (free_rdg, stores_from_loop, remove_similar_memory_refs,
5ce0e197
UB
9365 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
9366 Declared.
dea61d92
SP
9367 (rdg_has_similar_memory_accesses): New.
9368 * tree-vect-analyze.c: Remove unused static decls.
9369 * lambda.h (dependence_level): New.
9370 * common.opt (ftree-loop-distribution): New.
9371 * tree-flow.h (mark_virtual_ops_in_bb,
9372 slpeel_tree_duplicate_loop_to_edge_cfg,
9373 rename_variables_in_loop): Declared.
9374 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
9375 (OBJS-common): Add tree-loop-distribution.o.
9376 (tree-loop-distribution.o): New rule.
9377 * tree-cfg.c (mark_virtual_ops_in_bb): New.
9378 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
9379 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
9380
dde75838
JM
93812008-02-28 Joseph Myers <joseph@codesourcery.com>
9382
9383 PR target/33963
9384 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
9385 other than structures and unions.
9386
3b302421
RG
93872008-02-28 Richard Guenther <rguenther@suse.de>
9388
9389 Revert:
9390 2008-02-26 Richard Guenther <rguenther@suse.de>
9391
9392 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9393 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9394 (lookup_decl_from_uid): Declare.
9395 (remove_decl_from_map): Likewise.
9396 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9397 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9398 (decl_for_uid_map): New global hashtable mapping DECL_UID
9399 to the decl tree.
9400 (init_ttree): Allocate it.
9401 (insert_decl_to_uid_decl_map): New helper function.
9402 (make_node_stat): Insert new decls into the map.
9403 (copy_node_stat): Likewise.
9404 (lookup_decl_from_uid): New function.
9405 (remove_decl_from_map): Likewise.
9406 (print_decl_for_uid_map_statistics): New helper.
9407 (dump_tree_statistics): Call it.
9408
9409 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9410 (referenced_var_iterator): Adjust.
9411 (FOR_EACH_REFERENCED_VAR): Adjust.
9412 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9413 (num_referenced_vars): Adjust.
9414 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9415 (first_referenced_var): Remove.
9416 (end_referenced_vars_p): Likewise.
9417 (next_referenced_var): Likewise.
9418 (referenced_var_iterator_set): New helper function.
9419 * tree-dfa.c (referenced_var_lookup): Adjust.
9420 (referenced_var_check_and_insert): Likewise.
9421 (remove_referenced_var): Likewise.
9422 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9423 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9424 (verify_call_clobbering): Likewise.
9425 (verify_memory_partitions): Likewise.
9426 (init_tree_ssa): Allocate bitmap instead of hashtable for
9427 referenced_vars.
9428 (delete_tree_ssa): Adjust.
9429 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9430 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9431 (compute_tag_properties): Likewise.
9432 (set_initial_properties): Likewise.
9433 (find_partition_for): Likewise.
9434 (update_reference_counts): Likewise.
9435 (dump_may_aliases_for): Likewise.
9436 * tree-ssa-operands.c (add_virtual_operand): Likewise.
9437 (add_call_clobber_ops): Likewise.
9438 (add_call_read_ops): Likewise.
9439 (get_asm_expr_operands): Likewise.
9440 * tree-into-ssa.c (dump_decl_set): Likewise.
9441 (update_ssa): Likewise.
9442 * tree-sra.c (scan_function): Likewise.
9443 (decide_instantiations): Likewise.
9444 (scalarize_parms): Likewise.
9445 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9446 (dsa_named_for): Likewise.
9447 * tree-ssa-structalias.c (update_alias_info): Likewise.
9448 (merge_smts_into): Likewise.
9449
2a1ed4fc
DD
94502008-02-27 David Daney <ddaney@avtrex.com>
9451
9452 PR target/34409
9453 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
9454 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
9455 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
9456 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
9457 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
9458
c92712d1
UB
94592008-02-27 Uros Bizjak <ubizjak@gmail.com>
9460
9461 PR target/25477
9462 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
9463 (BUILT_IN_NEXTTOWARD): Remove.
9464 (BUILT_IN_NEXTTOWARDF): Ditto.
9465 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
9466 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
9467
a8bafc43
TT
94682008-02-27 Tom Tromey <tromey@redhat.com>
9469
9470 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
9471 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
9472
8220334a
JB
94732008-02-27 Jan Beulich <jbeulich@novell.com>
9474
9475 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
9476 update the respective field on newdecl.
9477
8bf6e270
RE
94782008-02-27 Revital Eres <eres@il.ibm.com>
9479
9480 PR rtl-optimization/34999
9481 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
9482 crossing edges that ends with a call insn.
9483 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
9484 call insn and clear the EDGE_CROSSING flag of the crossing edge
9485 when fixing fallthru edges.
9486
7fb52af2
RG
94872008-02-27 Richard Guenther <rguenther@suse.de>
9488
3b302421 9489 PR middle-end/35390
7fb52af2
RG
9490 * fold-const.c (fold_unary): Return the correct argument,
9491 converted to the result type.
9492
70582b3a
RG
94932008-02-27 Richard Guenther <rguenther@suse.de>
9494
9495 PR middle-end/34971
9496 * expr.c (expand_expr_real_1): Assert on rotates that operate
9497 on partial modes.
9498 * fold-const.c (fold_binary): Use the types precision, not the
9499 bitsize of the mode if folding rotate expressions. Build rotates
9500 only for full modes.
9501
a25a8f3b
JJ
95022008-02-27 Jakub Jelinek <jakub@redhat.com>
9503
9504 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
9505 and CPP_PRAGMA_EOL.
9506 * c-pragma.c (pragma_ns_name): New typedef.
9507 (registered_pp_pragmas): New variable.
9508 (c_pp_lookup_pragma): New function.
9509 (c_register_pragma_1): If flag_preprocess_only, do nothing
9510 for non-expanded pragmas, for expanded ones push pragma's
9511 namespace and name into registered_pp_pragmas vector.
9512 (c_invoke_pragma_handler): Register OpenMP pragmas even when
9513 flag_preprocess_only, don't register GCC pch_preprocess
9514 pragma if flag_preprocess_only.
9515 * c-opts.c (c_common_init): Call init_pragma even if
9516 flag_preprocess_only.
9517 * c-pragma.c (c_pp_lookup_pragma): New prototype.
9518 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
9519 cpp_register_pragma if flag_preprocess_only.
9520
369239ef
RW
95212008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9522
9523 PR c/28800
9524 * c-parser.c (c_parser_translation_unit): Warn for empty
9525 translation unit, not empty source file.
9526
f5c630c3
PB
95272008-02-26 Paul Brook <paul@codesourcery.com>
9528
9529 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
9530 operand for Thumb-2.
9531 * config/arm/arm.h (reg_class): Add CORE_REGS.
9532 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
9533 (BASE_REG_CLASS): Use CORE_REGS.
9534 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
9535 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
9536 (REGNO_OK_FOR_INDEX_P): Exclude SP.
9537 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
9538 ARM_REGNO_OK_FOR_INDEX_P.
9539 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
9540 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
9541 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
9542 (ldm/stm peepholes): Ditto.
9543 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
9544 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
9545 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
9546 * config/arm/constraints.md: Enable "k" constraint on ARM.
9547
0d158b6e
BE
95482008-02-27 Ben Elliston <bje@au.ibm.com>
9549
9550 * config/rs6000/rs6000.c: Annotate cache line size field in all
9551 instances of struct processor_costs.
9552
7d817ebc
DE
95532008-02-26 David Edelsohn <edelsohn@gnu.org>
9554
9555 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
9556 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
9557 jump_bypass): New counters.
9558 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
9559 * dce.c (gate_ud_dce): Same.
9560 (gate_fast_dce): Same.
9561 * dse.c (gate_dse1): New function.
9562 (gate_dse2): New function.
9563 (gate_dse): Merge results of new gate functions.
9564 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
9565 (gate_handle_jump_bypass): Add dbg_cnt.
9566 (gate_handle_gcse): Add dbg_cnt.
9567 * ifcvt.c (gate_handle_if_conversion): Same.
9568 (gate_handle_if_after_combine): Same.
9569 (gate_handle_if_after_reload): Same.
9570 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
9571
a19b7d46
EW
95722008-02-26 Edmar Wienskoski <edmar@freescale.com>
9573
9574 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
9575 line sizes.
9576 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
9577
317c435f
JM
95782008-02-26 Jason Merrill <jason@redhat.com>
9579
9580 PR c++/35315
9581 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
9582 alone if it's the naming decl for the type's main variant.
9583
2d593c86
TT
95842008-02-26 Tom Tromey <tromey@redhat.com>
9585
9586 * system.h (USE_MAPPED_LOCATION): Poison.
9587 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
9588 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
9589 (make_goto_expr_edges): Likewise.
9590 (remove_bb): Likewise.
9591 (execute_warn_function_return): Likewise.
9592 * basic-block.h (struct edge_def) <goto_locus>: Change type to
9593 location_t.
9594 * c-common.c (fname_decl): Remove old location code.
9595 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
9596 location code.
9597 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
9598 variant.
9599 (ASM_INPUT_SOURCE_LOCATION): Likewise.
9600 (gen_rtx_ASM_INPUT): Likewise.
9601 (gen_rtx_ASM_INPUT_loc): Likewise.
9602 (get_rtx_asm_OPERANDS): Remove.
9603 * cfglayout.c (insn_locators_alloc): Remove old location code.
9604 (set_curr_insn_source_location): Likewise.
9605 (curr_insn_locator): Likewise.
9606 * print-tree.c (print_node): Remove old location code.
9607 * tree-mudflap.c (mf_varname_tree): Remove old location code.
9608 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
9609 * cfgexpand.c (expand_gimple_cond_expr): Don't use
9610 location_from_locus.
9611 (construct_exit_block): Remove old location code.
9612 * emit-rtl.c (force_next_line_note): Remove old location code.
9613 * profile.c (branch_prob): Remove old location code.
9614 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
9615 LOC_LINE): Remove old-location variants.
9616 * langhooks.c (lhd_print_error_function): Remove old location
9617 code.
9618 * configure, config.in: Rebuilt.
9619 * configure.ac (--enable-mapped-location): Remove.
9620 * c-decl.c (c_init_decl_processing): Remove old location code.
9621 (finish_function): Likewise.
9622 * recog.c (decode_asm_operands): Remove old location code.
9623 * c-pch.c (c_common_read_pch): Remove old location code.
9624 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
9625 variants.
9626 * gimple-low.c (lower_function_body): Remove old location code.
9627 * toplev.c (unknown_location): Remove.
9628 (push_srcloc): Remove old-location variant.
9629 (process_options): Remove old location code.
9630 (lang_dependent_init): Likewise.
9631 * input.h (UNKNOWN_LOCATION): Move definition.
9632 (location_t): Undeprecate.
9633 (source_locus): Remove.
9634 (location_from_locus): Remove.
9635 (struct location_s): Remove.
9636 Remove all old-location code.
9637 (input_line, input_filename): Remove.
9638 * final.c (final_scan_insn): Remove old location code.
9639 * diagnostic.c (diagnostic_build_prefix): Remove
9640 USE_MAPPED_LOCATION test.
9641 * tree.h (gimple_stmt) <locus>: Now a location_t.
9642 (tree_exp) <locus>: Likewise.
9643 (DECL_IS_BUILTIN): Remove old-location variant.
9644 (annotate_with_file_line, annotate_with_locus): Likewise.
9645 (expr_locus, set_expr_locus): Update.
9646 * tree.c (build1_stat): Remove old location code.
9647 (last_annotated_node): Remove.
9648 (annotate_with_file_line): Remove old-location variant.
9649 (annotate_with_locus): Likewise.
9650 (expr_location): Remove old location code.
9651 (set_expr_location): Likewise.
9652 (expr_has_location): Likewise.
9653 (expr_locus): Likewise.
9654 (set_expr_locus): Likewise.
9655 (expr_filename): Don't use location_from_locus.
9656 (expr_lineno): Likewise.
9657 * rtl-error.c (location_for_asm): Remove old location code.
9658 * c-lex.c (cb_line_change): Remove old location code.
9659 (fe_file_change): Likewise.
9660 (cb_def_pragma): Likewise.
9661 (c_lex_with_flags): Likewise.
9662 * gengtype.c (do_typedef): Don't special-case location types.
9663 (define_location_structures): Remove.
9664 (main): Don't call define_location_structures.
9665 * tree-pretty-print.c (dump_implicit_edges): Remove old location
9666 code.
9667
4f01eeb4
MLI
96682008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9669
cd7e0bd4 9670 PR 26264
4f01eeb4
MLI
9671 * builtins.def (BUILT_IN_STDARG_START): Remove.
9672 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
9673 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
9674 * tree-inline.c (inline_forbidden_p_1): Likewise.
9675
bbd59cf4
RG
96762008-02-26 Richard Guenther <rguenther@suse.de>
9677
9678 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9679 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9680 (lookup_decl_from_uid): Declare.
9681 (remove_decl_from_map): Likewise.
9682 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9683 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9684 (decl_for_uid_map): New global hashtable mapping DECL_UID
9685 to the decl tree.
9686 (init_ttree): Allocate it.
9687 (insert_decl_to_uid_decl_map): New helper function.
9688 (make_node_stat): Insert new decls into the map.
9689 (copy_node_stat): Likewise.
9690 (lookup_decl_from_uid): New function.
9691 (remove_decl_from_map): Likewise.
9692 (print_decl_for_uid_map_statistics): New helper.
9693 (dump_tree_statistics): Call it.
9694
9695 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9696 (referenced_var_iterator): Adjust.
9697 (FOR_EACH_REFERENCED_VAR): Adjust.
9698 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9699 (num_referenced_vars): Adjust.
9700 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9701 (first_referenced_var): Remove.
9702 (end_referenced_vars_p): Likewise.
9703 (next_referenced_var): Likewise.
9704 (referenced_var_iterator_set): New helper function.
9705 * tree-dfa.c (referenced_var_lookup): Adjust.
9706 (referenced_var_check_and_insert): Likewise.
9707 (remove_referenced_var): Likewise.
9708 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9709 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9710 (verify_call_clobbering): Likewise.
9711 (verify_memory_partitions): Likewise.
9712 (init_tree_ssa): Allocate bitmap instead of hashtable for
9713 referenced_vars.
9714 (delete_tree_ssa): Adjust.
9715 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9716 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9717 (compute_tag_properties): Likewise.
9718 (set_initial_properties): Likewise.
9719 (find_partition_for): Likewise.
9720 (update_reference_counts): Likewise.
9721 (dump_may_aliases_for): Likewise.
9722 * tree-ssa-operands.c (add_virtual_operand): Likewise.
9723 (add_call_clobber_ops): Likewise.
9724 (add_call_read_ops): Likewise.
9725 (get_asm_expr_operands): Likewise.
9726 * tree-into-ssa.c (dump_decl_set): Likewise.
9727 (update_ssa): Likewise.
9728 * tree-sra.c (scan_function): Likewise.
9729 (decide_instantiations): Likewise.
9730 (scalarize_parms): Likewise.
9731 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9732 (dsa_named_for): Likewise.
9733 * tree-ssa-structalias.c (update_alias_info): Likewise.
9734 (merge_smts_into): Likewise.
9735
16302daf
MLI
97362008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9737
9738 PR 34351
9739 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
9740 * c-opts.c (c_common_handle_option): Wall enables
9741 Wvolatile-register-var.
9742 * common.opt: Move Wvolatile-register-var to...
9743 * c.opt: ...here.
9744
e8fc888d
MLI
97452008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9746
9747 * common.opt (Wlarger-than=): New.
9748 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
9749 -Wlarger-than=.
9750 * opts.c (common_handle_option): Handle -Wlarger-than=.
9751 * optc-gen.awk: Likewise.
9752 * opth-gen.awk: Likewise.
9753 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
9754 * tree-optimize.c (tree_rest_of_compilation): Likewise.
9755
683d6ff9
MLI
97562008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9757
9758 * c-common.c (match_case_to_enum_1): Add appropriate
9759 OPT_W* parameter to warning.
9760 (c_do_switch_warnings): Likewise.
9761 * c-typeck.c (warning_init): Add one more parameter following
9762 'warning' function.
9763 (push_init_level): Update call to warning_init.
9764 (pop_init_level): Likewise.
9765 (add_pending_init): Likewise.
9766 (output_init_element: Likewise.
9767
369dcbd9
MLI
97682008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9769
9770 PR 28322
9771 * toplev.c (toplev_main): If there are warnings or error, print
9772 errors for ignored options.
9773 * opts.c (ignored_options): New static variable.
9774 (postpone_unknown_option_error): New.
9775 (print_ignored_options): New.
9776 (handle_option): Postpone errors for unknown -Wno-* options.
9777 * opts.h (print_ignored_options): Declare.
9778
23dc794c
RS
97792008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
9780
9781 * config/mips/mips.md (loadgp_blockage, blockage): Change type
9782 to "ghost".
9783
381a258b
RG
97842008-02-25 Richard Guenther <rguenther@suse.de>
9785
9786 Revert:
9787 2008-02-25 Richard Guenther <rguenther@suse.de>
9788
9789 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9790 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9791 (lookup_decl_from_uid): Declare.
9792 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9793 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9794 (decl_for_uid_map): New global hashtable mapping DECL_UID
9795 to the decl tree.
9796 (init_ttree): Allocate it.
9797 (insert_decl_to_uid_decl_map): New helper function.
9798 (make_node_stat): Insert new decls into the map.
9799 (copy_node_stat): Likewise.
9800 (lookup_decl_from_uid): New function.
9801 (print_decl_for_uid_map_statistics): New helper.
9802 (dump_tree_statistics): Call it.
9803
9804 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9805 (referenced_var_iterator): Adjust.
9806 (FOR_EACH_REFERENCED_VAR): Adjust.
9807 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9808 (num_referenced_vars): Adjust.
9809 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9810 (first_referenced_var): Remove.
9811 (end_referenced_vars_p): Likewise.
9812 (next_referenced_var): Likewise.
9813 (referenced_var_iterator_set): New helper function.
9814 * tree-dfa.c (referenced_var_lookup): Adjust.
9815 (referenced_var_check_and_insert): Likewise.
9816 (remove_referenced_var): Likewise.
9817 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9818 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9819 (verify_call_clobbering): Likewise.
9820 (verify_memory_partitions): Likewise.
9821 (init_tree_ssa): Allocate bitmap instead of hashtable for
9822 referenced_vars.
9823 (delete_tree_ssa): Adjust.
9824 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9825 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9826 (compute_tag_properties): Likewise.
9827 (set_initial_properties): Likewise.
9828 (find_partition_for): Likewise.
9829 (update_reference_counts): Likewise.
9830 (dump_may_aliases_for): Likewise.
9831 * tree-ssa-operands.c (add_virtual_operand): Likewise.
9832 (add_call_clobber_ops): Likewise.
9833 (add_call_read_ops): Likewise.
9834 (get_asm_expr_operands): Likewise.
9835 * tree-into-ssa.c (dump_decl_set): Likewise.
9836 (update_ssa): Likewise.
9837 * tree-sra.c (scan_function): Likewise.
9838 (decide_instantiations): Likewise.
9839 (scalarize_parms): Likewise.
9840 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9841 (dsa_named_for): Likewise.
9842 * tree-ssa-structalias.c (update_alias_info): Likewise.
9843 (merge_smts_into): Likewise.
9844
89453ec7
JB
98452008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
9846
9847 PR fortran/29549
9848 * doc/invoke.texi (-fcx-limited-range): Document new option.
9849 * toplev.c (process_options): Handle -fcx-fortran-rules.
cd7e0bd4 9850 * common.opt: Add documentation for -fcx-fortran-rules.
89453ec7 9851
8cc6d3e0
JB
98522008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
9853
9854 PR c/35162
9855 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
9856 actual behaviour and C99.
9857
cd679487
BE
98582008-02-26 Ben Elliston <bje@au.ibm.com>
9859
9860 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
9861 (ASM_CPU_POWER6_SPEC): Likewise.
9862 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
9863 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
9864 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
9865
7660c722
RG
98662008-02-25 Richard Guenther <rguenther@suse.de>
9867
9868 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
9869 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
9870 (lookup_decl_from_uid): Declare.
9871 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
9872 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
9873 (decl_for_uid_map): New global hashtable mapping DECL_UID
9874 to the decl tree.
9875 (init_ttree): Allocate it.
9876 (insert_decl_to_uid_decl_map): New helper function.
9877 (make_node_stat): Insert new decls into the map.
9878 (copy_node_stat): Likewise.
9879 (lookup_decl_from_uid): New function.
9880 (print_decl_for_uid_map_statistics): New helper.
9881 (dump_tree_statistics): Call it.
9882
9883 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
9884 (referenced_var_iterator): Adjust.
9885 (FOR_EACH_REFERENCED_VAR): Adjust.
9886 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
9887 (num_referenced_vars): Adjust.
9888 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
9889 (first_referenced_var): Remove.
9890 (end_referenced_vars_p): Likewise.
9891 (next_referenced_var): Likewise.
9892 (referenced_var_iterator_set): New helper function.
9893 * tree-dfa.c (referenced_var_lookup): Adjust.
9894 (referenced_var_check_and_insert): Likewise.
9895 (remove_referenced_var): Likewise.
9896 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
9897 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9898 (verify_call_clobbering): Likewise.
9899 (verify_memory_partitions): Likewise.
9900 (init_tree_ssa): Allocate bitmap instead of hashtable for
9901 referenced_vars.
9902 (delete_tree_ssa): Adjust.
9903 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
9904 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
9905 (compute_tag_properties): Likewise.
9906 (set_initial_properties): Likewise.
9907 (find_partition_for): Likewise.
9908 (update_reference_counts): Likewise.
9909 (dump_may_aliases_for): Likewise.
9910 * tree-ssa-operands.c (add_virtual_operand): Likewise.
9911 (add_call_clobber_ops): Likewise.
9912 (add_call_read_ops): Likewise.
9913 (get_asm_expr_operands): Likewise.
9914 * tree-into-ssa.c (dump_decl_set): Likewise.
9915 (update_ssa): Likewise.
9916 * tree-sra.c (scan_function): Likewise.
9917 (decide_instantiations): Likewise.
9918 (scalarize_parms): Likewise.
9919 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
9920 (dsa_named_for): Likewise.
9921 * tree-ssa-structalias.c (update_alias_info): Likewise.
9922 (merge_smts_into): Likewise.
9923
2e4e39f6
AK
99242008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
9925
9926 PR target/35258
9927 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
9928 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
9929 * alias.h (nonoverlapping_memrefs_p): Likewise.
9930
891984af
JB
99312008-02-25 Jan Beulich <jbeulich@novell.com>
9932
c92712d1 9933 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
891984af
JB
9934 * config/i386/netware-libgcc.exp: Add __bswap?i2,
9935 __emultls_get_address, __emultls_register_common,
9936 __floatundi?f, and _Unwind_GetIPInfo.
9937 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
9938 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
9939 (gen_regparm_prefix): Likewise.
9940 (i386_nlm_encode_section_info): Sync with
9941 config/i386/winnt.c:i386_pe_encode_section_info().
9942 (i386_nlm_maybe_mangle_decl_assembler_name): New.
9943 i386_nlm_mangle_decl_assembler_name): New.
9944 (netware_override_options): New.
9945 * config/i386/netware.h (netware_override_options): Declare.
9946 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
9947 (i386_nlm_mangle_decl_assembler_name): Declare.
9948 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
9949
98266db0
BE
99502008-02-25 Ben Elliston <bje@au.ibm.com>
9951
9952 PR other/32948
9953 * c-decl.c (grokdeclarator): Remove unused local variables
9954 `typedef_type' and `type_as_written'.
9955 * bb-reorder.c
9956 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
9957 unused local variable `has_hot_blocks'.
9958 (fix_crossing_conditional_branches): Remove unused local variable
9959 `prev_bb'.
9960
93e50125
UB
99612008-02-25 Uros Bizjak <ubizjak@gmail.com>
9962
9963 PR middle-end/19984
9964 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
9965 using DEF_C99_BUILTIN.
9966 (BUILT_IN_NANF): Ditto.
9967 (BUILT_IN_NANL): Ditto.
9968
0de5a32f 99692008-02-25 Ayal Zaks <zaks@il.ibm.com>
433331d4 9970 Revital Eres <eres@il.ibm.com>
0de5a32f
AZ
9971
9972 * modulo-sched.c (calculate_must_precede_follow): Address TODO
9973 regarding the order of two dependent insns in the same row.
9974
d4cba6d4
EB
99752008-02-25 Eric Botcazou <ebotcazou@adacore.com>
9976
9977 * stor-layout.c (layout_decl): Do not bump the alignment of a
9978 bit-field to more than byte alignment if it is packed.
9979
642639ce
DE
99802008-02-24 David Edelsohn <edelsohn@gnu.org>
9981
9982 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
9983 e300c2 and e300c3.
9984
faebccf9
DN
99852008-02-24 Diego Novillo <dnovillo@google.com>
9986
9987 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
9988
9989 PR 33738
9990 * tree-vrp.c (vrp_evaluate_conditional): With
9991 -Wtype-limits, emit a warning when comparing against a
9992 constant outside the natural range of OP0's type.
9993 * c.opt (Wtype-limits): Move ...
9994 * common.opt (Wtype-limits): ... here.
9995
88c7f01b 99962008-02-24 Edmar Wienskoski <edmar@freescale.com>
fa41c305
EW
9997
9998 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
9999 * config/rs6000/e300c2c3.md: New file.
10000 * config/rs6000/rs6000.c (processor_costs): Add new costs for
10001 e300c2 and e300c3.
10002 (rs6000_override_options): Add e300c2 and e300c3 cases to
10003 processor_target_table. Do not allow usage of Altivec or Spe
10004 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
10005 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
10006 * config/rs6000/rs6000.h (processor_type): Add
10007 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
10008 (ASM_CPU_SPEC): Add e300c2 and e300c3.
10009 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
10010 and ppce300c3. Include e300c2c3.md.
10011
153fbec8
DE
100122008-02-23 David Edelsohn <edelsohn@gnu.org>
10013
10014 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
10015 instead of TARGET_STRICT_ALIGN.
10016
03d4f106
JM
100172008-02-23 Joseph Myers <joseph@codesourcery.com>
10018
10019 * explow.c (memory_address): Assert that the generated address is
10020 valid.
10021
fb220235
FXC
100222008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
10023
10024 PR target/25477
10025 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
10026 * config/darwin-ppc-ldouble-patch.def: New file.
10027 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
10028 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
10029 SUBTARGET_INIT_BUILTINS if defined.
93e50125
UB
10030 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
10031 New functions.
fb220235 10032
f79db4f6
AP
100332008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
10034
10035 PR rtl-opt/33512
10036 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
10037 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
10038
bb1f73c2
AP
100392008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
10040
10041 PR pch/35027
10042 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
10043 file" warning condtional on -Winvalid-PCH.
10044
8ddcfde1
DJ
100452008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
10046
10047 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
10048
84495fd9
UB
100492008-02-23 Uros Bizjak <ubizjak@gmail.com>
10050
10051 PR target/22076
10052 PR target/34256
10053 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
10054 prevent reload from using MMX registers.
10055 (*mov<mode>_internal): Ditto.
10056 (*movv2sf_internal_rex64): Ditto.
10057 (*movv2sf_internal): Ditto.
10058
73c17ad2
RW
100592008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10060
10061 PR documentation/31569
10062 * doc/install.texi2html: Use makeinfo --no-number-sections.
10063
61dd226f
NF
100642008-02-22 Nathan Froyd <froydnj@codesourcery.com>
10065
10066 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
10067 ensure that we can address an entire entity > 8 bytes. Don't
10068 generate reg+reg addressing for such data.
10069
2165fd38
NF
100702008-02-22 Nathan Froyd <froydnj@codesourcery.com>
10071
10072 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
10073 strings when optimizing for size, unless the target cares about
10074 alignment.
10075
ad5ebb34
TT
100762008-02-22 Tom Tromey <tromey@redhat.com>
10077
10078 * regclass.c (current_pass): Remove declaration.
10079
34d02d17
AS
100802008-02-22 Anatoly Sokolov <aesok@post.ru>
10081
10082 * config/avr/libgcc.S (__RAMPZ__): Define.
10083 (__do_copy_data): Add for devices with 128KB code memory.
10084
a4899c01
NF
100852008-02-22 Nathan Froyd <froydnj@codesourcery.com>
10086
10087 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
10088 Use spe_abi.
10089 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
10090
fe82487e
HPN
100912008-02-22 Hans-Peter Nilsson <hp@axis.com>
10092
10093 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
10094 GENNONACR_REGS.
10095
ae311566
RW
100962008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10097
10098 PR c/19999
10099 * c-typeck.c (build_binary_op): Warn about floating point
10100 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
10101
a2db2771
JJ
101022008-02-21 Janis Johnson <janis187@us.ibm.com>
10103
10104 PR target/34526
10105 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
10106 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
10107 add vrsave.
10108 (rs6000_override_options): Set altivec_abi as default, not override,
10109 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
10110 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
10111 is used; use new member spe_abi.
10112 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
10113 spe_abi and altivec_abi.
10114
89fd06fb
TB
101152008-02-22 Tomas Bily <tbily@suse.cz>
10116
10117 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
10118
703fdf5a
RW
101192008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10120
10121 PR bootstrap/35273
10122 * config.build (build_file_translate): Set to `CMD //c' only if
10123 it works.
10124 * Makefile.in (build_file_translate): Improve comment.
10125
0ca16832
JH
101262008-02-21 Jan Hubicka <jh@suse.cz>
10127
10128 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
10129 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
10130 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
10131
c754abbf
MM
101322008-02-21 Michael Matz <matz@suse.de>
10133
10134 PR target/35264
10135 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
10136
85845bb9
UB
101372008-02-21 Uros Bizjak <ubizjak@gmail.com>
10138
10139 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
10140 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
10141 as insn constraint.
10142 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
10143 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
10144 SSE_VEC_FLOAT_MODE_P as insn constraint.
10145 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
10146 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
10147 sse4a_movntdf using MODEF mode iterator.
10148 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
10149 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
10150 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
10151 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
10152 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
10153 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
10154 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
10155
dedd42d5
RG
101562008-02-21 Richard Guenther <rguenther@suse.de>
10157
10158 * tree.def (PAREN_EXPR): New tree code.
10159 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
10160 and PAREN_EXPR.
10161 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
10162 * expr.c (expand_expr_real_1): Likewise.
10163 * tree-inline.c (estimate_num_insns_1): Likewise.
10164 * tree-complex.c (expand_complex_move): Likewise.
10165 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
10166 as plain x.
10167
7a3cb3ab
KK
101682008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
10169
10170 PR target/35225
10171 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
10172
6d4d15b8
KK
101732008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
10174
10175 PR target/35190
10176 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
10177
10178 * config/sh/sh.c (find_barrier): Don't go past
10179 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
10180
6d4a8967
DD
101812008-02-20 DJ Delorie <dj@redhat.com>
10182
10183 * config/h8300/h8300.md (insv): Force source operand to be a register.
10184
10185 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
10186 as a jump, not as a plain insn.
10187
a214518f
SP
101882008-02-20 Seongbae Park <seongbae.park@gmail.com>
10189
10190 * doc/invoke.texi (Warning Options): Add new option
10191 -Wframe-larger-than=.
10192 (-Wframe-larger-than): Document.
10193
10194 * flags.h (warn_frame_larger_than, frame_larger_than_size):
10195 Add declarations for new option variables.
10196
10197 * final.c (final_start_function): Check the frame size
10198 before emission and issue a Wframe-larger-than warning.
10199
10200 * opts.c (warn_frame_larger_than, frame_larger_than_size):
10201 Add definitions for new option variables.
10202 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
10203
10204 * common.opt (Wframe-larger-than=): New option.
10205
993ac7c7
UB
102062008-02-20 Uros Bizjak <ubizjak@gmail.com>
10207
10208 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
10209 (<sse>_div<mode>3): Ditto.
10210 (<sse>_vmdiv<mode>3): Ditto.
10211 (<sse>_vmsqrt<mode>2): Ditto.
10212 (*smax<mode>3): Ditto.
10213 (sse5_frcz<mode>2): Ditto.
10214 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
10215 as insn constraint.
10216
4cd8e76f
RG
102172008-02-20 Richard Guenther <rguenther@suse.de>
10218
10219 PR middle-end/35265
10220 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
10221 be happy with INTEGRAL_TYPE_P.
10222
41bb1f06
RG
102232008-02-20 Richard Guenther <rguenther@suse.de>
10224
10225 * fold-const.c (split_tree): Associate floatig-point expressions
10226 if flag_associative_math is set.
10227
2dc0f633
RG
102282008-02-20 Richard Guenther <rguenther@suse.de>
10229
10230 * tree.h (fold_real_zero_addition_p): Declare.
10231 * fold-const.c (fold_real_zero_addition_p): Export.
10232 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
10233 floating-point operations with zero and one.
10234
1c8bd6a3
PB
102352008-02-20 Paolo Bonzini <bonzini@gnu.org>
10236
4b40b2a5
UB
10237 * doc/install.texi: Correct references to CFLAGS, replacing them
10238 with BOOT_CFLAGS. Document flags used during bootstrap for
10239 target libraries.
1c8bd6a3 10240
d6023b50
UB
102412008-02-20 Uros Bizjak <ubizjak@gmail.com>
10242
10243 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
10244 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
10245 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
10246 insn constraint.
10247 (smin<mode>3): Ditto from similar patterns.
10248 (smax<mode>3): Ditto.
10249 (*ieee_smin<mode>3): Ditto.
10250 (*ieee_smax<mode>3): Ditto.
10251 * config/i386/sse.md (sse): New mode attribute.
10252 (mov<mode>): Macroize expander from movv4sf and movv2df using
10253 SSEMODEF2P mode iterator.
10254 (<sse>_movnt<mode>): Ditto from similar patterns. Use
10255 SSE_VEC_FLOAT_MODE_P as insn constraint.
10256 (storent<mode>): Ditto.
10257 (storent<mode>): Macroize expander from storentsf and storentdf using
10258 MODEF mode iterator.
10259 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
10260 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
10261 (abs<mode>2): Ditto from similar patterns.
10262 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
10263 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
10264 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
10265 (<sse>_vmsqrt<mode>2): Ditto.
10266 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
10267 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
10268 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
10269 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
10270 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
10271 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
10272 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
10273 insn constraint.
10274 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
10275 iterator and SSE_FLOAT_MODE_P as insn constraint.
10276 (<sse>_ucomi): Ditto from similar patterns.
10277 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
10278 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
10279 SSE_VEC_FLOAT_MODE_P as insn constraint.
10280 (vcond<mode>): Ditto from similar patterns.
10281 (and<mode>3, *and<mode>3): Ditto.
10282 (<sse>_nand<mode>3): Ditto.
10283 (ior<mode>3, *ior<mode>3): Ditto.
10284 (xor<mode>3, *xor<mode>3): Ditto.
10285 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
10286 iterator and SSE_FLOAT_MODE_P as insn constraint.
10287 (*nand<mode>3): Ditto from similar patterns.
10288 (*ior<mode>3): Ditto.
10289 (*xor<mode>3): Ditto.
10290
76a893cf
IR
102912008-02-20 Ira Rosen <irar@il.ibm.com>
10292
10293 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
10294 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
10295 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
10296
daac0317
JH
102972008-02-19 Jan Hubicka <jh@suse.cz>
10298
a8971bdb
UB
10299 * predict.c (tree_bb_level_predictions): Remove variable next
10300 mistakely introduced by previous commit.
daac0317 10301
3e4b9ad0
JH
103022008-02-19 Jan Hubicka <jh@suse.cz>
10303
10304 * predict.c (predict_paths_leading_to): Rewrite.
10305 (predict_paths_for_bb): New.
10306 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
10307
a0e527e3
RW
103082008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10309
10310 PR bootstrap/35218
10311 * Makefile.in (build_file_translate): New.
10312 (gcc-vers.texi): Use it for translating $(abs_srcdir).
10313 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
10314 * configure.ac (build_file_translate): Substitute it.
10315 * configure: Regenerate.
10316
9d5cee3d
JH
103172008-02-19 Jan Hubicka <jh@suse.cz>
10318
10319 PR rtl-optimization/34408
3e4b9ad0
JH
10320 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
10321 invalid sharing.
9d5cee3d 10322
8723e2fe
JH
103232008-02-19 Jan Hubicka <jh@suse.cz>
10324
10325 PR middle-end/28779
3e4b9ad0
JH
10326 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
10327 call_expr.
8723e2fe 10328
5ba5440f
L
103292008-02-19 H.J. Lu <hongjiu.lu@intel.com>
10330
10331 PR Ada/35186
10332 * config/i386/i386-modes.def: Revert the last DI alignment
10333 change until Ada people can look into it.
10334
c01c261d
NC
103352008-02-19 Nick Clifton <nickc@redhat.com>
10336
10337 * opts.c (print_specific_help): Fix typo in --help text.
10338
2e834acb
JJ
103392008-02-19 Jakub Jelinek <jakub@redhat.com>
10340
10341 PR target/35239
10342 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
10343 32-bit inline asm without asm alternatives for host GCC < 3.0.
10344
9cadd7f7
RG
103452008-02-19 Richard Guenther <rguenther@suse.de>
10346
10347 PR tree-optimization/34989
10348 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
10349 Allow propagation to INDIRECT_REF if we can simplify only.
10350
ffc30173
MLI
103512008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10352
10353 * c-common.c (warn_for_collisions_1): Use appropriate option when
10354 warning.
10355
b3eaaf1a
NC
103562008-02-19 Nick Clifton <nickc@redhat.com>
10357
10358 PR other/31349
a8971bdb 10359 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
b3eaaf1a
NC
10360 (handle_options): Fix indentation.
10361 (print_filtered_help): If no language-specific options were
10362 displayed tell the user how to list all the options supported by
10363 the language's front-end.
10364 (print_specific_help): Fix indentation and remove duplicate line.
10365 (common_handle_option): Handle the -v option.
10366 For --help enable the display of undocumented options if the -v
10367 switch has been included on the command line.
10368 For --help= check for overlaps in the arguments between the option
10369 classes and the language names and issue a warning when they
10370 cannot be disambiguated.
10371 * c.opt (v): Pass on to the common option handler.
10372
de82c453
RE
103732008-02-19 Revital Eres <eres@il.ibm.com>
10374
10375 * modulo-sched.c (sms_schedule): Change dump message when
10376 create_ddg function fails.
10377 (try_scheduling_node_in_cycle): Rename row to cycle.
10378 (print_partial_schedule): Rename CYCLE to ROW.
10379
32159434 103802008-02-19 Christian Bruel <christian.bruel@st.com>
a8971bdb
UB
10381 Zdenek Dvorak <ook@ucw.cz>
10382
10383 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
10384
0e93e1b4
UB
103852008-02-19 Uros Bizjak <ubizjak@gmail.com>
10386
10387 PR target/33555
10388 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
10389 (*x86_movdicc_0_m1_se): Ditto.
10390
02d353cf
UB
103912008-02-19 Uros Bizjak <ubizjak@gmail.com>
10392
10393 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
10394 (CMPtype): Define as __gcc_CMPtype.
10395 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
10396 (CMPtype): Define as __gcc_CMPtype.
10397
35dee980
HPN
103982008-02-19 Hans-Peter Nilsson <hp@axis.com>
10399
10400 Support valgrind 3.3 for --enable-checking=valgrind.
10401 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
10402 here.
10403 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
10404 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
10405 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
10406 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
10407 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
10408 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
10409 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
10410 respectively.
10411 * ggc-zone.c: Similar.
10412 * ggc-page.c: Similar.
10413
27e03cf1
PB
104142008-02-19 Paul Brook <paul@codesourcery.com>
10415
10416 PR target/35071
10417 * config/arm/ieee754-df.S: Fix do_it typo.
10418 * config/arm/ieee754-sf.S: Fix do_it typo.
10419
287a7d41
L
104202008-02-18 H.J. Lu <hongjiu.lu@intel.com>
10421
10422 PR target/35189
10423 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
10424 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
10425 (OPTION_MASK_ISA_SSE_SET): Likewise.
10426 (OPTION_MASK_ISA_SSE2_SET): Likewise.
10427 (OPTION_MASK_ISA_SSE3_SET): Likewise.
10428 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
10429 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
10430 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
10431 (OPTION_MASK_ISA_SSE4_SET): Likewise.
10432 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
10433 (OPTION_MASK_ISA_SSE5_SET): Likewise.
10434 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
10435 (OPTION_MASK_ISA_MMX_UNSET): Updated.
10436 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
10437 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
10438 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
10439 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
10440 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
10441 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
10442 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
10443 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
10444 (OPTION_MASK_ISA_SSE4): Removed.
10445 (ix86_handle_option): Turn on bits in ix86_isa_flags and
3b509e33 10446 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
287a7d41
L
10447 (override_options): Don't turn on implied SSE/MMX bits in
10448 ix86_isa_flags.
10449
feaffcaa
L
104502008-02-18 H.J. Lu <hongjiu.lu@intel.com>
10451
10452 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10453 32bit host.
10454
b2ae828d
JY
104552008-02-18 Joey Ye <joey.ye@intel.com>
10456
10457 PR middle-end/34921
10458 * tree-nested.c (insert_field_into_struct): Set type alignment
10459 to field alignment if the former is less than the latter.
10460
8d855c3d
JJ
104612008-02-18 Jakub Jelinek <jakub@redhat.com>
10462
10463 * BASE-VER: Set to 4.4.0.
10464
923158be
RW
104652008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10466
10467 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
10468 * doc/cfg.texi: Likewise.
10469 * doc/extend.texi: Likewise.
10470 * doc/gty.texi: Likewise.
10471 * doc/invoke.texi: Likewise.
10472 * doc/loop.texi: Likewise.
10473 * doc/md.texi: Likewise.
10474 * doc/passes.texi: Likewise.
10475 * doc/rtl.texi: Likewise.
10476 * doc/sourcebuild.texi: Likewise.
10477 * doc/tm.texi: Likewise.
10478 * doc/tree-ssa.texi: Likewise.
10479
f0a77246
RG
104802008-02-17 Richard Guenther <rguenther@suse.de>
10481
10482 PR middle-end/35227
10483 * tree-complex.c (init_parameter_lattice_values): Handle parameters
10484 without default definition.
10485
e09deb14
RG
104862008-02-17 Richard Guenther <rguenther@suse.de>
10487
10488 PR tree-optimization/35231
10489 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
10490 if A | B != 1.
10491
e6528d32
UB
104922008-02-17 Uros Bizjak <ubizjak@gmail.com>
10493
10494 Revert:
e6528d32
UB
10495 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
10496 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10497 libgcc_cmp_return mode.
10498
93e052a8
MLI
104992008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10500
10501 PR c/28368
10502 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
10503
2a49e6f8
RC
105042008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
10505
10506 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
10507 multilibs.
10508
0ee2ea09
RW
105092008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10510
10511 * doc/c-tree.texi: Use `@.' where appropriate.
10512 * doc/extend.texi: Likewise.
10513 * doc/install.texi: Likewise.
10514 * doc/invoke.texi: Likewise.
10515 * doc/loop.texi: Likewise.
10516 * doc/makefile.texi: Likewise.
10517 * doc/md.texi: Likewise.
10518 * doc/passes.texi: Likewise.
10519 * doc/standards.texi: Likewise.
10520 * doc/tm.texi: Likewise.
10521
ac84c062
JJ
105222008-02-15 Jakub Jelinek <jakub@redhat.com>
10523
10524 PR middle-end/35196
10525 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
10526 in entry_bb.
10527 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
10528 rather than in entry_bb.
10529
6a9e8571
UB
105302008-02-15 Uros Bizjak <ubizjak@gmail.com>
10531
10532 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
10533 libgcc_cmp_return mode.
10534
6837b3b8
JJ
105352008-02-15 Jakub Jelinek <jakub@redhat.com>
10536
10537 PR middle-end/35130
10538 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
10539 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
10540
2e58df6e 105412008-02-15 Richard Guenther <rguenther@suse.de>
6a9e8571 10542 Zdenek Dvorak <ook@ucw.cz>
2e58df6e
RG
10543
10544 PR tree-optimization/35164
10545 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
10546 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
10547 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10548 Only propagate addresses which do not have abnormal SSA_NAMEs
10549 in their operands.
10550
206598fb
JM
105512008-02-15 Joseph Myers <joseph@codesourcery.com>
10552
10553 PR target/35088
10554 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
10555
18168b3f
JH
105562008-02-15 Jan Hubicka <jh@suse.cz>
10557
10558 PR middle-end/35149
10559 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
10560
6f6b8f81
UB
105612008-02-15 Uros Bizjak <ubizjak@gmail.com>
10562
10563 PR middle-end/34621
10564 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
10565 when calculating alignment_pad.
10566
979c67a5
UB
105672008-02-15 Uros Bizjak <ubizjak@gmail.com>
10568
10569 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
10570 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
10571 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
10572 and STACK_BOUNDARY define.
10573
101e174d
DS
105742008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
10575
10576 PR preprocessor/35061
10577 * c-pragma.c (handle_pragma_pop_macro): Check that
10578 pushed_macro_table has been allocated.
10579
928bc34f
EB
105802008-02-14 Eric Botcazou <ebotcazou@adacore.com>
10581
10582 PR middle-end/35136
10583 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
10584 (force_gimple_operand): Likewise.
10585 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
10586 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
10587 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
10588 (find_interesting_uses_address): Check addressability and alignment
10589 of the base expression only after substituting bases of IVs into it.
10590
a5bfb13a
MM
105912008-02-14 Michael Matz <matz@suse.de>
10592
10593 PR target/34930
10594 * function.c (instantiate_virtual_regs_in_insn): Reload address
10595 before falling back to reloading the whole operand.
10596
b49326f1
AK
105972008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
10598
10599 * config/s390/s390.c (s390_mainpool_start): Emit the pool
10600 before the first section switch note.
10601
021efafc
RW
106022008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10603
346341a4
RW
10604 * doc/bugreport.texi: Update copyright years.
10605 * doc/c-tree.texi: Likewise.
10606 * doc/cfg.texi: Likewise.
10607 * doc/cpp.texi: Likewise.
10608 * doc/cppinternals.texi: Likewise.
10609 * doc/fragments.texi: Likewise.
10610 * doc/frontends.texi: Likewise.
10611 * doc/gcc.texi: Likewise.
10612 * doc/gty.texi: Likewise.
10613 * doc/hostconfig.texi: Likewise.
10614 * doc/implement-c.texi: Likewise.
10615 * doc/libgcc.texi: Likewise.
10616 * doc/loop.texi: Likewise.
10617 * doc/makefile.texi: Likewise.
10618 * doc/options.texi: Likewise.
10619 * doc/passes.texi: Likewise.
10620 * doc/rtl.texi: Likewise.
10621 * doc/sourcebuild.texi: Likewise.
10622 * doc/standards.texi: Likewise.
10623 * doc/tree-ssa.texi: Likewise.
10624 * doc/trouble.texi: Likewise.
10625
021efafc
RW
10626 * doc/extend.texi: Use @: or add comma where appropriate.
10627 * doc/invoke.texi: Likewise.
10628 * doc/tm.texi: Likewise.
10629
583da60a
AM
106302008-02-14 Alan Modra <amodra@bigpond.net.au>
10631
10632 PR target/34393
10633 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
10634 to a reg.
10635
2a6627c2
JN
106362008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
10637
10638 * doc/md.texi (clz, ctz): Add reference.
10639 * doc/rtl.texi (clz, ctz): Likewise.
10640
1b0c753a
RW
106412008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10642
10643 PR other/35148
10644 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
10645 srcdir.
10646
03870a04
AK
106472008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
10648
10649 * config/s390/s390.c (struct constant_pool): New field
10650 emit_pool_after added.
10651 (s390_mainpool_start): Set the emit_pool_after flag according
10652 to the section switch notes.
10653 (s390_mainpool_finish): Consider emit_pool_after when emitting
10654 the literal pool at the end of the function.
10655 (s390_chunkify_start): Force literal pool splits at section
10656 switch notes.
10657
be71b673
MM
106582008-02-13 Michael Matz <matz@suse.de>
10659
10660 PR debug/35065
10661 * var-tracking.c (clobber_variable_part): Correctly traverse the
10662 list.
10663
fed39e22
MLI
106642008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10665
10666 PR 29673
10667 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
10668 Add -fdump-ipa-inline.
10669 * tree-dump.c (dump_files): Remove tree-inlined dump.
10670 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
10671
8665227f
RG
106722008-02-12 Richard Guenther <rguenther@suse.de>
10673
10674 PR tree-optimization/35171
10675 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
10676 default defs.
10677
8f768a5a
RG
106782008-02-12 Richard Guenther <rguenther@suse.de>
10679
10680 PR middle-end/35163
10681 * fold-const.c (fold_widened_comparison): Use get_unwidened in
10682 value-preserving mode. Disallow final truncation.
10683
81186f7b
EB
106842008-02-12 Eric Botcazou <ebotcazou@adacore.com>
10685
10686 PR middle-end/35136
10687 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
10688 code from here to...
10689 (force_gimple_operand): ...here.
10690
d7b8033f
JJ
106912008-02-12 Jakub Jelinek <jakub@redhat.com>
10692
e4521d11
JJ
10693 PR c++/35144
10694 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
10695 non-compatible pointers.
10696 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
10697 different FIELD_DECLs, try harder by comparing field offsets, sizes
10698 and types.
10699
d7b8033f
JJ
10700 PR inline-asm/35160
10701 * function.c (match_asm_constraints_1): Don't replace the same input
10702 multiple times.
10703
d6f77715
AS
107042008-02-12 Anatoly Sokolov <aesok@post.ru>
10705
10706 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
10707 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
10708 (expand_epilogue): Restore RAMPZ register.
10709 * config/avr/avr.md (RAMPZ_ADDR): New constant.
10710
35b35fd0
KT
107112008-02-11 Kai Tietz <kai.tietz@onevision.com>
10712
40049ccc 10713 * config/i386/cygwin.asm: (__alloca): Correct calling
35b35fd0
KT
10714 convention and alignment.
10715 (__chkstk): Force 8 byte stack alignment.
10716
a6e2d112 107172008-02-11 Uros Bizjak <ubizjak@gmail.com>
f8c5cff4 10718 Richard Guenther <rguenther@suse.de>
a6e2d112
UB
10719
10720 PR tree-optimization/33992
10721 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
10722 the zero we compare against.
10723
40049ccc
UB
107242008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
10725
10726 PR libfortran/35063
10727 * gthr-win32.h (__gthread_mutex_destroy_function): New function
10728 to CloseHandle after unlocking to prevent accumulation of handle
10729 count.
10730
4d811a05
JDA
107312008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10732
10733 PR middle_end/34150
10734 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
10735 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
10736 and update LABEL_NUSES during and after reload.
10737
e37f6a49
SB
107382008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
10739
10740 PR middle-end/34627
a3395528 10741 * combine.c (simplify_if_then_else): Make sure the comparison is
e37f6a49
SB
10742 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
10743
34917a10
RS
107442008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
10745
10746 PR bootstrap/35051
10747 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
10748 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
10749 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
10750 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
10751 * tree.h (get_type_static_bounds): Likewise.
10752
670b0231
RW
107532008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10754
10755 * doc/invoke.texi (Option Summary, C++ Dialect Options)
10756 (Objective-C and Objective-C++ Dialect Options, Warning Options):
10757 Make -Wfoo language annotations match what the compiler outputs.
10758
069c47ee
SL
107592008-02-08 Sa Liu <saliu@de.ibm.com>
10760
10761 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
10762 intrinsics spu_convts, spu_convtu, spu_convtf.
069c47ee 10763
ccd2a21e
HPN
107642008-02-08 Hans-Peter Nilsson <hp@axis.com>
10765
10766 * doc/extend.texi (Function Attributes) <noinline>: Mention
10767 asm ("") as method to keep calls.
10768
af47e6ac
MLI
107692008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10770
10771 PR other/32754
10772 * doc/options.texi (Options): Replace references to opts.sh with
10773 optc-gen.awk.
10774 * opts-common.c: Likewise.
10775 * optc-gen.awk: Likewise.
10776
96e2afa8
AK
107772008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
10778
10779 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
10780
107812008-02-07 Richard Henderson <rth@redhat.com>
32891ff6
RH
10782
10783 PR rtl-opt/33410
10784 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
10785 EXPR_LIST for the REG_EQUAL instead of a comparison with a
10786 funny mode.
10787
c4ae80d9
UB
107882008-02-07 Uros Bizjak <ubizjak@gmail.com>
10789
10790 PR tree-optimization/35085
10791 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
10792 for operand entry oe2 in addition to operand entry oe3 in order to
10793 expose more opportunities for vectorizer sum reduction.
10794
72fb133f
KG
107952008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10796
10797 PR other/35107
10798 * Makefile.in (LIBS): Remove $(GMPLIBS).
10799 (cc1-dummy, cc1): Add $(GMPLIBS).
10800
20a415f8
JH
108012008-02-06 Jan Hubicka <jh@suse.cz>
10802
88b089d5 10803 PR target/23322
20a415f8
JH
10804 * i386.md (moddf_integer): Do not produce partial memory stalls for
10805 targets where it hurts.
10806
cc8d36a1
UB
108072008-02-06 Uros Bizjak <ubizjak@gmail.com>
10808
10809 PR target/35083
10810 * optabs.c (expand_float): Do not check for decimal modes when
10811 expanding unsigned integer through signed conversion.
10812
2ccd9cb2
NC
108132008-02-06 Nick Clifton <nickc@redhat.com>
10814
10815 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
10816 inside the clobber with a match_operand and duplicated operand
10817 number in the constraint.
10818 (ineqbranchsi): Delete redundant comment.
10819
ecb2366e
RC
108202008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
10821
448b96d0
RC
10822 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
10823 builtin_define ("__USE_INIT_FINI__").
10824 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
10825 -msx multilibs.
ecb2366e
RC
10826 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
10827
ccd4e386
RW
108282008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10829
10830 PR documentation/30330
10831 * doc/invoke.texi (C++ Dialect Options)
10832 (Objective-C and Objective-C++ Dialect Options, Warning Options):
10833 For each warning option -Wfoo that allows -Wno-foo, ensure both
10834 -Wfoo and -Wno-foo are listed in the option index. Fix index
10835 entry of -Wswitch-default, index -Wnormalized= including the
10836 `=', and -Wlarger-than-@var{len} including @var{len}.
10837
def7425b
UB
108382008-02-05 Uros Bizjak <ubizjak@gmail.com>
10839
10840 * config/i386/i386.md (floatunssisf2): Use
10841 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
10842 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
10843 Macroize expander using MODEF mode iterator.
10844
c1e7d240
DN
108452008-02-05 Diego Novillo <dnovillo@google.com>
10846
10847 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
10848
10849 PR 33738
def7425b 10850 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
c1e7d240 10851
3a204175
KG
108522008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10853
10854 PR other/35070
10855 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
10856
7074bc2e
L
108572008-02-05 H.J. Lu <hongjiu.lu@intel.com>
10858
10859 PR target/35084
10860 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
10861 to indicate if a message should be generated.
10862 (init_cumulative_args): Updated.
10863 (function_value_32): Likewise.
10864
0f5098ae
JM
108652008-02-05 Joseph Myers <joseph@codesourcery.com>
10866
10867 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
10868
4a534152
UB
108692008-02-05 Uros Bizjak <ubizjak@gmail.com>
10870
10871 PR target/35083
10872 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
10873 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
10874
3467b230
DN
108752008-02-04 Diego Novillo <dnovillo@google.com>
10876
10877 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
10878
10879 PR 33738
10880 * tree-vrp.c (vrp_evaluate_conditional): With
10881 -Wtype-limits, emit a warning when comparing against a
10882 constant outside the natural range of OP0's type.
10883
22199fd2
RG
108842008-02-04 Richard Guenther <rguenther@suse.de>
10885
10886 PR middle-end/33631
10887 * expr.c (count_type_elements): Give for unions instead of
10888 guessing.
10889
1a1640db
RG
108902008-02-04 Richard Guenther <rguenther@suse.de>
10891
10892 PR middle-end/35043
10893 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
10894 to TYPE_DOMAINs base type instead of using bitsizetype here.
10895
0fcedd9c
JM
108962008-02-03 Jason Merrill <jason@redhat.com>
10897
10898 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
10899
a31cfd58
RW
109002008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10901
10902 PR other/29972
10903 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
10904 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
10905 (RS/6000 and PowerPC Options): Fix typos and markup.
10906 * doc/passes.texi (Tree-SSA passes): Likewise.
10907
6994f254
MM
109082008-02-02 Michael Matz <matz@suse.de>
10909
10910 PR target/35045
10911 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
10912 from record_last_reg_set_info.
10913 (record_last_reg_set_info): Take an RTX argument, iterate over all
10914 constituent hardregs.
10915 (record_last_set_info, record_opr_changes): Change calls to
10916 new signature or to record_last_reg_set_info_regno.
10917
27f56cb1
GP
109182008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
10919
10920 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
10921
3e836a31
HPN
109222008-02-01 Hans-Peter Nilsson <hp@axis.com>
10923
10924 PR rtl-optimization/34773
10925 * reg-notes.def (EQUAL): Mention significance of combination of
10926 REG_EQUAL and REG_RETVAL.
10927 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
10928 insn that has a REG_RETVAL.
10929
d5be1dd4
RS
109302008-02-01 Roger Sayle <roger@eyesopen.com>
10931
10932 PR bootstrap/33781
10933 * configure.ac (--enable-fixed-point): Disable unless explicitly
10934 requested on IRIX.
10935 * configure: Regenerate.
10936
7c9c2f2a
RG
109372008-02-01 Richard Guenther <rguenther@suse.de>
10938
10939 PR other/35042
10940 * invoke.texi (-finline-limit): Remove no longer true parts
10941 of the documentation. Note that there is no default value.
10942
a18c20ec
AP
109432008-02-01 Andrew Pinski <pinskia@gmail.com>
10944 Mark Mitchell <mark@codesourcery.com>
10945 Ben Elliston <bje@au.ibm.com>
10946
10947 PR c/29326
10948 * doc/extend.texi (Other Builtins): Document.
10949
dc9a511d
TB
109502008-01-31 Tom Browder <tom.browder@gmail.com>
10951
10952 * doc/c-tree.texi (Types): Fix grammar.
10953 (Expression trees): Ditto.
10954 * doc/passes.texi (Tree-SSA passes): Ditto.
10955
10956 * doc/configterms.texi (Configure Terms): Fix typo.
10957 * doc/cpp.texi (Common Predefined Macros): Ditto.
10958 * doc/md.texi (Machine Constraints): Ditto.
10959
10960 * doc/makefile.texi (Makefile): Add comma.
10961
5dc81ee9
TB
109622008-01-31 Tom Browder <tom.browder@gmail.com>
10963 Gerald Pfeifer <gerald@pfeifer.com>
10964
10965 * doc/sourcebuild.texi (Front End): Remove references to CVS
10966 and CVSROOT/modules.
10967 (Texinfo Manuals): Replace reference to CVS by one to SVN.
10968 (Back End): Remove reference to CVS.
10969
5ca3d30c
RS
109702008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
10971
10972 PR target/34900
10973 * config/mips/mips.c (gen_load_const_gp): New function, taking a
10974 comment from...
10975 (mips16_gp_pseudo_reg): ...here.
10976 * config/mips/mips.md (load_const_gp): Replace with...
10977 (load_const_gp_<mode>): ...this :P-based insn.
10978
89fe7f1b
MLI
109792008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10980
10981 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
10982 options. Minor fixes.
10983 (-std): Move reference to standards closer to where language
10984 standards are first mentioned.
10985
1f7f6676
RS
109862008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
10987
10988 PR rtl-optimization/34995
10989 * reload.c (alternative_allows_const_pool_ref): Take an rtx
10990 parameter and return a bool. If the rtx parameter is nonnull,
10991 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
10992 (find_reloads): Update call accordingly. Pass the new operand
10993 if it needed no address reloads, otherwise pass null.
10994
2ae7b972
RH
109952008-01-30 Richard Henderson <rth@redhat.com>
10996
10997 PR c/34993
10998 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
10999 for unbounded arrays.
11000
493f36a7
SR
110012008-01-30 Silvius Rus <rus@google.com>
11002
11003 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
11004
d6951cae
JH
110052008-01-30 Jan Hubicka <jh@suse.cz>
11006
11007 PR target/34982
11008 * i386.c (init_cumulative_args): Use real function declaration when
11009 calling locally.
11010
f36a5a88
RS
110112008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
11012
11013 PR rtl-optimization/34998
11014 * global.c (build_insn_chain): Treat non-subreg_lowpart
11015 SUBREGs of pseudos as clobbering all the words covered by the
11016 SUBREG, not just all the bytes.
11017 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
11018 original df_ref rather than an extract parameter.
11019 (global_conflicts): Update call accordingly.
11020
393c0058
AK
110212008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
11022
11023 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
11024 the overflow check to make it easier to read.
11025 (__fixtfdi): Change the type of the ll member in union
11026 long_double to UDItype_x.
11027
1033ffa8
JJ
110282008-01-30 Jakub Jelinek <jakub@redhat.com>
11029
2bafad93
JJ
11030 PR middle-end/34969
11031 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
11032 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
11033 * tree-inline.c (fold_marked_statements): Call
11034 cgraph_update_edges_for_call_stmt if folding a call statement.
11035 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
11036 debug_generic_stmt calls, reset it back afterwards.
11037
1033ffa8
JJ
11038 PR c/35017
11039 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
11040 static decls.
11041 * c-typeck.c (build_external_ref): Don't pedwarn about
11042 static vars in current function's scope.
11043
ed32d842
JM
110442008-01-29 Joseph Myers <joseph@codesourcery.com>
11045
11046 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
11047
ea429753
BF
110482008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
11049
11050 PR c/35002
11051 * ipa-struct-reorg.c: Fix spelling.
11052 * params.def: Ditto.
11053
4f5c64b8
RG
110542008-01-29 Richard Guenther <rguenther@suse.de>
11055
11056 PR middle-end/35006
11057 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
11058 field.
11059 * tree-inline.c (remap_type): Increment remapping_type_depth
11060 around remapping types.
11061 (copy_body_r): Only add referenced variables if they are referenced
11062 from code, not types.
11063
7b3e2d46
DG
110642008-01-29 Douglas Gregor <doug.gregor@gmail.com>
11065
11066 PR c++/34055
11067 PR c++/34103
11068 PR c++/34219
11069 PR c++/34606
11070 PR c++/34753
11071 PR c++/34754
11072 PR c++/34755
11073 PR c++/34919
11074 PR c++/34961
11075 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
11076 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
11077
12720317
AH
110782008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
11079
11080 PR target/34412
11081 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
11082 pointer for tiny stack.
11083
b814cc0a
BF
110842008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
11085
11086 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
11087
f46ff798
BF
110882008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
11089
11090 * config/vx-common.h: Fix typo in comment.
11091
e8b0eabc
ILT
110922008-01-28 Ian Lance Taylor <iant@google.com>
11093
11094 PR c++/34862
11095 PR c++/33407
11096 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11097 coalesce pointers if they have different DECL_NO_TBAA_P values.
11098 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
11099 between variables with different DECL_NO_TBAA_P values.
11100
2aa42e6e
NF
111012008-01-28 Nathan Froyd <froydnj@codesourcery.com>
11102
11103 PR 31535
11104 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
11105 are not legitimate small data references on SPE targets.
11106
4e2e9e9b
DD
111072008-01-28 David Daney <ddaney@avtrex.com>
11108
11109 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
11110
a26c7632
DD
111112008-01-28 David Daney <ddaney@avtrex.com>
11112
11113 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
11114
4f605349
JM
111152008-01-27 Joseph Myers <joseph@codesourcery.com>
11116
11117 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
11118 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
11119 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
11120 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
11121 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
11122 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
11123 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
11124 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
11125
9e148d6a
BF
111262008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
11127
11128 * basic-block.h (condjump_equiv_p): Fix comment.
11129
f749d3c6
BF
111302008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
11131
11132 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
11133 print_generic_stmt_indented): Fix comment.
11134
fed6d628
BF
111352008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
11136
11137 * configure.ac (__stack_chk_fail): Add detecion for availability
11138 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
11139 * configure: Regenerate.
11140
c01e4479
MK
111412008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
11142
11143 PR middle-end/34688
11144 * final.c (output_addr_const): Handle TRUNCATE.
11145
6e8c65f6
ZD
111462008-01-26 Zdenek Dvorak <ook@ucw.cz>
11147
11148 PR target/34711
11149 * tree-ssa-loop-ivopts.c (comp_cost): New type.
11150 (zero_cost, infinite_cost): New constants.
11151 (struct cost_pair): Change type of cost to comp_cost.
11152 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
11153 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
11154 New functions.
11155 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
11156 split_address_cost, ptr_difference_cost, difference_cost,
11157 get_computation_cost_at, get_computation_cost,
11158 determine_use_iv_cost_generic, determine_use_iv_cost_address,
11159 determine_use_iv_cost_condition, determine_use_iv_costs,
11160 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
11161 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
11162 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
11163 Change type of cost to comp_cost.
11164 (determine_iv_cost): Increase cost of non-original ivs, instead
11165 of decreasing the cost of original ones.
11166 (get_address_cost): Indicate the complexity of the addressing mode
11167 in comp_cost.
11168 (try_add_cand_for): Prefer using ivs not specific to some object.
11169 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
11170
c01e4479 111712008-01-26 Peter Bergner <bergner@vnet.ibm.com>
e41b2a33
PB
11172 Janis Johnson <janis187@us.ibm.com>
11173
11174 PR target/34814
11175 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
11176 (TARGET_INSTANTIATE_DECLS): Likewise.
11177 * target.h (expand_to_rtl_hook): New target hook.
11178 (instantiate_decls): Likewise.
11179 * function.c (instantiate_decl): Make non-static. Rename to...
11180 (instantiate_decl_rtl): ... this.
11181 (instantiate_expr): Use instantiate_decl_rtl.
11182 (instantiate_decls_1): Likewise.
11183 (instantiate_decls): Likewise.
11184 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
11185 * function.h (instantiate_decl_rtl): Add prototype.
11186 * cfgexpand.c (target.h): New include.
11187 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
11188 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
11189 (TARGET_INSTANTIATE_DECLS): Likewise.
11190 (TARGET_INITIALIZER): New target hooks added.
11191 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
11192 New prototype.
11193 * config/rs6000/rs6000.c (tree-flow.h): New include.
11194 (machine_function): Add sdmode_stack_slot field.
11195 (rs6000_alloc_sdmode_stack_slot): New function.
11196 (rs6000_instantiate_decls): Likewise.
11197 (rs6000_secondary_memory_needed_rtx): Likewise.
11198 (rs6000_check_sdmode): Likewise.
11199 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
11200 (TARGET_INSTANTIATE_DECLS): Likewise.
11201 (rs6000_hard_regno_mode_ok): Allow SDmode.
11202 (num_insns_constant): Likewise. Handle _Decimal32 constants.
11203 (rs6000_emit_move): Handle SDmode.
11204 (function_arg_advance): Likewise.
11205 (function_arg): Likewise.
11206 (rs6000_gimplify_va_arg): Likewise. Add special handling of
11207 SDmode var args for 32-bit compiles.
11208 (rs6000_secondary_reload_class): Handle SDmode.
11209 (rs6000_output_function_epilogue): Likewise.
11210 (rs6000_function_value): Simplify if statement.
11211 (rs6000_libcall_value): Likewise.
11212 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
11213 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
11214 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
11215 (movsd_hardfloat): New define_insn.
11216 (movsd_softfloat): Likewise.
11217 (movsd_store): Likewise.
11218 (movsd_load): Likewise.
11219 (extendsddd2): Likewise.
11220 (extendsdtd2): Likewise.
11221 (truncddsd2): Likewise.
11222 (movdd_hardfloat64): Fixup comment.
11223 (UNSPEC_MOVSD_LOAD): New constant.
11224 (UNSPEC_MOVSD_STORE): Likewise.
11225
6f536f74
JJ
112262008-01-26 Jakub Jelinek <jakub@redhat.com>
11227
11228 PR c++/34965
11229 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
11230 TRUTH_XOR_EXPR.
11231 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
11232 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
11233 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
11234 and TRUTH_XOR_EXPR.
11235
ba6a1b78
DE
112362008-01-26 David Edelsohn <edelsohn@gnu.org>
11237
11238 PR target/34794
11239 * config.gcc: Separate AIX 5.3 from AIX 6.1.
11240 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
11241 __LONGDOUBLE128 too.
11242 * config/rs6000/aix61.h: New file.
11243
1230d7f8
RS
112442008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
11245
11246 PR rtl-optimization/34959
11247 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
11248 popcount and parity rtxes the same mode as their operand.
11249 Truncate or extend the result to the return value's mode
11250 if necessary.
11251
dbc90b65
RS
112522008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
11253
11254 PR target/34981
11255 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
11256 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
11257 to GOT_VERSION_REGNUM.
11258 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
11259 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
11260 * config/mips/mips.c (mips_emit_call_insn): New function.
11261 (mips_call_tls_get_addr): Call mips_expand_call directly.
11262 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
11263 emit_call_insn.
11264 (mips16_build_call_stub): Likewise. Return the call insn or null.
11265 (mips_expand_call): Update the call to mips16_build_call_stub
11266 accordingly and a remove redundant condition. Assert that MIPS16
11267 stubs do not use lazy binding. Use mips_emit_call_insn and return
11268 the call insn.
11269 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
11270 TARGET_USE_GOT.
11271 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
11272 (mips_avoid_hazard): Remove hazard_set handling.
11273 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
11274 (UNSPEC_RESTORE_GP): ...this.
11275 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
11276 (FAKE_CALL_REGNO): Rename to...
11277 (GOT_VERSION_REGNUM): ...this.
11278 (type): Add "ghost" value. Add an associated insn reservation.
11279 (hazard_set): Remove.
11280 (exception_receiver): Rename to...
11281 (restore_gp): ...this and update the unspec identifier accordingly.
11282 (exception_receiver, nonlocal_got_receiver): New expanders.
11283 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
11284 FAKE_CALL_REGNO. Remove hazard_set attribute.
11285 (set_got_version, update_got_version): New patterns.
11286
763a27ee
DS
112872008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
11288
11289 PR target/34970
11290 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
11291
3725c0ca
JM
112922008-01-25 Joseph Myers <joseph@codesourcery.com>
11293
11294 PR other/31955
11295 * doc/install.texi2html: Generate gcc-vers.texi.
11296
0288980f
DD
112972008-01-25 DJ Delorie <dj@redhat.com>
11298
11299 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11300
8d8da227
JM
113012008-01-25 Joseph Myers <joseph@codesourcery.com>
11302
11303 * config/c4x: Remove directory.
11304 * config.gcc (crx-*, mt-*): Mark obsolete.
11305 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
11306 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
11307 sh-*-rtemscoff*): Remove cases.
11308 * defaults.h (C4X_FLOAT_FORMAT): Remove.
11309 * real.c (encode_c4x_single, decode_c4x_single,
11310 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
11311 c4x_extended_format): Remove.
11312 * real.h (c4x_single_format, c4x_extended_format): Remove.
11313 * doc/extend.texi (interrupt, naked): Remove mention of attributes
11314 on C4x.
11315 (Pragmas): Remove comment about c4x pragmas.
11316 * doc/install.texi (c4x): Remove target-specific instructions.
11317 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
11318 * doc/md.texi (Machine Constraints): Remove C4x documentation.
11319 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
11320 refer to C4x source files as examples.
11321 (C4X_FLOAT_FORMAT): Remove documentation.
11322
fb7c3b05
BS
113232008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
11324
11325 * config/bfin/bfin.c (override_options): Reorder tests so that
11326 flag_pic gets enabled for -msep-data.
11327
dd3b33d7
RG
113282008-01-25 Richard Guenther <rguenther@suse.de>
11329
11330 PR middle-end/32244
11331 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
11332 to its bitfield precision if required.
11333
c256730c
JJ
113342008-01-25 Jakub Jelinek <jakub@redhat.com>
11335
11336 PR middle-end/33880
11337 * tree-nested.c (walk_omp_for): New function.
11338 (convert_nonlocal_reference, convert_local_reference): Call
11339 walk_omp_for on OMP_FOR.
11340 (convert_call_expr): Call walk_body on OMP_FOR's
11341 OMP_FOR_PRE_INIT_BODY.
11342
59805c3b
RG
113432008-01-25 Richard Guenther <rguenther@suse.de>
11344
11345 PR tree-optimization/34966
11346 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
11347 default defs and PHI_NODEs we have to insert after the
11348 defining statement.
11349
f84fe9b6
NC
113502008-01-24 Nick Clifton <nickc@redhat.com>
11351
11352 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
11353 Provide a default definition.
11354 (LIBGCC2_UNITS_PER_WORD): Likewise.
11355
11356 * config/stormy16/stormy16.c: Include df.h for the prototype
11357 for df_regs_ever_live_p.
11358 (xstormy16_expand_builtin_va_start): Convert the stack offset
11359 into a component_ref and then use POINTER_PLUS_EXPR to add it
11360 to the incoming_virtual_args_rtx.
11361 (xstormy16_gimplify_va_arg_expr): Rename to
11362 xstormy16_gimplify_va_arg_expr.
11363 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
11364 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
11365 xstormy16_gimplify_va_arg_expr.
11366 Fix up some formatting issues.
11367
11368 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
11369 Move to predicates.md.
11370 (xs_hi_general_operand): Likewise.
11371 (xs_hi_nonmemory_operand): Likewise.
11372 * config/stormy16/predicates.md:
11373 (xstormy16_carry_plus_operand): New predicate.
11374 (xs_hi_general_operand): New predicate.
11375 (xs_hi_nonmemory_operand): New predicate.
11376 * config/stormy16/stormy16-protos.h:
11377 (xstormy16_carry_plus_operand): Delete prototype.
11378 (xs_hi_general_operand): Likewise.
11379 (xs_hi_nonmemory_operand): Likewise.
11380
11381 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
11382 modifiers as they are no longer needed and they can trigger
11383 reload spill failures.
11384
11385 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
11386 with a match_operand in order to help reload.
11387
11388 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
11389 constraint with 'e' for the 8th alternative as this version of
11390 the mov.w instruction only accepts the lower 8 registers.
11391
d1f0728e
UB
113922008-01-25 Uros Bizjak <ubizjak@gmail.com>
11393
11394 PR target/34856
11395 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
11396 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
11397 vector elements.
11398
80e67011
JJ
113992008-01-25 Jakub Jelinek <jakub@redhat.com>
11400
11401 PR middle-end/33333
11402 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
11403
1525f2c3
GO
114042008-01-25 Golovanevsky Olga <olga@il.ibm.com>
11405
11406 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
11407 New functions.
11408 (remove_structure): Update allocations list before removing structure.
11409
bd91d743
OG
114102008-01-25 Golovanevsky Olga <olga@il.ibm.com>
11411
11412 * ipa-struct-reorg.c (is_safe_cond_expr,
11413 create_new_stmts_for_cond_expr): Use integer_zerop function,
11414 that recognize not only zero-pointer, but zero-integer too.
11415
ae7a8ebc
BE
114162008-01-25 Ben Elliston <bje@au.ibm.com>
11417
11418 PR other/22232
11419 * fixproto: Escape "." in sed expression that strips leading "./".
11420
3371362c
L
114212008-01-24 H.J. Lu <hongjiu.lu@intel.com>
11422
11423 PR driver/34904
11424 * gcc.c (SWITCH_OK): Removed.
11425 (SWITCH_LIVE): Changed to bit.
11426 (SWITCH_FALSE): Likewise.
11427 (SWITCH_IGNORE): Likewise.
11428 (switchstr): Change live_cond to unsigned int.
11429 (process_command): Replace SWITCH_OK with 0.
11430 (do_self_spec): Likewise.
11431 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
11432 (give_switch): Likewise.
11433 (used_arg): Likewise.
11434 (do_spec_1): Set the SWITCH_IGNORE bit.
11435 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
11436 bits. Set the SWITCH_LIVE bit.
11437
5f1b2ee6
AK
114382008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
11439
11440 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
11441
986d97ed
RS
114422008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
11443
11444 PR tree-optimization/34472
11445 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
11446 parameter to a "bool *" and set *DATA to false if there is
11447 an unsafe access. Do not delete the structure here.
11448 (check_cond_exprs): Delete it here instead.
11449 (check_cond_exprs, exclude_cold_structs): Do not increase
11450 I when removing a structure.
11451
fcc44808
UB
114522008-01-24 Uros Bizjak <ubizjak@gmail.com>
11453
11454 PR target/34856
11455 * config/i386/i386.c (ix86_expand_vector_init): Consider only
11456 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
11457
134c2de3
JJ
114582008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
11459
11460 PR middle-end/34934
11461 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
11462 a fixed vector for stack.
11463
89bf8683
BE
114642008-01-24 Ben Elliston <bje@au.ibm.com>
11465
11466 PR c++/25701
11467 * doc/gcc.texi (Software development): Add a direntry for g++.
11468
02a4bca9
HPN
114692008-01-23 Hans-Peter Nilsson <hp@axis.com>
11470
6c660aeb
HPN
11471 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
11472 stale and straggling -fforce-addr comments above.
11473
02a4bca9
HPN
11474 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
11475 define.
11476 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
11477 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
11478
b4da9f9d
MM
114792008-01-23 Michael Matz <matz@suse.de>
11480
11481 PR debug/34895
11482 * dwarf2out.c (force_type_die): Use modified_type_die instead of
11483 gen_type_die.
11484
1b7af7b0
AK
114852008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
11486
11487 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
11488 malloc result type.
11489
19298da4
AS
114902008-01-23 Anatoly Sokolov <aesok@post.ru>
11491
11492 * config/avr/avr.c (avr_current_arch): New variable.
11493 (avr_arch_types): Add 'avr31' and 'avr51' entries.
11494 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
11495 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
11496 (avr_override_options): Init 'avr_current_arch'.
11497 (base_arch_s): Move from here...
11498 * config/avr/avr.h (base_arch_s): ... here. Add new members
11499 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
11500 'mega' to 'have_jmp_call'.
11501 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
11502 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
11503 macros.
11504 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
11505 architectures.
11506 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
11507 MULTILIB_MATCHES): (Ditto.).
11508
b86b3ea3
RG
115092008-01-23 Richard Guenther <rguenther@suse.de>
11510
11511 PR middle-end/31529
11512 * cgraphunit.c (cgraph_reset_node): Always mark the node
11513 not reachable if it is not queued already.
11514
fa8d4a0f
BS
115152008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
11516
11517 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
11518 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
11519 (cputype_selected): New static variable.
11520 (bfin_handle_option): Set it if -mcpu is used.
11521 (override_option): Select default set of workarounds if no cpu type
11522 selected on the command line.
11523 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
64882649
BS
11524
11525 From Michael Frysinger <michael.frysinger@analog.com>
11526 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
11527 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
11528
11529 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
11530 for bf547, bf523, bf524, and bf526.
11531 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
11532 bf526.
11533 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11534 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
11535 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
11536 __ADSPBF547__ and __ADSPBF54x__ for bf547.
11537 * doc/invoke.texi (Blackfin Options): Document that
11538 -mcpu now accept bf547, bf523, bf524, and bf526.
11539
df1a98ae
EB
115402008-01-22 Eric Botcazou <ebotcazou@adacore.com>
11541
11542 PR rtl-optimization/34628
11543 * combine.c (try_combine): Stop and undo after the first combination
11544 if an autoincrement side-effect on the first insn has effectively
11545 been lost.
11546
1a23970d
DE
115472008-01-22 David Edelsohn <edelsohn@gnu.org>
11548
11549 PR target/34529
11550 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
11551 Offset addresses are not valid for Altivec or paired float modes.
11552
42a89d2d
JJ
115532008-01-22 Jakub Jelinek <jakub@redhat.com>
11554
61c3a446
JJ
11555 PR c++/34607
11556 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
11557 if DECL_INITIAL (decl) is error_mark_node.
11558
270e749d
JJ
11559 PR c++/34914
11560 * c-common.c (handle_vector_size_attribute): Only allow
11561 integral, scalar float and fixed point types. Handle OFFSET_TYPE
11562 the same way as pointer, array etc. types.
11563 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
11564
42a89d2d
JJ
11565 PR c++/34917
11566 * tree.c (build_type_attribute_qual_variant): Call
11567 build_qualified_type if attributes are equal, but quals are not.
11568
027b740e
MLI
115692008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11570
11571 PR 32102
11572 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
11573 * flags.h (warn_strict_aliasing): Remove.
11574 (warn_strict_overflow): Remove.
11575 * opts.c (warn_strict_aliasing): Remove.
11576 (warn_strict_overflow): Remove.
11577 * c-opts.c (c_common_handle_option): -Wall only sets
11578 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
11579 (c_common_post_options): Give default values to -Wstrict-aliasing
11580 and -Wstrict-overflow if they are uninitialized.
11581 * common.opt (Wstrict-aliasing): Specify Var and Init.
11582 (Wstrict-overflow): Likewise.
11583
4218dc2d 115842008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
963acd6f
KZ
11585
11586 PR rtl-optimization/26854
11587 PR rtl-optimization/34400
11588 PR rtl-optimization/34884
11589 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
11590 DF_RD->gen.
11591 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
11592 (df_rd_bb_info.expanded_lr_out): Deleted
11593 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
11594 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
11595 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11596 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11597 Removed code to allocate, initialize or free expanded_lr_out.
11598 (df_rd_bb_local_compute_process_def): Restructured to make more
11599 understandable.
11600 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
11601 sets if the sets are being trimmed.
11602
115e6e55
L
116032008-01-22 H.J. Lu <hongjiu.lu@intel.com>
11604
11605 PR bootstrap/32287
11606 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
11607 (as_vers): Likewise.
11608 * configure: Regenerated.
11609
f9d02384
MLI
116102008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11611
11612 PR middle-end/33092
11613 * tree-pass.h (pass_build_alias): New pass.
11614 * tree-ssa-alias.c (gate_build_alias): New.
11615 (pass_build_alias): New.
11616 * passes.c (init_optimization_passes): Add pass_build_alias after
11617 pass_create_structure_vars.
11618
0387c142
WG
116192008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
11620
11621 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
11622 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
11623 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
11624 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
11625 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
11626 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
11627 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
11628 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
11629 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
11630 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
11631 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
11632 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
11633 * config/s390/s390.md (FP_ALL): New mode iterator.
11634 (_d): New mode attribute.
11635 ("*signbit<mode>2>"): Changed mode of first operand.
11636 ("isinf<mode>2"): Changed mode of first operand.
11637 ("*TDC_insn"): Adaptation for DFP modes.
11638
1d4f5374
BE
116392008-01-22 Ben Elliston <bje@au.ibm.com>
11640
11641 * tree.c (check_qualified_type): Improve function description.
11642
33b45227
JM
116432008-01-21 Jason Merrill <jason@redhat.com>
11644
11645 PR c++/34196
11646 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
11647 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
11648 if it is set.
11649
79e168da
DD
116502008-01-21 DJ Delorie <dj@redhat.com>
11651
11652 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
11653 return zero.
11654
bb0c55f6
RG
116552008-01-21 Richard Guenther <rguenther@suse.de>
11656
11657 PR middle-end/34856
11658 * tree-cfg.c (verify_expr): Allow all invariant expressions
11659 instead of just constant class ones as reference argument.
11660 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
11661 like any other constant.
11662 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
11663
94c54fea
L
116642008-01-21 H.J. Lu <hongjiu.lu@intel.com>
11665
11666 * regmove.c (fixup_match_1): Update call crossed frequencies.
11667
c54e3854
RG
116682008-01-21 Richard Guenther <rguenther@suse.de>
11669
11670 PR c/34885
11671 * tree-inline.c (setup_one_parameter): Deal with mismatched
11672 types using a VIEW_CONVERT_EXPR.
11673
b158b5c6
AD
116742008-01-21 Alon Dayan <alond@il.ibm.com>
11675 Olga Golovanevsky <olga@il.ibm.com>
11676
11677 PR tree-optimization/34701
11678 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
11679 when the structure size is not a power of 2.
11680
4218dc2d 116812008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
604f825c
KZ
11682
11683 * doc/install.texi: Add doc for --enable-checking=df.
11684
539c54ba
KK
116852008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
11686
11687 PR rtl-optimization/34808
11688 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
11689
ecff8c1c
RS
116902008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
11691
11692 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
11693 input.
11694
4218dc2d 116952008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2b49e1a0
KZ
11696
11697 PR rtl-optimization/26854
11698 PR rtl-optimization/34400
11699 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
11700 DF_RD->gen.
11701 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
11702 (df_rd_bb_info.expanded_lr_out): New.
11703 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
11704 * loop_iv.c (iv_analysis_loop_init): Ditto.
11705 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
11706 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
11707 Added code to allocate, initialize or free expanded_lr_out.
11708 (df_rd_bb_local_compute_process_def): Restructured to make
11709 more understandable.
11710 (df_rd_confluence_n): Add code to do nothing with fake edges and
11711 code to no apply invalidate_by_call sets if the sets are being trimmed.
11712 (df_lr_local_finalize): Renamed to df_lr_finalize.
11713 (df_live_local_finalize): Renamed to df_live_finalize.
11714
0decaff6
RS
117152008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
11716
11717 PR target/34831
11718 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
11719 deciding whether to use reciprocal instructions.
11720
d0b9dbd5
UB
117212008-01-19 Uros Bizjak <ubizjak@gmail.com>
11722
11723 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
11724 dwarf2out_note_section_used if cold_text_section is NULL.
11725
135a171d
JJ
117262008-01-19 Jakub Jelinek <jakub@redhat.com>
11727
11728 PR gcov-profile/34610
11729 * tree-cfg.c (make_edges): Mark both outgoing edges from
11730 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
11731 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
11732 from OMP_FOR and OMP_CONTINUE outgoing edges.
11733
11734 * tree-profile.c (tree_profiling): Return early if
11735 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
11736 at the end.
11737 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
11738 from cfun to child_cfun.
11739 * function.h (struct function): Add after_tree_profile bit.
11740
0a84fec6
AS
117412008-01-19 Anatoly Sokolov <aesok@post.ru>
11742
11743 * config/avr/avr.S (_exit): Disable interrupt.
11744
5aa52064
KZ
117452008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
11746 Steven Bosscher <stevenb.gcc@gmail.com>
11747
11748 PR rtl-optimization/26854
11749 PR rtl-optimization/34400
11750 * df-problems.c (df_live_scratch): New scratch bitmap.
11751 (df_live_alloc): Allocate df_live_scratch when doing df_live.
11752 (df_live_reset): Clear the proper bitmaps.
11753 (df_live_bb_local_compute): Only process the artificial defs once
11754 since the order is not important.
11755 (df_live_init): Init the df_live sets only with the variables
11756 found live by df_lr.
11757 (df_live_transfer_function): Use the df_lr sets to prune the
11758 df_live sets as they are being computed.
11759 (df_live_free): Free df_live_scratch.
11760
28a08168
ILT
117612008-01-18 Ian Lance Taylor <iant@google.com>
11762
11763 * common.opt: Add fmerge-debug-strings.
11764 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
11765 flag_merge_debug_strings rather than flag_merge_constants.
11766 * doc/invoke.texi (Option Summary): Mention
11767 -fmerge-debug-strings.
11768 (Debugging Options): Document -fmerge-debug-strings.
11769
1ea193c2
ILT
117702008-01-18 Ian Lance Taylor <iant@google.com>
11771
11772 PR c++/33407
11773 * tree.h (DECL_IS_OPERATOR_NEW): Define.
11774 (struct tree_function_decl): Add new field operator_new_flag.
11775 * tree-inline.c (expand_call_inline): When inlining a call to
11776 operator new, force the return value to go into a variable, and
11777 set DECL_NO_TBAA_P on that variable.
11778 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
11779
74ab34d3
UB
117802008-01-18 Uros Bizjak <ubizjak@gmail.com>
11781
11782 PR debug/34484
11783 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
11784 DWARF2_DEBUGGING_INFO.
11785 (dwarf2out_note_section_used): Ditto. Add prototype.
11786 (have_multiple_function_sections, text_section_used,
11787 cold_text_section_used, *cold_text_sections): Move declarations
11788 before their uses.
11789
9a75e92d 117902008-01-17 Bob Wilson <bob.wilson@acm.org>
6c633d45
BW
11791
11792 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
11793 field and add signal_ra.
11794 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
11795 assignments to frame state pc. Move end of stack check after
11796 MD_FALLBACK_FRAME_STATE_FOR.
11797 (uw_update_context_1): Use frame state signal_regs if set, instead
11798 of checking signal_frame flag.
11799 (uw_update_context): Use frame state signal_ra if set.
11800 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
11801 * config/xtensa/linux-unwind.h: New file.
11802
9a75e92d 118032008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
4117d6f7
BF
11804
11805 * modulo-sched.c (get_sched_window): Fix comment typo.
11806
fae25b37
AM
118072008-01-17 Andrew MacLeod <amacleod@redhat.com>
11808
11809 PR tree-optimization/34648
11810 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
11811
2e152e16
AS
118122008-01-17 Anatoly Sokolov <aesok@post.ru>
11813
11814 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
11815 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
11816
185082a7
SP
118172008-01-17 Seongbae Park <seongbae.park@gmail.com>
11818
11819 PR rtl-optimization/34400
11820 * df-core.c (df_worklist_dataflow_overeager,
11821 df_worklist_dataflow_doublequeue): New functions.
11822 (df_worklist_dataflow): Two different worklist solvers.
11823 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
11824 New param.
11825
01a550c2
SP
118262008-01-16 Sebastian Pop <sebastian.pop@amd.com>
11827
11828 PR testsuite/34821
11829 * doc/invoke.texi: Document the dependence on pthread for fopenmp
11830 and ftree-parallelize-loops.
11831
80663107
MN
118322008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
11833
11834 PR rtl-optimization/34826
11835 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
11836
599824d2
AK
118372008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
11838
11839 * global.c (find_reg): Mark the eh regs as used if necessary.
11840 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
11841 * ra.h (struct allocno): no_eh_reg field added. Changed
11842 no_stack_reg type to bitfield.
11843
9328dd57
EB
118442008-01-17 Eric Botcazou <ebotcazou@adacore.com>
11845
11846 * tree.c (substitute_in_expr): Add missing 'break'.
11847
8a5b57cd
RG
118482008-01-17 Richard Guenther <rguenther@suse.de>
11849
11850 PR tree-optimization/34825
11851 * tree-ssa-math-opts.c (is_division_by): Do not recognize
11852 x / x as division to handle.
11853
e7ce29e7
JDA
118542008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11855
11856 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
11857 "-pthread" is specified.
11858 * pa-hpux11.h (LIB_SPEC): Likewise.
11859
9a75e92d 118602008-01-16 Janis Johnson <janis187@us.ibm.com>
37b87a3a
JJ
11861 Peter Bergner <bergner@vnet.ibm.com>
11862
11863 PR rtl-optimization/33796
11864 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
11865
6595ec51
JDA
118662008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11867
11868 PR libgfortran/34699
11869 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
11870 static links.
11871 * pa-hpux10.h (LINK_SPEC): Likewise.
11872 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
11873
bdb55eae
RG
118742008-01-16 Richard Guenther <rguenther@suse.de>
11875
11876 PR middle-end/32628
11877 * fold-const.c (fold_convert_const_int_from_int): Do not
11878 set overflow if that occured only because of a sign extension
11879 change when converting from/to a sizetype with the same
11880 precision and signedness.
11881
2e2c7ce2
UB
118822008-01-16 Uros Bizjak <ubizjak@gmail.com>
11883
11884 PR debug/34249
11885 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
11886 location address to the correct place. Update copyright year.
11887
d49c149d
SP
118882008-01-16 Sebastian Pop <sebastian.pop@amd.com>
11889
11890 * lambda-code.c (lambda_transform_legal_p): Handle the case of
11891 no dependences in the dependence_relations vector.
11892
a03c6d64
JH
118932008-01-16 Jan Hubicka <jh@suse.cz>
11894
11895 PR rtl-optimization/31396
11896 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
11897 * cfg.c (dump_reg_info): Print it.
11898 * regs.h (struct reg_info_t): add freq_calls_crossed.
11899 (REG_FREQ_CALLS_CROSSED): New macro.
11900 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
11901 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
11902 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11903 regmove_optimize): Update call crossed frequencies.
11904 * local-alloc.c (struct qty): Add freq_calls_crossed.
11905 (alloc_qty): Copute freq_calls_crossed.
11906 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
11907 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
11908 * ra.h (struct allocno): Add freq_calls_crossed.
11909
daf49354
SP
119102008-01-16 Sebastian Pop <sebastian.pop@amd.com>
11911
11912 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
11913 libgomp when compiling with ftree-parallelize-loops.
11914 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
11915
a1a5996d
RG
119162008-01-16 Richard Guenther <rguenther@suse.de>
11917
11918 PR tree-optimization/34769
11919 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
11920 * tree.c (int_cst_value): Instead make this function more
11921 permissive in what it accepts as valid input. Document this
11922 function always sign-extends the value.
11923
de4af523 119242008-01-16 Jakub Jelinek <jakub@redhat.com>
d0b9dbd5 11925 Richard Guenther <rguenther@suse.de>
de4af523
JJ
11926
11927 PR c/34668
11928 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
11929 (gimple_fold_indirect_ref_rhs): ... this.
11930 (gimple_fold_indirect_ref): New function with foldings
11931 that preserve lvalueness.
11932 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
11933 * tree-flow.h (gimple_fold_indirect_ref): Declare.
11934 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
11935 to fold an INDIRECT_REF, fall back to the old use of
11936 fold_indirect_ref_1.
11937
6935bae7
SP
119382008-01-16 Sebastian Pop <sebastian.pop@amd.com>
11939
11940 * tree-data-ref.c (subscript_dependence_tester_1): Call
11941 free_conflict_function.
11942 (compute_self_dependence): Same.
11943
a4b6974e
UB
119442008-01-16 Uros Bizjak <ubizjak@gmail.com>
11945
11946 PR debug/34249
11947 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
11948 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
11949 function global.
11950 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
11951 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
11952 for DWARF2_UNWIND_INFO targets.
11953
eb1387a0
RG
119542008-01-16 Richard Guenther <rguenther@suse.de>
11955
11956 PR c/34768
11957 * c-typeck.c (common_pointer_type): Do not merge inconsistent
11958 type qualifiers for function types.
11959
9326236d
JD
119602008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
11961
11962 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
11963 loop_iterator li from previous commit.
11964
119652008-01-15 Sebastian Pop <sebastian.pop@amd.com>
92a6bdbd
SP
11966
11967 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
11968
1d4af1e8
SP
119692008-01-12 Sebastian Pop <sebastian.pop@amd.com>
11970
11971 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
11972 (parallelize_loops): Don't parallelize irreducible components.
11973
8103eebf
MLI
119742008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11975
11976 PR c++/24924
11977 * c-opts (c_common_post_options): Do not enable CPP
11978 flag_pedantic_errors by default.
11979
d556d181
EB
119802008-01-14 Eric Botcazou <ebotcazou@adacore.com>
11981
11982 PR rtl-optimization/31944
11983 * cse.c (remove_pseudo_from_table): New function.
11984 (merge_equiv_classes): Use above function to remove pseudo-registers.
11985 (invalidate): Likewise.
11986
726612d2
RG
119872008-01-13 Richard Guenther <rguenther@suse.de>
11988
11989 PR middle-end/34601
11990 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
11991 instead of TYPE_MODE to deal with calls from expand_one_error_var.
11992
51134e52
UB
119932008-01-13 Uros Bizjak <ubizjak@gmail.com>
11994
11995 * gcse.c (cprop_jump): Call validate_unshare_change instead of
11996 validate_change to unshare the source of the PC set.
11997
3097760b
JH
119982008-01-12 Jan Hubicka <jh@suse.cz>
11999
12000 PR middle-end/32135
12001 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
12002 references above array bounds. This might trigger bounds checks for
12003 pointers to arrays.
12004
42b22da8
SP
120052008-01-12 Sebastian Pop <sebastian.pop@amd.com>
12006
12007 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
12008 new_replaceable_dependencies.
12009
5db2e9ca
DK
120102008-01-12 Doug Kwan <dougkwan@google.com>
12011
12012 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
12013 instead of OPT_Wreturn_type in warning due to ignored return type
12014 qualifiers.
12015 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
12016 options included in -Wextra.
12017 * c.opt: New option -Wignored_qualifiers.
12018 * doc/invoke.texi (Warning Options, -Wextra): Add new option
12019 -Wignore_qualifiers.
12020 (-Wignored-qualifiers): Document.
12021 (-Wreturn-type): Remove description of functionality now handled
12022 by -Wignored-qualifiers.
12023
52ef2874
EB
120242008-01-12 Eric Botcazou <ebotcazou@adacore.com>
12025
12026 PR ada/33788
12027 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
12028 NOP_EXPR if it is between integral types with the same precision.
12029
a60b56a4
JH
120302008-01-12 Jan Hubicka <jh@suse.cz>
12031
12032 PR other/28023
12033 * invoke.texi (max-inline-recursive-depth): Fix default value.
12034
29ac1d9a
ZD
120352008-01-12 Zdenek Dvorak <ook@ucw.cz>
12036
12037 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
12038 correct type.
12039
166b25dc
BW
120402008-01-11 Bob Wilson <bob.wilson@acm.org>
12041
12042 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
12043
ad8151b7
JW
120442008-01-11 James E. Wilson <wilson@specifix.com>
12045
12046 PR target/26015
12047 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
12048
0d40cc60
AS
120492008-01-11 Anatoly Sokolov <aesok@post.ru>
12050
12051 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
12052 save/restore frame pointer register and don't use 'call-prologues'
12053 optimization in function with "OS_task" attribute.
12054
15af420d
EB
120552008-01-11 Eric Botcazou <ebotcazou@adacore.com>
12056
12057 PR middle-end/31309
12058 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
12059 when copying to memory.
12060
c1e3e2d9
SB
120612008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
12062
12063 PR rtl-optimization/30905
12064 * cfgcleanup.c: Include dce.h
12065 (crossjumps_occured): New global variable.
12066 (try_crossjump_bb): Exit loop after finding a fallthru edge.
12067 If something changed, set crossjumps_occured to true.
12068 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
12069 Don't add/remove fake edges to exit here...
12070 (cleanup_cfg): ...but do it here, when crossjumping.
12071 Run a fast DCE when successful crossjumps occured in the latest
12072 iteration of try_optimize_cfg.
12073
8d0eca24
RG
120742008-01-11 Richard Guenther <rguenther@suse.de>
12075
12076 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
12077 (struct vn_unary_op_s): Likewise.
12078 (vn_reference_insert): Free old reference on hash collision.
12079
acfb3980
RA
120802008-01-10 Raksit Ashok <raksit@google.com>
12081
12082 PR rtl-optimization/27971
31bfe034
RA
12083 * combine.c (find_split_point): Split PLUS expressions which are
12084 inside a MEM rtx, and whose first operand is complex.
acfb3980 12085
b8a669d0
DD
120862008-01-10 DJ Delorie <dj@redhat.com>
12087
12088 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
12089 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
12090 (m32c_hard_regno_ok): Call the underlying function.
12091
d0f76c4b
RG
120922008-01-10 Richard Guenther <rguenther@suse.de>
12093
12094 PR middle-end/34683
12095 * tree-cfg.c (tree_merge_blocks): Do not go through the
12096 full-blown folding and stmt updating path if we just deal
12097 with virtual operands.
12098 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
12099 test for abnormal SSA_NAMEs.
12100
90d12f1f
AK
121012008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
12102
12103 PR middle-end/34641
12104 * reload.c (push_reload): Add assertions. All constants from
12105 reg_equiv_constant should have been used for replacing the respective
12106 pseudo earlier.
12107 (find_reloads_address): Invoke find_reloads_address_part for
12108 constant taken from the reg_equiv_constant array.
12109
71ae8557
SB
121102008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
12111
12112 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
12113 field (valnum) the first in the struct. Replace bools with
12114 unit bit fields.
12115
125e025e
RG
121162008-01-10 Richard Guenther <rguenther@suse.de>
12117
12118 PR tree-optimization/34651
12119 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
12120 types and ordering for masking and converting.
12121
64cbaace
SP
121222008-01-09 Sebastian Pop <sebastian.pop@amd.com>
12123
12124 PR tree-optimization/34017
12125 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
12126 also for PHI_NODE expressions.
12127
88743d3a
JH
121282008-01-09 Jan Hubicka <jh@suse.cz>
12129
12130 PR tree-optimization/34708
12131 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
12132 based on number of case labels.
12133 (init_inline_once): Remove switch_cost.
12134 * tree-inline.h (eni_weights_d): Remove switch_cost.
12135
c3e203cf
RG
121362008-01-09 Richard Guenther <rguenther@suse.de>
12137 Andrew Pinski <andrew_pinski@playstation.sony.com>
12138
12139 PR middle-end/30132
12140 * gimplify.c (gimplify_cond_expr): Do not create an addressable
12141 temporary if an rvalue is ok or an lvalue is not required.
12142
def49dd7
RG
121432008-01-09 Richard Guenther <rguenther@suse.de>
12144
12145 PR middle-end/34458
12146 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
12147 adjust return type.
12148
cbad2e09
RG
121492008-01-09 Richard Guenther <rguenther@suse.de>
12150
12151 PR middle-end/34679
12152 * tree.c (host_integerp): Check for sizetype only if the
12153 type is an integer type.
12154
59e5c37d
SB
121552008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
12156
12157 PR debug/26364
12158 * opts.c (decode_options): Disable inlining of functions called
12159 once if not in unit-at-a-time mode.
12160
712db60e
AO
121612008-01-09 Alexandre Oliva <aoliva@redhat.com>
12162
12163 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
12164
3fe2f42a
RG
121652008-01-08 Richard Guenther <rguenther@suse.de>
12166
12167 PR middle-end/31863
12168 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
12169 out early if the result will be unused.
12170
4d869718
UB
121712008-01-08 Uros Bizjak <ubizjak@gmail.com>
12172
12173 PR target/34709
12174 Revert:
12175
12176 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
12177 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12178 for TARGET_RECIP.
12179
cedbd764
JS
121802008-01-08 Jan Sjodin <jan.sjodin@amd.com>
12181
4d869718
UB
12182 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
12183 for vectorization tuned.
cedbd764 12184
a9990582
RG
121852008-01-08 Richard Guenther <rguenther@suse.de>
12186
12187 PR tree-optimization/34683
12188 * tree-ssa-operands.c (operand_build_cmp): Export.
12189 * tree-ssa-operands.h (operand_build_cmp): Declare.
12190 * tree-vn.c (vuses_compare): Remove.
12191 (sort_vuses): Use operand_build_cmp.
12192 (sort_vuses_heap): Likewise.
12193 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
12194 to re-use old VEC if available. Do not sort already sorted VUSEs.
12195 (vdefs_to_vec): Do not sort already sorted VDEFs.
12196
c90eee44
JJ
121972008-01-08 Jakub Jelinek <jakub@redhat.com>
12198
12199 PR middle-end/34694
12200 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
12201
8bce96f5
UB
122022008-01-08 Uros Bizjak <ubizjak@gmail.com>
12203
12204 PR target/34702
12205 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
12206 limitations of reciprocal sequences on x86 targets.
12207
4eefcc98
RG
122082008-01-08 Richard Guenther <rguenther@suse.de>
12209
12210 PR tree-optimization/34683
12211 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
12212
b69d564b
JJ
122132008-01-07 Jakub Jelinek <jakub@redhat.com>
12214
12215 PR target/34622
12216 * config/darwin.c (darwin_mergeable_string_section): Don't use
12217 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
12218
6b761851
UB
122192008-01-07 Uros Bizjak <ubizjak@gmail.com>
12220
12221 PR target/34682
12222 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
12223 negxf2. Macroize expander using X87MODEF mode iterator. Change
12224 predicates of op0 and op1 to register_operand.
8bce96f5
UB
12225 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
12226 expander using X87MODEF mode iterator. Change predicates of
12227 op0 and op1 to register_operand.
6b761851
UB
12228 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
12229 corresponding patterns and macroize using MODEF macro. Change
12230 predicates of op0 and op1 to register_operand and remove
12231 "m" constraint. Disparage "r" alternative with "!".
12232 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
12233 macroize using X87MODEF macro. Change predicates of op0 and op1
12234 to register_operand and remove "m" constraint. Disparage "r"
12235 alternative with "!".
12236 (absneg splitter with memory operands): Remove.
12237 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
12238 patterns and macroize using X87MODEF mode iterator.
12239 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
12240 Change predicate of op1 to register_operand.
12241 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8bce96f5 12242 for memory operands.
6b761851 12243
5ca0373f
NF
122442008-01-07 Nathan Froyd <froydnj@codesourcery.com>
12245
12246 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
12247
2eac9a76
RG
122482008-01-07 Richard Guenther <rguenther@suse.de>
12249
12250 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
12251 fields.
12252
b61ea03d
RG
122532008-01-07 Richard Guenther <rguenther@suse.de>
12254
12255 PR tree-optimization/34683
12256 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
12257 VOPs of the needed size to save memory. Use VEC_quick_push
12258 to save compile-time.
12259 (vdefs_to_vec): Likewise.
12260
c4bd75cd 122612008-01-07 Sa Liu <saliu@de.ibm.com>
b61ea03d 12262
6b761851
UB
12263 * config/spu/spu.md (divdf3): Genetate inline code for double
12264 division. The implementation doesn't handle INF or NAN, therefore it
12265 only applies when -ffinite-math-only is given.
c4bd75cd 12266
ba551ec2
PC
122672008-01-06 Paolo Carlini <pcarlini@suse.de>
12268
12269 PR libstdc++/34680
12270 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
12271 * doc/cpp.texi ([Common Predefined Macros]): Document.
12272
43db7979
UB
122732008-01-06 Uros Bizjak <ubizjak@gmail.com>
12274
12275 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
12276 order to use commutative addition instead of subtraction.
12277
2c460d12
RE
122782008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
12279 Mircea Namolaru <namolaru@il.ibm.com>
12280 Vladimir Yanovsky <yanov@il.ibm.com>
12281 Revital Eres <eres@il.ibm.com>
12282
12283 PR tree-optimization/34263
12284 * tree-outof-ssa.c (process_single_block_loop_latch,
12285 contains_tree_r): New functions.
12286 (analyze_edges_for_bb): Call process_single_block_loop_latch
12287 function to empty single-basic-block latch block if possible.
12288
5a37a60c
UB
122892008-01-05 Uros Bizjak <ubizjak@gmail.com>
12290
12291 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
12292 for TARGET_RECIP.
12293 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
12294
1a8a3a5e
RS
122952008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
12296
12297 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
12298
2a4430a6
RS
122992008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
12300
12301 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
12302
58fcda21
JJ
123032008-01-05 Jakub Jelinek <jakub@redhat.com>
12304
12305 PR tree-optimization/34618
12306 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
12307 flag from T.
12308
f1bf33ce
UB
123092008-01-05 Uros Bizjak <ubizjak@gmail.com>
12310
12311 PR target/34673
12312 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
12313 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
12314 Update copyright year.
12315
12316 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
12317 Update copyright year.
12318 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
12319 using NR fixup.
12320
12a6309e
ZZ
123212008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
12322
12323 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
12324 edge does not point to current bb before changing need_assert.
12325
bdb69bee
RG
123262008-01-04 Richard Guenther <rguenther@suse.de>
12327
12328 PR middle-end/34029
12329 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
12330 for verifying purposes if they are is_gimple_min_invariant.
12331
ffed8a01
AH
123322008-01-04 Aldy Hernandez <aldyh@redhat.com>
12333
12334 PR tree-optimization/34448
12335 PR tree-optimization/34465
12336 * gimplify.c (gimplify_init_constructor): Add new parameter
12337 notify_temp_creation. Use it.
12338 (gimplify_modify_expr_rhs): Take volatiles into account when
12339 optimizing constructors.
12340 Do not optimize constructors if gimplify_init_constructor will dump to
12341 memory.
12342 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
12343 * gcc.c-torture/compile/pr34448.c: New.
12344
b5ca517c
JJ
123452008-01-04 Jakub Jelinek <jakub@redhat.com>
12346
12347 PR gcov-profile/34609
12348 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
12349 return_slot if result is TREE_ADDRESSABLE.
12350
6a3d1d49
RS
123512008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
12352
12353 * config/mips/mips.md (sqrt_condition): Tweak comment.
12354 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
12355
6fc3c3c0
TT
123562008-01-03 Tom Tromey <tromey@redhat.com>
12357
b5ca517c 12358 PR c/34457
6fc3c3c0
TT
12359 * c-common.c (c_type_hash): Handle VLAs.
12360
045685a9
JH
123612008-01-03 Jan Hubicka <jh@suse.cz>
12362
12363 PR tree-optimization/31081
12364 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
12365 0 when inlining and not inlining to first basic block.
12366 (remap_decl): When var is initialized to 0, don't set default_def.
12367 (expand_call_inline): Set entry_bb.
12368 * tree-inline.h (copy_body_data): Add entry_bb.
12369
2092ee7d
JJ
123702008-01-03 Jakub Jelinek <jakub@redhat.com>
12371
cac67c08
JJ
12372 PR c++/34619
12373 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
12374 before returning.
12375
2092ee7d
JJ
12376 PR tree-optimization/29484
12377 * tree-inline.c (inline_forbidden_p_2): New function.
12378 (inline_forbidden_p): Disallow inlining if some static var
12379 has an address of a local LABEL_DECL in its initializer.
12380 * doc/extend.texi (Labels as Values): Document &&foo behaviour
12381 vs. inlining.
12382
2726bafe 123832008-01-03 Sebastian Pop <sebastian.pop@amd.com>
097392de
SP
12384
12385 PR tree-optimization/34635
12386 * tree-data-ref.c (add_other_self_distances): Make sure that the
12387 evolution step is constant.
12388
99819c63
JJ
123892008-01-03 Jakub Jelinek <jakub@redhat.com>
12390
12391 PR middle-end/34608
12a6309e 12392 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
99819c63 12393
1463dfa4
RS
123942008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
12395
12396 * tree-sra.c (scalarize_init): Insert the generate_element_init
12397 statements after the generate_element_zero statements.
12398
ee6ec666
RG
123992008-01-02 Richard Guenther <rguenther@suse.de>
12400
12401 PR middle-end/34093
12402 PR middle-end/31976
12403 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
12404 for very large number of operands instead of ICEing.
12405
6893e828
AN
124062008-01-02 Arthur Norman <acn1@cam.ac.uk>
12407
12a6309e 12408 PR target/34013
d0fb20be 12409 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6893e828
AN
12410 while stack probing.
12411
1a7817e4
DG
124122008-01-01 Douglas Gregor <doug.gregor@gmail.com>
12413
6893e828 12414 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12a6309e 12415 in C++0x mode.
1a7817e4 12416
882e337b
VR
124172008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
12418
12419 PR libmudflap/26442
12420 * tree-mudflap.c (mx_register_decls): Guard warning by
12421 !DECL_ARTIFICIAL check.
12422
f02ffa12
JJ
124232008-01-01 Jakub Jelinek <jakub@redhat.com>
12424
12425 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
12426 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
12427 sse5_perm<mode>): Fix constraints.