]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
./:
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
0e4744ac 12007-04-16 Lawrence Crowl <crowl@google.com>
2
3 * doc/invoke.texi (Debugging Options): Add documentation for the
4 -femit-struct-debug options -femit-struct-debug-baseonly,
5 -femit-struct-debug-reduced, and
6 -femit-struct-debug-detailed[=...].
7
8 * c-opts.c (c_common_handle_option): Add
9 OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
10 and OPT_femit_struct_debug_detailed_.
11 * c.opt: Add specifications for
12 -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
13 and -femit-struct-debug-detailed[=...].
14 * opts.c (set_struct_debug_option): Parse the
15 -femit-struct-debug-... options.
16 * opts.c (matches_main_base, main_input_basename,
17 main_input_baselength, base_of_path, matches_main_base): Add
18 variables and functions to compare header base name to compilation
19 unit base name.
20 * opts.c (should_emit_struct_debug): Add to determine to emit a
21 structure based on the option.
22 (dump_struct_debug) Also disabled function to debug this
23 function.
24 * opts.c (handle_options): Save the base name of the
25 compilation unit.
26
27 * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
28 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
29 This hook indicates if a type is generic. Set it by default
30 to "never generic".
31 * langhooks.h (struct lang_hooks_for_types): Add a new hook
32 to determine if a struct type is generic or not.
33 * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
34 * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
35 * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
36 with live C++ hook.
37
38 * flags.h (enum debug_info_usage): Add an enumeration to describe
39 a program's use of a structure type.
40 * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
41 to indicate the program's usage of the type. Filter structs based
42 on the -femit-struct-debug-... specification.
43 (gen_type_die): Split into two routines, gen_type_die and
44 gen_type_die_with_usage. gen_type_die is now a wrapper
45 that assumes direct usage.
46 (gen_type_die_with_usage): Replace calls to gen_type_die
47 with gen_type_die_with_usage adding the program usage of
48 the referenced type.
49 (dwarf2out_imported_module_or_decl): Suppress struct debug
50 information using should_emit_struct_debug when appropriate.
51
91c9ef60 522007-04-16 Ian Lance Taylor <iant@google.com>
53
5c7155ca 54 PR tree-optimization/31522
55 * tree-vrp.c (vr_phi_edge_counts): New static variable.
56 (vrp_initialize): Allocate vr_phi_edge_counts.
57 (vrp_visit_phi_node): Don't push to infinity if we saw a new
58 executable edge. Drop test for all constants.
59 (vrp_finalize): Free vrp_phi_edge_counts.
60
40b49e8f 61 * doc/cpp.texi (Common Predefined Macros): Clarify description of
62 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
63
91c9ef60 64 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
65 predecessors at head rather than tail.
66
fc7dfeb9 672007-04-16 Matthias Klose <doko@debian.org>
68
69 * gcc/config/alpha/linux.h (CPP_SPEC): Define.
70 * gcc/config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
71
c085e9f9 722007-04-16 Aldy Hernandez <aldyh@redhat.com>
73
74 * function.h: Remove sequence_stack extern declaration.
75
98d02c10 762007-04-16 Kazu Hirata <kazu@codesourcery.com>
77
78 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
79 TARGET_FIDOA.
80 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
81 defined.
82
8c23ba29 832007-04-16 Anatoly Sokolov <aesok@post.ru>
84
85 * config/avr/avr.c (avr_arch_types): Rearranging array.
86 (enum avr_arch): Add.
87 (avr_mcu_types): Use avr_arch enumeration constants instead of
88 numbers.
89 * config/avr/avr.h (LINK_SPEC): Simplify.
90
dbaae14a 912007-04-16 Kazu Hirata <kazu@codesourcery.com>
92
93 * config/m68k/m68k.c (m68k_libcall_value,
94 m68k_function_value): Use macros for register names more.
95
47313d14 96 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
97 instead.
98 (M68K_REGNAME): Use A6_REG.
99 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
100
c5947ab7 1012007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
102
103 PR middle-end/28071
104 * sched-int.h (struct deps): Split field 'pending_lists_length' into
105 'pending_read_list_length' and 'pending_write_list_length'. Update
106 comment.
107 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
108 to handle two length counters instead of one. Update all uses.
109 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
110 two length counters instead of one.
111 * sched-rgn.c (propagate_deps): Update to handle two length counters
112 instead of one.
113
c3a50b15 1142007-04-16 H.J. Lu <hongjiu.lu@intel.com>
115
116 PR target/31582
117 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
118 copy of source, pass it to ix86_expand_vector_set and return
119 it as target.
120
11b70d7d 1212007-04-16 David Ung <davidu@mips.com>
c3a50b15 122 Joseph Myers <joseph@codesourcery.com>
11b70d7d 123
124 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
125 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
126 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
127 Add 74K processor information.
128 * config/mips/mips.md: Include 74k.md.
129 (cpu): Add 74kc,74kf,74kx.
130 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
131 * config/mips/74k.md: New.
132 * doc/invoke.texi (MIPS Options): Document 74K support.
133
29696c95 1342007-04-16 Dorit Nuzman <dorit@il.ibm.com>
135
136 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
137 vectorizable_* functions.
138 * tree-vect-transform.c (vectorizable_call): Add check for
139 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
140 (vectorizable_store): likewise.
141 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
142 Add comments.
143 (vectorizable_operation, vectorizable_type_demotion): Likewise.
144 (vectorizable_type_promotion, vectorizable_load): Likewise.
145 (vectorizable_live_operation, vectorizable_condition): Likewise.
146 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
147 STMT_VINFO_LIVE_P.
148 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
149
9d463c3d 1502007-04-15 Kazu Hirata <kazu@codesourcery.com>
151
152 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
153 register numbers more.
154 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
155 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
156 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
157 FUNCTION_VALUE_REGNO_P): Likewise.
158 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
159 STATIC_CHAIN_REGNUM): Likewise.
160 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
161 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
162 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
163 * config/m68k/m68k.md (FP_REG): New.
164
35387ada 1652007-04-15 Kazu Hirata <kazu@codesourcery.com>
166
167 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
168 alignment on fido.
169
efec32e0 1702007-04-15 Kazu Hirata <kazu@codesourcery.com>
171
172 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
173 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
174 comment typos.
175
a30d0a5b 1762007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
177
178 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
179 cold loops.
180
0dd13847 1812007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
182
183 PR c/31520
ebbb4483 184 * c-decl.c (finish_decl): Grab the type of the decl after the call
0dd13847 185 to store_init_value.
186
55d51835 1872007-04-14 Steven Bosscher <steven@gcc.gnu.org>
188
189 * common.opt (fforward-propagate): Fix "Optimization" annotation.
190
480e5bc3 1912007-04-14 Jakub Jelinek <jakub@redhat.com>
192
193 PR c++/25874
194 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free dominators,
195 post dominators and cleanup cfg before returning.
196
5ff4f029 1972007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
198
199 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
200 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
201
278e2fd1 2022007-04-14 Kazu Hirata <kazu@codesourcery.com>
203
204 * config.gcc: Recognize fido.
205 * config/m68k/m68k-devices.def (fidoa): New.
206 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
207 __mfido__.
208 (FL_FIDOA, TARGET_FIDOA): New.
209 * config/m68k/m68k.opt (mfidoa): New.
210
849ea31c 2112007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
212
213 PR middle-end/31322
214 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
215 when a personality function is used.
216
d4c45216 2172007-04-13 Bob Wilson <bob.wilson@acm.org>
218
219 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
220
2775d4b5 2212007-04-13 Mike Stump <mrs@apple.com>
222
223 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
224 we can...
225 * config/darwin.opt (fapple-kext): Make C++ only.
226 * config/darwin.c (darwin_override_options): Remove code to ensure
227 -fapple-kext is given for C++ only.
228
e7fb4953 2292007-04-13 Richard Sandiford <richard@codesourcery.com>
230
231 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
232 * config/mips/mips.c (override_options): Call
233 SUBTARGET_OVERRIDE_OPTIONS, if defined.
234
ba47d267 2352007-04-13 H.J. Lu <hongjiu.lu@intel.com>
236
237 * config/i386/i386.opt (msvr3-shlib): Removed.
238
239 * doc/invoke.texi: Remove -msvr3-shlib.
240
1b89f7c8 2412007-04-13 H.J. Lu <hongjiu.lu@intel.com>
242
243 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
244 with "popcnt" instruction.
245
f3d56fef 2462007-04-13 Richard Guenther <rguenther@suse.de>
247
248 PR tree-optimization/21258
249 * tree-vrp.c (compare_case_labels): New helper.
250 (find_switch_asserts): New function.
251 (find_assert_locations): Call it for SWITCH_EXPRs.
252
d26e00d8 2532007-04-13 Uros Bizjak <ubizjak@gmail.com>
254
255 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
256 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
257 check is now implied in X87_FLOAT_MODE_P.
258 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
259 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
260 (fix_trunc<mode>_i386_fisttp): Ditto.
261 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
262 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
263 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
264 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
265 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
266 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
267 (unnamed_splitters): Ditto.
268 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
269 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
270 FIRST_SSE_REG for local functions when SSE math is enabled or
271 for functions with sseregparm attribute.
272 (standard_80387_constant_p): Return -1 if mode is not
273 X87_FLOAT_MODE_P.
274 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
275 (ix86_expand_compare): Ditto.
276 (ix86_expand_carry_flag_compare): Ditto.
277 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
278 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
279 DECIMAL_FLOAT_MODE_P.
280 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
281 of SCALAR_FLOAT_MODE_P.
282 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
283 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
284 checks before FLOAT_MODE_P.
285 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
286 before FLOAT_MODE_P.
287 [DIV]: Ditto.
288 [NEG]: Ditto.
289 [ABS]: Ditto.
290 [SQRT]: Ditto.
291 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
292
bdbe7091 2932007-04-12 Paolo Bonzini <bonzini@gnu.org>
294 Charles Wilson <libtool@cwilson.fastmail.fm>
295
296 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
297 (libgcc.mvars): Don't depend on them.
298 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
299 * exec-tool.in: New.
300
2211b4ca 3012007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
302
303 * doc/invoke.text (--help): Document --help=common.
304
cab08a39 3052007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
306
307 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
308
a8a393cb 3092007-04-12 Richard Sandiford <richard@codesourcery.com>
310
311 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
312 * genemit.c (main): Emit #include "integrate.h".
313 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
314 (LOADGP_RTP): New mips_loadgp_style.
315 * config/mips/mips.h: Include config/vxworks-dummy.h.
316 (TARGET_RTP_PIC): New macro.
317 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
318 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
319 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
320 for TARGET_RTP_PIC.
321 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
322 -mvxworks-pic when using -mrtp and a PIC option.
323 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
324 for RTP PIC.
325 (mips_symbolic_constant_p, mips_symbolic_address_p)
326 (mips_symbol_insns): Handle SYMBOL_HALF.
327 (override_options): Warn about -G and -mrtp being used together.
328 Initialize mips_lo_relocs[SYMBOL_HALF].
329 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
330 (mips_emit_loadgp): Handle LOADGP_RTP.
331 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
332 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
333 (tablejump): Handle function-relative case table entries if
334 TARGET_RTP_PIC.
335 * config/mips/predicates.md (symbol_ref_operand): New predicate.
336
d1b79aba 3372007-04-12 Richard Sandiford <richard@codesourcery.com>
338
339 * config/mips/mips.md (load_call<mode>): Allow any general register.
340 destination.
341 (sibcall_value_internal, sibcall_value_multiple_internal)
342 (call_value_internal, call_value_split, call_value_multiple_internal)
343 (call_value_multiple_split): Remove constraints from operand 0.
344
de604551 3452007-04-12 Richard Sandiford <richard@codesourcery.com>
346
347 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
348 rather than loadgp_noshared.
349 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
350 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
351 gen_loadgp.
352 * config/mips/mips.md (loadgp): Rename to...
353 (loadgp_newabi): ...this.
354 (loadgp_noshared): Rename to...
355 (loadgp_absolute): ...this.
356
ffe0cc16 3572007-04-12 Richard Sandiford <richard@codesourcery.com>
358
359 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
360 false for locally-binding symbols.
361 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
362
4cb04729 3632007-04-12 Richard Sandiford <richard@codesourcery.com>
364
365 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
366 (SYMBOL_GOT_PAGE_OFST): ...this.
367 (SYMBOL_GOT_GLOBAL): Rename to...
368 (SYMBOL_GOT_DISP): ...this.
369 (SYMBOL_GOTOFF_GLOBAL): Rename to...
370 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
371 * config/mips/mips.c (mips_global_symbol_p): New function.
372 (mips_symbol_binds_local_p): Likewise.
373 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
374 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use mips_global_symbol_p
375 and mips_symbol_binds_local_p.
376 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
377 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
378 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
379 SYMBOL_GOTOFF_DISP.
380 (mips_ok_for_lazy_binding_p): New function.
381 (mips_load_call_address, mips_expand_call): Use it.
382 (mips_dangerous_for_la25_p): Likewise.
383 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
384 (*got_disp<mode>): Use got_disp_operand instead of
385 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
386 SYMBOL_GOTOFF_GLOBAL.
387 (*got_page<mode>): Use got_page_ofst_operand instead of
388 local_got_operand.
389 * config/mips/predicates.md (const_call_insn_operand): Use
390 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
391 (global_got_operand): Rename to...
392 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
393 SYMBOL_GOT_GLOBAL.
394 (local_got_operand): Rename to...
395 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
396 of SYMBOL_GOT_LOCAL.
397
46414626 3982007-04-12 Richard Sandiford <richard@codesourcery.com>
399
400 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
401 TARGET_CALL_CLOBBERED_GP.
402 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
403 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
404 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
405 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
406 of TARGET_ABICALLS && !TARGET_NEWABI.
407 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
408 * config/mips/mips.c (mips_load_call_address): Check
409 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
410 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
411 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
412 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
413 TARGET_ABICALLS && TARGET_NEWABI.
414 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
415 TARGET_ABICALLS.
416 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
417 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
418 TARGET_ABICALLS && TARGET_NEWABI.
419 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
420 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
421 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
422 whether indirect calls must use $25.
423 (mips_extra_live_on_entry): Check TARGET_GOT instead of
424 TARGET_ABICALLS.
425 * config/mips/mips.md (jal_macro): Check flag_pic and
426 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
427 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
428 instead of TARGET_ABICALLS.
429 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
430 TARGET_ABICALLS && TARGET_OLDABI.
431 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
432 (sibcall): In the comment above the define_insn, mention
433 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
434 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
435 instead of TARGET_ABICALLS.
436
9422b03b 4372007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
438
439 * doc/md.texi (Blackfin family constraints): Document PA and PB.
440 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
441 (MACFLAGS_MATCH_P): New macro.
442 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
443 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
444 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
445 the other MACFLAG constants.
446 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
447 (flag_machi): Tighten constraints. Renumber some of the operands.
448 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
449 output template.
450 (flag_machi_parts_acconly): New pattern.
451 (flag_macinithi): Tighten constraints. Allow any accumulator to be
452 used.
453 (flag_macinit1hi): Tighten constraints.
454 (flag_mul_macv2hi_parts_acconly): New pattern.
455
6daa377b 456 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
457 Use a more efficient implementation.
458 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
459 inline sequences when not optimizing for size.
460
4462e6ac 461 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
462 movhi_high2low): Delete, merge functionality into...
463 (packv2hi): ... this pattern.
464
c9ddd413 465 2007-02-11 Jie Zhang <jie.zhang@analog.com>
466 * config/bfin/bfin.opt (msim): New option.
467 (mcpu=): New option.
468 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
469 (bfin_cpu_t): Typedef of enum bfin_cpu.
470 (bfin_cpu_type): New declaration.
471 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
472 -msim and -mcpu= options.
473 (LIB_SPEC): Likewise.
474 * config/bfin/bfin.c (bfin_cpu_type): Define.
475 (bfin_handle_option): Handle -mcpu= option.
476 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
477 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
478 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
479
c77a1c92 4802007-04-12 Richard Sandiford <richard@codesourcery.com>
481
482 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
483 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
484 (powerpc-wrs-vxworksae): Use ${tm_file}.
485 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
486 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
487 * config/i386/vx-common.h: New file.
488
6f3d6768 4892007-04-12 Richard Sandiford <richard@codesourcery.com>
490
491 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
492 of crt0.o%s.
493
47d34a13 4942007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
495
496 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
497 ldxtr.
498
5bfe6313 4992007-04-12 Douglas Gregor <doug.gregor@gmail.com>
500
501 PR c++/31078
502 PR c++/31103
503 * c-common.c (c_build_qualified_type): Set canonical type
504 appropriately.
505
a128a28f 5062007-04-12 Richard Guenther <rguenther@suse.de>
507
508 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
509 lower bound and element size if lower bound is not zero
510 or either of the ARRAY_REF operands is set.
511
a2501610 5122007-04-12 Richard Guenther <rguenther@suse.de>
513
514 PR tree-optimization/24689
515 PR tree-optimization/31307
516 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
517 indices by value.
518 * gimplify.c (canonicalize_addr_expr): To be consistent with
519 gimplify_compound_lval only set operands two and three of
520 ARRAY_REFs if they are not gimple_min_invariant. This makes
521 it never at this place.
522 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
523
9f4a0384 5242007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
525
526 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
527 null before emitting a .nsubspa directive.
528
12a2c9ea 5292007-04-11 Diego Novillo <dnovillo@redhat.com>
530
531 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
532 need_to_partition_p if there are no memory statements in the
533 function.
534
cabedb72 5352007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
536
537 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
538 (gcd_of_steps_may_divide_p): New function.
539 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
540
c89e828f 5412007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
542
543 * reload.c (find_reloads_toplev, find_reloads_address,
544 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
545 not a pointer equality test, to decide if we need to call
546 push_reg_equiv_alt_mem.
547
2a21a5df 5482007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
549
550 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
551 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): New.
552 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
553
cabedb72 5542007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
8fb896c4 555
556 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
557 vector to be positive.
558
c227f8de 5592007-04-11 Diego Novillo <dnovillo@redhat.com>
560
561 PR 30735
562 PR 31090
563 * doc/invoke.texi: Document --params max-aliased-vops and
564 avg-aliased-vops.
565 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
566 debug_memory_partitions): Move to tree-flow.h
567 * params.h (AVG_ALIASED_VOPS): Define.
568 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
569 users.
570 (mp_info_t): Likewise.
571 (get_mem_sym_stats_for): New.
572 (set_memory_partition): Move from tree-flow-inline.h.
573 (mark_non_addressable): Only clear the set of symbols for the
574 partition if it exists.
575 (dump_memory_partitions): Move from tree-ssa-operands.c
576 (debug_memory_partitions): Likewise.
577 (need_to_partition_p): New.
578 (dump_mem_ref_stats): New.
579 (debug_mem_ref_stats): New.
580 (dump_mem_sym_stats): New.
581 (debug_mem_sym_stats): New.
582 (update_mem_sym_stats_from_stmt): New.
583 (compare_mp_info_entries): New.
584 (mp_info_cmp): Call it.
585 (sort_mp_info): Change argument to a list of mem_sym_stats_t
586 objects.
587 (get_mpt_for): Move from tree-ssa-operands.c.
588 (find_partition_for): New.
589 (create_partition_for): Remove.
590 (estimate_vop_reduction): New.
591 (update_reference_counts): New.
592 (build_mp_info): New.
593 (compute_memory_partitions): Refactor.
594 Document new heuristic.
595 Call build_mp_info, update_reference_counts,
596 find_partition_for and estimate_vop_reduction.
597 (compute_may_aliases): Populate virtual operands before
598 calling debugging dumps.
599 (delete_mem_sym_stats): New.
600 (delete_mem_ref_stats): New.
601 (init_mem_ref_stats): New.
602 (init_alias_info): Call it.
603 (maybe_create_global_var): Remove alias_info argument.
604 Get number of call sites and number of pure/const call sites
605 from gimple_mem_ref_stats().
606 (dump_alias_info): Call dump_memory_partitions first.
607 (dump_points_to_info_for): Show how many times a pointer has
608 been dereferenced.
609 * opts.c (decode_options): For -O2 set --param
610 max-aliased-vops to 500.
611 For -O3 set --param max-aliased-vops to 1000 and --param
612 avg-aliased-vops to 3.
613 * fortran/options.c (gfc_init_options): Remove assignment to
614 MAX_ALIASED_VOPS.
615 * tree-flow-inline.h (gimple_mem_ref_stats): New.
616 * tree-dfa.c (dump_variable): Dump memory reference
617 statistics.
618 Dump NO_ALIAS* settings.
619 (referenced_var_lookup): Tidy.
620 (mem_sym_stats): New.
621 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
622 and ORIG are different SSA names for a memory partition.
623 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
624 * tree-flow.h (struct mem_sym_stats_d): Define.
625 (mem_sym_stats_t): Define.
626 (struct mem_ref_stats_d): Define.
627 (struct gimple_df): Add field mem_ref_stats.
628 (enum noalias_state): Define.
629 (struct var_ann_d): Add bitfield noalias_state.
630 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
631 debug_mem_ref_stats, debug_memory_partitions,
632 debug_mem_sym_stats): Declare.
633 * tree-ssa-structalias.c (update_alias_info): Update call
634 sites, pure/const call sites and asm sites in structure
635 returned by gimple_mem_ref_stats.
636 Remove local variable IS_POTENTIAL_DEREF.
637 Increase NUM_DEREFS if the memory expression is a potential
638 dereference.
639 Call update_mem_sym_stats_from_stmt.
640 If the memory references memory, call
641 update_mem_sym_stats_from_stmt for all the direct memory
642 symbol references found.
643 (intra_create_variable_infos): Set noalias_state field for
644 pointer arguments according to the value of
645 flag_argument_noalias.
646 * tree-ssa-structalias.h (struct alias_info): Remove fields
647 num_calls_found and num_pure_const_calls_found.
648 (update_mem_sym_stats_from_stmt): Declare.
649 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
650 Set default value to 100.
651 (PARAM_AVG_ALIASED_VOPS): Define.
652
516aa37d 6532007-04-11 Richard Guenther <rguenther@suse.de>
654
655 PR middle-end/31530
656 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
657 a * -b + c as c - a * b if we honor sign dependent rounding.
658
2b8e874f 6592007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
660
661 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
662 bfin_expand_strmov.
663 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
664 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
665 variables.
666 (initialize_trampoline): Don't use old-style function definition.
667 (bfin_secondary_reload): Mark IN_P argument as unused.
668
3e6bc865 6692007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
670
671 PR tree-optimization/31343
672 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
673 (build_polynomial_chrec): Return a scalar when the evolution is zero.
674 * testsuite/gcc.dg/vect/pr31343.c: New.
675
ed01e173 6762007-04-10 Eric Christopher <echristo@apple.com>
677
678 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
679 * config/i386/i386.md (*cmpfp0): Use.
680 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
681 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
682 (fix_trunc<mode>_i386_fisttp): Ditto.
683 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
684 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
685 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
686 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
687 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
688 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
689 (unnamed_splitters): Ditto.
690 * config/i386/i386.c (output_fix_trunc): Assert that
691 we're not being passed a TFmode operand.
692
944cca50 6932007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
694
695 PR tree-optimization/31526
696 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
697 n_basic_blocks to find newly added blocks.
698
c778ae84 6992007-04-10 Uros Bizjak <ubizjak@gmail.com>
700
701 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
702 alternative.
703 (fix_trunc<mode>si_sse): Ditto.
704 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
705 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
706 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
707 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
708 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
709 expander using SSEMODEF mode macro.
710 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
711 expander using SSEMODEF mode macro.
712 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
713 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
714 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
715 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
716 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
717 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
718 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
719 Macroize insn using X87MODEF mode macro.
720
d8d6e6ac 7212007-04-09 H.J. Lu <hongjiu.lu@intel.com>
722
723 * config/i386/sse.md (sse2_pinsrw): Removed.
724 (sse2_pextrw): Renamed to ...
725 (*sse2_pextrw): This.
726
cb00447a 7272007-04-09 Jan Hubicka <jh@suse.cz>
728
729 PR target/27869
730 * config/i386/sse.md
731 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
732 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
733 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
734 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
735
d9745cea 7362007-04-09 Jan Hubicka <jh@suse.cz>
737
738 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
739 multiple fields of union.
740
d8a0d6b8 7412007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
742
743 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
744 (create_preheaders): Check that loops are available.
745 (fix_loop_structure): Clean up, improve comments.
746 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
747 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
748 state flags.
749 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
750 * predict.c (tree_estimate_probability): Do not call
751 calculate_dominance_info. Call create_preheaders.
752 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
753 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
754 flags.
755 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
756 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
757 * tree-cfg.c (tree_split_edge): Make an assert more precise.
758 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
759 arguments.
760
27290809 7612007-04-08 Jan Hubicka <jh@suse.cz>
762
763 * tree.h (maybe_fold_offset_to_component_ref): Declare.
764 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
765 * fold-const.c (fold_unary): Use it.
766
bbdc7974 7672007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
768
769 * varasm.c (assemble_variable): Remove call to
770 lang_hooks.decls.prepare_assemble_variable.
771 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
772 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
773 * langhooks.h (lang_hooks_for_decls): Remove
774 prepare_assemble_variable.
775
105eb9b9 7762007-04-08 Mike Stump <mrs@apple.com>
777
778 * config/i386/i386.c: Use inc/dec on Core2.
779
94be3290 7802007-04-08 Steven Bosscher <steven@gcc.gnu.org>
781
782 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
783 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
784 lhd_tree_inlining_end_inlining): Remove.
785 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
786 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
787 end_inlining hooks.
788 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
789 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
790 lhd_tree_inlining_end_inlining): Remove prototypes.
791 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
792 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
793 LANG_HOOKS_TREE_INLINING_START_INLINING,
794 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
795
796 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
797 not set it.
798
8e5f08fe 7992007-04-08 Anatoly Sokolov <aesok@post.ru>
800
801 PR target/29932
802 * config/avr/predicates.md (io_address_operand): Delete predicate.
803 (low_io_address_operand): Don't use 'mode' argument.
804 (higth_io_address_operand): Rename ...
805 (high_io_address_operand): ... to this. Don't use 'mode' argument.
806 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
807 for above change.
808
cf484390 8092007-04-07 Daniel Berlin <dberlin@dberlin.org>
810
811 Revert change removing staticp.
812
4704b743 8132007-04-07 Anatoly Sokolov <aesok@post.ru>
814
815 PR target/30289
ed01e173 816 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
4704b743 817 earlyclobber.
818
0e9b4e74 8192007-04-07 Bruce Korb <bkorb@gnu.org>
820
821 * c.opt: Add -Wformat-contains-nul.
822 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
823 -Wformat setting.
824 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
825 the NUL byte warning.
826
918ee506 8272007-04-07 H.J. Lu <hongjiu.lu@intel.com>
828
829 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
830
57d1a308 8312007-04-06 Daniel Berlin <dberlin@dberlin.org>
832
833 * tree.c (staticp): No longer use staticp langhook.
834 * langhooks.c (lhd_staticp): Removed.
835 * langhooks.h (struct lang_hooks): Remove staticp.
836 * c-common.c (c_staticp): Remove.
837 * c-common.h (c_staticp): Ditto.
838 * langhooks-defs.h (lhd_staticp): Ditto.
839 (LHD_HOOKS_STATICP): Ditto
840 * tree.h (gcc_assert_lowered): New macro.
841
d97e22fb 8422007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
843
844 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
845 argument "reliable".
846 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
847 Add argument "reliable". Propagate it through calls.
848 (infer_loop_bounds_from_undefined): Derive number of iterations
849 estimates from references in blocks that do not dominate loop latch.
850 (gcov_type_to_double_int): New function.
851 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
852 and expected_loop_iterations_unbounded.
853 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
854 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
855 * tree-data-ref.c (estimated_loop_iterations): Export.
856 (get_references_in_stmt): Fix -- do not return addresses of local
857 objects.
858 * cfgloop.h (expected_loop_iterations_unbounded,
859 estimated_loop_iterations): Declare.
860
fe0b46c1 8612007-04-06 Andreas Tobler <a.tobler@schweiz.org>
862
863 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
864
9926a1b3 8652007-04-06 Uros Bizjak <ubizjak@gmail.com>
866
867 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
868 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
869 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
870 Use output_387_reg_move().
871 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
872 expander using X87MODEF12 mode macro.
873 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
874 choosing register preferences. Use output_387_reg_move().
875 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
876 instead of "x". Use output_387_reg_move().
877 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
878 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
879 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
880 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
881 Use output_387_reg_move().
882 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
883 mode macro.
884 (*truncxf?f_i387 splitter): Ditto.
885
b140c9fd 8862007-04-06 Daniel Berlin <dberlin@dberlin.org>
887
888 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
889 LANG_HOOKS_SAFE_FROM_P.
890 * expr.c (safe_from_p): Remove langhook call.
891 * langhooks.h (lang_hooks): Remove safe_from_p.
892 (lhd_safe_from_p): Remove prototype.
893 * langhooks.c (lhd_safe_from_p): Remove.
ed01e173 894
316ef6d8 8952007-04-06 Jan Hubicka <jh@suse.cz>
896
897 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
898 functions.
899
4c756287 9002007-04-06 Uros Bizjak <ubizjak@gmail.com>
901
902 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
903 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
904 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
905 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
906 alternative.
907 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
908 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
909
32a8f747 9102007-04-05 Richard Henderson <rth@redhat.com>
911
912 * config/alpha/alpha.c (print_operand) [+]: Remove.
913 (alpha_end_function): Print nop if call at end of function.
914 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
915 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
916 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
917 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
918 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
919 the call pattern. Update peepholes to match.
920
004e23c4 9212007-04-05 Janis Johnson <janis187@us.ibm.com>
922
923 * doc/extend.texi (Other Builtins): Add decimal float variants
924 of signbit.
925 * builtins.def: Ditto.
926 * builtins.c (expand_builtin): Ditto.
927
70169283 9282007-04-05 Uros Bizjak <ubizjak@gmail.com>
929 H.J. Lu <hongjiu.lu@intel.com>
930
931 PR target/31478
932 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
933 of V8HImode when calling ix86_binary_operator_ok.
934 (sse2_pmaddwd): Call ix86_binary_operator_ok.
935 (sdot_prodv8hi): Operands 1 and 2 must be register.
936
f3e8be3e 9372007-04-05 Alexandre Oliva <aoliva@redhat.com>
938
939 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
940 initialize align to silence bogus warning.
941
2e4b8bcd 9422007-04-05 Alexandre Oliva <aoliva@redhat.com>
943
944 PR middle-end/22156
945 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
946 all_no_warning.
947 (struct sra_walk_fns): Remove use_all parameter from use.
948 (sra_hash_tree): Handle BIT_FIELD_REFs.
949 (sra_elt_hash): Don't hash bitfld blocks.
950 (sra_elt_eq): Skip them in parent compares as well. Handle
951 BIT_FIELD_REFs.
952 (sra_walk_expr): Don't maintain or pass down use_all_p.
953 (scan_use): Remove use_all parameter.
954 (scalarize_use): Likewise. Re-expand assignment to
955 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
956 output, and re-scalarize after output. Don't mark anything
957 for no warning.
958 (scalarize_ldst): Adjust.
959 (scalarize_walk_gimple_modify_statement): Likewise.
960 (build_element_name_1): Handle BIT_FIELD_REFs.
961 (instantiate_element): Don't warn for any element whose parent
962 is used as a whole.
963 (instantiate_missing_elements_1): Return the sra_elt.
964 (canon_type_for_field): New.
965 (try_instantiate_multiple_fields): New.
966 (instantiate_missing_elemnts): Use them.
967 (mark_no_warning): Removed.
968 (generate_one_element_ref): Handle BIT_FIELD_REFs.
969 (REPLDUP, sra_build_elt_assignment): New.
970 (generate_copy_inout): Use them.
971 (generate_element_copy): Likewise. Handle bitfld differences.
972 (generate_element_zero): Don't recurse for blocks. Use
973 sra_build_elt_assignment.
974 (generate_one_element_int): Take elt instead of var. Use
975 sra_build_elt_assignment.
976 (generate_element_init_1): Adjust.
977 (scalarize_use, scalarize_copy): Use REPLDUP.
978 (scalarize_ldst): Move assert before dereference.
979 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
980
2a515194 9812007-04-05 Steven Bosscher <steven@gcc.gnu.org>
982
983 * regmove.c: Fix unused variable warnings due to previous commit.
984
f9f428c6 9852007-04-05 Steven Bosscher <steven@gcc.gnu.org>
986
987 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
988 (regmove_bb_head): Remove.
989 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
990 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
991 problems with fixup_match_1.
992 Don't initialize/free regmove_bb_head.
993
994 (reg_is_remote_constant_p): If an insn is in the same basic block
995 but not before INSN, consider it remote, too.
996
0d528483 9972007-04-05 Anatoly Sokolov <aesok@post.ru>
998
999 PR target/25448
ed01e173 1000 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
0d528483 1001 DECL_ASSEMBLER_NAME, not the DECL_NAME.
1002
9f525417 10032007-04-05 H.J. Lu <hongjiu.lu@intel.com>
1004
1005 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
1006 (CONDITIONAL_REGISTER_USAGE): Likewise.
1007
de13ca97 10082007-04-04 Richard Henderson <rth@redhat.com>
1009
1010 * config/alpha/lib1funcs.asm: Remove unused file.
1011
7fbbfa9f 10122007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
1013
1014 PR other/31356
1015 * opts.c (print_specific_help): Fix --help=<language>
1016 header line.
1017 (common_handle_option): Support --help=common.
1018
4b70b183 10192007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
1020
1021 PR other/31353
1022 * gcc.c (main): Do not run the linker if
1023 print_subprocess_help indicates that it shouldn't be
1024 run.
1025
a1d3fae9 10262007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
1027
1028 PR doc/31355
1029 * doc/invoke.texi (--help=): Document <languages> value, fix
1030 formatting in tables of values.
1031
f5b1f90b 10322007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
1033
1034 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
1035 dllimport attribute of virtual methods.
1036
0875e592 10372007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
1038
1039 * config/score/crti.asm: Change _bss_start to __bss_start.
1040 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
1041 (OUTGOING_REG_PARM_STACK_SPACE) update.
1042 * config/score/score.opt: add options to make backend support
1043 score5, score5u, score7 and score7d.
1044 * config/score/score.md: Likewise.
1045 * config/score/misc.md: Likewise.
1046 * config/score/mac.md: Likewise.
1047 * doc/invoke.texi: Likewise.
1048 * doc/md.texi: update constraints define.
1049
a4521f7e 10502007-04-03 Richard Henderson <rth@redhat.com>
1051
1052 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
1053 an appropriate type, use the mode instead.
1054
223f6dbc 10552007-04-03 Richard Sandiford <richard@codesourcery.com>
1056
1057 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
1058 Set the default --with-arch setting to mips2.
1059 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
1060 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
1061 (MULTILIB_OSDIRNAMES): Delete.
1062 (MULTILIB_DIRNAMES): Define.
1063 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
1064 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
1065 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
1066 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
1067 VXWORKS_OS_CPP_BUILTINS.
1068 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
1069 (MIPS_DEBUGGING_INFO): Undefine.
1070 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
1071
f83924bb 10722007-04-03 Jakub Jelinek <jakub@redhat.com>
1073
1074 PR middle-end/30704
1075 * fold-const.c (native_encode_real): Encode real.c provided longs
1076 as a series of 32-bit native integers.
1077 (native_interpret_real): Interpret buffer as a series of 32-bit
1078 native integers.
1079
b0ecf094 10802007-04-03 Richard Guenther <rguenther@suse.de>
1081
1082 * genpreds.c (write_insn_constraint_len): Write function
1083 optimized for CONSTRAINT_LEN implementation.
1084 (write_tm_preds_h): Output insn_constraint_len inline and
1085 use it for CONSTRAINT_LEN.
1086 (write_insn_preds_c): Don't output insn_constraint_len.
1087 * doc/md.texi (define_register_constraint): Document multi-letter
1088 constraints shall have the same length if they start with the same
1089 letter.
1090
79959616 10912007-04-03 Uros Bizjak <ubizjak@gmail.com>
1092
1093 PR target/31175
1094 * config/i386/i386.md (isinf<mode>2): Expand only when
1095 TARGET_C99_FUNCTIONS is set.
1096
6d057ce8 10972007-04-03 Uros Bizjak <ubizjak@gmail.com>
1098
1099 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
1100 (x86_64-*-linux*): Ditto.
1101 * config/i386/i386.opt (mpc): New option.
1102 * config/i386/i386.c (overrride_options): Handle
1103 ix87_precision_string.
1104 * config/i386/crtprec.c: New file.
1105 * config/i386/t-crtpc: Ditto.
1106 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
1107 and -mpc80 options.
1108 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
1109 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
1110 crtprec32.o, crtprec64.o and crtprec80.o.
1111
1112 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
1113 and -mpc80 options.
1114 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
1115
924dc384 11162007-04-02 Eric Christopher <echristo@apple.com>
1117
1118 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
1119 limitations on darwin.
1120
ba92127f 11212007-04-02 Anatoly Sokolov <aesok@post.ru>
1122
1123 PR target/31137
1124 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
1125
8995c1df 11262007-04-02 Dave Korn <dave.korn@artimi.com>
1127
bda7c187 1128 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
924dc384 1129
ac7d39a1 11302007-04-02 Dave Korn <dave.korn@artimi.com>
1131
bda7c187 1132 * libgcc2.h (exception_descriptor): Don't forward-declare.
1133 (__get_eh_table_language, __get_eh_table_version): Delete
ac7d39a1 1134 prototypes of long-dead functions.
1135
bcb0e3ff 11362007-04-01 Daniel Berlin <dberlin@dberlin.org>
1137
1138 * ebitmap.h: New file
1139 * ebitmap.c: New file
1140 * Makefile.in (ebitmap.o): New target.
1141
4486418e 11422007-04-01 Jan Hubicka <jh@suse.cz>
1143
1144 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
1145 before very first instruction.
1146
11472007-04-01 Jan Hubicka <jh@suse.cz>
1148
1149 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
1150 waring on 64bit hosts.
1151 * bitmap.h: Fix typo in bitmap_head_def.
1152
6ca330f8 11532007-04-01 Steven Bosscher <steven@gcc.gnu.org>
1154
1155 PR rtl-optimization/31391
1156 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
1157 into a DELETED_LABEL note, and the label is in an empty basic
1158 block, update BB_END as well as BB_HEAD.
1159
6291249b 11602007-04-01 Richard Henderson <rth@redhat.com>
1161
1162 PR tree-optimization/31169
1163 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
1164 to varying if the range is outside [0, prec-1].
1165
34a43822 11662007-04-01 Richard Sandiford <richard@codesourcery.com>
1167
1168 PR target/31388
1169 * config/mips/mips.md (load_const_gp): New insn.
1170 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
1171 the MIPS16 GP pseudo register if no_new_pseudos.
1172 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
1173
0eafba8d 11742007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
1175
1176 PR target/31364
1177 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
1178 secureplt.
1179 (call_value): Likewise.
1180
42cef9df 11812007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
6d057ce8 1182 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
42cef9df 1183
1184 PR 14737
1185 * doc/invoke.texi: (optimization options): Reword description
1186 of -ffast-math. Document its primary purpose.
924dc384 1187
e3022db7 11882007-03-31 Richard Guenther <rguenther@suse.de>
1189
1190 * omp-low.c (splay-tree.h): Include.
1191 (lookup_decl): Replace splay-tree usage by pointer-map.
1192 (maybe_lookup_decl): Likewise.
1193 (new_omp_context): Likewise.
1194 (delete_omp_context): Likewise.
1195 * gimplify.c (splay-tree.h): Include.
1196 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
1197 pointer-map.
1198 (remap_ssa_name): Likewise.
1199 (remap_decl): Likewise.
1200 (remap_type_1): Likewise.
1201 (remap_type): Likewise.
1202 (copy_body_r): Likewise.
1203 (expand_call_inline): Likewise.
1204 (clone_body): Likewise.
1205 (copy_tree_r): Likewise.
1206 (remap_save_expr): Likewise.
1207 (unsave_r): Likewise.
1208 (unsave_expr_now): Likewise.
1209 (tree_function_versioning): Likewise.
1210 (build_duplicate_type): Likewise.
1211 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
1212 (struct copy_body_data): Replace splay-tree by pointer-map.
1213 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
1214 not $(SPLAY_TREE_H).
1215 (gimplify.o): Depend on $(SPLAY_TREE_H).
1216 (omp-low.p): Likewise.
1217
db54c785 12182007-03-31 Anatoly Sokolov <aesok@post.ru>
1219
924dc384 1220 * config/avr/predicates.md (even_register_operand,
db54c785 1221 odd_register_operand): New predicates.
1222 * config/avr/avr.md (movw peephole2): New.
1223 (movw_r peephole2): New.
1224
81e897e4 12252007-03-30 Rafael Avila de Espindola <espindola@google.com>
1226
1227 * tree.h (get_signed_or_unsigned_type): New.
1228 * fold-const.c (operand_equal_for_comparison_p): Use
1229 get_signed_or_unsigned_type instead of
1230 lang_hooks.types.signed_or_unsigned_type.
1231 * expr.c (store_expr): Ditto.
1232 * langhooks.c (get_signed_or_unsigned_type): New.
1233 (lhd_signed_or_unsigned_type): New.
1234 * langhooks.h (lhd_signed_or_unsigned_type): New.
1235 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
1236
0bbe9142 12372007-03-30 Richard Henderson <rth@redhat.com>
1238
1239 * tree-ssa-loop-ivopts.c: Include target.h.
1240 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
1241 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
1242 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
1243 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
1244
12452007-03-30 Richard Henderson <rth@redhat.com>
1246 Kai Tietz <kai.tietz@onevision.com>
1247
1248 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
1249 default for 64-bit.
1250 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
1251 (TARGET_64BIT_MS_ABI): New.
1252 (DBX_REGISTER_NUMBER): Handle 64-bit.
1253 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
1254 (LONG_TYPE_SIZE): Force to 32.
1255 (REG_PARM_STACK_SPACE): New.
1256 (OUTGOING_REG_PARM_STACK_SPACE): New.
1257 (REGPARM_MAX, SSE_REGPARM_MAX): New.
1258 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
1259 (STACK_BOUNDARY): Use 128 for 64-bit.
1260 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
1261 Add 64-bit implementation.
1262 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
1263 argument unused.
1264 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
1265 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
1266 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
1267 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
1268 (ix86_handle_cconv_attribute): Don't warn when ignoring if
1269 TARGET_64BIT_MS_ABI.
1270 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
1271 (ix86_pass_by_reference): Likewise.
1272 (ix86_function_value_regno_p): Likewise.
1273 (ix86_build_builtin_va_list): Likewise.
1274 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1275 (function_arg_advance_ms_64): New.
1276 (function_arg_advance): Call it.
1277 (function_arg_ms_64): New.
1278 (function_arg): Call it.
1279 (function_value_ms_64): New.
1280 (ix86_function_value_1): Call it.
1281 (return_in_memory_ms_64): New.
1282 (ix86_return_in_memory): Call it.
1283 (setup_incoming_varargs_ms_64): New.
1284 (ix86_setup_incoming_varargs): Call it.
1285 (ix86_expand_prologue): Handle 64-bit stack probing.
1286 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
1287 (output_pic_addr_const): Likewise.
1288 (x86_this_parameter): Likewise.
1289 (x86_output_mi_thunk): Likewise.
1290 (x86_function_profiler): Likewise.
1291 (TARGET_STRICT_ARGUMENT_NAMING): New.
1292 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
1293 (TARGET_64BIT_MS_ABI): New.
1294 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
1295 * config/i386/i386.md (allocate_stack_worker): Remove.
1296 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
1297 describe the clobber of eax without a match_scratch.
1298 (allocate_stack_worker_postreload): Remove.
1299 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
1300 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
1301 (allocate_stack_worker_rex64_postreload): Remove.
1302 (allocate_stack): Handle 64-bit.
1303 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
1304 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
1305 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
1306 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
1307 (STANDARD_STARTFILE_PREFIX_1): Likewise.
1308 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
1309 * config.build (x86_64-*-mingw*): New host.
1310 * config.host (x86_64-*-mingw*): New host.
1311 * config.gcc (x86_64-*-mingw*): New target.
1312 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
1313
3fa3949d 13142007-03-30 Richard Henderson <rth@redhat.com>
1315 Kai Tietz <kai.tietz@onevision.com>
1316
1317 * c-pragma.c (struct def_pragma_macro_value): New.
1318 (struct def_pragma_macro): New.
1319 (pushed_macro_table): New.
1320 (dpm_hash, dpm_eq): New.
1321 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
1322 (init_pragma): Install them.
1323 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
1324
6e9e3dbe 13252007-03-30 Anatoly Sokolov <aesok@post.ru>
1326
924dc384 1327 * config/avr/avr.c (avr_override_options): Clear
6e9e3dbe 1328 'flag_delete_null_pointer_checks'.
1329
481451eb 13302007-03-30 Paolo Carlini <pcarlini@suse.de>
1331
1332 PR c++/26099
1333 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
1334 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
1335 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
1336 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
1337 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
1338 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
1339 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
1340 C++ extensions.
1341 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
1342
e1caca42 13432007-03-30 Steven Bosscher <steven@gcc.gnu.org>
1344
1345 * regmove.c: Move all of pass_stack_adjustments from here...
1346 * combine-stack-adj.c: ...to this new file.
1347 * Makefile.in: Add rules for combine-stack-adj.o.
1348
de33470d 13492007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
1350
1351 PR tree-optimization/31383
1352 * tree-data-ref.c (affine_function_equal_p): Do not require the vectors
1353 to have the same length.
1354
5615be0f 13552007-03-30 Jan Hubicka <jh@suse.cz>
1356
b2e3c5f9 1357 PR middle-end/30700
924dc384 1358 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
5615be0f 1359 availablility; add more sanity checking; ask varpool only about
1360 VAR_DECL.
1361
9c0794a1 13622007-03-29 Richard Henderson <rth@redhat.com>
1363
1364 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
1365 to decide, but __SIZEOF_LONG_LONG__.
1366
bedbe58b 13672007-03-29 Richard Henderson <rth@redhat.com>
1368
1369 * emutls.c (struct __emutls_array): New.
1370 (emutls_destroy): Use it instead of casting element 0 from void*.
1371 (__emutls_get_address): Likewise.
1372
dd1a226e 13732007-03-29 Richard Henderson <rth@redhat.com>
1374
1375 * varasm.c (initializer_constant_valid_p): Don't deny
1376 DECL_DLLIMPORT_P on functions.
1377
1378 * config/i386/cygming.h: Remove function declarations.
1379 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
1380 (ASM_OUTPUT_LABELREF): Remove.
1381 (COMMON_ASM_OP): Remove.
1382 (ASM_OUTPUT_COMMON): Remove.
1383 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
1384 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
1385 (ASM_DECLARE_FUNCTION_NAME): Likewise.
1386 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
1387 Rename from TARGET_ENCODE_SECTION_INFO.
1388 * config/i386/netware.h: Likewise.
1389 * config/i386/i386-protos.h: Update.
1390 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
1391 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
1392 (legitimate_constant_p): Reject dllimports.
1393 (dllimport_map, get_dllimport_decl): New.
1394 (legitimize_dllimport_symbol): New.
1395 (legitimize_address, ix86_expand_move): Use it.
1396 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
1397 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
1398 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
1399 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
1400 * config/i386/predicates.md (constant_call_address_operand): Only
1401 accept symbols; reject dllimport_p symbols.
1402 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
1403 i386_pe_maybe_record_exported_symbol.
1404 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
1405 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
1406 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
1407 trust the setting of DECL_DLLIMPORT_P.
1408 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
1409 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
1410 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
1411 tidy the argument scanning loop.
1412 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
1413 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
1414 (i386_pe_strip_name_encoding): Remove.
1415 (i386_pe_binds_local_p): New.
1416 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
1417 (i386_pe_output_labelref): Remove.
1418 (i386_pe_asm_output_aligned_decl_common): New.
1419 (i386_pe_maybe_record_exported_symbol): Rename from
1420 i386_pe_record_exported_symbol; check for dllexported symbols.
1421
409f9175 14222007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
1423
1424 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
1425 add comment explaining why vsnprintf cannot be used.
1426
a024c245 14272007-03-29 Douglas Gregor <doug.gregor@gmail.com>
1428
1429 PR tree-optimization/30666
1430 * tree.c (build_complex_type): When creating type names for DWARF2
1431 debug info, create TYPE_DECLs for TYPE_NAME instead of
1432 IDENTIFIER_NODEs.
1433 (build_common_tree_nodes_2): Use build_complex_type when building
1434 predefined complex types, to preserve canonical types.
1435
ba45c933 14362007-03-29 Steven Bosscher <steven@gcc.gnu.org>
1437
1438 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
1439 (noce_get_alt_condition): Look at it to determine whether to
1440 reverse the condition or not.
1441 (noce_get_condition): Substitute the truth for lies.
1442 (noce_find_if_block): Set the then_else_reversed field.
1443
5e8ebe59 14442007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
1445
1446 * config/fr30/fr30.md (movdi): Do not accept immediates as the
1447 destination of this insn.
1448 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
1449 than calling gen_rtx_SET directly. Use r0 to hold the value of
1450 'address + 4' rather than a stack based temporary which can be
1451 mis-optimized away.
924dc384 1452
328d5423 14532007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
1454
1455 * config/s390/s390.c (s390_secondary_input_reload_class,
1456 s390_secondary_output_reload_class): Functions removed.
1457 (s390_secondary_reload): New function.
1458 (TARGET_SECONDARY_RELOAD): Target macro defined.
1459 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
1460 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
1461 * config/s390/s390.md ("reload_outti", "reload_outdi",
1462 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
1463 "reload_out<mode>"): Expanders removed.
1464 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
1465 "reload<mode>_nonoffmem_out"): Expanders added.
1466
fc7c3aae 14672007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
1468
1469 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair action if
1470 SRC->DEST replacement failed anyway.
1471
f3e0a067 14722007-03-28 Mike Stump <mrs@apple.com>
1473
1474 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
1475 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
a8654287 1476 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
f3e0a067 1477
d80b6b7d 14782007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1479
1480 * config.gcc: Accept barcelona as a variant of amdfam10.
1481 * config/i386/i386.c (override_options): Likewise.
1482 * doc/invoke.texi: Likewise.
924dc384 1483
74aab153 14842007-03-28 Eric Botcazou <ebotcazou@adacore.com>
1485
1486 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
1487 offsets for BIT_FIELD_REF and COMPONENT_REF.
1488
dc6fafc6 14892007-03-28 Richard Guenther <rguenther@suse.de>
1490
1491 * tree.c (is_global_var): Move ...
1492 * tree-flow-inline.h (is_global_var): ... here.
1493 * tree.h (is_global_var): Remove declaration.
1494
58c9a086 14952007-03-28 Uros Bizjak <ubizjak@gmail.com>
1496
1497 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
1498 option.
1499 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
1500 * config/i386/i386.c (ix86_tune_features): Initialize new
1501 tuning option.
1502 * config/i386/predicates.md (promotable_binary_operator): Use
1503 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
1504
41b0d74f 15052007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
1506
1507 PR target/31380
1508 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
1509
0c570b19 15102007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
95175695 1511
1512 * config/fr30/fr30.md (movsi_internal): Change destination
924dc384 1513 constraint from m to V and add m to the end.
95175695 1514
4a98dc74 15152007-03-28 Christian Bruel <christian.bruel@st.com>
1516
1517 * config/sh/sh.md (movsi_i): Fix type attribute.
1518
0c570b19 15192007-03-28 Christian Bruel <christian.bruel@st.com>
e661b951 1520
1521 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
1522 (movsf_ie): Likewise.
1523
99b0f6d9 15242007-03-28 Christian Bruel <christian.bruel@st.com>
1525
1526 * config.gcc: Add sh4-300 to multilib.
1527 * config/sh/t-mlib-sh4-300: New file.
1528
37e3ac7e 15292007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
1530
1531 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
1532 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
1533 fix_trunc<mode>di2.
924dc384 1534 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
37e3ac7e 1535 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
1536 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
1537 "fixuns_trunctddi2"): Whitespace fix.
1538
f328f118 15392007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
1540
1541 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
1542 the definition of struct sh_args.
1543 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
1544 CALL_COOKIE_INT_REG_GET): Likewise.
1545
0fffdebc 15462007-03-28 Steven Bosscher <steven@gcc.gnu.org>
1547
1548 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
1549 transformations are applied successfully.
1550
5ca99950 15512007-03-27 Douglas Gregor <doug.gregor@gmail.com>
1552
1553 * tree.c (tree_contains_struct): Permit 512 tree codes.
1554 * tree.h (tree_contains_struct): Ditto.
1555 (MAX_TREE_CODES): Ditto.
1556 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
1557 SPARE member to store remaining padding bits.
1558
097373ae 15592007-03-27 Anatoly Sokolov <aesok@post.ru>
1560
924dc384 1561 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
097373ae 1562 architecture.
1563
ca0d2b55 15642007-03-27 Janis Johnson <janis187@us.ibm.com>
1565
88f38265 1566 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
1567 * configure: Regenerate.
1568
ca0d2b55 1569 * configure: Regenerate using the correct version of autoconf.
1570
15712007-03-27 Anatoly Sokolov <aesok@post.ru>
dc39da57 1572
1573 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
1574 pointer regs.
1575 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
1576 regs to "__SP_L__" and "__SP_H__".
1577
209f25b9 15782007-03-27 Richard Guenther <rguenther@suse.de>
1579
1580 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
924dc384 1581 computations with it with a HOST_WIDE_INT variable.
209f25b9 1582
45ccdeb8 15832007-03-26 Mike Stump <mrs@apple.com>
1584
1585 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
1586 objective-c-header, objective-c++-header and objc++-cpp-output
1587 support.
1588 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
1589
1a510660 15902007-03-26 Richard Henderson <rth@redhat.com>
1591
58c9a086 1592 PR target/31361
1593 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
1594 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
1595 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
1596 IX86_BUILTIN_PSRLQ128): New.
1597 (ix86_init_mmx_sse_builtins): Add them.
1598 (ix86_expand_builtin): Expand them.
1599 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
1600 operand 2 be TImode.
1601 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
1602 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
1603 _mm_srli_epi64): Mark __B const.
1604 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
1605 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
924dc384 1606 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
58c9a086 1607 new two-vector shift builtins.
1a510660 1608
c68b42d2 16092007-03-26 Ian Lance Taylor <iant@google.com>
1610
1611 PR tree-optimization/31345
1612 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
1613 [+INF, +INF(OVF)] into VARYING.
1614
f8be92ce 16152007-03-26 Zack Weinberg <zackw@panix.com>
1616
1e837561 1617 * gengtype-parse.c: New file.
1618 * gengtype-yacc.y: Delete.
1619 * gengtype-lex.l: Don't include gengtype-yacc.h.
1620 Define YY_DECL and yyterminate appropriately for recursive
1621 descent parser. yylval is now a string out-parameter to yylex.
1622 (HWS, EOID): New shorthand.
1623 (IWORD): Add a couple more types.
1624 (yylex): Add a setup stanza. Remove the complex rules for
1625 detecting GTY'ed types and typedefs; replace with simple
1626 keyword detectors. Adjust everything for the changed
1627 definition of yylval. Ignore all pp-directives, not just #define.
1628 (yyerror): Delete.
1629 (parse_file): Rename yybegin; do not call yyparse.
1630 (yyend): New.
1631 * gengtype.c (xasprintf): Export again.
1632 (this_file): New. Use everywhere __FILE__ was being used.
1633 (get_lang_bitmap): Special case types defined in gengtype.c.
1634 (do_typedef, new_structure): Suppress definition of certain types.
1635 (new_structure): Improve diagnostics of duplicate definitions.
1636 Make sure location_s is associated with input.h.
1637 (nreverse_pairs, define_location_structures): New functions.
1638 (main): Improve tagging of kludge types. Remove old kludges
1639 for input.h types; use define_location_structures.
1640 * gengtype.h: Update prototypes. Define token codes here.
1641 * Makefile.in: Remove all references to gengtype-yacc.
1642 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
1643 and gengtype.
1644 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
1645 add GTY((skip)) to the field that's only conditionally there.
1646 * doc/install.texi: Document that Bison is no longer required
1647 unless building treelang.
1648
570af75a 1649 * gengtype.c: Don't include gtyp-gen.h.
1650 (srcdir): Declare here.
1651 (base_files, lang_dir_names): Allocate dynamically.
1652 (gt_files, num_gt_files, num_lang_dirs): New globals.
1653 (measure_input_list, read_input_line, read_input_list)
1654 (set_lang_bitmap): New functions.
1655 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
1656 simplify, relying on read_input_list to set up the bitmaps.
1657 (main): Arguments are no longer unused. Check for correct number
1658 of command line arguments, set srcdir and srcdir_len, then call
1659 read_input_list, before doing anything else. No need to worry
1660 about duplicates in main loop.
1661 * configure.ac: Simplify the calculation of all_gtfiles.
1662 Put language tags in there. Don't set or substitute
1663 all_gtfiles_files_langs or all_gtfiles_files_frags.
1664 * Makefile.in: Revamp the way gengtype is invoked, now that it
1665 takes a file on its command line with a much simpler format.
1666 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
1667 (GTFILES): Remove duplicates and C source files.
1668 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
1669 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
1670 * configure: Regenerate.
1671
4097676c 1672 * gengtype.h: Remove all type definitions to gengtype.c; leave
1673 only definitions of options_p, type_p, and pair_p as opaque
1674 pointers. Update prototypes.
1675 * gengtype.c: Many type definitions moved here from gengtype.h.
1676 Consolidate type definitions at the top of the file.
1677 (xvasprintf): Delete.
1678 (xasprintf): Make static.
1679 (create_nested_pointer_option): Add 'next' parameter.
1680 (create_field_all, create_field_at): New functions.
1681 (create_field): Now a thin wrapper around create_field_all.
1682 (create_optional_field): Rename create_optional_field_ and add
1683 line argument. Original name is now a macro which supplies
1684 __LINE__.
1685 (oprintf): Use vsnprintf directly.
1686 (close_output_files): Use fatal rather than perror/exit.
1687 (note_def_vec, note_def_vec_alloc): Use create_field_at.
1688 (main): Set progname. Don't use exit.
1689 * gengtype-yacc.y (struct_fields): Use create_field_at.
1690 (option, optionseqopt): Delete.
1691 (optionseq): Consolidate productions from option here so we
1692 can use the first argument to create_option.
1693
6fee8f02 1694 * gengtype-lex.l: Distinguish unions from structures in the
1695 token type. Don't call find_structure; return the tag as a string.
1696 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and ENT_UNION.
1697 Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is string.
1698 Reorganize typedef_struct production accordingly.
1699 Use create_nested_ptr_option.
1700 * gengtype.c (create_nested_ptr_option): New function.
1701 * gengtype.h: Declare it.
1702
80da8e25 1703 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
1704 (string_type): Don't declare.
1705 (do_scalar_typedef): Declare.
1706 (create_scalar_type): Update prototype.
1707 * gengtype.c (string_type): Make static.
1708 (scalar_nonchar, scalar_char): New.
1709 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
1710 (resolve_typedef): Use scalar_nonchar for error recovery.
1711 (create_scalar_type): Remove name_len field. Return scalar_char
1712 or scalar_nonchar as appropriate.
1713 (adjust_field_type): Look at scalar_is_char boolean to decide whether
1714 to use string_type.
1715 (throughout): Use scalar_nonchar instead of calling create_scalar_type,
1716 whenever possible.
1717 (main): Initialize scalar_char and scalar_nonchar before calling
1718 gen_rtx_next.
1719 * gengtype-lex.l: Adjust for removal of second argument to
1720 create_scalar_type. Use yylval.s instead of yylval.t when
1721 returning SCALAR.
1722 * gengtype-yacc.y: Type of SCALAR is string. Call
1723 create_scalar_type from type:SCALAR rule. Adjust for removal of
1724 second argument to create_scalar_type.
1725
696e7773 1726 * vec.h: Remove all #if IN_GENGTYPE blocks.
1727 Add comment saying that changes may require adjustments to gengtype.
1728 * gengtype.c: Don't include coretypes.h or tm.h.
1729 Add comment to inclusion of errors.h.
1730 (note_def_vec, note_def_vec_alloc): New functions.
1731 * gengtype.h: Declare new functions.
1732 * gengtype-lex.l: Don't include coretypes.h.
1733 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
1734 Delete.
1735 (update_lineno): Remove unnecessary prototype.
1736 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
1737 (VEC rule): Just return VEC_TOKEN.
1738 * gengtype-yacc.y (VEC_TOKEN): New token type.
1739 (type): Add a production for VEC(a,b).
1740 * Makefile.in: Update dependencies.
1741
892ddc0b 1742 * gengtype-lex.l: Remove rules for parsing pointer-to-function
1743 typedefs that use the old PARAMS macro.
1744
f8be92ce 1745 * gengtype-lex.l: Remove all rules and states relating to yacc
1746 input files.
1747 * gengtype-yacc.y: Similarly.
1748 * gengtype.c (note_yacc_type): Delete function.
1749 * gengtype.h: Update prototypes.
1750
e4e0b898 17512007-03-26 Joseph Myers <joseph@codesourcery.com>
1752
1753 * tree-pretty-print.c (dump_generic_node): Report precision of
1754 unnamed integer types.
1755
03dbd7cc 17562007-03-26 Steven Bosscher <steven@gcc.gnu.org>
1757
1758 * ifcvt.c (noce_try_store_flag_constants): Don't check
1759 no_new_pseudos here.
1760 (noce_try_store_flag_constants): Don't check no_new_pseudos.
1761 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
1762 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
1763 noce_try_sign_mask): Likewise.
1764 (if_convert): Check no_new_pseudos here.
1765
1766 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
1767 Remove prototypes.
1768 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
1769 (noce_get_condition): Handle new then_else_reversed argument.
1770 (noce_init_if_info): Remove, fold into noce_find_if_block.
1771 (noce_process_if_block): Take a struct noce_if_info as the
1772 argument. Don't set up one based on ce_if_info. Update pointer
1773 references accordingly.
1774 (cond_move_process_if_block): Likewise.
1775 (process_if_block): Removed.
1776 (find_if_block): Removed. Move functionality two new functions,
1777 noce_find_if_block and cond_exec_find_if_block.
1778 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
1779 blocks and the symmetric IF-ELSE-JOIN case.
1780 (cond_exec_find_if_block): Also new function mostly based on old
1781 find_if_block and process_if_block.
1782 (find_if_header): Replace find_if_block call with separately
1783 guarded calls to noce_find_if_block and cond_exec_find_if_block.
1784 (find_cond_trap): Update noce_get_condition call.
1785 (dead_or_predicable): Likewise.
1786
211d5b9a 17872007-03-26 Jakub Jelinek <jakub@redhat.com>
1788
1789 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
1790 Remove.
1791 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
1792 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
1793 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
1794 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
58c9a086 1795 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
211d5b9a 1796 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
1797 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
1798 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
1799 __builtin_ia32_psrad128 builtins.
1800
4e9abdcc 18012007-03-26 Uros Bizjak <ubizjak@gmail.com>
1802
1803 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
1804 * config/i386/constraints.md
1805 (define_constraint "I"): Use IN_RANGE macro.
1806 (define_constraint "J"): Ditto.
1807 (define_constraint "K"): Ditto.
1808 (define_constraint "M"): Ditto.
1809 (define_constraint "N"): Ditto.
1810 (define_constraint "O"): Ditto.
1811 * config/i386/predicates.md
1812 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
1813 (define_predicate "const_0_to_3_operand"): Ditto.
1814 (define_predicate "const_0_to_7_operand"): Ditto.
1815 (define_predicate "const_0_to_15_operand"): Ditto.
1816 (define_predicate "const_0_to_63_operand"): Ditto.
1817 (define_predicate "const_0_to_255_operand"): Ditto.
1818 (define_predicate "const_1_to_31_operand"): Ditto.
1819 (define_predicate "const_2_to_3_operand"): Ditto.
1820 (define_predicate "const_4_to_7_operand"): Ditto.
1821
87ba92a7 18222007-03-25 David Edelsohn <edelsohn@gnu.org>
1823
1824 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
1825 in SImode for save_world.
1826 * config/rs6000/altivec.md (save_world, restore_world): Convert to
1827 LR hard reg.
1828
3cbad267 18292007-03-25 Dorit Nuzman <dorit@il.ibm.com>
1830
1831 PR tree-optimization/30784
1832 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
1833 BIT_FIELD_REF.
1834
73772494 18352007-03-25 Revital Eres <eres@il.ibm.com>
1836
f8be92ce 1837 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
1838 Fold movement_possibility function into it.
73772494 1839
327202e2 18402007-03-25 David Edelsohn <edelsohn@gnu.org>
1841
1842 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
1843 (load_macho_picbase_{si,di}): Convert to LR hard reg.
1844 (call_indirect_nonlocal_darwin64): Same.
1845 (call_nonlocal_darwin64): Same.
1846 (call_value_indirect_nonlocal_darwin64): Same.
1847 (call_value_nonlocal_darwin64): Same.
1848 (sibcall_nonlocal_darwin64): Same.
1849 (sibcall_value_nonlocal_darwin64): Same.
1850 (sibcall_symbolic_64): Same.
1851 (sibcall_value_symbolic_64): Same.
1852 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
1853 LR pseudo.
1854 (rs6000_emit_load_toc_table): Same.
1855 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
1856 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
1857 (mull_call): Same.
1858 (divss_call): Same.
1859 (divus_call): Same.
1860 (quoss_call): Same.
1861 (quous_call): Same.
1862 (load_toc_v4_pic_si): Same
1863 (load_toc_v4_PIC_1): Same.
1864 (load_toc_v4_PIC_1b): Same.
1865 (call_indirect_aix{32,64}): Same.
1866 (call_value_indirect_aix{32,64}): Same.
1867 (call): Same.
1868 (call_value): Same.
1869 (call_local{32,64}): Same.
1870 (call_value_local{32,64}): Same.
1871 (call_indirect_nonlocal_aix{32,64}): Same.
1872 (call_nonlocal_aix{32,64}): Same.
1873 (call_value_indirect_nonlocal_aix{32,64}): Same.
1874 (call_value_nonlocal_aix{32,64}): Same.
1875 (call_indirect_nonlocal_sysv<mode>): Same.
1876 (call_nonlocal_sysv<mode>): Same.
1877 (call_value_indirect_nonlocal_sysv<mode>): Same.
1878 (call_value_nonlocal_sysv<mode>): Same.
1879 (sibcall): Same.
1880 (sibcall_local{32,64}): Same.
1881 (sibcall_value_local{32,64}): Same.
1882 (sibcall_nonlocal_aix{32,64}): Same.
1883 (sibcall_value_nonlocal_aix{32,64}): Same.
1884 (sibcall_nonlocal_sysv<mode>): Same.
1885 (sibcall_value): Same.
1886 (sibcall_value_nonlocal_sysv<mode>): Same.
1887
8eba3d10 18882007-03-24 Paul Brook <paul@codesourcery.com>
1889
1890 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
1891 * config/arm/linux-eabi.h: Remove legacy syscall hack.
1892
269f7060 18932007-03-24 Richard Henderson <rth@redhat.com>
1894
1895 * config/ia64/constraints.md: New file.
1896 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
1897 satisfies_constraint_?.
1898 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
1899 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
1900 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
1901 ia64_output_mi_thunk): Likewise.
1902 (ia64_const_ok_for_letter_p): Remove.
1903 (ia64_const_double_ok_for_letter_p): Remove.
1904 (ia64_extra_constraint): Remove.
1905 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
1906 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
1907 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
1908 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
1909 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
1910 EXTRA_MEMORY_CONSTRAINT): Remove.
1911 * config/ia64/ia64.md: Include constriants.md. Replace
1912 CONST_OK_FOR_? with satisfies_constraint_?.
1913
10de71e1 19142007-03-23 Michael Meissner <michael.meissner@amd.com>
1915 H.J. Lu <hongjiu.lu@intel.com>
1916
1917 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
1918 DPD or BID name.
1919 (name macros): Use DPD_BID_NAME to convert names properly.
1920
1921 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
1922 decimal floating point format.
1923 (init_floating_libfuncs): Change decimal functions so that they
1924 have a "bid_" prefix if the decimal system uses the BID format,
1925 and "dpd_" prefix if the decimal system uses the DPD format.
1926 (init_interclass_conv_libfuncs): Ditto.
1927 (init_intraclass_conv_libfuncs): Ditto.
1928
1929 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
1930 using the BID format.
1931
1932 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
1933 whether we are using the BID decimal format.
1934 * configure: Regenerate.
1935
1936 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
1937 the compiler has decimal floating point enabled. Define
1938 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
1939 instead of DPD.
1940
1941 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
1942 using the BID format.
1943
1944 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
1945 whether we are using the BID decimal format.
1946 * configure: Regenerate.
1947
1948 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
1949 the compiler has decimal floating point enabled. Define
1950 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
1951 instead of DPD.
1952
1953 * doc/install.texi (--enable-decimal-float): Document BID and DPD
1954 options, and that it is enabled for i386/x86_64 systems.
1955
1956 * Makefile.in (enable_decimal_float): New.
1957 (DECNUMFMT): New.
1958 (DECNUMINC): Add -I$(DECNUMFMT).
1959 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
1960 to $(DECNUMFMT) from $(DECNUM).
1961
1962 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
1963 Substitute enable_decimal_float.
1964 * configure: Regenerated.
1965
1966 PR other/30529
1967 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
1968 unsigned long.
1969
1970 * configure.ac: Enable decimal float for x86_64-*-linux*.
1971 * configure: Regenerated.
1972
1973 PR other/30530
1974 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
1975 decimal128ClearSign to flip and clear the sign bit in decimal128.
1976 (decimal_real_maxval): Set decimal128SetSign to set the sign
1977 bit in decimal128.
1978
558517fd 19792007-03-23 Ian Lance Taylor <iant@google.com>
1980
1981 * fold-const.c (fold_binary): Correct warning for X - c >= X.
1982
fb5b6d1b 19832007-03-23 Ian Lance Taylor <iant@google.com>
1984
1985 * tree-dump.c (dump_files): Correct comment.
1986
f82ccac1 19872007-03-23 Ian Lance Taylor <iant@google.com>
1988
1989 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
1990
207c7ab2 19912007-03-23 Steven Bosscher <steven@gcc.gnu.org>
1992
1993 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
1994 in cfglayout mode. Don't go into and out of cfglayout mode.
1995 Link the blocks in the order of the constructed traces.
1996 (rest_of_handle_tracer): Adjust call to tracer.
1997 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
1998 Don't go into cfglayout mode.
1999 (rtl_loop_done): Don't go out of cfglayout mode.
2000 * cfglayout.c (relink_block_chain): New function, split out from...
2001 (fixup_reorder_chain): ...here. Remove redundant checking.
2002 (cfg_layout_finalize): Don't clear the header, footer, and aux
2003 fields here, move the code to do so to relink_block_chain. Likewise
2004 for free_original_copy_tables.
2005 * rtl.h (tracer): Update prototype.
2006 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
2007 Assert we are in cfglayout mode. Don't go into and out of cfglayout
2008 mode. Use relink_block_chain to serialize the CFG according to the
2009 new basic block order. Move targetm.cannot_modify_jumps_p check from
2010 here...
2011 (gate_handle_reorder_blocks): ...to here.
2012 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
2013 from here...
2014 (gate_duplicate_computed_gotos): ...to here.
2015 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
2016 something always changes when going into and out of cfglayout mode.
2017 Perform an expensive cfg cleanup while going into cfglayout mode.
2018 Always update liveness information on HAVE_conditional_execution
2019 targets. Reserialize the basic blocks and go out of cfglayout mode.
2020 * reg-stack.c: Include cfglayout.h.
2021 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
2022 the call to reorder_basic_blocks.
2023 * basic-block.h (reorder_basic_blocks): Update prototype.
2024 (relink_block_chain): New prototype.
2025 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
2026
f01296c3 20272007-03-23 Joseph Myers <joseph@codesourcery.com>
2028
2029 * config/mips/mips.md (type, hazard, *movdi_32bit,
2030 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
2031 *movhi_internal, *movqi_internal, *movsf_hardfloat,
2032 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
2033 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
2034 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
2035 applicable.
2036 (movcc): Change first xfer to multi.
2037 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
2038 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
2039 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
2040 config/mips/generic.md: Change reservations using "xfer" to use
2041 "mfc,mtc".
2042 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
2043 using match_operand.
2044 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
2045 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
2046 examining mode.
2047 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
2048
788002f3 20492007-03-22 Richard Henderson <rth@redhat.com>
2050
2051 * config/i386/i386.c: Remove unnecessary function declarations.
2052 Move targetm definition, and all related macros, to the end of
2053 the file. Resort some functions to put definitions before uses.
2054 (ix86_attribute_table): Make static. Move to end of file.
2055 (ix86_gimplify_va_arg): Make static.
2056
9c587e53 20572007-03-22 Richard Henderson <rth@redhat.com>
2058
2059 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
2060 don't increase local_regparm with force_align_arg_pointer check.
2061 (ix86_function_sseregparm): Assert 32-bit.
2062 (type_has_variadic_args_p): New.
2063 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
2064 type_has_variadic_args_p.
2065 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
2066 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
2067 use memset instead. Do maybe_vaarg check first; skip attribute
2068 tests if true; skip attribute tests for 64-bit.
2069 (construct_container): Remove TARGET_DEBUG_ARG.
2070 (function_arg_advance_32, function_arg_advance_64): Split out ...
2071 (function_arg_advance): ... from here.
2072 (function_arg_32, function_arg_64): Split out ...
2073 (function_arg): ... from here.
2074 (ix86_pass_by_reference): Tidy.
2075 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
2076 (function_value_32): New, from parts of ix86_function_value
2077 and ix86_value_regno.
2078 (function_value_64): New, from parts of ix86_function_value
2079 and ix86_libcall_value.
2080 (ix86_function_value_1): New.
2081 (ix86_function_value, ix86_libcall_value): Use it.
2082 (return_in_memory_32, return_in_memory_64): Split out ...
2083 (ix86_return_in_memory): ... from here.
2084 (ix86_struct_value_rtx): Skip for 64-bit.
2085 (ix86_libcall_value, ix86_value_regno): Remove.
2086 (setup_incoming_varargs_64): Split out ...
2087 (ix86_setup_incoming_varargs): ... from here.
2088 (ix86_va_start): Remove TARGET_DEBUG_ARG.
2089 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
2090 * config/i386/i386-protos.h (ix86_function_value): Remove.
2091 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
2092
64214dab 20932007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2094
2095 PR other/23572
2096 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
2097 infinities not supported, otherwise emit warning if -Woverflow. On
2098 underflow, emit warning if -Woverflow.
2099 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
2100 and 0 otherwise.
2101 * real.h (real_from_string): Update declaration
f8be92ce 2102
63c68695 21032007-03-22 Kai Tietz <kai.tietz@onevision.com>
2104 Richard Henderson <rth@redhat.com>
2105
2106 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
2107 * calls.c (compute_argument_block_size, expand_call,
2108 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
2109 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
2110 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
2111 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
2112 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
2113 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
2114 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
2115 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
2116 Set to 1.
2117
016bf95b 21182007-03-22 Joseph Myers <joseph@codesourcery.com>
2119
2120 * c-incpath.c (add_sysroot_to_chain): New.
2121 (merge_include_chains): Add sysroot argument. Call
2122 add_sysroot_to_chain if sysrooted.
2123 (register_include_chains): Update call to merge_include_chains.
2124 * doc/cppopts.texi: Document use of '=' in include directory
2125 arguments.
2126
a745c94e 21272007-03-22 Uros Bizjak <ubizjak@gmail.com>
2128
2129 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
2130 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
2131 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
2132 insn pattern using X87MODEF12 mode macro.
f8be92ce 2133
02f07e87 21342007-03-21 Seongbae Park <seongbae.park@gmail.com>
2135
2136 * regmove.c (regmove_optimize): Use reg_mentioned_p
2137 instead of reg_overlap_mentioned_p for DST.
2138
dad26ad9 21392007-03-21 Mike Stump <mrs@apple.com>
2140
2141 * c.opt: Fixup for Objective-C/C++.
2142
a745c94e 21432007-03-21 Steve Ellcey <sje@cup.hp.com>
2800ac1a 2144
2145 * explow.c (convert_memory_address): Fold memory reference when
2146 POINTERS_EXTEND_UNSIGNED < 0
2147
0e960ba8 21482007-03-21 Richard Henderson <rth@redhat.com>
2149
2150 PR target/31245
2151 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
2152 * config/i386/mmintrin.h (__m64): Likewise.
2153 * config/i386/xmmintrin.h (__m128): Likewise.
2154
f868f9f1 21552007-03-21 Richard Sandiford <richard@codesourcery.com>
2156
2157 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
2158 (VXWORKS_OS_CPP_BUILTINS): Define.
2159 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
2160 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
2161
3aba99c8 21622007-03-21 Richard Sandiford <richard@codesourcery.com>
2163
2164 * rtl.h (constant_pool_reference_p): Delete.
2165 (find_constant_src): Declare.
2166 * rtlanal.c (find_constant_src): New function.
2167 * simplify-rtx.c (constant_pool_reference_p): Delete.
2168 * config/i386/i386.md: Use find_constant_src instead of
2169 constant_pool_reference_p/avoid_constant_pool_reference pairs.
2170
7a0eea86 21712007-03-21 Richard Sandiford <richard@codesourcery.com>
2172
2173 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
2174 * c-cppbuiltin.c (c_cpp_builtins): Define them.
2175
a457f9f8 21762007-03-20 Mark Mitchell <mark@codesourcery.com>
2177
2178 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
2179 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
2180 (arm_elf_asm_constructor): Use it.
2181 (arm_elf_asm_destructor): New function.
2182
76021441 21832007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
2184
2185 * jump.c (mark_jump_label): Treat SEQUENCE specially.
2186
08b2466e 21872007-03-20 Nathan Sidwell <nathan@codesourcery.com>
2188
2189 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
2190
2b9f2e46 21912007-03-19 Andrew Haley <aph@redhat.com>
2192
2193 PR tree-optimization/31264
2194 * tree-vrp.c (register_edge_assert_for_1): Don't look though
2195 VIEW_CONVERT_EXPRs.
2196
243f24c5 21972007-03-19 Paolo Bonzini <bonzini@gnu.org>
2198
2199 PR rtl-optimization/30907
2200 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
2201 (fwprop_init): Always call loop_optimizer_initialize.
2202 (fwprop_done): Always call loop_optimizer_finalize.
2203 (fwprop): We always have loop info now.
2204 (gate_fwprop_addr): Remove.
2205 (pass_fwprop_addr): Use gate_fwprop as gate.
2206
2207 PR rtl-optimization/30841
2208 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
2209 df_chain_alloc): Call df_reorganize_refs unconditionally.
2210 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
2211 refs_organized to refs_organized_size.
2212 (df_ref_create_structure): Use refs_organized_size instead of
2213 bitmap_size if refs had been organized, and keep refs_organized_size
2214 up-to-date.
2215 * df.h (struct df_ref_info): Change refs_organized to
2216 refs_organized_size.
2217 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
2218 bitmap_size.
2219
9519f67b 22202007-03-19 Mark Mitchell <mark@codesourcery.com>
2221
2222 * except.c (output_function_exception_table): Do not reference the
2223 EH personality routine for functions that do not require an
2224 exception table.
2225
3d8785bc 22262007-03-20 Jakub Jelinek <jakub@redhat.com>
2227
aedd6e32 2228 PR c/30762
2229 * c-typeck.c (convert_for_assignment): Call comptypes for
2230 RECORD_TYPE or UNION_TYPE.
2231
3d8785bc 2232 PR inline-asm/30505
2233 * reload1.c (reload): Do invalid ASM checking after
2234 cleanup_subreg_operands.
2235
94ca4916 22362007-03-19 Jeff Law <law@redhat.com>
2237
2238 * tree-cfg.c (find_taken_edge): Tighten conditions for
2239 optimizing computed gotos.
2240
a8bb7059 22412007-03-19 Michael Matz <matz@suse.de>
2242
2243 * builtins.c (expand_builtin_sync_operation,
2244 expand_builtin_compare_and_swap,
2245 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
2246 correctly.
2247
2248 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
2249 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
2250 for operand 3.
2251
021a18ba 22522007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2253
2254 * doc/tm.texi: Add brackets around the return type of
2255 TARGET_SECONDARY_RELOAD.
2256
d42c14ae 22572007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2258 Richard Guenther <rguenther@suse.de>
2259
2260 PR tree-optimization/31254
2261 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
2262 Use handled_component_p () where appropriate. Continue
2263 propagating into the rhs if we propagated into an INDIRECT_REF
2264 on the lhs.
2265
1f8e70bc 22662007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2267
2268 * config/s390/s390.md (op_type attribute): RRR instruction type added.
2269 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
2270 (xde, xdee): Mode attributes adjusted to support DFP modes.
2271 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
2272 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
f8be92ce 2273 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
1f8e70bc 2274 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
2275 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
2276 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
f8be92ce 2277 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
1f8e70bc 2278 numbers.
2279 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
2280 "movsf"): Insn definitions removed.
2281 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
2282 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
2283 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
2284 definitions added.
2285 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
2286 "reload_in<mode>", "reload_out<mode>"): Expander added.
2287 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
2288 Expander removed.
2289
708607d5 22902007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2291
2292 * config/s390/s390.md: Only non-functional changes. Renamed
2293 FPR mode macro to BFP all over the file.
2294
0c2edaa7 22952007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2296
2297 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
2298 (op_type attribute): RRF instruction type added.
2299 (fT0): New mode attribute.
2300 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
2301 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
2302 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
2303 no secondary memory is needed when moving DFmode values between GPRs
2304 and FPRs.
2305
7818a08e 23062007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2307
2308 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
2309 inverted and documentation adjusted.
2310 ("mhard-dfp", "msoft-dfp"): New options.
2311 * config/s390/s390.c (s390_handle_arch_option): New architecture
2312 switch: z9-ec.
2313 (override_options): Sanity checks for the new options added.
2314 * config.gcc: New architecture switch: z9-ec.
2315 * config/s390/s390.h (processor_flags): PF_DFP added.
2316 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
2317 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
2318 when the bit is NOT set so remove it from the defaults.
2319
3b55c036 23202007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
2321
2322 * genemit.c (main): Print include statement for dfp.h.
2323 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
2324 is not available.
2325
55d19f36 23262007-03-19 Hans-Peter Nilsson <hp@axis.com>
2327
2328 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
2329
99971c03 23302007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
2331
2332 PR target/31022
2333 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
2334 instead of PATTERN.
2335
c5559ed4 23362007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2337
2338 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
2339 attr_length_call, output_call, output_indirect_call): Cleanup
2340 formatting of targetm calls.
2341
fed42b71 23422007-03-19 Hans-Peter Nilsson <hp@axis.com>
2343
2344 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
2345
7d9f62cc 23462007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2347
2348 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
2349 reservation, bypass and anti-bypass descriptions for these instructions.
2350 Update move patterns.
2351 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
2352 TYPE_FPSTORE.
f8be92ce 2353
e817bf15 23542007-03-18 Dorit Nuzman <dorit@il.ibm.com>
2355
2356 * tree-vect-transform.c (get_initial_def_for_induction): Replace
2357 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
2358 (get_initial_def_for_reduction): Likewise.
2359
c1d4daae 23602007-03-16 Daniel Berlin <dberlin@dberlin.org>
2361
2362 Fix PR tree-optimization/29922
2363 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
2364 (get_representative): Removed.
2365 (value_dies_in_block_x): Update for rvuse removal.
2366 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
2367 (compute_antic_aux): Handle when PHI nodes appear in
f8be92ce 2368 non-single-successors.
c1d4daae 2369 (dump_bitmap_of_names): Removed.
2370 (compute_antic_safe): Renamed and removed rvuse calculation.
2371 Calculate only antic safe.
2372 (insert_into_preds_of_block): Remove assert.
2373 (execute_pre): Update for renamed functions.
2374 (defer_or_phi_translate_block): New function.
f8be92ce 2375
f6a0d06f 23762007-03-17 Kazu Hirata <kazu@codesourcery.com>
2377
2378 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
2379 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
2380 typos.
2381 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
2382 Follow spelling conventions.
2383
10f4b721 2384 * tree-data-ref.h: Remove the prototype for analyze_array.
2385
8d072f6d 23862007-03-17 Dorit Nuzman <dorit@il.ibm.com>
2387
2388 PR tree-optimization/31041
2389 * tree-vect-transform.c (get_initial_def_for_induction): Call
2390 force_gimple_operand.
f8be92ce 2391
51e779f4 23922007-03-17 Olga Golovanevsky <olga@il.ibm.com>
f8be92ce 2393
51e779f4 2394 * ipa-type-escape.c (look_for_casts) : Revert code to use
2395 handled_component_p due to ada test a-numaux.adb.
2396
f8df4da2 23972007-03-17 Kazu Hirata <kazu@codesourcery.com>
2398
2399 * final.c (final_scan_insn): Alter the condition of a
2400 conditional trap if we have nonstandard CC.
2401
95cd4953 24022007-03-16 Alexandre Oliva <aoliva@redhat.com>
2403
2404 * configure.ac: Remove excess quoting from asm line 0 test.
2405 * configure: Rebuilt.
2406
59dd8856 24072007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2408
2409 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
2410 * c-common.c (convert_and_check): Move warning logic to...
2411 (warnings_for_convert_and_check): ...here. Define.
2412 * c-common.h (warnings_for_convert_and_check): Declare.
f8be92ce 2413
ec94117d 24142007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2415
2416 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
2417 (output_call): Likewise.
2418
ac03c1db 24192007-03-16 Richard Sandiford <richard@codesourcery.com>
2420
2421 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
2422
e9204790 24232007-03-16 Richard Sandiford <richard@codesourcery.com>
2424
2425 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
2426
d53e2283 24272007-03-16 Uros Bizjak <ubizjak@gmail.com>
2428
2429 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
2430 opteron, athlon-64 and athlon-fx processor_alias_table entries.
2431
a75122be 24322007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
2433
2434 PR tree-optimization/31183
f8be92ce 2435 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
a75122be 2436 Use double_int instead of unsigned int for representing access_strides.
2437 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
2438
15ec875c 24392007-03-16 Richard Guenther <rguenther@suse.de>
2440
2441 PR tree-optimization/31146
2442 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
2443 to allow recursion of forward_propagate_addr_expr.
2444 (forward_propagate_addr_into_variable_array_index): Likewise.
2445 (forward_propagate_addr_expr): Likewise.
2446 (tree_ssa_forward_propagate_single_use_vars): Likewise.
2447 (forward_propagate_addr_expr_1): Recurse on simple copies
2448 instead of propagating into them. Do so for useless conversions
2449 as well.
2450 (forward_propagate_addr_expr): Clean up unused statements after
2451 recursion.
2452
3737e769 24532007-03-16 Richard Guenther <rguenther@suse.de>
2454
2455 * builtins.c (expand_builtin_cexpi): Use the right argument
2456 for the expansion via cexp.
2457
5c17a266 24582007-03-16 Alexandre Oliva <aoliva@redhat.com>
2459
2460 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
2461 * configure: Rebuilt.
2462
a357c7c2 24632007-03-16 Alexandre Oliva <aoliva@redhat.com>
2464
2465 PR debug/29906
2466 * dwarf2out.c (force_type_die): Adjust comment.
2467 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
2468
89c31ddb 24692007-03-15 DJ Delorie <dj@redhat.com>
2470
2471 * config/frv/predicates.md (minmax_operator): Don't check operands
2472 here.
2473
4b4ab846 24742007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
2475
2476 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
2477 Update constant estimates of number of iterations.
2478 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
2479 argument renamed to "realistic".
2480 (compute_estimated_nb_iterations): Removed.
2481 (record_niter_bound): New function.
2482 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
2483 call record_nonwrapping_iv with upper = false.
2484 (infer_loop_bounds_from_signedness): Pass upper argument to
2485 record_nonwrapping_iv.
2486 (estimate_numbers_of_iterations_loop): Do not call
2487 compute_estimated_nb_iterations. Record estimate based on profile
2488 information. Initialize the constant estimates of number of
2489 iterations.
2490 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
2491 estimates.
2492 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
2493 number of iterations is too small.
2494 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
2495 (EST_NOT_AVAILABLE): Removed.
2496 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
2497 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
2498 fields.
2499
8cd53b4f 25002007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
2501
2502 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
2503 Handle NE_EXPR guards.
2504
aa509316 25052007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2506
2507 PR c++/24924
2508 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
2509 Set also -pedantic-errors by default for the preprocessor unless
2510 -fpermissive is given.
f8be92ce 2511
fc0dfa6e 25122007-03-15 Richard Guenther <rguenther@suse.de>
2513
2514 PR middle-end/29719
2515 PR middle-end/31161
2516 * builtins.c (expand_builtin_cexpi): As a fallback if we
2517 don't have builtins for sincos or cexp create a function
2518 declaration for cexp and expand to a call to that.
2519 (expand_builtin_int_roundingfn): Always fall
2520 back to floor/ceil and its variants even if they may be
2521 not available.
2522
4aaec180 25232007-03-15 Steven Bosscher <steven@gcc.gnu.org>
2524
2525 PR middle-end/31159
2526 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
2527 jump tables, move the call to delete_dead_jumptables from here...
2528 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
2529 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
2530 don't allow merging of blocks that try_redirect_by_replacing_jump
2531 also does not handle when not optimizing.
2532
a1758a13 25332007-03-15 Uros Bizjak <ubizjak@gmail.com>
2534 Francois-Xavier Coudert <coudert@clipper.ens.fr>
2535
2536 * config/i386/i386.md (x86_sahf_1): Correctly handle
2537 HAVE_AS_IX86_SAHF.
2538
ed2235c8 25392007-03-15 Uros Bizjak <ubizjak@gmail.com>
2540
2541 PR target/31167
2542 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
2543 x86_64_general_operand as operand[2] predicate. Remove "iF"
2544 from operand constraints and use "e" constraint instead.
2545 (*subti3_1, *subti3_1 splitter): Ditto.
2546 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
2547 operand[1] predicate.
2548
28d4f5a1 25492007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
2550
2551 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
2552 arrays, multiply the access strides by the size of the sub-array.
2553 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
2554
735630ef 25552007-03-14 Uros Bizjak <ubizjak@gmail.com>
2556
2557 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
2558 the configured assembler supports the sahf mnemonic.
2559 * configure: Regenerate.
2560 * config.in: Regenerate.
2561
2562 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
2563 emit "sahf" or ".byte\t0x9e" as asm template.
2564
2b28c681 25652007-03-14 Michael Meissner <michael.meissner@amd.com>
2566
2567 PR 31018
2568 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
2569 option to replace hard coded TARGET_xxx in md file.
2570 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
2571 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2572 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
2573 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
2574 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
2575 (X86_TUNE_NOT_VECTORMODE): Ditto.
2576 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
2577 (TUNE_AVOID_VECTOR_DECODE): Ditto.
2578 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
2579 (TUNE_SLOW_IMUL_IMM8): Ditto.
2580 (TUNE_MOVE_M1_VIA_OR): Ditto.
2581 (TUNE_NOT_UNPAIRABLE): Ditto.
2582 (TUNE_NOT_VECTORMODE): Ditto.
f8be92ce 2583
2b28c681 2584 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
2585 options.
2586
2587 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
2588 tuning options instead of hard coded TARGET_xxx.
2589 (fix ssemode peephole2's): Ditto.
2590 (imul peephole2's): Ditto.
2591 (movsi_or): Ditto.
2592 (movdi_or_rex64): Ditto.
2593 (move peephole2): Ditto.
2594 (not peephole2's): Ditto.
2595
ffe8fd56 25962007-03-14 Dirk Mueller <dmueller@suse.de>
2597
2598 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
2599 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
2600 * c-parser.c (c_parser_if_body): Always add an empty statement in case
2601 of empty body.
2602 * c-parser.c (c_parser_do_statement): Warn about empty body in
2603 do/while statement.
2604 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
2605 * doc/invoke.texi (-Wempty-body): Update documentation.
2606
f092582b 26072007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2608
2609 PR c/21438
2610 * c-common.h (warn_for_div_by_zero): Declare.
2611 * c-common.c (warn_for_div_by_zero): Define.
2612 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
2613 warning.
2614
72d997cb 26152007-03-14 Richard Sandiford <richard@codesourcery.com>
2616
2617 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
2618 to PREFIX and STANDARD_PREFIX.
2619
efe5559c 26202007-03-14 Richard Sandiford <richard@codesourcery.com>
2621 Phil Edwards <phil@codesourcery.com>
2622
2623 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
2624 (__gthread_once_t): Remove busy field for RTPs.
2625 (__GTHREAD_ONCE_INIT): Update accordingly.
2626
809bb1c7 26272007-03-14 Richard Sandiford <richard@codesourcery.com>
2628
2629 * doc/invoke.texi: Document VxWorks options.
2630
e85fd4fb 26312007-03-14 Uros Bizjak <ubizjak@gmail.com>
2632
2633 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
2634
fdf6266d 26352007-03-13 Seongbae Park <seongbae.park@gmail.com>
2636
2637 PR tree-optimization/30590
2638 * tree-nrv.c (tree_nrv): Check for the partial update of the
2639 return value.
2640
b6c1bd72 26412007-03-13 Alexandre Oliva <aoliva@redhat.com>
2642
2643 * flags.h (flag_random_seed): Remove declaration, in favor of...
2644 * toplev.h (get_random_seed, set_random_seed): ... these.
2645 * tree.c (get_file_function_name): Use the former.
2646 * opts.c (common_handle_option): Use the latter.
2647 * toplev.c
2648
3752d411 26492007-03-13 Steven Bosscher <steven@gcc.gnu.org>
2650
2651 PR middle-end/31127
2652 * cse.c (cse_find_path): Do not bail out if a basic block that
2653 we already visited now becomes part of a path that starts at a
2654 different basic block. Just disallow this, to make sure we
2655 visit each basic block at most once.
2656
24bc216e 26572007-03-13 Jan Hubicka <jh@suse.cz>
2658
2659 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
2660 when profile esitmate is present, calls with very low frequency are
2661 cold.
2662
a463eaea 26632007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2664
2665 PR tree-optimization/30730
2666 PR tree-optimization/26900
2667 * tree-ssa-loop-niter.c: Include gmp.h.
2668 (bounds): New type.
2669 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
2670 split_to_var_and_offset, determine_value_range,
2671 bound_difference_of_offsetted_base, refine_bounds_using_guard,
2672 bound_difference, bounds_add, bounds_negate,
2673 number_of_iterations_ne_max, dump_affine_iv): New functions.
2674 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
2675 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
2676 difference of initial and final value of control iv to validate
2677 results.
2678 (number_of_iterations_cond): Add loop parameter. Determine bounds
2679 on the difference of the extremes of the control iv. Add dumps.
2680 (expand_simple_operations): Handle phi nodes.
2681 (simplify_using_initial_conditions): Do not record used conditions.
2682 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
2683 Do not set additional_info.
2684 (implies_nonnegative_p, implies_ge_p): Removed.
2685 (derive_constant_upper_bound): Do not use parameter `additional'.
2686 (record_estimate): Parameter `additional' removed. Parameter
2687 `i_bound' added. Do not call derive_constant_upper_bound.
2688 (record_nonwrapping_iv): Use derive_constant_upper_bound to
2689 bound the number of iterations estimate.
2690 (estimate_numbers_of_iterations_loop): Pass the estimate from
2691 the number of iterations analysis to record_estimate.
2692 * tree.h (multiple_of_p): Declare.
2693 * tree-scalar-evolution.c (expression_expensive_p): Removed.
2694 (scev_const_prop): Do not check expression_expensive_p.
2695 * fold-const.c (multiple_of_p): Exported.
2696 * double-int.c (double_int_mask): Exported.
2697 * double-int.h (double_int_mask): Declare.
2698 * tree-flow.h (struct tree_niter_desc): Removed additional_info
2699 field. Added max field.
2700
e238d235 27012007-03-13 David Taylor <taylor@candd.org>
2702
2703 PR driver/12448:
2704 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
2705 default -MQ.
2706
a0ece9f6 27072007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2708
73fc3472 2709 PR target/31123
a0ece9f6 2710 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
2711 two unamed patterns.
f8be92ce 2712
92a5086b 27132007-03-13 Uros Bizjak <ubizjak@gmail.com>
2714
2715 * config/i386/i386.opt (mcx16, msahf): New options.
2716 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
2717 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
2718
2719 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
2720 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
2721 Output -mcx16 and -msahf options when corresponding bit is set.
2722
2723 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
2724 and -msahf options.
2725
a8971681 27262007-03-13 Alexandre Oliva <aoliva@redhat.com>
2727
2728 * configure.ac: Test for assembler tolerance to # 0 "".
2729 * configure, config.in: Rebuilt.
2730 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
2731
c99afad8 27322007-03-13 Geoffrey Keating <geoffk@apple.com>
2733
2734 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
47adc701 2735
2736 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
2737 (handle_syscall): Handle direct system calls.
2738 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
2739
6713f0a0 27402007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
2741
2742 * doc/invoke.texi: Fix cpp.info cross-reference.
2743 * doc/passes.texi: Fix gcc.info cross-reference.
2744
f8494ea3 27452007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
2746
2747 PR tree-optimization/30835
2748 * lambda-code.c (can_convert_to_perfect_nest): Check whether
2749 bb_for_stmt is not NULL before accessing it.
2750
021d874e 27512007-03-12 Joseph Myers <joseph@codesourcery.com>
2752
2753 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
2754 some multilibs.
2755
16e1a7da 27562007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
2757
2758 PR 30635
2759 * doc/install.texi: Document --enable-stage1-languages
2760
154480b1 27612007-03-12 Steven Bosscher <steven@gcc.gnu.org>
2762
2763 * tree-pass.h (pass_into_cfg_layout_mode,
2764 pass_outof_cfg_layout_mode): Declare.
2765 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
2766 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
2767 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
2768 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
2769
aaafd660 27702007-03-12 Seongbae Park <seongbae.park@gmail.com>
2771
2772 * c-decl.c (warn_variable_length_array): New function.
2773 Refactored from grokdeclarator to handle warn_vla
2774 and handle unnamed array case.
2775 (grokdeclarator): Refactored VLA warning case.
2776 * c.opt (Wvla): New flag.
974bc84e 2777 * doc/invoke.texi (Wvla): New warning.
aaafd660 2778
cc2af183 27792007-03-12 Richard Henderson <rth@redhat.com>
2780
2781 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
2782 (TARGET_SECTION_TYPE_FLAGS): New.
2783
0b769e4a 27842007-03-12 Richard Henderson <rth@redhat.com>
2785
f8494ea3 2786 * config/darwin.c (machopic_reloc_rw_mask): New.
2787 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
2788 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
0b769e4a 2789
a8bb4f69 27902007-03-12 Mark Mitchell <mark@codesourcery.com>
2791
2792 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
2793 * cppdefault.h (cpp_PREFIX): Document.
2794 (cpp_PREFIX_len): Likewise.
2795 (cpp_EXEC_PREFIX): New variable.
2796 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
2797 * c-incpath.c (add_standard_paths): Correct logic for relocating
2798 paths within prefix.
2799
d3fcb417 28002007-03-12 Uros Bizjak <ubizjak@gmail.com>
2801
2802 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
2803 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
2804 mode macro.
2805 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
2806 fix_truncdfdi_sse using SSEMODEF mode macro.
2807 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
2808 fix_truncdfsi_sse using SSEMODEF mode macro.
2809 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
2810 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
2811
ac2799d5 28122007-03-12 Richard Sandiford <richard@codesourcery.com>
2813
2814 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
2815 elfos.h to tm_file.
2816
96b038b0 28172007-03-12 Olga Golovanevsky <olga@il.ibm.com>
f8be92ce 2818
96b038b0 2819 * tree.h : Add multiple_of_p declaration.
f8be92ce 2820 * fold-const.c (multiple_of_p): Make multiple_of_p public.
96b038b0 2821 * ipa-type-escape.c (results_of_malloc): Redundant.
2822 (visited_stmts): New. Visited stmt for walk_use_def_chains.
2823 (cast_type): Extended with new members.
2824 (check_cast): Returns cast_type.
2825 (cast): New structure for data of walk_use_def_chains.
2826 (is_malloc_result, is_cast_from_non_pointer_1,
f8be92ce 2827 is_cast_from_non_pointer,
96b038b0 2828 is_array_access_through_pointer_and_index): New functions.
2829 (look_for_casts): Returns cast types.
2830 (check_call): Returns void.
2831 (okay_pointer_operation): Use support of pointer plus index,
2832 pointer plus constant and allow all multiplications.
f8be92ce 2833
62065c0b 28342007-03-11 Richard Guenther <rguenther@suse.de>
2835
2836 PR tree-optimization/31115
2837 * tree-vrp.c (extract_range_from_binary_expr): Make sure
2838 the shift count is positive and non-anti-range for RSHIFT_EXPR.
2839 A shift count of zero is not special as with *_DIV_EXPR.
2840 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
2841 direction.
2842
659753d3 28432007-03-11 Ian Lance Taylor <iant@google.com>
2844
2845 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
2846 the *_DIV_EXPR codes correctly with overflow infinities.
2847
72443169 28482007-03-11 Ira Rosen <irar@il.ibm.com>
2849
f8be92ce 2850 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
72443169 2851 indicate success/failure of the analysis. Add negation to subtrahend
2852 in case of subtraction. Fail if both operands contain constants.
2853 (create_data_ref): Fail if analyze_offset fails.
2854
4209e9f9 28552007-03-11 Uros Bizjak <ubizjak@gmail.com>
2856
2857 * config/i386/i386.md (frndintxf2): Rename to ...
2858 (rintxf2): ... this. Remove expander having same name.
2859 (rintsf2, rintdf2): Implement using SSEMODEF macro.
2860 (roundsf2, rounddf2): Ditto.
2861 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
2862 (lround<mode>di2, lround<mode>si2): Ditto.
2863
db1c50be 28642007-03-11 Steven Bosscher <steven@gcc.gnu.org>
2865
2866 * lower-subreg.c: Include except.h.
2867 (decompose_multiword_subregs): Verify that the only control flow
2868 insns we can split are loads to multi-words pseudos.
2869 Handle breaking such blocks after splitting, instead of calling
2870 find_many_sub_basic_blocks.
2871
2872 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
2873 on the new basic block. Add a lengthy comment explaining why we
2874 thought this was necessary.
2875 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
2876
6783c055 28772007-03-10 Mark Mitchell <mark@codesourcery.com>
2878
752d462d 2879 PR c++/30924
6783c055 2880 * tree.c (walk_type_fields): Recurse into the element type of
2881 ARRAY_TYPEs if there is a pointer set.
2882
e6978426 28832007-03-10 Dirk Mueller <dmueller@suse.de>
2884
2885 * c-common.c (warn_logical_operator): Fix condition.
2886
c6134e23 2887