]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/31522 (False overflow warning with phi nodes)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
5a0ed003
ILT
12007-04-16 Ian Lance Taylor <iant@google.com>
2
fc6827fe
ILT
3 PR tree-optimization/31522
4 * tree-vrp.c (vr_phi_edge_counts): New static variable.
5 (vrp_initialize): Allocate vr_phi_edge_counts.
6 (vrp_visit_phi_node): Don't push to infinity if we saw a new
7 executable edge. Drop test for all constants.
8 (vrp_finalize): Free vrp_phi_edge_counts.
9
4075e231
ILT
10 * doc/cpp.texi (Common Predefined Macros): Clarify description of
11 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
12
5a0ed003
ILT
13 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
14 predecessors at head rather than tail.
15
bdede2ac
MK
162007-04-16 Matthias Klose <doko@debian.org>
17
18 * gcc/config/alpha/linux.h (CPP_SPEC): Define.
19 * gcc/config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
20
52d412e7
AH
212007-04-16 Aldy Hernandez <aldyh@redhat.com>
22
23 * function.h: Remove sequence_stack extern declaration.
24
72120463
KH
252007-04-16 Kazu Hirata <kazu@codesourcery.com>
26
27 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
28 TARGET_FIDOA.
29 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
30 defined.
31
14683174
AS
322007-04-16 Anatoly Sokolov <aesok@post.ru>
33
34 * config/avr/avr.c (avr_arch_types): Rearranging array.
35 (enum avr_arch): Add.
36 (avr_mcu_types): Use avr_arch enumeration constants instead of
37 numbers.
38 * config/avr/avr.h (LINK_SPEC): Simplify.
39
8d989403
KH
402007-04-16 Kazu Hirata <kazu@codesourcery.com>
41
42 * config/m68k/m68k.c (m68k_libcall_value,
43 m68k_function_value): Use macros for register names more.
44
de41203b
KH
45 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
46 instead.
47 (M68K_REGNAME): Use A6_REG.
48 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
49
bdbf40a5
MK
502007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
51
52 PR middle-end/28071
53 * sched-int.h (struct deps): Split field 'pending_lists_length' into
54 'pending_read_list_length' and 'pending_write_list_length'. Update
55 comment.
56 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
57 to handle two length counters instead of one. Update all uses.
58 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
59 two length counters instead of one.
60 * sched-rgn.c (propagate_deps): Update to handle two length counters
61 instead of one.
62
7bb4a6be
L
632007-04-16 H.J. Lu <hongjiu.lu@intel.com>
64
65 PR target/31582
66 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
67 copy of source, pass it to ix86_expand_vector_set and return
68 it as target.
69
8dd58f01 702007-04-16 David Ung <davidu@mips.com>
7bb4a6be 71 Joseph Myers <joseph@codesourcery.com>
8dd58f01
DU
72
73 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
74 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
75 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
76 Add 74K processor information.
77 * config/mips/mips.md: Include 74k.md.
78 (cpu): Add 74kc,74kf,74kx.
79 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
80 * config/mips/74k.md: New.
81 * doc/invoke.texi (MIPS Options): Document 74K support.
82
60555ced
DN
832007-04-16 Dorit Nuzman <dorit@il.ibm.com>
84
85 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
86 vectorizable_* functions.
87 * tree-vect-transform.c (vectorizable_call): Add check for
88 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
89 (vectorizable_store): likewise.
90 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
91 Add comments.
92 (vectorizable_operation, vectorizable_type_demotion): Likewise.
93 (vectorizable_type_promotion, vectorizable_load): Likewise.
94 (vectorizable_live_operation, vectorizable_condition): Likewise.
95 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
96 STMT_VINFO_LIVE_P.
97 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
98
3bfe36dc
KH
992007-04-15 Kazu Hirata <kazu@codesourcery.com>
100
101 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
102 register numbers more.
103 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
104 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
105 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
106 FUNCTION_VALUE_REGNO_P): Likewise.
107 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
108 STATIC_CHAIN_REGNUM): Likewise.
109 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
110 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
111 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
112 * config/m68k/m68k.md (FP_REG): New.
113
e3e093ec
KH
1142007-04-15 Kazu Hirata <kazu@codesourcery.com>
115
116 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
117 alignment on fido.
118
7fa7289d
KH
1192007-04-15 Kazu Hirata <kazu@codesourcery.com>
120
121 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
122 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
123 comment typos.
124
2732d767
ZD
1252007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
126
127 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
128 cold loops.
129
aa24028d
AP
1302007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
131
132 PR c/31520
d0b73842 133 * c-decl.c (finish_decl): Grab the type of the decl after the call
aa24028d
AP
134 to store_init_value.
135
2ca2b607
SB
1362007-04-14 Steven Bosscher <steven@gcc.gnu.org>
137
138 * common.opt (fforward-propagate): Fix "Optimization" annotation.
139
b1483e87
JJ
1402007-04-14 Jakub Jelinek <jakub@redhat.com>
141
142 PR c++/25874
143 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
144 post dominators and cleanup cfg before returning.
145
4d4f2837
BS
1462007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
147
148 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
149 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
150
7d33c31d
KH
1512007-04-14 Kazu Hirata <kazu@codesourcery.com>
152
153 * config.gcc: Recognize fido.
154 * config/m68k/m68k-devices.def (fidoa): New.
155 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
156 __mfido__.
157 (FL_FIDOA, TARGET_FIDOA): New.
158 * config/m68k/m68k.opt (mfidoa): New.
159
2a6acff7
JDA
1602007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
161
162 PR middle-end/31322
163 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
164 when a personality function is used.
165
ec3643e8
BW
1662007-04-13 Bob Wilson <bob.wilson@acm.org>
167
168 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
169
c40ce8f3
MS
1702007-04-13 Mike Stump <mrs@apple.com>
171
172 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
173 we can...
174 * config/darwin.opt (fapple-kext): Make C++ only.
175 * config/darwin.c (darwin_override_options): Remove code to ensure
176 -fapple-kext is given for C++ only.
177
d1138d8e
RS
1782007-04-13 Richard Sandiford <richard@codesourcery.com>
179
180 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
181 * config/mips/mips.c (override_options): Call
182 SUBTARGET_OVERRIDE_OPTIONS, if defined.
183
c33104d6
L
1842007-04-13 H.J. Lu <hongjiu.lu@intel.com>
185
186 * config/i386/i386.opt (msvr3-shlib): Removed.
187
188 * doc/invoke.texi: Remove -msvr3-shlib.
189
b194a08c
L
1902007-04-13 H.J. Lu <hongjiu.lu@intel.com>
191
192 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
193 with "popcnt" instruction.
194
9bb6aa43
RG
1952007-04-13 Richard Guenther <rguenther@suse.de>
196
197 PR tree-optimization/21258
198 * tree-vrp.c (compare_case_labels): New helper.
199 (find_switch_asserts): New function.
200 (find_assert_locations): Call it for SWITCH_EXPRs.
201
27ac40e2
UB
2022007-04-13 Uros Bizjak <ubizjak@gmail.com>
203
204 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
205 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
206 check is now implied in X87_FLOAT_MODE_P.
207 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
208 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
209 (fix_trunc<mode>_i386_fisttp): Ditto.
210 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
211 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
212 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
213 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
214 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
215 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
216 (unnamed_splitters): Ditto.
217 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
218 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
219 FIRST_SSE_REG for local functions when SSE math is enabled or
220 for functions with sseregparm attribute.
221 (standard_80387_constant_p): Return -1 if mode is not
222 X87_FLOAT_MODE_P.
223 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
224 (ix86_expand_compare): Ditto.
225 (ix86_expand_carry_flag_compare): Ditto.
226 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
227 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
228 DECIMAL_FLOAT_MODE_P.
229 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
230 of SCALAR_FLOAT_MODE_P.
231 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
232 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
233 checks before FLOAT_MODE_P.
234 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
235 before FLOAT_MODE_P.
236 [DIV]: Ditto.
237 [NEG]: Ditto.
238 [ABS]: Ditto.
239 [SQRT]: Ditto.
240 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
241
be0fe523
PB
2422007-04-12 Paolo Bonzini <bonzini@gnu.org>
243 Charles Wilson <libtool@cwilson.fastmail.fm>
244
245 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
246 (libgcc.mvars): Don't depend on them.
247 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
248 * exec-tool.in: New.
249
06a97569
BM
2502007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
251
252 * doc/invoke.text (--help): Document --help=common.
253
4557bf49
TN
2542007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
255
256 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
257
8cb6400c
RS
2582007-04-12 Richard Sandiford <richard@codesourcery.com>
259
260 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
261 * genemit.c (main): Emit #include "integrate.h".
262 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
263 (LOADGP_RTP): New mips_loadgp_style.
264 * config/mips/mips.h: Include config/vxworks-dummy.h.
265 (TARGET_RTP_PIC): New macro.
266 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
267 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
268 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
269 for TARGET_RTP_PIC.
270 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
271 -mvxworks-pic when using -mrtp and a PIC option.
272 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
273 for RTP PIC.
274 (mips_symbolic_constant_p, mips_symbolic_address_p)
275 (mips_symbol_insns): Handle SYMBOL_HALF.
276 (override_options): Warn about -G and -mrtp being used together.
277 Initialize mips_lo_relocs[SYMBOL_HALF].
278 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
279 (mips_emit_loadgp): Handle LOADGP_RTP.
280 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
281 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
282 (tablejump): Handle function-relative case table entries if
283 TARGET_RTP_PIC.
284 * config/mips/predicates.md (symbol_ref_operand): New predicate.
285
f28d8062
RS
2862007-04-12 Richard Sandiford <richard@codesourcery.com>
287
288 * config/mips/mips.md (load_call<mode>): Allow any general register.
289 destination.
290 (sibcall_value_internal, sibcall_value_multiple_internal)
291 (call_value_internal, call_value_split, call_value_multiple_internal)
292 (call_value_multiple_split): Remove constraints from operand 0.
293
dc7750b1
RS
2942007-04-12 Richard Sandiford <richard@codesourcery.com>
295
296 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
297 rather than loadgp_noshared.
298 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
299 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
300 gen_loadgp.
301 * config/mips/mips.md (loadgp): Rename to...
302 (loadgp_newabi): ...this.
303 (loadgp_noshared): Rename to...
304 (loadgp_absolute): ...this.
305
006257dc
RS
3062007-04-12 Richard Sandiford <richard@codesourcery.com>
307
308 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
309 false for locally-binding symbols.
310 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
311
08e7ceb3
RS
3122007-04-12 Richard Sandiford <richard@codesourcery.com>
313
314 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
315 (SYMBOL_GOT_PAGE_OFST): ...this.
316 (SYMBOL_GOT_GLOBAL): Rename to...
317 (SYMBOL_GOT_DISP): ...this.
318 (SYMBOL_GOTOFF_GLOBAL): Rename to...
319 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
320 * config/mips/mips.c (mips_global_symbol_p): New function.
321 (mips_symbol_binds_local_p): Likewise.
322 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
323 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use mips_global_symbol_p
324 and mips_symbol_binds_local_p.
325 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
326 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
327 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
328 SYMBOL_GOTOFF_DISP.
329 (mips_ok_for_lazy_binding_p): New function.
330 (mips_load_call_address, mips_expand_call): Use it.
331 (mips_dangerous_for_la25_p): Likewise.
332 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
333 (*got_disp<mode>): Use got_disp_operand instead of
334 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
335 SYMBOL_GOTOFF_GLOBAL.
336 (*got_page<mode>): Use got_page_ofst_operand instead of
337 local_got_operand.
338 * config/mips/predicates.md (const_call_insn_operand): Use
339 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
340 (global_got_operand): Rename to...
341 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
342 SYMBOL_GOT_GLOBAL.
343 (local_got_operand): Rename to...
344 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
345 of SYMBOL_GOT_LOCAL.
346
14976818
RS
3472007-04-12 Richard Sandiford <richard@codesourcery.com>
348
349 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
350 TARGET_CALL_CLOBBERED_GP.
351 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
352 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
353 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
354 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
355 of TARGET_ABICALLS && !TARGET_NEWABI.
356 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
357 * config/mips/mips.c (mips_load_call_address): Check
358 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
359 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
360 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
361 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
362 TARGET_ABICALLS && TARGET_NEWABI.
363 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
364 TARGET_ABICALLS.
365 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
366 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
367 TARGET_ABICALLS && TARGET_NEWABI.
368 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
369 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
370 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
371 whether indirect calls must use $25.
372 (mips_extra_live_on_entry): Check TARGET_GOT instead of
373 TARGET_ABICALLS.
374 * config/mips/mips.md (jal_macro): Check flag_pic and
375 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
376 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
377 instead of TARGET_ABICALLS.
378 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
379 TARGET_ABICALLS && TARGET_OLDABI.
380 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
381 (sibcall): In the comment above the define_insn, mention
382 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
383 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
384 instead of TARGET_ABICALLS.
385
3efd5670
BS
3862007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
387
388 * doc/md.texi (Blackfin family constraints): Document PA and PB.
389 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
390 (MACFLAGS_MATCH_P): New macro.
391 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
392 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
393 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
394 the other MACFLAG constants.
395 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
396 (flag_machi): Tighten constraints. Renumber some of the operands.
397 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
398 output template.
399 (flag_machi_parts_acconly): New pattern.
400 (flag_macinithi): Tighten constraints. Allow any accumulator to be
401 used.
402 (flag_macinit1hi): Tighten constraints.
403 (flag_mul_macv2hi_parts_acconly): New pattern.
404
3fbee523
BS
405 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
406 Use a more efficient implementation.
407 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
408 inline sequences when not optimizing for size.
409
2d3649b2
BS
410 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
411 movhi_high2low): Delete, merge functionality into...
412 (packv2hi): ... this pattern.
413
9d3f9aa3
BS
414 2007-02-11 Jie Zhang <jie.zhang@analog.com>
415 * config/bfin/bfin.opt (msim): New option.
416 (mcpu=): New option.
417 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
418 (bfin_cpu_t): Typedef of enum bfin_cpu.
419 (bfin_cpu_type): New declaration.
420 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
421 -msim and -mcpu= options.
422 (LIB_SPEC): Likewise.
423 * config/bfin/bfin.c (bfin_cpu_type): Define.
424 (bfin_handle_option): Handle -mcpu= option.
425 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
426 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
427 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
428
f4de8ba6
RS
4292007-04-12 Richard Sandiford <richard@codesourcery.com>
430
431 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
432 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
433 (powerpc-wrs-vxworksae): Use ${tm_file}.
434 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
435 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
436 * config/i386/vx-common.h: New file.
437
b83b15da
RS
4382007-04-12 Richard Sandiford <richard@codesourcery.com>
439
440 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
441 of crt0.o%s.
442
bf259a77
AK
4432007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
444
445 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
446 ldxtr.
447
95764818
DG
4482007-04-12 Douglas Gregor <doug.gregor@gmail.com>
449
450 PR c++/31078
451 PR c++/31103
452 * c-common.c (c_build_qualified_type): Set canonical type
453 appropriately.
454
a670437d
RG
4552007-04-12 Richard Guenther <rguenther@suse.de>
456
457 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
458 lower bound and element size if lower bound is not zero
459 or either of the ARRAY_REF operands is set.
460
5852948c
RG
4612007-04-12 Richard Guenther <rguenther@suse.de>
462
463 PR tree-optimization/24689
464 PR tree-optimization/31307
465 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
466 indices by value.
467 * gimplify.c (canonicalize_addr_expr): To be consistent with
468 gimplify_compound_lval only set operands two and three of
469 ARRAY_REFs if they are not gimple_min_invariant. This makes
470 it never at this place.
471 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
472
8c5e065b
JDA
4732007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
474
475 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
476 null before emitting a .nsubspa directive.
477
0de107cf
DN
4782007-04-11 Diego Novillo <dnovillo@redhat.com>
479
480 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
481 need_to_partition_p if there are no memory statements in the
482 function.
483
55a700ac
ZD
4842007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
485
486 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
487 (gcd_of_steps_may_divide_p): New function.
488 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
489
0f4b25a3
BS
4902007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
491
492 * reload.c (find_reloads_toplev, find_reloads_address,
493 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
494 not a pointer equality test, to decide if we need to call
495 push_reg_equiv_alt_mem.
496
1baf2906
SP
4972007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
498
499 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
500 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
501 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
502
55a700ac 5032007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
0ca2faee
ZD
504
505 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
506 vector to be positive.
507
e9e0aa2c
DN
5082007-04-11 Diego Novillo <dnovillo@redhat.com>
509
510 PR 30735
511 PR 31090
512 * doc/invoke.texi: Document --params max-aliased-vops and
513 avg-aliased-vops.
514 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
515 debug_memory_partitions): Move to tree-flow.h
516 * params.h (AVG_ALIASED_VOPS): Define.
517 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
518 users.
519 (mp_info_t): Likewise.
520 (get_mem_sym_stats_for): New.
521 (set_memory_partition): Move from tree-flow-inline.h.
522 (mark_non_addressable): Only clear the set of symbols for the
523 partition if it exists.
524 (dump_memory_partitions): Move from tree-ssa-operands.c
525 (debug_memory_partitions): Likewise.
526 (need_to_partition_p): New.
527 (dump_mem_ref_stats): New.
528 (debug_mem_ref_stats): New.
529 (dump_mem_sym_stats): New.
530 (debug_mem_sym_stats): New.
531 (update_mem_sym_stats_from_stmt): New.
532 (compare_mp_info_entries): New.
533 (mp_info_cmp): Call it.
534 (sort_mp_info): Change argument to a list of mem_sym_stats_t
535 objects.
536 (get_mpt_for): Move from tree-ssa-operands.c.
537 (find_partition_for): New.
538 (create_partition_for): Remove.
539 (estimate_vop_reduction): New.
540 (update_reference_counts): New.
541 (build_mp_info): New.
542 (compute_memory_partitions): Refactor.
543 Document new heuristic.
544 Call build_mp_info, update_reference_counts,
545 find_partition_for and estimate_vop_reduction.
546 (compute_may_aliases): Populate virtual operands before
547 calling debugging dumps.
548 (delete_mem_sym_stats): New.
549 (delete_mem_ref_stats): New.
550 (init_mem_ref_stats): New.
551 (init_alias_info): Call it.
552 (maybe_create_global_var): Remove alias_info argument.
553 Get number of call sites and number of pure/const call sites
554 from gimple_mem_ref_stats().
555 (dump_alias_info): Call dump_memory_partitions first.
556 (dump_points_to_info_for): Show how many times a pointer has
557 been dereferenced.
558 * opts.c (decode_options): For -O2 set --param
559 max-aliased-vops to 500.
560 For -O3 set --param max-aliased-vops to 1000 and --param
561 avg-aliased-vops to 3.
562 * fortran/options.c (gfc_init_options): Remove assignment to
563 MAX_ALIASED_VOPS.
564 * tree-flow-inline.h (gimple_mem_ref_stats): New.
565 * tree-dfa.c (dump_variable): Dump memory reference
566 statistics.
567 Dump NO_ALIAS* settings.
568 (referenced_var_lookup): Tidy.
569 (mem_sym_stats): New.
570 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
571 and ORIG are different SSA names for a memory partition.
572 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
573 * tree-flow.h (struct mem_sym_stats_d): Define.
574 (mem_sym_stats_t): Define.
575 (struct mem_ref_stats_d): Define.
576 (struct gimple_df): Add field mem_ref_stats.
577 (enum noalias_state): Define.
578 (struct var_ann_d): Add bitfield noalias_state.
579 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
580 debug_mem_ref_stats, debug_memory_partitions,
581 debug_mem_sym_stats): Declare.
582 * tree-ssa-structalias.c (update_alias_info): Update call
583 sites, pure/const call sites and asm sites in structure
584 returned by gimple_mem_ref_stats.
585 Remove local variable IS_POTENTIAL_DEREF.
586 Increase NUM_DEREFS if the memory expression is a potential
587 dereference.
588 Call update_mem_sym_stats_from_stmt.
589 If the memory references memory, call
590 update_mem_sym_stats_from_stmt for all the direct memory
591 symbol references found.
592 (intra_create_variable_infos): Set noalias_state field for
593 pointer arguments according to the value of
594 flag_argument_noalias.
595 * tree-ssa-structalias.h (struct alias_info): Remove fields
596 num_calls_found and num_pure_const_calls_found.
597 (update_mem_sym_stats_from_stmt): Declare.
598 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
599 Set default value to 100.
600 (PARAM_AVG_ALIASED_VOPS): Define.
601
4bf371ea
RG
6022007-04-11 Richard Guenther <rguenther@suse.de>
603
604 PR middle-end/31530
605 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
606 a * -b + c as c - a * b if we honor sign dependent rounding.
607
266d11d8
BS
6082007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
609
610 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
611 bfin_expand_strmov.
612 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
613 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
614 variables.
615 (initialize_trampoline): Don't use old-style function definition.
616 (bfin_secondary_reload): Mark IN_P argument as unused.
617
e9793dae
SP
6182007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
619
620 PR tree-optimization/31343
621 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
622 (build_polynomial_chrec): Return a scalar when the evolution is zero.
623 * testsuite/gcc.dg/vect/pr31343.c: New.
624
54a88090
EC
6252007-04-10 Eric Christopher <echristo@apple.com>
626
627 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
628 * config/i386/i386.md (*cmpfp0): Use.
629 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
630 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
631 (fix_trunc<mode>_i386_fisttp): Ditto.
632 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
633 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
634 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
635 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
636 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
637 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
638 (unnamed_splitters): Ditto.
639 * config/i386/i386.c (output_fix_trunc): Assert that
640 we're not being passed a TFmode operand.
641
7c57be85
ZD
6422007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
643
644 PR tree-optimization/31526
645 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
646 n_basic_blocks to find newly added blocks.
647
0218c012
UB
6482007-04-10 Uros Bizjak <ubizjak@gmail.com>
649
650 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
651 alternative.
652 (fix_trunc<mode>si_sse): Ditto.
653 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
654 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
655 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
656 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
657 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
658 expander using SSEMODEF mode macro.
659 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
660 expander using SSEMODEF mode macro.
661 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
662 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
663 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
664 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
665 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
666 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
667 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
668 Macroize insn using X87MODEF mode macro.
669
3117d1b5
L
6702007-04-09 H.J. Lu <hongjiu.lu@intel.com>
671
672 * config/i386/sse.md (sse2_pinsrw): Removed.
673 (sse2_pextrw): Renamed to ...
674 (*sse2_pextrw): This.
675
c141e499
JH
6762007-04-09 Jan Hubicka <jh@suse.cz>
677
678 PR target/27869
679 * config/i386/sse.md
680 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
681 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
682 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
683 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
684
6e6e19cb
JH
6852007-04-09 Jan Hubicka <jh@suse.cz>
686
687 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
688 multiple fields of union.
689
c7b852c8
ZD
6902007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
691
692 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
693 (create_preheaders): Check that loops are available.
694 (fix_loop_structure): Clean up, improve comments.
695 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
696 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
697 state flags.
698 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
699 * predict.c (tree_estimate_probability): Do not call
700 calculate_dominance_info. Call create_preheaders.
701 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
702 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
703 flags.
704 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
705 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
706 * tree-cfg.c (tree_split_edge): Make an assert more precise.
707 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
708 arguments.
709
c586d32a
JH
7102007-04-08 Jan Hubicka <jh@suse.cz>
711
712 * tree.h (maybe_fold_offset_to_component_ref): Declare.
713 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
714 * fold-const.c (fold_unary): Use it.
715
136cdb22
AP
7162007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
717
718 * varasm.c (assemble_variable): Remove call to
719 lang_hooks.decls.prepare_assemble_variable.
720 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
721 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
722 * langhooks.h (lang_hooks_for_decls): Remove
723 prepare_assemble_variable.
724
77c1632f
MS
7252007-04-08 Mike Stump <mrs@apple.com>
726
727 * config/i386/i386.c: Use inc/dec on Core2.
728
cb9c159d
SB
7292007-04-08 Steven Bosscher <steven@gcc.gnu.org>
730
731 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
732 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
733 lhd_tree_inlining_end_inlining): Remove.
734 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
735 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
736 end_inlining hooks.
737 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
738 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
739 lhd_tree_inlining_end_inlining): Remove prototypes.
740 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
741 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
742 LANG_HOOKS_TREE_INLINING_START_INLINING,
743 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
744
745 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
746 not set it.
747
d8a1f0fb
AS
7482007-04-08 Anatoly Sokolov <aesok@post.ru>
749
750 PR target/29932
751 * config/avr/predicates.md (io_address_operand): Delete predicate.
752 (low_io_address_operand): Don't use 'mode' argument.
753 (higth_io_address_operand): Rename ...
754 (high_io_address_operand): ... to this. Don't use 'mode' argument.
755 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
756 for above change.
757
270c60bb
DB
7582007-04-07 Daniel Berlin <dberlin@dberlin.org>
759
760 Revert change removing staticp.
761
ee57a661
AS
7622007-04-07 Anatoly Sokolov <aesok@post.ru>
763
764 PR target/30289
54a88090 765 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
ee57a661
AS
766 earlyclobber.
767
ca178f85
BK
7682007-04-07 Bruce Korb <bkorb@gnu.org>
769
770 * c.opt: Add -Wformat-contains-nul.
771 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
772 -Wformat setting.
773 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
774 the NUL byte warning.
775
594dc048
L
7762007-04-07 H.J. Lu <hongjiu.lu@intel.com>
777
778 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
779
1df918ac
DB
7802007-04-06 Daniel Berlin <dberlin@dberlin.org>
781
782 * tree.c (staticp): No longer use staticp langhook.
783 * langhooks.c (lhd_staticp): Removed.
784 * langhooks.h (struct lang_hooks): Remove staticp.
785 * c-common.c (c_staticp): Remove.
786 * c-common.h (c_staticp): Ditto.
787 * langhooks-defs.h (lhd_staticp): Ditto.
788 (LHD_HOOKS_STATICP): Ditto
789 * tree.h (gcc_assert_lowered): New macro.
790
ac84e05e
ZD
7912007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
792
793 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
794 argument "reliable".
795 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
796 Add argument "reliable". Propagate it through calls.
797 (infer_loop_bounds_from_undefined): Derive number of iterations
798 estimates from references in blocks that do not dominate loop latch.
799 (gcov_type_to_double_int): New function.
800 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
801 and expected_loop_iterations_unbounded.
802 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
803 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
804 * tree-data-ref.c (estimated_loop_iterations): Export.
805 (get_references_in_stmt): Fix -- do not return addresses of local
806 objects.
807 * cfgloop.h (expected_loop_iterations_unbounded,
808 estimated_loop_iterations): Declare.
809
4de5c5d3
AT
8102007-04-06 Andreas Tobler <a.tobler@schweiz.org>
811
812 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
813
a344e3cb
UB
8142007-04-06 Uros Bizjak <ubizjak@gmail.com>
815
816 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
817 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
818 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
819 Use output_387_reg_move().
820 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
821 expander using X87MODEF12 mode macro.
822 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
823 choosing register preferences. Use output_387_reg_move().
824 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
825 instead of "x". Use output_387_reg_move().
826 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
827 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
828 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
829 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
830 Use output_387_reg_move().
831 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
832 mode macro.
833 (*truncxf?f_i387 splitter): Ditto.
834
9c269bf8
DB
8352007-04-06 Daniel Berlin <dberlin@dberlin.org>
836
837 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
838 LANG_HOOKS_SAFE_FROM_P.
839 * expr.c (safe_from_p): Remove langhook call.
840 * langhooks.h (lang_hooks): Remove safe_from_p.
841 (lhd_safe_from_p): Remove prototype.
842 * langhooks.c (lhd_safe_from_p): Remove.
54a88090 843
b521dcbe
JH
8442007-04-06 Jan Hubicka <jh@suse.cz>
845
846 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
847 functions.
848
d869c351
UB
8492007-04-06 Uros Bizjak <ubizjak@gmail.com>
850
851 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
852 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
853 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
854 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
855 alternative.
856 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
857 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
858
e4bec638
RH
8592007-04-05 Richard Henderson <rth@redhat.com>
860
861 * config/alpha/alpha.c (print_operand) [+]: Remove.
862 (alpha_end_function): Print nop if call at end of function.
863 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
864 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
865 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
866 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
867 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
868 the call pattern. Update peepholes to match.
869
44aea9ac
JJ
8702007-04-05 Janis Johnson <janis187@us.ibm.com>
871
872 * doc/extend.texi (Other Builtins): Add decimal float variants
873 of signbit.
874 * builtins.def: Ditto.
875 * builtins.c (expand_builtin): Ditto.
876
27120a59
UB
8772007-04-05 Uros Bizjak <ubizjak@gmail.com>
878 H.J. Lu <hongjiu.lu@intel.com>
879
880 PR target/31478
881 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
882 of V8HImode when calling ix86_binary_operator_ok.
883 (sse2_pmaddwd): Call ix86_binary_operator_ok.
884 (sdot_prodv8hi): Operands 1 and 2 must be register.
885
fa574e51
AO
8862007-04-05 Alexandre Oliva <aoliva@redhat.com>
887
888 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
889 initialize align to silence bogus warning.
890
dc808df6
AO
8912007-04-05 Alexandre Oliva <aoliva@redhat.com>
892
893 PR middle-end/22156
894 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
895 all_no_warning.
896 (struct sra_walk_fns): Remove use_all parameter from use.
897 (sra_hash_tree): Handle BIT_FIELD_REFs.
898 (sra_elt_hash): Don't hash bitfld blocks.
899 (sra_elt_eq): Skip them in parent compares as well. Handle
900 BIT_FIELD_REFs.
901 (sra_walk_expr): Don't maintain or pass down use_all_p.
902 (scan_use): Remove use_all parameter.
903 (scalarize_use): Likewise. Re-expand assignment to
904 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
905 output, and re-scalarize after output. Don't mark anything
906 for no warning.
907 (scalarize_ldst): Adjust.
908 (scalarize_walk_gimple_modify_statement): Likewise.
909 (build_element_name_1): Handle BIT_FIELD_REFs.
910 (instantiate_element): Don't warn for any element whose parent
911 is used as a whole.
912 (instantiate_missing_elements_1): Return the sra_elt.
913 (canon_type_for_field): New.
914 (try_instantiate_multiple_fields): New.
915 (instantiate_missing_elemnts): Use them.
916 (mark_no_warning): Removed.
917 (generate_one_element_ref): Handle BIT_FIELD_REFs.
918 (REPLDUP, sra_build_elt_assignment): New.
919 (generate_copy_inout): Use them.
920 (generate_element_copy): Likewise. Handle bitfld differences.
921 (generate_element_zero): Don't recurse for blocks. Use
922 sra_build_elt_assignment.
923 (generate_one_element_int): Take elt instead of var. Use
924 sra_build_elt_assignment.
925 (generate_element_init_1): Adjust.
926 (scalarize_use, scalarize_copy): Use REPLDUP.
927 (scalarize_ldst): Move assert before dereference.
928 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
929
21f7aaa4
SB
9302007-04-05 Steven Bosscher <steven@gcc.gnu.org>
931
932 * regmove.c: Fix unused variable warnings due to previous commit.
933
a78f3e71
SB
9342007-04-05 Steven Bosscher <steven@gcc.gnu.org>
935
936 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
937 (regmove_bb_head): Remove.
938 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
939 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
940 problems with fixup_match_1.
941 Don't initialize/free regmove_bb_head.
942
943 (reg_is_remote_constant_p): If an insn is in the same basic block
944 but not before INSN, consider it remote, too.
945
f9ca0dee
AS
9462007-04-05 Anatoly Sokolov <aesok@post.ru>
947
948 PR target/25448
54a88090 949 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
f9ca0dee
AS
950 DECL_ASSEMBLER_NAME, not the DECL_NAME.
951
7706ca5d
L
9522007-04-05 H.J. Lu <hongjiu.lu@intel.com>
953
954 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
955 (CONDITIONAL_REGISTER_USAGE): Likewise.
956
51a6c5b3
RH
9572007-04-04 Richard Henderson <rth@redhat.com>
958
959 * config/alpha/lib1funcs.asm: Remove unused file.
960
b5456e04
BM
9612007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
962
963 PR other/31356
964 * opts.c (print_specific_help): Fix --help=<language>
965 header line.
966 (common_handle_option): Support --help=common.
967
2c4c82dd
BM
9682007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
969
970 PR other/31353
971 * gcc.c (main): Do not run the linker if
972 print_subprocess_help indicates that it shouldn't be
973 run.
974
5bb43e6d
BM
9752007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
976
977 PR doc/31355
978 * doc/invoke.texi (--help=): Document <languages> value, fix
979 formatting in tables of values.
980
6acd8838
DS
9812007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
982
983 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
984 dllimport attribute of virtual methods.
985
c6681463
CL
9862007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
987
988 * config/score/crti.asm: Change _bss_start to __bss_start.
989 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
990 (OUTGOING_REG_PARM_STACK_SPACE) update.
991 * config/score/score.opt: add options to make backend support
992 score5, score5u, score7 and score7d.
993 * config/score/score.md: Likewise.
994 * config/score/misc.md: Likewise.
995 * config/score/mac.md: Likewise.
996 * doc/invoke.texi: Likewise.
997 * doc/md.texi: update constraints define.
998
fdd84500
RH
9992007-04-03 Richard Henderson <rth@redhat.com>
1000
1001 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
1002 an appropriate type, use the mode instead.
1003
9200d6c8
RS
10042007-04-03 Richard Sandiford <richard@codesourcery.com>
1005
1006 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
1007 Set the default --with-arch setting to mips2.
1008 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
1009 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
1010 (MULTILIB_OSDIRNAMES): Delete.
1011 (MULTILIB_DIRNAMES): Define.
1012 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
1013 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
1014 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
1015 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
1016 VXWORKS_OS_CPP_BUILTINS.
1017 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
1018 (MIPS_DEBUGGING_INFO): Undefine.
1019 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
1020
0a9430a8
JJ
10212007-04-03 Jakub Jelinek <jakub@redhat.com>
1022
1023 PR middle-end/30704
1024 * fold-const.c (native_encode_real): Encode real.c provided longs
1025 as a series of 32-bit native integers.
1026 (native_interpret_real): Interpret buffer as a series of 32-bit
1027 native integers.
1028
5be527d0
RG
10292007-04-03 Richard Guenther <rguenther@suse.de>
1030
1031 * genpreds.c (write_insn_constraint_len): Write function
1032 optimized for CONSTRAINT_LEN implementation.
1033 (write_tm_preds_h): Output insn_constraint_len inline and
1034 use it for CONSTRAINT_LEN.
1035 (write_insn_preds_c): Don't output insn_constraint_len.
1036 * doc/md.texi (define_register_constraint): Document multi-letter
1037 constraints shall have the same length if they start with the same
1038 letter.
1039
81e864cb
UB
10402007-04-03 Uros Bizjak <ubizjak@gmail.com>
1041
1042 PR target/31175
1043 * config/i386/i386.md (isinf<mode>2): Expand only when
1044 TARGET_C99_FUNCTIONS is set.
1045
577565f9
UB
10462007-04-03 Uros Bizjak <ubizjak@gmail.com>
1047
1048 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
1049 (x86_64-*-linux*): Ditto.
1050 * config/i386/i386.opt (mpc): New option.
1051 * config/i386/i386.c (overrride_options): Handle
1052 ix87_precision_string.
1053 * config/i386/crtprec.c: New file.
1054 * config/i386/t-crtpc: Ditto.
1055 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
1056 and -mpc80 options.
1057 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
1058 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
1059 crtprec32.o, crtprec64.o and crtprec80.o.
1060
1061 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
1062 and -mpc80 options.
1063 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
1064
cb7ad97b
EC
10652007-04-02 Eric Christopher <echristo@apple.com>
1066
1067 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
1068 limitations on darwin.
1069
c8bbabf2
AS
10702007-04-02 Anatoly Sokolov <aesok@post.ru>
1071
1072 PR target/31137
1073 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
1074
f71e957e
DK
10752007-04-02 Dave Korn <dave.korn@artimi.com>
1076
ae65d512 1077 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
cb7ad97b 1078
c82476bf
DK
10792007-04-02 Dave Korn <dave.korn@artimi.com>
1080
ae65d512
DK
1081 * libgcc2.h (exception_descriptor): Don't forward-declare.
1082 (__get_eh_table_language, __get_eh_table_version): Delete
c82476bf
DK
1083 prototypes of long-dead functions.
1084
53a853de
DB
10852007-04-01 Daniel Berlin <dberlin@dberlin.org>
1086
1087 * ebitmap.h: New file
1088 * ebitmap.c: New file
1089 * Makefile.in (ebitmap.o): New target.
1090
26cb3993
JH
10912007-04-01 Jan Hubicka <jh@suse.cz>
1092
1093 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
1094 before very first instruction.
1095
10962007-04-01 Jan Hubicka <jh@suse.cz>
1097
1098 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
1099 waring on 64bit hosts.
1100 * bitmap.h: Fix typo in bitmap_head_def.
1101
5b52976b
SB
11022007-04-01 Steven Bosscher <steven@gcc.gnu.org>
1103
1104 PR rtl-optimization/31391
1105 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
1106 into a DELETED_LABEL note, and the label is in an empty basic
1107 block, update BB_END as well as BB_HEAD.
1108
af33044f
RH
11092007-04-01 Richard Henderson <rth@redhat.com>
1110
1111 PR tree-optimization/31169
1112 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
1113 to varying if the range is outside [0, prec-1].
1114
1732457d
RS
11152007-04-01 Richard Sandiford <richard@codesourcery.com>
1116
1117 PR target/31388
1118 * config/mips/mips.md (load_const_gp): New insn.
1119 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
1120 the MIPS16 GP pseudo register if no_new_pseudos.
1121 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
1122
ee05ef56
AP
11232007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
1124
1125 PR target/31364
1126 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
1127 secureplt.
1128 (call_value): Likewise.
1129
c9516c38 11302007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
577565f9 1131 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
c9516c38
WB
1132
1133 PR 14737
1134 * doc/invoke.texi: (optimization options): Reword description
1135 of -ffast-math. Document its primary purpose.
cb7ad97b 1136
6be42dd4
RG
11372007-03-31 Richard Guenther <rguenther@suse.de>
1138
1139 * omp-low.c (splay-tree.h): Include.
1140 (lookup_decl): Replace splay-tree usage by pointer-map.
1141 (maybe_lookup_decl): Likewise.
1142 (new_omp_context): Likewise.
1143 (delete_omp_context): Likewise.
1144 * gimplify.c (splay-tree.h): Include.
1145 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
1146 pointer-map.
1147 (remap_ssa_name): Likewise.
1148 (remap_decl): Likewise.
1149 (remap_type_1): Likewise.
1150 (remap_type): Likewise.
1151 (copy_body_r): Likewise.
1152 (expand_call_inline): Likewise.
1153 (clone_body): Likewise.
1154 (copy_tree_r): Likewise.
1155 (remap_save_expr): Likewise.
1156 (unsave_r): Likewise.
1157 (unsave_expr_now): Likewise.
1158 (tree_function_versioning): Likewise.
1159 (build_duplicate_type): Likewise.
1160 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
1161 (struct copy_body_data): Replace splay-tree by pointer-map.
1162 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
1163 not $(SPLAY_TREE_H).
1164 (gimplify.o): Depend on $(SPLAY_TREE_H).
1165 (omp-low.p): Likewise.
1166
d54a92b5
AS
11672007-03-31 Anatoly Sokolov <aesok@post.ru>
1168
cb7ad97b 1169 * config/avr/predicates.md (even_register_operand,
d54a92b5
AS
1170 odd_register_operand): New predicates.
1171 * config/avr/avr.md (movw peephole2): New.
1172 (movw_r peephole2): New.
1173
47ecd38d
RAE
11742007-03-30 Rafael Avila de Espindola <espindola@google.com>
1175
1176 * tree.h (get_signed_or_unsigned_type): New.
1177 * fold-const.c (operand_equal_for_comparison_p): Use
1178 get_signed_or_unsigned_type instead of
1179 lang_hooks.types.signed_or_unsigned_type.
1180 * expr.c (store_expr): Ditto.
1181 * langhooks.c (get_signed_or_unsigned_type): New.
1182 (lhd_signed_or_unsigned_type): New.
1183 * langhooks.h (lhd_signed_or_unsigned_type): New.
1184 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
1185
ccf8e764
RH
11862007-03-30 Richard Henderson <rth@redhat.com>
1187
1188 * tree-ssa-loop-ivopts.c: Include target.h.
1189 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
1190 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
1191 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
1192 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
1193
11942007-03-30 Richard Henderson <rth@redhat.com>
1195 Kai Tietz <kai.tietz@onevision.com>
1196
1197 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
1198 default for 64-bit.
1199 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
1200 (TARGET_64BIT_MS_ABI): New.
1201 (DBX_REGISTER_NUMBER): Handle 64-bit.
1202 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
1203 (LONG_TYPE_SIZE): Force to 32.
1204 (REG_PARM_STACK_SPACE): New.
1205 (OUTGOING_REG_PARM_STACK_SPACE): New.
1206 (REGPARM_MAX, SSE_REGPARM_MAX): New.
1207 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
1208 (STACK_BOUNDARY): Use 128 for 64-bit.
1209 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
1210 Add 64-bit implementation.
1211 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
1212 argument unused.
1213 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
1214 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
1215 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
1216 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
1217 (ix86_handle_cconv_attribute): Don't warn when ignoring if
1218 TARGET_64BIT_MS_ABI.
1219 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
1220 (ix86_pass_by_reference): Likewise.
1221 (ix86_function_value_regno_p): Likewise.
1222 (ix86_build_builtin_va_list): Likewise.
1223 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1224 (function_arg_advance_ms_64): New.
1225 (function_arg_advance): Call it.
1226 (function_arg_ms_64): New.
1227 (function_arg): Call it.
1228 (function_value_ms_64): New.
1229 (ix86_function_value_1): Call it.
1230 (return_in_memory_ms_64): New.
1231 (ix86_return_in_memory): Call it.
1232 (setup_incoming_varargs_ms_64): New.
1233 (ix86_setup_incoming_varargs): Call it.
1234 (ix86_expand_prologue): Handle 64-bit stack probing.
1235 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
1236 (output_pic_addr_const): Likewise.
1237 (x86_this_parameter): Likewise.
1238 (x86_output_mi_thunk): Likewise.
1239 (x86_function_profiler): Likewise.
1240 (TARGET_STRICT_ARGUMENT_NAMING): New.
1241 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
1242 (TARGET_64BIT_MS_ABI): New.
1243 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
1244 * config/i386/i386.md (allocate_stack_worker): Remove.
1245 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
1246 describe the clobber of eax without a match_scratch.
1247 (allocate_stack_worker_postreload): Remove.
1248 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
1249 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
1250 (allocate_stack_worker_rex64_postreload): Remove.
1251 (allocate_stack): Handle 64-bit.
1252 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
1253 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
1254 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
1255 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
1256 (STANDARD_STARTFILE_PREFIX_1): Likewise.
1257 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
1258 * config.build (x86_64-*-mingw*): New host.
1259 * config.host (x86_64-*-mingw*): New host.
1260 * config.gcc (x86_64-*-mingw*): New target.
1261 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
1262
121de39f
RH
12632007-03-30 Richard Henderson <rth@redhat.com>
1264 Kai Tietz <kai.tietz@onevision.com>
1265
1266 * c-pragma.c (struct def_pragma_macro_value): New.
1267 (struct def_pragma_macro): New.
1268 (pushed_macro_table): New.
1269 (dpm_hash, dpm_eq): New.
1270 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
1271 (init_pragma): Install them.
1272 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
1273
6c7ac15d
AS
12742007-03-30 Anatoly Sokolov <aesok@post.ru>
1275
cb7ad97b 1276 * config/avr/avr.c (avr_override_options): Clear
6c7ac15d
AS
1277 'flag_delete_null_pointer_checks'.
1278
cb68ec50
PC
12792007-03-30 Paolo Carlini <pcarlini@suse.de>
1280
1281 PR c++/26099
1282 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
1283 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
1284 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
1285 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
1286 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
1287 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
1288 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
1289 C++ extensions.
1290 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
1291
c7a0240a
SB
12922007-03-30 Steven Bosscher <steven@gcc.gnu.org>
1293
1294 * regmove.c: Move all of pass_stack_adjustments from here...
1295 * combine-stack-adj.c: ...to this new file.
1296 * Makefile.in: Add rules for combine-stack-adj.o.
1297
f86289d5
ZD
12982007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
1299
1300 PR tree-optimization/31383
1301 * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
1302 to have the same length.
1303
4f40bddf
JH
13042007-03-30 Jan Hubicka <jh@suse.cz>
1305
59af4391 1306 PR middle-end/30700
cb7ad97b 1307 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
4f40bddf
JH
1308 availablility; add more sanity checking; ask varpool only about
1309 VAR_DECL.
1310
58c11467
RH
13112007-03-29 Richard Henderson <rth@redhat.com>
1312
1313 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
1314 to decide, but __SIZEOF_LONG_LONG__.
1315
5b77de89
RH
13162007-03-29 Richard Henderson <rth@redhat.com>
1317
1318 * emutls.c (struct __emutls_array): New.
1319 (emutls_destroy): Use it instead of casting element 0 from void*.
1320 (__emutls_get_address): Likewise.
1321
da489f73
RH
13222007-03-29 Richard Henderson <rth@redhat.com>
1323
1324 * varasm.c (initializer_constant_valid_p): Don't deny
1325 DECL_DLLIMPORT_P on functions.
1326
1327 * config/i386/cygming.h: Remove function declarations.
1328 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
1329 (ASM_OUTPUT_LABELREF): Remove.
1330 (COMMON_ASM_OP): Remove.
1331 (ASM_OUTPUT_COMMON): Remove.
1332 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
1333 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
1334 (ASM_DECLARE_FUNCTION_NAME): Likewise.
1335 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
1336 Rename from TARGET_ENCODE_SECTION_INFO.
1337 * config/i386/netware.h: Likewise.
1338 * config/i386/i386-protos.h: Update.
1339 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
1340 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
1341 (legitimate_constant_p): Reject dllimports.
1342 (dllimport_map, get_dllimport_decl): New.
1343 (legitimize_dllimport_symbol): New.
1344 (legitimize_address, ix86_expand_move): Use it.
1345 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
1346 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
1347 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
1348 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
1349 * config/i386/predicates.md (constant_call_address_operand): Only
1350 accept symbols; reject dllimport_p symbols.
1351 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
1352 i386_pe_maybe_record_exported_symbol.
1353 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
1354 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
1355 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
1356 trust the setting of DECL_DLLIMPORT_P.
1357 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
1358 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
1359 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
1360 tidy the argument scanning loop.
1361 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
1362 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
1363 (i386_pe_strip_name_encoding): Remove.
1364 (i386_pe_binds_local_p): New.
1365 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
1366 (i386_pe_output_labelref): Remove.
1367 (i386_pe_asm_output_aligned_decl_common): New.
1368 (i386_pe_maybe_record_exported_symbol): Rename from
1369 i386_pe_record_exported_symbol; check for dllexported symbols.
1370
311e3ff0
ZW
13712007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
1372
1373 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
1374 add comment explaining why vsnprintf cannot be used.
1375
e89886a0
DG
13762007-03-29 Douglas Gregor <doug.gregor@gmail.com>
1377
1378 PR tree-optimization/30666
1379 * tree.c (build_complex_type): When creating type names for DWARF2
1380 debug info, create TYPE_DECLs for TYPE_NAME instead of
1381 IDENTIFIER_NODEs.
1382 (build_common_tree_nodes_2): Use build_complex_type when building
1383 predefined complex types, to preserve canonical types.
1384
cab6e771
SB
13852007-03-29 Steven Bosscher <steven@gcc.gnu.org>
1386
1387 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
1388 (noce_get_alt_condition): Look at it to determine whether to
1389 reverse the condition or not.
1390 (noce_get_condition): Substitute the truth for lies.
1391 (noce_find_if_block): Set the then_else_reversed field.
1392
ed31d14c
LP
13932007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
1394
1395 * config/fr30/fr30.md (movdi): Do not accept immediates as the
1396 destination of this insn.
1397 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
1398 than calling gen_rtx_SET directly. Use r0 to hold the value of
1399 'address + 4' rather than a stack based temporary which can be
1400 mis-optimized away.
cb7ad97b 1401
833cd70a
AK
14022007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
1403
1404 * config/s390/s390.c (s390_secondary_input_reload_class,
1405 s390_secondary_output_reload_class): Functions removed.
1406 (s390_secondary_reload): New function.
1407 (TARGET_SECONDARY_RELOAD): Target macro defined.
1408 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
1409 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
1410 * config/s390/s390.md ("reload_outti", "reload_outdi",
1411 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
1412 "reload_out<mode>"): Expanders removed.
1413 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
1414 "reload<mode>_nonoffmem_out"): Expanders added.
1415
040f69eb
AK
14162007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
1417
1418 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
1419 SRC->DEST replacement failed anyway.
1420
4beb5c4b
MS
14212007-03-28 Mike Stump <mrs@apple.com>
1422
1423 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
1424 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
ab1da110 1425 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
4beb5c4b 1426
aafc814c
DR
14272007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1428
1429 * config.gcc: Accept barcelona as a variant of amdfam10.
1430 * config/i386/i386.c (override_options): Likewise.
1431 * doc/invoke.texi: Likewise.
cb7ad97b 1432
8975ae22
EB
14332007-03-28 Eric Botcazou <ebotcazou@adacore.com>
1434
1435 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
1436 offsets for BIT_FIELD_REF and COMPONENT_REF.
1437
1c2e50d8
RG
14382007-03-28 Richard Guenther <rguenther@suse.de>
1439
1440 * tree.c (is_global_var): Move ...
1441 * tree-flow-inline.h (is_global_var): ... here.
1442 * tree.h (is_global_var): Remove declaration.
1443
a646aded
UB
14442007-03-28 Uros Bizjak <ubizjak@gmail.com>
1445
1446 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
1447 option.
1448 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
1449 * config/i386/i386.c (ix86_tune_features): Initialize new
1450 tuning option.
1451 * config/i386/predicates.md (promotable_binary_operator): Use
1452 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
1453
e701c05c
GZ
14542007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
1455
1456 PR target/31380
1457 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
1458
446347f9 14592007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
08937250
LP
1460
1461 * config/fr30/fr30.md (movsi_internal): Change destination
cb7ad97b 1462 constraint from m to V and add m to the end.
08937250 1463
52618376
CB
14642007-03-28 Christian Bruel <christian.bruel@st.com>
1465
1466 * config/sh/sh.md (movsi_i): Fix type attribute.
1467
446347f9 14682007-03-28 Christian Bruel <christian.bruel@st.com>
bbccf908
CB
1469
1470 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
1471 (movsf_ie): Likewise.
1472
27a0ce7d
CB
14732007-03-28 Christian Bruel <christian.bruel@st.com>
1474
1475 * config.gcc: Add sh4-300 to multilib.
1476 * config/sh/t-mlib-sh4-300: New file.
1477
99cd7dd0
AK
14782007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
1479
1480 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
1481 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
1482 fix_trunc<mode>di2.
cb7ad97b 1483 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
99cd7dd0
AK
1484 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
1485 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
1486 "fixuns_trunctddi2"): Whitespace fix.
1487
e318fc8f
KK
14882007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
1489
1490 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
1491 the definition of struct sh_args.
1492 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
1493 CALL_COOKIE_INT_REG_GET): Likewise.
1494
96647293
SB
14952007-03-28 Steven Bosscher <steven@gcc.gnu.org>
1496
1497 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
1498 transformations are applied successfully.
1499
00ffc97c
DG
15002007-03-27 Douglas Gregor <doug.gregor@gmail.com>
1501
1502 * tree.c (tree_contains_struct): Permit 512 tree codes.
1503 * tree.h (tree_contains_struct): Ditto.
1504 (MAX_TREE_CODES): Ditto.
1505 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
1506 SPARE member to store remaining padding bits.
1507
39418b53
AS
15082007-03-27 Anatoly Sokolov <aesok@post.ru>
1509
cb7ad97b 1510 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
39418b53
AS
1511 architecture.
1512
a3bba767
JJ
15132007-03-27 Janis Johnson <janis187@us.ibm.com>
1514
0d74c0ee
JJ
1515 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
1516 * configure: Regenerate.
1517
a3bba767
JJ
1518 * configure: Regenerate using the correct version of autoconf.
1519
15202007-03-27 Anatoly Sokolov <aesok@post.ru>
2cd11105
AS
1521
1522 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
1523 pointer regs.
1524 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
1525 regs to "__SP_L__" and "__SP_H__".
1526
c21c775a
RG
15272007-03-27 Richard Guenther <rguenther@suse.de>
1528
1529 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
cb7ad97b 1530 computations with it with a HOST_WIDE_INT variable.
c21c775a 1531
6b692a83
MS
15322007-03-26 Mike Stump <mrs@apple.com>
1533
1534 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
1535 objective-c-header, objective-c++-header and objc++-cpp-output
1536 support.
1537 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
1538
24bfafbc
RH
15392007-03-26 Richard Henderson <rth@redhat.com>
1540
a646aded
UB
1541 PR target/31361
1542 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
1543 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
1544 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
1545 IX86_BUILTIN_PSRLQ128): New.
1546 (ix86_init_mmx_sse_builtins): Add them.
1547 (ix86_expand_builtin): Expand them.
1548 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
1549 operand 2 be TImode.
1550 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
1551 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
1552 _mm_srli_epi64): Mark __B const.
1553 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
1554 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
cb7ad97b 1555 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
a646aded 1556 new two-vector shift builtins.
24bfafbc 1557
fa633851
ILT
15582007-03-26 Ian Lance Taylor <iant@google.com>
1559
1560 PR tree-optimization/31345
1561 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
1562 [+INF, +INF(OVF)] into VARYING.
1563
cff4720f
ZW
15642007-03-26 Zack Weinberg <zackw@panix.com>
1565
01d419ae
ZW
1566 * gengtype-parse.c: New file.
1567 * gengtype-yacc.y: Delete.
1568 * gengtype-lex.l: Don't include gengtype-yacc.h.
1569 Define YY_DECL and yyterminate appropriately for recursive
1570 descent parser. yylval is now a string out-parameter to yylex.
1571 (HWS, EOID): New shorthand.
1572 (IWORD): Add a couple more types.
1573 (yylex): Add a setup stanza. Remove the complex rules for
1574 detecting GTY'ed types and typedefs; replace with simple
1575 keyword detectors. Adjust everything for the changed
1576 definition of yylval. Ignore all pp-directives, not just #define.
1577 (yyerror): Delete.
1578 (parse_file): Rename yybegin; do not call yyparse.
1579 (yyend): New.
1580 * gengtype.c (xasprintf): Export again.
1581 (this_file): New. Use everywhere __FILE__ was being used.
1582 (get_lang_bitmap): Special case types defined in gengtype.c.
1583 (do_typedef, new_structure): Suppress definition of certain types.
1584 (new_structure): Improve diagnostics of duplicate definitions.
1585 Make sure location_s is associated with input.h.
1586 (nreverse_pairs, define_location_structures): New functions.
1587 (main): Improve tagging of kludge types. Remove old kludges
1588 for input.h types; use define_location_structures.
1589 * gengtype.h: Update prototypes. Define token codes here.
1590 * Makefile.in: Remove all references to gengtype-yacc.
1591 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
1592 and gengtype.
1593 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
1594 add GTY((skip)) to the field that's only conditionally there.
1595 * doc/install.texi: Document that Bison is no longer required
1596 unless building treelang.
1597
11a67599
ZW
1598 * gengtype.c: Don't include gtyp-gen.h.
1599 (srcdir): Declare here.
1600 (base_files, lang_dir_names): Allocate dynamically.
1601 (gt_files, num_gt_files, num_lang_dirs): New globals.
1602 (measure_input_list, read_input_line, read_input_list)
1603 (set_lang_bitmap): New functions.
1604 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
1605 simplify, relying on read_input_list to set up the bitmaps.
1606 (main): Arguments are no longer unused. Check for correct number
1607 of command line arguments, set srcdir and srcdir_len, then call
1608 read_input_list, before doing anything else. No need to worry
1609 about duplicates in main loop.
1610 * configure.ac: Simplify the calculation of all_gtfiles.
1611 Put language tags in there. Don't set or substitute
1612 all_gtfiles_files_langs or all_gtfiles_files_frags.
1613 * Makefile.in: Revamp the way gengtype is invoked, now that it
1614 takes a file on its command line with a much simpler format.
1615 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
1616 (GTFILES): Remove duplicates and C source files.
1617 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
1618 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
1619 * configure: Regenerate.
1620
065ae611
ZW
1621 * gengtype.h: Remove all type definitions to gengtype.c; leave
1622 only definitions of options_p, type_p, and pair_p as opaque
1623 pointers. Update prototypes.
1624 * gengtype.c: Many type definitions moved here from gengtype.h.
1625 Consolidate type definitions at the top of the file.
1626 (xvasprintf): Delete.
1627 (xasprintf): Make static.
1628 (create_nested_pointer_option): Add 'next' parameter.
1629 (create_field_all, create_field_at): New functions.
1630 (create_field): Now a thin wrapper around create_field_all.
1631 (create_optional_field): Rename create_optional_field_ and add
1632 line argument. Original name is now a macro which supplies
1633 __LINE__.
1634 (oprintf): Use vsnprintf directly.
1635 (close_output_files): Use fatal rather than perror/exit.
1636 (note_def_vec, note_def_vec_alloc): Use create_field_at.
1637 (main): Set progname. Don't use exit.
1638 * gengtype-yacc.y (struct_fields): Use create_field_at.
1639 (option, optionseqopt): Delete.
1640 (optionseq): Consolidate productions from option here so we
1641 can use the first argument to create_option.
1642
17defa6a
ZW
1643 * gengtype-lex.l: Distinguish unions from structures in the
1644 token type. Don't call find_structure; return the tag as a string.
1645 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
1646 Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
1647 Reorganize typedef_struct production accordingly.
1648 Use create_nested_ptr_option.
1649 * gengtype.c (create_nested_ptr_option): New function.
1650 * gengtype.h: Declare it.
1651
95161faf
ZW
1652 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
1653 (string_type): Don't declare.
1654 (do_scalar_typedef): Declare.
1655 (create_scalar_type): Update prototype.
1656 * gengtype.c (string_type): Make static.
1657 (scalar_nonchar, scalar_char): New.
1658 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
1659 (resolve_typedef): Use scalar_nonchar for error recovery.
1660 (create_scalar_type): Remove name_len field. Return scalar_char
1661 or scalar_nonchar as appropriate.
1662 (adjust_field_type): Look at scalar_is_char boolean to decide whether
1663 to use string_type.
1664 (throughout): Use scalar_nonchar instead of calling create_scalar_type,
1665 whenever possible.
1666 (main): Initialize scalar_char and scalar_nonchar before calling
1667 gen_rtx_next.
1668 * gengtype-lex.l: Adjust for removal of second argument to
1669 create_scalar_type. Use yylval.s instead of yylval.t when
1670 returning SCALAR.
1671 * gengtype-yacc.y: Type of SCALAR is string. Call
1672 create_scalar_type from type:SCALAR rule. Adjust for removal of
1673 second argument to create_scalar_type.
1674
4a399aef
ZW
1675 * vec.h: Remove all #if IN_GENGTYPE blocks.
1676 Add comment saying that changes may require adjustments to gengtype.
1677 * gengtype.c: Don't include coretypes.h or tm.h.
1678 Add comment to inclusion of errors.h.
1679 (note_def_vec, note_def_vec_alloc): New functions.
1680 * gengtype.h: Declare new functions.
1681 * gengtype-lex.l: Don't include coretypes.h.
1682 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
1683 Delete.
1684 (update_lineno): Remove unnecessary prototype.
1685 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
1686 (VEC rule): Just return VEC_TOKEN.
1687 * gengtype-yacc.y (VEC_TOKEN): New token type.
1688 (type): Add a production for VEC(a,b).
1689 * Makefile.in: Update dependencies.
1690
d287ace6
ZW
1691 * gengtype-lex.l: Remove rules for parsing pointer-to-function
1692 typedefs that use the old PARAMS macro.
1693
cff4720f
ZW
1694 * gengtype-lex.l: Remove all rules and states relating to yacc
1695 input files.
1696 * gengtype-yacc.y: Similarly.
1697 * gengtype.c (note_yacc_type): Delete function.
1698 * gengtype.h: Update prototypes.
1699
71175bf3
JM
17002007-03-26 Joseph Myers <joseph@codesourcery.com>
1701
1702 * tree-pretty-print.c (dump_generic_node): Report precision of
1703 unnamed integer types.
1704
93242b9c
SB
17052007-03-26 Steven Bosscher <steven@gcc.gnu.org>
1706
1707 * ifcvt.c (noce_try_store_flag_constants): Don't check
1708 no_new_pseudos here.
1709 (noce_try_store_flag_constants): Don't check no_new_pseudos.
1710 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
1711 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
1712 noce_try_sign_mask): Likewise.
1713 (if_convert): Check no_new_pseudos here.
1714
1715 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
1716 Remove prototypes.
1717 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
1718 (noce_get_condition): Handle new then_else_reversed argument.
1719 (noce_init_if_info): Remove, fold into noce_find_if_block.
1720 (noce_process_if_block): Take a struct noce_if_info as the
1721 argument. Don't set up one based on ce_if_info. Update pointer
1722 references accordingly.
1723 (cond_move_process_if_block): Likewise.
1724 (process_if_block): Removed.
1725 (find_if_block): Removed. Move functionality two new functions,
1726 noce_find_if_block and cond_exec_find_if_block.
1727 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
1728 blocks and the symmetric IF-ELSE-JOIN case.
1729 (cond_exec_find_if_block): Also new function mostly based on old
1730 find_if_block and process_if_block.
1731 (find_if_header): Replace find_if_block call with separately
1732 guarded calls to noce_find_if_block and cond_exec_find_if_block.
1733 (find_cond_trap): Update noce_get_condition call.
1734 (dead_or_predicable): Likewise.
1735
85acef0e
JJ
17362007-03-26 Jakub Jelinek <jakub@redhat.com>
1737
1738 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
1739 Remove.
1740 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
1741 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
1742 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
1743 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
a646aded 1744 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
85acef0e
JJ
1745 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
1746 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
1747 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
1748 __builtin_ia32_psrad128 builtins.
1749
8dde5924
UB
17502007-03-26 Uros Bizjak <ubizjak@gmail.com>
1751
1752 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
1753 * config/i386/constraints.md
1754 (define_constraint "I"): Use IN_RANGE macro.
1755 (define_constraint "J"): Ditto.
1756 (define_constraint "K"): Ditto.
1757 (define_constraint "M"): Ditto.
1758 (define_constraint "N"): Ditto.
1759 (define_constraint "O"): Ditto.
1760 * config/i386/predicates.md
1761 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
1762 (define_predicate "const_0_to_3_operand"): Ditto.
1763 (define_predicate "const_0_to_7_operand"): Ditto.
1764 (define_predicate "const_0_to_15_operand"): Ditto.
1765 (define_predicate "const_0_to_63_operand"): Ditto.
1766 (define_predicate "const_0_to_255_operand"): Ditto.
1767 (define_predicate "const_1_to_31_operand"): Ditto.
1768 (define_predicate "const_2_to_3_operand"): Ditto.
1769 (define_predicate "const_4_to_7_operand"): Ditto.
1770
a5ad2017
DE
17712007-03-25 David Edelsohn <edelsohn@gnu.org>
1772
1773 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
1774 in SImode for save_world.
1775 * config/rs6000/altivec.md (save_world, restore_world): Convert to
1776 LR hard reg.
1777
5773afc5
DN
17782007-03-25 Dorit Nuzman <dorit@il.ibm.com>
1779
1780 PR tree-optimization/30784
1781 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
1782 BIT_FIELD_REF.
1783
3ece6cc2
RE
17842007-03-25 Revital Eres <eres@il.ibm.com>
1785
cff4720f
ZW
1786 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
1787 Fold movement_possibility function into it.
3ece6cc2 1788
e65a3857
DE
17892007-03-25 David Edelsohn <edelsohn@gnu.org>
1790
1791 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
1792 (load_macho_picbase_{si,di}): Convert to LR hard reg.
1793 (call_indirect_nonlocal_darwin64): Same.
1794 (call_nonlocal_darwin64): Same.
1795 (call_value_indirect_nonlocal_darwin64): Same.
1796 (call_value_nonlocal_darwin64): Same.
1797 (sibcall_nonlocal_darwin64): Same.
1798 (sibcall_value_nonlocal_darwin64): Same.
1799 (sibcall_symbolic_64): Same.
1800 (sibcall_value_symbolic_64): Same.
1801 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
1802 LR pseudo.
1803 (rs6000_emit_load_toc_table): Same.
1804 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
1805 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
1806 (mull_call): Same.
1807 (divss_call): Same.
1808 (divus_call): Same.
1809 (quoss_call): Same.
1810 (quous_call): Same.
1811 (load_toc_v4_pic_si): Same
1812 (load_toc_v4_PIC_1): Same.
1813 (load_toc_v4_PIC_1b): Same.
1814 (call_indirect_aix{32,64}): Same.
1815 (call_value_indirect_aix{32,64}): Same.
1816 (call): Same.
1817 (call_value): Same.
1818 (call_local{32,64}): Same.
1819 (call_value_local{32,64}): Same.
1820 (call_indirect_nonlocal_aix{32,64}): Same.
1821 (call_nonlocal_aix{32,64}): Same.
1822 (call_value_indirect_nonlocal_aix{32,64}): Same.
1823 (call_value_nonlocal_aix{32,64}): Same.
1824 (call_indirect_nonlocal_sysv<mode>): Same.
1825 (call_nonlocal_sysv<mode>): Same.
1826 (call_value_indirect_nonlocal_sysv<mode>): Same.
1827 (call_value_nonlocal_sysv<mode>): Same.
1828 (sibcall): Same.
1829 (sibcall_local{32,64}): Same.
1830 (sibcall_value_local{32,64}): Same.
1831 (sibcall_nonlocal_aix{32,64}): Same.
1832 (sibcall_value_nonlocal_aix{32,64}): Same.
1833 (sibcall_nonlocal_sysv<mode>): Same.
1834 (sibcall_value): Same.
1835 (sibcall_value_nonlocal_sysv<mode>): Same.
1836
3303be15
PB
18372007-03-24 Paul Brook <paul@codesourcery.com>
1838
1839 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
1840 * config/arm/linux-eabi.h: Remove legacy syscall hack.
1841
13f70342
RH
18422007-03-24 Richard Henderson <rth@redhat.com>
1843
1844 * config/ia64/constraints.md: New file.
1845 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
1846 satisfies_constraint_?.
1847 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
1848 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
1849 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
1850 ia64_output_mi_thunk): Likewise.
1851 (ia64_const_ok_for_letter_p): Remove.
1852 (ia64_const_double_ok_for_letter_p): Remove.
1853 (ia64_extra_constraint): Remove.
1854 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
1855 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
1856 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
1857 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
1858 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
1859 EXTRA_MEMORY_CONSTRAINT): Remove.
1860 * config/ia64/ia64.md: Include constriants.md. Replace
1861 CONST_OK_FOR_? with satisfies_constraint_?.
1862
79b87c74
MM
18632007-03-23 Michael Meissner <michael.meissner@amd.com>
1864 H.J. Lu <hongjiu.lu@intel.com>
1865
1866 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
1867 DPD or BID name.
1868 (name macros): Use DPD_BID_NAME to convert names properly.
1869
1870 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
1871 decimal floating point format.
1872 (init_floating_libfuncs): Change decimal functions so that they
1873 have a "bid_" prefix if the decimal system uses the BID format,
1874 and "dpd_" prefix if the decimal system uses the DPD format.
1875 (init_interclass_conv_libfuncs): Ditto.
1876 (init_intraclass_conv_libfuncs): Ditto.
1877
1878 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
1879 using the BID format.
1880
1881 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
1882 whether we are using the BID decimal format.
1883 * configure: Regenerate.
1884
1885 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
1886 the compiler has decimal floating point enabled. Define
1887 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
1888 instead of DPD.
1889
1890 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
1891 using the BID format.
1892
1893 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
1894 whether we are using the BID decimal format.
1895 * configure: Regenerate.
1896
1897 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
1898 the compiler has decimal floating point enabled. Define
1899 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
1900 instead of DPD.
1901
1902 * doc/install.texi (--enable-decimal-float): Document BID and DPD
1903 options, and that it is enabled for i386/x86_64 systems.
1904
1905 * Makefile.in (enable_decimal_float): New.
1906 (DECNUMFMT): New.
1907 (DECNUMINC): Add -I$(DECNUMFMT).
1908 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
1909 to $(DECNUMFMT) from $(DECNUM).
1910
1911 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
1912 Substitute enable_decimal_float.
1913 * configure: Regenerated.
1914
1915 PR other/30529
1916 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
1917 unsigned long.
1918
1919 * configure.ac: Enable decimal float for x86_64-*-linux*.
1920 * configure: Regenerated.
1921
1922 PR other/30530
1923 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
1924 decimal128ClearSign to flip and clear the sign bit in decimal128.
1925 (decimal_real_maxval): Set decimal128SetSign to set the sign
1926 bit in decimal128.
1927
f870ab63
ILT
19282007-03-23 Ian Lance Taylor <iant@google.com>
1929
1930 * fold-const.c (fold_binary): Correct warning for X - c >= X.
1931
ed3d212b
ILT
19322007-03-23 Ian Lance Taylor <iant@google.com>
1933
1934 * tree-dump.c (dump_files): Correct comment.
1935
c8539275
ILT
19362007-03-23 Ian Lance Taylor <iant@google.com>
1937
1938 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
1939
ad21dab7
SB
19402007-03-23 Steven Bosscher <steven@gcc.gnu.org>
1941
1942 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
1943 in cfglayout mode. Don't go into and out of cfglayout mode.
1944 Link the blocks in the order of the constructed traces.
1945 (rest_of_handle_tracer): Adjust call to tracer.
1946 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
1947 Don't go into cfglayout mode.
1948 (rtl_loop_done): Don't go out of cfglayout mode.
1949 * cfglayout.c (relink_block_chain): New function, split out from...
1950 (fixup_reorder_chain): ...here. Remove redundant checking.
1951 (cfg_layout_finalize): Don't clear the header, footer, and aux
1952 fields here, move the code to do so to relink_block_chain. Likewise
1953 for free_original_copy_tables.
1954 * rtl.h (tracer): Update prototype.
1955 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
1956 Assert we are in cfglayout mode. Don't go into and out of cfglayout
1957 mode. Use relink_block_chain to serialize the CFG according to the
1958 new basic block order. Move targetm.cannot_modify_jumps_p check from
1959 here...
1960 (gate_handle_reorder_blocks): ...to here.
1961 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
1962 from here...
1963 (gate_duplicate_computed_gotos): ...to here.
1964 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
1965 something always changes when going into and out of cfglayout mode.
1966 Perform an expensive cfg cleanup while going into cfglayout mode.
1967 Always update liveness information on HAVE_conditional_execution
1968 targets. Reserialize the basic blocks and go out of cfglayout mode.
1969 * reg-stack.c: Include cfglayout.h.
1970 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
1971 the call to reorder_basic_blocks.
1972 * basic-block.h (reorder_basic_blocks): Update prototype.
1973 (relink_block_chain): New prototype.
1974 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
1975
00f9e1ca
JM
19762007-03-23 Joseph Myers <joseph@codesourcery.com>
1977
1978 * config/mips/mips.md (type, hazard, *movdi_32bit,
1979 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
1980 *movhi_internal, *movqi_internal, *movsf_hardfloat,
1981 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
1982 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
1983 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
1984 applicable.
1985 (movcc): Change first xfer to multi.
1986 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
1987 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
1988 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
1989 config/mips/generic.md: Change reservations using "xfer" to use
1990 "mfc,mtc".
1991 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
1992 using match_operand.
1993 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
1994 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
1995 examining mode.
1996 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
1997
2ed941ec
RH
19982007-03-22 Richard Henderson <rth@redhat.com>
1999
2000 * config/i386/i386.c: Remove unnecessary function declarations.
2001 Move targetm definition, and all related macros, to the end of
2002 the file. Resort some functions to put definitions before uses.
2003 (ix86_attribute_table): Make static. Move to end of file.
2004 (ix86_gimplify_va_arg): Make static.
2005
ee2f65b4
RH
20062007-03-22 Richard Henderson <rth@redhat.com>
2007
2008 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
2009 don't increase local_regparm with force_align_arg_pointer check.
2010 (ix86_function_sseregparm): Assert 32-bit.
2011 (type_has_variadic_args_p): New.
2012 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
2013 type_has_variadic_args_p.
2014 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
2015 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
2016 use memset instead. Do maybe_vaarg check first; skip attribute
2017 tests if true; skip attribute tests for 64-bit.
2018 (construct_container): Remove TARGET_DEBUG_ARG.
2019 (function_arg_advance_32, function_arg_advance_64): Split out ...
2020 (function_arg_advance): ... from here.
2021 (function_arg_32, function_arg_64): Split out ...
2022 (function_arg): ... from here.
2023 (ix86_pass_by_reference): Tidy.
2024 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
2025 (function_value_32): New, from parts of ix86_function_value
2026 and ix86_value_regno.
2027 (function_value_64): New, from parts of ix86_function_value
2028 and ix86_libcall_value.
2029 (ix86_function_value_1): New.
2030 (ix86_function_value, ix86_libcall_value): Use it.
2031 (return_in_memory_32, return_in_memory_64): Split out ...
2032 (ix86_return_in_memory): ... from here.
2033 (ix86_struct_value_rtx): Skip for 64-bit.
2034 (ix86_libcall_value, ix86_value_regno): Remove.
2035 (setup_incoming_varargs_64): Split out ...
2036 (ix86_setup_incoming_varargs): ... from here.
2037 (ix86_va_start): Remove TARGET_DEBUG_ARG.
2038 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
2039 * config/i386/i386-protos.h (ix86_function_value): Remove.
2040 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
2041
92ef5cf9
MLI
20422007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2043
2044 PR other/23572
2045 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
2046 infinities not supported, otherwise emit warning if -Woverflow. On
2047 underflow, emit warning if -Woverflow.
2048 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
2049 and 0 otherwise.
2050 * real.h (real_from_string): Update declaration
cff4720f 2051
ac294f0b
KT
20522007-03-22 Kai Tietz <kai.tietz@onevision.com>
2053 Richard Henderson <rth@redhat.com>
2054
2055 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
2056 * calls.c (compute_argument_block_size, expand_call,
2057 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
2058 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
2059 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
2060 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
2061 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
2062 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
2063 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
2064 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
2065 Set to 1.
2066
9a200623
JM
20672007-03-22 Joseph Myers <joseph@codesourcery.com>
2068
2069 * c-incpath.c (add_sysroot_to_chain): New.
2070 (merge_include_chains): Add sysroot argument. Call
2071 add_sysroot_to_chain if sysrooted.
2072 (register_include_chains): Update call to merge_include_chains.
2073 * doc/cppopts.texi: Document use of '=' in include directory
2074 arguments.
2075
8766652c
UB
20762007-03-22 Uros Bizjak <ubizjak@gmail.com>
2077
2078 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
2079 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
2080 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
2081 insn pattern using X87MODEF12 mode macro.
cff4720f 2082
1e4c6dc5
SP
20832007-03-21 Seongbae Park <seongbae.park@gmail.com>
2084
2085 * regmove.c (regmove_optimize): Use reg_mentioned_p
2086 instead of reg_overlap_mentioned_p for DST.
2087
2cbac420
MS
20882007-03-21 Mike Stump <mrs@apple.com>
2089
2090 * c.opt: Fixup for Objective-C/C++.
2091
8766652c 20922007-03-21 Steve Ellcey <sje@cup.hp.com>
17939c98
SE
2093
2094 * explow.c (convert_memory_address): Fold memory reference when
2095 POINTERS_EXTEND_UNSIGNED < 0
2096
b5cf27d7
RH
20972007-03-21 Richard Henderson <rth@redhat.com>
2098
2099 PR target/31245
2100 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
2101 * config/i386/mmintrin.h (__m64): Likewise.
2102 * config/i386/xmmintrin.h (__m128): Likewise.
2103
cb717c40
RS
21042007-03-21 Richard Sandiford <richard@codesourcery.com>
2105
2106 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
2107 (VXWORKS_OS_CPP_BUILTINS): Define.
2108 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
2109 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
2110
2a450639
RS
21112007-03-21 Richard Sandiford <richard@codesourcery.com>
2112
2113 * rtl.h (constant_pool_reference_p): Delete.
2114 (find_constant_src): Declare.
2115 * rtlanal.c (find_constant_src): New function.
2116 * simplify-rtx.c (constant_pool_reference_p): Delete.
2117 * config/i386/i386.md: Use find_constant_src instead of
2118 constant_pool_reference_p/avoid_constant_pool_reference pairs.
2119
7c0ffd09
RS
21202007-03-21 Richard Sandiford <richard@codesourcery.com>
2121
2122 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
2123 * c-cppbuiltin.c (c_cpp_builtins): Define them.
2124
9f296620
MM
21252007-03-20 Mark Mitchell <mark@codesourcery.com>
2126
2127 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
2128 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
2129 (arm_elf_asm_constructor): Use it.
2130 (arm_elf_asm_destructor): New function.
2131
5dab4eb7
BS
21322007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
2133
2134 * jump.c (mark_jump_label): Treat SEQUENCE specially.
2135
caaf5345
NS
21362007-03-20 Nathan Sidwell <nathan@codesourcery.com>
2137
2138 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
2139
2b312005
AH
21402007-03-19 Andrew Haley <aph@redhat.com>
2141
2142 PR tree-optimization/31264
2143 * tree-vrp.c (register_edge_assert_for_1): Don't look though
2144 VIEW_CONVERT_EXPRs.
2145
fb406162
PB
21462007-03-19 Paolo Bonzini <bonzini@gnu.org>
2147
2148 PR rtl-optimization/30907
2149 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
2150 (fwprop_init): Always call loop_optimizer_initialize.
2151 (fwprop_done): Always call loop_optimizer_finalize.
2152 (fwprop): We always have loop info now.
2153 (gate_fwprop_addr): Remove.
2154 (pass_fwprop_addr): Use gate_fwprop as gate.
2155
2156 PR rtl-optimization/30841
2157 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
2158 df_chain_alloc): Call df_reorganize_refs unconditionally.
2159 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
2160 refs_organized to refs_organized_size.
2161 (df_ref_create_structure): Use refs_organized_size instead of
2162 bitmap_size if refs had been organized, and keep refs_organized_size
2163 up-to-date.
2164 * df.h (struct df_ref_info): Change refs_organized to
2165 refs_organized_size.
2166 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
2167 bitmap_size.
2168
0a85ec2e
MM
21692007-03-19 Mark Mitchell <mark@codesourcery.com>
2170
2171 * except.c (output_function_exception_table): Do not reference the
2172 EH personality routine for functions that do not require an
2173 exception table.
2174
5d8a5434
JJ
21752007-03-20 Jakub Jelinek <jakub@redhat.com>
2176
79077aea
JJ
2177 PR c/30762
2178 * c-typeck.c (convert_for_assignment): Call comptypes for
2179 RECORD_TYPE or UNION_TYPE.
2180
5d8a5434
JJ
2181 PR inline-asm/30505
2182 * reload1.c (reload): Do invalid ASM checking after
2183 cleanup_subreg_operands.
2184
1799efef
JL
21852007-03-19 Jeff Law <law@redhat.com>
2186
2187 * tree-cfg.c (find_taken_edge): Tighten conditions for
2188 optimizing computed gotos.
2189
1e395249
MM
21902007-03-19 Michael Matz <matz@suse.de>
2191
2192 * builtins.c (expand_builtin_sync_operation,
2193 expand_builtin_compare_and_swap,
2194 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
2195 correctly.
2196
2197 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
2198 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
2199 for operand 3.
2200
17f6dbbf
AK
22012007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2202
2203 * doc/tm.texi: Add brackets around the return type of
2204 TARGET_SECONDARY_RELOAD.
2205
60e0af94
AP
22062007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2207 Richard Guenther <rguenther@suse.de>
2208
2209 PR tree-optimization/31254
2210 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
2211 Use handled_component_p () where appropriate. Continue
2212 propagating into the rhs if we propagated into an INDIRECT_REF
2213 on the lhs.
2214
609e7e80
AK
22152007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2216
2217 * config/s390/s390.md (op_type attribute): RRR instruction type added.
2218 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
2219 (xde, xdee): Mode attributes adjusted to support DFP modes.
2220 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
2221 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
cff4720f 2222 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
609e7e80
AK
2223 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
2224 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
2225 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
cff4720f 2226 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
609e7e80
AK
2227 numbers.
2228 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
2229 "movsf"): Insn definitions removed.
2230 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
2231 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
2232 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
2233 definitions added.
2234 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
2235 "reload_in<mode>", "reload_out<mode>"): Expander added.
2236 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
2237 Expander removed.
2238
7b6baae1
AK
22392007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2240
2241 * config/s390/s390.md: Only non-functional changes. Renamed
2242 FPR mode macro to BFP all over the file.
2243
85dae55a
AK
22442007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2245
2246 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
2247 (op_type attribute): RRF instruction type added.
2248 (fT0): New mode attribute.
2249 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
2250 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
2251 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
2252 no secondary memory is needed when moving DFmode values between GPRs
2253 and FPRs.
2254
3443392a
AK
22552007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2256
2257 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
2258 inverted and documentation adjusted.
2259 ("mhard-dfp", "msoft-dfp"): New options.
2260 * config/s390/s390.c (s390_handle_arch_option): New architecture
2261 switch: z9-ec.
2262 (override_options): Sanity checks for the new options added.
2263 * config.gcc: New architecture switch: z9-ec.
2264 * config/s390/s390.h (processor_flags): PF_DFP added.
2265 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
2266 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
2267 when the bit is NOT set so remove it from the defaults.
2268
c413e1b5
AK
22692007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2270
2271 * genemit.c (main): Print include statement for dfp.h.
2272 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
2273 is not available.
2274
1375006a
HPN
22752007-03-19 Hans-Peter Nilsson <hp@axis.com>
2276
2277 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
2278
c6ac6e82
KK
22792007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
2280
2281 PR target/31022
2282 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
2283 instead of PATTERN.
2284
ecc418c4
JDA
22852007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2286
2287 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
2288 attr_length_call, output_call, output_indirect_call): Cleanup
2289 formatting of targetm calls.
2290
c3271cd2
HPN
22912007-03-19 Hans-Peter Nilsson <hp@axis.com>
2292
2293 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
2294
d4f2728a
JDA
22952007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2296
2297 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
2298 reservation, bypass and anti-bypass descriptions for these instructions.
2299 Update move patterns.
2300 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
2301 TYPE_FPSTORE.
cff4720f 2302
f58e9734
DN
23032007-03-18 Dorit Nuzman <dorit@il.ibm.com>
2304
2305 * tree-vect-transform.c (get_initial_def_for_induction): Replace
2306 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
2307 (get_initial_def_for_reduction): Likewise.
2308
1e4816bc
DB
23092007-03-16 Daniel Berlin <dberlin@dberlin.org>
2310
2311 Fix PR tree-optimization/29922
2312 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
2313 (get_representative): Removed.
2314 (value_dies_in_block_x): Update for rvuse removal.
2315 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
2316 (compute_antic_aux): Handle when PHI nodes appear in
cff4720f 2317 non-single-successors.
1e4816bc
DB
2318 (dump_bitmap_of_names): Removed.
2319 (compute_antic_safe): Renamed and removed rvuse calculation.
2320 Calculate only antic safe.
2321 (insert_into_preds_of_block): Remove assert.
2322 (execute_pre): Update for renamed functions.
2323 (defer_or_phi_translate_block): New function.
cff4720f 2324
44c7bd63
KH
23252007-03-17 Kazu Hirata <kazu@codesourcery.com>
2326
2327 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
2328 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
2329 typos.
2330 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
2331 Follow spelling conventions.
2332
79b8aae8
KH
2333 * tree-data-ref.h: Remove the prototype for analyze_array.
2334
c492dc9a
DN
23352007-03-17 Dorit Nuzman <dorit@il.ibm.com>
2336
2337 PR tree-optimization/31041
2338 * tree-vect-transform.c (get_initial_def_for_induction): Call
2339 force_gimple_operand.
cff4720f 2340
44d974b5 23412007-03-17 Olga Golovanevsky <olga@il.ibm.com>
cff4720f 2342
44d974b5
OG
2343 * ipa-type-escape.c (look_for_casts) : Revert code to use
2344 handled_component_p due to ada test a-numaux.adb.
2345
604e4ce3
KH
23462007-03-17 Kazu Hirata <kazu@codesourcery.com>
2347
2348 * final.c (final_scan_insn): Alter the condition of a
2349 conditional trap if we have nonstandard CC.
2350
cf0eb7a1
AO
23512007-03-16 Alexandre Oliva <aoliva@redhat.com>
2352
2353 * configure.ac: Remove excess quoting from asm line 0 test.
2354 * configure: Rebuilt.
2355
07231d4f
MLI
23562007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2357
2358 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
2359 * c-common.c (convert_and_check): Move warning logic to...
2360 (warnings_for_convert_and_check): ...here. Define.
2361 * c-common.h (warnings_for_convert_and_check): Declare.
cff4720f 2362
aefd2606
JDA
23632007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2364
2365 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
2366 (output_call): Likewise.
2367
ad8577fd
RS
23682007-03-16 Richard Sandiford <richard@codesourcery.com>
2369
2370 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
2371
d95d45fd
RS
23722007-03-16 Richard Sandiford <richard@codesourcery.com>
2373
2374 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
2375
0935e091
UB
23762007-03-16 Uros Bizjak <ubizjak@gmail.com>
2377
2378 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
2379 opteron, athlon-64 and athlon-fx processor_alias_table entries.
2380
a9549792
SP
23812007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
2382
2383 PR tree-optimization/31183
cff4720f 2384 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
a9549792
SP
2385 Use double_int instead of unsigned int for representing access_strides.
2386 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
2387
7b1737d0
RG
23882007-03-16 Richard Guenther <rguenther@suse.de>
2389
2390 PR tree-optimization/31146
2391 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
2392 to allow recursion of forward_propagate_addr_expr.
2393 (forward_propagate_addr_into_variable_array_index): Likewise.
2394 (forward_propagate_addr_expr): Likewise.
2395 (tree_ssa_forward_propagate_single_use_vars): Likewise.
2396 (forward_propagate_addr_expr_1): Recurse on simple copies
2397 instead of propagating into them. Do so for useless conversions
2398 as well.
2399 (forward_propagate_addr_expr): Clean up unused statements after
2400 recursion.
2401
4c8a652e
RG
24022007-03-16 Richard Guenther <rguenther@suse.de>
2403
2404 * builtins.c (expand_builtin_cexpi): Use the right argument
2405 for the expansion via cexp.
2406
43bc306a
AO
24072007-03-16 Alexandre Oliva <aoliva@redhat.com>
2408
2409 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
2410 * configure: Rebuilt.
2411
8857ae1c
AO
24122007-03-16 Alexandre Oliva <aoliva@redhat.com>
2413
2414 PR debug/29906
2415 * dwarf2out.c (force_type_die): Adjust comment.
2416 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
2417
ba502ad6
DD
24182007-03-15 DJ Delorie <dj@redhat.com>
2419
2420 * config/frv/predicates.md (minmax_operator): Don't check operands
2421 here.
2422
9bdb685e
ZD
24232007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
2424
2425 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
2426 Update constant estimates of number of iterations.
2427 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
2428 argument renamed to "realistic".
2429 (compute_estimated_nb_iterations): Removed.
2430 (record_niter_bound): New function.
2431 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
2432 call record_nonwrapping_iv with upper = false.
2433 (infer_loop_bounds_from_signedness): Pass upper argument to
2434 record_nonwrapping_iv.
2435 (estimate_numbers_of_iterations_loop): Do not call
2436 compute_estimated_nb_iterations. Record estimate based on profile
2437 information. Initialize the constant estimates of number of
2438 iterations.
2439 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
2440 estimates.
2441 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
2442 number of iterations is too small.
2443 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
2444 (EST_NOT_AVAILABLE): Removed.
2445 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
2446 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
2447 fields.
2448
17b236ed
ZD
24492007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
2450
2451 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
2452 Handle NE_EXPR guards.
2453
9b439fe1
MLI
24542007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2455
2456 PR c++/24924
2457 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
2458 Set also -pedantic-errors by default for the preprocessor unless
2459 -fpermissive is given.
cff4720f 2460
34a24c11
RG
24612007-03-15 Richard Guenther <rguenther@suse.de>
2462
2463 PR middle-end/29719
2464 PR middle-end/31161
2465 * builtins.c (expand_builtin_cexpi): As a fallback if we
2466 don't have builtins for sincos or cexp create a function
2467 declaration for cexp and expand to a call to that.
2468 (expand_builtin_int_roundingfn): Always fall
2469 back to floor/ceil and its variants even if they may be
2470 not available.
2471
49ea3702
SB
24722007-03-15 Steven Bosscher <steven@gcc.gnu.org>
2473
2474 PR middle-end/31159
2475 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
2476 jump tables, move the call to delete_dead_jumptables from here...
2477 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
2478 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
2479 don't allow merging of blocks that try_redirect_by_replacing_jump
2480 also does not handle when not optimizing.
2481
419452fe
UB
24822007-03-15 Uros Bizjak <ubizjak@gmail.com>
2483 Francois-Xavier Coudert <coudert@clipper.ens.fr>
2484
2485 * config/i386/i386.md (x86_sahf_1): Correctly handle
2486 HAVE_AS_IX86_SAHF.
2487
68b8830a
UB
24882007-03-15 Uros Bizjak <ubizjak@gmail.com>
2489
2490 PR target/31167
2491 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
2492 x86_64_general_operand as operand[2] predicate. Remove "iF"
2493 from operand constraints and use "e" constraint instead.
2494 (*subti3_1, *subti3_1 splitter): Ditto.
2495 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
2496 operand[1] predicate.
2497
c4d8f83b
SP
24982007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
2499
2500 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
2501 arrays, multiply the access strides by the size of the sub-array.
2502 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
2503
38ca3765
UB
25042007-03-14 Uros Bizjak <ubizjak@gmail.com>
2505
2506 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
2507 the configured assembler supports the sahf mnemonic.
2508 * configure: Regenerate.
2509 * config.in: Regenerate.
2510
2511 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
2512 emit "sahf" or ".byte\t0x9e" as asm template.
2513
e9f64629
MM
25142007-03-14 Michael Meissner <michael.meissner@amd.com>
2515
2516 PR 31018
2517 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
2518 option to replace hard coded TARGET_xxx in md file.
2519 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
2520 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2521 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
2522 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
2523 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
2524 (X86_TUNE_NOT_VECTORMODE): Ditto.
2525 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
2526 (TUNE_AVOID_VECTOR_DECODE): Ditto.
2527 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2528 (TUNE_SLOW_IMUL_IMM8): Ditto.
2529 (TUNE_MOVE_M1_VIA_OR): Ditto.
2530 (TUNE_NOT_UNPAIRABLE): Ditto.
2531 (TUNE_NOT_VECTORMODE): Ditto.
cff4720f 2532
e9f64629
MM
2533 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
2534 options.
2535
2536 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
2537 tuning options instead of hard coded TARGET_xxx.
2538 (fix ssemode peephole2's): Ditto.
2539 (imul peephole2's): Ditto.
2540 (movsi_or): Ditto.
2541 (movdi_or_rex64): Ditto.
2542 (move peephole2): Ditto.
2543 (not peephole2's): Ditto.
2544
62e00e94
DM
25452007-03-14 Dirk Mueller <dmueller@suse.de>
2546
2547 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
2548 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
2549 * c-parser.c (c_parser_if_body): Always add an empty statement in case
2550 of empty body.
2551 * c-parser.c (c_parser_do_statement): Warn about empty body in
2552 do/while statement.
2553 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
2554 * doc/invoke.texi (-Wempty-body): Update documentation.
2555
2e9cb75e
MLI
25562007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2557
2558 PR c/21438
2559 * c-common.h (warn_for_div_by_zero): Declare.
2560 * c-common.c (warn_for_div_by_zero): Define.
2561 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
2562 warning.
2563
925af765
RS
25642007-03-14 Richard Sandiford <richard@codesourcery.com>
2565
2566 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
2567 to PREFIX and STANDARD_PREFIX.
2568
ac0d72f6
RS
25692007-03-14 Richard Sandiford <richard@codesourcery.com>
2570 Phil Edwards <phil@codesourcery.com>
2571
2572 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
2573 (__gthread_once_t): Remove busy field for RTPs.
2574 (__GTHREAD_ONCE_INIT): Update accordingly.
2575
cd773ac4
RS
25762007-03-14 Richard Sandiford <richard@codesourcery.com>
2577
2578 * doc/invoke.texi: Document VxWorks options.
2579
8c5fd59f
UB
25802007-03-14 Uros Bizjak <ubizjak@gmail.com>
2581
2582 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
2583
e31657e8
SP
25842007-03-13 Seongbae Park <seongbae.park@gmail.com>
2585
2586 PR tree-optimization/30590
2587 * tree-nrv.c (tree_nrv): Check for the partial update of the
2588 return value.
2589
403d4851
AO
25902007-03-13 Alexandre Oliva <aoliva@redhat.com>
2591
2592 * flags.h (flag_random_seed): Remove declaration, in favor of...
2593 * toplev.h (get_random_seed, set_random_seed): ... these.
2594 * tree.c (get_file_function_name): Use the former.
2595 * opts.c (common_handle_option): Use the latter.
2596 * toplev.c
2597
481e0a49
AO
25982007-03-13 Steven Bosscher <steven@gcc.gnu.org>
2599
2600 PR middle-end/31127
2601 * cse.c (cse_find_path): Do not bail out if a basic block that
2602 we already visited now becomes part of a path that starts at a
2603 different basic block. Just disallow this, to make sure we
2604 visit each basic block at most once.
2605
4cdb798f
JH
26062007-03-13 Jan Hubicka <jh@suse.cz>
2607
2608 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
2609 when profile esitmate is present, calls with very low frequency are
2610 cold.
2611
b3ce5b6e
ZD
26122007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2613
2614 PR tree-optimization/30730
2615 PR tree-optimization/26900
2616 * tree-ssa-loop-niter.c: Include gmp.h.
2617 (bounds): New type.
2618 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
2619 split_to_var_and_offset, determine_value_range,
2620 bound_difference_of_offsetted_base, refine_bounds_using_guard,
2621 bound_difference, bounds_add, bounds_negate,
2622 number_of_iterations_ne_max, dump_affine_iv): New functions.
2623 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
2624 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
2625 difference of initial and final value of control iv to validate
2626 results.
2627 (number_of_iterations_cond): Add loop parameter. Determine bounds
2628 on the difference of the extremes of the control iv. Add dumps.
2629 (expand_simple_operations): Handle phi nodes.
2630 (simplify_using_initial_conditions): Do not record used conditions.
2631 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
2632 Do not set additional_info.
2633 (implies_nonnegative_p, implies_ge_p): Removed.
2634 (derive_constant_upper_bound): Do not use parameter `additional'.
2635 (record_estimate): Parameter `additional' removed. Parameter
2636 `i_bound' added. Do not call derive_constant_upper_bound.
2637 (record_nonwrapping_iv): Use derive_constant_upper_bound to
2638 bound the number of iterations estimate.
2639 (estimate_numbers_of_iterations_loop): Pass the estimate from
2640 the number of iterations analysis to record_estimate.
2641 * tree.h (multiple_of_p): Declare.
2642 * tree-scalar-evolution.c (expression_expensive_p): Removed.
2643 (scev_const_prop): Do not check expression_expensive_p.
2644 * fold-const.c (multiple_of_p): Exported.
2645 * double-int.c (double_int_mask): Exported.
2646 * double-int.h (double_int_mask): Declare.
2647 * tree-flow.h (struct tree_niter_desc): Removed additional_info
2648 field. Added max field.
2649
3dfe046f
DT
26502007-03-13 David Taylor <taylor@candd.org>
2651
2652 PR driver/12448:
2653 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
2654 default -MQ.
2655
de94a581
JDA
26562007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2657
dc92acbc 2658 PR target/31123
de94a581
JDA
2659 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
2660 two unamed patterns.
cff4720f 2661
5be6cb59
UB
26622007-03-13 Uros Bizjak <ubizjak@gmail.com>
2663
2664 * config/i386/i386.opt (mcx16, msahf): New options.
2665 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
2666 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
2667
2668 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
2669 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
2670 Output -mcx16 and -msahf options when corresponding bit is set.
2671
2672 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
2673 and -msahf options.
2674
03943c05
AO
26752007-03-13 Alexandre Oliva <aoliva@redhat.com>
2676
2677 * configure.ac: Test for assembler tolerance to # 0 "".
2678 * configure, config.in: Rebuilt.
2679 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
2680
98312a9b
GK
26812007-03-13 Geoffrey Keating <geoffk@apple.com>
2682
2683 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
49522de2
GK
2684
2685 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
2686 (handle_syscall): Handle direct system calls.
2687 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
2688
7d07e4ea
BM
26892007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
2690
2691 * doc/invoke.texi: Fix cpp.info cross-reference.
2692 * doc/passes.texi: Fix gcc.info cross-reference.
2693
fbb0d4f8
ZD
26942007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
2695
2696 PR tree-optimization/30835
2697 * lambda-code.c (can_convert_to_perfect_nest): Check whether
2698 bb_for_stmt is not NULL before accessing it.
2699
dc5bbad3
JM
27002007-03-12 Joseph Myers <joseph@codesourcery.com>
2701
2702 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
2703 some multilibs.
2704
80ca80e9
BM
27052007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
2706
2707 PR 30635
2708 * doc/install.texi: Document --enable-stage1-languages
2709
dacb3cda
SB
27102007-03-12 Steven Bosscher <steven@gcc.gnu.org>
2711
2712 * tree-pass.h (pass_into_cfg_layout_mode,
2713 pass_outof_cfg_layout_mode): Declare.
2714 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
2715 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
2716 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
2717 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
2718
50d50fc7
SP
27192007-03-12 Seongbae Park <seongbae.park@gmail.com>
2720
2721 * c-decl.c (warn_variable_length_array): New function.
2722 Refactored from grokdeclarator to handle warn_vla
2723 and handle unnamed array case.
2724 (grokdeclarator): Refactored VLA warning case.
2725 * c.opt (Wvla): New flag.
6da4bc4e 2726 * doc/invoke.texi (Wvla): New warning.
50d50fc7 2727
ae069803
RH
27282007-03-12 Richard Henderson <rth@redhat.com>
2729
2730 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
2731 (TARGET_SECTION_TYPE_FLAGS): New.
2732
24c78b3a
RH
27332007-03-12 Richard Henderson <rth@redhat.com>
2734
fbb0d4f8
ZD
2735 * config/darwin.c (machopic_reloc_rw_mask): New.
2736 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
2737 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
24c78b3a 2738
6d4817e3
MM
27392007-03-12 Mark Mitchell <mark@codesourcery.com>
2740
2741 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
2742 * cppdefault.h (cpp_PREFIX): Document.
2743 (cpp_PREFIX_len): Likewise.
2744 (cpp_EXEC_PREFIX): New variable.
2745 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
2746 * c-incpath.c (add_standard_paths): Correct logic for relocating
2747 paths within prefix.
2748
d8e3118a
UB
27492007-03-12 Uros Bizjak <ubizjak@gmail.com>
2750
2751 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
2752 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
2753 mode macro.
2754 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
2755 fix_truncdfdi_sse using SSEMODEF mode macro.
2756 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
2757 fix_truncdfsi_sse using SSEMODEF mode macro.
2758 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
2759 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
2760
8906bbc0
RS
27612007-03-12 Richard Sandiford <richard@codesourcery.com>
2762
2763 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
2764 elfos.h to tm_file.
2765
d4e70294 27662007-03-12 Olga Golovanevsky <olga@il.ibm.com>
cff4720f 2767
d4e70294 2768 * tree.h : Add multiple_of_p declaration.
cff4720f 2769 * fold-const.c (multiple_of_p): Make multiple_of_p public.
d4e70294
OG
2770 * ipa-type-escape.c (results_of_malloc): Redundant.
2771 (visited_stmts): New. Visited stmt for walk_use_def_chains.
2772 (cast_type): Extended with new members.
2773 (check_cast): Returns cast_type.
2774 (cast): New structure for data of walk_use_def_chains.
2775 (is_malloc_result, is_cast_from_non_pointer_1,
cff4720f 2776 is_cast_from_non_pointer,
d4e70294
OG
2777 is_array_access_through_pointer_and_index): New functions.
2778 (look_for_casts): Returns cast types.
2779 (check_call): Returns void.
2780 (okay_pointer_operation): Use support of pointer plus index,
2781 pointer plus constant and allow all multiplications.
cff4720f 2782
13338552
RG
27832007-03-11 Richard Guenther <rguenther@suse.de>
2784
2785 PR tree-optimization/31115
2786 * tree-vrp.c (extract_range_from_binary_expr): Make sure
2787 the shift count is positive and non-anti-range for RSHIFT_EXPR.
2788 A shift count of zero is not special as with *_DIV_EXPR.
2789 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
2790 direction.
2791
d7419dec
ILT
27922007-03-11 Ian Lance Taylor <iant@google.com>
2793
2794 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
2795 the *_DIV_EXPR codes correctly with overflow infinities.
2796
e838422b
IR
27972007-03-11 Ira Rosen <irar@il.ibm.com>
2798
cff4720f 2799 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
e838422b
IR
2800 indicate success/failure of the analysis. Add negation to subtrahend
2801 in case of subtraction. Fail if both operands contain constants.
2802 (create_data_ref): Fail if analyze_offset fails.
2803
acaaf0c6
UB
28042007-03-11 Uros Bizjak <ubizjak@gmail.com>
2805
2806 * config/i386/i386.md (frndintxf2): Rename to ...
2807 (rintxf2): ... this. Remove expander having same name.
2808 (rintsf2, rintdf2): Implement using SSEMODEF macro.
2809 (roundsf2, rounddf2): Ditto.
2810 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
2811 (lround<mode>di2, lround<mode>si2): Ditto.
2812
7984c787
SB
28132007-03-11 Steven Bosscher <steven@gcc.gnu.org>
2814
2815 * lower-subreg.c: Include except.h.
2816 (decompose_multiword_subregs): Verify that the only control flow
2817 insns we can split are loads to multi-words pseudos.
2818 Handle breaking such blocks after splitting, instead of calling
2819 find_many_sub_basic_blocks.
2820
2821 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
2822 on the new basic block. Add a lengthy comment explaining why we
2823 thought this was necessary.
2824 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
2825
222725d0
MM
28262007-03-10 Mark Mitchell <mark@codesourcery.com>
2827
ed574fe9 2828 PR c++/30924
222725d0
MM
2829 * tree.c (walk_type_fields): Recurse into the element type of
2830 ARRAY_TYPEs if there is a pointer set.
2831
89132ebc
DM
28322007-03-10 Dirk Mueller <dmueller@suse.de>
2833
2834 * c-common.c (warn_logical_operator): Fix condition.
2835
4f648002
TS
2836