Fix bootstrap on ia64, PR32764
[gcc.git] / gcc / ChangeLog
1 2007-07-18 Caroline Tice <ctice@apple.com>
2
3 * var-tracking.c (find_src_status): Check for COND_EXEC insns
4 and handle them correctly; check that src is not NULL before
5 trying to use it.
6 (find_src_set_src): Likewise.
7
8 2007-07-18 Bob Wilson <bob.wilson@acm.org>
9
10 * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
11 (struct alignment_context, init_alignment_context): New.
12 (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
13 * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
14 (XCHAL_HAVE_S32C1I): Likewise.
15 (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
16 * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
17 (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
18 (ATOMIC, HQI): New macros.
19 (memory_barrier, *memory_barrier): New.
20 (sync_lock_releasesi): New.
21 (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
22 (sync_lock_test_and_set<mode>): New.
23 (sync_<atomic><mode>): New.
24 (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
25 * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
26 (xtensa_expand_atomic): New.
27
28 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
29
30 PR target/30652
31
32 * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
33 transformation for builtin ISNORMAL.
34 (expand_builtin): Handle BUILT_IN_ISNORMAL.
35 * builtins.def (BUILT_IN_ISNORMAL): New.
36 * doc/extend.texi: Document isnormal.
37
38 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
39
40 PR target/30652
41
42 * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
43 optabs infrastructure. Provide generic implementation for
44 FINITE/ISFINITE.
45 (expand_builtin): Handle FINITE/ISFINITE.
46 (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
47 (fold_builtin_1): Likewise.
48
49 * builtins.def (BUILT_IN_ISFINITE): New.
50
51 * doc/extend.texi: Document isfinite.
52
53 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
54
55 PR target/30652
56 PR middle-end/20558
57
58 * builtins.c (expand_builtin_interclass_mathfn): Provide a
59 generic fallback for isinf.
60 * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
61 calculation code ...
62 * real.c (get_max_float): ... to here.
63 * real.h (get_max_float): New.
64
65 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
66
67 PR middle-end/32668
68
69 * builtin-attrs.def (ATTR_TYPEGENERIC,
70 ATTR_CONST_NOTHROW_TYPEGENERIC): New.
71
72 * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
73 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
74 BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
75 BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
76
77 * c-common.c (handle_type_generic_attribute): New.
78 (c_common_attribute_table): Add "type generic".
79
80 * c-typeck.c (convert_arguments): Handle "type generic" functions.
81
82 2007-07-18 Daniel Berlin <dberlin@dberlin.org>
83
84 * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
85 * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
86 properly.
87
88 2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
89
90 PR target/32808
91 * config/cris/cris.c (cris_print_index): Don't use XEXP before
92 checking that the operand is an expression.
93
94 2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
95 Danny Smith <dannysmith@users.sourceforge.net>
96
97 PR/other 30335
98 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
99 file mapping object in local namespace if Windows version later
100 than NT4
101
102 2007-07-18 Richard Sandiford <richard@codesourcery.com>
103
104 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
105 * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
106 arm_cannot_force_const_mem.
107 (arm_cannot_force_const_mem): New function.
108 * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
109 (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
110 of arm_tls_referenced_p.
111 * config/arm/arm.md (movsi): Split out-of-section constants when
112 ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
113 * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
114
115 2007-07-18 Richard Sandiford <richard@codesourcery.com>
116
117 * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
118
119 2007-07-18 Richard Sandiford <richard@codesourcery.com>
120
121 * config/mips/mips.md (*extendqihi2): Convert the destination
122 to SImode.
123
124 2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
125
126 * config/pa/fptr.c: Update license header.
127 * config/pa/milli64.S: Likewise.
128
129 2007-07-17 Nick Clifton <nickc@redhat.com>
130
131 * COPYING_v3: New file. Contains version 3 of the GNU General
132 Public License.
133 * COPYING.LIB_v3: New file. Contains version 3 of the GNU
134 Lesser General Public License.
135 * doc/include/gpl_v3.texi: New file. Contains version 3 of
136 the GNU General Public License.
137
138 2007-07-17 Zdenek Dvorak <dvorakz@suse.cz>
139
140 PR rtl-optimization/32773
141 * cfglayout.c (force_one_exit_fallthru): New function.
142 (cfg_layout_finalize): Use it.
143
144 2007-07-16 Richard Guenther <rguenther@suse.de>
145 Uros Bizjak <ubizjak@gmail.com>
146
147 * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
148 before forcing it to gimple operand.
149
150 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
151 David Ung <davidu@mips.com>
152
153 * config/mips/mips.h (TUNE_24K): Define.
154 (TUNE_MACC_CHAINS): Add TUNE_24K.
155 * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
156 imadd.
157 * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
158 (r74k_int_madd): .. this new reservation.
159 (define_bypass): Fixed bypasses for r74k_int_madd to use
160 mips_linked_madd_p.
161 * config/mips/24k.md (define_bypass): Define new
162 r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
163
164 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
165 Nigel Stephens <nigel@mips.com>
166
167 * config/mips/mips.md: Include 20kc.md.
168 * config/mips/20kc.md: New file.
169 * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
170 (mips_adjust_cost): Tweak for 20Kc.
171 (mips_issue_rate): Likewise.
172 * config/mips/mips.h (TUNE_20KC): Define.
173
174 2007-07-16 David Edelsohn <edelsohn@gnu.og>
175
176 * config/rs6000/rs6000.c (struct processor_cost): Add
177 cache_line_size, l1_cache_lines, and simultaneous_prefetches
178 fields.
179 (*_cost): Add cache information.
180 (rs6000_override_options): Set cache parameters.
181
182 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
183
184 PR bootstrap/3456
185 * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
186 * doc/install.texi (mips-sgi-irix6): pthread support works now.
187
188 2007-07-16 Paul Brook <paul@codesourcery.com>
189
190 PR target/32753
191 gcc/
192 * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
193 (cirrus_thumb2_movsi_insn): Ditto.
194
195 2007-07-15 Geoffrey Keating <geoffk@apple.com>
196
197 * config/rs6000/darwin-fallback.c (interpret_libc): Change
198 CR2_REGNO to R_CR2.
199
200 2007-07-15 Andrew Haley <aph@redhat.com>
201
202 * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
203 before looking in the context.
204
205 2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
206
207 PR middle-end/32398
208 PR middle-end/32769
209 * pa-protos.h (pa_eh_return_handler_rtx): Declare.
210 * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
211 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
212 (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
213 to generate .CALLINFO statement.
214 (hppa_expand_prologue): Set rp_saved.
215 (hppa_expand_epilogue): Use rp_saved.
216 (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
217 * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
218
219 2007-07-14 Dirk Mueller <dmueller@suse.de>
220
221 * omega.c (coalesce): Fix memory leak on early exit.
222 * matrix-reorg.c (check_allocation_function): Likewise.
223 * tree-vect-transform.c (vect_get_new_vect_var): free result
224 of concat().
225 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
226 pass pointer to edge vector
227 (partition_hot_cold_basic_blocks): Fix memory leak.
228 * collect2.c (prefix_from_string): Free temporary storage.
229 * reload1.c (fixup_abnormal_edges): Free sbitmap.
230
231 2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org>
232
233 * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
234 (DO_GLOBAL_DTORS_BODY): Likewise.
235
236 2007-07-14 Sandra Loosemore <sandra@codesourcery.com>
237 Nigel Stephens <nigel@mips.com>
238
239 * config/mips/mips.c (mips_classify_symbol): Don't return
240 SYMBOL_SMALL_DATA for constant pool addresses if
241 TARGET_EMBEDDED_DATA is true.
242
243 2007-07-14 Uros Bizjak <ubizjak@gmail.com>
244
245 * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
246 except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
247 __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
248 __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
249 __builtin_ia32_storehps, __builtin_ia32_storelps,
250 __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
251 __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
252 __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
253 __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
254 __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
255 __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
256 __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
257 __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
258 using def_builtin_const.
259
260 2007-07-14 Eric Botcazou <ebotcazou@adacore.com>
261
262 PR tree-optimization/32705
263 * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
264 (simplify_binary_expression): Use SSA_VAL consistently.
265
266 2007-07-13 David Edelsohn <edelsohn@gnu.org>
267
268 * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
269 (SPEFSCR_REGNO): Delete definition.
270 * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
271 COUNT_REGISTER_REGNUM -> CTR_REGNO.
272 * config/rs6000/rs6000.h: Do not define *_REGNO.
273 LINK_REGISTER_REGNUM -> LR_REGNO.
274 COUNT_REGISTER_REGNUM -> CTR_REGNO.
275 * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO.
276 COUNT_REGISTER_REGNUM -> CTR_REGNO.
277 * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
278 R_VRSAVE, R_VSCR. Use them.
279 * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
280 R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them.
281 * config/rs6000/rs6000.md: Define REGNO constants. Use them.
282 * config/rs6000/aix.h: Define R_LR. Use it.
283
284 2007-07-13 Caroline Tice <ctice@apple.com>
285
286 * toplev.c (process_options): Turn flag_var_tracking_uninit off when
287 flag_var_tracking is explicitly turned off (i.e. when variable
288 tracking is not feasible); otherwise, turn flag_var_tracking on when
289 flag_var_tracking_uninit is on.
290 * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
291 note definitions, to allow recording of initialization status in the
292 notes.
293 * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
294 (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
295 determine if two note locations are equal.
296 (output_loc_list): Don't output list entries whose start & end labels
297 are the same.
298 (reg_loc_descriptor): Add parameter for initialization status; pass it
299 to other loc descriptor functions.
300 (one_reg_loc_descriptor): Add parameter for initialization status;
301 check its value and add DW_OP_GNU_uninit to returned loc descr if
302 appropriate.
303 (multiple_reg_loc_descriptor): Add parameter for initialization
304 status;
305 pass init status argument to other loc descriptor functions; check
306 value of intialization parameter and add DW_OP_GNU_uninit to returned
307 loc descr if appropriate.
308 (based_loc_descr): Add parameter for initialization status; add new
309 variable for return value; check value of initialization parameter and
310 add DW_OP_GNU_uninit to returned loc descr if appropriate.
311 (concatn_mem_loc_descriptor): Add parameter for initialization status;
312 pass init status argument to other loc descriptor functions; check
313 value of intialization parameter and add DW_OP_GNU_uninit to returned
314 loc descr if appropriate.
315 (mem_loc_descriptor): Likewise.
316 (concat_loc_descriptor): Likewise.
317 (concatn_loc_descriptor): Likewise.
318 (loc_descriptor): Add parameter for initialization status; pass it as
319 argument to other loc descriptor function calls.
320 (loc_descriptor_from_tree_1): Add appropriate initialization status
321 to loc descriptor function calls.
322 (add_location_or_const_value_attribute): Get initialization status
323 from VAR_LOCATION note; add initialization status to loc descriptor
324 function calls.
325 * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
326 * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
327 status is uninitialized, add "[uninint]" to output.
328 * common.opt (fvar-tracking-uninit): New option, similar to
329 fvar-tracking, to turn on tracking of uninitialized variables; creates
330 a new global flag, flag_var_tracking_uninit.
331 * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
332 (enum var_init_status): New type, for var initialization status field.
333 * var-tracking.c (struct location_chain_def): Two new fields, init,
334 for initialization status, and set_src for the assignment value expr.
335 (unshare_variable): New parameter for initialization status;
336 initialize new init and set_src fields.
337 (var_reg_set): New parameters for initialization status and value;
338 pass them to set_variable_part.
339 (var_mem_set): Likewise.
340 (get_init_value): New function.
341 (var_reg_delete_and_set): New initialization status & value
342 parameters; add call to get_init_value if status is unknown; pass new
343 parameters to clobber_variable_part and var_reg_set.
344 (var_mem_delete_and_set): Likewise.
345 (var_reg_delete): Pass null set_src value to clobber_variable_part.
346 (var_mem_delete): Likewise.
347 (variable_union): Pass status to unshare_variable; initialize new init
348 and set_src fields. If flag_var_tracking_uninit is not set, force
349 status to initialized.
350 (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
351 used later to get the set_src value.
352 (find_src_status): New function.
353 (find_src_set_src): New function.
354 (compute_bb_dataflow): Pass init status to calls to var_reg_set,
355 var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
356 MO_SET, get set_src value and pass it to var_reg_delete_and_set
357 and var_mem_delete_and_set.
358 (dump_variable): Print out "[uninit]" if appropriate.
359 (set_variable_part): Add new initialization and set_src parameters;
360 pass status to unshare_variable; set node->init and node- >set_src
361 fields and modify slot in hash table appropriately; save the init and
362 set_src values if appropriate and assign to the new node.
363 (clobber_variable_part): New set_src parameter; if two nodes have
364 same variable and same location but different set_src (assignment)
365 values, clobber old node.
366 (delete_variable_part): Pass init status to unshare_variable.
367 (emit_note_insn_var_location): Add initialized var; assign var's init
368 status to new 'initialized'; pass new init status field to calls to
369 gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
370 status to initialized.
371 (emit_notes_in_bb): Pass initialization status to calls to
372 var_reg_set, var_mem_set, var_reg_delete_and_set and
373 var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
374 var_reg_delete_and_set and var_mem_delete_and_set; call
375 emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
376 make up for change in add_stores.
377 (vt_add_function_parameters): Add status to calls to
378 set_variable_part.
379 * config/darwin.c (darwin_override_options): Turn on uninitialized
380 tracking automatically, if var_tracking is on and the system is
381 10.5 or higher.
382
383 2007-07-13 Sa Liu <saliu@de.ibm.com>
384
385 * config.gcc: Add options for arch and tune on SPU.
386 * config/spu/predicates.md: Add constant operands 0 and 1.
387 * config/spu/spu-builtins.def: Add builtins for double precision
388 floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt,
389 si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
390 spu_testsv.
391 * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with
392 a CELLEDP target.
393 * config/spu/spu-protos.h: Add new function prototypes.
394 * config/spu/spu.c (spu_override_options): Check options -march and
395 -mtune.
396 (spu_comp_icode): Add comparison code for DFmode and vector mode.
397 (spu_emit_branch_or_set): Use the new code for DFmode and vector
398 mode comparison.
399 (spu_const_from_int): New. Create a vector constant from 4 ints.
400 (get_vec_cmp_insn): New. Get insn index of vector compare instruction.
401 (spu_emit_vector_compare): New. Emit vector compare.
402 (spu_emit_vector_cond_expr): New. Emit vector conditional expression.
403 * config/spu/spu.h: Add options -march and -mtune. Define processor
404 types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro
405 CANONICALIZE_COMPARISON.
406 * config/spu/spu.md: Add new insns for double precision compare
407 and double precision vector compare. Add vcond and smax/smin patterns
408 to enable DFmode vector conditional expression.
409 * config/spu/spu.opt: Add options -march and -mtune.
410 * config/spu/spu_internals.h: Add builtins for CELLEDP target:
411 si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for
412 both CELL and CELLEDP targets: spu_testsv.
413 * config/spu/spu_intrinsics.h: Add flag mnemonics for test special
414 values.
415
416 2007-07-13 Richard Guenther <rguenther@suse.de>
417
418 PR tree-optimization/32721
419 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
420 TREE_THIS_VOLATILE on the folded reference.
421 * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
422 if the array reference has TREE_THIS_VOLATILE set.
423
424 2007-07-13 H.J. Lu <hongjiu.lu@intel.com>
425
426 PR other/32188
427 * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
428
429 2007-07-13 Andreas Schwab <schwab@suse.de>
430
431 * gengtype-lex.l: Allow declarations to be indented.
432
433 2007-07-12 Geoffrey Keating <geoffk@apple.com>
434
435 * ginclude/tgmath.h: New.
436 * config.gcc: Use GCC's tgmath.h on non-glibc systems.
437 * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
438 * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
439 * configure: Regenerate.
440
441 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
442
443 * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
444 correct index when setting register save state for xd
445 registers.
446
447 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
448
449 * config/sh/sh.c (mark_use): Remove.
450
451 2007-07-12 Paul Brook <paul@codesourcery.com>
452
453 * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
454 reg does not overlap return value.
455
456 2007-07-12 Daniel Berlin <dberlin@dberlin.org>
457
458 * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
459 (set_expression_vuses): Ditto.
460 (init_pre): Initialize expression_vuses.
461
462 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
463
464 * config/i386/sse.md (storentdf, storentsf): New.
465
466 2007-07-12 Geoffrey Keating <geoffk@apple.com>
467
468 * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
469 FUNCTION_DECL.
470 * tree.c (build_decl_stat): Move code from here...
471 (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN.
472 (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment
473 about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
474 * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
475 * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
476 FUNCTION_BOUNDARY.
477
478 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
479 Devang Patel <dpatel@apple.com>
480
481 PR tree-optimization/25413
482 * targhooks.c (default_builtin_vector_alignment_reachable): New.
483 * targhooks.h (default_builtin_vector_alignment_reachable): New.
484 * tree.h (contains_packed_reference): New.
485 * expr.c (contains_packed_reference): New.
486 * tree-vect-analyze.c (vector_alignment_reachable_p): New.
487 (vect_enhance_data_refs_alignment): Call
488 vector_alignment_reachable_p.
489 * target.h (vector_alignment_reachable): New builtin.
490 * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
491 * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
492 (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
493
494 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
495
496 * target.h (builtin_vectorization_cost): Add new target builtin.
497 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
498 * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
499 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
500 * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
501 uninitialized variables.
502 * tree-vect-transform.c (cost_for_stmt): New function.
503 (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
504 using cost 1 for all scalar stmts. Be less conservative when
505 estimating the number of prologue/epulogue iterations. Call
506 targetm.vectorize.builtin_vectorization_cost. Return
507 min_profitable_iters-1.
508 (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
509 initialization cost instead of TARG_VEC_STMT_COST. Use
510 TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
511 epilogue code. Fix epilogue cost computation.
512 * config/spu/spu.c (spu_builtin_vectorization_cost): New.
513 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
514 * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
515 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
516 (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
517 (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
518
519 2007-07-12 Richard Guenther <rguenther@suse.de>
520
521 * gimplify.c (gimplify_conversion): Make sure that the result
522 from maybe_fold_offset_to_reference is trivially convertible
523 to the desired type before doing the simplification.
524 (gimplify_expr): Likewise.
525 * fold-const.c (fold_binary): Use the correct types for
526 building the simplified expression.
527
528 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
529
530 PR rtl-optimization/32729
531 * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
532 that fallthru to exit.
533
534 2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org>
535
536 * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
537 (symDTPOFF2reg): Likewise.
538
539 2007-07-11 Daniel Berlin <dberlin@dberlin.org>
540
541 PR tree-optimization/32663
542
543 * tree.h (VALUE_HANDLE_VUSES): Remove.
544 (struct tree_value_handle): Remove vuses.
545
546 * tree-vn.c (create_value_handle_for_expr): Don't set
547 VALUE_HANDLE_VUSES.
548
549 * tree-ssa-pre.c (expression_vuses): New.
550 (alloc_expression_id): Set up expression_vuses.
551 (get_expression_vuses): New.
552 (set_expression_vuses): Ditto.
553 (clear_expression_ids): Modify for expression_vuses.
554 (phi_translate_1): Ditto.
555 (phi_translate_set): Ditto.
556 (value_dies_in_block_x): Ditto
557 (valid_in_sets): Ditto.
558 (add_to_sets): Ditto.
559 (find_existing_value_expr): Ditto.
560 (create_value_handle_for_expr): Ditto.
561 (make_values_for_stmt): Ditto.
562 (vuse_equiv): Remove.
563
564 2007-07-11 Alexandre Oliva <aoliva@redhat.com>
565
566 * Makefile.in (mostlyclean): Remove object files.
567
568 2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com>
569
570 * toplev.c (no_new_pseudos): Deleted.
571 * rtl.h (no_new_pseudos): Deleted.
572 * tree-pass.h (pass_no_new_pseudos): Deleted.
573 * passes.c (pass_no_new_pseudos): Deleted.
574 * final.c (rest_of_clean_state): Removed no_new_pseudos.
575 (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
576 * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with
577 reload_completed.
578 * cfgcleanup.c (try_crossjump_to_edge): Ditto.
579 * rtlhooks.c (gen_lowpart_general): Ditto.
580 * optabs.c (prepare_operand): Ditto.
581 * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
582 no_new_pseudos.
583 * modulo-sched.c (rest_of_handle_sms): Ditto.
584 * see.c (rest_of_handle_see): Ditto.
585 * ifcvt.c (if_convert): Ditto.
586 (gate_handle_if_after_combine): Replaced no_new_pseudos with
587 reload_completed.
588 * init-regs.c (gate_initialize_regs): Deleted set of
589 no_new_pseudos.
590 * lower-subreg.c (decompose_multiword_subregs): Ditto.
591 * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
592 * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
593
594 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
595
596 PR target/32661
597 * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
598 (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
599 (*vec_extractv2di_1_rex64): New insn pattern.
600
601 2007-07-11 David Daney <ddaney@avtrex.com>
602
603 * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
604 return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN
605 for SIGNAL_UNWIND_RETURN_COLUMN.
606 * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
607 (DWARF_FRAME_REGNUM): Rewrite.
608 (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
609
610 2007-07-11 Nick Clifton <nickc@redhat.com>
611
612 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
613 delta and use gen_int_mode in place of GET_INT instead.
614
615 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
616
617 * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
618 and letter field.
619
620 2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
621
622 * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
623 (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
624 types or not.
625 * params.h (VERIFY_CANONICAL_TYPES): Remove.
626 (USE_CANONICAL_TYPES): New.
627 * doc/invoke.texi (verify-canonical-types): Remove.
628 (use-canonical-types): Add.
629
630 2007-07-11 Ulrich Weigand <uweigand@de.ibm.com>
631
632 * config/spu/spu.c (spu_optimization_options): Remove setting of
633 parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
634 (spu_override_options): Move it here.
635
636 2007-07-11 Richard Sandiford <richard@codesourcery.com>
637
638 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
639 * config/mips/mips.c (mips_cpu_info_table): Mention
640 MIPS_ISA_LEVEL_SPEC in the comment.
641
642 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
643
644 PR tree-optimization/32713
645 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
646
647 2007-07-11 Paolo Carlini <pcarlini@suse.de>
648
649 PR middle-end/30482
650 * c-opts.c (c_common_post_options): Do not change flag_complex_method
651 conditional to flag_isoc99.
652 (c_common_init_options): Do it here, unconditionally.
653
654 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
655
656 PR tree-optimization/32589
657 * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
658 * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
659 * tree-ssa-propagate.c (valid_gimple_expression_p): New
660 predicate, extracted from...
661 (set_rhs): ...here. Call it for the expression on entry.
662 * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
663 * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
664 (simplify_binary_expression): Use valid_gimple_expression_p
665 to validate the simplification.
666 * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
667
668 2007-07-11 Danny Smith <dannysmith@users.sourceforge.net>
669
670 * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
671 DWARF2_DEBUG on 32 bit target too.
672 (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.
673
674 2007-07-11 Nick Clifton <nickc@redhat.com>
675
676 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
677 version for 64-bit hosts.
678
679 2007-07-10 David Daney <ddaney@avtrex.com>
680
681 * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
682 predicate.
683 (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library
684 call.
685 * config/mips/mips.c (mips_expand_synci_loop): New function.
686 * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
687 (UNSPEC_RDHWR): Same.
688 (UNSPEC_SYNCI): Same.
689 (UNSPEC_SYNC): Same.
690 (clear_cache): New expand.
691 (sync): New insn.
692 (synci): Same.
693 (rdhwr): Same.
694 (clear_hazard): Same.
695 * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
696 function.
697 * testsuite/gcc.target/mips/clear-cache-1.c: New test.
698 * testsuite/gcc.target/mips/clear-cache-2.c: New test.
699
700 2007-07-10 Ian Lance Taylor <iant@google.com>
701
702 * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
703 no_new_pseudos.
704
705 2007-07-10 David Daney <ddaney@avtrex.com>
706
707 * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
708 * builtins.c (expand_builtin___clear_cache): New function.
709 (expand_builtin): Call expand_builtin___clear_cache for
710 BUILT_IN_CLEAR_CACHE case.
711 * doc/extend.texi (__builtin___clear_cache): Document new builtin.
712 * doc/md.texi (clear_cache): Document new instruction pattern.
713 * testsuite/gcc.dg/builtins-64.c: New test.
714
715 2007-07-11 Hans-Peter Nilsson <hp@axis.com>
716
717 * config/cris/cris.md ("movsi"): Fix typo in last change.
718
719 2007-07-09 Geoffrey Keating <geoffk@apple.com>
720
721 PR 32617
722 * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
723 FUNCTION_DECLs.
724 (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
725 * varasm.c (assemble_start_function): Honor DECL_ALIGN
726 for FUNCTION_DECLs. Don't use align_functions_log if
727 DECL_USER_ALIGN.
728 * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
729 even for FUNCTION_DECLs.
730 * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
731 FUNCTION_DECLs.
732 * tree.h (DECL_ALIGN): Update for new location of 'align'.
733 (DECL_FUNCTION_CODE): Update for new location and name of
734 'function_code'.
735 (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
736 (struct tree_decl_common): Move 'align' and 'off_align' out
737 of union, ensure they're still on a 32-bit boundary. Remove
738 other fields in union 'u1'.
739 (struct tree_function_decl): Add field 'function_code' replacing
740 'u1.f' in tree_decl_common.
741 * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
742 * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
743 (Variable Attributes): Cross-reference 'aligned' attribute
744 to Function Attributes.
745 * flags.h (force_align_functions_log): Delete.
746 * toplev.c (force_align_functions_log): Delete.
747
748 2007-07-10 Uros Bizjak <ubizjak@gmail.com>
749
750 PR target/32708
751 * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
752 (*vec_concatv2di_rex): New insn pattern.
753
754 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
755
756 PR target/32538
757 * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
758
759 2007-07-10 Ian Lance Taylor <iant@google.com>
760
761 Replace no_new_pseudos in backends.
762 * rtl.h (can_create_pseudo_p): Define.
763 * config/darwin.c (machopic_indirect_data_reference): Use
764 can_create_pseudo_p () instead of no_new_pseudos.
765 (machopic_indirect_data_reference): Likewise.
766 (machopic_legitimize_pic_address): Likewise.
767 * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
768 (alpha_emit_set_const_1): Likewise.
769 (alpha_emit_set_const): Likewise.
770 (alpha_emit_conditional_move): Likewise.
771 (alpha_split_conditional_move): Likewise.
772 * config/alpha/alpha.md (various splitters): Likewise.
773 (movti): Likewise.
774 * config/arm/arm.c (legitimize_pic_address): Likewise.
775 (arm_load_pic_register): Likewise.
776 * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
777 (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
778 * config/bfin/bfin.c (legitimize_pic_address): Likewise.
779 * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
780 * config/cris/cris.md (movsi): Likewise.
781 * config/frv/frv.md (symGOT2reg_hilo): Likewise.
782 (symGOTOFF2reg_hilo): Likewise.
783 (symGPREL2reg, symGPREL2reg_hilo): Likewise.
784 * config/h8300/h8300.md (insv, extzv): Likewise.
785 * config/i386/i386.c (ix86_expand_move): Likewise.
786 (ix86_expand_vector_move): Likewise.
787 (ix86_prepare_fp_compare_args): Likewise.
788 (ix86_expand_carry_flag_compare): Likewise.
789 * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
790 (tls_dynamic_gnu2_combine_32): Likewise.
791 (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
792 * config/ia64/ia64.c (ia64_expand_move): Likewise.
793 (ia64_expand_movxf_movrf): Likewise.
794 * config/m32c/m32c.c (m32c_prepare_move): Likewise.
795 (m32c_split_move): Likewise.
796 (m32c_expand_insv): Likewise.
797 * config/m68k/m68k.md (movsi): Likewise.
798 * config/mips/mips.c (mips_force_temporary): Likewise.
799 (mips_split_symbol): Likewise.
800 (mips_move_integer): Likewise.
801 (mips_legitimize_const_move): Likewise.
802 * config/mn10300/mn10300.md (movsi): Likewise.
803 * config/pa/pa.c (emit_move_sequence): Likewise.
804 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
805 (rs6000_got_register): Likewise.
806 (create_TOC_reference): Likewise.
807 (rs6000_machopic_legitimize_pic_address): Likewise.
808 * config/rs6000/rs6000.md (add<mode>3): Likewise.
809 (various splitters): Likewise.
810 (iorsi3, xorsi3, iordi3, xordi3): Likewise.
811 (movsi_got): Likewise.
812 * config/s390/s390.c (emit_symbolic_move): Likewise.
813 * config/s390/s390.md (movhi, movqi): Likewise.
814 (load_multiple, store_multiple): Likewise.
815 * config/score/score.c (score_force_temporary): Likewise.
816 * config/sh/sh.c (prepare_move_operands): Likewise.
817 (prepare_cbranch_operands): Likewise.
818 (emit_fpu_switch): Likewise.
819 (fpscr_set_from_mem): Likewise.
820 * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
821 (adddi3, subsi3): Likewise.
822 (various splitters): Likewise.
823 (divsi_inv_fp_combine): Likewise.
824 (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
825 (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
826 (sne): Likewise.
827 * config/sh/predicates.md (xor_operand): Likewise.
828 * config/sparc/sparc.c (legitimize_tls_address): Likewise.
829 * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
830 (movdi_pic_label_ref): Likewise.
831 * config/spu/spu.c (spu_split_immediate): Likewise.
832 * config/alpha/alpha.md (various splitters): Remove test
833 !no_new_pseudos || reload_completed.
834 * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
835 no_new_pseudos.
836 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
837 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
838 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
839 * config/score/score.c (th_output_mi_thunk): Likewise.
840 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
841 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
842
843 2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
844
845 PR rtl-optimization/32664
846 * mode-switching.c (create_pre_exit): Skip barrier insns.
847
848 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
849
850 * tree-scalar-evolution.c (scev_const_prop): Add arguments to
851 force_gimple_operand_bsi.
852 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
853 rewrite_use_compare): Ditto.
854 * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
855 Ditto.
856 * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
857 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
858 * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
859 * tree-profile.c (prepare_instrumented_value,
860 tree_gen_interval_profiler, tree_gen_pow2_profiler,
861 tree_gen_one_value_profiler, tree_gen_ic_profiler,
862 tree_gen_ic_func_profiler, tree_gen_average_profiler,
863 tree_gen_ior_profiler): Ditto.
864 * tree-ssa-reassoc.c (negate_value): Ditto.
865 * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
866 Use force_gimple_operand_bsi.
867 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
868 * tree-if-conv.c (add_to_dst_predicate_list,
869 find_phi_replacement_condition): Ditto.
870 * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
871 Call mark_symbols_for_renaming for new statements.
872 * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
873
874 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
875
876 * cfghooks.c (remove_edge): New function.
877 (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
878 loop exit rescans.
879 * cfghooks.h (remove_edge): Declare.
880 * cfg.c (remove_edge): Renamed to remove_edge_raw.
881 * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
882
883 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
884
885 * optabs.h: Added declaration for signbit_optab.
886 * optabs.c: (init_optabs): Added initialization for signbit_optab.
887 * genoptinit.c (optabs): Added entry for signbit insns.
888 * builtins.c (expand_builtin_signbit): Added code to use a signbit
889 insn, if available.
890 * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
891 * config/s390/s390.md (signbit<mode>2): New expander.
892
893 2007-07-09 Richard Guenther <rguenther@suse.de>
894
895 PR middle-end/32698
896 * fold-const.c (fold_plusminus_mult_expr): Move constant
897 arguments second to allow decomposing.
898
899 2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br>
900
901 Revert:
902 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
903 PR debug/23551
904 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
905 Disregard DECL_FROM_INLINE.
906
907 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
908
909 PR target/27855
910 * doc/invoke.texi: Add ftree-reassoc flag.
911 * common.opt (ftree-reassoc): New flag.
912 * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
913 (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
914
915 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
916
917 PR tree-optimization/32681
918 * tree-if-conv.c (find_phi_replacement_condition): Use the condition
919 saved in second_edge->aux when first_bb is a loop header.
920
921 2007-07-09 Jan HUbicka <jh@suse.cz>
922
923 * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
924
925 2007-07-09 Richard Guenther <rguenther@suse.de>
926
927 * c-decl.c (start_function): Do not promote return type.
928
929 2007-07-08 Daniel Franke <franke.daniel@gmail.com>
930
931 * function.c (do_warn_unused_parameter): Do not warn if
932 TREE_NO_WARNING is set.
933
934 2007-07-08 Andreas Schwab <schwab@suse.de>
935
936 * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
937
938 2007-07-08 Sandra Loosemore <sandra@codesourcery.com>
939
940 Revert this patch:
941 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
942
943 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
944 apply to assembly language, too.
945 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
946
947 2007-07-07 Daniel Berlin <dberlin@dberlin.org>
948
949 Revert (note the sccvn portions are *not* reverted)
950 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
951
952 Fix PR tree-optimization/23488
953
954 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
955 handles.
956 * tree-flow-inline.h (get_value_handle): Ditto.
957 * tree-ssa-pre.c (decl_vh_map): New.
958 (decl_node_pool): New.
959 (can_value_number_operation): Support DECL_P.
960 (can_PRE_operation): Ditto.
961 (create_expression_by_pieces): Ditto.
962 (find_existing_value_expr): Modify to differnetiate between
963 addressing and top level.
964 (create_value_handle_for_expr): Handle DECL's.
965 (poolify_tree): Ditto.
966 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
967 (make_values_for_stmt): Handle DECL's properly.
968 (init_pre): Reorg to not init useless things during FRE.
969 (fini_pre): Ditto.
970 * tree-flow.h: Include pointer-set.h.
971 (decl_vh_map): Declare.
972 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
973
974 2007-07-07 Eric Weddington <eweddington@cso.atmel.com>
975
976 * config/avr/constraints.md (define_memory_constraint "Q"): Fix
977 the constraint description.
978 * doc/md.texi: Update documentation of AVR constraints.
979
980 2007-07-07 Kazu Hirata <kazu@codesourcery.com>
981
982 * auto-inc-dec.c, config/arm/arm.c,
983 config/m32r/constraints.md, config/mips/mips.md,
984 config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
985 df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
986 tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
987 typos. Follow spelling conventions.
988 * doc/invoke.texi, doc/rtl.texi: Fix typos.
989
990 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
991 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
992
993 * tree-ssa-operands.c (realloc_vop, realloc_vdef,
994 realloc_vuse): Remove.
995 * tree-ssa-operands.h: Remove the prototype for realloc_vdef
996 and realloc_vuse.
997
998 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
999
1000 Fix PR tree-optimization/23488
1001
1002 * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
1003 (try_to_simplify): Ditto.
1004 (visit_use): Ditto.
1005 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
1006 handles.
1007 * tree-flow-inline.h (get_value_handle): Ditto.
1008 * tree-ssa-pre.c (decl_vh_map): New.
1009 (decl_node_pool): New.
1010 (can_value_number_operation): Support DECL_P.
1011 (can_PRE_operation): Ditto.
1012 (create_expression_by_pieces): Ditto.
1013 (find_existing_value_expr): Modify to differnetiate between
1014 addressing and top level.
1015 (create_value_handle_for_expr): Handle DECL's.
1016 (poolify_tree): Ditto.
1017 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
1018 (make_values_for_stmt): Handle DECL's properly.
1019 (init_pre): Reorg to not init useless things during FRE.
1020 (fini_pre): Ditto.
1021 * tree-flow.h: Include pointer-set.h.
1022 (decl_vh_map): Declare.
1023 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
1024
1025 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
1026
1027 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
1028 apply to assembly language, too.
1029 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
1030
1031 2007-07-06 Ian Lance Taylor <iant@google.com>
1032 Zack Weinberg <zackw@panix.com>
1033
1034 PR middle-end/32441
1035 * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
1036
1037 2007-07-06 Richard Sandiford <richard@codesourcery.com>
1038
1039 * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
1040 (prefetch): Likewise if "pref" would be used.
1041
1042 2007-07-06 Josh Conner <jconner@apple.com>
1043
1044 PR middle-end/32602
1045 PR middle-end/32603
1046 * calls.c (store_one_arg): Handle arguments which are partially
1047 on the stack when detecting argument overlap.
1048
1049 2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
1050
1051 * reload1.c (choose_reload_regs): Set reload_spill_index for regs
1052 chosen during find_reloads.
1053
1054 2007-07-06 Richard Guenther <rguenther@suse.de>
1055
1056 * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
1057 TYPE_ARG_TYPES for verification of argument types. Use
1058 DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
1059 parameters as variable arguments.
1060
1061 2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
1062
1063 * libgcc2.h (word_type): Type definition removed.
1064 (cmp_return_type, shift_count_type): Type definitions added.
1065 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
1066 replaced with shift_count_type.
1067 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
1068 cmp_return_type.
1069 * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
1070 changed from word_type to Wtype.
1071 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
1072 replaced with shift_count_type.
1073 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
1074 cmp_return_type.
1075 * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
1076 and libgcc_shift_count attribute added.
1077 * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
1078 TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
1079 (TARGET_INITIALIZER): New target hooks added.
1080 * targhooks.c (default_libgcc_cmp_return_mode,
1081 default_libgcc_shift_count_mode): Default implementations for the new
1082 target hooks added.
1083 * targhooks.h (default_libgcc_cmp_return_mode,
1084 default_libgcc_shift_count_mode): Function prototypes added.
1085 * target.h (struct gcc_target): Fields for the new target hooks added.
1086 * optabs.c (expand_binop): Use shift_count_mode when expanding shift
1087 as library call.
1088 (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
1089 library call.
1090
1091 * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
1092 TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
1093
1094 * config/s390/s390.c (s390_libgcc_cmp_return_mode,
1095 s390_libgcc_shift_count_mode): Functions added.
1096 (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
1097 Target hooks defined.
1098
1099 2007-07-06 Richard Sandiford <richard@codesourcery.com>
1100
1101 * config/mips/mips.c (compute_frame_size): Restore the original
1102 gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
1103 fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
1104 Document why the difference is needed.
1105
1106 2007-07-06 Richard Guenther <rguenther@suse.de>
1107
1108 * c-common.c (boolean_increment): Use correctly typed
1109 constant.
1110
1111 2007-07-06 Richard Sandiford <richard@codesourcery.com>
1112
1113 * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
1114 the topmost argument register is not also included in the save mask.
1115 (mips16e_collect_argument_save_p): Take a pointer to the argument
1116 register, rather than a pointer to the number of arguments.
1117 (mips16e_collect_argument_saves): Only include argument saves
1118 that aren't in the register mask.
1119
1120 2007-07-06 Uros Bizjak <ubizjak@gmail.com>
1121
1122 PR rtl-optimization/32450
1123 * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
1124 to ensure that instructions are not moved into the prologue when
1125 profiling is on. Remove unused prologue_end variable.
1126 (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
1127 as a scheduling barrier.
1128
1129 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
1130
1131 PR debug/23551
1132 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
1133 Disregard DECL_FROM_INLINE.
1134
1135 2007-07-05 Adam Nemet <anemet@caviumnetworks.com>
1136
1137 * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
1138 IORing with a constant.
1139
1140 2007-07-05 Seongbae Park <seongbae.park@gmail.com>
1141
1142 PR rtl-optimization/32475
1143 * df-scan.c (df_def_record_1): Add a use of the stack pointer
1144 for every definition of the stack pointer.
1145
1146 2007-07-05 Richard Earnshaw <rearnsha@arm.com>
1147
1148 * arm.c (vfp3_const_double_index): Copy signed results of
1149 REAL_VALUE_TO_INT into unsigned vars.
1150
1151 2007-07-05 Richard Guenther <rguenther@suse.de>
1152
1153 PR middle-end/32639
1154 * alias.c (get_alias_set): Tread METHOD_TYPE the same as
1155 FUNCTION_TYPE.
1156 * tree-ssa.c (useless_type_conversion_p): Check canonical
1157 types early.
1158
1159 2007-07-05 Anatoly Sokolov <aesok@post.ru>
1160
1161 * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2,
1162 zero_extendhisi2): Change to define_insn_and_split.
1163 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
1164
1165 2007-07-05 Paolo Bonzini <bonzini@gnu.org>
1166
1167 * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
1168 pass_match_asm_constraints): New.
1169 * passes.c (init_optimization_passes): Add new pass.
1170 * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
1171 * function.h (struct function): Add has_asm_statement bit.
1172 (current_function_has_asm_statement): New.
1173 * tree-pass.h (pass_match_asm_constraints): New.
1174
1175 2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
1176
1177 * config/mips/mips.c (mips_file_start): Avoid declaration
1178 after code.
1179
1180 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
1181
1182 * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
1183
1184 2007-07-05 Uros Bizjak <ubizjak@gmail.com>
1185
1186 * rtl.def (NOTE): Change print format string to print
1187 operand 5 as a note insn name.
1188
1189 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
1190 David Ung <davidu@mips.com>
1191
1192 * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
1193 * doc/invoke.texi: (MIPS Options): Document them.
1194
1195 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
1196 David Ung <davidu@mips.com>
1197
1198 Add support for SmartMIPS ASE.
1199
1200 * optabs.c (expand_binop_directly): New, broken out from...
1201 (expand_binop): Here. Make it try rotating in the other
1202 direction even when the second operand isn't constant.
1203 * config/mips/mips.md (*lwxs): New.
1204 * config/mips/mips.opt (msmartmips): New.
1205 * config/mips/mips.c (mips_lwxs_address_p): New.
1206 (mips_rtx_costs): Make it recognize scaled indexed addressing.
1207 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
1208 __mips_smartmips when compiling for TARGET_SMARTMIPS.
1209 (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
1210 (ISA_HAS_LWXS): New.
1211 (ASM_SPEC): Add -msmartmips/-mno-smartmips.
1212 * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
1213 * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
1214 * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
1215 * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
1216 * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
1217 * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
1218
1219 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
1220
1221 * tree-vectorizer.c (new_loop_vec_info): Initialize
1222 LOOP_VINFO_COST_MODEL_MIN_ITERS.
1223 * tree-vectorizer.h (_loop_vec_info): Added new filed
1224 min_profitable_iters.
1225 (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
1226 (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
1227 * tree-vect-analyze.c (vect_analyze_operations): Set
1228 LOOP_VINFO_COST_MODEL_MIN_ITERS.
1229 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
1230 VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
1231 Fix calculation of peel_iters_prologue. Move consideration of epilogue
1232 and prologue cost to after they are computed.
1233 (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
1234 TARG_VEC_STMT_COST.
1235 (vect_model_simple_cost): Takes additional argument dt. Consider cost
1236 of creating vectors from scalars according to dt.
1237 (vect_model_store_cost): Likewise.
1238 (vectorizable_call): Use dt array instead of scalar dt. Call
1239 vect_model_simple_cost with additional argument dt.
1240 (vectorizable_assignment): Likewise.
1241 (vectorizable_operation): Likewise.
1242 (vectorizable_type_demotion): Likewise.
1243 (vectorizable_type_promotion): Likewise.
1244 (vectorizable_store): Use dt array instead of scalar dt. Call
1245 vect_model_store_cost with additional argument dt.
1246 (vect_do_peeling_for_loop_bound): Don't call
1247 vect_estimate_min_profitable_iters. Instead, lookup
1248 LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
1249 "may not be profitable".
1250
1251 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
1252
1253 PR testsuite/32014
1254 * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
1255 (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
1256 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
1257 (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns.
1258
1259 2007-07-05 Zdenek Dvorak <dvorakz@suse.cz>
1260
1261 * config/i386/i386.c (ix86_address_cost): Do not consider more complex
1262 addressing modes cheaper.
1263
1264 2007-07-05 Alexandre Oliva <aoliva@redhat.com>
1265
1266 * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
1267 (dw_ranges_struct): Rename block_num to num. Adjust.
1268 (dw_ranges_by_label_struct): New.
1269 (ranges_by_label, ranges_by_label_allocated,
1270 ranges_by_label_in_use): New variables.
1271 (add_ranges_num): Factored most of the code out of...
1272 (add_ranges): ... this one. Rewrite in terms of the former.
1273 (add_ranges_by_labels): New.
1274 (output_ranges): Output by-label ranges.
1275 (dwarf2out_finish): Output range for multiple-section
1276 compile_unit. Output standard DW_AT_low_pc in addition to
1277 unexpected DW_AT_entry_pc.
1278
1279 2007-07-04 Daniel Berlin <dberlin@dberlin.org>
1280
1281 PR tree-optimization/32604
1282 PR tree-optimization/32606
1283
1284 * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
1285 (compute_antic_safe): Removed.
1286 (ANTIC_SAFE_LOADS): Ditto.
1287 (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
1288 (execute_pre): Don't call compute_antic_safe.
1289 (vuse_equiv): New function.
1290 (make_values_for_stmt): Use it
1291 * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
1292 not always true.
1293
1294 2007-07-04 Anatoly Sokolov <aesok@post.ru>
1295
1296 PR target/31331
1297 * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
1298 rather than a decl.
1299 (avr_attribute_table): Make "naked" attribute apply to function types
1300 rather than to decls.
1301 (avr_handle_fntype_attribute): New function.
1302
1303 2007-07-04 Joseph Myers <joseph@codesourcery.com>
1304
1305 * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
1306 after \.
1307
1308 2007-07-04 David Ung <davidu@mips.com>
1309 Joseph Myers <joseph@codesourcery.com>
1310
1311 * config/mips/mips.md (type): Add logical, signext and move.
1312 (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
1313 *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
1314 *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
1315 combinations", *zero_extend<SHORT:mode><GPR:mode>2,
1316 *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
1317 *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
1318 *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
1319 *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
1320 *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
1321 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
1322 movv2sf_hardfloat_64bit): Use the new types.
1323 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
1324 *movdf_softfloat, *movdf_mips16): Use "multi".
1325 (extendqihi2): Replace with a define_expand.
1326 (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
1327 Based on extend<SHORT:mode><GPR:mode>2 patterns.
1328 * config/mips/74k.md (r74k_int_logical): New reservation and
1329 bypasses.
1330 (r74k_int_arith): Remove "slt".
1331 * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
1332 config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
1333 config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
1334 config/mips/sb1.md, config/mips/sr71k.md: Add new types to
1335 reservations for "arith".
1336
1337 2007-07-04 Richard Guenther <rguenther@suse.de>
1338
1339 * tree-ssa.c (useless_type_conversion_p): Add handling for
1340 scalar float and vector types. Only call the types_compatible_p
1341 langhook for aggregate types as last resort. Follow the
1342 rules.
1343
1344 2007-07-04 Richard Guenther <rguenther@suse.de>
1345
1346 * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
1347 the same as NOP_EXPR.
1348
1349 2007-07-04 Nick Clifton <nickc@redhat.com>
1350
1351 * target.h (struct gcc_target): Add target_help field.
1352 * target-def.h (TARGET_HELP): New.
1353 (TARGET_INITIALIZER): Use TARGET_HELP.
1354 * opts.c (command_handle_option): Invoke target_help function, if
1355 defined, when the user has specified --target-help on the command
1356 line.
1357 * doc/invoke.texi: Mention that --target-help might print
1358 additional information.
1359 * doc/tm.texi: Document TARGET_HELP hook.
1360
1361 * arm.c (TARGET_HELP): Override default definition.
1362 (arm_target_help): New - display a wrapped list of cores and
1363 architectures supported.
1364
1365 2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
1366
1367 * config/gcc/v850/v850.c (expand_prologue): Make sure
1368 GEN_INT() argument is sign extended rather than zero extended.
1369 (expand_epilogue): Likewise.
1370 (output_move_double): Delete.
1371 * config/gcc/v850/v850-protos.h (output_move_double): Delete.
1372 * config/gcc/v850/v850.md (movdi): Delete.
1373 (*movdi_internal): Delete.
1374 (movdf): Delete.
1375 (*movdf_internal): Delete.
1376
1377 2007-07-04 Richard Sandiford <richard@codesourcery.com>
1378
1379 * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
1380 unless compiling RTP PIC.
1381
1382 2007-07-04 Richard Guenther <rguenther@suse.de>
1383
1384 PR tree-optimization/32482
1385 * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
1386 original ssa name if we didn't find a shift expression.
1387 Fix shift constant for bit zero test.
1388
1389 2007-07-04 Richard Sandiford <richard@codesourcery.com>
1390
1391 * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
1392
1393 2007-07-04 Richard Sandiford <richard@codesourcery.com>
1394
1395 * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
1396 * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
1397 * config/arm/vxworks.h (ASM_SPEC): Delete.
1398 (SUBTARGET_EXTRA_ASM_SPEC): Define.
1399
1400 2007-07-04 Sebastian Pop <sebpop@gmail.com>
1401
1402 * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
1403 (DDR_REVERSED_P): New.
1404 * tree-data-ref.c (initialize_data_dependence_relation,
1405 build_classic_dist_vector): Set DDR_REVERSED_P.
1406
1407 2007-07-04 Sebastian Pop <sebpop@gmail.com>
1408
1409 PR middle-end/32457
1410 * tree-data-ref.c (analyze_siv_subscript_cst_affine,
1411 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
1412 init_omega_for_ddr_1): Use non conservative number of iterations
1413 estimations.
1414 (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
1415 (analyze_siv_subscript): Remove FIXME and reinitialization of
1416 last_conflicts to chrec_dont_know.
1417 * testsuite/gfortran.dg/vect/pr32457.f90: New.
1418
1419 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
1420
1421 * tree.c (maybe_canonicalize_argtypes): Improve description.
1422
1423 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
1424
1425 * tree.c (maybe_canonicalize_argtypes): New.
1426 (build_function_type): Set canonical type.
1427 (build_method_type_directly): Ditto.
1428 (reconstruct_complex_type): Rebuild the METHOD_TYPE node
1429 properly.
1430
1431 2007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
1432
1433 * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
1434 like PLUS_EXPR.
1435 (rewrite_use_nonlinear_expr): Likewise.
1436
1437 2007-07-03 Seongbae Park <seongbae.park@gmail.com>
1438
1439 * rtl.def (UNSPEC, USE, CLOBBER): More comments.
1440
1441 2007-07-04 Ben Elliston <bje@au.ibm.com>
1442
1443 * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
1444 of this file.
1445
1446 * c-objc-common.c (c_types_compatible_p): Fix indentation.
1447
1448 * doc/tm.texi (Run-time Target): Capitalise "CPU".
1449 (Exception Handling): Likewise.
1450
1451 2007-07-03 Jan Hubicka <jh@suse.cz>
1452
1453 * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
1454
1455 2007-07-03 Eric Christopher <echristo@apple.com>
1456
1457 * doc/cppopts.texi: Add conflicting option note to -dM.
1458 * doc/invoke.texi: Add note about possible conflicts with
1459 -E for -dCHARS and note that -dM will not produce
1460 any results if there is no machine dependent reorg.
1461
1462 2007-07-03 Geoffrey Keating <geoffk@apple.com>
1463
1464 * tree.h (DECL_ALIGN): Back out previous change.
1465
1466 2007-07-03 Joseph Myers <joseph@codesourcery.com>
1467
1468 * configure.ac: Test for .dtprelword support on MIPS.
1469 * configure, config.in: Regenerate.
1470 * config/mips/mips.c (mips_output_dwarf_dtprel): New.
1471 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1472
1473 2007-07-03 Julian Brown <julian@codesourcery.com>
1474
1475 * config.gcc (with_fpu): Allow --with-fpu=vfp3.
1476 * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
1477 * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
1478 * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
1479 capability.
1480 (all_fpus): Add FPUTYPE_VFP3.
1481 (fp_model_for_fpu): Add VFPv3 field.
1482 (arm_rtx_costs_1): Give cost to VFPv3 constants.
1483 (vfp3_const_double_index): New function. Return integer index of
1484 VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
1485 isn't suitable.
1486 (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
1487 and argument represents a valid RTX for a VFPv3 constant.
1488 (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
1489 two instructions.
1490 (vfp_emit_fstmd): Similar, for fstmd.
1491 (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
1492 constants, represented as integer indices.
1493 (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
1494 VFP_REGNO_OK_FOR_DOUBLE macros.
1495 (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
1496 (arm_file_start): Set float-abi attribute for VFPv3, and output
1497 correct ".fpu" assembler directive.
1498 (arm_dbx_register_numbering): Add FIXME.
1499 * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
1500 (fputype): Add FPUTYPE_VFP3.
1501 (FIXED_REGISTERS): Add 32 registers for D16-D31.
1502 (CALL_USED_REGISTERS): Likewise.
1503 (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
1504 of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
1505 (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
1506 (D7_VFP_REGNUM): New.
1507 (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
1508 (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
1509 (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
1510 (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
1511 (REG_ALLOC_ORDER): Adjust for VFPv3.
1512 (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
1513 (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
1514 VFP_LO_REGS, VFP_HI_REGS.
1515 (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
1516 (IS_VFP_CLASS): Define macro.
1517 (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
1518 IS_VFP_CLASS.
1519 (REGISTER_MOVE_COST): Likewise.
1520 * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
1521 * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
1522 (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
1523 (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
1524 (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
1525 (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
1526 (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
1527 (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
1528 (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
1529 (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
1530 (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
1531 where appropriate for single-word registers.
1532 (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
1533 As above. Fix type attributes.
1534 * config/arm/constraints.md (register_contraint "t"): Define.
1535 (register_constraint "w"): Change to D0-D15, or D0-D31 for
1536 VFPv3/NEON.
1537 (register_constraint "x"): Define.
1538 (constraint "Dv"): Define.
1539
1540 2007-07-03 Geoffrey Keating <geoffk@apple.com>
1541
1542 * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
1543
1544 2007-07-03 Tom Tromey <tromey@redhat.com>
1545
1546 * c-parser.c (objc_pq_context): Removed.
1547 (objc_need_raw_identifier): Likewise.
1548 (c_parser) <objc_pq_context>: New field.
1549 <objc_need_raw_identifier>: Likewise.
1550 (OBJC_NEED_RAW_IDENTIFIER): Removed.
1551 (c_lex_one_token): Update.
1552 (c_parser_objc_protocol_definition): Update.
1553 (c_parser_objc_method_definition): Update.
1554 (c_parser_objc_methodproto): Update.
1555 (c_parser_declspecs): Update.
1556
1557 2007-07-03 David Ung <davidu@mips.com>
1558
1559 * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
1560
1561 2007-07-03 David Ung <davidu@mips.com>
1562 Richard Sandiford <richard@codesourcery.com>
1563
1564 * doc/invoke.texi: Document -march=74kf3_2.
1565 * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
1566 (TUNE_74K): Check for it.
1567 * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
1568 (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
1569 * config/mips/mips.md (cpu): Add 74kf3_2.
1570 * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
1571 (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
1572 (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
1573 (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
1574 74kf3_2 to the CPU list.
1575 (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
1576 (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
1577 (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
1578 (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
1579 (r74kf3_2_fxfer_from_c1): New insn reservations.
1580
1581 2007-07-03 Richard Sandiford <richard@codesourcery.com>
1582 David Ung <davidu@mips.com>
1583
1584 * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
1585 -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx]
1586 and 74k[fx]. Document aliases for the new options.
1587 * config/mips/mips.h (PROCESSOR_24KF): Rename to...
1588 (PROCESSOR_24KF2_1): ...this.
1589 (PROCESSOR_24KX): Rename to...
1590 (PROCESSOR_24KF1_1): ...this.
1591 (PROCESSOR_74KF): Rename to...
1592 (PROCESSOR_74KF2_1): ...this.
1593 (PROCESSOR_74KX): Rename to...
1594 (PROCESSOR_74KF1_1): ...this.
1595 (TUNE_74K): Update PROCESSOR_* names.
1596 * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
1597 for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise
1598 the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names.
1599 (mips_rtx_cost_data): Update processor names in comments.
1600 (mips_issue_rate): Update PROCESSOR_* names.
1601 * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
1602 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
1603 * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
1604 to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*.
1605 Update cpu attribute names.
1606 (r24k_fpu_iss): Rename this reservation to...
1607 (r24kf2_1_fpu_iss): ...this and update all uses.
1608 (r24kx_fpu_iss): Rename this reservation to...
1609 (r24kf1_1_fpu_iss): ...this and update all uses.
1610 * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
1611 to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*.
1612 Update cpu attribute names.
1613
1614 2007-07-01 Kaz Kojima <kkojima@gcc.gnu.org>
1615
1616 * config/m32r/constraints.md: New file.
1617 * config/m32r/m32r.c: Include tm-constrs.h.
1618 (small_data_operand): Use satisfies_constraint_* instead of macro.
1619 (addr24_operand, gen_compare): Likewise.
1620 * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
1621 (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
1622 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1623 EXTRA_CONSTRAINT): Likewise.
1624 * config/m32r/m32r.md: Include constraints.md.
1625 (*movsi_insn): Use satisfies_constraint_* instead of macro.
1626 (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
1627 * config/m32r/predicates.md (conditional_move_operand): Likewise.
1628 (two_insn_const_operand, int8_operand, uint16_operand,
1629 reg_or_int16_operand, reg_or_uint16_operand,
1630 reg_or_cmp_int16_operand, cmp_int16_operand,
1631 seth_add3_operand): Likewise.
1632
1633 2007-07-03 Eric Christopher <echristo@gmail.com>
1634
1635 * libgcc2.h: Conditionally declare __bswapsi2 and
1636 __bswapdi2.
1637
1638 2007-07-03 H.J. Lu <hongjiu.lu@intel.com>
1639
1640 * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
1641 defined.
1642
1643 2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1644
1645 PR target/28307
1646 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
1647 (__gthrw_pragma): Provide default definition.
1648 (__gthrw2): Use it.
1649 * gthr-posix.c (__gthrw_pragma): Define.
1650
1651 2007-07-03 Daniel Berlin <dberlin@dberlin.org>
1652
1653 * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
1654 before declaring inequality.
1655
1656 2007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk>
1657
1658 * combine.c (recog_for_combine): Log the success or failure of
1659 matching new insn patterns against the machine description in
1660 detailed dumps.
1661
1662 2007-07-03 Revital Eres <eres@il.ibm.com>
1663
1664 * ddg.c (print_sccs): New function.
1665 (check_sccs): New function.
1666 (create_ddg_all_sccs): Use it.
1667 * ddg.h (print_sccs): Declare.
1668 * modulo-sched.c (sms_order_nodes): Call print_sccs.
1669
1670 2007-07-03 Uros Bizjak <ubizjak@gmail.com>
1671
1672 * targhooks.h (default_mode_for_suffix): New function declaration.
1673 * targhooks.c (default_mode_for_suffix): New default target hook.
1674 * target.h (struct c): New structure in the targetm struct.
1675 (mode_for_suffix): New target hook as part of struct c.
1676 target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
1677 default_mode_for_suffix.
1678 (TARGET_C): New define.
1679 * c-lex.c: Include "target.h".
1680 (interpret_float): Use targetm.c.mode_for_suffix to determine
1681 the mode for a given non-standard suffix.
1682 Makefile.in (c-lex.o): Depend on $(TARGET_H).
1683
1684 * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
1685 (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
1686
1687 * doc/extend.texi (Floating Types): New node. Document __float80 and
1688 __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes.
1689
1690 2007-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
1691
1692 PR target/32506
1693 * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
1694 predicate instead of target_operand.
1695 (divsi3_i1_media, divsi3_media_2): Likewise.
1696
1697 2007-07-02 Eric Botcazou <ebotcazou@adacore.com>
1698
1699 * tree.h (alias_sets_might_conflict_p): Rename into
1700 alias_sets_must_conflict_p.
1701 * alias.c (alias_sets_might_conflict_p): Likewise.
1702 (alias_sets_conflict_p): Use it.
1703 (objects_must_conflict_p): Likewise.
1704 * c-common.c (strict_aliasing_warning): Adjust.
1705
1706 2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
1707
1708 * rtlhooks.c (gen_lowpart_if_possible): Check for
1709 invalid subreg before calling gen_lowpart_SUBREG.
1710
1711 2007-07-02 Geoffrey Keating <geoffk@apple.com>
1712
1713 * config/darwin9.h: Add copyright notice.
1714 (LINK_COMMAND_SPEC): Add comment.
1715 (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
1716 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
1717 DARWIN_LIBSYSTEM_HAS_UNWIND.
1718
1719 2007-07-02 Jakub Jelinek <jakub@redhat.com>
1720
1721 PR libgomp/32468
1722 * omp-low.c (check_combined_parallel): New function.
1723 (lower_omp_parallel): Call it via walk_stmts, set
1724 OMP_PARALLEL_COMBINED if appropriate.
1725 (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
1726 isn't the only statement in WS_ENTRY_BB or OMP_RETURN
1727 the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
1728 don't consider it as combined parallel.
1729
1730 2007-07-02 Richard Sandiford <richard@codesourcery.com>
1731
1732 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
1733 (gcc_tooldir): Likewise.
1734 * configure: Regenerate.
1735 * Makefile.in (libsubdir_to_prefix): New variable, based on the
1736 old configure.ac gcc_tooldir setting.
1737 (prefix_to_exec_prefix): New variable.
1738 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
1739 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
1740
1741 2007-07-02 Daniel Berlin <dberlin@dberlin.org>
1742
1743 Fix PR tree-optimization/32583
1744 Fix PR tree-optimization/32584
1745 * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
1746 (phi_translate_set): Use phi_translate directly now.
1747 (make_values_for_stmt): Don't value number RHS if we already know
1748 it is constant.
1749
1750 2007-07-02 Steve Ellcey <sje@cup.hp.com>
1751 Jim Wilson <wilson@specifix.com>
1752
1753 PR target/31684
1754 * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
1755 copy_insn.
1756
1757 2007-07-02 Sandra Loosemore <sandra@codesourcery.com>
1758 Richard Sandiford <richard@codesourcery.com>
1759 Nigel Stephens <nigel@mips.com>
1760
1761 * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
1762 (mips16e_output_save_restore): Declare.
1763 (mips16e_save_restore_pattern_p): Likewise.
1764 * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
1765 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
1766 for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16
1767 && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
1768 (BITSET_P): New global macro, extracted from...
1769 (mips_for_each_saved_reg): ...here.
1770 (mips16e_save_restore_info): New struct.
1771 (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
1772 (mips16e_save_restore_regs): New variable.
1773 (mips_split_plus, mips16e_find_first_register): New functions.
1774 (mips16e_mask_registers): New function.
1775 (compute_frame_size): Expand the commentary before the function.
1776 Enforce the MIPS16e save and restore register range restrictions.
1777 Pad the general register save area at the low end.
1778 (mips16e_save_restore_reg, mips16e_build_save_restore)
1779 (mips16e_save_restore_pattern_p, mips16e_add_register_range)
1780 (mips16e_output_save_restore, mips16e_collect_propagate_value)
1781 (mips16e_collect_argument_save, mips16e_collect_argument_saves):
1782 New functions.
1783 (mips_expand_prologue, mips_expand_epilogue): Handle
1784 GENERATE_MIPS16E_SAVE_RESTORE.
1785 * config/mips/mips.md (*mips16e_save_restore): New pattern.
1786
1787 2007-07-02 Uros Bizjak <ubizjak@gmail.com>
1788
1789 PR tree-optimization/31966
1790 PR tree-optimization/32533
1791 * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
1792 "basic_block" description as its third argument. Update function
1793 calls to get destination bb from "edge" argument. Save "cond" into
1794 aux field of the edge. Update prototype for changed arguments.
1795 (if_convertible_loop_p): Clear aux field of incoming edges if bb
1796 contains phi node.
1797 (find_phi_replacement_condition): Operate on incoming edges, not
1798 on predecessor blocks. If there is a condition saved in the
1799 incoming edge aux field, AND it with incoming bb predicate.
1800 Return source bb of the first edge.
1801 (clean_predicate_lists): Clean aux field of outgoing node edges.
1802 (tree_if_conversion): Do not initialize cond variable. Move
1803 variable declaration into the loop.
1804 (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
1805 initializations of new_stmt, arg0 and arg1 variables.
1806
1807 2007-07-02 Jakub Jelinek <jakub@redhat.com>
1808
1809 * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
1810 SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
1811
1812 2007-07-02 Richard Guenther <rguenther@suse.de>
1813
1814 * tree-ssa.c (useless_type_conversion_p): Document
1815 future intent as defining the middle-end type system.
1816 Re-structure to call langhook last, group by type class,
1817 mark questionable parts.
1818
1819 2007-07-02 Richard Guenther <rguenther@suse.de>
1820
1821 * tree-flow.h (types_compatible_p): Declare.
1822 * tree-ssa.c (types_compatible_p): New function.
1823 * ipa-type-escape.c (discover_unique_type): Use
1824 types_compatible_p instead of lang_hooks.types_compatible_p.
1825 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1826 * tree-vn.c (expressions_equal_p): Likewise.
1827 * tree.c (fields_compatible_p): Likewise.
1828 * tree-ssa-dom.c (avail_expr_eq): Likewise.
1829 (cprop_operand): Use useless_type_conversion_p instead of
1830 lang_hooks.types_compatible_p.
1831 * tree-inline.c (setup_one_parameter): Likewise.
1832 (declare_return_variable): Likewise.
1833 * tree-nrv.c (tree_nrv): Likewise.
1834 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
1835 (maybe_fold_offset_to_component_ref): Likewise.
1836 (maybe_fold_offset_to_reference): Likewise.
1837 * tree-ssa-copy.c (may_propagate_copy): Likewise.
1838 (merge_alias_info): Likewise.
1839 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1840 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1841 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
1842 * tree-tailcall.c (find_tail_calls): Likewise.
1843 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
1844 * gimplify.c (canonicalize_addr_expr): Likewise.
1845 (fold_indirect_ref_rhs): Likewise.
1846 (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type.
1847 (cpt_same_type): Likewise.
1848 (check_pointer_types_r): Swap parameters to cpt_same_type
1849 where appropriate.
1850 * fold-const.c (fold_convert): Revert fix for PR15988.
1851 * tree-inline.c (setup_one_parameter): Instead fix it here by
1852 using fold_build1 instead of fold_convert and checking for
1853 error_mark_node. Convert only if the conversion is necessary.
1854
1855 2007-07-02 Joseph Myers <joseph@codesourcery.com>
1856
1857 * configure.ac: Check for .gnu_attribute on Power.
1858 * configure: Regenerate.
1859 * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
1860 attribute for floating-point ABI.
1861
1862 2007-07-02 Ira Rosen <irar@il.ibm.com>
1863
1864 PR tree-optimization/32230
1865 PR tree-optimization/32477
1866 * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base
1867 address is a constant.
1868
1869 2007-07-02 Richard Sandiford <richard@codesourcery.com>
1870
1871 * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
1872 (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
1873 (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
1874 stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT.
1875 Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
1876 64-bit targets. Add support for *-elfoabi*.
1877 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
1878 different settings if $(tm_defines) does not select the EABI.
1879 (MULTILIB_EXCLUSIONS): Define in those circumstances.
1880 * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
1881 (MIPS_ARCH_OPTION_SPEC): Likewise.
1882 (MIPS_ISA_LEVEL_SPEC): Likewise.
1883 (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
1884 * config/mips/elfoabi.h: New file.
1885
1886 2007-07-02 Richard Guenther <rguenther@suse.de>
1887
1888 * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
1889 (useless_type_conversion_p): ... this.
1890 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
1891 (useless_type_conversion_p): ... this.
1892 * builtins.c (fold_builtin_memory_op): Rename
1893 tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
1894 * tree-cfg.c (verify_expr): Likewise.
1895 * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
1896 * tree-ssa-ccp.c (ccp_fold): Likewise.
1897 * tree-ssa-copy.c (may_propagate_copy): Likewise.
1898 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
1899 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1900 * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
1901 * tree-ssa-pre.c (eliminate): Likewise.
1902 * tree-ssa.c (delete_tree_ssa): Likewise.
1903 (tree_ssa_useless_type_conversion): Likewise.
1904 * tree.c (build2_stat): Likewise.
1905
1906 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
1907
1908 Fix PR tree-optimization/32571
1909 * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
1910 simplifying them.
1911
1912 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
1913
1914 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
1915 and other expected operations explicitly, change default to
1916 gcc_unreachable.
1917
1918 2007-07-01 Daniel Jacobowitz <dan@codesourcery.com>
1919
1920 * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
1921 PARALLEL.
1922 * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
1923 (tls_load_dot_plus_eight): Move the label number into the unspec.
1924 * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
1925
1926 2007-07-01 Andreas Schwab <schwab@suse.de>
1927
1928 * dwarf2out.c (initial_return_save): Define only if used.
1929
1930 2007-07-01 Kenneth Zadeck <zadeck@naturalbridge.com>
1931
1932 Unreverting Richard's Revert of:
1933
1934 2007-06-27 Richard Sandiford <richard@codesourcery.com>
1935
1936 * dce.c (deletable_insn_p_1): New function, split out from...
1937 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
1938 specially, not those inside PARALLELs. Remove BODY argument
1939 and adjust recursive call accordingly.
1940 (prescan_insns_for_dce): Update call to delete_insn_p.
1941
1942 2007-07-01 Vladimir Yanovsky <yanov@il.ibm.com>
1943 Revital Eres <eres@il.ibm.com>
1944
1945 * ddg.c (create_ddg_all_sccs): Fix missed
1946 initialization of scc_nodes.
1947
1948 2007-07-01 Uros Bizjak <ubizjak@gmail.com>
1949
1950 PR middle-end/32559
1951 * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
1952 X + ~X to 1 only for INTEGRAL_TYPE_P type.
1953
1954 2007-06-30 Joseph Myers <joseph@codesourcery.com>
1955
1956 * configure.ac: Check for .gnu_attribute on MIPS.
1957 * configure, config.in: Regenerate.
1958 * config/mips/mips.c (mips_file_start): If supported, output
1959 attribute for floating-point ABI.
1960
1961 2007-06-30 Uros Bizjak <ubizjak@gmail.com>
1962
1963 PR target/32433
1964 * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
1965 (ffs_cmove): New expander to expand using ctz pattern.
1966 (*ffs_cmove): Remove pattern.
1967 (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
1968 (ffsdi2): Expand using ctz pattern.
1969 (*ffs_rex64): Remove pattern.
1970
1971 2007-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1972
1973 PR rtl-optimization/32296
1974 * pa.md (return): Delete pattern.
1975 (return_internal): Remove "(const_int 1)" from pattern.
1976 (epilogue): Use return_internal pattern for trivial returns.
1977 * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
1978 * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h".
1979
1980 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
1981
1982 * tree-ssa-pre.c (is_exception_related): New function
1983 (can_value_number_operation): Use it.
1984
1985 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
1986
1987 Fix PR tree-optimization/32540
1988 Fix PR tree-optimization/31651
1989
1990 * tree-ssa-sccvn.c: New file.
1991
1992 * tree-ssa-sccvn.h: Ditto.
1993
1994 * tree-vn.c: Include tree-ssa-sccvn.h
1995 (val_expr_paid_d): Removed.
1996 (value_table): Ditto.
1997 (vn_compute): Ditto.
1998 (val_expr_pair_hash): Ditto.
1999 (val_expr_pair_expr_eq): Ditto.
2000 (copy_vuses_from_stmt): Ditto.
2001 (vn_delete): Ditto.
2002 (vn_init): Ditto.
2003 (shared_vuses_from_stmt): Ditto.
2004 (print_creation_to_file): Moved up.
2005 (sort_vuses): Ditto.
2006 (sort_vuses_heap): Ditto.
2007 (set_value_handle): Make non-static.
2008 (make_value_handle): Ditto.
2009 (vn_add): Rewritten to use sccvn lookups.
2010 (vn_add_with_vuses): Ditto.
2011 (vn_lookup): Ditto (and second argument removed).
2012 (vn_lookup_with_vuses): Ditto.
2013 (vn_lookup_or_add): Ditto (and second argument removed);
2014 (vn_lookup_or_add_with_vuses): Ditto.
2015 (vn_lookup_with_stmt): New.
2016 (vn_lookup_or_add_with_stmt): Ditto.
2017 (create_value_handle_for_expr): Ditto.
2018
2019 * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
2020 (seen_during_translate): New function.
2021 (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
2022 (phi_trans_add): Ditto.
2023 (constant_expr_p): FIELD_DECL is always constant.
2024 (phi_translate_1): Renamed from phi_translate, add seen bitmap.
2025 Use constant_expr_p.
2026 Avoid infinite recursion on mutually valued expressions.
2027 Change callers of vn_lookup_or_add.
2028 (phi_translate): New function.
2029 (compute_antic_safe): Allow phi nodes.
2030 (create_component_ref_by_pieces): Update for FIELD_DECL change.
2031 (find_or_generate_expression): Rewrite slightly.
2032 (create_expression_by_pieces): Updated for vn_lookup_or_add
2033 change.
2034 Update VN_INFO for new names.
2035 (insert_into_preds_of_block): Update for new names.
2036 (add_to_exp_gen): New function.
2037 (add_to_sets): Use vn_lookup_or_add_with_stmt.
2038 (find_existing_value_expr): Rewrite to changed vn_lookup.
2039 (create_value_expr_from): Ditto, and use add_to_exp_gen.
2040 (try_look_through_load): Removed.
2041 (try_combine_conversion): Ditto.
2042 (get_sccvn_value): New function.
2043 (make_values_for_phi): Ditto.
2044 (make_values_for_stmt): Ditto.
2045 (compute_avail): Rewritten for vn_lookup_or_add changes and to use
2046 SCCVN.
2047 (init_pre): Update for SCCVN changes.
2048 (fini_pre): Ditto.
2049 (execute_pre): Ditto.
2050
2051 * tree-flow.h (make_value_handle): Declare.
2052 (set_value_handle): Ditto.
2053 (sort_vuses_heap): Ditto.
2054 (vn_lookup_or_add_with_stmt): Ditto.
2055 (vn_lookup_with_stmt): Ditto.
2056 (vn_compute): Remove.
2057 (vn_init): Ditto.
2058 (vn_delete): Ditto.
2059 (vn_lookup): Update arguments.
2060
2061 * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
2062 (tree-vn.o): Ditto.
2063 (tree-ssa-sccvn.o): New.
2064 (OBJS-common): Add tree-ssa-sccvn.o
2065
2066 2007-06-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2067
2068 PR c/4076
2069 * c-typeck.c (build_external_ref): Don't mark as used if called
2070 from itself.
2071 * calls.c (rtx_for_function_call): Likewise.
2072
2073 2007-06-30 Richard Sandiford <richard@codesourcery.com>
2074
2075 Revert:
2076
2077 2007-06-27 Richard Sandiford <richard@codesourcery.com>
2078
2079 * dce.c (deletable_insn_p_1): New function, split out from...
2080 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
2081 specially, not those inside PARALLELs. Remove BODY argument
2082 and adjust recursive call accordingly.
2083 (prescan_insns_for_dce): Update call to delete_insn_p.
2084
2085 2007-06-30 Rask Ingemann Lambertsen <rask@sygehus.dk>
2086
2087 * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
2088 (try_combine): Move potential calls to undo_all() so they happen
2089 before we commit to using the combined insns.
2090
2091 2006-06-30 Jan Hubicka <jh@suse.cz>
2092
2093 * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
2094 code.
2095
2096 2006-06-30 Thomas Neumann <tneumann@users.sourceforge.net>
2097
2098 * ipa.c (cgraph_postorder): Cast according to the coding conventions.
2099 (cgraph_remove_unreachable_nodes): Likewise.
2100 * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
2101 * ipa-inline.c (update_caller_keys): Cast according to the coding
2102 conventions.
2103 (cgraph_decide_recursive_inlining): Likewise.
2104 (cgraph_decide_inlining_of_small_function): Likewise.
2105 (try_inline): Likewise.
2106 (cgraph_decide_inlining_incrementally): Likewise.
2107 * ipa-pure-const.c (get_function_state): Likewise.
2108 (scan_function): Likewise.
2109 (analyze_function): Likewise.
2110 (static_execute): Likewise.
2111 * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
2112 (merge_callee_local_info): Likewise.
2113 (analyze_function): Use type safe memory macros.
2114 (static_execute): Likewise. Cast according to the coding conventions.
2115 * ipa-type-escape.c (scan_for_regs): Cast according to the coding
2116 conventions.
2117 * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
2118 names.
2119 (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
2120 * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
2121 variable names.
2122
2123 2007-06-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
2124
2125 PR middle-end/30024
2126 * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
2127 for complex modes (both int and real).
2128
2129 2007-06-29 Jan Hubicka <jh@suse.cz>
2130
2131 * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
2132
2133 2007-06-29 Jan Hubicka <jh@suse.cz>
2134
2135 PR middle-end/32372
2136 * cse.c (cse_insn): Avoid invalid sharing in between register note and
2137 the insn pattern.
2138
2139 2007-06-29 Anatoly Sokolov <aesok@post.ru>
2140
2141 PR target/32335
2142 * config/avr/avr.c: Include dataflow header file.
2143 (expand_prologue): Adjust for prologue insn change.
2144 * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
2145 inside a insn.
2146
2147 2007-06-29 Richard Guenther <rguenther@suse.de>
2148
2149 PR middle-end/32493
2150 * gimplify.c (gimplify_call_expr): Ignore variable argument parts
2151 during type verification.
2152
2153 2007-06-29 Jan Hubicka <jh@suse.cz>
2154
2155 * recog.c (validate_change_rtx_1): Unshare TO argument.
2156
2157 2007-06-29 Uros Bizjak <ubizjak@gmail.com>
2158
2159 PR tree-optimization/24659
2160 * tree-vect-transform.c (vectorizable_call): Handle
2161 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
2162
2163 * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
2164 * config/i386/i386.c (enum ix86_builtins)
2165 [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
2166 (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
2167 description.
2168 (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
2169 const using def_builtin_const.
2170 (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
2171 input operands in the same modes as the result.
2172 (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
2173
2174 2007-06-29 Richard Sandiford <rsandifo@nildram.co.uk>
2175
2176 * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
2177 (df_set_dead_notes_for_mw): Likewise.
2178
2179 2007-06-29 Eric Botcazou <ebotcazou@adacore.com>
2180
2181 * c-common.c (pointer_int_sum): Do the negation in sizetype.
2182
2183 2007-06-28 DJ Delorie <dj@redhat.com>
2184
2185 * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
2186
2187 2007-06-28 Geoffrey Keating <geoffk@apple.com>
2188
2189 * doc/invoke.texi (C++ Dialect Options): Document
2190 fvisibility-ms-compat.
2191 * c.opt (fvisibility-ms-compat): New.
2192
2193 2007-06-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
2194
2195 PR tree-opt/32417
2196 * tree-affine.c (aff_combination_add_elt): Handle
2197 pointer addition specially.
2198
2199 2007-06-28 Jakub Jelinek <jakub@redhat.com>
2200
2201 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
2202 decl is non-external for AIX ABI.
2203
2204 2007-06-28 David Edelsohn <edelsohn@gnu.org>
2205
2206 * config/rs6000/predicates.md (current_file_function_operand):
2207 Ensure the symbol is non-external for AIX ABI.
2208
2209 2007-06-28 Nick Clifton <nickc@redhat.com>
2210
2211 * common.opt (fipa-matrix-reorg): Add Optimization attribute.
2212 (fdce, fdse, fpredictive-commoning): Likewise.
2213
2214 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2215
2216 PR other/31400
2217 * gcc.c (process_command): Recognize the new -static-libgfortran
2218 option.
2219
2220 2007-06-27 Rask Ingemann Lambertsen <rask@sygehus.dk>
2221
2222 PR target/32418
2223 * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
2224 Use a call clobbered hard reg instead of a pseudo reg.
2225
2226 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
2227
2228 * config/sh/sh.md (load_gbr): Use correct operand constraint.
2229
2230 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
2231
2232 PR target/32479
2233 * config/sh/sh.md (udivsi3): Don't wrap the sequence with
2234 REG_LIBCALL and REG_RETVAL notes.
2235 (divsi3, mulsi3): Likewise.
2236 (mulhisi3): Likewise. Use emit_libcall_block.
2237 (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
2238
2239 2007-06-27 Seongbae Park <seongbae.park@gmail.com>
2240
2241 PR rtl-optimization/32481
2242 * combine.c (adjust_for_new_dest): Rescan the changed insn.
2243
2244 2007-06-27 Richard Sandiford <richard@codesourcery.com>
2245
2246 * dce.c (deletable_insn_p_1): New function, split out from...
2247 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
2248 specially, not those inside PARALLELs. Remove BODY argument
2249 and adjust recursive call accordingly.
2250 (prescan_insns_for_dce): Update call to delete_insn_p.
2251
2252 2007-06-27 Richard Guenther <rguenther@suse.de>
2253
2254 PR middle-end/32492
2255 * tree.h (fold_convertible_p): Declare.
2256 * fold-const.c (fold_convertible_p): New function.
2257 * gimplify.c (gimplify_call_expr): Use fold_convertible_p
2258 instead of lang_hooks.types_compatible_p.
2259
2260 2007-06-26 Jan Hubicka <jh@suse.cz>
2261
2262 * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
2263 * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
2264 early use validate_unshare_change.
2265 (reload_combine): Likewise.
2266 * recog.c (change_t): New field unshare.
2267 (validate_change_1): Rename from validate_change; add argument unshare.
2268 (validate_change): Turn into wrapper of validate_change_1; update
2269 prototype for bools.
2270 (validate_unshare_change): New.
2271 (confirm_change_group): Unshare changes if asked for; avoid unnecesary
2272 calls of df_insn_rescan.
2273 * recog.h (validate_change): Replace ints by bools.
2274 (validate_unshare_change): Declare.
2275
2276 2007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
2277
2278 * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
2279
2280 2007-06-26 Steve Ellcey <sje@cup.hp.com>
2281
2282 * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
2283
2284 2007-06-25 Jan Hubicka <jh@suse.cz>
2285
2286 * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
2287 uninlinable call.
2288 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
2289 cgraph_decide_inlining_incrementally): Move uninlinability checks to
2290 places other call site specific checks are performed.
2291
2292 2007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
2293
2294 PR tree-opt/32421
2295 * tree-vect-transform.c (vectorizable_operation): Convert
2296 POINTER_PLUS_EXPR over to PLUS_EXPR.
2297
2298 2007-06-25 Chao-ying Fu <fu@mips.com>
2299
2300 * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
2301 UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
2302 Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
2303 Document GET_MODE_IBIT, and GET_MODE_FBIT.
2304
2305 * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
2306 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2307 (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
2308 SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
2309 SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
2310 ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
2311 ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
2312 SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
2313 ALL_FIXED_POINT_MODE_P): New define.
2314 (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
2315 MODE_UACCUM.
2316 (GET_MODE_IBIT, GET_MODE_FBIT): New define.
2317
2318 * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
2319 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
2320 MODE_VECTOR_UACCUM): New mode classes.
2321
2322 * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
2323 UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
2324 Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
2325 USA, UDA, and UTA.
2326
2327 * genmodes.c (struct mode_data): Add ibit and fbit fields.
2328 (blank_mode): Initialize ibit and fbit.
2329 (adj_ibit, adj_fbit): New to adjust ibit and fbit.
2330 (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
2331 MODE_UACCUM.
2332 (new_adjust): Change required_class to required_class_from and
2333 required_class_to for testing within a range.
2334 (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
2335 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
2336 MODE_VECTOR_UACCUM.
2337 (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
2338 (make_fixed_point_mode): New.
2339 (_ADD_ADJUST): Change C to C1 and C2.
2340 (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
2341 use a range for machine classes.
2342 (ADJUST_IBIT, ADJUST_FBIT): New.
2343 (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
2344 CONST_MODE_FBIT.
2345 (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
2346 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
2347 Emit adjustment for ibit and fbit.
2348 (emit_mode_ibit, emit_mode_fbit): New.
2349 (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
2350
2351 2007-06-25 Nathan Froyd <froydnj@codesourcery.com>
2352
2353 * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
2354 as the source of the set.
2355
2356 2007-06-25 Roman Zippel <zippel@linux-m68k.org>
2357
2358 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
2359 FP_REGNO_P): Use IN_RANGE.
2360 (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
2361 (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
2362 (DATA_REG_P): Use DATA_REGNO_P.
2363 (FP_REG_P): Use FP_REGNO_P.
2364 (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
2365 * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
2366 REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
2367
2368 2007-06-24 Jan Hubicka <jh@suse.cz>
2369
2370 PR middle-end/30563
2371 * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
2372
2373 2007-06-24 Sebastian Pop <sebpop@gmail.com>
2374
2375 PR middle-end/32461
2376 * fold-const.c (fold_binary): Strip nops of operand 0
2377 of BIT_NOT_EXPR before calling operand_equal_p.
2378 * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
2379 * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
2380
2381 2007-06-23 Mark Mitchell <mark@codesourcery.com>
2382
2383 * doc/extend.texi: Document that dllimport and dllexport imply
2384 default visibility.
2385 * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
2386 imported or exported declaration, including type declarations.
2387 * c-common.c (handle_visibility_attribute): Check for conflicts
2388 with dllimport/dllexport.
2389 (c_determine_visibility): Handle dllimport/dllexport as an
2390 explicit visibility atttribute.
2391
2392 2007-06-23 Richard Guenther <rguenther@suse.de>
2393
2394 PR tree-optimization/16876
2395 PR middle-end/29478
2396 * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
2397 for CALL_EXPRs.
2398 * tree-inline.c (initialize_inlined_parameters): Do not call
2399 lang_hooks.tree_inlining.convert_parm_for_inlining.
2400 * cgraphbuild.c (initialize_inline_failed): Set inline failed
2401 reason for mismatched types.
2402 * gimplify.c (gimplify_call_expr): Verify the call expression
2403 arguments match the called function type signature. Otherwise
2404 mark the call expression to be not considered for inlining
2405 using CALL_CANNOT_INLINE_P flag.
2406 * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
2407 edges call expression.
2408 (cgraph_decide_inlining_of_small_function): Likewise.
2409 (cgraph_decide_inlining): Likewise.
2410 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
2411 Remove define.
2412 * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
2413 * c-typeck.c (c_convert_parm_for_inlining): Remove.
2414 * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
2415 Remove declaration.
2416 (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
2417 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
2418 Remove.
2419 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
2420 convert_parm_for_inlining member.
2421
2422 2007-06-23 Richard Earnshaw <rearnsha@arm.com>
2423
2424 PR target/31152
2425 * arm.md (negscc): Match the correct operand for optimized LT0 test.
2426 Remove optimization for GT.
2427
2428 2007-06-23 Kenneth Zadeck <zadeck@naturalbridge.com>
2429
2430 PR middle-end/32437
2431 * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
2432 is a PARALLEL.
2433 (prescan_insns_for_dce): Add extra parameter.
2434
2435 2007-06-23 Jan Hubicka <jh@suse.cz>
2436
2437 PR middle-end/31541
2438 * gimplify.c (mark_addressable): New function.
2439 (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
2440
2441 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
2442
2443 PR middle-end/32374
2444 * expr.c (store_constructor): Do not clobber non-zeroed memory.
2445
2446 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
2447
2448 PR target/32413
2449 * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
2450 moves between MMX/SSE registers to at least 8 units to prevent
2451 ICE caused by non-tieable SI/HI/QImodes in SSE registers.
2452
2453 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
2454
2455 * config/i386/i386.c (override_options): Correct x86_sahf
2456 setting condition.
2457
2458 2007-06-21 David Daney <ddaney@avtrex.com>
2459
2460 PR target/32406
2461 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
2462 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
2463 (exception_receiver): Renamed to ...
2464 (nonlocal_goto_receiver): ... this.
2465
2466 2007-06-22 Roman Zippel <zippel@linux-m68k.org>
2467
2468 * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
2469 (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
2470 partial register accesses.
2471
2472 2007-06-21 Adam Nemet <anemet@caviumnetworks.com>
2473
2474 * fold-const.c (debug_fold_checksum): Move it under
2475 ENABLE_FOLD_CHECKING.
2476
2477 2007-06-21 Sebastian Pop <sebpop@gmail.com>
2478
2479 PR middle-end/20623
2480 * tree.h (debug_fold_checksum): Declared.
2481 * fold-const.c (build_fold_addr_expr_with_type_1): New.
2482 (build_fold_addr_expr_with_type, build_fold_addr_expr): Use
2483 build_fold_addr_expr_with_type_1.
2484 (fold_addr_expr, debug_fold_checksum): New.
2485 (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
2486 (fold_unary, fold_comparison, split_address_to_core_and_offset):
2487 Use fold_addr_expr.
2488
2489 2007-06-21 Sebastian Pop <sebpop@gmail.com>
2490
2491 PR tree-optimization/19590
2492 * tree-vrp.c (adjust_range_with_scev): Set the range when the result
2493 of scev is a constant.
2494 * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
2495
2496 2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
2497
2498 * df-problems.c (df_note_bb_compute): Made computation of live
2499 info consistent with df_lr.
2500
2501 2007-06-21 Richard Guenther <rguenther@suse.de>
2502
2503 PR tree-optimization/32453
2504 * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
2505 for pointer anti-range.
2506
2507 2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
2508
2509 * config/i386/i386.c (processor_target_table): Increase maximum
2510 skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
2511 default 64bit.
2512
2513 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
2514 byte alignment if > 8 byte alignment is preferred.
2515 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2516
2517 2007-06-21 Jakub Jelinek <jakub@redhat.com>
2518
2519 PR tree-optimization/31866
2520 * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
2521 if ASM_EXPR's input is not a SSA_NAME.
2522
2523 PR middle-end/32362
2524 * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
2525 but decl is a global var, instead return decl.
2526 * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
2527 even for is_global_var decls, if they are private in some outer
2528 context.
2529
2530 2007-06-21 Richard Guenther <rguenther@suse.de>
2531
2532 PR tree-optimization/32451
2533 * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
2534
2535 2007-06-21 Christian Bruel <christian.bruel@st.com>
2536
2537 * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
2538 * config/sh/sh.c (sh_loads_bankedreg_p): New function.
2539 (push_regs): Changed saving order or banked registers.
2540 (sh_expand_epilogue): Likewise.
2541 * config/sh/sh.h (BANKED_REGISTER_P): New macro.
2542 (FIRST_BANKED_REG): Likewise.
2543 (LAST_BANKED_REG): Likewise.
2544 * config/sh/sh.md (banked) New attribute.
2545 (in_delay_slot): Check banked attribute.
2546
2547 2007-06-20 Sebastian Pop <sebpop@gmail.com>
2548
2549 PR tree-optimization/32075
2550 * tree-data-ref.c (subscript_dependence_tester_1,
2551 analyze_miv_subscript, analyze_overlapping_iterations,
2552 add_distance_for_zero_overlaps, build_classic_dist_vector,
2553 subscript_dependence_tester_1, analyze_overlapping_iterations,
2554 subscript_dependence_tester, access_functions_are_affine_or_constant_p,
2555 compute_affine_dependence, compute_all_dependences): Pass loop_nest
2556 to evolution_function_is_affine_multivariate_p.
2557
2558 2007-06-20 Eric Botcazou <ebotcazou@libertysurf.fr>
2559
2560 * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
2561
2562 2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
2563
2564 PR target/32335
2565 * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
2566 for TARGET_A16.
2567 * config/m32c/prologue.md (epilogue_exitd_16): New.
2568 (epilogue_reit_16): New.
2569 (epilogue_exitd): Rename to epilogue_exitd_24.
2570 (epilogue_reit): Rename to epilogue_reit_24.
2571
2572 2007-06-20 Seongbae Park <seongbae.park@gmail.com>
2573 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2574
2575 * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
2576 New counters.
2577 * haifa-sched.c (queue_to_ready): Don't requeue next insn
2578 if dbg_cnt (sched_insn) reaches the limit.
2579 (choose_ready): New parameter INSN_PTR and new return value.
2580 (schedule_block): Handle dbg_cnt (sched_insn). Handle
2581 the new return value from choose_ready.
2582 * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
2583 (rest_of_handle_global_alloc): New global_alloc_at_func.
2584
2585 2007-06-20 Adam Nemet <anemet@caviumnetworks.com>
2586
2587 PR tree-optimization/25737
2588 * tree.h (struct tree_struct_field_tag): Add new field alias_set.
2589 (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
2590 * tree-flow.h (struct fieldoff): Add new field alias_set.
2591 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
2592 argument addressable_type. Set alias_set of fieldoff.
2593 * tree-ssa-alias.c (create_sft): Add new argument alias_set.
2594 (create_overlap_variables_for): Pass alias_set from fieldoff to
2595 create_sft.
2596 * alias.c (get_alias_set): Use alias_set from SFT if set.
2597
2598 2007-06-20 Hui-May Chang <hm.chang@apple.com>
2599
2600 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
2601 of a variable as an unsigned HOST_WIDE_INT integer.
2602
2603 2007-06-20 Zdenek Dvorak <dvorakz@suse.cz>
2604
2605 PR rtl-optimization/32405
2606 * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
2607
2608 2007-06-20 Jakub Jelinek <jakub@redhat.com>
2609
2610 * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
2611
2612 PR middle-end/31959
2613 * builtins.c: Include diagnostic.h.
2614 (expand_builtin_expect): Make gcc_assert more permissive.
2615 * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
2616
2617 PR inline-asm/32109
2618 * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
2619 and !allows_mem.
2620
2621 PR middle-end/32285
2622 * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
2623 if ACCUMULATE_OUTGOING_ARGS.
2624
2625 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
2626
2627 * config/m68hc11/m68hc11.c: Include dataflow header file.
2628 (m68hc11_reorg): Port to dataflow.
2629
2630 2007-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2631
2632 * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
2633 (struct df_problem.free_blocks_on_set_blocks): New field.
2634 (struct dataflow.optional_p): New field.
2635 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
2636 (df_live_set_all_dirty): New function.
2637 * df-scan.c (df_scan_alloc): Initialize optional_p.
2638 (problem_SCAN): Initialize free_blocks_on_set_blocks.
2639 * df-core.c (df_set_blocks): Removed use of
2640 DF_FIRST_OPTIONAL_PROBLEM. Now uses
2641 df_problem.free_blocks_on_set_blocks to determine which blocks are
2642 recycled.
2643 (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
2644 (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now
2645 uses dataflow.optional_p to determine if problem should be
2646 deleted.
2647 (rest_of_handle_df_initialize): Only start live problem if
2648 -02 or above.
2649 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
2650 * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
2651 df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
2652 (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
2653 problem_NOTE): Initialize free_blocks_on_set_blocks.
2654 (df_lr_bb_local_compute): Recompute luids if df_live problem is
2655 not active.
2656 (df_live_set_all_dirty, df_note_alloc): New function.
2657 * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
2658 df_get_live_*.
2659 * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
2660 * postreload.c (reload_combine): Ditto.
2661 * cse.c (cse_extended_basic_block): Ditto.
2662 * regmove.c (mark_flags_life_zones): Ditto.
2663 * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
2664 erase_matching_seqs): Ditto.
2665 * bt-load.c (compute_defs_uses_and_gen): Ditto.
2666 * integrate (allocate_initial_values): Ditto.
2667 * combine.c (reg_dead_at_p): Ditto.
2668 * resource.c (mark_target_live_regs): Ditto.
2669 * sched-rgn.c (check_live_1, update_live_1): Ditto.
2670 * config/sh/sh.c (find_r0_life_regions): Ditto.
2671 * global.c (rest_of_handle_global_alloc): Only add back df_live
2672 for -O > 1.
2673 * local-alloc.c (rest_of_handle_local_alloc): Only remove
2674 df_live for -O > 1.
2675 * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
2676 df_get_live_*.
2677 (if_convert): Make sure df_live is there at -O == 1.
2678 (pass_if_after_combine): Cleanup flags.
2679 * init-regs.c (initialize_uninitialized_regs): Make sure df_live
2680 is there at -O == 1.
2681
2682 2007-06-19 Seongbae Park <seongbae.park@gmail.com>
2683
2684 * config/arm/arm.c (arm_get_frame_offsets): Set
2685 offsets->locals_base to avoid negative stack size.
2686 (thumb1_expand_prologue): Assert on negative stack size.
2687
2688 2007-04-19 Sebastian Pop <sebpop@gmail.com>
2689
2690 PR tree-optimization/32367
2691 * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
2692 of the chrec has no evolution in that loop.
2693 * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
2694
2695 2007-06-19 Bob Wilson <bob.wilson@acm.org>
2696
2697 * config/xtensa/xtensa.c: Include "df.h".
2698 (xtensa_builtin_saveregs): Use adjust_address instead of
2699 change_address.
2700 (xtensa_va_start): Invoke make_tree with sizetype for
2701 expand_builtin_saveregs and then convert the result to a pointer.
2702 Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
2703 (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
2704 Subtract argument size from index value as integers and then use
2705 POINTER_PLUS_EXPR to add the result to the array address.
2706
2707 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
2708
2709 PR target/32335
2710 * config/m32c/m32c.c: Include dataflow header file.
2711 (m32c_emit_prologue): Adjust for prologue insn change.
2712 * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
2713 once inside a PARALLEL. Assume frame size passed in operand 0
2714 includes space to save the fb register.
2715 (prologue_enter_24): Likewise.
2716 (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
2717
2718 2007-06-19 David Daney <ddaney@avtrex.com
2719
2720 PR target/32313
2721 * config/mips/mips.md (cprestore): Mark $gp as used.
2722
2723 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
2724
2725 PR target/32369
2726 * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
2727 (frv_ifcvt_modify_insn): Likewise.
2728
2729 2007-06-19 Richard Guenther <rguenther@suse.de>
2730
2731 * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
2732 only handle positive offsets that fit in a HOST_WIDE_INT.
2733
2734 2007-06-19 Uros Bizjak <ubizjak@gmail.com>
2735
2736 * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
2737 result of rsqrt insn for zero input argument to avoid NaN.
2738
2739 2007-06-19 Richard Guenther <rguenther@suse.de>
2740
2741 PR middle-end/31950
2742 * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
2743
2744 2007-06-19 Jakub Jelinek <jakub@redhat.com>
2745
2746 PR tree-optimization/32353
2747 * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
2748
2749 2007-06-19 Nick Clifton <nickc@redhat.com>
2750
2751 * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
2752
2753 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
2754
2755 PR target/32389
2756 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
2757 * config/i386/i386.c (assign_386_stack_local): Assert that
2758 SLOT_VIRTUAL is valid only before virtual regs are instantiated.
2759 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
2760 Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
2761 * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
2762
2763 2007-06-18 Steve Ellcey <sje@cup.hp.com>
2764
2765 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
2766
2767 2007-06-18 Seongbae Park <seongbae.park@gmail.com>
2768
2769 PR rtl-optimization/32321
2770 * gcse.c (replace_store_insn): Update the note before
2771 calling emit_insn_after.
2772
2773 2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
2774
2775 PR middle-end/32355
2776 * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
2777 cse_main.
2778 * df-problems.c (df_note_bb_compute): Fix dumping info.
2779
2780 2007-06-18 Kazu Hirata <kazu@codesourcery.com>
2781
2782 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
2783 insn with emit_jump_insn.
2784
2785 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
2786
2787 PR tree-optimization/32383
2788 * targhooks.c (default_builtin_reciprocal): Add new bool argument.
2789 * targhooks.h (default_builtin_reciprocal): Update prototype.
2790 * target.h (struct gcc_target): Update builtin_reciprocal.
2791 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
2792 * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
2793 where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
2794 when fndecl is in BUILT_IN_MD class.
2795 (execute_convert_to_rsqrt): Ditto.
2796
2797 * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
2798 argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
2799 Convert BUILT_IN_SQRTF code only when md_fn is false.
2800
2801 2007-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
2802
2803 * bt-load.c (move_btr_def): Fix the order of arguments
2804 to validate_replace_rtx.
2805
2806 2007-06-18 Nathan Sidwell <nathan@codesourcery.com>
2807
2808 * config/m68k/m68k-devices.def: Add 54450..54455.
2809
2810 2007-06-17 Uros Bizjak <ubizjak@gmail.com>
2811
2812 PR rtl-optimization/32366
2813 * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
2814 FLOAT_EXTEND]: Prevent non-scalar modes from entering
2815 significand_size.
2816
2817 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
2818
2819 PR middle-end/32349
2820 * modulo-sched (generate_reg_moves): Added rescan parameter and if
2821 this is true, rescan insn being modified.
2822 (sms_schedule): Added rescan parameter.
2823 (rest_of_handle_sms): Moved freeing of dominance info to before
2824 getting out of cfg_layout.
2825
2826 2007-06-17 Nathan Sidwell <nathan@codesourcery.com>
2827
2828 * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
2829 * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
2830 appropriate.
2831
2832 * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
2833 FL_CF_EMAC from the entry for isac.
2834
2835 * config/m68k/predicates.md (const_call_operand): Adjust comment.
2836 (const_sibcall_operand): New.
2837 (sibcall_operand): Use it.
2838 * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
2839 (m68k_isas): ISAC does not imply FPU or EMAC.
2840 (override_options): Add ISA_C logic for symbolic jump & call.
2841
2842 2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
2843
2844 * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
2845 return mode from the builtin itself.
2846 (sparc_fold_builtin): Fix cast of zero constant.
2847
2848 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
2849
2850 * targhooks.c (default_builtin_reciprocal): New default target hook.
2851 * targhooks.h (default_builtin_reciprocal): Add prototype.
2852 * hooks.c (hook_tree_tree_bool_null): Remove hook.
2853 * hooks.h (hook_tree_tree_bool_null): Remove prototype.
2854 * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
2855 default_builtin_reciprocal.
2856
2857 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
2858
2859 PR middle-end/31723
2860 * hooks.c (hook_tree_tree_bool_null): New hook.
2861 * hooks.h (hook_tree_tree_bool_null): Add prototype.
2862 * tree-pass.h (pass_convert_to_rsqrt): Declare.
2863 * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
2864 * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
2865 and convert it to reciprocal a*rfunc(b).
2866 (execute_convert_to_rsqrt): New function.
2867 (gate_convert_to_rsqrt): New function.
2868 (pass_convert_to_rsqrt): New pass definition.
2869 * target.h (struct gcc_target): Add builtin_reciprocal.
2870 * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
2871 (TARGET_INITIALIZER): Initialize builtin_reciprocal with
2872 TARGET_BUILTIN_RECIPROCAL.
2873 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
2874
2875 * config/i386/i386.h (TARGET_RECIP): New define.
2876 * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
2877 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2878 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2879 and not optimizing for size.
2880 (*rcpsf2_sse): New insn pattern.
2881 (*rsqrtsf2_sse): Ditto.
2882 (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
2883 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2884 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2885 and not optimizing for size.
2886 (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
2887 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2888 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2889 and not optimizing for size.
2890 * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
2891 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2892 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2893 and not optimizing for size.
2894 (*sse_rsqrtv4sf2): Do not export.
2895 (sqrtv4sf2): Ditto.
2896 (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
2897 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
2898 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
2899 and not optimizing for size.
2900 (sqrtv4sf2): Ditto.
2901 * config/i386/i386.opt (mrecip): New option.
2902 * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
2903 (ix86_emit_swsqrtsf): Ditto.
2904 * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
2905 (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
2906 builtin definition.
2907 (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
2908 ix86_expand_unop1_builtin.
2909 (ix86_emit_swdivsf): New function.
2910 (ix86_emit_swsqrtsf): Ditto.
2911 (ix86_builtin_reciprocal): New function.
2912 (TARGET_BUILTIN_RECIPROCAL): Use it.
2913 (ix86_vectorize_builtin_conversion): Rename from
2914 ix86_builtin_conversion.
2915 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
2916 * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
2917 "i386 and x86_64 Options" section.
2918 (Intel 386 and AMD x86_64 Options): Document -mrecip.
2919
2920 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
2921 Zdenek Dvorak <dvorakz@suse.cz>
2922 Richard Guenther <rguenther@suse.de>
2923 Kaz Kojima <kkojima@gcc.gnu.org>
2924
2925 * tree-vrp.c (compare_values_warnv): Convert val2 to
2926 the type of val1.
2927 (extract_range_from_assert): Create
2928 POINTER_PLUS_EXPR for pointer types.
2929 (extract_range_from_binary_expr): Handle
2930 only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
2931 for pointer types.
2932 * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
2933 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
2934 POINTER_PLUS_EXPR as PLUS_EXPR.
2935 (number_of_iterations_lt_to_ne):
2936 For pointer types, use sizetype when
2937 creating MINUS_EXPR/PLUS_EXPRs.
2938 (assert_loop_rolls_lt): For pointer types, use sizetype when
2939 creating MINUS_EXPR/PLUS_EXPRs.
2940 (number_of_iterations_le): Likewise.
2941 (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
2942 (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
2943 like PLUS_EXPR and MINUS_EXPR.
2944 * tree-pretty-print.c (dump_generic_node): Handle
2945 POINTER_PLUS_EXPR.
2946 (op_prio): Likewise.
2947 (op_symbol_1): Likewise.
2948 * optabs.c (optab_for_tree_code): Likewise.
2949 * tree-ssa-loop-manip.c (create_iv): Handle pointer base
2950 specially.
2951 * tree-tailcall.c (process_assignment): Mention
2952 POINTER_PLUS_EXPR in a TODO comment.
2953 * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
2954 MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
2955 not used with a pointer and an integer type.
2956 * tree-scalar-evolution.c (add_to_evolution_1): Convert the
2957 increment using chrec_convert_rhs instead of chrec_convert.
2958 (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
2959 PLUS_EXPR except for the right hand side's type will be
2960 sizetype.
2961 (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
2962 (fold_used_pointer_cast): Kill.
2963 (pointer_offset_p): Kill.
2964 (fold_used_pointer): Kill.
2965 (pointer_used_p): Kill.
2966 (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
2967 call fold_used_pointer.
2968 (instantiate_parameters_1): Convert the increment
2969 using chrec_convert_rhs instead of chrec_convert.
2970 Handle POINTER_PLUS_EXPR as PLUS_EXPR.
2971 * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
2972 instead of PLUS_EXPR.
2973 (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
2974 PLUS_EXPR for pointers.
2975 (std_gimplify_va_arg_expr): Likewise.
2976 (fold_builtin_memory_op): Likewise.
2977 (fold_builtin_strstr): Likewise.
2978 (fold_builtin_strchr): Likewise.
2979 (fold_builtin_strrchr): Likewise.
2980 (fold_builtin_strpbrk): Likewise.
2981 (expand_builtin_memory_chk): Likewise.
2982 (fold_builtin_memory_chk): Likewise.
2983 (std_expand_builtin_va_start): Use
2984 sizetype for the call to make_tree and then convert
2985 to the pointer type.
2986 (fold_builtin_memchr): Use POINTER_PLUS_EXPR
2987 instead of PLUS_EXPR for adding to a pointer.
2988 (std_gimplify_va_arg_expr): Use fold_build2 for
2989 the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
2990 the operands to sizetype first and then cast the BIT_AND_EXPR
2991 back to the pointer type.
2992 * fold-const.c (build_range_check): Handle pointer types
2993 specially.
2994 (extract_array_ref): Look for POINTER_PLUS_EXPR instead
2995 of PLUS_EXPR's. Make sure the offset is converted to
2996 sizetype.
2997 (try_move_mult_to_index): Strip the NOPs from the offset.
2998 Remove code argument and replace all uses with PLUS_EXPR.
2999 (fold_to_nonsharp_ineq_using_bound): Handle pointer types
3000 specially. Don't use a pointer type for MINUS_EXPR.
3001 (fold_unary): Handle for (T1)(X op Y),
3002 only p+ as that is the only as that can be handled for
3003 binary operators now.
3004 (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
3005 POINTER_PLUS_EXPR.
3006 <case PLUS_EXPR>: Add folding of PTR+INT into
3007 PTR p+ INT.
3008 Don't call try_move_mult_to_index.
3009 <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
3010 into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
3011 (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
3012 Don't call try_move_mult_to_index.
3013 (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
3014 (tree_expr_nonzero_p): Likewise.
3015 (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
3016 of PLUS_EXPR for the complex expression folding.
3017 * tree-chrec.c (chrec_fold_plus_poly_poly): If the
3018 first chrec is a pointer type, then the second should
3019 be sizetype and not the first's type.
3020 For POINTER_PLUS_EXPR, use a different right hand side type.
3021 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
3022 (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
3023 different right hand side type.
3024 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
3025 (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
3026 instead of PLUS_EXPR.
3027 When either operand is zero, convert the other operand.
3028 (chrec_apply): Use chrec_convert_rhs
3029 on the argument x instead of chrec_convert.
3030 (reset_evolution_in_loop): For pointer types, the new_evol
3031 should be sizetype.
3032 (convert_affine_scev): For POINTER_PLUS_EXPR, use a
3033 different right hand side type.
3034 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
3035 (chrec_convert_rhs): New function.
3036 (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
3037 different right hand side type.
3038 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
3039 * tree-chrec.h (chrec_convert_rhs): New prototype.
3040 (build_polynomial_chrec): For pointer types, the right hand
3041 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
3042 POINTER_PLUS_EXPR instead of PLUS_EXPR's.
3043 Remove subtraction case as it is always addition now.
3044 Make sure the offset is converted to sizetype.
3045 (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
3046 Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
3047 * tree-ssa-loop-ivopts.c (determine_base_object): Abort for
3048 PLUS_EXPR in pointer type.
3049 Handle POINTER_PLUS_EXPR.
3050 (tree_to_aff_combination): Likewise.
3051 (force_expr_to_var_cost): Likewise.
3052 (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
3053 instead of PLUS_EXPR for pointers.
3054 * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
3055 instead of PLUS_EXPR of pointer types.
3056 * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
3057 as PLUS_EXPR.
3058 (check_va_list_escapes): Likewise.
3059 (check_all_va_list_escapes): Likewise.
3060 * dwarf2out.c (loc_descriptor_from_tree_1):
3061 Handle POINT_PLUS_EXPR as a PLUS_EXPR.
3062 * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
3063 (string_constant): Likewise.
3064 * tree-ssa-address.c (tree_mem_ref_addr): When adding
3065 the offset to the base, use POINTER_PLUS_EXPR.
3066 (add_to_parts): Convert the index to sizetype.
3067 (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
3068 * matrix-reorg.c (collect_data_for_malloc_call): Stmt
3069 will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
3070 Offset only holds something for PLUS_EXPR.
3071 (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
3072 a PLUS_EXPR.
3073 (analyze_transpose): POINTER_PLUS_EXPR will only show up now
3074 and not PLUS_EXPR.
3075 (analyze_accesses_for_modify_stmt): Likewise.
3076 Remove comment about the type being integral type as it is
3077 wrong now.
3078 (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
3079 PLUS_EXPR.
3080 (transform_access_sites): POINTER_PLUS_EXPR will only show up now
3081 and not PLUS_EXPR.
3082 Correct the type which the artimentic is done in (is now
3083 sizetype).
3084 Reindent one loop.
3085 * tree-data-ref.c (split_constant_offset): Handle
3086 POINTER_PLUS_EXPR
3087 * tree-affine.c (tree_to_aff_combination): Likewise.
3088 * c-typeck.c (build_unary_op): For pointers create the increment
3089 as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
3090 for pointers.
3091 * gimplify.c (gimplify_self_mod_expr): Create a
3092 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
3093 (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
3094 * tree.def (POINTER_PLUS_EXPR): New tree code.
3095 * tree-predcom.c (ref_at_iteration): If we have a pointer
3096 type do the multiplication in sizetype.
3097 * tree-mudflap.c (mf_xform_derefs_1): Create a
3098 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
3099 * tree-ssa-forwprop.c
3100 (forward_propagate_addr_into_variable_array_index):
3101 Don't expect there to be a cast for the index as that
3102 does not exist anymore.
3103 (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
3104 instead of PLUS_EXPR.
3105 Don't check for the first operand of the POINTER_PLUS_EXPR
3106 was the index as it cannot be.
3107 Call forward_propagate_addr_into_variable_array_index with
3108 the SSA_NAME instead of the statement.
3109 * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
3110 (compare_constant): Likewise.
3111 (copy_constant): Likewise.
3112 (compute_reloc_for_constant): Likewise.
3113 (output_addressed_constants): Likewise.
3114 (initializer_constant_valid_p): Likewise.
3115 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
3116 Convert the MIN/MAX of the inner type to the outer
3117 type before comparing them.
3118 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
3119 POINTER_PLUS_EXPR instead of PLUS_EXPR.
3120 (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
3121 of PLUS_EXPR for pointers.
3122 * tree-inline.c (estimate_num_insns_1): Handle
3123 POINTER_PLUS_EXPR.
3124 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
3125 Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
3126 (bump_vector_ptr): Create a POINTER_PLUS_EXPR
3127 instead of PLUS_EXPR for the pointer increment statement.
3128 (vect_update_ivs_after_vectorizer): For pointer types, create
3129 POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
3130 MULT_EXPR in sizetype.
3131 (vect_gen_niters_for_prolog_loop): Add a cast when creating
3132 byte_misalign.
3133 * tree-object-size.c (plus_expr_object_size): Handle
3134 POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
3135 code which is trying to figure out which side is a pointer and
3136 is the index.
3137 (check_for_plus_in_loops_1): Likewise.
3138 (check_for_plus_in_loops): Likewise.
3139 * c-common.c (pointer_int_sum): Create a
3140 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
3141 * tree-ssa-structalias.c (handle_ptr_arith): Handle
3142 only POINTER_PLUS_EXPR. Removing all the extra
3143 code which is trying to figure out which side is a pointer and
3144 is the index.
3145 * tree-cfg.c (verify_expr): Add extra checking for pointers and
3146 PLUS_EXPR and MINUS_EXPR.
3147 Also add checking to make sure the operands of POINTER_PLUS_EXPR
3148 are correct.
3149 * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
3150 with make_tree, instead of a pointer type.
3151 * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
3152 for pointers instead of PLUS_EXPR.
3153 (s390_gimplify_va_arg): Likewise.
3154 * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
3155 instead of PLUS_EXPR when doing addition on pointer
3156 types. Use sizetype for the second operand.
3157 (spu_gimplify_va_arg_expr): Likewise.
3158 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use
3159 POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
3160 a pointer. Don't create a BIT_AND_EXPR for pointer types.
3161 * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
3162 for the pointer addition and also use size_int/sizetype
3163 for the offset.
3164 (ix86_gimplify_va_arg): Likewise.
3165 Perform BIT_AND_EXPR on sizetype arguments.
3166 * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
3167 and convert its result to a pointer type. Use POINTER_PLUS_EXPR
3168 for the pointer additions and also use size_int for the offsets.
3169 (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
3170 additions and also use size_int for the offsets. Perform
3171 BIT_AND_EXPR on sizetype arguments.
3172 * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
3173 POINTER_PLUS_EXPR for pointers and create the
3174 BIT_AND_EXPR in sizetype.
3175 * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
3176 instead of PLUS_EXPR for pointer addition.
3177 (rs6000_va_start): Likewise.
3178 Also use sizetype for the offset.
3179 * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
3180 as PLUS_EXPR/MINUS_EXPR.
3181 (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
3182 PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
3183 Don't use BIT_AND_EXPR on a pointer type, convert the
3184 expression to sizetype first.
3185 * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
3186 for pointers.
3187 (mips_gimplify_va_arg_expr): Likewise.
3188 Don't create BIT_AND_EXPR in a pointer type.
3189
3190 2007-06-15 Eric Christopher <echristo@apple.com>
3191
3192 * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
3193 (x86_64-*-darwin*): Ditto.
3194 * config/i386/darwin.h (CRTEND_SPEC): New. Add support
3195 for above.
3196
3197 2007-06-15 Matthew Wilcox <matthew@wil.cx>
3198
3199 * doc/extend.texi: Document behavior of __attribute__((aligned))
3200 on typedefs.
3201
3202 2007-06-15 Mark Mitchell <mark@codesourcery.com>
3203
3204 * rtlanal.c (note_stores): Improve documentation.
3205
3206 2007-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
3207
3208 * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
3209 LOCAL_LABEL_PREFIX): Delete.
3210 * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
3211 (bfin_internal_label): Delete.
3212
3213 2007-06-15 Uros Bizjak <ubizjak@gmail.com>
3214
3215 * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
3216 define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
3217 otherwise define to LIBGCC2_TF_CEXT.
3218 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
3219 (LIBGCC_TF_CEXT): Ditto.
3220 (TF_SIZE): Ditto.
3221
3222 2007-06-14 Seongbae Park <seongbae.park@gmail.com>
3223
3224 PR rtl-optimization/32339
3225 * df-scan.c (df_uses_record): Don't modify flags but just add to
3226 it for df_ref_record.
3227
3228 2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
3229
3230 * tree-mudflap.c: Fix whitespace issues.
3231
3232 2007-06-15 Kazu Hirata <kazu@codesourcery.com>
3233
3234 * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
3235
3236 2007-06-14 Eric Christopher <echristo@apple.com>
3237
3238 * config/i386/sse.md (movdi_to_sse): Rewrite body.
3239 (movv4sf): Use gcc_unreachable instead of abort.
3240
3241 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
3242
3243 PR target/32268
3244 * config/i386/sfp-machine.h (CMPtype): New define.
3245 (mach stubs): Use CMPtype instead of int as a return type.
3246
3247 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
3248
3249 * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
3250 config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
3251 config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
3252 config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
3253 config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
3254 config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
3255 config/soft-fp/soft-fp.h: Update from glibc CVS.
3256
3257 2007-06-14 Bernd Schmidt <bernd.schmidt@analog.com>
3258
3259 * config/bfin/uclinux.h (MFWRAP_SPEC): New.
3260
3261 2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
3262
3263 PR target/32341
3264 * config/v850/v850.c: Include dataflow header file.
3265 (substitute_ep_register): Fix typo.
3266
3267 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
3268
3269 * configure.ac: Fix earlier checkin.
3270 * configure: Regenerated.
3271
3272 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
3273
3274 * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
3275 * aclocal.m4: Regenerate.
3276 * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
3277 ACX_PROG_CC_WARNINGS_ARE_ERRORS,
3278 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
3279 * configure: Regenerate.
3280 * Makefile.in (LOOSE_WARN): Subst loose_warn.
3281
3282 * Makefile.in (quickstrap): Build libgcc too.
3283
3284 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
3285
3286 * configure.ac: Add --enable-checking=df. Explicitly mention that
3287 the variables are initialized as for "release".
3288 * df-core.c: Use it.
3289 * configure: Regenerate.
3290 * config.in: Regenerate.
3291
3292 2007-06-14 Bob Wilson <bob.wilson@acm.org>
3293
3294 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
3295 validate_replace_rtx instead of replace_rtx.
3296 (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
3297
3298 2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
3299
3300 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
3301 (DWARF2_UNWIND_INFO): Override default if configured with
3302 SJLJ EH disabled.
3303 * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
3304 (ENDFILE_SPEC): Add crtend.o.
3305 * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
3306 (ENDFILE_SPEC): Add crtend.o.
3307 (TARGET_USE_JCR_SECTION): Define.
3308 (MD_UNWIND_SUPPORT): Define for 32-bit target.
3309
3310 * config/i386/cygming-crtbegin.c: New file.
3311 * config/i386/cygming-crtend.c: New file.
3312
3313 2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
3314
3315 * config/i386/w32-unwind.h: New file.
3316
3317 2007-06-13 Eric Christopher <echristo@apple.com>
3318
3319 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
3320 the user set a value below STACK_BOUNDARY.
3321
3322 2007-06-13 Thiemo Seufer <ths@networkno.de>
3323
3324 * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
3325 imply -lpthread for -pthread.
3326
3327 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
3328
3329 * basic-block.h: Remove the prototype for
3330 free_basic_block_vars.
3331 * cfglayout.h: Remove the prototype for
3332 insn_locators_initialize.
3333 * tree.h: Remove the prototype for emit_line_note.
3334
3335 * tree-ssa-pre.c (mergephitemp): Remove.
3336 (init_pre): Don't use mergephitemp.
3337
3338 2007-06-13 Eric Christopher <echristo@apple.com>
3339
3340 * config/i386/i386.c (override_options): If we've specified
3341 an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
3342
3343 2007-06-13 Bob Wilson <bob.wilson@acm.org>
3344
3345 * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
3346 is defined.
3347
3348 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
3349
3350 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
3351 * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
3352 (eh_store_handler): New pattern.
3353 (eh_return): Emit it instead of a plain move.
3354
3355 2007-06-13 Uros Bizjak <ubizjak@gmail.com>
3356
3357 * config/i386/i386.c (ix86_init_mmx_sse_builtins)
3358 [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
3359 [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
3360 def_builtin_const.
3361
3362 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
3363
3364 * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
3365 (find_next_insn_start, find_load): New functions.
3366 (bfin_reorg): Use them to deal with the fact that parallel insns are
3367 no longer represented as a SEQUENCE.
3368
3369 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
3370
3371 * config/sparc/sparc.c (sparc_override_options): Initialize
3372 fpu mask correctly.
3373
3374 2007-06-13 Dave Korn <dave.korn@artimi.com>
3375
3376 * config/i386/i386.c (ix86_eax_live_at_start_p): Use
3377 df_get_live_out.
3378
3379 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
3380
3381 * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
3382 config/sh/divcost-analysis, dbgcnt.def, df-core.c,
3383 df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
3384 tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
3385 tree-vect-transform.c: Fix comment typos. Follow spelling
3386 conventions.
3387
3388 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
3389
3390 * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
3391 to the exit block use set.
3392 (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring".
3393 * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
3394 * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
3395
3396 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
3397
3398 * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
3399 * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
3400 to indicate an error.
3401 (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
3402 New functions.
3403 (dbg_cnt_process_opt): Print an error on a bad argument.
3404 * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
3405 * common.opt (-fdbg-cnt-list): New.
3406 * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
3407
3408 2007-06-12 Eric Botcazou <ebotcazou@adacore.com>
3409
3410 * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
3411 flag on ref-all pointers.
3412
3413 2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
3414
3415 PR middle-end/31579
3416 * expr.c (expand_expr_addr_expr_1): Call expand_expr
3417 for the offset with the modifier as EXPAND_INITIALIZER
3418 if the modifier is EXPAND_INITIALIZER.
3419 (expand_expr_real_1 <case INTEGER_CST>): Don't force to
3420 a register if we had an overflow.
3421
3422 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3423
3424 * real.c (real_isfinite): New.
3425 (real_sqrt): Use it.
3426 * real.h (real_isfinite): New.
3427 * builtins.c: Use it.
3428
3429 2007-06-12 Ian Lance Taylor <iant@google.com>
3430 Daniel Berlin <dberlin@dberlin.org>
3431
3432 PR libstdc++/29286
3433 * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
3434 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
3435 (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
3436 (DECL_NO_TBAA_P): Define.
3437 (struct tree_decl_common): Add no_tbaa_flag field.
3438 * tree-ssa-structalias.c (struct variable_info): Add
3439 no_tbaa_pruning field.
3440 (new_var_info): Initialize no_tbaa_pruning field.
3441 (unify_nodes): Copy no_tbaa_pruning field.
3442 (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
3443 (dump_solution_for_var): Print no_tbaa_pruning flag.
3444 (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
3445 callers.
3446 (compute_tbaa_pruning): New static function.
3447 (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
3448 Call compute_tbaa_pruning.
3449 * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
3450 * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
3451 * gimple-low.c (lower_stmt): Likewise.
3452 * tree-gimple.c (is_gimple_stmt): Likewise.
3453 * tree-ssa-operands.c (get_expr_operands): Likewise.
3454 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3455 * tree-inline.c (estimate_num_insns_1): Likewise.
3456 (copy_result_decl_to_var): Likewise.
3457 * expr.c (expand_expr_real_1): Likewise.
3458 * tree-pretty-print.c (dump_generic_node): Likewise.
3459 * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
3460 * omp-low.c (omp_copy_decl_2): Likewise.
3461 * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
3462 * doc/c-tree.texi (Expression trees): Document
3463 CHANGE_DYNAMIC_TYPE_EXPR.
3464
3465 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3466
3467 * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
3468 with !HONOR_NANS and !HONOR_INFINITIES.
3469 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3470
3471 2007-06-12 Tristan Gingold <gingold@adacore.com>
3472
3473 * gcov.c: Comments updated.
3474 (source_info): Add file_time field.
3475 (source_index): New variable.
3476 (mutiple_files): New variable.
3477 (generate_results): New function extracted from process_file.
3478 (process_file): Save and restore chain of functions, generate
3479 results and free structures only if not merging results.
3480 (release_structures): File names are now freed in create_file_names
3481 (create_file_names): Free previous file names.
3482 (find_source): File date is now read here and modifications in
3483 source files is checked here.
3484 (read_graph_file): Only reverse order of functions for the current
3485 object file.
3486 (make_gcov_file_name): Do not generate long names if input_name is
3487 NULL.
3488 (output_lines): If merging results do not display graph, data and
3489 runs informations.
3490 Checking source file modification is done in find_source.
3491
3492 * doc/gcov.texi: Append an s to sourcefile.
3493
3494 2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com>
3495
3496 * config/bfin/bfin.md (UNSPEC_NOP): New constant.
3497 (forced_nop): New pattern.
3498 * config/bfin/bfin.c: Include "df.h".
3499 (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
3500 (bfin_discover_loop): Use df_get_live_in instead of
3501 global_live_at_start.
3502 (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
3503 df_analyze when done.
3504 (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
3505 the insns. Use QImode for the final insn in a bundle. Call
3506 df_insn_rescan on generated NOPs; use gen_forced_nop instead of
3507 gen_nop.
3508 (reorder_var_tracking_notes): New function.
3509 (bfin_reorg): Pass no argument to split_all_insns. Don't call
3510 update_life_info. Call df_analyze after scheduling and bundle
3511 generation. Call reorder_var_tracking_notes if generating these
3512 notes. Call df_finish_pass at the end.
3513
3514 2007-06-12 Dirk Mueller <dmueller@suse.de>
3515
3516 * optabs.c (debug_optab_libfuncs): fix gcc_assert to
3517 a comparison, not an assignment.
3518
3519 2007-06-12 Olivier Hainque <hainque@adacore.com>
3520
3521 * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
3522 Request walking the subtrees only, leaving the current is_lhs/val_only
3523 untouched.
3524 (convert_non_local_reference): Likewise.
3525
3526 2007-06-12 Nathan Sidwell <nathan@codesourcery.com>
3527
3528 * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
3529
3530 2007-06-12 Richard Guenther <rguenther@suse.de>
3531
3532 PR tree-optimization/15353
3533 PR tree-optimization/31657
3534 * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
3535 * timevar.def: Add TV_TREE_IFCOMBINE.
3536 * tree-pass.h (pass_tree_ifcombine): Declare.
3537 * tree-ssa-ifcombine.c: New file.
3538 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
3539 * tree-flow.h (blocks_in_phiopt_order): Declare.
3540 * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
3541 (tree-ssa-ifcombine.o): New dependencies.
3542
3543 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
3544
3545 PR rtl-optimization/32293
3546 * combine.c (simplify_if_then_else): Truncate return from
3547 nonzero_bits() to correct mode.
3548
3549 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
3550
3551 * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
3552 into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
3553
3554 2007-06-11 Diego Novillo <dnovillo@google.com>
3555
3556 * Makefile.in (reload1.o-warn): Remove.
3557
3558 2007-06-11 Seongbae Park <seongbae.park@gmail.com>
3559
3560 * combine.c (subst): Use reg_overlap_mentioned_p
3561 instead of comparing register numbers directly.
3562
3563 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3564
3565 * reload1.c (mark_home_live_1): Use the mode parameter.
3566
3567 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3568
3569 * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
3570 df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
3571 word "deferred".
3572 * df-core.c: Ditto.
3573
3574 2007-06-11 Daniel Berlin <dberlin@dberlin.org>
3575
3576 * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
3577
3578 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
3579
3580 * config/i386/i386.md ("*movtf_internal): Penalize moves to and
3581 from integer registers.
3582 (FP mode splitters): Handle TFmode.
3583
3584 2007-06-11 Eric Botcazou <ebotcazou@adacore.com>
3585
3586 * tree-ssa-structalias.c (find_what_p_points_to): Return false
3587 for ref-all pointers that point-to anything.
3588
3589 2007-06-11 Joseph Myers <joseph@codesourcery.com>
3590
3591 * config/arm/arm.c (arm_output_dwarf_dtprel,
3592 TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
3593
3594 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
3595
3596 * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
3597 movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
3598 to memory moves.
3599
3600 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
3601
3602 * gcc/tree.c (signed_or_unsigned_type_for): New.
3603 (unsigned_type_for): Use signed_or_unsigned_type_for.
3604 (signed_type_for): Use signed_or_unsigned_type_for.
3605 * gcc/tree.h (signed_or_unsigned_type_for): New.
3606 (get_signed_or_unsigned_type): Remove.
3607 * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
3608 lang_hooks.types.signed_type
3609 (size_diffop): Likewise.
3610 (all_ones_mask_p): Likewise.
3611 (build_range_check): Likewise.
3612 (fold_cond_expr_with_comparison): Likewise.
3613 (fold_cond_expr_with_comparison): Likewise.
3614 (unextend): Likewise.
3615 (extract_muldiv_1): Likewise.
3616 (fold_single_bit_test_into_sign_test): Likewise.
3617 (fold_binary): Likewise.
3618 (fold_ternary): Likewise.
3619 (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
3620 instead of get_signed_or_unsigned_type.
3621 * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
3622 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
3623 * gcc/expr.c (signed_or_unsigned_type_for): Use
3624 signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
3625 * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
3626 (lhd_signed_or_unsigned_type): Remove.
3627 * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
3628 signed_or_unsigned_type.
3629 (lhd_signed_or_unsigned_type): Remove.
3630 * gcc/expmed.c (make_tree): Use signed_type_for instead of
3631 lang_hooks.types.signed_type.
3632 * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
3633 c_common_signed_type instead of lang_hooks.types.signed_type.
3634 (c_common_unsigned_type): New.
3635 (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
3636 (shorten_compare): Use c_common_unsigned_type instead of
3637 c_common_signed_or_unsigned_type.
3638 (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
3639 unsigned_type_for.
3640 * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
3641 lang_hooks.types.signed_type.
3642 * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
3643 (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
3644 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
3645 * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
3646 instead of unsigned_type_for.
3647 * gcc/c-decl.c (groakdeclarator): Likewise.
3648 * gcc/c-typeck.c (convert_for_assignment): Likewise.
3649 * gcc/c-common.h (c_common_unsigned_type): New.
3650
3651 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
3652
3653 PR target/32280
3654 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
3655 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
3656
3657 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
3658
3659 PR middle-end/32279
3660 * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
3661 into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
3662
3663 2007-06-10 Jan Sjodin <jan.sjodin@amd.com>
3664 Sebastian Pop <sebpop@gmail.com>
3665
3666 * lambda-code.c (remove_iv): New.
3667 (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
3668
3669 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
3670
3671 * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
3672 * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
3673 * tree-ssa-loop-prefetch.c: Include optabs.h.
3674 (FENCE_FOLLOWING_MOVNT): New macro.
3675 (struct mem_ref): Add independent_p and storent_p fields.
3676 (record_ref): Initalize the new fields.
3677 (gather_memory_references_ref): Return true if the reference
3678 could be analysed.
3679 (gather_memory_references): Check whether all memory accesses
3680 in loop were recorded.
3681 (should_issue_prefetch_p): Return false for nontemporal stores.
3682 (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
3683 may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
3684 (determine_loop_nest_reuse): Detect independent memory references.
3685 (loop_prefetch_arrays): Call mark_nontemporal_stores.
3686 * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
3687 * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
3688 * config/i386/i386.h (x86_mfence): Declare.
3689 (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
3690 * config/i386/i386.c (x86_mfence): New variable.
3691 (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
3692
3693 * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
3694 * optabs.c (init_optabs): Initialize storent_optab.
3695 * optabs.h (enum optab_index): Add OTI_storent.
3696 (storent_optab): Declare.
3697 * genopinit.c (optabs): Add initialization for storent_optab.
3698 * tree.h (MOVE_NONTEMPORAL): New macro.
3699 * expr.c (expand_assignment, store_expr, store_constructor_field,
3700 store_constructor, store_field, expand_expr_real_1): Propagate
3701 nontemporality of the expanded store.
3702 (emit_storent_insn): New function.
3703 * expr.h (expand_assignment, store_expr): Declaration changed.
3704 * function.c (assign_parm_setup_reg): Pass false as nontemporality
3705 to expand_assignment.
3706 * stmt.c (expand_asm_expr): Ditto.
3707 * calls.c (initialize_argument_information): Pass false as
3708 nontemporality to store_expr.
3709 * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
3710 storentsi): New.
3711
3712 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
3713
3714 * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
3715 parameter, use it.
3716 (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
3717
3718 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
3719
3720 * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
3721 and allow DECL_P here.
3722
3723 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
3724
3725 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
3726 follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
3727 track of the size of the expression.
3728 * cfghooks.c (merge_blocks): Remove block from loops structure only
3729 after call of the merge_blocks hook.
3730
3731 2007-06-09 Tom Tromey <tromey@redhat.com>
3732
3733 * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
3734 (deprecated_state): Removed.
3735 (start_decl): Update.
3736 (enum deprecated_states): Moved earlier.
3737 (groktypename): Update.
3738 (push_parm_decl): Likewise.
3739 (grokfield): Likewise.
3740 (start_function): Likewise.
3741
3742 2007-06-09 Ian Lance Taylor <iant@google.com>
3743
3744 PR tree-optimization/32169
3745 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
3746 CONVERT_EXPR, check whether min and max both converted to an
3747 overflow infinity representation.
3748
3749 2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
3750
3751 * reload1.c (fixup_abnormal_edges): Clear bb field for insns
3752 not inserted on the edge.
3753
3754 2007-06-08 Bob Wilson <bob.wilson@acm.org>
3755
3756 * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
3757 instructions if they are supported.
3758 (__divsi3, __umodsi3, __modsi3): Likewise.
3759 (__ashldi3, __ashrdi3, __lshrdi3): New.
3760 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
3761
3762 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
3763 Tony Linthicum <tony.linthicum@amd.com>
3764
3765 * doc/invoke.texi: Add fvect-cost-model flag.
3766 * common.opt (fvect-cost-model): New flag.
3767 * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
3768 cost fields in stmt_vec_info struct for STMT.
3769 * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
3770 fields in stmt_vec_info struct and access functions for the same.
3771 (TARG_COND_BRANCH_COST): Define cost of conditional branch.
3772 (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
3773 load, store and vector to scalar operation.
3774 (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
3775 (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
3776 (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
3777 (TARG_VEC_STORE_COST): Define cost of vector store.
3778 (vect_estimate_min_profitable_iters): Define new function.
3779 * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
3780 check to evaluate if loop iterations are less than minimum profitable
3781 iterations determined by cost model or minimum vect loop bound defined
3782 by user, whichever is more conservative.
3783 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
3784 run-time check to evaluate if loop iterations are less than minimum
3785 profitable iterations determined by cost model or minimum vect loop
3786 bound defined by user, whichever is more conservative.
3787 (vect_estimate_min_profitable_iterations): New function to estimate
3788 mimimimum iterartions required for vector version of loop to be
3789 profitable over scalar version.
3790 (vect_model_reduction_cost): New function.
3791 (vect_model_induction_cost): New function.
3792 (vect_model_simple_cost): New function.
3793 (vect_cost_strided_group_size): New function.
3794 (vect_model_store_cost): New function.
3795 (vect_model_load_cost): New function.
3796 (vectorizable_reduction): Call vect_model_reduction_cost during
3797 analysis phase.
3798 (vectorizable_induction): Call vect_model_induction_cost during
3799 analysis phase.
3800 (vectorizable_load): Call vect_model_load_cost during analysis phase.
3801 (vectorizable_store): Call vect_model_store_cost during analysis phase.
3802 (vectorizable_call, vectorizable_assignment, vectorizable_operation,
3803 vectorizable_promotion, vectorizable_demotion): Call
3804 vect_model_simple_cost during analysis phase.
3805
3806 2007-06-08 Simon Baldwin <simonb@google.com>
3807
3808 * reg-stack.c (get_true_reg): Readability change. Moved default case
3809 label into direct switch statement scope.
3810
3811 2007-06-08 Simon Baldwin <simonb@google.com>
3812
3813 * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
3814 in gcc_assert() with '==' comparison.
3815
3816 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
3817
3818 * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
3819 TARGET_ABM handling of x86_popcnt variable.
3820
3821 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
3822
3823 * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
3824 __builtin_copysignq and __builtin_infq built-in functions.
3825
3826 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
3827
3828 * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
3829 SSE4.2 section. Correct built-in function names in SSE4A section.
3830
3831 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
3832
3833 PR tree-optimization/32243
3834 * tree-vect-transform.c (vectorizable_type_promotion): Move check
3835 for ncopies after ratio check between nunits_out and nunits_in.
3836 (vectorizable_type_demotion): Remove single-use variable "scalar_type".
3837
3838 2007-06-08 Dorit Nuzman <dorit@il.ibm.com>
3839
3840 PR tree-optimization/32224
3841 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
3842 vectorization upon a non GIMPLE_MODIFY_STMT.
3843
3844 2007-06-08 Christian Bruel <christian.bruel@st.com>
3845
3846 PR target/29953
3847 * config/sh/sh.md (doloop_end): New pattern and splitter.
3848 * loop-iv.c (simple_rhs_p): Check for hardware registers.
3849
3850 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
3851
3852 PR middle-end/32209
3853 * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
3854 functions.
3855 (verify_dominators): Do not change dominance tree.
3856
3857 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
3858
3859 * config/sh/constraints.md: New file.
3860 * config/sh/sh.c: Include tm-constrs.h.
3861 (reg_class_from_letter): Remove.
3862 (prepare_cbranch_operands): Use satisfies_constraint_*
3863 function instead of macro.
3864 (andcosts, broken_move, sh_secondary_reload): Likewise.
3865 * config/sh/predicates.md (trapping_target_operand): Likewise.
3866 (and_operand, arith_operand, arith_reg_or_0_operand,
3867 cmp_operand, logical_operand, target_operand,
3868 ua_address_operand, ua_offset, xor_operand): Likewise.
3869 * config/sh/sh.md: Include constraints.md.
3870 (*movsicc_t_false): Use satisfies_constraint_* function
3871 instead of macro.
3872 (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
3873 lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
3874 movdi_const_16bit+1, beq, bne, *ptb): Likewise.
3875 * config/sh/sh.h (reg_class_from_letter): Remove prototype.
3876 (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
3877 (REG_CLASS_FROM_CONSTRAINT): Remove.
3878 (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
3879 CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
3880 CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
3881 CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
3882 CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
3883 (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
3884 function instead of macro.
3885 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
3886 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
3887 EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
3888 EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
3889 (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
3890 (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
3891 (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
3892 (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
3893 (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
3894 EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
3895 EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
3896 EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
3897 EXTRA_CONSTRAINT_STR): Likewise.
3898 (GO_IF_LEGITIMATE_INDEX): Fix indentation.
3899
3900 2007-06-07 Geoffrey Keating <geoffk@apple.com>
3901
3902 * config/i386/darwin.h (STACK_BOUNDARY): Define.
3903
3904 2007-06-07 Simon Martin <simartin@users.sourceforge.net>
3905
3906 PR c++/30759
3907 * c-common.h (flag_cpp0x): Replaced by...
3908 (cxx_dialect): ... this new variable specifying the C++ dialect that
3909 is used.
3910 * c-common.c (flag_cpp0x): Removed.
3911 (cxx_dialect): Defined.
3912 * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
3913 cxx_dialect.
3914 * c-opts.c (c_common_post_options): Likewise.
3915 (set_std_cxx98): Set cxx_dialect to cxx98.
3916 (set_std_cxx0x): Set cxx_dialect to cxx0x.
3917
3918 2007-06-07 Geoffrey Keating <geoffk@apple.com>
3919 Hui-May Chang <hm.chang@apple.com>
3920
3921 * doc/invoke.texi (Darwin Options): Update documentation for
3922 -mmacosx-version-min.
3923 * config.gcc (*-*-darwin*): Set extra_gcc_objs.
3924 * config/darwin-driver.c: New file.
3925 * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
3926 * config/t-darwin (darwin-driver.o): New rule.
3927
3928 * config/darwin-c.c (version_as_macro): Ignore low digit.
3929
3930 2007-06-07 Uros Bizjak <ubizjak@gmail.com>
3931
3932 * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
3933 (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
3934 (CSGNMODE): New mode macro.
3935 (CSGNVMODE): New mode attribute.
3936 (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize
3937 expander using CSGNMODE mode macro. Handle TFmode.
3938 (copysign<mode>3_const): Rename from copysignsf3_const and
3939 copysigndf3_const. Macroize pattern using CSGNMODE mode macro.
3940 Handle TFmode.
3941 (copysign<mode>3_var): Rename from copysignsf3_var and
3942 copysigndf3_var. Macroize pattern using CSGNMODE mode macro.
3943 Handle TFmode.
3944 (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
3945 mode macro. Handle TFmode.
3946 * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
3947 (iortf3, *iortf3): Ditto.
3948 (xortf3, *xortf3): Ditto.
3949 * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
3950 TFmode and TImode masks.
3951 (ix86_expand_copysign): Expand TFmode copysign insn.
3952 (IX86_BUILTIN_INFQ): New.
3953 (IX86_BUILTIN_FABSQ): Ditto.
3954 (IX86_BUILTIN_COPYSIGNQ): Ditto.
3955 (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
3956 [__builtin_fabsq]: Ditto.
3957 [__builtin_copysignq]: Ditto.
3958 (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
3959 [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
3960 [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
3961 ix86_expand_binop_builtin().
3962
3963 2007-06-07 Bob Wilson <bob.wilson@acm.org>
3964
3965 * config/xtensa/lib1funcs.asm: Clean up whitespace.
3966
3967 2007-06-07 Steve Ellcey <sje@cup.hp.com>
3968
3969 PR target/31850
3970 * rtl.h (push_to_sequence2): New.
3971 * emit-rtl.c (push_to_sequence2): New.
3972 * function.c (assign_parm_data_all): Add new fields.
3973 (assign_parm_setup_block): Call push_to_sequence2 instead of
3974 push_to_sequence.
3975 (assign_parm_setup_reg): Ditto.
3976 (assign_parm_setup_stack): Ditto.
3977 (assign_parms_unsplit_complex): Ditto.
3978 (assign_parms): Change field name.
3979
3980 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz>
3981
3982 PR tree-optimization/32220
3983 * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
3984 phi node is reached before defining statement.
3985
3986 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
3987
3988 PR tree-opt/32231
3989 * tree-vect-transform.c (vectorizable_call): Call update_stmt
3990 after changing the right hand side of the assignment.
3991
3992 2007-06-06 Eric Christopher <echristo@apple.com>
3993
3994 * config.gcc (i?86-*-darwin*): Remove arch parameter.
3995 (x86_64-*-darwin*): Ditto.
3996 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
3997 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
3998
3999 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
4000
4001 * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
4002 coding conventions.
4003 (add_key): Likewise.
4004 * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
4005 * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
4006 variable names.
4007 * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
4008 macros.
4009 (add_cost_one_coalesce): Likewise.
4010 * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
4011 variable names. Rename orig to orig_name for consistency.
4012 * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
4013 coding conventions.
4014 (cprop_into_successor_phis): Avoid using C++ keywords as variable
4015 names.
4016 (record_equivalences_from_stmt): Likewise.
4017 * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
4018 the coding conventions.
4019 (memory_ssa_name_same): Likewise.
4020 (dse_optimize_stmt): Likewise.
4021 (dse_record_phis): Likewise.
4022 (dse_finalize_block): Likewise.
4023 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
4024 keywords as variable names.
4025 (may_move_till): Cast according to the coding conventions.
4026 (force_move_till_expr): Avoid using C++ keywords as variable names.
4027 (force_move_till): Cast according to the coding conventions.
4028 (memref_hash): Likewise.
4029 (memref_eq): Likewise.
4030 (gather_mem_refs_stmt): Likewise.
4031 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
4032 using C++ keywords as variable names.
4033 (idx_find_step): Cast according to the coding conventions.
4034 (idx_record_use): Likewise.
4035 (find_depends): Likewise.
4036 (prepare_decl_rtl): Likewise.
4037 (mbc_entry_hash): Likewise.
4038 (mbc_entry_eq): Likewise.
4039 * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
4040 (simplify_replace_tree): Avoid using C++ keywords as variable names.
4041 (idx_infer_loop_bounds): Cast according to the coding conventions.
4042 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
4043 * tree-ssa-math-opts.c (occ_new ): Likwise.
4044 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
4045 macros.
4046 * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
4047 variable names.
4048 (add_use_op): Likewise.
4049 (add_vop): Likewise.
4050 (add_vuse_op): Likewise.
4051 (add_vdef_op): Likewise.
4052 (get_expr_operands): Likewise.
4053 (push_stmt_changes): Use type safe memory macros.
4054 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
4055 keywords as variable names.
4056 (conditional_replacement): Likewise.
4057 (minmax_replacement): Likewise.
4058 (abs_replacement): Likewise.
4059 * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
4060 coding conventions.
4061 (insert_fake_stores): Avoid using C++ keywords as variable names.
4062 * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
4063 conventions.
4064 * tree-ssa-structalias.c (heapvar_lookup): Likewise.
4065 (heapvar_insert): Use type safe memory macros.
4066 (new_var_info): Cast according to the coding conventions.
4067 (new_constraint): Likewise.
4068 (remove_preds_and_fake_succs): Use type safe memory macros.
4069 * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
4070 conventions.
4071 (thread_single_edge): Likewise.
4072 (thread_through_loop_header): Likewise.
4073
4074 2007-06-06 Eric Christopher <echristo@apple.com>
4075
4076 * config/i386/i386.c (override_options): Move handling
4077 of TARGET_SUBTARGET* earlier.
4078
4079 2007-06-06 Paolo Bonzini <bonzini@gnu.org>
4080
4081 * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
4082 use %n on printf.
4083
4084 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz>
4085
4086 * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
4087 emited outside of basic block.
4088 * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
4089 the created blocks.
4090 * rtl.h (delete_insn_chain): Declaration changed.
4091 * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
4092 non-removed insns.
4093 (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
4094 (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
4095 rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
4096 to delete_insn_chain.
4097 (rtl_verify_flow_info_1): Verify that the insns in header and footer
4098 do not have bb field set.
4099 (rtl_verify_flow_info): Verify that insns between basic blocks do not
4100 have bb field set.
4101 * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
4102 * cfgcleanup.c (try_optimize_cfg): Ditto.
4103
4104 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
4105
4106 * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
4107 (lambda_body_vector_new): Use type safe memory macros.
4108 (lambda_linear_expression_new): Likewise.
4109 (lambda_loopnest_new): Likewise.
4110 (lambda_lattice_new): Likewise.
4111 (replace_uses_equiv_to_x_with_y): Cast according to the coding
4112 conventions. Use type safe memory macros.
4113 * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
4114 (lambda_body_vector_s): Likewise.
4115 * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
4116 * lambda-trans.c (lambda_trans_matrix_new): Likewise.
4117
4118 2007-06-06 Richard Guenther <rguenther@suse.de>
4119
4120 * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
4121 if we need to schedule cfg_cleanup.
4122 (tree_ssa_forward_propagate_single_use_vars): Do so.
4123
4124 2007-06-06 Ian Lance Taylor <iant@google.com>
4125
4126 * fold-const.c (merge_ranges): If range_successor or
4127 range_predecessor fail, just return 0.
4128
4129 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
4130
4131 PR tree-optimization/32216
4132 * tree-vectorizer.c (supportable_widening_operation): Determine
4133 signedness of FIX_TRUNC_EXPR from output operand.
4134 (supportable_narrowing_operation): Ditto.
4135 * tree-vect-generic.c (expand_vector_operations_1): Determine
4136 signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
4137 from input operand.
4138
4139 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
4140
4141 * config/i386/i386.c (enum pta_flags): Move out of struct scope...
4142 (struct pta): ...from here. Change flags to unsigned to avoid
4143 excessive casting (as it is used as a bit mask).
4144 (override_options): Add casts according to the coding convenventions.
4145 (x86_64_elf_unique_section): Likewise.
4146 (examine_argument): Avoid using C++ keywords as variable names.
4147 (construct_container): Likewise.
4148 (legitimize_pic_address): Likewise.
4149 (get_dllimport_decl): Cast according to the coding conventions. Use
4150 type safe memory macros.
4151 (legitimize_address): Cast according to the coding conventions.
4152 (emit_i387_cw_initialization): Corrected the type of slot to enum
4153 ix86_stack_slot.
4154 (ix86_init_machine_status): Use type safe memory macros.
4155 (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
4156 (bdesc_pcmpistr): Likewise.
4157 (bdesc_crc32): Likewise.
4158 (bdesc_sse_3arg): Likewise.
4159 (bdesc_2arg): Likewise.
4160 (bdesc_1arg): Likewise.
4161 (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
4162 (ix86_expand_sse_pcmpistr): Likewise.
4163 (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
4164 (ix86_builtin_vectorized_function): Change the type of fn to unsigned
4165 int to match the langhook definition.
4166 (ix86_builtin_conversion): Change the type of code to unsigned init to
4167 match the langhook definition.
4168 (ix86_preferred_reload_class): Avoid using C++ keywords as variable
4169 names.
4170 (ix86_preferred_output_reload_class): Likewise.
4171 (ix86_cannot_change_mode_class): Likewise.
4172 (ix86_memory_move_cost): Likewise.
4173 (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
4174 avoid excessive casting later on.
4175 (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
4176
4177 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
4178
4179 * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
4180 as flags setting insn.
4181 (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
4182
4183 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
4184
4185 * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
4186 (UNSPEC_ROUND): New.
4187 ("sse4_1_round<mode>2"): New insn pattern.
4188 ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
4189 SSE4.1 targets.
4190 ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize
4191 expander using SSEMODEF mode macro. Expand using
4192 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
4193 ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize
4194 expander using SSEMODEF mode macro. Expand using
4195 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
4196 ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize
4197 expander using SSEMODEF mode macro. Expand using
4198 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
4199 * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
4200 UNSPEC_ROUND instead of UNSPEC_ROUNDP.
4201 ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
4202 UNSPEC_ROUNDS.
4203
4204 2007-06-06 Jan Sjodin <jan.sjodin@amd.com>
4205 Sebastian Pop <sebpop@gmail.com>
4206
4207 * lambda.h (build_linear_expr): New.
4208 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
4209 Use build_linear_expr, call fold and force_gimple_operand.
4210 (lambda_loopnest_to_gcc_loopnest): Check that there is
4211 something to insert.
4212 * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
4213
4214 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
4215
4216 PR preprocessor/23479
4217 * doc/extend.texi: Document the 0b-prefixed binary integer
4218 constant extension.
4219
4220 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
4221
4222 PR tree-optimization/32215
4223 * tree-vectorizer.c (supportable_widening_operation): Return false
4224 for unsupported FIX_TRUNC_EXPR tree code.
4225 (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
4226
4227 2007-06-06 Nathan Froyd <froydnj@codesourcery.com>
4228
4229 * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
4230 register on SPE targets. Change documentation to reflect
4231 reality.
4232 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
4233 Change FIXED_SCRATCH to 14 and document why we're keeping r14
4234 out of the register allocation pool.
4235 (rs6000_reg_live_or_pic_offset_p): New function.
4236 (rs6000_emit_prologue): Move the actual saving of LR up to free
4237 r0 for holding r11. Split saving of SPE 64-bit registers into
4238 its own case. Ensure that offsets will always be in-range for
4239 'evstdd' by using r11 as a scratch register to point at the start
4240 of the SPE save area. Save r11 if necessary, as it is the static
4241 chain register.
4242 (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
4243 into its own case. Ensure that offsets will always be in-range
4244 for 'evldd' by using r11 as a scratch register to point at the
4245 start of the SPE save area. Also adjust r11 when restoring
4246 the stack pointer to compensate for pre-loading r11.
4247
4248 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net>
4249
4250 * cfg.c (init_flow): Use type safe memory macros.
4251 (alloc_block): Likewise.
4252 (unchecked_make_edge): Likewise.
4253 (dump_flow_info): Avoid using C++ keywords as variable names.
4254 (copy_original_table_clear): Cast according to the coding conventions.
4255 (copy_original_table_set): Likewise.
4256 * cfgexpand (label_rtx_for_bb): Likewise.
4257 (expand_gimple_basic_block): Likewise.
4258 * cfghooks.c (dump_bb): Likewise.
4259 (lv_adjust_loop_header_phi): Avoid using C++ keywords as
4260 variable names.
4261 (lv_add_condition_to_bb): Likewise.
4262 * cfglayout (relink_block_chain): Cast according to the coding
4263 conventions.
4264 (fixup_reorder_chain): Likewise.
4265 (fixup_fallthru_exit_predecessor): Likewise.
4266 * cfgloop.c (glb_enum_p): Likewise.
4267 (get_exit_description): Likewise.
4268 (dump_recorded_exit): Likewise.
4269 * cfgloop.h (enum loop_estimation): Move out of struct scope...
4270 (struct loop): ... from here.
4271 * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
4272 conventions.
4273 * cfgrtl.c (rtl_create_basic_block): Likewise.
4274 (rtl_split_block): Likewise.
4275 (rtl_dump_bb): Likewise.
4276 (cfg_layout_split_block): Likewise.
4277 (init_rtl_bb_info): Use typesafe memory macros.
4278
4279 * graphds.h (struct graph_edge): Renamed edge to graph_edge.
4280 * graphds.h: Updated all usages of edge to graph_edge.
4281 * graphds.c: Likewise.
4282 * cfgloopanal.c: Likewise.
4283
4284 2007-06-05 Ian Lance Taylor <iant@google.com>
4285
4286 * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
4287 PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
4288 (extract_range_from_assert): Set TREE_NO_WARNING when creating an
4289 expression.
4290 (test_for_singularity): Likewise.
4291
4292 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
4293
4294 * config/i386/constraints.md ("Y2"): Replaced by ...
4295 ("Yt"): This.
4296 * config/i386/i386.md: Likewise.
4297 * config/i386/mmx.md: Likewise.
4298 * config/i386/sse.md: Likewise.
4299
4300 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
4301
4302 * config/i386/constraints.md ("z"): Replaced by ...
4303 ("Y0"): This.
4304 * config/i386/sse.md (sse4_1_blendvpd): Likewise.
4305 (sse4_1_blendvps): Likewise.
4306 (sse4_1_pblendvb): Likewise.
4307 (sse4_2_pcmpestr): Likewise.
4308 (sse4_2_pcmpestrm): Likewise.
4309 (sse4_2_pcmpestr_cconly): Likewise.
4310 (sse4_2_pcmpistr): Likewise.
4311 (sse4_2_pcmpistrm): Likewise.
4312 (sse4_2_pcmpistr_cconly): Likewise.
4313
4314 2007-06-05 Razya Ladelsky <razya@il.ibm.com>
4315
4316 * matrix-reorg.c (transform_access_sites): Fix computation.
4317 (transform_allocation_sites): Same.
4318
4319 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
4320
4321 * config/i386/i386.c (override_options): Use
4322 TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
4323
4324 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
4325
4326 * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
4327 (nonimm_not_xmm0_operand): Ditto.
4328 * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
4329 as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand"
4330 as operand[2] predicate. Require "z" class XMM register for
4331 operand[3]. Adjust asm template.
4332 ("sse4_1_blendvpd"): Ditto.
4333 ("sse4_1_pblendvb"): Ditto.
4334 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
4335 force op2 into xmm0 register for variable blend instructions.
4336
4337 2007-06-04 Tom Tromey <tromey@redhat.com>
4338
4339 * c-tree.h (start_enum): Update.
4340 (build_enumerator): Likewise.
4341 * c-decl.c (enum_next_value): Removed.
4342 (enum_overflow): Likewise.
4343 (start_enum): Add c_enum_contents argument. Don't use globals.
4344 (build_enumerator): Likewise.
4345 * c-tree.h (struct c_enum_contents): New struct.
4346
4347 2007-06-04 Tom Tromey <tromey@redhat.com>
4348
4349 * c-common.c (c_common_get_alias_set): Fix indentation.
4350
4351 2007-06-04 Ian Lance Taylor <iant@google.com>
4352
4353 * tree-vrp.c (adjust_range_with_scev): When loop is not expected
4354 to overflow, reduce overflow infinity to regular infinity.
4355 (vrp_var_may_overflow): New static function.
4356 (vrp_visit_phi_node): Check vrp_var_may_overflow.
4357
4358 2007-06-04 Kazu Hirata <kazu@codesourcery.com>
4359
4360 * stor-layout.c (layout_type): Remove duplicate code.
4361
4362 2007-06-04 Uros Bizjak <ubizjak@gmail.com>
4363
4364 PR c/32191
4365 * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
4366 before build_common_builtin_nodes ().
4367
4368 2007-06-04 Steve Ellcey <sje@cup.hp.com>
4369
4370 PR target/31733
4371 * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
4372
4373 2007-06-04 Jan Hubicka <jh@suse.cz>
4374
4375 * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
4376 reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
4377 instead of _stat version.
4378
4379 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
4380
4381 PR tree-optimization/32194
4382 * tree-predcom.c (determine_offset): Check that both references have
4383 the same type.
4384
4385 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
4386
4387 * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
4388 Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
4389 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
4390 * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
4391 Add argument to iterate_fix_dominators call.
4392 (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
4393 * gcse.c (hoist_code): Change domby to vector.
4394 * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
4395 Add argument to iterate_fix_dominators call.
4396 * loop-doloop.c (doloop_modify): Changed recount_dominator to
4397 recompute_dominator.
4398 * lambda-code.c (perfect_nestify): Ditto.
4399 * cfgloopanal.c: Include graphds.h.
4400 (struct edge, struct vertex, struct graph, dump_graph, new_graph,
4401 add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
4402 (mark_irreducible_loops): Use graphds_scc. Remove argument from
4403 add_edge call.
4404 * graphds.c: New file.
4405 * graphds.h: New file.
4406 * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
4407 (get_dominated_by, get_dominated_by_region): Change return type to
4408 vector.
4409 (verify_dominators): Recompute all dominators and compare the results.
4410 (recount_dominator): Renamed to ...
4411 (recompute_dominator): ... this. Do not check that the block is
4412 dominated by entry.
4413 (iterate_fix_dominators): Reimplemented.
4414 (prune_bbs_to_update_dominators, root_of_dom_tree,
4415 determine_dominators_for_sons): New functions.
4416 * et-forest.c (et_root): New function.
4417 * et-forest.h (et_root): Declare.
4418 * Makefile.in (graphds.o): Add.
4419 (cfgloopanal.o): Add graphds.h dependency.
4420 (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
4421 * basic-block.h (get_dominated_by, get_dominated_by_region,
4422 iterate_fix_dominators): Declaration changed.
4423 (recount_dominator): Renamed to ...
4424 (recompute_dominator): ... this.
4425 * tree-ssa-threadupdate.c (thread_block): Free dominance info.
4426 (thread_through_all_blocks): Do not free dominance info.
4427
4428 2007-06-03 Andreas Schwab <schwab@suse.de>
4429
4430 * config/m68k/m68k.c (override_options): Don't override
4431 REAL_MODE_FORMAT.
4432 * config/m68k/m68k-modes.def (SF, DF): Define to use
4433 motorola_single_format and motorola_double_format, resp.
4434 * real.c (motorola_single_format): Renamed from
4435 coldfire_single_format.
4436 (motorola_double_format): Renamed from coldfire_double_format.
4437 (encode_ieee_extended): Generate a proper canonical NaN image
4438 respecting canonical_nan_lsbs_set.
4439 (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
4440 true.
4441 * real.h: Adjust declarations.
4442
4443 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
4444
4445 PR target/32163
4446 * config/sh/sh.md (symGOT_load): Don't schedule insns when
4447 the symbol is generated with the stack protector.
4448
4449 2007-06-03 Kazu Hirata <kazu@codesourcery.com>
4450
4451 * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
4452 (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
4453 "interrupt".
4454 * doc/extend.texi (interrupt): Mention m68k.
4455
4456 2007-06-02 Uros Bizjak <ubizjak@gmail.com>
4457
4458 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
4459 safe_vector_operand() if input operand is VECTOR_MODE_P operand.
4460 (ix86_expand_sse_pcmpestr): Do not check operands for
4461 "register_operand", when insn operand predicate is "register_operand".
4462 (ix86_expand_sse_pcmpistr): Ditto.
4463
4464 2007-06-02 H.J. Lu <hongjiu.lu@intel.com>
4465 Uros Bizjak <ubizjak@gmail.com>
4466
4467 * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
4468 (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
4469 (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
4470 (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
4471 * config/i386/constraints.md ("z"): New register constraint
4472 for members of SSE_FIRST_REG class.
4473 * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
4474 * config/i386/i386.c (regclass_map): Change class of %xmm0 to
4475 SSE_FIRST_REG class.
4476 (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
4477 (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
4478 (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
4479 (IX86_BUILTIN_PCMPESTRM128): Likewise.
4480 (IX86_BUILTIN_PCMPESTRA128): Likewise.
4481 (IX86_BUILTIN_PCMPESTRC128): Likewise.
4482 (IX86_BUILTIN_PCMPESTRO128): Likewise.
4483 (IX86_BUILTIN_PCMPESTRS128): Likewise.
4484 (IX86_BUILTIN_PCMPESTRZ128): Likewise.
4485 (IX86_BUILTIN_PCMPISTRI128): Likewise.
4486 (IX86_BUILTIN_PCMPISTRM128): Likewise.
4487 (IX86_BUILTIN_PCMPISTRA128): Likewise.
4488 (IX86_BUILTIN_PCMPISTRC128): Likewise.
4489 (IX86_BUILTIN_PCMPISTRO128): Likewise.
4490 (IX86_BUILTIN_PCMPISTRS128): Likewise.
4491 (IX86_BUILTIN_PCMPISTRZ128): Likewise.
4492 (struct builtin_description): Change "flag" field to unsigned.
4493 (bdesc_pcmpestr): New builtin description table.
4494 (bdesc_pcmpistr): Likewise.
4495 (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
4496 v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
4497 Initialize pcmp[ei]str[im] insns for SSE4.2.
4498 (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
4499 (ix86_expand_sse_pcmpistr): Likewise.
4500 (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
4501 * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
4502 (UNSPEC_PCMPISTR): Likewise.
4503 * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
4504 (sse4_2_pcmpestri):New isns pattern.
4505 (sse4_2_pcmpestrm): Likewise.
4506 (sse4_2_pcmpestr_cconly): Likewise.
4507 (sse4_2_pcmpistr): New insn patern and splitter.
4508 (sse4_2_pcmpistri):New isns pattern.
4509 (sse4_2_pcmpistrm): Likewise.
4510 (sse4_2_pcmpistr_cconly): Likewise.
4511 * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
4512 in SSE4.2.
4513
4514 2007-06-01 David Daney <ddaney@avtrex.com>
4515
4516 * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
4517 LOADGP_ABSOLUTE and not binds_local_p.
4518
4519 2007-06-01 Geoffrey Keating <geoffk@apple.com>
4520
4521 * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
4522
4523 2007-06-01 Ian Lance Taylor <iant@google.com>
4524
4525 * tree-vrp.c (compare_name_with_value): Always set
4526 used_strict_overflow if we get a result from the variable itself.
4527
4528 2007-06-01 Ian Lance Taylor <iant@google.com>
4529
4530 PR rtl-optimization/31455
4531 * lower-subreg.c (find_decomposable_subregs): Don't decompose
4532 subregs which have a cast between modes which are not tieable.
4533
4534 2007-06-01 Uros Bizjak <ubizjak@gmail.com>
4535
4536 * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
4537 breaks after return statements.
4538
4539 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
4540
4541 * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
4542 only after no_new_pseudos.
4543
4544 2007-05-31 Eric Christopher <echristo@apple.com>
4545
4546 * expr.c (convert_move): Assert that we don't have a BLKmode
4547 operand.
4548 (store_expr): Handle BLKmode moves by calling emit_block_move.
4549
4550 2007-05-31 Daniel Berlin <dberlin@dberlin.org>
4551
4552 * c-typeck.c (build_indirect_ref): Include type in error message.
4553 (build_binary_op): Pass types to binary_op_error.
4554 * c-common.c (binary_op_error): Take two type arguments, print out
4555 types with error.
4556 * c-common.h (binary_op_error): Update prototype.
4557
4558 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
4559
4560 * config/i386/i386.c: Correct coments on -mno-sse4.
4561
4562 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
4563
4564 * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
4565 (x86_64-*-*): Likewise.
4566 * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
4567 (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
4568 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
4569 (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
4570 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
4571 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
4572 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
4573 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
4574 (OPTION_MASK_ISA_SSE4): Likewise.
4575 (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
4576 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
4577 (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
4578 (override_options): Support SSE4.2.
4579 (ix86_build_const_vector): Support SImode and DImode.
4580 (ix86_build_signbit_mask): Likewise.
4581 (ix86_expand_int_vcond): Support V2DImode.
4582 (IX86_BUILTIN_CRC32QI): New for SSE4.2.
4583 (IX86_BUILTIN_CRC32HI): Likewise.
4584 (IX86_BUILTIN_CRC32SI): Likewise.
4585 (IX86_BUILTIN_CRC32DI): Likewise.
4586 (IX86_BUILTIN_PCMPGTQ): Likewise.
4587 (bdesc_crc32): Likewise.
4588 (bdesc_sse_3arg): Likewise.
4589 (ix86_expand_crc32): Likewise.
4590 (ix86_init_mmx_sse_builtins): Support SSE4.2.
4591 (ix86_expand_builtin): Likewise.
4592 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
4593 __SSE4_2__ for -msse4.2.
4594 * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
4595 (CRC32MODE): Likewise.
4596 (crc32modesuffix): Likewise.
4597 (crc32modeconstraint): Likewise.
4598 (sse4_2_crc32<mode>): Likewise.
4599 (sse4_2_crc32di): Likewise.
4600 * config/i386/i386.opt (msse4.2): New for SSE4.2.
4601 (msse4): Likewise.
4602 * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
4603 * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
4604 * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
4605 (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
4606 (vcondu<mode>): Likewise.
4607 * doc/extend.texi: Document SSE4.2 built-in functions.
4608 * doc/invoke.texi: Document -msse4.2/-msse4.
4609
4610 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
4611
4612 PR tree-optimization/32160
4613 * tree-predcom.c (predcom_tmp_var): New function. Mark created
4614 variable as gimple reg.
4615 (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
4616
4617 2007-05-31 Kazu Hirata <kazu@codesourcery.com>
4618
4619 * gcc.c (main): Don't consider linker options when issuing the
4620 warning about a linker input file not being used.
4621
4622 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4623
4624 * tree-vrp.c (compare_names): Initialize sop.
4625
4626 2007-05-30 Dirk Mueller <dmueller@suse.de>
4627
4628 * cgraphunit.c (cgraph_analyze_function): Remove
4629 computation of inline parameters.
4630
4631 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
4632
4633 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
4634
4635 2007-05-30 Richard Sandiford <richard@codesourcery.com>
4636
4637 * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
4638 Add vx-common.h. Include vxworks.h between vx-common.h and
4639 arm/vxworks.h.
4640 * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
4641 redefining.
4642 * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
4643 (TARGET_ASM_DESTRUCTOR): Likewise.
4644 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
4645 instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
4646 (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
4647 (CC1_SPEC): Add -tstrongarm. Line up backslashes.
4648 (VXWORKS_ENDIAN_SPEC): Define.
4649 (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
4650 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
4651 VXWORKS_* equivalents.
4652 (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
4653 (ASM_FILE_START): Delete.
4654 (TARGET_VERSION): Reformat.
4655 (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
4656 (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
4657 * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
4658 (FPBIT, DPBIT): Define.
4659 (fp-bit.c, dp-bit.c): New rules.
4660 (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
4661 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
4662 * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
4663 * config/arm/arm.h: Include vxworks-dummy.h.
4664 * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
4665 Mark with ATTRIBUTE_UNUSED.
4666 (arm_override_options): Do not allow VxWorks RTP PIC to be used
4667 for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
4668 make it incompatible with -msingle-pic-base.
4669 (arm_function_ok_for_sibcall): Return false for calls that might
4670 go through a VxWorks PIC PLT entry.
4671 (require_pic_register): New function, split out from...
4672 (legitimize_pic_address): ...here. Do not use GOTOFF accesses
4673 for VxWorks RTPs.
4674 (arm_load_pic_register): Handle the VxWorks RTP initialization
4675 sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
4676 (arm_emit_call_insn): New function.
4677 (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
4678 * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
4679 (pic_offset_arm): New pattern.
4680 (call, call_value): Use arm_emit_call_insn.
4681 (call_internal, call_value_internal): New expanders.
4682 * config/arm/lib1funcs.asm (__PLT__): Define to empty for
4683 VxWorks unless __PIC__.
4684
4685 2007-05-30 Eric Christopher <echristo@gmail.com>
4686
4687 * genrecog.c: Include regs.h in generated file.
4688 * genemit.c: Ditto. Fix up formatting.
4689 * config/mn10300/constraints.md: New.
4690 * config/mn10300/mn10300.md: Include.
4691 * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
4692 Fix up for removed macro.
4693 * config/mn10300/predicates.md (call_address_operand): Ditto.
4694 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
4695 (CONST_OK_FOR_I): Ditto.
4696 (CONST_OK_FOR_J): Ditto.
4697 (CONST_OK_FOR_K): Ditto.
4698 (CONST_OK_FOR_L): Ditto.
4699 (CONST_OK_FOR_M): Ditto.
4700 (CONST_OK_FOR_N): Ditto.
4701 (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
4702 (OK_FOR_Q): Ditto.
4703 (OK_FOR_R): Ditto.
4704 (OK_FOR_T): Ditto.
4705 (EXTRA_CONSTRAINT): Ditto.
4706
4707 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
4708
4709 * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
4710 Remove defines.
4711 * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
4712 OPTION_MASK_ISA_64BIT.
4713 * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
4714
4715 2007-05-30 Richard Guenther <rguenther@suse.de>
4716
4717 PR middle-end/32152
4718 * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
4719 types for comparison.
4720 * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
4721 with original typed arguments.
4722 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
4723
4724 2007-05-30 Jakub Jelinek <jakub@redhat.com>
4725
4726 PR tree-optimization/31769
4727 * except.c (duplicate_eh_regions): Clear prev_try if
4728 ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
4729
4730 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
4731
4732 * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
4733 * tree-ssa-sink.c (statement_sink_location): Return basic block and
4734 bsi of the location where statements should be inserted.
4735 (sink_code_in_bb): Take bsi from statement_sink_location.
4736 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
4737 instead of bsi_start.
4738 * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
4739 bsi_insert_after.
4740 * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
4741 (bsi_move_before): Document inconsistency with bsi_move_after.
4742 (tree_redirect_edge_and_branch): Do not create labels if not necessary.
4743
4744 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
4745
4746 * config/i386/i386.h (TARGET_ABM): New define.
4747 (TARGET_POPCNT): Ditto.
4748 (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
4749 New temporary defines to redefine from OPTION_ISA_* defines.
4750 (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
4751 New temporary defines to redefine from OPTION_MASK_ISA_* defines.
4752 (ix86_isa_flags): New extern int declaration.
4753 (TARGET_SUBTARGET_DEFAULT): New define.
4754 (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
4755 (TARGET_SUBTARGET32_DEFAULT): Ditto.
4756 (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
4757 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
4758 * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
4759 * config/i386/darwin.h: Change TARGET_64BIT define to
4760 OPTION_ISA_64BIT.
4761
4762 * config/i386/i386.opt (m3dnowa): Define as undocumented option
4763 using existing "ix86_isa_flags" varible.
4764 (m32, m64): Use existing "ix86_isa_flags" variable.
4765 (mmmx, m3dnow): Ditto.
4766 (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
4767 (mabm): Define as non-negative option using "x86_abm" variable.
4768 (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
4769
4770 * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
4771 Rewrite feature test bitmap.
4772 (ix86_isa_flags): New initialized global int varible.
4773 (ix86_isa_flags_explicit): New static int variable.
4774 (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
4775 msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
4776 i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
4777 target_flags_explicit.
4778 (override_options): Remove "target_enable" and "target_disable" fields
4779 from "struct ptt". Update processor_target_table accordingly. Remove
4780 PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
4781 defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
4782 "target_flags" and "ix86_isa_flags_explicit" instead of
4783 "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
4784 MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
4785 PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
4786 to true when either of PTA_POPCNT or PTA_ABM is set in
4787 processor_alias_table flags entry. Set "x86_prefetch_sse" to true
4788 when either of PTA_PREFETCH_SSE or PTA_SSE is set in
4789 processor_alias_table flags entry. Remove handling of
4790 "target_enable" and "target_disable" fields of processor_target_table.
4791 Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
4792 targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
4793 Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
4794 targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
4795 (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
4796 "target_flags".
4797 (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
4798
4799 2007-05-29 David Daney <ddaney@avtrex.com>
4800
4801 PR gcc/31975
4802 * config/mips/mips.c (mips_output_mi_thunk): Emit
4803 NOTE_INSN_PROLOGUE_END at beginning of the thunk.
4804
4805 2007-05-29 Hui-May Chang <hm.chang@apple.com>
4806 * config/i386/i386.c (ix86_function_regparm): Added checking of
4807 ix86_force_align_arg_pointer to determine the number of
4808 register parameters.
4809
4810 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
4811
4812 * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
4813 (SET_DR_MISALIGNMENT): New.
4814 * tree-vect-analyze.c (vect_compute_data_ref_alignment,
4815 vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
4816 Use SET_DR_MISALIGNMENT.
4817 * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
4818 pointer.
4819 * tree-data-ref.c (create_data_ref, compute_all_dependences,
4820 find_loop_nest): Export.
4821 * tree-data-ref.h (struct data_reference): Change aux field to pointer.
4822 (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
4823 * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
4824 (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
4825 New macros.
4826 (struct mem_ref): Add field reuse_distance.
4827 (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
4828 Initialize reuse_distance field.
4829 (issue_prefetch_ref): Select temporality of prefetch according to
4830 reuse_distance.
4831 (volume_of_references, volume_of_dist_vector, add_subscript_strides,
4832 self_reuse_distance, determine_loop_nest_reuse): New functions.
4833 (loop_prefetch_arrays): Call determine_loop_nest_reuse.
4834 (tree_ssa_prefetch_arrays): Dump L2 cache size.
4835 * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
4836 dependency.
4837
4838 2007-05-29 Daniel Berlin <dberlin@dberlin.org>
4839
4840 * tree-ssa-alias.c: Add aliasing overview.
4841
4842 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
4843 Danny Smith <dannysmith@users.sourceforge.net>
4844
4845 PR target/29498
4846 * config/i386/t-crtfm: Compile crtfastmath.o with
4847 -minline-all-stringops.
4848 * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
4849 * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
4850
4851 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4852
4853 * doc/md.texi: Document constraints on HP PA-RISC.
4854
4855 * pa/constraints.md: New file.
4856 * pa.md: Include constraints.md.
4857 * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
4858 (integer_store_memory_operand, ldil_cint_p): New functions.
4859 * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
4860 * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
4861 IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
4862 * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
4863 * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
4864
4865 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
4866
4867 PR c/31339
4868 * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
4869 case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
4870 case POSTDECREMENT_EXPR>): Return the error_mark_node
4871 if either the real or imaginary parts would an
4872 error_mark_node.
4873
4874 2007-05-28 Daniel Berlin <dberlin@dberlin.org>
4875
4876 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
4877 name when we remove it from a call.
4878
4879 2007-05-28 Kazu Hirata <kazu@codesourcery.com>
4880
4881 * targhooks.c (default_narrow_bitfield): Remove.
4882 * targhooks.h: Remove the prototype for
4883 default_narrow_bitfield.
4884
4885 * langhooks-def.h: Remove the prototype for
4886 hook_get_alias_set_0.
4887 * langhooks.c (hook_get_alias_set_0): Remove.
4888
4889 * global.c (EXECUTE_IF_CONFLICT): Remove.
4890
4891 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4892
4893 PR tree-opt/32100
4894 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
4895 return true when truth_value_p is true and the type
4896 is of signed:1.
4897
4898 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
4899
4900 * doc/install.texi (Prerequisites): We no longer require Autoconf
4901 2.13 for the top-level.
4902
4903 2007-05-28 Uros Bizjak <ubizjak@gmail.com>
4904
4905 * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
4906 memory access via x86_expand_vector_move_misalign() only for
4907 TImode values on 32-bit targets.
4908
4909 2007-05-28 Razya Ladelsky <razya@il.ibm.com>
4910
4911 * matrix-reorg.c: New file. Implement matrix flattening and
4912 transposing optimization.
4913 * tree-pass.h: Add matrix reorg pass.
4914 * common.opt: Add fipa-mreorg flag.
4915 * Makefile.in: Add matrix-reorg.c.
4916 * passes.c: Add matrix reorg pass.
4917 * varpool.c (add_new_static_var): New function.
4918 * cgraph.h (add_new_static_var): Declare.
4919
4920 2007-05-27 Eric Christopher <echristo@apple.com>
4921
4922 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
4923 sp_offset depending on stack size. Save r12 depending
4924 on registers we're saving later.
4925 (rs6000_emit_epilogue): Update sp_offset depending only
4926 on stack size.
4927
4928 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
4929
4930 * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
4931 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
4932 * ifcvt.c (if_convert): Ditto.
4933 * tree-ssa-threadupdate.c (thread_block): Ditto.
4934 (thread_through_all_blocks): Ditto. Assert that loops were analysed.
4935 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
4936 verify_loop_closed_ssa): Check number_of_loops instead of
4937 current_loops.
4938 * predict.c (tree_estimate_probability): Ditto.
4939 * tree-if-conv.c (main_tree_if_conversion): Ditto.
4940 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
4941 * modulo-sched.c (sms_schedule): Ditto.
4942 * tree-scalar-evolution.c (scev_const_prop): Ditto.
4943 (scev_finalize): Do not do anything if scev analysis was not
4944 initialized.
4945 * cfgloopanal.c (mark_irreducible_loops): Do not check whether
4946 current_loops == NULL.
4947 (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
4948 * loop-init.c (loop_optimizer_init): Do not free current_loops when
4949 there are no loops.
4950 (loop_optimizer_finalize): Assert that loops were analyzed.
4951 (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
4952 rtl_doloop): Check number_of_loops instead of current_loops.
4953 * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
4954 current_loops == NULL.
4955 (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
4956 gate_tree_vectorize tree_linear_transform, check_data_deps,
4957 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
4958 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
4959 Check number_of_loops instead of current_loops.
4960 (tree_ssa_loop_done): Do not check whether current_loops == NULL.
4961 * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
4962 free loops if available.
4963 (execute_pre): Do not pass do_fre to fini_pre.
4964
4965 2007-05-27 Tobias Burnus <burnus@net-b.de>
4966
4967 PR middle-end/32083
4968 * real.c (mpfr_from_real): Fix sign of -Inf.
4969
4970 2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
4971
4972 * tree-vect-transform.c (vectorizable_conversion): Initialize
4973 tree_code variables to ERROR_MARK.
4974 (vectorizable_type_demotion): Likewise.
4975 (vectorizable_type_promotion): Likewise.
4976
4977 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
4978
4979 PR target/32065
4980 * config/i386/i386.md (movti): Handle push operands via
4981 ix86_expand_push().
4982
4983 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
4984
4985 * basic-block.h: Remove the prototype for merge_seq_blocks.
4986 * cfgcleanup.c (merge_seq_blocks): Remove.
4987
4988 * tree-flow.h: Remove the prototype for is_aliased_with.
4989 * tree-ssa-alias.c (is_aliased_with): Remove.
4990
4991 2007-05-26 H.J. Lu <hongjiu.lu@intel.com>
4992
4993 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
4994
4995 * config/i386/i386.c (ix86_expand_sse4_unpack): New.
4996
4997 * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
4998 ix86_expand_sse4_unpack if SSE4.1 is enabled.
4999 (vec_unpacks_hi_v16qi): Likewise.
5000 (vec_unpacku_lo_v16qi): Likewise.
5001 (vec_unpacks_lo_v16qi): Likewise.
5002 (vec_unpacku_hi_v8hi): Likewise.
5003 (vec_unpacks_hi_v8hi): Likewise.
5004 (vec_unpacku_lo_v8hi): Likewise.
5005 (vec_unpacks_lo_v8hi): Likewise.
5006 (vec_unpacku_hi_v4si): Likewise.
5007 (vec_unpacks_hi_v4si): Likewise.
5008 (vec_unpacku_lo_v4si): Likewise.
5009 (vec_unpacks_lo_v4si): Likewise.
5010
5011 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
5012
5013 * c-typeck.c, config/arm/arm.c, config/darwin.c,
5014 config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
5015 omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
5016 follow spelling conventions in various
5017 warning/error/diagnostic messages.
5018
5019 * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
5020 df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
5021 fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
5022 tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
5023 tree-vrp.c: Fix comment typos. Follow spelling conventions.
5024 * doc/tm.texi: Follow spelling conventions.
5025
5026 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
5027
5028 PR tree-opt/32090
5029 * tree-ssa-forwprop.c
5030 (forward_propagate_addr_into_variable_array_index): Remove
5031 the lhs argument. Use the type of def_rhs instead of lhs.
5032 (forward_propagate_addr_expr_1): Update use of
5033 forward_propagate_addr_into_variable_array_index.
5034
5035 2007-05-25 Sandra Loosemore <sandra@codesourcery.com>
5036 Nigel Stephens <nigel@mips.com>
5037
5038 * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
5039 function attributes, "far" being an alias for "long_call".
5040 (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
5041 (mips_near_type_p, mips_far_type_p): New.
5042 (mips_comp_type_attributes): New function to check that attributes
5043 attached to a function type are compatible.
5044 (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
5045 TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
5046 to the target function of the thunk.
5047 (mips_encode_section_info): Check for "near" and "far" function
5048 attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
5049
5050 * config/mips/predicates.md (const_call_insn_operand): Test only
5051 SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
5052
5053 * doc/extend.texi (Function Attributes): Document MIPS "near" and
5054 "far" attributes.
5055
5056 * testsuite/gcc.target/mips/near-far-1.c: New test case.
5057 * testsuite/gcc.target/mips/near-far-2.c: New test case.
5058 * testsuite/gcc.target/mips/near-far-3.c: New test case.
5059 * testsuite/gcc.target/mips/near-far-4.c: New test case.
5060
5061 2007-05-25 Eric Christopher <echristo@apple.com>
5062
5063 * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
5064 to x86-darwin configurations.
5065 * config/i386/t-darwin: Add softfp support.
5066 * config/i386/t-darwin64: Ditto.
5067 * config/i386/sfp-machine.h: If mach then don't use
5068 aliasing, emit a stub to call.
5069
5070 2007-05-25 Kazu Hirata <kazu@codesourcery.com>
5071
5072 * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
5073 haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
5074 tree-predcom.c, tree-ssa-alias-warnings.c,
5075 tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
5076 comment typos. Follow spelling conventions.
5077 * doc/cpp.texi, doc/invoke.texi: Fix typos.
5078
5079 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
5080
5081 PR target/32065
5082 * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
5083 constants into memory. Expand unaligned memory references for
5084 SSE modes via x86_expand_vector_move_misalign() function.
5085
5086 2007-05-25 Uros Bizjak <ubizjak@gmail.com>
5087
5088 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
5089 "memory" attribute for "sseishft" type insn without operands[2].
5090
5091 2007-05-25 Dirk Mueller <dmueller@suse.de>
5092 Marcus Meissner <meissner@suse.de>
5093
5094 * doc/extend.texi (alloc_size): New attribute.
5095 * c-common.c (handle_alloc_size_attribute): New.
5096 * tree-object-size.c (alloc_object_size): Use alloc_size
5097 attribute, if available.
5098
5099 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
5100
5101 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
5102 with MASK_SSE2.
5103 (__builtin_ia32_vec_ext_v2di): Likewise.
5104 (__builtin_ia32_vec_ext_v4si): Likewise.
5105 (__builtin_ia32_vec_ext_v8hi): Likewise.
5106 (__builtin_ia32_vec_ext_v16qi): Likewise.
5107 (__builtin_ia32_vec_set_v8hi): Likewise.
5108
5109 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
5110
5111 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
5112
5113 2007-05-25 Richard Sandiford <richard@codesourcery.com>
5114
5115 * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
5116 (arm_is_longcall_p): Rename to...
5117 (arm_is_long_call_p): ...this. Take a single tree argument and
5118 return a bool.
5119 * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
5120 (CUMULATIVE_ARGS): Remove call_cookie.
5121 (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
5122 (ENCODED_LONG_CALL_ATTR_P): Delete.
5123 (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
5124 LONG_CALL_FLAG_CHAR cases.
5125 (ARM_DECLARE_FUNCTION_SIZE): Delete.
5126 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
5127 ARM_DECLARE_FUNCTION_SIZE.
5128 * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
5129 (arm_function_arg): Return const0_rtx for VOIDmode arguments.
5130 (arm_encode_call_attribute, current_file_function_operand): Delete.
5131 (arm_function_in_section_p): New function.
5132 (arm_is_longcall_p): Rename to...
5133 (arm_is_long_call_p): ...this. Take the target function as a single
5134 argument and return a bool. Do not rely on call cookies. Check
5135 whether the target symbol is in the same section as the current
5136 function, not just the same compilation unit.
5137 (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
5138 (arm_encode_section_info): Don't encode a call type.
5139 * config/arm/arm.md (call, call_value): Update calls to
5140 arm_is_long(_)call_p. Simplify logic.
5141 (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
5142 Update calls to arm_is_long(_)call_p.
5143
5144 2007-05-25 Richard Guenther <rguenther@suse.de>
5145
5146 PR tree-optimization/31982
5147 * tree-ssa-forwprop.c
5148 (forward_propagate_addr_into_variable_array_index): Handle arrays
5149 with element size one.
5150
5151 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
5152
5153 * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
5154 (umulsi3_highpart): Likewise.
5155
5156 2007-05-24 Ian Lance Taylor <iant@google.com>
5157
5158 PR rtl-optimization/32069
5159 * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
5160 is NULL.
5161
5162 2007-05-24 Ollie Wild <aaw@google.com>
5163
5164 * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
5165 description.
5166
5167 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk>
5168
5169 * postreload-gcse.c (reg_changed_after_insn_p): New function.
5170 (oprs_unchanged_p): Use it to check all registers in a REG.
5171 (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
5172 (reg_set_between_after_reload_p): Delete.
5173 (reg_used_between_after_reload_p): Likewise.
5174 (reg_set_or_used_since_bb_start): Likewise.
5175 (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
5176 and reg_used_between_p instead of reg_set_or_used_since_bb_start.
5177 Use reg_set_between_p instead of reg_set_between_after_reload_p.
5178 * rtlanal.c (reg_set_p): Check whether REG overlaps
5179 regs_invalidated_by_call, rather than just checking the
5180 membership of REGNO (REG).
5181
5182 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
5183
5184 * doc/passes.texi: Document predictive commoning.
5185 * doc/invoke.texi (-fpredictive-commoning): Document.
5186 * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
5187 * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
5188 adding indices to the generated name.
5189 (schedule_sm): Pass 0 to get_lsm_tmp_name.
5190 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
5191 * tree-pretty-print.c (op_symbol_1): Renamed to ...
5192 (op_symbol_code): ... and exported.
5193 (dump_omp_clause, op_symbol): Use op_symbol_code
5194 instead of op_symbol_1.
5195 * tree-pass.h (pass_predcom): Declare.
5196 * timevar.def (TV_PREDCOM): New timevar.
5197 * tree-ssa-loop.c (run_tree_predictive_commoning,
5198 gate_tree_predictive_commoning, pass_predcom): New.
5199 * tree-data-ref.c (find_data_references_in_loop): Find the
5200 references in dominance order.
5201 (canonicalize_base_object_address): Ensure that the result has
5202 pointer type.
5203 (dr_analyze_innermost): Export.
5204 (create_data_ref): Code to fail for references with invariant
5205 address moved ...
5206 (find_data_references_in_stmt): ... here.
5207 * tree-data-ref.h (dr_analyze_innermost): Declare.
5208 * tree-affine.c: Include tree-gimple.h and hashtab.h.
5209 (aff_combination_find_elt, name_expansion_hash,
5210 name_expansion_eq, tree_to_aff_combination_expand,
5211 double_int_constant_multiple_p, aff_combination_constant_multiple_p):
5212 New functions.
5213 * tree-affine.h (aff_combination_constant_multiple_p,
5214 tree_to_aff_combination_expand): Declare.
5215 * tree-predcom.c: New file.
5216 * common.opt (fpredictive-commoning): New option.
5217 * tree-flow.h (op_symbol_code, tree_predictive_commoning,
5218 stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
5219 * Makefile.in (tree-predcom.o): Add.
5220 (tree-affine.o): Add TREE_GIMPLE_H dependency.
5221 * passes.c (init_optimization_passes): Add dceloop after
5222 copy propagation in loop optimizer. Add predictive commoning
5223 to loop optimizer passes.
5224
5225 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
5226
5227 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
5228 default hook.
5229
5230 2007-05-24 Jan Hubicka <jh@suse.cz>
5231
5232 * gengenrtl.c (gendecl, gendef): Output the gens annotated for
5233 statistics.
5234 (genheader): Include statistics.h.
5235
5236 * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
5237 notes are gone.
5238 * print-rtl.c (flag_dump_unnumbered): Update comments.
5239 (print_rtl): Fix my previous change.
5240 * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
5241 specific data.
5242
5243 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
5244
5245 PR middle-end/32018
5246 * tree-ssa-threadupdate.c (thread_through_loop_header): Use
5247 set_loop_copy.
5248 (thread_through_all_blocks): Call initialize_original_copy_tables
5249 and free_original_copy_tables.
5250 * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
5251 Use set_loop_copy.
5252 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
5253 * cfghooks.c (duplicate_block): Use get_loop_copy.
5254 * cfg.c: Include cfgloop.h.
5255 (loop_copy): New hash table.
5256 (initialize_original_copy_tables): Initialize loop_copy table.
5257 (free_original_copy_tables): Free loop_copy table.
5258 (copy_original_table_clear, copy_original_table_set,
5259 set_loop_copy, get_loop_copy): New functions.
5260 (set_bb_original, set_bb_copy): Use copy_original_table_set.
5261 * cfgloop.h (struct loop): Remove copy field.
5262 * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
5263 * basic-block.h (set_loop_copy, get_loop_copy): Declare.
5264
5265 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
5266
5267 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
5268 -msse/-msse2/-msse3.
5269
5270 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
5271
5272 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
5273 __builtin_ia32_vec_set_v2di with MASK_64BIT.
5274
5275 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net>
5276
5277 PR target/27067
5278 * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
5279 * targhooks.h (default_mangle_decl_assembler_name): Declare
5280 default hook.
5281 * targhooks.c (default_mangle_decl_assembler_name): Define
5282 default hook.
5283 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
5284 default hook.
5285 * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
5286 * langhooks.c (lhd_set_decl_assembler_name): Call
5287 targetm.mangle_decl_assembler_name for names with global scope.
5288
5289 * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
5290 default.
5291 (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
5292 * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
5293 Declare.
5294 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
5295 New. Factored out of i386_pe_encode_section_info.
5296 (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
5297 Move check for prior decoration of stdcall
5298 symbols to i386_pe_encode_section_info.
5299 (i386_pe_encode_section_info): Adjust call to
5300 gen_stdcall_or_fastcall_suffix. Use
5301 i386_pe_maybe_mangle_decl_assembler_name, if needed.
5302 (i386_pe_mangle_decl_assembler_name): New. Wrap
5303 i386_pe_maybe_mangle_decl_assembler_name.
5304
5305 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
5306
5307 * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
5308 INTEGRAL_TYPE_P and TYPE_UNSIGNED.
5309 * langhooks.c (get_signed_or_unsigned_type): Don't check for
5310 INTEGRAL_TYPE_P or TYPE_UNSIGNED.
5311 (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
5312 TYPE_UNSIGNED.
5313
5314 2007-05-23 Sandra Loosemore <sandra@codesourcery.com>
5315 Nigel Stephens <nigel@mips.com>
5316 Richard Sandiford <richard@codesourcery.com>
5317
5318 Fix up MIPS16 hard float and add support for complex.
5319
5320 * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
5321 (TARGET_SOFT_FLOAT_ABI): New.
5322 (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
5323 __mips_soft_float to reflect the ABI in use, not whether the
5324 FPU is directly accessible (e.g., in MIPS16 mode).
5325 (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
5326 (UNITS_PER_FPVALUE): Likewise.
5327
5328 * config/mips/mips.c (mips_expand_call): Remove redundant
5329 TARGET_MIPS16 check.
5330 (mips_arg_regno): New.
5331 (function_arg_advance): When setting bits in cum->fp_code for
5332 MIPS16, don't subtract 1 from cum->arg_number, since it is now
5333 zero-based.
5334 (function_arg): Use mips_arg_regno.
5335 (mips_return_mode_in_fpr_p): New.
5336 (mips16_call_stub_mode_suffix): New.
5337 (mips16_cfun_returns_in_fpr_p): New.
5338 (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
5339 (mips_output_function_prologue): Test mips16_hard_float, not
5340 !TARGET_SOFT_FLOAT, to decide when a function stub is required.
5341 (mips_expand_epilogue): Call MIPS16 helper routines to copy
5342 return value into a floating-point register.
5343 (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
5344 (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
5345 (mips16_fp_args): Handle MIPS32r2 ISA which supports
5346 TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
5347 word of double arguments from or to the high bits of 64-bit
5348 floating point registers.
5349 (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
5350 (mips16_fpret_double): New helper function.
5351 (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add
5352 support for complex modes. Fill in DECL_RESULT for stubdecl.
5353 (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
5354
5355 * config/mips/mips16.S
5356 (RET, ARG1, ARG2): New.
5357 (MERGE_GPRf, MERGE_GPRt): New.
5358 (DELAYt, DELAYf): New.
5359 (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
5360 (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
5361 (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
5362 (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
5363 (SFOP): Renamed to...
5364 (OPSF3): This, and macro-ified. Updated all uses.
5365 (SFOP2): Renamed to...
5366 (OPSF2): This, and macro-ified. Updated all uses.
5367 (SFCMP): Renamed to...
5368 (CMPSF): This, and macro-ified. Updated all uses.
5369 (SFREVCMP): Renamed to...
5370 (REVCMPSF): This, and macro-ified. Updated all uses.
5371 (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
5372 (LDDBL1, LDDBL2, RETDBL): Deleted.
5373 (DFOP): Renamed to...
5374 (OPDF3): This, and macro-ified. Updated all uses.
5375 (DFOP2): Renamed to...
5376 (OPDF2): This, and macro-ified. Updated all uses.
5377 (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
5378 (DFCMP): Renamed to...
5379 (CMPDF): This, and macro-ified. Updated all uses.
5380 (DFREVCMP): Renamed to...
5381 (REVCMPDF): This, and macro-ified. Updated all uses.
5382 (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
5383 (RET_FUNCTION): New.
5384 (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
5385 (__mips16_ret_sc, __mips16_ret_dc): New.
5386 (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
5387 STUB_ARGS_6, STUB_ARGS_10): New.
5388 (CALL_STUB_NO_RET): New.
5389 (__mips16_call_stub_1): Macro-ified.
5390 (__mips16_call_stub_5): Macro-ified.
5391 (__mips16_call_stub_2): Macro-ified.
5392 (__mips16_call_stub_6): Macro-ified.
5393 (__mips16_call_stub_9): Macro-ified.
5394 (__mips16_call_stub_10): Macro-ified.
5395 (CALL_STUB_RET): New.
5396 (__mips16_call_stub_sf_0): Macro-ified.
5397 (__mips16_call_stub_sf_1): Macro-ified.
5398 (__mips16_call_stub_sf_5): Macro-ified.
5399 (__mips16_call_stub_sf_2): Macro-ified.
5400 (__mips16_call_stub_sf_6): Macro-ified.
5401 (__mips16_call_stub_sf_9): Macro-ified.
5402 (__mips16_call_stub_sf_10): Macro-ified.
5403 (__mips16_call_stub_df_0): Macro-ified.
5404 (__mips16_call_stub_df_1): Macro-ified.
5405 (__mips16_call_stub_df_5): Macro-ified.
5406 (__mips16_call_stub_df_2): Macro-ified.
5407 (__mips16_call_stub_df_6): Macro-ified.
5408 (__mips16_call_stub_df_9): Macro-ified.
5409 (__mips16_call_stub_df_10): Macro-ified.
5410 (__mips16_call_stub_sc_0): New.
5411 (__mips16_call_stub_sc_1): New.
5412 (__mips16_call_stub_sc_5): New.
5413 (__mips16_call_stub_sc_2): New.
5414 (__mips16_call_stub_sc_6): New.
5415 (__mips16_call_stub_sc_9): New.
5416 (__mips16_call_stub_sc_10): New.
5417 (__mips16_call_stub_dc_0): New.
5418 (__mips16_call_stub_dc_1): New.
5419 (__mips16_call_stub_dc_5): New.
5420 (__mips16_call_stub_dc_2): New.
5421 (__mips16_call_stub_dc_6): New.
5422 (__mips16_call_stub_dc_9): New.
5423 (__mips16_call_stub_dc_10): New.
5424
5425 * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
5426 * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
5427 * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
5428
5429 2007-05-23 Ian Lance Taylor <iant@google.com>
5430
5431 * doc/invoke.texi (Invoking GCC): Document that the order of the
5432 -l option matters.
5433
5434 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
5435
5436 PR target/30987
5437 * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
5438 * config/score/predicate.md (const_pow2, const_npow2): Remove.
5439 * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
5440 undef.
5441
5442 PR target/30474
5443 * config/score/score.c (score_print_operand): Make sure that only
5444 lower bits are used.
5445
5446 2007-05-22 Ian Lance Taylor <iant@google.com>
5447
5448 * tree-vrp.c (avoid_overflow_infinity): New static function,
5449 broken out of set_value_range_to_value.
5450 (set_value_range_to_value): Call avoid_overflow_infinity.
5451 (extract_range_from_assert): Likewise.
5452
5453 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5454
5455 PR middle-end/31095
5456 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
5457 change the type before looking for a COMPOUND_EXPR.
5458
5459 2007-05-22 Ian Lance Taylor <iant@google.com>
5460
5461 * lower-subreg.c (decompose_multiword_subregs): If we change an
5462 insn, call remove_retval_note on it.
5463
5464 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
5465
5466 * regs.h (end_hard_regno): New function.
5467 (END_HARD_REGNO, END_REGNO): New macros.
5468 (add_to_hard_reg_set): New function.
5469 (remove_from_hard_reg_set): Likewise.
5470 (in_hard_reg_set_p): Likewise.
5471 (overlaps_hard_reg_set_p): Likewise.
5472 * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
5473 (note_btr_set): Use END_HARD_REGNO.
5474 * caller-save.c (setup_save_areas): Use end_hard_regno.
5475 (mark_set_regs): Use END_HARD_REGNO.
5476 (add_stored_regs): Use end_hard_regno.
5477 (mark_referenced_regs): Use add_to_hard_reg_set.
5478 * combine.c (update_table_tick): Use END_REGNO.
5479 (record_value_for_reg): Likewise.
5480 (record_dead_and_set_regs): Likewise.
5481 (get_last_value_validate): Likewise.
5482 (use_crosses_set_p): Likewise.
5483 (reg_dead_at_p_1): Likewise.
5484 (reg_dead_at_p): Likewise.
5485 (mark_used_regs_combine): Use add_to_hard_reg_set.
5486 (move_deaths): Use END_HARD_REGNO.
5487 (reg_bitfield_target_p): Use end_hard_regno.
5488 (distribute_notes): Use END_HARD_REGNO.
5489 * cse.c (mention_regs): Use END_REGNO.
5490 (insert): Use add_to_hard_reg_set.
5491 (invalidate): Use END_HARD_REGNO.
5492 (invalidate_for_call): Likewise.
5493 (exp_equiv_p): Use END_REGNO.
5494 (cse_insn): Likewise.
5495 * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
5496 * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
5497 * df-scan.c (df_ref_record): Use END_HARD_REGNO.
5498 * function.c (keep_stack_depressed): Use end_hard_regno.
5499 * global.c (global_alloc): Use end_hard_regno.
5500 (global_conflicts): Use add_to_hard_reg_set instead of
5501 mark_reg_live_nc.
5502 (find_reg): Likewise.
5503 (mark_reg_store): Likewise.
5504 (mark_reg_conflicts): Likewise.
5505 (mark_reg_death): Use remove_from_hard_reg_set.
5506 (mark_reg_live_nc): Delete.
5507 (set_preference): Use end_hard_regno.
5508 * local-alloc.c (mark_life): Use add_to_hard_reg_set and
5509 remove_from_hard_reg_set.
5510 (post_mark_life): Use add_to_hard_reg_set.
5511 * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
5512 (reg_becomes_live): Use add_to_hard_reg_set.
5513 * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
5514 (peep2_find_free_register): Use add_to_hard_reg_set.
5515 * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
5516 * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
5517 * regrename.c (note_sets): Use add_to_hard_reg_set.
5518 (clear_dead_regs): Use remove_from_hard_reg_set.
5519 (regrename_optimize): Use add_to_hard_reg_set.
5520 (find_oldest_value_reg): Use in_hard_reg_set_p.
5521 * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
5522 (hard_reg_set_here_p): Use end_hard_regno.
5523 (decompose): Likewise.
5524 (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
5525 (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
5526 * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
5527 (mark_home_live): Use end_hard_regno.
5528 (spill_hard_reg): Likewise.
5529 (clear_reload_reg_in_use): Likewise.
5530 * reorg.c (delete_prior_computation): Use END_REGNO.
5531 * resource.c (update_live_status): Use END_HARD_REGNO.
5532 (mark_referenced_resources): Use add_to_hard_reg_set.
5533 (mark_set_resources): Likewise.
5534 (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set.
5535 * rtlanal.c (refers_to_regno_p): Use END_REGNO.
5536 (reg_overlap_mentioned_p): Likewise.
5537 (dead_or_set_p): Likewise. Use an exclusive upper loop bound.
5538 (covers_regno_no_parallel_p): Use END_REGNO.
5539 (find_regno_note): Likewise.
5540 (find_reg_fusage): Use END_HARD_REGNO.
5541 * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
5542 * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
5543
5544 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
5545
5546 * mode-switching.c (reg_dies): Change type of second argument to
5547 "HARD_REG_SET *".
5548 (optimize_mode_switching): Update accordingly.
5549
5550 2007-05-22 Richard Sandiford <richard@codesourcery.com>
5551
5552 * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
5553 in favor of...
5554 (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
5555 (hard_reg_set_empty_p): ...these new functions.
5556 * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
5557 GO_IF_HARD_REG_SUBSET.
5558 * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
5559 instead of GO_IF_HARD_REG_EQUAL.
5560 * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
5561 instead of GO_IF_HARD_REG_EQUAL.
5562 * global.c (find_reg): Use hard_reg_set_empty_p instead of
5563 GO_IF_HARD_REG_SUBSET.
5564 (modify_reg_pav): Use hard_reg_set_empty_p instead of
5565 GO_IF_HARD_REG_EQUAL.
5566 * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
5567 of GO_IF_HARD_REG_SUBSET.
5568 * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
5569 instead of GO_IF_HARD_REG_EQUAL.
5570 * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
5571 hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
5572 (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
5573 of GO_IF_HARD_REG_SUBSET,
5574 * reload1.c (finish_spills): Use hard_reg_subset_p instead of
5575 GO_IF_HARD_REG_SUBSET.
5576 * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
5577 instead of GO_IF_HARD_REG_EQUAL.
5578 * config/sh/sh.c (push_regs, calc_live_regs): Use
5579 hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
5580 (hard_regs_intersect_p): Delete.
5581
5582 2007-05-22 Janis Johnson <janis187@us.ibm.com>
5583
5584 * doc/sourcebuild.texi (Test Directives) Add dg-message.
5585
5586 2007-05-22 H.J. Lu <hongjiu.lu@intel.com>
5587 Richard Henderson <rth@redhat.com>
5588
5589 * config.gcc (i[34567]86-*-*): Add smmintrin.h to
5590 extra_headers.
5591 (x86_64-*-*): Likewise.
5592
5593 * i386/i386-modes.def (V2QI): New.
5594
5595 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
5596 SSE4A.
5597 (override_options): Support SSE4.1.
5598 (IX86_BUILTIN_BLENDPD): New for SSE4.1.
5599 (IX86_BUILTIN_BLENDPS): Likewise.
5600 (IX86_BUILTIN_BLENDVPD): Likewise.
5601 (IX86_BUILTIN_BLENDVPS): Likewise.
5602 (IX86_BUILTIN_PBLENDVB128): Likewise.
5603 (IX86_BUILTIN_PBLENDW128): Likewise.
5604 (IX86_BUILTIN_DPPD): Likewise.
5605 (IX86_BUILTIN_DPPS): Likewise.
5606 (IX86_BUILTIN_INSERTPS128): Likewise.
5607 (IX86_BUILTIN_MOVNTDQA): Likewise.
5608 (IX86_BUILTIN_MPSADBW128): Likewise.
5609 (IX86_BUILTIN_PACKUSDW128): Likewise.
5610 (IX86_BUILTIN_PCMPEQQ): Likewise.
5611 (IX86_BUILTIN_PHMINPOSUW128): Likewise.
5612 (IX86_BUILTIN_PMAXSB128): Likewise.
5613 (IX86_BUILTIN_PMAXSD128): Likewise.
5614 (IX86_BUILTIN_PMAXUD128): Likewise.
5615 (IX86_BUILTIN_PMAXUW128): Likewise.
5616 (IX86_BUILTIN_PMINSB128): Likewise.
5617 (IX86_BUILTIN_PMINSD128): Likewise.
5618 (IX86_BUILTIN_PMINUD128): Likewise.
5619 (IX86_BUILTIN_PMINUW128): Likewise.
5620 (IX86_BUILTIN_PMOVSXBW128): Likewise.
5621 (IX86_BUILTIN_PMOVSXBD128): Likewise.
5622 (IX86_BUILTIN_PMOVSXBQ128): Likewise.
5623 (IX86_BUILTIN_PMOVSXWD128): Likewise.
5624 (IX86_BUILTIN_PMOVSXWQ128): Likewise.
5625 (IX86_BUILTIN_PMOVSXDQ128): Likewise.
5626 (IX86_BUILTIN_PMOVZXBW128): Likewise.
5627 (IX86_BUILTIN_PMOVZXBD128): Likewise.
5628 (IX86_BUILTIN_PMOVZXBQ128): Likewise.
5629 (IX86_BUILTIN_PMOVZXWD128): Likewise.
5630 (IX86_BUILTIN_PMOVZXWQ128): Likewise.
5631 (IX86_BUILTIN_PMOVZXDQ128): Likewise.
5632 (IX86_BUILTIN_PMULDQ128): Likewise.
5633 (IX86_BUILTIN_PMULLD128): Likewise.
5634 (IX86_BUILTIN_ROUNDPD): Likewise.
5635 (IX86_BUILTIN_ROUNDPS): Likewise.
5636 (IX86_BUILTIN_ROUNDSD): Likewise.
5637 (IX86_BUILTIN_ROUNDSS): Likewise.
5638 (IX86_BUILTIN_PTESTZ): Likewise.
5639 (IX86_BUILTIN_PTESTC): Likewise.
5640 (IX86_BUILTIN_PTESTNZC): Likewise.
5641 (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
5642 (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
5643 (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
5644 (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
5645 (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
5646 (bdesc_ptest): New.
5647 (bdesc_sse_3arg): Likewise.
5648 (bdesc_2arg): Likewise.
5649 (bdesc_1arg): Likewise.
5650 (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins
5651 with 3 args.
5652 (ix86_expand_sse_4_operands_builtin): New.
5653 (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
5654 smaller than 8 bits as the 2nd arg.
5655 (ix86_expand_sse_ptest): New.
5656 (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
5657 (ix86_expand_vector_set): Support SSE4.1.
5658 (ix86_expand_vector_extract): Likewise.
5659
5660 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
5661 __SSE4_1__ for -msse4.1.
5662
5663 * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
5664 (UNSPEC_INSERTPS): Likewise.
5665 (UNSPEC_DP): Likewise.
5666 (UNSPEC_MOVNTDQA): Likewise.
5667 (UNSPEC_MPSADBW): Likewise.
5668 (UNSPEC_PHMINPOSUW): Likewise.
5669 (UNSPEC_PTEST): Likewise.
5670 (UNSPEC_ROUNDP): Likewise.
5671 (UNSPEC_ROUNDS): Likewise.
5672
5673 * config/i386/i386.opt (msse4.1): New for SSE4.1.
5674
5675 * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
5676 (const_pow2_1_to_32768_operand): Likewise.
5677
5678 * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
5679 file.
5680
5681 * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
5682 SSE4.1.
5683 (sse4_1_insertps): Likewise.
5684 (*sse4_1_extractps): Likewise.
5685 (sse4_1_ptest): Likewise.
5686 (sse4_1_mulv2siv2di3): Likewise.
5687 (*sse4_1_mulv4si3): Likewise.
5688 (*sse4_1_smax<mode>3): Likewise.
5689 (*sse4_1_umax<mode>3): Likewise.
5690 (*sse4_1_smin<mode>3): Likewise.
5691 (*sse4_1_umin<mode>3): Likewise.
5692 (sse4_1_eqv2di3): Likewise.
5693 (*sse4_1_pinsrb): Likewise.
5694 (*sse4_1_pinsrd): Likewise.
5695 (*sse4_1_pinsrq): Likewise.
5696 (*sse4_1_pextrb): Likewise.
5697 (*sse4_1_pextrb_memory): Likewise.
5698 (*sse4_1_pextrw_memory): Likewise.
5699 (*sse4_1_pextrq): Likewise.
5700 (sse4_1_blendpd): Likewise.
5701 (sse4_1_blendps): Likewise.
5702 (sse4_1_blendvpd): Likewise.
5703 (sse4_1_blendvps): Likewise.
5704 (sse4_1_dppd): Likewise.
5705 (sse4_1_dpps): Likewise.
5706 (sse4_1_movntdqa): Likewise.
5707 (sse4_1_mpsadbw): Likewise.
5708 (sse4_1_packusdw): Likewise.
5709 (sse4_1_pblendvb): Likewise.
5710 (sse4_1_pblendw): Likewise.
5711 (sse4_1_phminposuw): Likewise.
5712 (sse4_1_extendv8qiv8hi2): Likewise.
5713 (*sse4_1_extendv8qiv8hi2): Likewise.
5714 (sse4_1_extendv4qiv4si2): Likewise.
5715 (*sse4_1_extendv4qiv4si2): Likewise.
5716 (sse4_1_extendv2qiv2di2): Likewise.
5717 (*sse4_1_extendv2qiv2di2): Likewise.
5718 (sse4_1_extendv4hiv4si2): Likewise.
5719 (*sse4_1_extendv4hiv4si2): Likewise.
5720 (sse4_1_extendv2hiv2di2): Likewise.
5721 (*sse4_1_extendv2hiv2di2): Likewise.
5722 (sse4_1_extendv2siv2di2): Likewise.
5723 (*sse4_1_extendv2siv2di2): Likewise.
5724 (sse4_1_zero_extendv8qiv8hi2): Likewise.
5725 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
5726 (sse4_1_zero_extendv4qiv4si2): Likewise.
5727 (*sse4_1_zero_extendv4qiv4si2): Likewise.
5728 (sse4_1_zero_extendv2qiv2di2): Likewise.
5729 (*sse4_1_zero_extendv2qiv2di2): Likewise.
5730 (sse4_1_zero_extendv4hiv4si2): Likewise.
5731 (*sse4_1_zero_extendv4hiv4si2): Likewise.
5732 (sse4_1_zero_extendv2hiv2di2): Likewise.
5733 (*sse4_1_zero_extendv2hiv2di2): Likewise.
5734 (sse4_1_zero_extendv2siv2di2): Likewise.
5735 (*sse4_1_zero_extendv2siv2di2): Likewise.
5736 (sse4_1_roundpd): Likewise.
5737 (sse4_1_roundps): Likewise.
5738 (sse4_1_roundsd): Likewise.
5739 (sse4_1_roundss): Likewise.
5740 (mulv4si3): Don't expand for SSE4.1.
5741 (smax<mode>3): Likewise.
5742 (umaxv4si3): Likewise.
5743 (uminv16qi3): Likewise.
5744 (umin<mode>3): Likewise.
5745 (umaxv8hi3): Rewrite. Only enabled for SSE4.1.
5746
5747 * doc/extend.texi: Document SSE4.1 built-in functions.
5748
5749 * doc/invoke.texi: Document -msse4.1.
5750
5751 2007-05-22 Nathan Sidwell <nathan@codesourcery.com>
5752
5753 * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
5754 * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
5755 * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
5756 (ASM_SPEC): Add asm_pcrel_spec.
5757 (EXTRA_SPECS): Add asm_pcrel_spec.
5758
5759 2007-05-21 David Daney <ddaney@avtrex.com>
5760
5761 * doc/install.texi (Building a cross compiler): Add requirements
5762 for Java cross compiler.
5763
5764 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
5765
5766 PR middle-end/31995
5767 * tree-chrec.c (evolution_function_is_affine_multivariate_p):
5768 Add loopno argument. Use evolution_function_is_invariant_rec_p
5769 instead of evolution_function_is_constant_p.
5770 Update calls to evolution_function_is_affine_multivariate_p.
5771 * tree-chrec.h (evolution_function_is_affine_multivariate_p):
5772 Add loopno argument.
5773 * tree-scalar-evolution.c (gather_chrec_stats): Call
5774 evolution_function_is_affine_multivariate_p with a loop
5775 number of 0.
5776 * tree-data-ref.c (analyze_miv_subscript): Likewise.
5777 (analyze_overlapping_iterations): Likewise.
5778 (access_functions_are_affine_or_constant_p): Likewise.
5779 (build_classic_dist_vector_1): If the access functions
5780 are equal, don't do anything.
5781
5782 2007-05-21 Paolo Bonzini <bonzini@gnu.org>
5783 Paolo Carlini <pcarlini@suse.de>
5784 Uros Bizjak <ubizjak@gmail.com>
5785
5786 * c-cppbuiltin.c (c_cpp_builtins): Define
5787 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
5788 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
5789 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
5790 * doc/cpp.texi ([Standard Predefined Macros]): Document.
5791
5792 2007-05-21 Mike Stump <mrs@apple.com>
5793
5794 * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
5795 handling as well.
5796 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
5797
5798 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
5799
5800 * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
5801 implementation if __OPTIMIZE__ is not defined.
5802 (_mm_alignr_pi8): Ditto.
5803 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
5804 (_mm_inserti_si64): Ditto.
5805 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
5806 (_mm_slli_epi16): Ditto.
5807 (_mm_slli_epi32): Ditto.
5808 (_mm_slli_epi64): Ditto.
5809 (_mm_srai_epi16): Ditto.
5810 (_mm_srai_epi32): Ditto.
5811 (_mm_srli_si128): Ditto.
5812 (_mm_slli_si128): Ditto.
5813 (_mm_srli_epi16): Ditto.
5814 (_mm_srli_epi32): Ditto.
5815 (_mm_srli_epi64): Ditto.
5816 (_mm_extract_epi16): Ditto.
5817 (_mm_insert_epi16): Ditto.
5818 (_mm_shufflehi_epi16): Ditto.
5819 (_mm_shufflelo_epi16): Ditto.
5820 (_mm_shuffle_epi32): Ditto.
5821 * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
5822 (_m_pextrw): Ditto.
5823 (_mm_insert_pi16): Ditto.
5824 (_m_pinsrw): Ditto.
5825 (_mm_shuffle_pi16): Ditto.
5826 (_m_pshufw): Ditto.
5827 (_mm_shufle_ps): Ditto.
5828 (_mm_prefetch): Ditto.
5829
5830 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
5831
5832 * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
5833 * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
5834 * real.c (encode_i370_single, decode_i370_single,
5835 encode_i370_double, decode_i370_double): Functions removed.
5836 (i370_single_format, i370_double_format): Initializations removed.
5837 (real_maxval, round_for_format, exact_real_truncate, significand_size):
5838 Consider the log2_b field to always be one.
5839 (ieee_single_format, mips_single_format, coldfire_single_format,
5840 ieee_double_format, mips_double_format, coldfire_double_format,
5841 ieee_extended_motorola_format, ieee_extended_intel_96_format,
5842 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
5843 ibm_extended_format, mips_extended_format, ieee_quad_format,
5844 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
5845 decimal_single_format, decimal_double_format, decimal_quad_format,
5846 c4x_single_format, c4x_extended_format, real_internal_format): Remove
5847 initialization of log2_b.
5848 * real.h (i370_single_format, i370_double_format): Declarations
5849 removed.
5850 * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
5851 field to always be one.
5852
5853 2007-05-21 Andreas Schwab <schwab@suse.de>
5854
5855 * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
5856 NOTE_INSN_BASIC_BLOCK_P.
5857 (process_for_unwind_directive): Likewise.
5858
5859 2007-05-21 Nathan Sidwell <nathan@codesourcery.com>
5860
5861 * builtins.c (expand_builtin_setjmp_setup): Update comment.
5862 * function.h (struct function): Move va_list_gpr_size,
5863 va_list_fpr_size, function_frequency to front of bitfields. Add
5864 calls_unwind_init.
5865 (current_function_calls_unwind_init): New.
5866 * except.c (expand_builtin_unwind_init): Set
5867 current_function_calls_unwind_init not
5868 current_function_has_nonlocal_label.
5869 * reload1.c (has_nonexceptional_receiver): New.
5870 (reload): Use it and current_function_calls_unwind_init to
5871 determine whether call-saved regs must be saved.
5872
5873 2007-05-20 Jan Hubicka <jh@suse.cz>
5874
5875 * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
5876 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
5877 * ddg.c (create_ddg): LIkewise.
5878 * final.c (final): Remove hunk moving line number notes around since
5879 they are no longer present at this stage.
5880 (final_scan_insn): Use NOTE_KIND instead of
5881 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
5882 (output_asm_label): Likewise.
5883 * reorg.c (dbr_schedule): Likewise.
5884 * haifa-sched.c (unlink_other_notes): Likewise.
5885 * mode-switching.c (optimize_mode_switching): Likewise.
5886 * graph.c (start_bb): Likewise.
5887 * rtl.def (NOTE): Update description.
5888 * jump.c (squeeze_notes): Delete.
5889 (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
5890 NOTE_INSN_BASIC_BLOCK_P when possible.
5891 * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
5892 * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
5893 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
5894 (dwarf2out_var_location): Likewise.
5895 * cfgbuild.c (make_edges): Likewise.
5896 (find_basic_blocks_1): Likewise.
5897 * function.c (reorder_blocks_1): Likewise.
5898 (epilogue_done): Likewise.
5899 (reposition_prologue_and_epilogue_notes): Likewise.
5900 * print-rtl.c (print_rtx): Likewise; drop code for printing
5901 line number notes.
5902 (print_rtl): Likewise.
5903 (print_rtl_single): Likewise.
5904 * gcse.c (insert_insn_start_bb): Likewise.
5905 * alias.c (init_alias_analysis): Likewise.
5906 * calls.c (fixup_tail_calls): Likewise.
5907 * except.c (sjlj_emit_function_enter): Likewise.
5908 * emit-rtl.c (add_insn_after): Likeiwse.
5909 (emit_label_before): Likewise.
5910 (emit_label_after): Likewise.
5911 (emit_note_before, emit_note_after, emit_note): Update
5912 parameter to be enum insn_note; do not deal with source
5913 files.
5914 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
5915 Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
5916 when possible.
5917 (merge_blocks_move_successor_nojumps): Simplify now when
5918 we don't have BLOCK notes.
5919 (try_optimize_cfg): Likewise.
5920 * cfglayout.c (skip_insns_after_block): Likewise.
5921 (record_effective_endpoints): Likewise.
5922 (duplicate_insn_chain): Likewise.
5923 * varasm.c (output_constant_pool_1): Likewise.
5924 * sched-deps.c (sched_analyze): Likewise.
5925 * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
5926 Exterminate.
5927 (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
5928 * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
5929 (SET_INSN_DELETED): Simplify.
5930 (NOTE_LINE_NUMBER): Exterminate.
5931 (NOTE_LINE_KIND): New.
5932 (NOTE_INSN_BASIC_BLOCK_P): Update.
5933 (enum insn_note): Simplify.
5934 (GET_NOTE_INSN_NAME) Simplify.
5935 (emit_note_before, emit_note_after, emit_note): Update prototype.
5936 (squeeze_notes): Remove.
5937 * sched-int.h (NOTE_NOT_BB_P): Update.
5938 * resource.c (mark_target_live_regs): Update.
5939 * sched-rgn.c (debug_dependencies): Update.
5940 * sched-vis.c (print_insn): Update.
5941 * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
5942 * config/i386/i386.c (ix86_output_function_epilogue): Update.
5943 * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
5944 (TARGET_ADJUST_UNROLL_MAX): Likewise.
5945 (split_branches): Update.
5946 (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
5947 4.0.0.
5948 (sh_adjust_unroll_max): Exterminate.
5949 * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
5950 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
5951 (m68hc11_reorg): Likewise.
5952 * config/ia64/ia64.c (emit_insn_group_barriers): Update.
5953 (emit_predicate_relation_info): Update.
5954 (process_for_unwind_directive): Update.
5955 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
5956 (output_call): Update.
5957 * config/pa/pa.c (output_lbranch): Update.
5958 (output_millicode_call): Update.
5959 (output_call): Update.
5960 (pa_combine_instructions): Update.
5961 * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
5962 * config/bfin/bfin.c (gen_one_bundle): Update.
5963 * cfgrtl.c (can_delete_note_p): Update.
5964 (delete_insn): Update.
5965 (rtl_merge_blocks): Update.
5966 (commit_one_edge_insertion): Update.
5967 (rtl_verify_flow_info): Update.
5968 * stmt.c (expand_case): Do not call squeeze_notes.
5969
5970 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5971
5972 PR middle-end/7651
5973 PR c++/11856
5974 PR c/12963
5975 PR c/23587
5976 PR other/29694
5977 * c.opt (Wtype-limits): New.
5978 * doc/invoke.texi (Wtype-limits): Document it.
5979 (Wextra): Enabled by -Wextra.
5980 * c-opts.c (c_common_post_options): Enabled by -Wextra.
5981 * c-common.c (shorten_compare): Warn with Wtype-limits.
5982
5983 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
5984
5985 * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
5986 inlined function, not as a macro.
5987 (_mm_alignr_pi8): Ditto.
5988 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
5989 (_mm_inserti_si64): Ditto.
5990 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
5991 (_mm_extract_epi16): Ditto.
5992 (_mm_insert_epi16): Ditto.
5993 (_mm_shufflehi_epi16): Ditto.
5994 (_mm_shufflelo_epi16): Ditto.
5995 (_mm_shuffle_epi32): Ditto.
5996 * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
5997 * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
5998 all functions.
5999 (_m_from_float): Add __extension__ to conversion. Use 0.0f for
6000 float constant.
6001 (_m_to_float): Use C89 compatible assignment.
6002
6003 2007-04-20 Martin Michlmayr <tbm@cyrius.com>
6004
6005 PR target/32007
6006 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
6007
6008 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6009
6010 PR middle-end/7651
6011 * doc/invoke.texi (Wreturn-type): Complete description.
6012 (Wextra): Delete item about return-type warning.
6013 * c-decl.c: Delete redundant Wextra warning.
6014
6015 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
6016
6017 PR target/31585
6018 * config/i386/pmmintrin.h: Do not include xmmintrin.h
6019 * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
6020 inlined function, not as a macro.
6021 (_mm_prefetch): Ditto.
6022 (_m_pextrw): Ditto.
6023 (_mm_insert_pi16): Ditto.
6024 (_m_pinsrw): Ditto.
6025 (_mm_shuffle_pi16): Ditto. Add const to __N argument.
6026 (_m_pshufw): Ditto. Add const to __N argument.
6027 (_mm_shufle_ps): Ditto. Add const to __mask argument.
6028 * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
6029 (_mm_slli_epi32): Ditto.
6030 (_mm_srli_si128): Implement as always inlined function, not as a
6031 macro. Add __inline to function declaration.
6032 (_mm_slli_si128): Ditto.
6033
6034 2007-05-19 Uros Bizjak <ubizjak@gmail.com>
6035
6036 * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
6037 FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
6038 New constants.
6039 (struct fenv): New structure.
6040 (FP_HANDLE_EXCEPTIONS): New define.
6041 (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
6042 (_FP_DECL_EXP): New define.
6043 (FP_INIT_ROUNDMODE): New define.
6044 (FP_ROUNDMODE): New define.
6045
6046 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6047
6048 * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
6049 (Wconversion): Update description.
6050 (Wconversion-sign): New.
6051 * c.opt (Wconversion-sign): New.
6052 * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
6053 means disabled for C++. Otherwise, take the status of Wconversion.
6054 * c-common.c (conversion_warning): Warn with either Wconversion or
6055 Wconversion-sign.
6056 (warnings_for_convert_and_check): Conditions are already checked by
6057 conversion_warning.
6058 (convert_and_check): Don't check warnings if the conversion failed.
6059
6060 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
6061 Anatoly Sokolov <aesok@dol.ru>
6062
6063 * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
6064 avr_epilogue_uses) : Add declaration.
6065 * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
6066 * config/avr/constraints.md (R): New constraint.
6067 config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
6068 UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
6069 (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
6070 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
6071 (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
6072 call_prologue_saves, epilogue_restores, return_from_epilogue,
6073 return_from_main_epilogue, return_from_interrupt_epilogue,
6074 return_from_naked_epilogue, prologue, epilogue): New patterns.
6075 (jump): Handle symbol reference.
6076 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
6077 avr_output_function_prologue, avr_output_function_epilogue): Remove
6078 functions.
6079 (avr_init_machine_status, expand_prologue, expand_epilogue,
6080 avr_asm_function_end_prologue, avr_epilogue_uses,
6081 avr_asm_function_begin_epilogue): New functions.
6082 (prologue_size, epilogue_size, jump_tables_size): Remove global
6083 variables.
6084 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
6085 (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
6086 (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
6087 (avr_override_options): Initialise init_machine_status.
6088 (output_movhi): Handle all stack pointer loads.
6089 (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
6090 (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
6091 * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
6092 (EPILOGUE_USES) Redefine.
6093 (machine_function) Declare.
6094
6095 2007-05-19 Richard Sandiford <richard@codesourcery.com>
6096
6097 * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
6098 Use a single return statement.
6099
6100 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6101
6102 PR middle-end/30250
6103 * builtins.c (do_mpfr_lgamma_r): New.
6104 (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
6105 * tree.h (CASE_FLT_FN_REENT): New.
6106
6107 2007-05-18 Geoffrey Keating <geoffk@apple.com>
6108
6109 * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
6110 (output_die): Use 'unsigned long' with %x.
6111 * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
6112 HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
6113 * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
6114
6115 * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
6116
6117 2007-05-18 H.J. Lu <hongjiu.lu@intel.com>
6118
6119 PR target/31989
6120 PR target/31681
6121 PR target/31666
6122 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
6123 true if function has no argument.
6124
6125 2007-05-18 DJ Delorie <dj@redhat.com>
6126
6127 * config/mips/mips.c (mips_offset_within_alignment_p): New.
6128 (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
6129
6130 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
6131
6132 * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
6133 sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
6134 count_trailing_zeros.
6135 (__i386__): Implement count_leading_zeros using __builtin_clz().
6136 Implement count_trailing_zeros usign __builtin_ctz().
6137
6138 2007-05-18 Richard Sandiford <richard@codesourcery.com>
6139
6140 * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
6141
6142 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
6143
6144 PR middle-end/31344
6145 * expr.c (emit_move_change_mode): Change mode of push operands here.
6146
6147 2007-05-17 Ian Lance Taylor <iant@google.com>
6148
6149 PR tree-optimization/31953
6150 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
6151 Change all callers.
6152 (set_value_range_to_null): Call set_value_range_to_value.
6153 (extract_range_from_comparison): Likewise.
6154
6155 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6156
6157 * toplev.c (print_version): Output GMP/MPFR version info.
6158
6159 * builtins.c (CASE_MATHFN_REENT): New macro.
6160 (mathfn_built_in): Use it.
6161 * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
6162 BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
6163 BUILT_IN_LGAMMAL_R): New.
6164 * doc/extend.texi: Document new builtins.
6165
6166 PR middle-end/31796
6167 * builtins.c (do_mpfr_remquo): New.
6168 (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
6169 (fold_builtin_3): Handle BUILT_IN_REMQUO.
6170
6171 PR middle-end/30251
6172 * builtins.c (fold_builtin_1): Handle y0, y1.
6173 (fold_builtin_2): Handle yn.
6174
6175 PR middle-end/30251
6176 * builtins.c (do_mpfr_bessel_n): New.
6177 (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
6178 (fold_builtin_2): Handle BUILT_IN_JN.
6179
6180 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net>
6181
6182 PR target/31965
6183 * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
6184 TYPE_PRECISION (intmax_type_node).
6185
6186 2007-05-17 Steve Ellcey <sje@cup.hp.com>
6187
6188 PR target/31850
6189 * reload.c (subst_reloads): Remove checking.
6190
6191 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
6192
6193 PR rtl-optimization/31691
6194 * combine.c (simplify_set): Build a new src pattern instead of
6195 substituting its operands in the COMPARE case.
6196
6197 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz>
6198
6199 * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
6200 (execute_vrp): Preserve loops through jump threading.
6201 * tree-ssa-threadupdate.c (thread_single_edge,
6202 dbds_continue_enumeration_p, determine_bb_domination_status,
6203 thread_through_loop_header): New functions.
6204 (create_edge_and_update_destination_phis,
6205 create_edge_and_update_destination_phis): Set loops for the new blocks.
6206 (prune_undesirable_thread_requests): Removed.
6207 (redirect_edges): Do not pretend that redirect_edge_and_branch can
6208 create new blocks.
6209 (thread_block): Do not call prune_undesirable_thread_requests.
6210 Update loops.
6211 (mark_threaded_blocks): Select edges to thread here.
6212 (thread_through_all_blocks): Take may_peel_loop_headers argument.
6213 Thread edges through loop headers independently.
6214 * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
6215 * tree-pass.h (TODO_mark_first_instance): New.
6216 (first_pass_instance): Declare.
6217 * cfghooks.c (duplicate_block): Put the block to the original loop
6218 if copy is not specified.
6219 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
6220 jump threading. Pass may_peel_loop_headers to
6221 thread_through_all_blocks according to first_pass_instance.
6222 * cfgloop.h (create_preheader): Declare.
6223 * tree-flow.h (thread_through_all_blocks): Declaration changed.
6224 * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
6225 * passes.c (first_pass_instance): New variable.
6226 (next_pass_1): Set TODO_mark_first_instance.
6227 (execute_todo): Set first_pass_instance.
6228
6229 2007-05-17 Uros Bizjak <ubizjak@gmail.com>
6230
6231 PR tree-optimization/24659
6232 * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
6233 OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
6234 OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
6235 OTI_vec_pack_ufix_trunc.
6236 (vec_unpacks_float_hi_optab): Define new macro.
6237 (vec_unpacks_float_lo_optab): Ditto.
6238 (vec_unpacku_float_hi_optab): Ditto.
6239 (vec_unpacku_float_lo_optab): Ditto.
6240 (vec_pack_sfix_trunc_optab): Ditto.
6241 (vec_pack_ufix_trunc_optab): Ditto.
6242 * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
6243 and vec_pack_[s|u]fix_trunc_optab using
6244 vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
6245 * tree-vectorizer.c (supportable_widening_operation): Handle
6246 FLOAT_EXPR and CONVERT_EXPR. Update comment.
6247 (supportable_narrowing_operation): New function.
6248 * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
6249 * tree-vect-transform.c (vectorizable_conversion): Handle
6250 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
6251 (vect_gen_widened_results_half): Move before vectorizable_conversion.
6252 (vectorizable_type_demotion): Call supportable_narrowing_operation()
6253 to check for target support.
6254 * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
6255 for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
6256 for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
6257 for VEC_PACK_FIX_TRUNC_EXPR.
6258 (expand_binop): Special case mode of the result for
6259 vec_pack_[u|s]fix_trunc_optab.
6260 (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
6261 vec_pack_[u|s]fix_trunc_optab.
6262
6263 * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
6264 VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
6265 * tree-pretty-print.c (dump_generic_node): Handle
6266 VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
6267 VEC_PACK_FIX_TRUNC_EXPR.
6268 (op_prio): Ditto.
6269 * expr.c (expand_expr_real_1): Ditto.
6270 * tree-inline.c (estimate_num_insns_1): Ditto.
6271 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
6272
6273 * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
6274 (vec_unpacks_float_lo_v8hi): Ditto.
6275 (vec_unpacku_float_hi_v8hi): Ditto.
6276 (vec_unpacku_float_lo_v8hi): Ditto.
6277 (vec_unpacks_float_hi_v4si): Ditto.
6278 (vec_unpacks_float_lo_v4si): Ditto.
6279 (vec_pack_sfix_trunc_v2df): Ditto.
6280
6281 * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
6282 Document.
6283 [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
6284 [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
6285 * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
6286 [vec_pack_ufix_trunc]: Ditto.
6287 [vec_unpacks_float_hi]: Ditto.
6288 [vec_unpacks_float_lo]: Ditto.
6289 [vec_unpacku_float_hi]: Ditto.
6290 [vec_unpacku_float_lo]: Ditto.
6291
6292 2007-05-16 Uros Bizjak <ubizjak@gmail.com>
6293
6294 * soft-fp/README: Update for new files.
6295 * soft-fp/floattisf.c: New file.
6296 * soft-fp/floattidf.c: New file.
6297 * soft-fp/floattitf.c: New file.
6298 * soft-fp/floatuntisf.c: New file.
6299 * soft-fp/floatuntidf.c: New file.
6300 * soft-fp/floatuntitf.c: New file.
6301 * soft-fp/fixsfti.c: New file.
6302 * soft-fp/fixdfti.c: New file.
6303 * soft-fp/fixtfti.c: New file.
6304 * soft-fp/fixunssfti.c: New file.
6305 * soft-fp/fixunsdfti.c: New file.
6306 * soft-fp/fixunstfti.c: New file.
6307 * soft-fp/extendxftf.c: New file.
6308 * soft-fp/trunctfxf.c: New file.
6309
6310 * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
6311 (__trunctfxf2): Ditto.
6312
6313 * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
6314 __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
6315 __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
6316 __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
6317 __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
6318 __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
6319
6320 * config/i386/t-fprules-softfp64: New file.
6321 * config/i386/sfp-machine.h: New file.
6322 * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
6323 x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
6324 and soft-fp/t-softfp to tmake_file.
6325 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
6326 i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
6327
6328 * config/i386/t-linux64 (softfp_wrap_start): New.
6329 (softfp_wrap_end): New.
6330 * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
6331 supported for TARGET_64BIT.
6332
6333 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
6334
6335 * c-common.c (c_common_signed_or_unsigned_type): Emulate
6336 c_common_unsigned_type behavior.
6337
6338 2007-05-16 Paolo Bonzini <bonzini@gnu.org>
6339
6340 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
6341 calls as pure.
6342
6343 2007-05-16 Eric Christopher <echristo@apple.com>
6344
6345 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
6346 saving after stack push. Set sp_offset whenever we push.
6347 (rs6000_emit_epilogue): Move altivec register restore before
6348 stack push.
6349
6350 2007-05-16 Richard Sandiford <richard@codesourcery.com>
6351
6352 * configure.ac: Allow sysroots to be relocated under $prefix as
6353 well as $exec_prefix.
6354 * configure: Regenerate.
6355
6356 2007-05-16 Richard Sandiford <richard@codesourcery.com>
6357
6358 Revert:
6359
6360 2007-05-12 Richard Sandiford <richard@codesourcery.com>
6361
6362 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
6363 (gcc_tooldir): Likewise.
6364 * configure: Regenerate.
6365 * Makefile.in (libsubdir_to_prefix): New variable, based on the
6366 old configure.ac gcc_tooldir setting.
6367 (prefix_to_exec_prefix): New variable.
6368 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
6369 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
6370
6371 2007-05-14 Janis Johnson <janis187@us.ibm.com>
6372
6373 * c-typeck.c (build_binary_op): Return early for error.
6374
6375 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
6376
6377 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
6378 struct nb_iter_bound.
6379 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
6380 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
6381 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
6382 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
6383 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
6384 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
6385 (del_scev_info): Use ggc_free.
6386 (scev_initialize): Allocate scalar_evolution_info in gc memory.
6387 * loop-init.c: Include ggc.h.
6388 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
6389 (loop_optimizer_finalize): Use ggc_free.
6390 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
6391 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
6392 pass_iv_optimize): Add TODO_ggc_collect.
6393 * function.h (struct function): Remove skip marker from
6394 x_current_loops.
6395 * cfgloop.c: Include ggc.h.
6396 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
6397 memory.
6398 (establish_preds): Vector superloops is gc allocated.
6399 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
6400 loop->exits list.
6401 (flow_loops_find): Vector larray is gc allocated.
6402 (loop_exit_free): Use ggc_free.
6403 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
6404 that head of exits list is now not a part of struct loop.
6405 (record_loop_exits): Allocate exits table in gc memory.
6406 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
6407 that head of exits list is now not a part of struct loop.
6408 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
6409 struct loop_exit): Add GTY marker.
6410 (struct loop): Add GTY marker. Make superloops vector gc allocated.
6411 Add skip marker to aux field. Make head of exits list a separate
6412 object.
6413 (struct loops): Add GTY marker. Make larray vector gc allocated.
6414 Add param marker to exits table.
6415 (get_loops): Type changed.
6416 * Makefile.in (tree-scalar-evolution.o): Add
6417 gt-tree-scalar-evolution.h dependency.
6418 (cfgloop.o, loop-init.o): Add ggc.h dependency.
6419 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
6420 * basic-block.h (struct basic_block_def): Remove skip marker from
6421 loop_father field.
6422
6423 2007-05-14 Uros Bizjak <ubizjak@gmail.com>
6424
6425 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
6426 of 0 in the call to expand_expr().
6427 (expand_builtin_mathfn_3): Ditto.
6428 (expand_builtin_interclass_mathfn): Ditto.
6429 (expand_builtin_cexpi): Ditto.
6430 (expand_builtin_int_roundingfn): Ditto.
6431 (expand_builtin_int_roundingfn_2): Ditto.
6432 (expand_builtin_pow): Ditto.
6433 (expand_builtin_powi): Ditto.
6434 (expand_builtin_bswap): Ditto.
6435 (expand_builtin_unop): Ditto.
6436 (expand_builtin_fabs): Ditto.
6437 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
6438 the call to expand_expr().
6439 (expand_builtin_sync_operation): Ditto.
6440 (expand_builtin_compare_and_swap): Ditto.
6441 (expand_builtin_lock_test_and_set): Ditto.
6442 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
6443 instead of 0 in the call to expand_expr().
6444 (expand_builtin_extract_return_addr): Ditto.
6445 (expand_builtin_eh_return): Ditto.
6446 (expand_eh_return): Ditto.
6447 * explow.c (expr_size): Ditto.
6448 * expr.c (optimize_bitfield_assignment_op): Ditto.
6449 (expand_assignement): Ditto.
6450 (store_expr): Ditto.
6451 (store_field): Ditto.
6452 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
6453 the call to expand_expr().
6454 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
6455 in the call to expand_expr().
6456 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
6457 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
6458 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
6459 of expand_expr().
6460 * optabs.c (expand_vec_shift_expr): Ditto.
6461 (expand_vec_cond_expr): Ditto.
6462 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
6463 call to expand_expr().
6464 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
6465 in the call to expand_expr().
6466
6467 2007-05-14 Dave Korn <dave.korn@artimi.com>
6468
6469 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
6470
6471 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
6472
6473 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
6474 instead of c_common_unsigned_type.
6475 (c_common_unsigned_type): Remove.
6476 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
6477 c_common_unsigned_type.
6478 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
6479 c_common_unsigned_type.
6480 * c-common.h (c_common_unsigned_type): Remove.
6481 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
6482 c_common_unsigned_type.
6483 * c-format.c (check_format_types): Use unsigned_type_for instead of
6484 c_common_unsigned_type.
6485 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
6486 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
6487 of c_common_unsigned_type.
6488 * convert.c (convert_to_integer): Use unsigned_type_for instead of
6489 lang_hooks.types.unsigned_type.
6490 * expmed.c (make_tree): Use unsigned_type_for instead of
6491 lang_hooks.types.unsigned_type.
6492 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
6493 lang_hooks.types.unsigned_type.
6494 (build_range_check): Likewise.
6495 (fold_unary): Likewise.
6496 (fold_binary): Likewise.
6497 (fold_ternary): Likewise.
6498 * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
6499 * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
6500 * tree.c (get_unsigned_type): New.
6501 (unsigned_type_for): Use get_unsigned_type instead of
6502 lang_hooks.types.unsigned_type.
6503
6504 2007-05-14 Kazu Hirata <kazu@codesourcery.com>
6505
6506 * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
6507 to m68k_get_function_kind. Update its prototype.
6508 * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
6509 interrupt_thread.
6510 (m68k_interrupt_function_p): Return enum m68k_function_type
6511 instead of bool. Rename to m68k_get_function_kind.
6512 (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
6513 target is not fido.
6514 (m68k_compute_frame_layout): Don't mark any register for save
6515 if an interrupt_thread attribute is specified.
6516 (m68k_hard_regno_rename_ok): Update a use of
6517 m68k_interrupt_function_p.
6518 * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
6519 m68k_interrupt_function_p.
6520 (m68k_function_type): New.
6521 * config/m68k/m68k.md (*return): Output a 'sleep' instruction
6522 for a function with an interrupt_thread attribute.
6523 * doc/extend.texi: Document the interrupt_thread attribute.
6524
6525 2007-05-13 Daniel Berlin <dberlin@dberlin.org>
6526
6527 Fix PR tree-optimization/31911
6528 * tree-ssa-pre.c (phi_translate): Make sure to cache results even
6529 if they didn't change the expression.
6530
6531 2007-05-13 Zdenek Dvorak <dvorakz@suse.cz>
6532
6533 * tree-scalar-evolution.c (resolve_mixers): Exported.
6534 * tree-scalar-evolution.h (resolve_mixers): Declare.
6535 * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
6536 ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
6537 record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
6538 base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
6539 init_array_ref, init_pointer_ref, analyze_indirect_ref,
6540 strip_conversion, analyze_offset_expr, address_analysis,
6541 object_analysis, analyze_offset): Removed.
6542 (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
6543 split_constant_offset, canonicalize_base_object_address,
6544 object_address_invariant_in_loop_p, disjoint_objects_p,
6545 dr_may_alias_p, dr_address_invariant_p): New functions.
6546 (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
6547 and dr_analyze_alias.
6548 (initialize_data_dependence_relation): Use dr_may_alias_p
6549 and object_address_invariant_in_loop_p.
6550 (compute_self_dependence): Handle the case when
6551 DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
6552 (find_data_references_in_stmt): Restrict the analysis of data
6553 references to the given loop nest.
6554 (find_data_references_in_loop): Made static. Pass loop nest to
6555 find_data_references_in_stmt.
6556 (compute_data_dependences_for_loop): Use DR_VOPS.
6557 (free_data_ref): Free DR_VOPS.
6558 * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
6559 (struct innermost_loop_behavior): ... new.
6560 (struct base_object_info): Replaced by ...
6561 (struct indices): ... new.
6562 (struct dr_alias): New.
6563 (enum data_ref_type): Removed.
6564 (struct data_reference): Consist of struct innermost_loop_behavior,
6565 struct indices and struct dr_alias.
6566 (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
6567 (DR_MEMTAG): Renamed to ...
6568 (DR_SYMBOL_TAG): ... this.
6569 (find_data_references_in_loop): Declaration removed.
6570 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
6571 instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL.
6572 (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
6573 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
6574
6575 2007-05-13 Revital Eres <eres@il.ibm.com>
6576
6577 * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
6578 which walks virtual def-use chains to find redundant stores.
6579 (dse_optimize_stmt): Call it.
6580
6581 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
6582
6583 * gcse.c (gcse_main): Do jump bypassing in CPROP2.
6584 * passes.c (init_optimization_passes): Move pass_jump_bypass
6585 after loop2.
6586
6587 * basic-block.h (bb_has_eh_pred): Fix style issue.
6588
6589 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
6590
6591 PR rtl-optimization/31848
6592 * loop-invariant.c (move_invariant_reg): If we move an insn
6593 with a REG_EQUAL note, and that insn is not always executed,
6594 remove the REG_EQUAL note.
6595
6596 2007-05-12 Richard Guenther <rguenther@suse.de>
6597
6598 PR tree-optimization/31797
6599 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
6600 propagate into a stmt that has volatile ops.
6601
6602 2007-05-12 Richard Sandiford <richard@codesourcery.com>
6603
6604 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
6605 (gcc_tooldir): Likewise.
6606 * configure: Regenerate.
6607 * Makefile.in (libsubdir_to_prefix): New variable, based on the
6608 old configure.ac gcc_tooldir setting.
6609 (prefix_to_exec_prefix): New variable.
6610 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
6611 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
6612
6613 2007-05-11 Silvius Rus <rus@google.com>
6614
6615 * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
6616 * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
6617 * c-common.h (strict_aliasing_warning): Change return type.
6618 * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
6619 * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
6620 (build_c_cast): Condition call to strict_aliasing_warning.
6621 * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
6622 * flags.h (set_Wstrict_aliasing): Declare.
6623 * opts.c (set_Wstrict_alising): Define, add call to.
6624 * tree-flow.h (strict_aliasing_warning_backend): Declare.
6625 * tree-ssa-alias-warnings.c: New file.
6626 * tree-ssa-alias.c (compute_may_aliases): Add call to
6627 strict_aliasing_warning_backend.
6628
6629 2007-05-11 Zdenek Dvorak <dvorakz@suse.cz>
6630
6631 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
6632 Use loop_depth and loop_outer accessor functions.
6633 * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
6634 determine_invariantness_stmt, move_computations_stmt): Ditto.
6635 * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
6636 add_loop, loopify, unloop, fix_loop_structure): Ditto.
6637 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
6638 * tree-scalar-evolution.c (interpret_loop_phi,
6639 compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
6640 instantiate_parameters_1, scev_const_prop): Ditto.
6641 * cfghooks.c (make_forwarder_block): Ditto.
6642 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
6643 * modulo-sched.c (loop_canon_p): Ditto.
6644 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
6645 slpeel_can_duplicate_loop_p): Ditto.
6646 * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
6647 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
6648 * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
6649 cancel_loop, verify_loop_structure): Ditto.
6650 (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
6651 add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
6652 superloops vector instead of "pred" array.
6653 (establish_preds): Take father loop as an argument. Initialize the
6654 superloops vector.
6655 (flow_loop_tree_node_add): Pass father loop to establish_preds.
6656 Do not initialize loop->outer.
6657 (flow_loop_tree_node_remove): Truncate the superloops vector.
6658 * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
6659 "pred" merged to "superloops" vector.
6660 (loop_depth, loop_outer): New.
6661 (fel_init): Use loop_outer.
6662
6663 2007-05-11 Jan Hubicka <jh@suse.cz>
6664
6665 * cgraphunit.c: Include gt-cgraphunit.h
6666 (static_ctors, static_dtors): New static vars.
6667 (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
6668 based on implementation in c-common.c
6669 (cgraph_finalize_function): Call record_cdtor_fn.
6670 (cgraph_optimize): Call cgraph_build_cdtor_fns.
6671 * decl.c (finish_function): Do not call c_record_cdtor_fn.
6672 (c_write_global_declarations): Do not call c_build_cdtor_fns.
6673 * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
6674 build_cdtor, c_build_cdtor_fns): Remove.
6675 * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
6676 c_build_cdtor_fns): Remove prototype.
6677
6678 2007-05-11 Paolo Carlini <pcarlini@suse.de>
6679
6680 PR other/31852
6681 * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
6682 * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
6683 * builtins.c (fold_builtin_memchr): New.
6684 (expand_builtin_memchr): Call the latter.
6685 (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
6686 * doc/extend.texi ([Other built-in functions provided by GCC]):
6687 Document memchr.
6688
6689 2007-05-11 Andreas Krebbel <krebbel1@de.ibm.com>
6690
6691 * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
6692 PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
6693 PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
6694 PFPO_OP1_TYPE_SHIFT): Constants added.
6695 (DFP_ALL): Mode macro defined.
6696 ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
6697 "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
6698 Insn definitions added.
6699 ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
6700 "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
6701 Expanders added.
6702
6703 2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
6704
6705 PR tree-optimization/31885
6706 * tree-chrec.c (chrec_contains_undetermined): Do not consider
6707 NULL_TREE to be undetermined.
6708 (automatically_generated_chrec_p): Return false for NULL.
6709
6710 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
6711
6712 * config/bfin/bfin.h (MOVE_RATIO): Define.
6713
6714 2007-05-10 Richard Sandiford <richard@codesourcery.com>
6715
6716 * config.gcc (sparc-wrs-vxworks): New target.
6717 * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
6718 * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
6719 * config/sparc/sparc.h: Include vxworks-dummy.h.
6720 (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
6721 include LABEL_REFs too.
6722 * config/sparc/sparc.c (sparc_expand_move): Don't assume that
6723 _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
6724 VxWorks.
6725 (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
6726 on VxWorks.
6727 (load_pic_register): Use gen_vxworks_load_got for VxWorks.
6728 (sparc_emit_call_insn): New function.
6729 (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
6730 functions when generating VxWorks PIC.
6731 * config/sparc/sparc.md (vxworks_load_got): New pattern.
6732 (call, call_value): Use sparc_emit_call_insn instead of
6733 emit_call_insn.
6734
6735 2007-05-09 Bob Wilson <bob.wilson@acm.org>
6736
6737 * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
6738
6739 2007-05-09 Bob Wilson <bob.wilson@acm.org>
6740
6741 * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
6742 for floating-point values if HOST_BITS_PER_LONG > 32. Use
6743 split_double instead of operand_subword.
6744
6745 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
6746
6747 * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
6748 * config/bfin/bfin.c (bfin_local_alignment): New function.
6749 * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
6750
6751 2007-05-08 Chao-ying Fu <fu@mips.com>
6752
6753 * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
6754 * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
6755 (smsub_widen_optab, umsub_widen_optab): Define.
6756 * optabs.c (init_optabs): Initialize smsub_widen_optab and
6757 umsub_widen_optab.
6758 * genopinit.c (optabs): Fill in smsub_widen_optab and
6759 umsub_widen_optab.
6760 * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
6761 and umsub_widen_optab to implement multiply-subtract sequences.
6762 * config/mips/mips.md (*msac<u>_di): Rename to...
6763 (<u>msubsidi4): ...this. Extend condition to include
6764 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
6765 of operand 0 to "ka" and use the three-operand form of msub<u>
6766 for TARGET_DSPR2.
6767 * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
6768 to define_expands.
6769
6770 2007-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
6771
6772 PR rtl-optimization/28011
6773 * reload.c (push_reload): Set dont_share if IN appears in OUT
6774 also when IN is a PLUS rtx.
6775 (reg_overlap_mentioned_for_reload_p): Return true if X and IN
6776 are same PLUS rtx.
6777
6778 2007-05-08 Kazu Hirata <kazu@codesourcery.com>
6779
6780 * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't
6781 call unshare_all_decls.
6782 (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
6783 (unshare_all_decls): Remove.
6784
6785 2007-05-08 Simon Martin <simartin@users.sourceforge.net>
6786
6787 PR 31847
6788 * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
6789 dumps.
6790
6791 2007-05-08 Sandra Loosemore <sandra@codesourcery.com>
6792 Nigel Stephens <nigel@mips.com>
6793
6794 * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
6795 Update comments and all uses.
6796 (MIN_FPRS_PER_FMT): Define.
6797 * config/mips/mips.c (function_arg): Fix to correctly handle
6798 the -mips32r2 -mfp64 -mabi=32 case.
6799 (override_options): Enable use of odd-numbered registers for
6800 SFmode values on MIPS32.
6801 (mips_save_reg_p): Save whole floating-point register pair if
6802 either half is used.
6803 (compute_frame_size): Fix comment.
6804
6805 2007-05-08 Jie Zhang <jie.zhang@analog.com>
6806
6807 * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
6808 argument of type bool.
6809 * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
6810 argument. Safely select temporary P register according to it.
6811 (do_link): Change call site of add_to_reg accordingly.
6812 (do_unlink): Add epilogue_p as a fourth argument and pass it
6813 to add_to_reg.
6814 (expand_interrupt_handler_epilogue): Change call of do_unlink
6815 accordingly.
6816 (bfin_expand_prologue): Add a third argument sibcall_p.
6817 * config/bfin/bfin.md (epilogue): Change call of
6818 bfin_expand_epilogue accordingly.
6819 (sibcall_epilogue): Likewise.
6820 (eh_return_internal): Likewise.
6821
6822 * config/bfin/bfin-protos.h (enum bfin_cpu): Add
6823 BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
6824 * config/bfin/bfin.c (bfin_handle_option): Handle
6825 -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
6826 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
6827 Support bf534, bf536 and bf561.
6828 * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
6829
6830 2007-05-08 Uros Bizjak <ubizjak@gmail.com>
6831
6832 PR target/31854
6833 * config/i386/i386.c (ix86_function_regparm): Process local
6834 functions only when TREE_CODE (decl) equals FUNCTION_DECL.
6835
6836 2007-05-07 Mike Stump <mrs@apple.com>
6837
6838 * doc/invoke.texi (Warning Options): Document that -Wempty-body
6839 also checks for and while statements in C++.
6840
6841 2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
6842
6843 * gcc.c (at_file_supplied): New variable.
6844 (main): Set it if we expanded argv.
6845 (do_spec_1): Pass an @-file to the linker if we were called with
6846 an @-file argument and HAVE_GNU_LD.
6847 * collect2.c (at_file_supplied): New variable.
6848 (response_file): New variable.
6849 (collect_exit): Unlink response_file if necessary.
6850 (handler): Likewise.
6851 (do_wait): Likewise.
6852 (main): Set at_file_supplied if we expanded argv.
6853 (collect_execute): Pass an @-file to subprocesses if we were called
6854 with an @-file argument.
6855 * configure.ac: Add define for HAVE_GNU_LD.
6856 * configure: Regenerate.
6857 * config.in: Regenerate.
6858
6859 2007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com>
6860
6861 * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
6862 operand to HI mode.
6863 (mulsi3): New.
6864 (divsi3): New.
6865 (udivsi3): New.
6866
6867 2007-05-07 Jayant Sonar <jayants@kpitcummins.com>
6868
6869 * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6870 (TARGET_ENCODE_SECTION_INFO): Re-define.
6871 (m32c_encode_section_info): New
6872 (function_vector_handler): New
6873 (current_function_special_page_vector): New
6874 (m32c_special_page_vector_p): New.
6875 * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
6876 Prototype.
6877 * config/m32c/jump.md: Added instruction JSRS for functions
6878 with attribute "function_vector".
6879 * doc/extend.texi (function_vector): Added description
6880 for M16C, M32C targets.
6881
6882 2007-05-07 DJ Delorie <dj@redhat.com>
6883
6884 PR 31794
6885 * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
6886 ashrpsi3, lshrpsi3): Update shift count constraint.
6887
6888 2007-05-07 Danny Smith <dannysmith@users.sourceforge.net>
6889 Nathan Froyd <froydnj@codesourcery.com>
6890
6891 PR 22133
6892 * c-incpath.c (add_path): Strip trailing path separators.
6893
6894 2007-05-07 Eric Botcazou <ebotcazou@adacore.com>
6895
6896 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
6897 Free dominance info before purging EH edges.
6898 (eliminate_degenerate_phis): Likewise.
6899 (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
6900
6901 2007-05-07 Jan Hubicka <jh@suse.cz>
6902
6903 * gimplify.c (gimplify_expr): Do not crash when folding
6904 (void *)(int)&a + 4.
6905
6906 2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6907
6908 PR driver/31694
6909 * c-opts.c (lang_fortran): Make it non static.
6910 * c-common.h (lang_fortran): New prototype.
6911 * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
6912 -lang-fortran option was passed by the driver.
6913
6914 2007-05-06 Eric Botcazou <ebotcazou@adacore.com>
6915
6916 * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
6917 of ASSERT_CHECKING. Tweak message.
6918
6919 2007-05-06 Revital Eres <eres@il.ibm.com>
6920
6921 PR 30957
6922 * loop-unroll.c (insert_var_expansion_initialization):
6923 Initialize the expansions with -zero instead of +zero.
6924
6925 2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
6926
6927 * config/pa/pa.md: Split tgd_load, tld_load and tie_load
6928 into pic and non-pic versions. Mark r19 as used for
6929 tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
6930 for tgd_load, tld_load and tie_load .
6931 * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
6932 version of tgd_load, tld_load and tie_load depending on the
6933 value of flag_pic.
6934
6935 2007-05-04 Ulrich Drepper <drepper@redhat.com>
6936 Jakub Jelinek <jakub@redhat.com>
6937
6938 * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
6939 (__do_global_dtors_aux): Use more paranoid loop to run
6940 destructors if HIDDEN_DTOR_LIST_END.
6941 (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
6942
6943 2007-05-04 Jakub Jelinek <jakub@redhat.com>
6944
6945 * varasm.c (align_variable): Don't increase alignment for
6946 DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
6947 DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
6948
6949 2007-05-04 Josh Conner <jconner@apple.com>
6950
6951 * basic-block.h (cdi_direction): Assign values to all enumeration
6952 constants.
6953 (dom_computed): Remove.
6954 (dom_info_state): New.
6955 (set_dom_info_availability): New.
6956 * tree-ssa-loop-im.c (determine_invariantness): Initialize
6957 walk_data.dom_direction.
6958 * cfghooks.c (delete_basic_block): Use dom_info_available_p()
6959 instead of dom_computed[].
6960 (split_edge): Likewise.
6961 (create_basic_block): Likewise.
6962 (merge_blocks): Likewise.
6963 * ifcvt.c (find_if_header): Likewise.
6964 * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
6965 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
6966 * tree-ssa.c (verify_ssa): Likewise.
6967 * tree-cfg.c (tree_verify_flow_info): Likewise.
6968 (remove_edge_and_dominated_blocks): Likewise.
6969 * dominance.c (dom_computed): Make static.
6970 (calc_dfs_tree_nonrec): Change third param to a bool.
6971 (calc_dfs_tree): Change second param to a bool.
6972 (calc_idioms): Change second param to a bool. Use
6973 dom_convert_dir_to_idx.
6974 (init_dom_info): Validate dir before using.
6975 (dom_convert_dir_to_idx): New.
6976 (calculate_dominance_info): Use dom_convert_dir_to_idx. New
6977 variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
6978 (free_dominance_info): Use dom_convert_dir_to_idx.
6979 (get_immediate_dominator): Likewise.
6980 (set_immediate_dominator): Likewise.
6981 (get_dominated_by): Likewise.
6982 (redirect_immediate_dominators): Likewise.
6983 (nearest_common_denominator): Likewise.
6984 (dominated_by_p): Likewise.
6985 (bb_dom_dfs_in): Likewise.
6986 (bb_dom_dfs_out): Likewise.
6987 (recount_dominator): Likewise.
6988 (iterate_fix_dominators): Likewise.
6989 (add_to_dominance_info): Likewise.
6990 (delete_from_dominance_info): Likewise.
6991 (first_dom_son): Likewise.
6992 (next_dom_son): Likewise.
6993 (dom_info_available_p): Likewise.
6994 (dom_info_state): New.
6995 (set_dom_info_availability): New.
6996
6997 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
6998
6999 * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
7000 Expander removed.
7001 ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
7002
7003 2007-05-04 Bob Wilson <bob.wilson@acm.org>
7004
7005 * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
7006 (subdi3, subdi_carry): Delete.
7007
7008 2007-05-04 Jan Hubicka <jh@suse.cz>
7009 Richard Guenther <rguenther@suse.de>
7010
7011 * opts.c (decode_options): Do not fiddle with inlining
7012 parameters in case of optimizing for size.
7013 * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
7014 for size do nothing.
7015 (cgraph_decide_inlining_of_small_function): When optimizing for
7016 size never inline functions increasing caller size.
7017 (cgraph_early_inlining): Inline for size when optimizing for size.
7018
7019 2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
7020
7021 * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
7022 logical operations piecewise.
7023 (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
7024 zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
7025 subdi_sesidi_di): Delete.
7026 (add_with_carry): Produce carry in CC instead of a DREG to shorten
7027 the generated sequence. Allow three-reg add in constraints. Rewrite
7028 the rtl expression for carry to avoid zero_extend of a constant.
7029 (sub_with_carry): New pattern.
7030 (adddi3, subdi3): Change into define_expand. For subtract, generate a
7031 different sequence not involving jumps.
7032 (notbi): Now a named pattern.
7033
7034 2007-05-04 Bradley Lucier <lucier@math.purdue.edu>
7035
7036 * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
7037 Add the note about a significant loss of accuracy of some
7038 mathematical routines when these options are used.
7039
7040 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7041
7042 * haifa-sched.c (rtx_vec_t): New typedef.
7043 (contributes_to_priority_p): Extract piece of priority () into new
7044 static function.
7045 (priority): Use the function. Add assertion.
7046 (rank_for_schedule, set_priorities): Add assertion to check that
7047 insn's priority is initialized.
7048 (clear_priorities, calc_priorities): Change signature. Make it update
7049 all relevant insns. Update all callers ('add_to_speculative_block ()'
7050 and 'create_block_check_twin ()').
7051 * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
7052 Add new field 'priority_status'.
7053 (INSN_PRIORITY_STATUS): New macro.
7054 (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
7055
7056 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7057
7058 * sched-ebb.c (debug_ebb_dependencies): New static function.
7059 (init_ready_list): Use it.
7060
7061 * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
7062 with changed signature and 'debug_rgn_dependencies ()'.
7063 (debug_rgn_dependencies): New static function.
7064 (init_ready_list): Use it.
7065
7066 * sched-int.h (debug_dependencies): Declare.
7067
7068 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
7069
7070 * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
7071
7072 2007-05-04 Dirk Mueller <dmueller@suse.de>
7073
7074 * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
7075
7076 2007-05-03 Jan Hubicka <jh@suse.cz>
7077
7078 * fold-const.c (fold_unary): Convert (T1)(X op Y) into
7079 ((T1)X op (T1)Y), for pointer type in more cases than before.
7080
7081 * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
7082
7083 * tree-object-size.c (plus_expr_object_size): When operand size is
7084 unknown, return unknown.
7085
7086 2007-05-03 Dirk Mueller <dmueller@suse.de>
7087
7088 * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
7089
7090 * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
7091 options.
7092
7093 * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
7094
7095 2007-05-03 Janis Johnson <janis187@us.ibm.com>
7096
7097 * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
7098
7099 2007-05-03 Joseph Myers <joseph@codesourcery.com>
7100
7101 * config/soft-fp/double.h, config/soft-fp/extended.h,
7102 config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
7103 config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
7104 config/soft-fp/op-2.h, config/soft-fp/op-4.h,
7105 config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
7106 glibc CVS.
7107
7108 2007-05-03 Ian Lance Taylor <iant@google.com>
7109
7110 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
7111 MASK_PPC_GFXOPT for 8540 or 8548.
7112
7113 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
7114
7115 * tree-vect-transform.c (vect_update_inits_of_drs): Use
7116 vect_print_dump_info() to output debug information.
7117
7118 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
7119
7120 PR target/31768
7121 * config/i386/i386.c (print_operand) ['z']: Output 'w' for
7122 operands of size 2 when operand is not MEM_P.
7123
7124 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
7125
7126 PR tree-optimization/30565
7127 * lambda-code.c (perfect_nestify): Fix updating of dominators.
7128
7129 2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com>
7130
7131 * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
7132 (umulsi3_highpart): Use them.
7133 * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
7134 for final accumulator to D regisster tranfser.
7135
7136 2007-05-03 Dorit Nuzman <dorit@il.ibm.com>
7137
7138 PR tree-optimization/31699
7139 * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
7140 wrong code.
7141 (vect_enhance_data_refs_alignment): Compute peel amount using
7142 TYPE_VECTOR_SUBPARTS instead of vf.
7143 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
7144
7145 2007-05-02 Brooks Moses <brooks.moses@codesourcery.com>
7146
7147 PR bootstrap/31776
7148 * system.h: Remove inclusion of double-int.h
7149 * tree.h: Include double-int.h
7150 * gengtype.c: Likewise
7151 * cfgloop.h: Likewise
7152 * Makefile.in: Adjust dependencies on double-int.h
7153
7154 2007-05-02 Eric Christopher <echristo@apple.com>
7155
7156 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
7157 -shared to -Zdynamiclib.
7158
7159 2007-05-02 Seongbae Park <seongbae.park@gmail.com>
7160
7161 PR c++/31663
7162 * c-common.c (strip_pointer_or_array_types): New function.
7163 * c-common.h (strip_pointer_or_array_types): New function declaration.
7164
7165 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
7166
7167 PR tree-optimization/31771
7168 * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
7169
7170 2007-05-02 Paul Brook <paul@codesourcery.com>
7171
7172 * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
7173
7174 2007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
7175
7176 PR middle-end/29715
7177 * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
7178 transformation.
7179
7180 2007-05-02 Nick Clifton <nickc@redhat.com>
7181
7182 * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
7183
7184 2007-05-02 Richard Guenther <rguenther@suse.de>
7185
7186 PR tree-optimization/31146
7187 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
7188 argument, single_use_p. If we have a single use that is
7189 a conversion to the definition rhs type, propagate that rhs.
7190 (forward_propagate_addr_expr): Pass single_use_p argument
7191 to forward_propagate_addr_expr_1.
7192
7193 2007-05-01 H.J. Lu <hongjiu.lu@intel.com>
7194
7195 * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
7196 variable.
7197
7198 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
7199
7200 * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
7201 'AMD Family 10 core'.
7202
7203 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
7204
7205 * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
7206 and athlon64-sse3 as improved versions of k8, opteron and athlon64
7207 with SSE3 instruction set support.
7208 * doc/invoke.texi: Likewise.
7209
7210 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
7211
7212 * config/i386/i386.c (override_options): Tuning 32-byte loop
7213 alignment for amdfam10 architecture. Increasing the max loop
7214 alignment to 24 bytes.
7215
7216 2007-05-01 Kazu Hirata <kazu@codesourcery.com>
7217
7218 * config/m68k/constraints.md: New.
7219 * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
7220 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
7221 EXTRA_CONSTRAINT): Remove.
7222 * config/m68k/m68k.md: Include constraints.md.
7223 * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
7224
7225 2007-05-01 Ian Lance Taylor <iant@google.com>
7226
7227 PR tree-optimization/31739
7228 * tree-vrp.c (vrp_val_is_max): New static function.
7229 (vrp_val_is_min): New static function.
7230 (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
7231 copying the node.
7232 (set_value_range): Use vrp_val_is_{max,min}.
7233 (extract_range_from_assert): Likewise.
7234 (extract_range_from_binary_expr): Likewise.
7235 (extract_range_from_unary_expr): Likewise.
7236 (dump_value_range, vrp_meet): Likewise.
7237 (vrp_visit_phi_node): Likewise.
7238 * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
7239
7240 2007-05-01 Mark Mitchell <mark@codesourcery.com>
7241
7242 * config/i386/gmon-sol2.c (size_t): New type.
7243 (intptr_t): Likewise.
7244 (s_textsize): Declare as size_t.
7245 (sbrk): Declare.
7246 (monstartup): Use size_t for sizes.
7247 (_mcount): Save and restore registers.
7248 (internal_mcount): Pass 0 as the first argument to monstartup
7249 in 64-bit mode.
7250 (moncontrol): Convert pointer to appropriately sized integer
7251 before passing to profil.
7252
7253 2007-05-01 Joseph Myers <joseph@codesourcery.com>
7254
7255 * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
7256 __NO_FPRS__, not just if _SOFT_DOUBLE.
7257 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
7258 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
7259 also for E500 double.
7260 * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
7261 suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
7262 && !TARGET_FPRS).
7263
7264 2007-05-01 Richard Guenther <rguenther@suse.de>
7265
7266 * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
7267 is NULL.
7268
7269 2007-05-01 Joseph Myers <joseph@codesourcery.com>
7270
7271 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
7272
7273 2007-05-01 Jan Hubicka <jh@suse.cz>
7274
7275 * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
7276 invariant.
7277
7278 2007-05-01 Jan Hubicka <jh@suse.cz>
7279
7280 * tree.h (maybe_fold_offset_to_component_ref): Remove.
7281 (maybe_fold_offset_to_reference): Declare.
7282 * fold-const.c (fold_unary): Do not fold
7283 (type *)&A into &A->field_of_type_and_offset_0
7284 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
7285 size is unknown, give up.
7286 (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
7287 offsets.
7288 (maybe_fold_offset_to_reference): New.
7289 (maybe_fold_stmt_indirect): Use it.
7290 (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
7291 * gimplify.c (gimplify_conversion): Canonicalize conversions to
7292 field references.
7293 (gimplify_expr): Likewise for plus_expr.
7294
7295 2007-05-01 Zdenek Dvorak <dvorakz@suse.cz>
7296
7297 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
7298 bsi_after_labels. Always insert statements before bsi.
7299 * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
7300 * predict.c (apply_return_prediction): Check for empty blocks.
7301 * cfgexpand.c (lab_rtx_for_bb): New variable.
7302 (label_rtx_for_bb): Do not create new tree labels.
7303 (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
7304 (tree_expand_cfg): Initialize lab_rtx_for_bb.
7305 * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
7306 creating edges.
7307 (label_for_bb): Add field used.
7308 (update_eh_label, main_block_label): Mark the label used.
7309 (cleanup_dead_labels): Remove unused labels.
7310
7311 2007-05-01 Richard Guenther <rguenther@suse.de>
7312
7313 * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
7314 if it is not about to be set.
7315 (get_value_range): Do not pre-allocate equiv bitmap.
7316 (update_value_range): No need to clear equiv field.
7317 (add_equivalence): Change prototype to get bitmap pointer.
7318 Allocate bitmap here if it is not already.
7319 (extract_range_from_assert): Do not allocate bitmap here.
7320 Update callers to add_equivalence.
7321 (extract_range_from_ssa_name): Likewise.
7322 (get_vr_for_comparison): New static helper.
7323 (compare_name_with_value): Handle NULL equiv bitmap by
7324 peeling the first iteration of the comparison loop.
7325 Use get_vr_for_comparison.
7326 (compare_names): Handle NULL equiv bitmaps by using fake
7327 ones. Use get_vr_for_comparison.
7328
7329 2007-04-30 Brooks Moses <brooks.moses@codesourcery.com>
7330
7331 * double-int.c (mpz_set_double_int): Moved from
7332 tree-ssa-loop-niter.c.
7333 (mpz_get_double_int): Likewise; also, add option to wrap
7334 out-of-range integers.
7335 * double-int.h: New prototypes for above.
7336 * tree.c (get_static_type_bounds): Moved from
7337 tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
7338 TYPE_MAX_VALUE if they exist..
7339 * tree.h: New prototype for above.
7340 * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
7341 get_type_bounds calls.
7342 (mpz_set_double_int): Move to double-int.c.
7343 (get_type_bounds): Move to tree.c, rename to
7344 get_static_type_bounds.
7345 (mpz_to_double_int): Move to double-int.c, rename to
7346 mpz_get_double_int.
7347
7348 2007-04-30 Bob Wilson <bob.wilson@acm.org>
7349
7350 * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
7351 DIV0 exception can fall through to a normal return.
7352
7353 2007-04-30 Alexandre Oliva <aoliva@redhat.com>
7354
7355 PR middle-end/22156
7356 Temporarily revert:
7357 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
7358 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
7359 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
7360 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
7361 initialize align to silence bogus warning.
7362 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
7363 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
7364 all_no_warning.
7365 (struct sra_walk_fns): Remove use_all parameter from use.
7366 (sra_hash_tree): Handle BIT_FIELD_REFs.
7367 (sra_elt_hash): Don't hash bitfld blocks.
7368 (sra_elt_eq): Skip them in parent compares as well. Handle
7369 BIT_FIELD_REFs.
7370 (sra_walk_expr): Don't maintain or pass down use_all_p.
7371 (scan_use): Remove use_all parameter.
7372 (scalarize_use): Likewise. Re-expand assignment to
7373 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
7374 output, and re-scalarize after output. Don't mark anything
7375 for no warning.
7376 (scalarize_ldst): Adjust.
7377 (scalarize_walk_gimple_modify_statement): Likewise.
7378 (build_element_name_1): Handle BIT_FIELD_REFs.
7379 (instantiate_element): Don't warn for any element whose parent
7380 is used as a whole.
7381 (instantiate_missing_elements_1): Return the sra_elt.
7382 (canon_type_for_field): New.
7383 (try_instantiate_multiple_fields): New.
7384 (instantiate_missing_elemnts): Use them.
7385 (mark_no_warning): Removed.
7386 (generate_one_element_ref): Handle BIT_FIELD_REFs.
7387 (REPLDUP, sra_build_elt_assignment): New.
7388 (generate_copy_inout): Use them.
7389 (generate_element_copy): Likewise. Handle bitfld differences.
7390 (generate_element_zero): Don't recurse for blocks. Use
7391 sra_build_elt_assignment.
7392 (generate_one_element_int): Take elt instead of var. Use
7393 sra_build_elt_assignment.
7394 (generate_element_init_1): Adjust.
7395 (scalarize_use, scalarize_copy): Use REPLDUP.
7396 (scalarize_ldst): Move assert before dereference.
7397 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
7398
7399 2007-04-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
7400
7401 PR C++/31721
7402 * tree.c (reconstruct_complex_type): Reconstruct a reference
7403 correctly.
7404 Also use the same mode for the pointer as the old pointer type.
7405
7406 2007-04-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
7407
7408 * doc/trouble.texi (Interoperation): Remove note about Ultrix
7409 Fortran compiler.
7410
7411 2007-04-29 Zdenek Dvorak <dvorakz@suse.cz>
7412
7413 PR rtl-optimization/31676
7414 * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
7415 (df_refs_record): Call it.
7416
7417 2007-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
7418
7419 * rtl.def (SS_ABS): New code.
7420 * config/bfin/bfin.c (print_operand): New modifier 'v'.
7421 (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
7422 BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
7423 BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
7424 (bfin_init_builtins): Define them.
7425 (bdesc_1arg, bdesc_2arg): Add some of them here, ...
7426 (bfin_expand_builtin): ... and handle the others here.
7427 * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
7428 flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
7429 (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
7430 (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
7431 operand is only HImode.
7432
7433 2007-04-29 Steven Bosscher <steven@gcc.gnu.org>
7434
7435 * regclass.c (scan_one_insn): Remove splitting of
7436 two address insns.
7437
7438 2007-04-28 Sandra Loosemore <sandra@codesourcery.com>
7439 Nigel Stephens <nigel@mips.com>
7440
7441 * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
7442
7443 2007-04-28 Jan Hubicka <jh@suse.cz>
7444
7445 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
7446 insn_locators_alloc instead of insn_locators_initialize;
7447 call reset_block_changes.
7448 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
7449 * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
7450 * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
7451 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
7452 * config/score/score.c (th_output_mi_thunk): Likewise.
7453 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
7454 * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
7455 tolerate uninitialized locator info.
7456
7457 Re-apply:
7458 * function.c (init_function_start): Don't init line number info.
7459 (expand_function_end): Update.
7460 (reset_block_changes, record_block_change, finalize_block_changes,
7461 check_block_change, free_block_changes): Kill.
7462 * function.h (reset_block_changes, record_block_change,
7463 finalize_block_changes, check_block_change, free_block_changes):
7464 Remove prototypes.
7465 (struct function): Remove ib_boundaries_block.
7466 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
7467 Use curr_insn_locator to initialize locator.
7468 (emit_line_note): Remove.
7469 * cfgexpand.c (expand_gimple_cond_expr): Update.
7470 (construct_exit_block): Likewise.
7471 (tree_expand_cfg): Initialize/finalize locators.
7472 * expr.c (expand_expr_real): Update.
7473 * cfglayout.c (line_locators_locs, line_locators_lines,
7474 file_locators_locs, file_locators_files): Remove.
7475 (set_block_levels): Move to cfgexpand.c.
7476 (insn_locators_initialize): Remove.
7477 (pass_insn_locators_initialize): Remove.
7478 (locations_locators_locs, locations_locators_vals): New static vars.
7479 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
7480 Likewise.
7481 (insn_locators_alloc, insn_locators_finalize,
7482 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7483 New functions.
7484 (locator_location): New.
7485 (locator_line, locator_file): Rewrite.
7486 * rtl.h (emit_line_note): Kill.
7487 (insn_locators_alloc, insn_locators_finalize,
7488 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7489 Declare.
7490 * tree-inline.c (initialize_cfun): Do not initialize
7491 ib_boundaries_block.
7492 * passes.c (pass_insn_locators_initialize): Remove.
7493
7494 2007-04-28 Zdenek Dvorak <dvorakz@suse.cz>
7495
7496 * tree-cfg.c (move_block_to_fn): Release bb from dominance
7497 info. Update last_basic_block correctly.
7498
7499 2007-04-27 Kaz Kojima <kkojima@gcc.gnu.org>
7500
7501 PR target/31701
7502 * config/sh/sh.c (output_stack_adjust): Avoid using the frame
7503 register itself to hold the offset constant. Tell flow the use
7504 of r4 and r5 when they are used.
7505
7506 2007-04-27 Richard Guenther <rguenther@suse.de>
7507
7508 * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
7509 if we simplified anything.
7510 (tree_ssa_forward_propagate_single_use_vars): Defer overflow
7511 warnings until we did a simplification and the stmt was not
7512 marked as TREE_NO_WARNING.
7513
7514 2007-04-27 Mike Stump <mrs@apple.com>
7515
7516 * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
7517
7518 2007-04-27 Ian Lance Taylor <iant@google.com>
7519
7520 PR middle-end/31710
7521 * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
7522 TYPE_MAX_VALUE exist, convert them to the new type.
7523
7524 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
7525
7526 * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
7527 if it claims to be available.
7528 * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
7529 edge is redirected.
7530 (perform_tree_ssa_dce): Always free postdominators.
7531
7532 2007-04-27 Richard Henderson <rth@redhat.com>
7533
7534 * config/alpha/predicates.md (aligned_memory_operand): Mark
7535 as define_special_predicate.
7536 (unaligned_memory_operand, normal_memory_operand): Likewise.
7537 (reg_or_unaligned_mem_operand): Remove.
7538 (any_memory_operand): Match the documentation and check for
7539 non-renumbered pseudos during reload.
7540 * config/alpha/alpha.c (alpha_secondary_reload): Rename from
7541 alpha_secondary_reload_class, update to new interface, make static.
7542 Handle CQImode like HImode. Remove FP subreg check.
7543 (alpha_expand_mov): Use replace_equiv_address.
7544 (alpha_expand_mov_nobwx): Use any_memory_operand.
7545 (TARGET_SECONDARY_RELOAD): New.
7546 * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
7547 (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
7548 * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
7549 * config/alpha/alpha.md: ... here.
7550 (RELOAD12, reloadmode): New.
7551 (movcqi): New.
7552 (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
7553 Don't handle the aligned case here.
7554 (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
7555 (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
7556 reload_inhi_help. Don't expect a scratch register.
7557 (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
7558 reload_outhi_help.
7559 * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
7560
7561 2007-04-27 Richard Guenther <rguenther@suse.de>
7562
7563 * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
7564
7565 2007-04-27 Richard Guenther <rguenther@suse.de>
7566
7567 PR tree-optimization/30965
7568 PR tree-optimization/30978
7569 * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
7570 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
7571 (find_equivalent_equality_comparison): Likewise.
7572 (simplify_cond): Likewise.
7573 (get_prop_source_stmt): New helper.
7574 (get_prop_dest_stmt): Likewise.
7575 (can_propagate_from): Likewise.
7576 (remove_prop_source_from_use): Likewise.
7577 (combine_cond_expr_cond): Likewise.
7578 (forward_propagate_comparison): New function.
7579 (forward_propagate_into_cond): Rewrite to use fold for
7580 tree combining.
7581 (tree_ssa_forward_propagate_single_use_vars): Call
7582 forward_propagate_comparison to propagate comparisons.
7583
7584 2007-04-27 Richard Guenther <rguenther@suse.de>
7585
7586 PR tree-optimization/31715
7587 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
7588 sure to do computation on the offset in an appropriate
7589 signed type.
7590
7591 2007-04-27 Richard Sandiford <richard@codesourcery.com>
7592
7593 * reload.h (elimination_target_reg_p): Declare.
7594 * reload.c (find_reloads): Don't apply the reg_rtx move
7595 optimization if the SET_DEST satisfies elimination_target_reg_p.
7596 * reload1.c (elimination_target_reg_p): New function.
7597 (gen_reload): In the move/add2 fallback, make sure that op0
7598 does not overlap the destination register.
7599
7600 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
7601
7602 * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
7603 transform only GIMPLE_MODIFY_STMTs.
7604 * tree-complex.c (expand_complex_operations_1): Ditto.
7605 (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
7606 * tree-ssa-loop-manip.c (build_if_stmt): Removed.
7607 (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
7608 branches.
7609 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
7610 tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
7611 * omp-low.c (expand_parallel_call, expand_omp_for_generic,
7612 expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
7613 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
7614 slpeel_add_loop_guard): Ditto.
7615 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
7616 * lambda-code.c (perfect_nestify): Ditto.
7617 * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
7618 before the first statement.
7619 * tree-optimize.c (execute_free_datastructures): Fix comments.
7620 (execute_free_cfg_annotations): Do not call disband_implicit_edges.
7621 * tree-flow.h (disband_implicit_edges): Declaration removed.
7622 * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
7623 branches.
7624 (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
7625 COND_EXPRs without gotos.
7626 (disband_implicit_edges, has_label_p): Removed.
7627 (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
7628 (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
7629 branches.
7630 * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
7631 side effects.
7632 * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
7633 also for COND_EXPRs.
7634 * cfgexpand.c (label_rtx_for_bb): New function.
7635 (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
7636 Use label_rtx_for_bb to find the labels.
7637 (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
7638 last block. Detect fallthru edges.
7639
7640 2007-04-26 Ian Lance Taylor <iant@google.com>
7641
7642 PR target/28675
7643 * reload.c (find_reloads_subreg_address): If the address was valid
7644 in the original mode but not in the new mode, reload the whole
7645 address.
7646
7647 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
7648
7649 * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
7650 (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
7651 (cleanup_control_expr_graph): Do not invalidate dominance info.
7652 Record altered blocks.
7653 (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
7654 (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
7655 cleanup_tree_cfg_bb): New functions.
7656 (remove_forwarder_block): Do not maintain the worklist of blocks.
7657 Record altered blocks.
7658 (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
7659 not over whole cfg.
7660 (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1. Only call
7661 delete_unreachable_blocks if dominators are not available.
7662 * tree-inline.c (optimize_inline_calls): Free dominance information
7663 earlier.
7664 * tree-flow.h (remove_edge_and_dominated_blocks,
7665 cfgcleanup_altered_bbs): Altered.
7666 * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
7667 blocks.
7668 (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
7669 functions.
7670 (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
7671 do not invalidate dominators.
7672
7673 2007-04-26 Anatoly Sokolov <aesok@post.ru>
7674
7675 * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
7676 ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
7677 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7678 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7679
7680 2007-04-26 Steve Ellcey <sje@cup.hp.com>
7681
7682 * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
7683
7684 2007-04-26 Richard Guenther <rguenther@suse.de>
7685
7686 PR tree-optimization/31703
7687 * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
7688 the right type for the target of the bittest.
7689
7690 2007-04-26 Richard Sandiford <richard@codesourcery.com>
7691
7692 * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
7693 ix86_sol10_return_in_memory.
7694
7695 2007-04-26 Richard Sandiford <richard@codesourcery.com>
7696
7697 * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
7698 variables.
7699
7700 2007-04-26 Jakub Jelinek <jakub@redhat.com>
7701
7702 PR c++/31598
7703 * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
7704
7705 PR tree-optimization/30558
7706 * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
7707 clear this_state.prev_try.
7708
7709 2007-04-26 Richard Sandiford <richard@codesourcery.com>
7710 Mark Mitchell <mark@codesourcery.com>
7711
7712 * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
7713 * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
7714 * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
7715
7716 2007-04-26 Richard Sandiford <richard@codesourcery.com>
7717
7718 PR driver/31107
7719 * doc/invoke.texi (%:print-asm-header): Document.
7720 * gcc.c (asm_options): Use %:print-asm-header() for --target-help
7721 and -ftarget-help.
7722 (static_spec_functions): Add print-asm-header.
7723 (main): Print a banner before the --target-help linker options.
7724 (print_asm_header_spec_function): New function.
7725
7726 2007-04-25 Kaz Kojima <kkojima@gcc.gnu.org>
7727
7728 PR target/31403
7729 * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
7730 (movsf_ie): Likewise.
7731
7732 2007-04-25 Paolo Carlini <pcarlini@suse.de>
7733
7734 * doc/extend.texi ([Type Traits]): Adjust per N2255.
7735
7736 2007-04-25 Bob Wilson <bob.wilson@acm.org>
7737
7738 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
7739 exception for divide-by-zero.
7740 (__umodsi3, __modsi3): Likewise.
7741
7742 2007-04-25 Dirk Mueller <dmueller@suse.de>
7743
7744 * c-typeck.c (build_compound_expr): Annotate warning()
7745 call with OPT_Wunused_value.
7746 * tree-ssa.c (warn_uninit): Annotate warning with
7747 OPT_Wunintialized.
7748 * c-common.c (handle_sentinel_attribute): Annotate warning
7749 call with OPT_Wattributes.
7750
7751 2007-04-25 Thiemo Seufer <ths@mips.com>
7752
7753 * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
7754 (mips16): Fix typo.
7755 * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
7756 on to the assembler. Improve handling of -mno-mips16. Add handling
7757 of -mno-mips3d, -mno-dsp, -mno-dspr2.
7758 * doc/invoke.texi (MIPS Options): Whitespace cleanup. Fix wrong use
7759 of @itemx. Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
7760 -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
7761
7762 2007-04-25 Danny Smith <dannysmith.users.sourceforge.net>
7763
7764 PR target/31680
7765 * config/i386/winnt.c (i386_pe_file_end): Strip only
7766 USER_LABEL_PREFIX when writing export name.
7767
7768 2007-04-25 Richard Sandiford <richard@codesourcery.com>
7769
7770 * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include
7771 sh/elf.h, vx-common.h and vxworks.h.
7772 * config/sh/sh.h: Include config/vxworks-dummy.h.
7773 (SUBTARGET_OVERRIDE_OPTIONS): Define.
7774 (OVERRIDE_OPTIONS): Use it.
7775 * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
7776 (vxworks_picreg): New pattern.
7777 * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
7778 VXWORKS_OS_CPP_BUILTINS.
7779 (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
7780 to their VXWORKS_* equivalents.
7781 (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
7782 (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
7783 * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
7784 (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
7785 * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
7786 -mrtp/-fPIC multilibs.
7787 (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
7788 (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
7789 (MULTILIB_OSDIRNAMES): Delete.
7790
7791 2007-04-25 Anatoly Sokolov <aesok@post.ru>
7792
7793 PR target/18989
7794 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
7795
7796 2007-04-24 Brooks Moses <brooks.moses@codesourcery.com>
7797
7798 * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
7799 rounding mode to be specified by the caller.
7800 (real_to_mpfr) Likewise.
7801 * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
7802 include new arguments.
7803 * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
7804
7805 2007-04-24 Ian Lance Taylor <iant@google.com>
7806
7807 PR tree-optimization/31605
7808 * tree-vrp.c (set_value_range): Check that min and max are not
7809 both overflow infinities.
7810 (set_value_range_to_value): New static function.
7811 (extract_range_from_binary_expr): Call set_value_range_to_value.
7812 (extract_range_from_cond_expr): Likewise.
7813 (extract_range_from_expr): Likewise.
7814 (extract_range_from_unary_expr): Likewise. Don't create a range
7815 which overflows on both sides.
7816 (vrp_meet): Check for a useless range.
7817 (vrp_visit_phi_node): If we see a constant which looks like an
7818 overflow infinity, turn off the TREE_OVERFLOW flag.
7819
7820 2007-04-24 Ian Lance Taylor <iant@google.com>
7821
7822 * flow.c (elim_reg_cond): Handle a comparison of a subreg.
7823
7824 2007-04-24 Simon Martin <simartin@users.sourceforge.net>
7825
7826 PR diagnostic/25923
7827 * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
7828 diagnostic message is being built.
7829 * tree-pretty-print.c (dump_generic_node): Only write the
7830 formatted text into BUFFER's stream if we are not building a
7831 diagnostic message.
7832 * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
7833 dump_generic_node.
7834 * Makefile.in (toplev.o): Depend on tree-pass.h.
7835
7836 2007-04-24 Ian Lance Taylor <iant@google.com>
7837
7838 PR tree-optimization/31602
7839 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
7840 conditionals in the copied loop header.
7841 * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
7842 warnings if TREE_NO_WARNING is set.
7843 * doc/invoke.texi (Warning Options): Clarify that
7844 -Wstrict-overflow does not warn about loops.
7845
7846 2007-04-24 Janis Johnson <janis187@us.ibm.com>
7847
7848 * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
7849 expand on the comment about _Decimal128 arguments and check the
7850 integer result of the modulus operation; for 64-bit ELF ABI, ensure
7851 that _Decimal128 argument uses even/odd register pair.
7852 (function_arg): Ditto.
7853
7854 2007-04-24 Hui-May Chang <hm.chang@apple.com>
7855
7856 * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
7857 instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
7858
7859 2007-04-24 Richard Guenther <rguenther@suse.de>
7860 Olga Golovanevsky <olga@il.ibm.com>
7861
7862 * fold-const.c (multiple_of_p): Check for bottom
7863 to be zero.
7864
7865 2007-04-24 Richard Henderson <rth@redhat.com>
7866
7867 * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
7868 IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE.
7869 * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
7870 looking for non-zero bits shifted out. Avoid a recursive call
7871 when constructing the scalar.
7872 (__floatundisf): Likewise.
7873
7874 2007-04-24 Nathan Froyd <froydnj@codesourcery.com>
7875
7876 * dwarf2out.c (field_byte_offset): Move the existing logic
7877 under the control of PCC_BITFIELD_TYPE_MATTERS and just use
7878 the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
7879
7880 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7881
7882 PR target/31641
7883 * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
7884 length argument of 0 for memset.
7885 (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
7886 unsigned shift instead of the signed variant.
7887
7888 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7889
7890 * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
7891 "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
7892 "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
7893 "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
7894 "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
7895 "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
7896 "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
7897 "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
7898 "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
7899 ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
7900 "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
7901 "mul<mode>3", "div<mode>3"): Insn definitions added.
7902 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
7903 "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
7904 to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
7905 ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
7906 "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
7907 "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
7908 ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
7909 * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
7910 TARGET_FLOAT_FORMAT): Macro definitions removed.
7911 (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
7912 * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
7913 z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
7914 (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
7915 (s390_gen_rtx_const_DI): Function removed.
7916 * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
7917
7918 2007-04-24 Richard Sandiford <richard@codesourcery.com>
7919
7920 * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
7921 over an external ffs function.
7922
7923 2007-04-24 Chao-ying Fu <fu@mips.com>
7924 Richard Sandiford <richard@nildram.co.uk>
7925
7926 * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
7927 * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
7928 (smadd_widen_optab, umadd_widen_optab): Define.
7929 * optabs.c (init_optabs): Initialize smadd_widen_optab and
7930 umadd_widen_optab.
7931 * genopinit.c (optabs): Fill in smadd_widen_optab and
7932 umadd_widen_optab.
7933 * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
7934 and umadd_widen_optab to implement multiply-add sequences.
7935 * config/mips/mips.md (*<su>mul_acc_di): Rename to...
7936 (<u>maddsidi4): ...this. Extend condition to include
7937 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
7938 of operand 0 to "ka" and use the three-operand form of madd<u>
7939 for TARGET_DSPR2.
7940 * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
7941 to define_expands.
7942 * config/mips/constraints.md (ka): New register constraint.
7943
7944 2007-04-24 Jan Hubicka <j@suse.cz>
7945
7946 Revert:
7947
7948 2007-04-23 Jan Hubicka <jh@suse.cz>
7949 * function.c (init_function_start): Don't init line number info.
7950 (expand_function_end): Update.
7951 (reset_block_changes, record_block_change, finalize_block_changes,
7952 check_block_change, free_block_changes): Kill.
7953 * function.h (reset_block_changes, record_block_change,
7954 finalize_block_changes, check_block_change, free_block_changes):
7955 Remove prototypes.
7956 (struct function): Remove ib_boundaries_block.
7957 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
7958 Use curr_insn_locator to initialize locator.
7959 (emit_line_note): Remove.
7960 * cfgexpand.c (expand_gimple_cond_expr): Update.
7961 (construct_exit_block): Likewise.
7962 (tree_expand_cfg): Initialize/finalize locators.
7963 * expr.c (expand_expr_real): Update.
7964 * cfglayout.c (line_locators_locs, line_locators_lines,
7965 file_locators_locs, file_locators_files): Remove.
7966 (set_block_levels): Move to cfgexpand.c.
7967 (insn_locators_initialize): Remove.
7968 (pass_insn_locators_initialize): Remove.
7969 (locations_locators_locs, locations_locators_vals): New static vars.
7970 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
7971 Likewise.
7972 (insn_locators_alloc, insn_locators_finalize,
7973 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7974 New functions.
7975 (locator_location): New.
7976 (locator_line, locator_file): Rewrite.
7977 * rtl.h (emit_line_note): Kill.
7978 (insn_locators_alloc, insn_locators_finalize,
7979 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
7980 Declare.
7981 * tree-inline.c (initialize_cfun): Do not initialize
7982 ib_boundaries_block.
7983 * passes.c (pass_insn_locators_initialize): Remove.
7984
7985 2007-04-24 Daniel Franke <franke.daniel@gmail.com>
7986
7987 * doc/invoke.texi: Removed leading '-' from option index entries.
7988
7989 2007-04-23 Zdenek Dvorak <dvorakz@suse.cz>
7990
7991 * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
7992 Use phi_nodes_ptr.
7993 (create_phi_node): Use set_phi_nodes.
7994 * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
7995 * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
7996 (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
7997 * tree-flow-inline.h (phi_nodes, set_phi_nodes,
7998 (bsi_start, bsi_last): Use bb_stmt_list.
7999 (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
8000 * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
8001 Traverse the statements using tsi iterator.
8002 * basic-block.h (struct basic_block_def): Fields stmt_list
8003 and phi_nodes moved to ...
8004 (struct tree_bb_info): ... new structure.
8005 * tree-cfg.c (create_bb): Allocate il.tree. Use set_bb_stmt_list.
8006 (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
8007 (remove_bb): Handle blocks with NULL stmt list. Clear il.tree field.
8008 (tree_verify_flow_info): Verify that il.tree is not set for
8009 entry and exit block.
8010 (tree_split_block): Use set_bb_stmt_list.
8011
8012 2007-04-23 Mike Stump <mrs@apple.com>
8013
8014 * config/i386/i386.c (ix86_tune_features
8015 [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
8016 nocona and core2.
8017
8018 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
8019
8020 * config/i386/i386.md (prefix_extra): New attribute.
8021 (length): Add prefix_extra.
8022
8023 * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
8024 (sse2_movntv2di): Likewise.
8025 (sse2_cvtps2dq): Likewise.
8026 (sse2_cvtpd2pi): Likewise.
8027 (sse2_cvttpd2pi): Likewise.
8028 (*sse2_cvtpd2ps): Likewise.
8029 (*add<mode>3): Likewise.
8030 (sse2_ssadd<mode>3): Likewise.
8031 (sse2_usadd<mode>3): Likewise.
8032 (*sub<mode>3): Likewise.
8033 (sse2_sssub<mode>3): Likewise.
8034 (sse2_ussub<mode>3): Likewise.
8035 (*mulv8hi3): Likewise.
8036 (*smulv8hi3_highpart): Likewise.
8037 (*umulv8hi3_highpart): Likewise.
8038 (sse2_umulv2siv2di3): Likewise.
8039 (sse2_pmaddwd): Likewise.
8040 (ashr<mode>3): Likewise.
8041 (lshr<mode>3): Likewise.
8042 (ashl<mode>3): Likewise.
8043 (sse2_ashlti3): Likewise.
8044 (sse2_lshrti3): Likewise.
8045 (*umaxv16qi3): Likewise.
8046 (*smaxv8hi3): Likewise.
8047 (*uminv16qi3): Likewise.
8048 (*sminv8hi3): Likewise.
8049 (sse2_eq<mode>3): Likewise.
8050 (sse2_gt<mode>3): Likewise.
8051 (*and<mode>3): Likewise.
8052 (sse2_nand<mode>3): Likewise.
8053 (*ior<mode>3): Likewise.
8054 (*xor<mode>3): Likewise.
8055 (sse2_packsswb): Likewise.
8056 (sse2_packssdw): Likewise.
8057 (sse2_packuswb): Likewise.
8058 (sse2_punpckhbw): Likewise.
8059 (sse2_punpcklbw): Likewise.
8060 (sse2_punpckhwd): Likewise.
8061 (sse2_punpcklwd): Likewise.
8062 (sse2_punpckhdq): Likewise.
8063 (sse2_punpckldq): Likewise.
8064 (sse2_punpckhqdq): Likewise.
8065 (sse2_punpcklqdq): Likewise.
8066 (*sse2_pinsrw): Likewise.
8067 (*sse2_pextrw): Likewise.
8068 (sse2_pshufd_1): Likewise.
8069 (sse2_uavgv16qi3): Likewise.
8070 (sse2_uavgv8hi3): Likewise.
8071 (sse2_psadbw): Likewise.
8072 (sse2_pmovmskb): Likewise.
8073 (*sse2_maskmovdqu): Likewise.
8074 (*sse2_maskmovdqu_rex64): Likewise.
8075 (sse4a_extrqi): Likewise.
8076 (sse4a_extrq): Likewise.
8077 (sse3_lddqu): Set prefix_rep.
8078 (sse3_addsubv4sf3): Likewise.
8079 (sse3_haddv4sf3): Likewise.
8080 (sse3_hsubv4sf3): Likewise.
8081 (sse_cvtss2si): Likewise.
8082 (sse_cvtss2si_2): Likewise.
8083 (sse_cvtss2siq): Likewise.
8084 (sse_cvtss2siq_2): Likewise.
8085 (sse_cvttss2si): Likewise.
8086 (sse_cvttss2siq): Likewise.
8087 (sse2_cvttps2dq): Likewise.
8088 (sse3_movshdup): Likewise.
8089 (sse3_movsldup): Likewise.
8090 (sse2_cvtsd2si): Likewise.
8091 (sse2_cvtsd2si_2): Likewise.
8092 (sse2_cvtsd2siq): Likewise.
8093 (sse2_cvtsd2siq_2): Likewise.
8094 (sse2_cvttsd2si): Likewise.
8095 (sse2_cvttsd2siq): Likewise.
8096 (*sse2_cvtpd2dq): Likewise.
8097 (*sse2_cvttpd2dq): Likewise.
8098 (sse2_pshuflw_1): Likewise.
8099 (sse2_pshufhw_1): Likewise.
8100 (sse4a_insertqi): Likewise.
8101 (sse4a_insertq): Likewise.
8102 (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
8103 (ssse3_phadddv4si3): Likewise.
8104 (ssse3_phaddswv8hi3): Likewise.
8105 (ssse3_phsubwv8hi3): Likewise.
8106 (ssse3_phsubdv4si3): Likewise.
8107 (ssse3_phsubswv8hi3): Likewise.
8108 (ssse3_pmaddubswv8hi3): Likewise.
8109 (ssse3_pmulhrswv8hi3): Likewise.
8110 (ssse3_pshufbv16qi3): Likewise.
8111 (ssse3_psign<mode>3): Likewise.
8112 (ssse3_palignrti): Likewise.
8113 (abs<mode>2): Likewise.
8114 (ssse3_phaddwv4hi3): Set prefix_extra.
8115 (ssse3_phadddv2si3): Likewise.
8116 (ssse3_phaddswv4hi3): Likewise.
8117 (ssse3_phsubwv4hi3): Likewise.
8118 (ssse3_phsubdv2si3): Likewise.
8119 (ssse3_phsubswv4hi3): Likewise.
8120 (ssse3_pmaddubswv4hi3): Likewise.
8121 (ssse3_pmulhrswv4hi3): Likewise.
8122 (ssse3_pshufbv8qi3): Likewise.
8123 (ssse3_psign<mode>3): Likewise.
8124 (ssse3_palignrdi): Likewise.
8125 (abs<mode>2): Likewise.
8126 (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
8127 (*vec_dupv2df): Set mode to V2DF instead of V4SF.
8128 (sse2_pmovmskb): Set mode to SI instead of V2DF.
8129
8130 2007-04-23 Nick Clifton <nickc@redhat.com>
8131
8132 * params.def: Fix formatting of emacs local variables.
8133
8134 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
8135
8136 * config/i386/sse.md (sse2_stored): Don't split to inter-unit
8137 move if inter-unit move isn't allowed.
8138 Don't split moving the first element of V2DI to DI to inter-unit
8139 move if inter-unit move isn't allowed.
8140
8141 2007-04-23 Richard Guenther <rguenther@suse.de>
8142
8143 * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
8144 and CDI_POST_DOMINATORS separately.
8145
8146 2007-04-23 Nick Clifton <nickc@redhat.com>
8147
8148 * c.opt (Wformat-contains-nul): Add warning attribute.
8149
8150 2007-04-23 Jan Hubicka <jh@suse.cz>
8151
8152 * function.c (init_function_start): Don't init line number info.
8153 (expand_function_end): Update.
8154 (reset_block_changes, record_block_change, finalize_block_changes,
8155 check_block_change, free_block_changes): Kill.
8156 * function.h (reset_block_changes, record_block_change,
8157 finalize_block_changes, check_block_change, free_block_changes):
8158 Remove prototypes.
8159 (struct function): Remove ib_boundaries_block.
8160 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
8161 Use curr_insn_locator to initialize locator.
8162 (emit_line_note): Remove.
8163 * cfgexpand.c (expand_gimple_cond_expr): Update.
8164 (construct_exit_block): Likewise.
8165 (tree_expand_cfg): Initialize/finalize locators.
8166 * expr.c (expand_expr_real): Update.
8167 * cfglayout.c (line_locators_locs, line_locators_lines,
8168 file_locators_locs, file_locators_files): Remove.
8169 (set_block_levels): Move to cfgexpand.c.
8170 (insn_locators_initialize): Remove.
8171 (pass_insn_locators_initialize): Remove.
8172 (locations_locators_locs, locations_locators_vals): New static vars.
8173 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
8174 Likewise.
8175 (insn_locators_alloc, insn_locators_finalize,
8176 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
8177 New functions.
8178 (locator_location): New.
8179 (locator_line, locator_file): Rewrite.
8180 * rtl.h (emit_line_note): Kill.
8181 (insn_locators_alloc, insn_locators_finalize,
8182 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
8183 Declare.
8184 * tree-inline.c (initialize_cfun): Do not initialize
8185 ib_boundaries_block.
8186 * passes.c (pass_insn_locators_initialize): Remove.
8187
8188 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
8189
8190 PR middle-end/31448
8191 * expr.c (reduce_to_bit_field_precision): Handle
8192 CONST_INT rtx's.
8193
8194 2007-04-22 Uros Bizjak <ubizjak@gmail.com>
8195
8196 PR tree-optimization/24659
8197 * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
8198 OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
8199 (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
8200 * genopinit.c (optabs): Rename vec_pack_mod_optab
8201 to vec_pack_trunc_optab.
8202 * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
8203 early for scalar floating point operands for NOP_EXPR.
8204 (vectorizable_type_promotion): Ditto.
8205 * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
8206 vec_pack_trunc_optab.
8207 (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
8208
8209 * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
8210 * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
8211 Rename from VEC_PACK_MOD_EXPR.
8212 (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
8213 * expr.c (expand_expr_real_1): Ditto.
8214 * tree-inline.c (estimate_num_insns_1): Ditto.
8215 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
8216
8217 * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
8218 (vec_unpacks_lo_v4sf): Ditto.
8219 (vec_pack_trunc_v2df): Ditto.
8220 (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
8221 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
8222 (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
8223
8224 * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
8225 vec_pack_mod_v8hi.
8226 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
8227
8228 * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
8229 Rename from VEC_PACK_MOD_EXPR. This expression also represent
8230 packing of floating point operands.
8231 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
8232 represent unpacking of floating point operands.
8233 * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
8234 [vec_unpacks_hi]: Ditto.
8235 [vec_unpacks_lo]: Ditto.
8236
8237 2007-04-22 Jan Hubicka <jh@suse.cz>
8238
8239 * final.c (rest_of_handle_final): Call
8240 targetm.asm_out.constructor/targetm.asm_out.destructor
8241 * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
8242 proper priority via decl_*_priority_insert.
8243 * c-common.c (c_expand_body): Likewise.
8244
8245 2007-04-22 Richard Guenther <rguenther@suse.de>
8246
8247 PR tree-optimization/29789
8248 * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
8249 (rewrite_reciprocal): New helper split out from
8250 determine_invariantness_stmt.
8251 (rewrite_bittest): Likewise.
8252 (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
8253 A & (1 << B) if (1 << B) is loop invariant but (A >> B)
8254 is not.
8255
8256 2007-04-22 Revital Eres <eres@il.ibm.com>
8257
8258 * loop-unroll.c (var_to_expand): New field to support also
8259 insns of the form x = something + x.
8260 (analyze_insn_to_expand_var): Use it.
8261 (expand_var_during_unrolling): Likewise.
8262
8263 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
8264
8265 * predict.c: Include pointer-set.h.
8266 (bb_predictions): New variable.
8267 (tree_predicted_by_p, tree_predict_edge,
8268 remove_predictions_associated_with_edge): Use bb_predictions map
8269 instead of bb->predictions.
8270 (clear_bb_predictions, assert_is_empty): New functions.
8271 (combine_predictions_for_bb): Use bb_predictions map. Call
8272 clear_bb_predictions.
8273 (tree_estimate_probability): Create and free bb_predictions map.
8274 * Makefile.in (predict.o): Add pointer-set.h dependency.
8275 * basic-block.h (struct basic_block_def): Remove predictions
8276 field.
8277 * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
8278
8279 2007-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
8280
8281 PR target/31480
8282 * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
8283 is null.
8284
8285 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
8286
8287 * timevar.c (timevar_print): Change reference of --disable-checking to
8288 --enable-checking=release. Also warn if assert checking is disabled.
8289
8290 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
8291
8292 PR C/30265
8293 * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
8294 decl as addressable if the compound literal was marked as
8295 addressable.
8296 Mark the decl as a gimple register if it is a complex or
8297 vector decl and does not live in memory.
8298
8299 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
8300
8301 * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
8302 (GENERIC_NEXT): New function macro.
8303 (PHI_CHAIN): Use phi_node's new chain variable.
8304 (tree_phi_node): Change tree_common to tree_base
8305 and add the chain field.
8306 * tree-phinodes.c (make_phi_node): Don't set
8307 TREE_TYPE on the new node.
8308 * c-decl.c (lang_tree_node): Use GENERIC_NEXT
8309 instead of checking GIMPLE_TUPLE_P in chain_next.
8310 * tree-vect-transform.c
8311 (get_initial_def_for_induction): Look at
8312 PHI_RESULT_TREE for the type of the phi node.
8313 (update_vuses_to_preheader): Use PHI_CHAIN
8314 instead of TREE_CHAIN on the phi node.
8315 * tree-ssa-structalias.c (compute_points_to_sets):
8316 Likewise.
8317 (ipa_pta_execute): Likewise.
8318
8319 2007-04-21 Richard Guenther <rguenther@suse.de>
8320
8321 PR middle-end/31136
8322 * fold-const.c (fold_unary): Call fold_convert_const on the
8323 original tree.
8324
8325 2007-04-21 Alexandre Oliva <aoliva@redhat.com>
8326
8327 * gcse.c (store_killed_in_insn): Handle PARALLELs.
8328 (store_killed_in_pat): New.
8329
8330 2007-04-20 Richard Henderson <rth@redhat.com>
8331
8332 PR target/31628
8333 * config/i386/i386.c (type_has_variadic_args_p): Look for any
8334 TREE_LIST with a void_type_node value, not void_list_node exactly.
8335
8336 2007-04-21 Douglas Gregor <doug.gregor@gmail.com>
8337
8338 * doc/standards.texi: Re-arrange into language-specific
8339 subsections. Add a C++ section, documenting which standards we
8340 support.
8341
8342 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
8343
8344 * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
8345 * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
8346
8347 2007-04-20 Daniel Jacobowitz <dan@codesourcery.com>
8348
8349 * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
8350 ecrti.o and crtbegin.o.
8351 (LIB_DEFAULT_SPEC): Include -lc.
8352 (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
8353
8354 2007-04-20 Richard Henderson <rth@redhat.com>
8355
8356 PR target/28623
8357 * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
8358 argument; update all callers.
8359 (get_unaligned_offset): New.
8360 * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
8361 get_unaligned_address, just pass on the address directly.
8362 (unaligned_extendqidi): Use gen_lowpart instead of open-coding
8363 the subreg in the helper patterns.
8364 (unaligned_extendqidi_le): Use get_unaligned_offset.
8365 (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
8366 (unaligned_extendhidi_be): Likewise.
8367 (unaligned_extendhidi): Tidy.
8368 * config/alpha/alpha-protos.h: Update.
8369
8370 2007-04-20 Richard Henderson <rth@redhat.com>
8371
8372 * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
8373 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
8374 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
8375 * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
8376 * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
8377 (CPP_SPEC): Don't include %(cpp_subtarget).
8378 * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
8379 (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
8380 * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
8381
8382 2007-04-20 Jakub Jelinek <jakub@redhat.com>
8383
8384 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
8385 for __builtin_ia32_cmpordss.
8386
8387 PR tree-optimization/31632
8388 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
8389 and arg1 for optimizations of comparison against min/max values.
8390 Fold arg0 to arg1's type for optimizations of comparison against
8391 min+1 and max-1 values.
8392
8393 2007-04-19 Bernd Schmidt <bernd.schmidt@analog.com>
8394
8395 * reload.c (combine_reloads): When trying to use a dying register,
8396 check whether it's uninitialized and don't use if so.
8397
8398 2007-04-19 Brooks Moses <brooks.moses@codesourcery.com>
8399
8400 * fold-const.c: Remove prototypes for native_encode_expr and
8401 native_interpret_expr.
8402 (native_encode_expr): Make non-static.
8403 (native_interpret_expr): Likewise.
8404 * tree.h: Add prototypes for the above.
8405
8406 2007-04-19 Joseph Myers <joseph@codesourcery.com>
8407
8408 * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
8409 *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
8410 *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
8411 spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
8412 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
8413 Add length attributes.
8414
8415 2007-04-19 Janis Johnson <janis187@us.ibm.com>
8416
8417 * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
8418 not that it is 1.
8419
8420 * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
8421 __STDC_WANT_DEC_FP__.
8422
8423 2007-04-19 Joseph Myers <joseph@codesourcery.com>
8424
8425 * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
8426 for long double compatibility.
8427 * configure: Regenerate.
8428
8429 2007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
8430
8431 PR rtl-optimization/29841
8432 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
8433 trap instructions.
8434 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
8435 that may cause control flow transfer from being moved.
8436
8437 2007-04-18 Jan Hubicka <jh@suse.cz>
8438
8439 * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
8440 types.
8441
8442 2007-04-18 Eric Christopher <echristo@apple.com>
8443
8444 * config/rs6000/darwin.md (load_macho_picbase): Use link register
8445 only. Update operands.
8446 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
8447 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
8448 link register to pic register.
8449
8450 2007-04-18 Dirk Mueller <dmueller@suse.de>
8451
8452 PR diagnostic/31227
8453 * tree-vrp.c (search_for_addr_array): New.
8454 (check_array_bounds): Suppress warning about
8455 address taken of array refs if its not de-referenced.
8456
8457 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
8458
8459 * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
8460 * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
8461
8462 * tree-vectorizer.h (NITERS_KNOWN_P): New.
8463 * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
8464 instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
8465
8466 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
8467 dump print.
8468 (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a
8469 print message.
8470 (vect_analyze_scalar_cycles): Fix indentation.
8471 (vect_enhance_data_refs_alignment): Fix check in case of peeling.
8472 (vect_mark_relevant): Include phis in relevance analysis.
8473
8474 * tree-vect-transform.c (vect_transform_loop): Add an assert.
8475
8476 2007-04-18 Anatoly Sokolov <aesok@post.ru>
8477
8478 * config/avr/avr.c (ptrreg_to_str): Replace error() with
8479 output_operand_lossage().
8480
8481 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
8482
8483 * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
8484 the unused code for reduction without adjust-in-epilog to simplify the
8485 function.
8486
8487 2007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com>
8488
8489 * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
8490 (S390_TDC_NEGATIVE_ZERO): New constant.
8491 (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
8492 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
8493 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
8494 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
8495 (S390_TDC_POSITIVE_INFINITY): New constant.
8496 (S390_TDC_NEGATIVE_INFINITY): New constant.
8497 (S390_TDC_POSITIVE_QUIET_NAN): New constant.
8498 (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
8499 (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
8500 (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
8501 (S390_TDC_INFINITY): New constant.
8502 * config/s390/s390.c (s390_canonicalize_comparison): Renamed
8503 UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
8504 optimization for UNSPEC_CCZ_TO_INT.
8505 * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
8506 ("*ccz_to_int"): New insn.
8507 ("isinf<mode>2"): New insn.
8508 (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
8509 (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
8510 (UNSPEC_CCZ_TO_INT): New constant.
8511
8512 2007-04-18 Richard Guenther <rguenther@suse.de>
8513
8514 PR tree-optimization/19431
8515 PR tree-optimization/21463
8516 * tree-pass.h (pass_phiprop): Declare.
8517 * passes.c (init_optimization_passes): New phiprop pass.
8518 * tree-ssa-forwprop.c (struct phiprop_d): New structure.
8519 (phivn_valid_p): New helper function.
8520 (phiprop_insert_phi): Likewise.
8521 (propagate_with_phi): Likewise.
8522 (tree_ssa_phiprop): New propagator propagating loads
8523 through phi nodes if profitable.
8524
8525 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
8526
8527 * tree-vect-analyze.c (process_use): New function.
8528 (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
8529 Check phis in all bbs.
8530 * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
8531 assert.
8532
8533 2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
8534
8535 * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
8536 we use REG_EQUAL.
8537
8538 2007-04-17 Anatoly Sokolov <aesok@post.ru>
8539
8540 PR target/30483
8541 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
8542 error().
8543
8544 2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
8545
8546 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
8547 on "0".
8548 (sse_vmmulv4sf3): Likewise.
8549 (sse2_vmaddv2df3): Likewise.
8550 (sse2_vmmulv2df3): Likewise.
8551
8552 2007-04-17 Zdenek Dvorak <dvorakz@suse.cz>
8553
8554 PR rtl-optimization/31360
8555 * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
8556 (target_reg_cost): New.
8557 (init_set_costs): Initialize target_reg_cost. Add comments
8558 regarding the rationale of the costs.
8559 (global_cost_for_size): Renamed to...
8560 (estimate_reg_pressure_cost): ... and simplify. Decrease importance
8561 of register pressure.
8562 * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
8563 estimate_reg_pressure_cost. Add number of ivs.
8564 (determine_set_costs): Dump target_reg_cost.
8565 * loop-invariant.c (gain_for_invariant): Use
8566 estimate_reg_pressure_cost. Removed n_inv_uses argument.
8567 (best_gain_for_invariant, find_invariants_to_move): Remove
8568 n_inv_uses.
8569 * cfgloop.h (target_small_cost, target_pres_cost): Removed.
8570 (target_reg_cost): Declare.
8571 (global_cost_for_size): Declaration removed.
8572 (estimate_reg_pressure_cost): Declare.
8573
8574 2007-04-17 Peter Bergner <bergner@vnet.ibm.com>
8575
8576 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
8577 regnos into even/odd register pairs.
8578 * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
8579 TDmode similar to the other floating point modes.
8580 [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
8581 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
8582 define_expand's.
8583 (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
8584 nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
8585 (movdd_hardfloat64): Use TARGET_MFPGPR.
8586
8587 2007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
8588
8589 * reload1.c (delete_output_reload): Don't count output in n_inherited.
8590
8591 Revert
8592 2005-01-05 Richard Henderson <rth@redhat.com>
8593 PR rtl-opt/10692
8594 * reload1.c (do_input_reload): Restrict the optimization deleteing
8595 a previous output reload to RELOAD_FOR_INPUT.
8596
8597 2007-04-17 Dorit Nuzman <dorit@il.ibm.com>
8598
8599 * tree-vectorizer.h (stmt_vec_info_type): Add enum value
8600 induc_vec_info_type.
8601 (vectorizable_induction): New function declaration.
8602 * tree-vect-transform.c (get_initial_def_for_induction): No need to
8603 check if already vectorized. Find first place in BB where new stmts
8604 can be inserted. Takes only one argument.
8605 (vectorizable_induction): New function.
8606 (vect_transform_stmt): Add case for induc_vec_info_type to call
8607 vectorizable_induction.
8608 (vect_transform_loop): Consider phis for vectorization.
8609 * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
8610 condition.
8611 (analyze_operations): Call vectorizable_induction when analyzing phis.
8612 Fix comment.
8613 (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
8614 (vect_mark_relevant): Include phis in relevance analysis.
8615 (vect_mark_stmts_to_be_vectorize): Likewise.
8616 * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
8617
8618 2007-04-16 Lawrence Crowl <crowl@google.com>
8619
8620 * doc/invoke.texi (Debugging Options): Add documentation for the
8621 -femit-struct-debug options -femit-struct-debug-baseonly,
8622 -femit-struct-debug-reduced, and
8623 -femit-struct-debug-detailed[=...].
8624
8625 * c-opts.c (c_common_handle_option): Add
8626 OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
8627 and OPT_femit_struct_debug_detailed_.
8628 * c.opt: Add specifications for
8629 -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
8630 and -femit-struct-debug-detailed[=...].
8631 * opts.c (set_struct_debug_option): Parse the
8632 -femit-struct-debug-... options.
8633 * opts.c (matches_main_base, main_input_basename,
8634 main_input_baselength, base_of_path, matches_main_base): Add
8635 variables and functions to compare header base name to compilation
8636 unit base name.
8637 * opts.c (should_emit_struct_debug): Add to determine to emit a
8638 structure based on the option.
8639 (dump_struct_debug) Also disabled function to debug this
8640 function.
8641 * opts.c (handle_options): Save the base name of the
8642 compilation unit.
8643
8644 * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
8645 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
8646 This hook indicates if a type is generic. Set it by default
8647 to "never generic".
8648 * langhooks.h (struct lang_hooks_for_types): Add a new hook
8649 to determine if a struct type is generic or not.
8650 * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
8651 * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
8652 * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
8653 with live C++ hook.
8654
8655 * flags.h (enum debug_info_usage): Add an enumeration to describe
8656 a program's use of a structure type.
8657 * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
8658 to indicate the program's usage of the type. Filter structs based
8659 on the -femit-struct-debug-... specification.
8660 (gen_type_die): Split into two routines, gen_type_die and
8661 gen_type_die_with_usage. gen_type_die is now a wrapper
8662 that assumes direct usage.
8663 (gen_type_die_with_usage): Replace calls to gen_type_die
8664 with gen_type_die_with_usage adding the program usage of
8665 the referenced type.
8666 (dwarf2out_imported_module_or_decl): Suppress struct debug
8667 information using should_emit_struct_debug when appropriate.
8668
8669 2007-04-16 Ian Lance Taylor <iant@google.com>
8670
8671 PR tree-optimization/31522
8672 * tree-vrp.c (vr_phi_edge_counts): New static variable.
8673 (vrp_initialize): Allocate vr_phi_edge_counts.
8674 (vrp_visit_phi_node): Don't push to infinity if we saw a new
8675 executable edge. Drop test for all constants.
8676 (vrp_finalize): Free vrp_phi_edge_counts.
8677
8678 * doc/cpp.texi (Common Predefined Macros): Clarify description of
8679 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
8680
8681 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
8682 predecessors at head rather than tail.
8683
8684 2007-04-16 Matthias Klose <doko@debian.org>
8685
8686 * config/alpha/linux.h (CPP_SPEC): Define.
8687 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
8688
8689 2007-04-16 Aldy Hernandez <aldyh@redhat.com>
8690
8691 * function.h: Remove sequence_stack extern declaration.
8692
8693 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
8694
8695 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
8696 TARGET_FIDOA.
8697 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
8698 defined.
8699
8700 2007-04-16 Anatoly Sokolov <aesok@post.ru>
8701
8702 * config/avr/avr.c (avr_arch_types): Rearranging array.
8703 (enum avr_arch): Add.
8704 (avr_mcu_types): Use avr_arch enumeration constants instead of
8705 numbers.
8706 * config/avr/avr.h (LINK_SPEC): Simplify.
8707
8708 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
8709
8710 * config/m68k/m68k.c (m68k_libcall_value,
8711 m68k_function_value): Use macros for register names more.
8712
8713 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
8714 instead.
8715 (M68K_REGNAME): Use A6_REG.
8716 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
8717
8718 2007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
8719
8720 PR middle-end/28071
8721 * sched-int.h (struct deps): Split field 'pending_lists_length' into
8722 'pending_read_list_length' and 'pending_write_list_length'. Update
8723 comment.
8724 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
8725 to handle two length counters instead of one. Update all uses.
8726 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
8727 two length counters instead of one.
8728 * sched-rgn.c (propagate_deps): Update to handle two length counters
8729 instead of one.
8730
8731 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
8732
8733 PR target/31582
8734 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
8735 copy of source, pass it to ix86_expand_vector_set and return
8736 it as target.
8737
8738 2007-04-16 David Ung <davidu@mips.com>
8739 Joseph Myers <joseph@codesourcery.com>
8740
8741 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
8742 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
8743 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
8744 Add 74K processor information.
8745 * config/mips/mips.md: Include 74k.md.
8746 (cpu): Add 74kc,74kf,74kx.
8747 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
8748 * config/mips/74k.md: New.
8749 * doc/invoke.texi (MIPS Options): Document 74K support.
8750
8751 2007-04-16 Dorit Nuzman <dorit@il.ibm.com>
8752
8753 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
8754 vectorizable_* functions.
8755 * tree-vect-transform.c (vectorizable_call): Add check for
8756 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
8757 (vectorizable_store): likewise.
8758 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
8759 Add comments.
8760 (vectorizable_operation, vectorizable_type_demotion): Likewise.
8761 (vectorizable_type_promotion, vectorizable_load): Likewise.
8762 (vectorizable_live_operation, vectorizable_condition): Likewise.
8763 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
8764 STMT_VINFO_LIVE_P.
8765 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
8766
8767 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
8768
8769 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
8770 register numbers more.
8771 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
8772 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
8773 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
8774 FUNCTION_VALUE_REGNO_P): Likewise.
8775 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
8776 STATIC_CHAIN_REGNUM): Likewise.
8777 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
8778 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
8779 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
8780 * config/m68k/m68k.md (FP_REG): New.
8781
8782 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
8783
8784 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
8785 alignment on fido.
8786
8787 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
8788
8789 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
8790 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
8791 comment typos.
8792
8793 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
8794
8795 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
8796 cold loops.
8797
8798 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
8799
8800 PR c/31520
8801 * c-decl.c (finish_decl): Grab the type of the decl after the call
8802 to store_init_value.
8803
8804 2007-04-14 Steven Bosscher <steven@gcc.gnu.org>
8805
8806 * common.opt (fforward-propagate): Fix "Optimization" annotation.
8807
8808 2007-04-14 Jakub Jelinek <jakub@redhat.com>
8809
8810 PR c++/25874
8811 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
8812 dominators, post dominators and cleanup cfg before returning.
8813
8814 2007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
8815
8816 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
8817 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
8818
8819 2007-04-14 Kazu Hirata <kazu@codesourcery.com>
8820
8821 * config.gcc: Recognize fido.
8822 * config/m68k/m68k-devices.def (fidoa): New.
8823 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
8824 __mfido__.
8825 (FL_FIDOA, TARGET_FIDOA): New.
8826 * config/m68k/m68k.opt (mfidoa): New.
8827
8828 2007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8829
8830 PR middle-end/31322
8831 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
8832 when a personality function is used.
8833
8834 2007-04-13 Bob Wilson <bob.wilson@acm.org>
8835
8836 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
8837
8838 2007-04-13 Mike Stump <mrs@apple.com>
8839
8840 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
8841 we can...
8842 * config/darwin.opt (fapple-kext): Make C++ only.
8843 * config/darwin.c (darwin_override_options): Remove code to ensure
8844 -fapple-kext is given for C++ only.
8845
8846 2007-04-13 Richard Sandiford <richard@codesourcery.com>
8847
8848 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
8849 * config/mips/mips.c (override_options): Call
8850 SUBTARGET_OVERRIDE_OPTIONS, if defined.
8851
8852 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
8853
8854 * config/i386/i386.opt (msvr3-shlib): Removed.
8855
8856 * doc/invoke.texi: Remove -msvr3-shlib.
8857
8858 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
8859
8860 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
8861 with "popcnt" instruction.
8862
8863 2007-04-13 Richard Guenther <rguenther@suse.de>
8864
8865 PR tree-optimization/21258
8866 * tree-vrp.c (compare_case_labels): New helper.
8867 (find_switch_asserts): New function.
8868 (find_assert_locations): Call it for SWITCH_EXPRs.
8869
8870 2007-04-13 Uros Bizjak <ubizjak@gmail.com>
8871
8872 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
8873 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
8874 check is now implied in X87_FLOAT_MODE_P.
8875 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
8876 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
8877 (fix_trunc<mode>_i386_fisttp): Ditto.
8878 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
8879 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
8880 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
8881 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
8882 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
8883 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
8884 (unnamed_splitters): Ditto.
8885 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
8886 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
8887 FIRST_SSE_REG for local functions when SSE math is enabled or
8888 for functions with sseregparm attribute.
8889 (standard_80387_constant_p): Return -1 if mode is not
8890 X87_FLOAT_MODE_P.
8891 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
8892 (ix86_expand_compare): Ditto.
8893 (ix86_expand_carry_flag_compare): Ditto.
8894 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
8895 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
8896 DECIMAL_FLOAT_MODE_P.
8897 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
8898 of SCALAR_FLOAT_MODE_P.
8899 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
8900 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
8901 checks before FLOAT_MODE_P.
8902 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
8903 before FLOAT_MODE_P.
8904 [DIV]: Ditto.
8905 [NEG]: Ditto.
8906 [ABS]: Ditto.
8907 [SQRT]: Ditto.
8908 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
8909
8910 2007-04-12 Paolo Bonzini <bonzini@gnu.org>
8911 Charles Wilson <libtool@cwilson.fastmail.fm>
8912
8913 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
8914 (libgcc.mvars): Don't depend on them.
8915 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
8916 * exec-tool.in: New.
8917
8918 2007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
8919
8920 * doc/invoke.text (--help): Document --help=common.
8921
8922 2007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
8923
8924 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
8925
8926 2007-04-12 Richard Sandiford <richard@codesourcery.com>
8927
8928 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
8929 * genemit.c (main): Emit #include "integrate.h".
8930 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
8931 (LOADGP_RTP): New mips_loadgp_style.
8932 * config/mips/mips.h: Include config/vxworks-dummy.h.
8933 (TARGET_RTP_PIC): New macro.
8934 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
8935 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
8936 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
8937 for TARGET_RTP_PIC.
8938 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
8939 -mvxworks-pic when using -mrtp and a PIC option.
8940 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
8941 for RTP PIC.
8942 (mips_symbolic_constant_p, mips_symbolic_address_p)
8943 (mips_symbol_insns): Handle SYMBOL_HALF.
8944 (override_options): Warn about -G and -mrtp being used together.
8945 Initialize mips_lo_relocs[SYMBOL_HALF].
8946 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
8947 (mips_emit_loadgp): Handle LOADGP_RTP.
8948 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
8949 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
8950 (tablejump): Handle function-relative case table entries if
8951 TARGET_RTP_PIC.
8952 * config/mips/predicates.md (symbol_ref_operand): New predicate.
8953
8954 2007-04-12 Richard Sandiford <richard@codesourcery.com>
8955
8956 * config/mips/mips.md (load_call<mode>): Allow any general register.
8957 destination.
8958 (sibcall_value_internal, sibcall_value_multiple_internal)
8959 (call_value_internal, call_value_split, call_value_multiple_internal)
8960 (call_value_multiple_split): Remove constraints from operand 0.
8961
8962 2007-04-12 Richard Sandiford <richard@codesourcery.com>
8963
8964 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
8965 rather than loadgp_noshared.
8966 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
8967 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
8968 gen_loadgp.
8969 * config/mips/mips.md (loadgp): Rename to...
8970 (loadgp_newabi): ...this.
8971 (loadgp_noshared): Rename to...
8972 (loadgp_absolute): ...this.
8973
8974 2007-04-12 Richard Sandiford <richard@codesourcery.com>
8975
8976 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
8977 false for locally-binding symbols.
8978 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
8979
8980 2007-04-12 Richard Sandiford <richard@codesourcery.com>
8981
8982 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
8983 (SYMBOL_GOT_PAGE_OFST): ...this.
8984 (SYMBOL_GOT_GLOBAL): Rename to...
8985 (SYMBOL_GOT_DISP): ...this.
8986 (SYMBOL_GOTOFF_GLOBAL): Rename to...
8987 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
8988 * config/mips/mips.c (mips_global_symbol_p): New function.
8989 (mips_symbol_binds_local_p): Likewise.
8990 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
8991 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use
8992 mips_global_symbol_p and mips_symbol_binds_local_p.
8993 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
8994 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
8995 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
8996 SYMBOL_GOTOFF_DISP.
8997 (mips_ok_for_lazy_binding_p): New function.
8998 (mips_load_call_address, mips_expand_call): Use it.
8999 (mips_dangerous_for_la25_p): Likewise.
9000 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
9001 (*got_disp<mode>): Use got_disp_operand instead of
9002 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
9003 SYMBOL_GOTOFF_GLOBAL.
9004 (*got_page<mode>): Use got_page_ofst_operand instead of
9005 local_got_operand.
9006 * config/mips/predicates.md (const_call_insn_operand): Use
9007 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
9008 (global_got_operand): Rename to...
9009 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
9010 SYMBOL_GOT_GLOBAL.
9011 (local_got_operand): Rename to...
9012 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
9013 of SYMBOL_GOT_LOCAL.
9014
9015 2007-04-12 Richard Sandiford <richard@codesourcery.com>
9016
9017 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
9018 TARGET_CALL_CLOBBERED_GP.
9019 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
9020 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
9021 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
9022 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
9023 of TARGET_ABICALLS && !TARGET_NEWABI.
9024 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
9025 * config/mips/mips.c (mips_load_call_address): Check
9026 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
9027 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
9028 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
9029 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
9030 TARGET_ABICALLS && TARGET_NEWABI.
9031 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
9032 TARGET_ABICALLS.
9033 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
9034 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
9035 TARGET_ABICALLS && TARGET_NEWABI.
9036 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
9037 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
9038 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
9039 whether indirect calls must use $25.
9040 (mips_extra_live_on_entry): Check TARGET_GOT instead of
9041 TARGET_ABICALLS.
9042 * config/mips/mips.md (jal_macro): Check flag_pic and
9043 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
9044 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
9045 instead of TARGET_ABICALLS.
9046 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
9047 TARGET_ABICALLS && TARGET_OLDABI.
9048 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
9049 (sibcall): In the comment above the define_insn, mention
9050 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
9051 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
9052 instead of TARGET_ABICALLS.
9053
9054 2007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
9055
9056 * doc/md.texi (Blackfin family constraints): Document PA and PB.
9057 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
9058 (MACFLAGS_MATCH_P): New macro.
9059 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
9060 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
9061 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
9062 the other MACFLAG constants.
9063 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
9064 (flag_machi): Tighten constraints. Renumber some of the operands.
9065 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
9066 output template.
9067 (flag_machi_parts_acconly): New pattern.
9068 (flag_macinithi): Tighten constraints. Allow any accumulator to be
9069 used.
9070 (flag_macinit1hi): Tighten constraints.
9071 (flag_mul_macv2hi_parts_acconly): New pattern.
9072
9073 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
9074 Use a more efficient implementation.
9075 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
9076 inline sequences when not optimizing for size.
9077
9078 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
9079 movhi_high2low): Delete, merge functionality into...
9080 (packv2hi): ... this pattern.
9081
9082 2007-02-11 Jie Zhang <jie.zhang@analog.com>
9083 * config/bfin/bfin.opt (msim): New option.
9084 (mcpu=): New option.
9085 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
9086 (bfin_cpu_t): Typedef of enum bfin_cpu.
9087 (bfin_cpu_type): New declaration.
9088 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
9089 -msim and -mcpu= options.
9090 (LIB_SPEC): Likewise.
9091 * config/bfin/bfin.c (bfin_cpu_type): Define.
9092 (bfin_handle_option): Handle -mcpu= option.
9093 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
9094 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
9095 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
9096
9097 2007-04-12 Richard Sandiford <richard@codesourcery.com>
9098
9099 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
9100 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
9101 (powerpc-wrs-vxworksae): Use ${tm_file}.
9102 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
9103 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
9104 * config/i386/vx-common.h: New file.
9105
9106 2007-04-12 Richard Sandiford <richard@codesourcery.com>
9107
9108 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
9109 of crt0.o%s.
9110
9111 2007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
9112
9113 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
9114 ldxtr.
9115
9116 2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
9117
9118 PR c++/31078
9119 PR c++/31103
9120 * c-common.c (c_build_qualified_type): Set canonical type
9121 appropriately.
9122
9123 2007-04-12 Richard Guenther <rguenther@suse.de>
9124
9125 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
9126 lower bound and element size if lower bound is not zero
9127 or either of the ARRAY_REF operands is set.
9128
9129 2007-04-12 Richard Guenther <rguenther@suse.de>
9130
9131 PR tree-optimization/24689
9132 PR tree-optimization/31307
9133 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
9134 indices by value.
9135 * gimplify.c (canonicalize_addr_expr): To be consistent with
9136 gimplify_compound_lval only set operands two and three of
9137 ARRAY_REFs if they are not gimple_min_invariant. This makes
9138 it never at this place.
9139 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
9140
9141 2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9142
9143 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
9144 null before emitting a .nsubspa directive.
9145
9146 2007-04-11 Diego Novillo <dnovillo@redhat.com>
9147
9148 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
9149 need_to_partition_p if there are no memory statements in the
9150 function.
9151
9152 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
9153
9154 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
9155 (gcd_of_steps_may_divide_p): New function.
9156 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
9157
9158 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
9159
9160 * reload.c (find_reloads_toplev, find_reloads_address,
9161 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
9162 not a pointer equality test, to decide if we need to call
9163 push_reg_equiv_alt_mem.
9164
9165 2007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
9166
9167 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
9168 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
9169 New.
9170 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
9171
9172 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
9173
9174 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
9175 vector to be positive.
9176
9177 2007-04-11 Diego Novillo <dnovillo@redhat.com>
9178
9179 PR 30735
9180 PR 31090
9181 * doc/invoke.texi: Document --params max-aliased-vops and
9182 avg-aliased-vops.
9183 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
9184 debug_memory_partitions): Move to tree-flow.h
9185 * params.h (AVG_ALIASED_VOPS): Define.
9186 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
9187 users.
9188 (mp_info_t): Likewise.
9189 (get_mem_sym_stats_for): New.
9190 (set_memory_partition): Move from tree-flow-inline.h.
9191 (mark_non_addressable): Only clear the set of symbols for the
9192 partition if it exists.
9193 (dump_memory_partitions): Move from tree-ssa-operands.c
9194 (debug_memory_partitions): Likewise.
9195 (need_to_partition_p): New.
9196 (dump_mem_ref_stats): New.
9197 (debug_mem_ref_stats): New.
9198 (dump_mem_sym_stats): New.
9199 (debug_mem_sym_stats): New.
9200 (update_mem_sym_stats_from_stmt): New.
9201 (compare_mp_info_entries): New.
9202 (mp_info_cmp): Call it.
9203 (sort_mp_info): Change argument to a list of mem_sym_stats_t
9204 objects.
9205 (get_mpt_for): Move from tree-ssa-operands.c.
9206 (find_partition_for): New.
9207 (create_partition_for): Remove.
9208 (estimate_vop_reduction): New.
9209 (update_reference_counts): New.
9210 (build_mp_info): New.
9211 (compute_memory_partitions): Refactor.
9212 Document new heuristic.
9213 Call build_mp_info, update_reference_counts,
9214 find_partition_for and estimate_vop_reduction.
9215 (compute_may_aliases): Populate virtual operands before
9216 calling debugging dumps.
9217 (delete_mem_sym_stats): New.
9218 (delete_mem_ref_stats): New.
9219 (init_mem_ref_stats): New.
9220 (init_alias_info): Call it.
9221 (maybe_create_global_var): Remove alias_info argument.
9222 Get number of call sites and number of pure/const call sites
9223 from gimple_mem_ref_stats().
9224 (dump_alias_info): Call dump_memory_partitions first.
9225 (dump_points_to_info_for): Show how many times a pointer has
9226 been dereferenced.
9227 * opts.c (decode_options): For -O2 set --param
9228 max-aliased-vops to 500.
9229 For -O3 set --param max-aliased-vops to 1000 and --param
9230 avg-aliased-vops to 3.
9231 * fortran/options.c (gfc_init_options): Remove assignment to
9232 MAX_ALIASED_VOPS.
9233 * tree-flow-inline.h (gimple_mem_ref_stats): New.
9234 * tree-dfa.c (dump_variable): Dump memory reference
9235 statistics.
9236 Dump NO_ALIAS* settings.
9237 (referenced_var_lookup): Tidy.
9238 (mem_sym_stats): New.
9239 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
9240 and ORIG are different SSA names for a memory partition.
9241 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
9242 * tree-flow.h (struct mem_sym_stats_d): Define.
9243 (mem_sym_stats_t): Define.
9244 (struct mem_ref_stats_d): Define.
9245 (struct gimple_df): Add field mem_ref_stats.
9246 (enum noalias_state): Define.
9247 (struct var_ann_d): Add bitfield noalias_state.
9248 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
9249 debug_mem_ref_stats, debug_memory_partitions,
9250 debug_mem_sym_stats): Declare.
9251 * tree-ssa-structalias.c (update_alias_info): Update call
9252 sites, pure/const call sites and asm sites in structure
9253 returned by gimple_mem_ref_stats.
9254 Remove local variable IS_POTENTIAL_DEREF.
9255 Increase NUM_DEREFS if the memory expression is a potential
9256 dereference.
9257 Call update_mem_sym_stats_from_stmt.
9258 If the memory references memory, call
9259 update_mem_sym_stats_from_stmt for all the direct memory
9260 symbol references found.
9261 (intra_create_variable_infos): Set noalias_state field for
9262 pointer arguments according to the value of
9263 flag_argument_noalias.
9264 * tree-ssa-structalias.h (struct alias_info): Remove fields
9265 num_calls_found and num_pure_const_calls_found.
9266 (update_mem_sym_stats_from_stmt): Declare.
9267 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
9268 Set default value to 100.
9269 (PARAM_AVG_ALIASED_VOPS): Define.
9270
9271 2007-04-11 Richard Guenther <rguenther@suse.de>
9272
9273 PR middle-end/31530
9274 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
9275 a * -b + c as c - a * b if we honor sign dependent rounding.
9276
9277 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
9278
9279 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
9280 bfin_expand_strmov.
9281 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
9282 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
9283 variables.
9284 (initialize_trampoline): Don't use old-style function definition.
9285 (bfin_secondary_reload): Mark IN_P argument as unused.
9286
9287 2007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
9288
9289 PR tree-optimization/31343
9290 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
9291 (build_polynomial_chrec): Return a scalar when the evolution is zero.
9292 * testsuite/gcc.dg/vect/pr31343.c: New.
9293
9294 2007-04-10 Eric Christopher <echristo@apple.com>
9295
9296 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
9297 * config/i386/i386.md (*cmpfp0): Use.
9298 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
9299 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
9300 (fix_trunc<mode>_i386_fisttp): Ditto.
9301 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
9302 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
9303 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
9304 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
9305 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
9306 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
9307 (unnamed_splitters): Ditto.
9308 * config/i386/i386.c (output_fix_trunc): Assert that
9309 we're not being passed a TFmode operand.
9310
9311 2007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
9312
9313 PR tree-optimization/31526
9314 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
9315 n_basic_blocks to find newly added blocks.
9316
9317 2007-04-10 Uros Bizjak <ubizjak@gmail.com>
9318
9319 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
9320 alternative.
9321 (fix_trunc<mode>si_sse): Ditto.
9322 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
9323 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
9324 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
9325 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
9326 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
9327 expander using SSEMODEF mode macro.
9328 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
9329 expander using SSEMODEF mode macro.
9330 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
9331 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
9332 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
9333 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
9334 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
9335 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
9336 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
9337 Macroize insn using X87MODEF mode macro.
9338
9339 2007-04-09 H.J. Lu <hongjiu.lu@intel.com>
9340
9341 * config/i386/sse.md (sse2_pinsrw): Removed.
9342 (sse2_pextrw): Renamed to ...
9343 (*sse2_pextrw): This.
9344
9345 2007-04-09 Jan Hubicka <jh@suse.cz>
9346
9347 PR target/27869
9348 * config/i386/sse.md
9349 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
9350 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
9351 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
9352 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
9353
9354 2007-04-09 Jan Hubicka <jh@suse.cz>
9355
9356 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
9357 multiple fields of union.
9358
9359 2007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
9360
9361 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
9362 (create_preheaders): Check that loops are available.
9363 (fix_loop_structure): Clean up, improve comments.
9364 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
9365 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
9366 state flags.
9367 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
9368 * predict.c (tree_estimate_probability): Do not call
9369 calculate_dominance_info. Call create_preheaders.
9370 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
9371 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
9372 flags.
9373 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
9374 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
9375 * tree-cfg.c (tree_split_edge): Make an assert more precise.
9376 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
9377 arguments.
9378
9379 2007-04-08 Jan Hubicka <jh@suse.cz>
9380
9381 * tree.h (maybe_fold_offset_to_component_ref): Declare.
9382 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
9383 * fold-const.c (fold_unary): Use it.
9384
9385 2007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
9386
9387 * varasm.c (assemble_variable): Remove call to
9388 lang_hooks.decls.prepare_assemble_variable.
9389 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
9390 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
9391 * langhooks.h (lang_hooks_for_decls): Remove
9392 prepare_assemble_variable.
9393
9394 2007-04-08 Mike Stump <mrs@apple.com>
9395
9396 * config/i386/i386.c: Use inc/dec on Core2.
9397
9398 2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
9399
9400 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
9401 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
9402 lhd_tree_inlining_end_inlining): Remove.
9403 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
9404 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
9405 end_inlining hooks.
9406 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
9407 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
9408 lhd_tree_inlining_end_inlining): Remove prototypes.
9409 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
9410 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
9411 LANG_HOOKS_TREE_INLINING_START_INLINING,
9412 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
9413
9414 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
9415 not set it.
9416
9417 2007-04-08 Anatoly Sokolov <aesok@post.ru>
9418
9419 PR target/29932
9420 * config/avr/predicates.md (io_address_operand): Delete predicate.
9421 (low_io_address_operand): Don't use 'mode' argument.
9422 (higth_io_address_operand): Rename ...
9423 (high_io_address_operand): ... to this. Don't use 'mode' argument.
9424 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
9425 for above change.
9426
9427 2007-04-07 Daniel Berlin <dberlin@dberlin.org>
9428
9429 Revert change removing staticp.
9430
9431 2007-04-07 Anatoly Sokolov <aesok@post.ru>
9432
9433 PR target/30289
9434 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
9435 earlyclobber.
9436
9437 2007-04-07 Bruce Korb <bkorb@gnu.org>
9438
9439 * c.opt: Add -Wformat-contains-nul.
9440 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
9441 -Wformat setting.
9442 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
9443 the NUL byte warning.
9444
9445 2007-04-07 H.J. Lu <hongjiu.lu@intel.com>
9446
9447 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
9448
9449 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
9450
9451 * tree.c (staticp): No longer use staticp langhook.
9452 * langhooks.c (lhd_staticp): Removed.
9453 * langhooks.h (struct lang_hooks): Remove staticp.
9454 * c-common.c (c_staticp): Remove.
9455 * c-common.h (c_staticp): Ditto.
9456 * langhooks-defs.h (lhd_staticp): Ditto.
9457 (LHD_HOOKS_STATICP): Ditto
9458 * tree.h (gcc_assert_lowered): New macro.
9459
9460 2007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
9461
9462 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
9463 argument "reliable".
9464 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
9465 Add argument "reliable". Propagate it through calls.
9466 (infer_loop_bounds_from_undefined): Derive number of iterations
9467 estimates from references in blocks that do not dominate loop latch.
9468 (gcov_type_to_double_int): New function.
9469 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
9470 and expected_loop_iterations_unbounded.
9471 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
9472 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
9473 * tree-data-ref.c (estimated_loop_iterations): Export.
9474 (get_references_in_stmt): Fix -- do not return addresses of local
9475 objects.
9476 * cfgloop.h (expected_loop_iterations_unbounded,
9477 estimated_loop_iterations): Declare.
9478
9479 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
9480
9481 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
9482
9483 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
9484
9485 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
9486 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
9487 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
9488 Use output_387_reg_move().
9489 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
9490 expander using X87MODEF12 mode macro.
9491 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
9492 choosing register preferences. Use output_387_reg_move().
9493 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
9494 instead of "x". Use output_387_reg_move().
9495 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
9496 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
9497 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
9498 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
9499 Use output_387_reg_move().
9500 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
9501 mode macro.
9502 (*truncxf?f_i387 splitter): Ditto.
9503
9504 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
9505
9506 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
9507 LANG_HOOKS_SAFE_FROM_P.
9508 * expr.c (safe_from_p): Remove langhook call.
9509 * langhooks.h (lang_hooks): Remove safe_from_p.
9510 (lhd_safe_from_p): Remove prototype.
9511 * langhooks.c (lhd_safe_from_p): Remove.
9512
9513 2007-04-06 Jan Hubicka <jh@suse.cz>
9514
9515 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
9516 functions.
9517
9518 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
9519
9520 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
9521 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
9522 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
9523 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
9524 alternative.
9525 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
9526 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
9527
9528 2007-04-05 Richard Henderson <rth@redhat.com>
9529
9530 * config/alpha/alpha.c (print_operand) [+]: Remove.
9531 (alpha_end_function): Print nop if call at end of function.
9532 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
9533 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
9534 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
9535 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
9536 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
9537 the call pattern. Update peepholes to match.
9538
9539 2007-04-05 Janis Johnson <janis187@us.ibm.com>
9540
9541 * doc/extend.texi (Other Builtins): Add decimal float variants
9542 of signbit.
9543 * builtins.def: Ditto.
9544 * builtins.c (expand_builtin): Ditto.
9545
9546 2007-04-05 Uros Bizjak <ubizjak@gmail.com>
9547 H.J. Lu <hongjiu.lu@intel.com>
9548
9549 PR target/31478
9550 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
9551 of V8HImode when calling ix86_binary_operator_ok.
9552 (sse2_pmaddwd): Call ix86_binary_operator_ok.
9553 (sdot_prodv8hi): Operands 1 and 2 must be register.
9554
9555 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
9556
9557 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
9558 initialize align to silence bogus warning.
9559
9560 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
9561
9562 PR middle-end/22156
9563 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
9564 all_no_warning.
9565 (struct sra_walk_fns): Remove use_all parameter from use.
9566 (sra_hash_tree): Handle BIT_FIELD_REFs.
9567 (sra_elt_hash): Don't hash bitfld blocks.
9568 (sra_elt_eq): Skip them in parent compares as well. Handle
9569 BIT_FIELD_REFs.
9570 (sra_walk_expr): Don't maintain or pass down use_all_p.
9571 (scan_use): Remove use_all parameter.
9572 (scalarize_use): Likewise. Re-expand assignment to
9573 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
9574 output, and re-scalarize after output. Don't mark anything
9575 for no warning.
9576 (scalarize_ldst): Adjust.
9577 (scalarize_walk_gimple_modify_statement): Likewise.
9578 (build_element_name_1): Handle BIT_FIELD_REFs.
9579 (instantiate_element): Don't warn for any element whose parent
9580 is used as a whole.
9581 (instantiate_missing_elements_1): Return the sra_elt.
9582 (canon_type_for_field): New.
9583 (try_instantiate_multiple_fields): New.
9584 (instantiate_missing_elemnts): Use them.
9585 (mark_no_warning): Removed.
9586 (generate_one_element_ref): Handle BIT_FIELD_REFs.
9587 (REPLDUP, sra_build_elt_assignment): New.
9588 (generate_copy_inout): Use them.
9589 (generate_element_copy): Likewise. Handle bitfld differences.
9590 (generate_element_zero): Don't recurse for blocks. Use
9591 sra_build_elt_assignment.
9592 (generate_one_element_int): Take elt instead of var. Use
9593 sra_build_elt_assignment.
9594 (generate_element_init_1): Adjust.
9595 (scalarize_use, scalarize_copy): Use REPLDUP.
9596 (scalarize_ldst): Move assert before dereference.
9597 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
9598
9599 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
9600
9601 * regmove.c: Fix unused variable warnings due to previous commit.
9602
9603 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
9604
9605 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
9606 (regmove_bb_head): Remove.
9607 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
9608 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
9609 problems with fixup_match_1.
9610 Don't initialize/free regmove_bb_head.
9611
9612 (reg_is_remote_constant_p): If an insn is in the same basic block
9613 but not before INSN, consider it remote, too.
9614
9615 2007-04-05 Anatoly Sokolov <aesok@post.ru>
9616
9617 PR target/25448
9618 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
9619 DECL_ASSEMBLER_NAME, not the DECL_NAME.
9620
9621 2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
9622
9623 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
9624 (CONDITIONAL_REGISTER_USAGE): Likewise.
9625
9626 2007-04-04 Richard Henderson <rth@redhat.com>
9627
9628 * config/alpha/lib1funcs.asm: Remove unused file.
9629
9630 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
9631
9632 PR other/31356
9633 * opts.c (print_specific_help): Fix --help=<language>
9634 header line.
9635 (common_handle_option): Support --help=common.
9636
9637 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
9638
9639 PR other/31353
9640 * gcc.c (main): Do not run the linker if
9641 print_subprocess_help indicates that it shouldn't be
9642 run.
9643
9644 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
9645
9646 PR doc/31355
9647 * doc/invoke.texi (--help=): Document <languages> value, fix
9648 formatting in tables of values.
9649
9650 2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
9651
9652 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
9653 dllimport attribute of virtual methods.
9654
9655 2007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
9656
9657 * config/score/crti.asm: Change _bss_start to __bss_start.
9658 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
9659 (OUTGOING_REG_PARM_STACK_SPACE) update.
9660 * config/score/score.opt: add options to make backend support
9661 score5, score5u, score7 and score7d.
9662 * config/score/score.md: Likewise.
9663 * config/score/misc.md: Likewise.
9664 * config/score/mac.md: Likewise.
9665 * doc/invoke.texi: Likewise.
9666 * doc/md.texi: update constraints define.
9667
9668 2007-04-03 Richard Henderson <rth@redhat.com>
9669
9670 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
9671 an appropriate type, use the mode instead.
9672
9673 2007-04-03 Richard Sandiford <richard@codesourcery.com>
9674
9675 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
9676 Set the default --with-arch setting to mips2.
9677 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
9678 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
9679 (MULTILIB_OSDIRNAMES): Delete.
9680 (MULTILIB_DIRNAMES): Define.
9681 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
9682 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
9683 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
9684 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
9685 VXWORKS_OS_CPP_BUILTINS.
9686 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
9687 (MIPS_DEBUGGING_INFO): Undefine.
9688 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
9689
9690 2007-04-03 Jakub Jelinek <jakub@redhat.com>
9691
9692 PR middle-end/30704
9693 * fold-const.c (native_encode_real): Encode real.c provided longs
9694 as a series of 32-bit native integers.
9695 (native_interpret_real): Interpret buffer as a series of 32-bit
9696 native integers.
9697
9698 2007-04-03 Richard Guenther <rguenther@suse.de>
9699
9700 * genpreds.c (write_insn_constraint_len): Write function
9701 optimized for CONSTRAINT_LEN implementation.
9702 (write_tm_preds_h): Output insn_constraint_len inline and
9703 use it for CONSTRAINT_LEN.
9704 (write_insn_preds_c): Don't output insn_constraint_len.
9705 * doc/md.texi (define_register_constraint): Document multi-letter
9706 constraints shall have the same length if they start with the same
9707 letter.
9708
9709 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
9710
9711 PR target/31175
9712 * config/i386/i386.md (isinf<mode>2): Expand only when
9713 TARGET_C99_FUNCTIONS is set.
9714
9715 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
9716
9717 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
9718 (x86_64-*-linux*): Ditto.
9719 * config/i386/i386.opt (mpc): New option.
9720 * config/i386/i386.c (overrride_options): Handle
9721 ix87_precision_string.
9722 * config/i386/crtprec.c: New file.
9723 * config/i386/t-crtpc: Ditto.
9724 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
9725 and -mpc80 options.
9726 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
9727 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
9728 crtprec32.o, crtprec64.o and crtprec80.o.
9729
9730 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
9731 and -mpc80 options.
9732 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
9733
9734 2007-04-02 Eric Christopher <echristo@apple.com>
9735
9736 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
9737 limitations on darwin.
9738
9739 2007-04-02 Anatoly Sokolov <aesok@post.ru>
9740
9741 PR target/31137
9742 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
9743
9744 2007-04-02 Dave Korn <dave.korn@artimi.com>
9745
9746 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
9747
9748 2007-04-02 Dave Korn <dave.korn@artimi.com>
9749
9750 * libgcc2.h (exception_descriptor): Don't forward-declare.
9751 (__get_eh_table_language, __get_eh_table_version): Delete
9752 prototypes of long-dead functions.
9753
9754 2007-04-01 Daniel Berlin <dberlin@dberlin.org>
9755
9756 * ebitmap.h: New file
9757 * ebitmap.c: New file
9758 * Makefile.in (ebitmap.o): New target.
9759
9760 2007-04-01 Jan Hubicka <jh@suse.cz>
9761
9762 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
9763 before very first instruction.
9764
9765 2007-04-01 Jan Hubicka <jh@suse.cz>
9766
9767 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
9768 waring on 64bit hosts.
9769 * bitmap.h: Fix typo in bitmap_head_def.
9770
9771 2007-04-01 Steven Bosscher <steven@gcc.gnu.org>
9772
9773 PR rtl-optimization/31391
9774 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
9775 into a DELETED_LABEL note, and the label is in an empty basic
9776 block, update BB_END as well as BB_HEAD.
9777
9778 2007-04-01 Richard Henderson <rth@redhat.com>
9779
9780 PR tree-optimization/31169
9781 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
9782 to varying if the range is outside [0, prec-1].
9783
9784 2007-04-01 Richard Sandiford <richard@codesourcery.com>
9785
9786 PR target/31388
9787 * config/mips/mips.md (load_const_gp): New insn.
9788 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
9789 the MIPS16 GP pseudo register if no_new_pseudos.
9790 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
9791
9792 2007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
9793
9794 PR target/31364
9795 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
9796 secureplt.
9797 (call_value): Likewise.
9798
9799 2007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
9800 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9801
9802 PR 14737
9803 * doc/invoke.texi: (optimization options): Reword description
9804 of -ffast-math. Document its primary purpose.
9805
9806 2007-03-31 Richard Guenther <rguenther@suse.de>
9807
9808 * omp-low.c (splay-tree.h): Include.
9809 (lookup_decl): Replace splay-tree usage by pointer-map.
9810 (maybe_lookup_decl): Likewise.
9811 (new_omp_context): Likewise.
9812 (delete_omp_context): Likewise.
9813 * gimplify.c (splay-tree.h): Include.
9814 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
9815 pointer-map.
9816 (remap_ssa_name): Likewise.
9817 (remap_decl): Likewise.
9818 (remap_type_1): Likewise.
9819 (remap_type): Likewise.
9820 (copy_body_r): Likewise.
9821 (expand_call_inline): Likewise.
9822 (clone_body): Likewise.
9823 (copy_tree_r): Likewise.
9824 (remap_save_expr): Likewise.
9825 (unsave_r): Likewise.
9826 (unsave_expr_now): Likewise.
9827 (tree_function_versioning): Likewise.
9828 (build_duplicate_type): Likewise.
9829 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
9830 (struct copy_body_data): Replace splay-tree by pointer-map.
9831 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
9832 not $(SPLAY_TREE_H).
9833 (gimplify.o): Depend on $(SPLAY_TREE_H).
9834 (omp-low.p): Likewise.
9835
9836 2007-03-31 Anatoly Sokolov <aesok@post.ru>
9837
9838 * config/avr/predicates.md (even_register_operand,
9839 odd_register_operand): New predicates.
9840 * config/avr/avr.md (movw peephole2): New.
9841 (movw_r peephole2): New.
9842
9843 2007-03-30 Rafael Avila de Espindola <espindola@google.com>
9844
9845 * tree.h (get_signed_or_unsigned_type): New.
9846 * fold-const.c (operand_equal_for_comparison_p): Use
9847 get_signed_or_unsigned_type instead of
9848 lang_hooks.types.signed_or_unsigned_type.
9849 * expr.c (store_expr): Ditto.
9850 * langhooks.c (get_signed_or_unsigned_type): New.
9851 (lhd_signed_or_unsigned_type): New.
9852 * langhooks.h (lhd_signed_or_unsigned_type): New.
9853 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
9854
9855 2007-03-30 Richard Henderson <rth@redhat.com>
9856
9857 * tree-ssa-loop-ivopts.c: Include target.h.
9858 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
9859 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
9860 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
9861 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
9862
9863 2007-03-30 Richard Henderson <rth@redhat.com>
9864 Kai Tietz <kai.tietz@onevision.com>
9865
9866 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
9867 default for 64-bit.
9868 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
9869 (TARGET_64BIT_MS_ABI): New.
9870 (DBX_REGISTER_NUMBER): Handle 64-bit.
9871 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
9872 (LONG_TYPE_SIZE): Force to 32.
9873 (REG_PARM_STACK_SPACE): New.
9874 (OUTGOING_REG_PARM_STACK_SPACE): New.
9875 (REGPARM_MAX, SSE_REGPARM_MAX): New.
9876 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
9877 (STACK_BOUNDARY): Use 128 for 64-bit.
9878 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
9879 Add 64-bit implementation.
9880 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
9881 argument unused.
9882 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
9883 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
9884 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
9885 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
9886 (ix86_handle_cconv_attribute): Don't warn when ignoring if
9887 TARGET_64BIT_MS_ABI.
9888 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
9889 (ix86_pass_by_reference): Likewise.
9890 (ix86_function_value_regno_p): Likewise.
9891 (ix86_build_builtin_va_list): Likewise.
9892 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
9893 (function_arg_advance_ms_64): New.
9894 (function_arg_advance): Call it.
9895 (function_arg_ms_64): New.
9896 (function_arg): Call it.
9897 (function_value_ms_64): New.
9898 (ix86_function_value_1): Call it.
9899 (return_in_memory_ms_64): New.
9900 (ix86_return_in_memory): Call it.
9901 (setup_incoming_varargs_ms_64): New.
9902 (ix86_setup_incoming_varargs): Call it.
9903 (ix86_expand_prologue): Handle 64-bit stack probing.
9904 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
9905 (output_pic_addr_const): Likewise.
9906 (x86_this_parameter): Likewise.
9907 (x86_output_mi_thunk): Likewise.
9908 (x86_function_profiler): Likewise.
9909 (TARGET_STRICT_ARGUMENT_NAMING): New.
9910 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
9911 (TARGET_64BIT_MS_ABI): New.
9912 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
9913 * config/i386/i386.md (allocate_stack_worker): Remove.
9914 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
9915 describe the clobber of eax without a match_scratch.
9916 (allocate_stack_worker_postreload): Remove.
9917 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
9918 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
9919 (allocate_stack_worker_rex64_postreload): Remove.
9920 (allocate_stack): Handle 64-bit.
9921 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
9922 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
9923 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
9924 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
9925 (STANDARD_STARTFILE_PREFIX_1): Likewise.
9926 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
9927 * config.build (x86_64-*-mingw*): New host.
9928 * config.host (x86_64-*-mingw*): New host.
9929 * config.gcc (x86_64-*-mingw*): New target.
9930 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
9931
9932 2007-03-30 Richard Henderson <rth@redhat.com>
9933 Kai Tietz <kai.tietz@onevision.com>
9934
9935 * c-pragma.c (struct def_pragma_macro_value): New.
9936 (struct def_pragma_macro): New.
9937 (pushed_macro_table): New.
9938 (dpm_hash, dpm_eq): New.
9939 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
9940 (init_pragma): Install them.
9941 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
9942
9943 2007-03-30 Anatoly Sokolov <aesok@post.ru>
9944
9945 * config/avr/avr.c (avr_override_options): Clear
9946 'flag_delete_null_pointer_checks'.
9947
9948 2007-03-30 Paolo Carlini <pcarlini@suse.de>
9949
9950 PR c++/26099
9951 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
9952 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
9953 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
9954 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
9955 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
9956 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
9957 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
9958 C++ extensions.
9959 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
9960
9961 2007-03-30 Steven Bosscher <steven@gcc.gnu.org>
9962
9963 * regmove.c: Move all of pass_stack_adjustments from here...
9964 * combine-stack-adj.c: ...to this new file.
9965 * Makefile.in: Add rules for combine-stack-adj.o.
9966
9967 2007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
9968
9969 PR tree-optimization/31383
9970 * tree-data-ref.c (affine_function_equal_p): Do not require the
9971 vectors to have the same length.
9972
9973 2007-03-30 Jan Hubicka <jh@suse.cz>
9974
9975 PR middle-end/30700
9976 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
9977 availablility; add more sanity checking; ask varpool only about
9978 VAR_DECL.
9979
9980 2007-03-29 Richard Henderson <rth@redhat.com>
9981
9982 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
9983 to decide, but __SIZEOF_LONG_LONG__.
9984
9985 2007-03-29 Richard Henderson <rth@redhat.com>
9986
9987 * emutls.c (struct __emutls_array): New.
9988 (emutls_destroy): Use it instead of casting element 0 from void*.
9989 (__emutls_get_address): Likewise.
9990
9991 2007-03-29 Richard Henderson <rth@redhat.com>
9992
9993 * varasm.c (initializer_constant_valid_p): Don't deny
9994 DECL_DLLIMPORT_P on functions.
9995
9996 * config/i386/cygming.h: Remove function declarations.
9997 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
9998 (ASM_OUTPUT_LABELREF): Remove.
9999 (COMMON_ASM_OP): Remove.
10000 (ASM_OUTPUT_COMMON): Remove.
10001 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
10002 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
10003 (ASM_DECLARE_FUNCTION_NAME): Likewise.
10004 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
10005 Rename from TARGET_ENCODE_SECTION_INFO.
10006 * config/i386/netware.h: Likewise.
10007 * config/i386/i386-protos.h: Update.
10008 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
10009 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
10010 (legitimate_constant_p): Reject dllimports.
10011 (dllimport_map, get_dllimport_decl): New.
10012 (legitimize_dllimport_symbol): New.
10013 (legitimize_address, ix86_expand_move): Use it.
10014 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
10015 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
10016 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
10017 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
10018 * config/i386/predicates.md (constant_call_address_operand): Only
10019 accept symbols; reject dllimport_p symbols.
10020 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
10021 i386_pe_maybe_record_exported_symbol.
10022 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
10023 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
10024 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
10025 trust the setting of DECL_DLLIMPORT_P.
10026 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
10027 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
10028 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
10029 tidy the argument scanning loop.
10030 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
10031 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
10032 (i386_pe_strip_name_encoding): Remove.
10033 (i386_pe_binds_local_p): New.
10034 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
10035 (i386_pe_output_labelref): Remove.
10036 (i386_pe_asm_output_aligned_decl_common): New.
10037 (i386_pe_maybe_record_exported_symbol): Rename from
10038 i386_pe_record_exported_symbol; check for dllexported symbols.
10039
10040 2007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
10041
10042 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
10043 add comment explaining why vsnprintf cannot be used.
10044
10045 2007-03-29 Douglas Gregor <doug.gregor@gmail.com>
10046
10047 PR tree-optimization/30666
10048 * tree.c (build_complex_type): When creating type names for DWARF2
10049 debug info, create TYPE_DECLs for TYPE_NAME instead of
10050 IDENTIFIER_NODEs.
10051 (build_common_tree_nodes_2): Use build_complex_type when building
10052 predefined complex types, to preserve canonical types.
10053
10054 2007-03-29 Steven Bosscher <steven@gcc.gnu.org>
10055
10056 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
10057 (noce_get_alt_condition): Look at it to determine whether to
10058 reverse the condition or not.
10059 (noce_get_condition): Substitute the truth for lies.
10060 (noce_find_if_block): Set the then_else_reversed field.
10061
10062 2007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
10063
10064 * config/fr30/fr30.md (movdi): Do not accept immediates as the
10065 destination of this insn.
10066 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
10067 than calling gen_rtx_SET directly. Use r0 to hold the value of
10068 'address + 4' rather than a stack based temporary which can be
10069 mis-optimized away.
10070
10071 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
10072
10073 * config/s390/s390.c (s390_secondary_input_reload_class,
10074 s390_secondary_output_reload_class): Functions removed.
10075 (s390_secondary_reload): New function.
10076 (TARGET_SECONDARY_RELOAD): Target macro defined.
10077 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
10078 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
10079 * config/s390/s390.md ("reload_outti", "reload_outdi",
10080 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
10081 "reload_out<mode>"): Expanders removed.
10082 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
10083 "reload<mode>_nonoffmem_out"): Expanders added.
10084
10085 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
10086
10087 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
10088 action if SRC->DEST replacement failed anyway.
10089
10090 2007-03-28 Mike Stump <mrs@apple.com>
10091
10092 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
10093 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
10094 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
10095
10096 2007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
10097
10098 * config.gcc: Accept barcelona as a variant of amdfam10.
10099 * config/i386/i386.c (override_options): Likewise.
10100 * doc/invoke.texi: Likewise.
10101
10102 2007-03-28 Eric Botcazou <ebotcazou@adacore.com>
10103
10104 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
10105 offsets for BIT_FIELD_REF and COMPONENT_REF.
10106
10107 2007-03-28 Richard Guenther <rguenther@suse.de>
10108
10109 * tree.c (is_global_var): Move ...
10110 * tree-flow-inline.h (is_global_var): ... here.
10111 * tree.h (is_global_var): Remove declaration.
10112
10113 2007-03-28 Uros Bizjak <ubizjak@gmail.com>
10114
10115 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
10116 option.
10117 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
10118 * config/i386/i386.c (ix86_tune_features): Initialize new
10119 tuning option.
10120 * config/i386/predicates.md (promotable_binary_operator): Use
10121 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
10122
10123 2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
10124
10125 PR target/31380
10126 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
10127
10128 2007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
10129
10130 * config/fr30/fr30.md (movsi_internal): Change destination
10131 constraint from m to V and add m to the end.
10132
10133 2007-03-28 Christian Bruel <christian.bruel@st.com>
10134
10135 * config/sh/sh.md (movsi_i): Fix type attribute.
10136
10137 2007-03-28 Christian Bruel <christian.bruel@st.com>
10138
10139 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
10140 (movsf_ie): Likewise.
10141
10142 2007-03-28 Christian Bruel <christian.bruel@st.com>
10143
10144 * config.gcc: Add sh4-300 to multilib.
10145 * config/sh/t-mlib-sh4-300: New file.
10146
10147 2007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
10148
10149 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
10150 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
10151 fix_trunc<mode>di2.
10152 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
10153 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
10154 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
10155 "fixuns_trunctddi2"): Whitespace fix.
10156
10157 2007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
10158
10159 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
10160 the definition of struct sh_args.
10161 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
10162 CALL_COOKIE_INT_REG_GET): Likewise.
10163
10164 2007-03-28 Steven Bosscher <steven@gcc.gnu.org>
10165
10166 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
10167 transformations are applied successfully.
10168
10169 2007-03-27 Douglas Gregor <doug.gregor@gmail.com>
10170
10171 * tree.c (tree_contains_struct): Permit 512 tree codes.
10172 * tree.h (tree_contains_struct): Ditto.
10173 (MAX_TREE_CODES): Ditto.
10174 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
10175 SPARE member to store remaining padding bits.
10176
10177 2007-03-27 Anatoly Sokolov <aesok@post.ru>
10178
10179 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
10180 architecture.
10181
10182 2007-03-27 Janis Johnson <janis187@us.ibm.com>
10183
10184 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
10185 * configure: Regenerate.
10186
10187 * configure: Regenerate using the correct version of autoconf.
10188
10189 2007-03-27 Anatoly Sokolov <aesok@post.ru>
10190
10191 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
10192 pointer regs.
10193 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
10194 regs to "__SP_L__" and "__SP_H__".
10195
10196 2007-03-27 Richard Guenther <rguenther@suse.de>
10197
10198 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
10199 computations with it with a HOST_WIDE_INT variable.
10200
10201 2007-03-26 Mike Stump <mrs@apple.com>
10202
10203 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
10204 objective-c-header, objective-c++-header and objc++-cpp-output
10205 support.
10206 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
10207
10208 2007-03-26 Richard Henderson <rth@redhat.com>
10209
10210 PR target/31361
10211 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
10212 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
10213 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
10214 IX86_BUILTIN_PSRLQ128): New.
10215 (ix86_init_mmx_sse_builtins): Add them.
10216 (ix86_expand_builtin): Expand them.
10217 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
10218 operand 2 be TImode.
10219 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
10220 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
10221 _mm_srli_epi64): Mark __B const.
10222 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
10223 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
10224 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
10225 new two-vector shift builtins.
10226
10227 2007-03-26 Ian Lance Taylor <iant@google.com>
10228
10229 PR tree-optimization/31345
10230 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
10231 [+INF, +INF(OVF)] into VARYING.
10232
10233 2007-03-26 Zack Weinberg <zackw@panix.com>
10234
10235 * gengtype-parse.c: New file.
10236 * gengtype-yacc.y: Delete.
10237 * gengtype-lex.l: Don't include gengtype-yacc.h.
10238 Define YY_DECL and yyterminate appropriately for recursive
10239 descent parser. yylval is now a string out-parameter to yylex.
10240 (HWS, EOID): New shorthand.
10241 (IWORD): Add a couple more types.
10242 (yylex): Add a setup stanza. Remove the complex rules for
10243 detecting GTY'ed types and typedefs; replace with simple
10244 keyword detectors. Adjust everything for the changed
10245 definition of yylval. Ignore all pp-directives, not just #define.
10246 (yyerror): Delete.
10247 (parse_file): Rename yybegin; do not call yyparse.
10248 (yyend): New.
10249 * gengtype.c (xasprintf): Export again.
10250 (this_file): New. Use everywhere __FILE__ was being used.
10251 (get_lang_bitmap): Special case types defined in gengtype.c.
10252 (do_typedef, new_structure): Suppress definition of certain types.
10253 (new_structure): Improve diagnostics of duplicate definitions.
10254 Make sure location_s is associated with input.h.
10255 (nreverse_pairs, define_location_structures): New functions.
10256 (main): Improve tagging of kludge types. Remove old kludges
10257 for input.h types; use define_location_structures.
10258 * gengtype.h: Update prototypes. Define token codes here.
10259 * Makefile.in: Remove all references to gengtype-yacc.
10260 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
10261 and gengtype.
10262 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
10263 add GTY((skip)) to the field that's only conditionally there.
10264 * doc/install.texi: Document that Bison is no longer required
10265 unless building treelang.
10266
10267 * gengtype.c: Don't include gtyp-gen.h.
10268 (srcdir): Declare here.
10269 (base_files, lang_dir_names): Allocate dynamically.
10270 (gt_files, num_gt_files, num_lang_dirs): New globals.
10271 (measure_input_list, read_input_line, read_input_list)
10272 (set_lang_bitmap): New functions.
10273 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
10274 simplify, relying on read_input_list to set up the bitmaps.
10275 (main): Arguments are no longer unused. Check for correct number
10276 of command line arguments, set srcdir and srcdir_len, then call
10277 read_input_list, before doing anything else. No need to worry
10278 about duplicates in main loop.
10279 * configure.ac: Simplify the calculation of all_gtfiles.
10280 Put language tags in there. Don't set or substitute
10281 all_gtfiles_files_langs or all_gtfiles_files_frags.
10282 * Makefile.in: Revamp the way gengtype is invoked, now that it
10283 takes a file on its command line with a much simpler format.
10284 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
10285 (GTFILES): Remove duplicates and C source files.
10286 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
10287 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
10288 * configure: Regenerate.
10289
10290 * gengtype.h: Remove all type definitions to gengtype.c; leave
10291 only definitions of options_p, type_p, and pair_p as opaque
10292 pointers. Update prototypes.
10293 * gengtype.c: Many type definitions moved here from gengtype.h.
10294 Consolidate type definitions at the top of the file.
10295 (xvasprintf): Delete.
10296 (xasprintf): Make static.
10297 (create_nested_pointer_option): Add 'next' parameter.
10298 (create_field_all, create_field_at): New functions.
10299 (create_field): Now a thin wrapper around create_field_all.
10300 (create_optional_field): Rename create_optional_field_ and add
10301 line argument. Original name is now a macro which supplies
10302 __LINE__.
10303 (oprintf): Use vsnprintf directly.
10304 (close_output_files): Use fatal rather than perror/exit.
10305 (note_def_vec, note_def_vec_alloc): Use create_field_at.
10306 (main): Set progname. Don't use exit.
10307 * gengtype-yacc.y (struct_fields): Use create_field_at.
10308 (option, optionseqopt): Delete.
10309 (optionseq): Consolidate productions from option here so we
10310 can use the first argument to create_option.
10311
10312 * gengtype-lex.l: Distinguish unions from structures in the
10313 token type. Don't call find_structure; return the tag as a string.
10314 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
10315 ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
10316 string. Reorganize typedef_struct production accordingly.
10317 Use create_nested_ptr_option.
10318 * gengtype.c (create_nested_ptr_option): New function.
10319 * gengtype.h: Declare it.
10320
10321 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
10322 (string_type): Don't declare.
10323 (do_scalar_typedef): Declare.
10324 (create_scalar_type): Update prototype.
10325 * gengtype.c (string_type): Make static.
10326 (scalar_nonchar, scalar_char): New.
10327 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
10328 (resolve_typedef): Use scalar_nonchar for error recovery.
10329 (create_scalar_type): Remove name_len field. Return scalar_char
10330 or scalar_nonchar as appropriate.
10331 (adjust_field_type): Look at scalar_is_char boolean to decide whether
10332 to use string_type.
10333 (throughout): Use scalar_nonchar instead of calling
10334 create_scalar_type, whenever possible.
10335 (main): Initialize scalar_char and scalar_nonchar before calling
10336 gen_rtx_next.
10337 * gengtype-lex.l: Adjust for removal of second argument to
10338 create_scalar_type. Use yylval.s instead of yylval.t when
10339 returning SCALAR.
10340 * gengtype-yacc.y: Type of SCALAR is string. Call
10341 create_scalar_type from type:SCALAR rule. Adjust for removal of
10342 second argument to create_scalar_type.
10343
10344 * vec.h: Remove all #if IN_GENGTYPE blocks.
10345 Add comment saying that changes may require adjustments to gengtype.
10346 * gengtype.c: Don't include coretypes.h or tm.h.
10347 Add comment to inclusion of errors.h.
10348 (note_def_vec, note_def_vec_alloc): New functions.
10349 * gengtype.h: Declare new functions.
10350 * gengtype-lex.l: Don't include coretypes.h.
10351 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
10352 Delete.
10353 (update_lineno): Remove unnecessary prototype.
10354 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
10355 (VEC rule): Just return VEC_TOKEN.
10356 * gengtype-yacc.y (VEC_TOKEN): New token type.
10357 (type): Add a production for VEC(a,b).
10358 * Makefile.in: Update dependencies.
10359
10360 * gengtype-lex.l: Remove rules for parsing pointer-to-function
10361 typedefs that use the old PARAMS macro.
10362
10363 * gengtype-lex.l: Remove all rules and states relating to yacc
10364 input files.
10365 * gengtype-yacc.y: Similarly.
10366 * gengtype.c (note_yacc_type): Delete function.
10367 * gengtype.h: Update prototypes.
10368
10369 2007-03-26 Joseph Myers <joseph@codesourcery.com>
10370
10371 * tree-pretty-print.c (dump_generic_node): Report precision of
10372 unnamed integer types.
10373
10374 2007-03-26 Steven Bosscher <steven@gcc.gnu.org>
10375
10376 * ifcvt.c (noce_try_store_flag_constants): Don't check
10377 no_new_pseudos here.
10378 (noce_try_store_flag_constants): Don't check no_new_pseudos.
10379 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
10380 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
10381 noce_try_sign_mask): Likewise.
10382 (if_convert): Check no_new_pseudos here.
10383
10384 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
10385 Remove prototypes.
10386 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
10387 (noce_get_condition): Handle new then_else_reversed argument.
10388 (noce_init_if_info): Remove, fold into noce_find_if_block.
10389 (noce_process_if_block): Take a struct noce_if_info as the
10390 argument. Don't set up one based on ce_if_info. Update pointer
10391 references accordingly.
10392 (cond_move_process_if_block): Likewise.
10393 (process_if_block): Removed.
10394 (find_if_block): Removed. Move functionality two new functions,
10395 noce_find_if_block and cond_exec_find_if_block.
10396 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
10397 blocks and the symmetric IF-ELSE-JOIN case.
10398 (cond_exec_find_if_block): Also new function mostly based on old
10399 find_if_block and process_if_block.
10400 (find_if_header): Replace find_if_block call with separately
10401 guarded calls to noce_find_if_block and cond_exec_find_if_block.
10402 (find_cond_trap): Update noce_get_condition call.
10403 (dead_or_predicable): Likewise.
10404
10405 2007-03-26 Jakub Jelinek <jakub@redhat.com>
10406
10407 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
10408 Remove.
10409 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
10410 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
10411 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
10412 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
10413 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
10414 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
10415 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
10416 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
10417 __builtin_ia32_psrad128 builtins.
10418
10419 2007-03-26 Uros Bizjak <ubizjak@gmail.com>
10420
10421 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
10422 * config/i386/constraints.md
10423 (define_constraint "I"): Use IN_RANGE macro.
10424 (define_constraint "J"): Ditto.
10425 (define_constraint "K"): Ditto.
10426 (define_constraint "M"): Ditto.
10427 (define_constraint "N"): Ditto.
10428 (define_constraint "O"): Ditto.
10429 * config/i386/predicates.md
10430 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
10431 (define_predicate "const_0_to_3_operand"): Ditto.
10432 (define_predicate "const_0_to_7_operand"): Ditto.
10433 (define_predicate "const_0_to_15_operand"): Ditto.
10434 (define_predicate "const_0_to_63_operand"): Ditto.
10435 (define_predicate "const_0_to_255_operand"): Ditto.
10436 (define_predicate "const_1_to_31_operand"): Ditto.
10437 (define_predicate "const_2_to_3_operand"): Ditto.
10438 (define_predicate "const_4_to_7_operand"): Ditto.
10439
10440 2007-03-25 David Edelsohn <edelsohn@gnu.org>
10441
10442 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
10443 in SImode for save_world.
10444 * config/rs6000/altivec.md (save_world, restore_world): Convert to
10445 LR hard reg.
10446
10447 2007-03-25 Dorit Nuzman <dorit@il.ibm.com>
10448
10449 PR tree-optimization/30784
10450 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
10451 BIT_FIELD_REF.
10452
10453 2007-03-25 Revital Eres <eres@il.ibm.com>
10454
10455 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
10456 Fold movement_possibility function into it.
10457
10458 2007-03-25 David Edelsohn <edelsohn@gnu.org>
10459
10460 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
10461 (load_macho_picbase_{si,di}): Convert to LR hard reg.
10462 (call_indirect_nonlocal_darwin64): Same.
10463 (call_nonlocal_darwin64): Same.
10464 (call_value_indirect_nonlocal_darwin64): Same.
10465 (call_value_nonlocal_darwin64): Same.
10466 (sibcall_nonlocal_darwin64): Same.
10467 (sibcall_value_nonlocal_darwin64): Same.
10468 (sibcall_symbolic_64): Same.
10469 (sibcall_value_symbolic_64): Same.
10470 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
10471 LR pseudo.
10472 (rs6000_emit_load_toc_table): Same.
10473 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
10474 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
10475 (mull_call): Same.
10476 (divss_call): Same.
10477 (divus_call): Same.
10478 (quoss_call): Same.
10479 (quous_call): Same.
10480 (load_toc_v4_pic_si): Same
10481 (load_toc_v4_PIC_1): Same.
10482 (load_toc_v4_PIC_1b): Same.
10483 (call_indirect_aix{32,64}): Same.
10484 (call_value_indirect_aix{32,64}): Same.
10485 (call): Same.
10486 (call_value): Same.
10487 (call_local{32,64}): Same.
10488 (call_value_local{32,64}): Same.
10489 (call_indirect_nonlocal_aix{32,64}): Same.
10490 (call_nonlocal_aix{32,64}): Same.
10491 (call_value_indirect_nonlocal_aix{32,64}): Same.
10492 (call_value_nonlocal_aix{32,64}): Same.
10493 (call_indirect_nonlocal_sysv<mode>): Same.
10494 (call_nonlocal_sysv<mode>): Same.
10495 (call_value_indirect_nonlocal_sysv<mode>): Same.
10496 (call_value_nonlocal_sysv<mode>): Same.
10497 (sibcall): Same.
10498 (sibcall_local{32,64}): Same.
10499 (sibcall_value_local{32,64}): Same.
10500 (sibcall_nonlocal_aix{32,64}): Same.
10501 (sibcall_value_nonlocal_aix{32,64}): Same.
10502 (sibcall_nonlocal_sysv<mode>): Same.
10503 (sibcall_value): Same.
10504 (sibcall_value_nonlocal_sysv<mode>): Same.
10505
10506 2007-03-24 Paul Brook <paul@codesourcery.com>
10507
10508 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
10509 * config/arm/linux-eabi.h: Remove legacy syscall hack.
10510
10511 2007-03-24 Richard Henderson <rth@redhat.com>
10512
10513 * config/ia64/constraints.md: New file.
10514 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
10515 satisfies_constraint_?.
10516 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
10517 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
10518 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
10519 ia64_output_mi_thunk): Likewise.
10520 (ia64_const_ok_for_letter_p): Remove.
10521 (ia64_const_double_ok_for_letter_p): Remove.
10522 (ia64_extra_constraint): Remove.
10523 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
10524 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
10525 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
10526 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
10527 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
10528 EXTRA_MEMORY_CONSTRAINT): Remove.
10529 * config/ia64/ia64.md: Include constriants.md. Replace
10530 CONST_OK_FOR_? with satisfies_constraint_?.
10531
10532 2007-03-23 Michael Meissner <michael.meissner@amd.com>
10533 H.J. Lu <hongjiu.lu@intel.com>
10534
10535 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
10536 DPD or BID name.
10537 (name macros): Use DPD_BID_NAME to convert names properly.
10538
10539 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
10540 decimal floating point format.
10541 (init_floating_libfuncs): Change decimal functions so that they
10542 have a "bid_" prefix if the decimal system uses the BID format,
10543 and "dpd_" prefix if the decimal system uses the DPD format.
10544 (init_interclass_conv_libfuncs): Ditto.
10545 (init_intraclass_conv_libfuncs): Ditto.
10546
10547 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
10548 using the BID format.
10549
10550 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
10551 whether we are using the BID decimal format.
10552 * configure: Regenerate.
10553
10554 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
10555 the compiler has decimal floating point enabled. Define
10556 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
10557 instead of DPD.
10558
10559 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
10560 using the BID format.
10561
10562 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
10563 whether we are using the BID decimal format.
10564 * configure: Regenerate.
10565
10566 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
10567 the compiler has decimal floating point enabled. Define
10568 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
10569 instead of DPD.
10570
10571 * doc/install.texi (--enable-decimal-float): Document BID and DPD
10572 options, and that it is enabled for i386/x86_64 systems.
10573
10574 * Makefile.in (enable_decimal_float): New.
10575 (DECNUMFMT): New.
10576 (DECNUMINC): Add -I$(DECNUMFMT).
10577 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
10578 to $(DECNUMFMT) from $(DECNUM).
10579
10580 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
10581 Substitute enable_decimal_float.
10582 * configure: Regenerated.
10583
10584 PR other/30529
10585 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
10586 unsigned long.
10587
10588 * configure.ac: Enable decimal float for x86_64-*-linux*.
10589 * configure: Regenerated.
10590
10591 PR other/30530
10592 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
10593 decimal128ClearSign to flip and clear the sign bit in decimal128.
10594 (decimal_real_maxval): Set decimal128SetSign to set the sign
10595 bit in decimal128.
10596
10597 2007-03-23 Ian Lance Taylor <iant@google.com>
10598
10599 * fold-const.c (fold_binary): Correct warning for X - c >= X.
10600
10601 2007-03-23 Ian Lance Taylor <iant@google.com>
10602
10603 * tree-dump.c (dump_files): Correct comment.
10604
10605 2007-03-23 Ian Lance Taylor <iant@google.com>
10606
10607 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
10608
10609 2007-03-23 Steven Bosscher <steven@gcc.gnu.org>
10610
10611 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
10612 in cfglayout mode. Don't go into and out of cfglayout mode.
10613 Link the blocks in the order of the constructed traces.
10614 (rest_of_handle_tracer): Adjust call to tracer.
10615 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
10616 Don't go into cfglayout mode.
10617 (rtl_loop_done): Don't go out of cfglayout mode.
10618 * cfglayout.c (relink_block_chain): New function, split out from...
10619 (fixup_reorder_chain): ...here. Remove redundant checking.
10620 (cfg_layout_finalize): Don't clear the header, footer, and aux
10621 fields here, move the code to do so to relink_block_chain. Likewise
10622 for free_original_copy_tables.
10623 * rtl.h (tracer): Update prototype.
10624 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
10625 Assert we are in cfglayout mode. Don't go into and out of cfglayout
10626 mode. Use relink_block_chain to serialize the CFG according to the
10627 new basic block order. Move targetm.cannot_modify_jumps_p check from
10628 here...
10629 (gate_handle_reorder_blocks): ...to here.
10630 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
10631 from here...
10632 (gate_duplicate_computed_gotos): ...to here.
10633 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
10634 something always changes when going into and out of cfglayout mode.
10635 Perform an expensive cfg cleanup while going into cfglayout mode.
10636 Always update liveness information on HAVE_conditional_execution
10637 targets. Reserialize the basic blocks and go out of cfglayout mode.
10638 * reg-stack.c: Include cfglayout.h.
10639 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
10640 the call to reorder_basic_blocks.
10641 * basic-block.h (reorder_basic_blocks): Update prototype.
10642 (relink_block_chain): New prototype.
10643 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
10644
10645 2007-03-23 Joseph Myers <joseph@codesourcery.com>
10646
10647 * config/mips/mips.md (type, hazard, *movdi_32bit,
10648 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
10649 *movhi_internal, *movqi_internal, *movsf_hardfloat,
10650 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
10651 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
10652 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
10653 applicable.
10654 (movcc): Change first xfer to multi.
10655 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
10656 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
10657 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
10658 config/mips/generic.md: Change reservations using "xfer" to use
10659 "mfc,mtc".
10660 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
10661 using match_operand.
10662 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
10663 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
10664 examining mode.
10665 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
10666
10667 2007-03-22 Richard Henderson <rth@redhat.com>
10668
10669 * config/i386/i386.c: Remove unnecessary function declarations.
10670 Move targetm definition, and all related macros, to the end of
10671 the file. Resort some functions to put definitions before uses.
10672 (ix86_attribute_table): Make static. Move to end of file.
10673 (ix86_gimplify_va_arg): Make static.
10674
10675 2007-03-22 Richard Henderson <rth@redhat.com>
10676
10677 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
10678 don't increase local_regparm with force_align_arg_pointer check.
10679 (ix86_function_sseregparm): Assert 32-bit.
10680 (type_has_variadic_args_p): New.
10681 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
10682 type_has_variadic_args_p.
10683 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
10684 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
10685 use memset instead. Do maybe_vaarg check first; skip attribute
10686 tests if true; skip attribute tests for 64-bit.
10687 (construct_container): Remove TARGET_DEBUG_ARG.
10688 (function_arg_advance_32, function_arg_advance_64): Split out ...
10689 (function_arg_advance): ... from here.
10690 (function_arg_32, function_arg_64): Split out ...
10691 (function_arg): ... from here.
10692 (ix86_pass_by_reference): Tidy.
10693 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
10694 (function_value_32): New, from parts of ix86_function_value
10695 and ix86_value_regno.
10696 (function_value_64): New, from parts of ix86_function_value
10697 and ix86_libcall_value.
10698 (ix86_function_value_1): New.
10699 (ix86_function_value, ix86_libcall_value): Use it.
10700 (return_in_memory_32, return_in_memory_64): Split out ...
10701 (ix86_return_in_memory): ... from here.
10702 (ix86_struct_value_rtx): Skip for 64-bit.
10703 (ix86_libcall_value, ix86_value_regno): Remove.
10704 (setup_incoming_varargs_64): Split out ...
10705 (ix86_setup_incoming_varargs): ... from here.
10706 (ix86_va_start): Remove TARGET_DEBUG_ARG.
10707 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
10708 * config/i386/i386-protos.h (ix86_function_value): Remove.
10709 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
10710
10711 2007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10712
10713 PR other/23572
10714 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
10715 infinities not supported, otherwise emit warning if -Woverflow. On
10716 underflow, emit warning if -Woverflow.
10717 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
10718 and 0 otherwise.
10719 * real.h (real_from_string): Update declaration
10720
10721 2007-03-22 Kai Tietz <kai.tietz@onevision.com>
10722 Richard Henderson <rth@redhat.com>
10723
10724 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
10725 * calls.c (compute_argument_block_size, expand_call,
10726 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
10727 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
10728 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
10729 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
10730 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
10731 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
10732 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
10733 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
10734 Set to 1.
10735
10736 2007-03-22 Joseph Myers <joseph@codesourcery.com>
10737
10738 * c-incpath.c (add_sysroot_to_chain): New.
10739 (merge_include_chains): Add sysroot argument. Call
10740 add_sysroot_to_chain if sysrooted.
10741 (register_include_chains): Update call to merge_include_chains.
10742 * doc/cppopts.texi: Document use of '=' in include directory
10743 arguments.
10744
10745 2007-03-22 Uros Bizjak <ubizjak@gmail.com>
10746
10747 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
10748 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
10749 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
10750 insn pattern using X87MODEF12 mode macro.
10751
10752 2007-03-21 Seongbae Park <seongbae.park@gmail.com>
10753
10754 * regmove.c (regmove_optimize): Use reg_mentioned_p
10755 instead of reg_overlap_mentioned_p for DST.
10756
10757 2007-03-21 Mike Stump <mrs@apple.com>
10758
10759 * c.opt: Fixup for Objective-C/C++.
10760
10761 2007-03-21 Steve Ellcey <sje@cup.hp.com>
10762
10763 * explow.c (convert_memory_address): Fold memory reference when
10764 POINTERS_EXTEND_UNSIGNED < 0
10765
10766 2007-03-21 Richard Henderson <rth@redhat.com>
10767
10768 PR target/31245
10769 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
10770 * config/i386/mmintrin.h (__m64): Likewise.
10771 * config/i386/xmmintrin.h (__m128): Likewise.
10772
10773 2007-03-21 Richard Sandiford <richard@codesourcery.com>
10774
10775 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
10776 (VXWORKS_OS_CPP_BUILTINS): Define.
10777 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
10778 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
10779
10780 2007-03-21 Richard Sandiford <richard@codesourcery.com>
10781
10782 * rtl.h (constant_pool_reference_p): Delete.
10783 (find_constant_src): Declare.
10784 * rtlanal.c (find_constant_src): New function.
10785 * simplify-rtx.c (constant_pool_reference_p): Delete.
10786 * config/i386/i386.md: Use find_constant_src instead of
10787 constant_pool_reference_p/avoid_constant_pool_reference pairs.
10788
10789 2007-03-21 Richard Sandiford <richard@codesourcery.com>
10790
10791 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
10792 * c-cppbuiltin.c (c_cpp_builtins): Define them.
10793
10794 2007-03-20 Mark Mitchell <mark@codesourcery.com>
10795
10796 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
10797 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
10798 (arm_elf_asm_constructor): Use it.
10799 (arm_elf_asm_destructor): New function.
10800
10801 2007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
10802
10803 * jump.c (mark_jump_label): Treat SEQUENCE specially.
10804
10805 2007-03-20 Nathan Sidwell <nathan@codesourcery.com>
10806
10807 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
10808
10809 2007-03-19 Andrew Haley <aph@redhat.com>
10810
10811 PR tree-optimization/31264
10812 * tree-vrp.c (register_edge_assert_for_1): Don't look though
10813 VIEW_CONVERT_EXPRs.
10814
10815 2007-03-19 Paolo Bonzini <bonzini@gnu.org>
10816
10817 PR rtl-optimization/30907
10818 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
10819 (fwprop_init): Always call loop_optimizer_initialize.
10820 (fwprop_done): Always call loop_optimizer_finalize.
10821 (fwprop): We always have loop info now.
10822 (gate_fwprop_addr): Remove.
10823 (pass_fwprop_addr): Use gate_fwprop as gate.
10824
10825 PR rtl-optimization/30841
10826 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
10827 df_chain_alloc): Call df_reorganize_refs unconditionally.
10828 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
10829 refs_organized to refs_organized_size.
10830 (df_ref_create_structure): Use refs_organized_size instead of
10831 bitmap_size if refs had been organized, and keep refs_organized_size
10832 up-to-date.
10833 * df.h (struct df_ref_info): Change refs_organized to
10834 refs_organized_size.
10835 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
10836 bitmap_size.
10837
10838 2007-03-19 Mark Mitchell <mark@codesourcery.com>
10839
10840 * except.c (output_function_exception_table): Do not reference the
10841 EH personality routine for functions that do not require an
10842 exception table.
10843
10844 2007-03-20 Jakub Jelinek <jakub@redhat.com>
10845
10846 PR c/30762
10847 * c-typeck.c (convert_for_assignment): Call comptypes for
10848 RECORD_TYPE or UNION_TYPE.
10849
10850 PR inline-asm/30505
10851 * reload1.c (reload): Do invalid ASM checking after
10852 cleanup_subreg_operands.
10853
10854 2007-03-19 Jeff Law <law@redhat.com>
10855
10856 * tree-cfg.c (find_taken_edge): Tighten conditions for
10857 optimizing computed gotos.
10858
10859 2007-03-19 Michael Matz <matz@suse.de>
10860
10861 * builtins.c (expand_builtin_sync_operation,
10862 expand_builtin_compare_and_swap,
10863 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
10864 correctly.
10865
10866 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
10867 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
10868 for operand 3.
10869
10870 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10871
10872 * doc/tm.texi: Add brackets around the return type of
10873 TARGET_SECONDARY_RELOAD.
10874
10875 2007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
10876 Richard Guenther <rguenther@suse.de>
10877
10878 PR tree-optimization/31254
10879 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10880 Use handled_component_p () where appropriate. Continue
10881 propagating into the rhs if we propagated into an INDIRECT_REF
10882 on the lhs.
10883
10884 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10885
10886 * config/s390/s390.md (op_type attribute): RRR instruction type added.
10887 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
10888 (xde, xdee): Mode attributes adjusted to support DFP modes.
10889 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
10890 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
10891 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
10892 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
10893 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
10894 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
10895 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
10896 numbers.
10897 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
10898 "movsf"): Insn definitions removed.
10899 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
10900 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
10901 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
10902 definitions added.
10903 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
10904 "reload_in<mode>", "reload_out<mode>"): Expander added.
10905 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
10906 Expander removed.
10907
10908 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10909
10910 * config/s390/s390.md: Only non-functional changes. Renamed
10911 FPR mode macro to BFP all over the file.
10912
10913 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10914
10915 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
10916 (op_type attribute): RRF instruction type added.
10917 (fT0): New mode attribute.
10918 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
10919 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
10920 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
10921 instruction no secondary memory is needed when moving DFmode values
10922 between GPRs and FPRs.
10923
10924 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10925
10926 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
10927 inverted and documentation adjusted.
10928 ("mhard-dfp", "msoft-dfp"): New options.
10929 * config/s390/s390.c (s390_handle_arch_option): New architecture
10930 switch: z9-ec.
10931 (override_options): Sanity checks for the new options added.
10932 * config.gcc: New architecture switch: z9-ec.
10933 * config/s390/s390.h (processor_flags): PF_DFP added.
10934 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
10935 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
10936 when the bit is NOT set so remove it from the defaults.
10937
10938 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
10939
10940 * genemit.c (main): Print include statement for dfp.h.
10941 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
10942 is not available.
10943
10944 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
10945
10946 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
10947
10948 2007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
10949
10950 PR target/31022
10951 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
10952 instead of PATTERN.
10953
10954 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10955
10956 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
10957 attr_length_call, output_call, output_indirect_call): Cleanup
10958 formatting of targetm calls.
10959
10960 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
10961
10962 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
10963
10964 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10965
10966 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
10967 reservation, bypass and anti-bypass descriptions for these
10968 instructions. Update move patterns.
10969 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
10970 TYPE_FPSTORE.
10971
10972 2007-03-18 Dorit Nuzman <dorit@il.ibm.com>
10973
10974 * tree-vect-transform.c (get_initial_def_for_induction): Replace
10975 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
10976 (get_initial_def_for_reduction): Likewise.
10977
10978 2007-03-16 Daniel Berlin <dberlin@dberlin.org>
10979
10980 Fix PR tree-optimization/29922
10981 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
10982 (get_representative): Removed.
10983 (value_dies_in_block_x): Update for rvuse removal.
10984 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
10985 (compute_antic_aux): Handle when PHI nodes appear in
10986 non-single-successors.
10987 (dump_bitmap_of_names): Removed.
10988 (compute_antic_safe): Renamed and removed rvuse calculation.
10989 Calculate only antic safe.
10990 (insert_into_preds_of_block): Remove assert.
10991 (execute_pre): Update for renamed functions.
10992 (defer_or_phi_translate_block): New function.
10993
10994 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
10995
10996 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
10997 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
10998 typos.
10999 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
11000 Follow spelling conventions.
11001
11002 * tree-data-ref.h: Remove the prototype for analyze_array.
11003
11004 2007-03-17 Dorit Nuzman <dorit@il.ibm.com>
11005
11006 PR tree-optimization/31041
11007 * tree-vect-transform.c (get_initial_def_for_induction): Call
11008 force_gimple_operand.
11009
11010 2007-03-17 Olga Golovanevsky <olga@il.ibm.com>
11011
11012 * ipa-type-escape.c (look_for_casts) : Revert code to use
11013 handled_component_p due to ada test a-numaux.adb.
11014
11015 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
11016
11017 * final.c (final_scan_insn): Alter the condition of a
11018 conditional trap if we have nonstandard CC.
11019
11020 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
11021
11022 * configure.ac: Remove excess quoting from asm line 0 test.
11023 * configure: Rebuilt.
11024
11025 2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11026
11027 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
11028 * c-common.c (convert_and_check): Move warning logic to...
11029 (warnings_for_convert_and_check): ...here. Define.
11030 * c-common.h (warnings_for_convert_and_check): Declare.
11031
11032 2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11033
11034 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
11035 (output_call): Likewise.
11036
11037 2007-03-16 Richard Sandiford <richard@codesourcery.com>
11038
11039 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
11040
11041 2007-03-16 Richard Sandiford <richard@codesourcery.com>
11042
11043 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
11044
11045 2007-03-16 Uros Bizjak <ubizjak@gmail.com>
11046
11047 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
11048 opteron, athlon-64 and athlon-fx processor_alias_table entries.
11049
11050 2007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
11051
11052 PR tree-optimization/31183
11053 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
11054 Use double_int instead of unsigned int for representing access_strides.
11055 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
11056
11057 2007-03-16 Richard Guenther <rguenther@suse.de>
11058
11059 PR tree-optimization/31146
11060 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
11061 to allow recursion of forward_propagate_addr_expr.
11062 (forward_propagate_addr_into_variable_array_index): Likewise.
11063 (forward_propagate_addr_expr): Likewise.
11064 (tree_ssa_forward_propagate_single_use_vars): Likewise.
11065 (forward_propagate_addr_expr_1): Recurse on simple copies
11066 instead of propagating into them. Do so for useless conversions
11067 as well.
11068 (forward_propagate_addr_expr): Clean up unused statements after
11069 recursion.
11070
11071 2007-03-16 Richard Guenther <rguenther@suse.de>
11072
11073 * builtins.c (expand_builtin_cexpi): Use the right argument
11074 for the expansion via cexp.
11075
11076 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
11077
11078 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
11079 * configure: Rebuilt.
11080
11081 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
11082
11083 PR debug/29906
11084 * dwarf2out.c (force_type_die): Adjust comment.
11085 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
11086
11087 2007-03-15 DJ Delorie <dj@redhat.com>
11088
11089 * config/frv/predicates.md (minmax_operator): Don't check operands
11090 here.
11091
11092 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
11093
11094 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
11095 Update constant estimates of number of iterations.
11096 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
11097 argument renamed to "realistic".
11098 (compute_estimated_nb_iterations): Removed.
11099 (record_niter_bound): New function.
11100 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
11101 call record_nonwrapping_iv with upper = false.
11102 (infer_loop_bounds_from_signedness): Pass upper argument to
11103 record_nonwrapping_iv.
11104 (estimate_numbers_of_iterations_loop): Do not call
11105 compute_estimated_nb_iterations. Record estimate based on profile
11106 information. Initialize the constant estimates of number of
11107 iterations.
11108 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
11109 estimates.
11110 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
11111 number of iterations is too small.
11112 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
11113 (EST_NOT_AVAILABLE): Removed.
11114 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
11115 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
11116 fields.
11117
11118 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
11119
11120 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
11121 Handle NE_EXPR guards.
11122
11123 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11124
11125 PR c++/24924
11126 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
11127 Set also -pedantic-errors by default for the preprocessor unless
11128 -fpermissive is given.
11129
11130 2007-03-15 Richard Guenther <rguenther@suse.de>
11131
11132 PR middle-end/29719
11133 PR middle-end/31161
11134 * builtins.c (expand_builtin_cexpi): As a fallback if we
11135 don't have builtins for sincos or cexp create a function
11136 declaration for cexp and expand to a call to that.
11137 (expand_builtin_int_roundingfn): Always fall
11138 back to floor/ceil and its variants even if they may be
11139 not available.
11140
11141 2007-03-15 Steven Bosscher <steven@gcc.gnu.org>
11142
11143 PR middle-end/31159
11144 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
11145 jump tables, move the call to delete_dead_jumptables from here...
11146 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
11147 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
11148 don't allow merging of blocks that try_redirect_by_replacing_jump
11149 also does not handle when not optimizing.
11150
11151 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
11152 Francois-Xavier Coudert <coudert@clipper.ens.fr>
11153
11154 * config/i386/i386.md (x86_sahf_1): Correctly handle
11155 HAVE_AS_IX86_SAHF.
11156
11157 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
11158
11159 PR target/31167
11160 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
11161 x86_64_general_operand as operand[2] predicate. Remove "iF"
11162 from operand constraints and use "e" constraint instead.
11163 (*subti3_1, *subti3_1 splitter): Ditto.
11164 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
11165 operand[1] predicate.
11166
11167 2007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
11168
11169 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
11170 arrays, multiply the access strides by the size of the sub-array.
11171 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
11172
11173 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
11174
11175 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
11176 the configured assembler supports the sahf mnemonic.
11177 * configure: Regenerate.
11178 * config.in: Regenerate.
11179
11180 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
11181 emit "sahf" or ".byte\t0x9e" as asm template.
11182
11183 2007-03-14 Michael Meissner <michael.meissner@amd.com>
11184
11185 PR 31018
11186 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
11187 option to replace hard coded TARGET_xxx in md file.
11188 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
11189 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
11190 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
11191 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
11192 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
11193 (X86_TUNE_NOT_VECTORMODE): Ditto.
11194 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
11195 (TUNE_AVOID_VECTOR_DECODE): Ditto.
11196 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
11197 (TUNE_SLOW_IMUL_IMM8): Ditto.
11198 (TUNE_MOVE_M1_VIA_OR): Ditto.
11199 (TUNE_NOT_UNPAIRABLE): Ditto.
11200 (TUNE_NOT_VECTORMODE): Ditto.
11201
11202 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
11203 options.
11204
11205 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
11206 tuning options instead of hard coded TARGET_xxx.
11207 (fix ssemode peephole2's): Ditto.
11208 (imul peephole2's): Ditto.
11209 (movsi_or): Ditto.
11210 (movdi_or_rex64): Ditto.
11211 (move peephole2): Ditto.
11212 (not peephole2's): Ditto.
11213
11214 2007-03-14 Dirk Mueller <dmueller@suse.de>
11215
11216 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
11217 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
11218 * c-parser.c (c_parser_if_body): Always add an empty statement in case
11219 of empty body.
11220 * c-parser.c (c_parser_do_statement): Warn about empty body in
11221 do/while statement.
11222 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
11223 * doc/invoke.texi (-Wempty-body): Update documentation.
11224
11225 2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11226
11227 PR c/21438
11228 * c-common.h (warn_for_div_by_zero): Declare.
11229 * c-common.c (warn_for_div_by_zero): Define.
11230 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
11231 warning.
11232
11233 2007-03-14 Richard Sandiford <richard@codesourcery.com>
11234
11235 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
11236 to PREFIX and STANDARD_PREFIX.
11237
11238 2007-03-14 Richard Sandiford <richard@codesourcery.com>
11239 Phil Edwards <phil@codesourcery.com>
11240
11241 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
11242 (__gthread_once_t): Remove busy field for RTPs.
11243 (__GTHREAD_ONCE_INIT): Update accordingly.
11244
11245 2007-03-14 Richard Sandiford <richard@codesourcery.com>
11246
11247 * doc/invoke.texi: Document VxWorks options.
11248
11249 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
11250
11251 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
11252
11253 2007-03-13 Seongbae Park <seongbae.park@gmail.com>
11254
11255 PR tree-optimization/30590
11256 * tree-nrv.c (tree_nrv): Check for the partial update of the
11257 return value.
11258
11259 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
11260
11261 * flags.h (flag_random_seed): Remove declaration, in favor of...
11262 * toplev.h (get_random_seed, set_random_seed): ... these.
11263 * tree.c (get_file_function_name): Use the former.
11264 * opts.c (common_handle_option): Use the latter.
11265 * toplev.c
11266
11267 2007-03-13 Steven Bosscher <steven@gcc.gnu.org>
11268
11269 PR middle-end/31127
11270 * cse.c (cse_find_path): Do not bail out if a basic block that
11271 we already visited now becomes part of a path that starts at a
11272 different basic block. Just disallow this, to make sure we
11273 visit each basic block at most once.
11274
11275 2007-03-13 Jan Hubicka <jh@suse.cz>
11276
11277 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
11278 attributes, when profile esitmate is present, calls with very low
11279 frequency are cold.
11280
11281 2007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
11282
11283 PR tree-optimization/30730
11284 PR tree-optimization/26900
11285 * tree-ssa-loop-niter.c: Include gmp.h.
11286 (bounds): New type.
11287 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
11288 split_to_var_and_offset, determine_value_range,
11289 bound_difference_of_offsetted_base, refine_bounds_using_guard,
11290 bound_difference, bounds_add, bounds_negate,
11291 number_of_iterations_ne_max, dump_affine_iv): New functions.
11292 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
11293 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
11294 difference of initial and final value of control iv to validate
11295 results.
11296 (number_of_iterations_cond): Add loop parameter. Determine bounds
11297 on the difference of the extremes of the control iv. Add dumps.
11298 (expand_simple_operations): Handle phi nodes.
11299 (simplify_using_initial_conditions): Do not record used conditions.
11300 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
11301 Do not set additional_info.
11302 (implies_nonnegative_p, implies_ge_p): Removed.
11303 (derive_constant_upper_bound): Do not use parameter `additional'.
11304 (record_estimate): Parameter `additional' removed. Parameter
11305 `i_bound' added. Do not call derive_constant_upper_bound.
11306 (record_nonwrapping_iv): Use derive_constant_upper_bound to
11307 bound the number of iterations estimate.
11308 (estimate_numbers_of_iterations_loop): Pass the estimate from
11309 the number of iterations analysis to record_estimate.
11310 * tree.h (multiple_of_p): Declare.
11311 * tree-scalar-evolution.c (expression_expensive_p): Removed.
11312 (scev_const_prop): Do not check expression_expensive_p.
11313 * fold-const.c (multiple_of_p): Exported.
11314 * double-int.c (double_int_mask): Exported.
11315 * double-int.h (double_int_mask): Declare.
11316 * tree-flow.h (struct tree_niter_desc): Removed additional_info
11317 field. Added max field.
11318
11319 2007-03-13 David Taylor <taylor@candd.org>
11320
11321 PR driver/12448:
11322 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
11323 default -MQ.
11324
11325 2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11326
11327 PR target/31123
11328 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
11329 two unamed patterns.
11330
11331 2007-03-13 Uros Bizjak <ubizjak@gmail.com>
11332
11333 * config/i386/i386.opt (mcx16, msahf): New options.
11334 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
11335 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
11336
11337 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
11338 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
11339 Output -mcx16 and -msahf options when corresponding bit is set.
11340
11341 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
11342 and -msahf options.
11343
11344 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
11345
11346 * configure.ac: Test for assembler tolerance to # 0 "".
11347 * configure, config.in: Rebuilt.
11348 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
11349
11350 2007-03-13 Geoffrey Keating <geoffk@apple.com>
11351
11352 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
11353
11354 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
11355 (handle_syscall): Handle direct system calls.
11356 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
11357
11358 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
11359
11360 * doc/invoke.texi: Fix cpp.info cross-reference.
11361 * doc/passes.texi: Fix gcc.info cross-reference.
11362
11363 2007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
11364
11365 PR tree-optimization/30835
11366 * lambda-code.c (can_convert_to_perfect_nest): Check whether
11367 bb_for_stmt is not NULL before accessing it.
11368
11369 2007-03-12 Joseph Myers <joseph@codesourcery.com>
11370
11371 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
11372 some multilibs.
11373
11374 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
11375
11376 PR 30635
11377 * doc/install.texi: Document --enable-stage1-languages
11378
11379 2007-03-12 Steven Bosscher <steven@gcc.gnu.org>
11380
11381 * tree-pass.h (pass_into_cfg_layout_mode,
11382 pass_outof_cfg_layout_mode): Declare.
11383 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
11384 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
11385 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
11386 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
11387
11388 2007-03-12 Seongbae Park <seongbae.park@gmail.com>
11389
11390 * c-decl.c (warn_variable_length_array): New function.
11391 Refactored from grokdeclarator to handle warn_vla
11392 and handle unnamed array case.
11393 (grokdeclarator): Refactored VLA warning case.
11394 * c.opt (Wvla): New flag.
11395 * doc/invoke.texi (Wvla): New warning.
11396
11397 2007-03-12 Richard Henderson <rth@redhat.com>
11398
11399 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
11400 (TARGET_SECTION_TYPE_FLAGS): New.
11401
11402 2007-03-12 Richard Henderson <rth@redhat.com>
11403
11404 * config/darwin.c (machopic_reloc_rw_mask): New.
11405 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
11406 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
11407
11408 2007-03-12 Mark Mitchell <mark@codesourcery.com>
11409
11410 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
11411 * cppdefault.h (cpp_PREFIX): Document.
11412 (cpp_PREFIX_len): Likewise.
11413 (cpp_EXEC_PREFIX): New variable.
11414 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
11415 * c-incpath.c (add_standard_paths): Correct logic for relocating
11416 paths within prefix.
11417
11418 2007-03-12 Uros Bizjak <ubizjak@gmail.com>
11419
11420 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
11421 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
11422 mode macro.
11423 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
11424 fix_truncdfdi_sse using SSEMODEF mode macro.
11425 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
11426 fix_truncdfsi_sse using SSEMODEF mode macro.
11427 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
11428 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
11429
11430 2007-03-12 Richard Sandiford <richard@codesourcery.com>
11431
11432 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
11433 elfos.h to tm_file.
11434
11435 2007-03-12 Olga Golovanevsky <olga@il.ibm.com>
11436
11437 * tree.h : Add multiple_of_p declaration.
11438 * fold-const.c (multiple_of_p): Make multiple_of_p public.
11439 * ipa-type-escape.c (results_of_malloc): Redundant.
11440 (visited_stmts): New. Visited stmt for walk_use_def_chains.
11441 (cast_type): Extended with new members.
11442 (check_cast): Returns cast_type.
11443 (cast): New structure for data of walk_use_def_chains.
11444 (is_malloc_result, is_cast_from_non_pointer_1,
11445 is_cast_from_non_pointer,
11446 is_array_access_through_pointer_and_index): New functions.
11447 (look_for_casts): Returns cast types.
11448 (check_call): Returns void.
11449 (okay_pointer_operation): Use support of pointer plus index,
11450 pointer plus constant and allow all multiplications.
11451
11452 2007-03-11 Richard Guenther <rguenther@suse.de>
11453
11454 PR tree-optimization/31115
11455 * tree-vrp.c (extract_range_from_binary_expr): Make sure
11456 the shift count is positive and non-anti-range for RSHIFT_EXPR.
11457 A shift count of zero is not special as with *_DIV_EXPR.
11458 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
11459 direction.
11460
11461 2007-03-11 Ian Lance Taylor <iant@google.com>
11462
11463 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
11464 the *_DIV_EXPR codes correctly with overflow infinities.
11465
11466 2007-03-11 Ira Rosen <irar@il.ibm.com>
11467
11468 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
11469 indicate success/failure of the analysis. Add negation to subtrahend
11470 in case of subtraction. Fail if both operands contain constants.
11471 (create_data_ref): Fail if analyze_offset fails.
11472
11473 2007-03-11 Uros Bizjak <ubizjak@gmail.com>
11474
11475 * config/i386/i386.md (frndintxf2): Rename to ...
11476 (rintxf2): ... this. Remove expander having same name.
11477 (rintsf2, rintdf2): Implement using SSEMODEF macro.
11478 (roundsf2, rounddf2): Ditto.
11479 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
11480 (lround<mode>di2, lround<mode>si2): Ditto.
11481
11482 2007-03-11 Steven Bosscher <steven@gcc.gnu.org>
11483
11484 * lower-subreg.c: Include except.h.
11485 (decompose_multiword_subregs): Verify that the only control flow
11486 insns we can split are loads to multi-words pseudos.
11487 Handle breaking such blocks after splitting, instead of calling
11488 find_many_sub_basic_blocks.
11489
11490 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
11491 on the new basic block. Add a lengthy comment explaining why we
11492 thought this was necessary.
11493 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
11494
11495 2007-03-10 Mark Mitchell <mark@codesourcery.com>
11496
11497 PR c++/30924
11498 * tree.c (walk_type_fields): Recurse into the element type of
11499 ARRAY_TYPEs if there is a pointer set.
11500
11501 2007-03-10 Dirk Mueller <dmueller@suse.de>
11502
11503 * c-common.c (warn_logical_operator): Fix condition.
11504
11505 2007-03-10 Tobias Schl�ter <tobi@gcc.gnu.org>
11506
11507 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
11508 quotation mark.
11509 * config/darwin.c (machopic_select_section): Remove superfluous
11510 argument in call to categorize_decl_for_section. Remove unused
11511 variable shlib.
11512
11513 2007-03-10 Joseph Myers <joseph@codesourcery.com>
11514
11515 * configure.ac (glibc_header_dir): Set using with_build_sysroot if
11516 defined.
11517 * configure: Regenerate.
11518
11519 2007-03-10 Uros Bizjak <ubizjak@gmail.com>
11520
11521 PR target/31101
11522 * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
11523 (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
11524 (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
11525 Add LABEL_NUSES to emitted label.
11526 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
11527 branch probability value to emitted jump insn.
11528 * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
11529 Do not check life information and do not re-arrange input operands
11530 for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
11531
11532 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
11533
11534 * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
11535 the change of decode_asm_operands.
11536
11537 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
11538
11539 * mode-switching.c (create_pre_exit): Skip blockage insn.
11540
11541 2007-03-09 Diego Novillo <dnovillo@redhat.com>
11542
11543 * tree-pass.h (TODO_update_smt_usage): Remove.
11544 Update all users.
11545 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
11546 argument SOME.
11547 Update all users.
11548
11549 2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11550
11551 * pa.c (attr_length_call): Revise condition for long
11552 pc-relative branch.
11553 (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
11554 local calls on the SOM target. Don't use "LONG_PIC_PCREL" call
11555 sequence on SOM target.
11556
11557 2007-03-09 Geoffrey Keating <geoffk@apple.com>
11558
11559 * gcc.c: Document %{, in big comment at top.
11560 (input_suffix_matches): Remove special handling for .s and
11561 .S.
11562 (input_spec_matches): New.
11563 (handle_braces): Handle %{,.
11564 (validate_switches): ',' indicates a value which is not a switch.
11565 * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
11566 to detect assembler input.
11567 * config/i386/sol2.h (CPP_SPEC): Likewise.
11568 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
11569 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11570 * config/rs6000/lynx.h (ASM_SPEC): Likewise.
11571 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
11572 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
11573 -m64 causes deployment target to default to 10.5.
11574 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
11575
11576 2007-03-09 Richard Henderson <rth@redhat.com>
11577
11578 PR target/26090
11579 * target.h (targetm.asm.out.reloc_rw_mask): New.
11580 * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
11581 (TARGET_ASM_OUT): Use it.
11582 * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
11583 * varasm.c (categorize_decl_for_section): Remove shlib argument;
11584 use the new reloc_rw_mask target hook instead.
11585 (default_section_type_flags_1): Merge into...
11586 (default_section_type_flags): ... here.
11587 (decl_readonly_section_1): Merge into...
11588 (decl_readonly_section): ... here.
11589 (default_elf_select_section_1): Merge into...
11590 (default_elf_select_section): ... here.
11591 (default_unique_section_1): Merge into...
11592 (default_unique_section): ... here.
11593 (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
11594 (default_select_rtx_section): Use it.
11595 (default_elf_select_rtx_section): Likewise.
11596 * output.h: Update to match.
11597 * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
11598 * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
11599 (TARGET_ASM_RELOC_RW_MASK): New.
11600 * config/i386/i386.c (x86_64_elf_select_section): Adjust call
11601 to categorize_decl_for_section.
11602 (x86_64_elf_unique_section): Likewise.
11603 * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
11604 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
11605 (TARGET_ASM_RELOC_RW_MASK): New.
11606 * config/ia64/ia64.c (ia64_rwreloc_select_section,
11607 ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
11608 (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
11609 (TARGET_RWRELOC): Remove.
11610 (ia64_section_type_flags): Adjust call to default_section_type_flags.
11611 * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
11612 * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
11613 (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
11614 (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
11615 (rs6000_xcoff_select_section): Use decl_readonly_section.
11616 (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
11617 * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
11618 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
11619 (TARGET_SECTION_TYPE_FLAGS): Remove.
11620 * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
11621
11622 2007-03-09 Roger Sayle <roger@eyesopen.com>
11623
11624 * fold-const.c (fold_comparison): Remove compile-time evaluation of
11625 complex constant equality/inequality comparisons for here.
11626 (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
11627 known at compile-time or can be simplified to a scalar comparison.
11628 (fold_relational_const): Move compile-time evaluation of complex
11629 constant equality/inequality comparisons to here.
11630
11631 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
11632
11633 PR rtl-optimization/30643
11634 * cse.c (cse_insn): Recompute dest_hash after insert_regs for
11635 dest_addr_elt.
11636 (fold_rtx): Recurse, like before 2006-11-03.
11637
11638 2007-03-09 DJ Delorie <dj@redhat.com>
11639
11640 * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
11641 m32c-pragma.o.
11642
11643 2007-03-09 Aldy Hernandez <aldyh@redhat.com>
11644
11645 PR tree-optimization/30375
11646 * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
11647 LHS of statements is not the same.
11648 * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
11649
11650 2007-03-09 Chao-ying Fu <fu@mips.com>
11651
11652 * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
11653 REV 2.
11654 * doc/invoke.texi (-mdspr2): Document new option.
11655 * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
11656 New unspec for DSP REV 2.
11657 (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
11658 these instructions are extended in DSP REV 2.
11659 (mips-dspr2.md): Include.
11660 * config/mips/mips.opt (mdspr2): New option.
11661 * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
11662 MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
11663 MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
11664 (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
11665 (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
11666 (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins.
11667 (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
11668 and 2 builtins.
11669 (bdesc_map): Add one field of unsupported_target_flags.
11670 (bdesc_arrays): Update entries to have extra fields. Add
11671 dsp_32only_bdesc.
11672 (mips_init_builtins): Initialize new function types.
11673 Check unsupported_target_fileds to filter out builtins.
11674 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
11675 TARGET_DSPR2.
11676 (ASM_SPEC): Pass mdspr2 to the assembler.
11677 * config/mips/mips-dspr2.md: New file.
11678
11679 2007-03-09 Sa Liu <saliu@de.ibm.com>
11680
11681 * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
11682
11683 2007-03-09 Ian Lance Taylor <iant@google.com>
11684
11685 * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
11686 argument) like -Wstrict-overflow=2.
11687 * doc/invoke.texi (Warning Options): Update documentation.
11688
11689 2007-03-09 Dirk Mueller <dmueller@suse.de>
11690
11691 PR c++/17946
11692 * doc/invoke.texi (-Wlogical-op): Document.
11693 * common.opt (-Wlogical-op): New.
11694 * c-common.h (warn_logical_operator): Declare.
11695 * c-common.c (warn_logical_operator): Define.
11696 * c-typeck.c (parser_build_binary_op): Call
11697 warn_logical_operator.
11698
11699 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
11700
11701 * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
11702 * final.c (final_scan_insn): Test for non-"" file name.
11703
11704 2007-03-09 Sebastian Pop <sebastian.pop@inria.fr>
11705
11706 * doc/loop.texi: Document the Omega linear constraints solver.
11707 * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
11708 omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
11709 omega-hash-table-size, omega-max-keys, and
11710 omega-eliminate-redundant-constraints.
11711 * tree-pass.h (pass_check_data_deps): Declared.
11712 * omega.c: New.
11713 * omega.h: New.
11714 * timevar.def (TV_CHECK_DATA_DEPS): Declared.
11715 * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
11716 pass_check_data_deps): New.
11717 * tree-data-ref.c (init_data_ref): Remove declaration.
11718 (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
11719 (analyze_array): Renamed init_array_ref, move up initializations.
11720 (init_data_ref): Renamed init_pointer_ref. Moved before its call.
11721 Removed arguments that are set to NULL.
11722 (analyze_indirect_ref): Correct indentation, correct call to
11723 init_pointer_ref.
11724 (object_analysis): Call init_array_ref instead of analyze_array.
11725 (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
11726 (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
11727 of DR_ACCESS_FNS_ADDR.
11728 (init_omega_eq_with_af, omega_extract_distance_vectors,
11729 omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
11730 ddr_consistent_p): New.
11731 (compute_affine_dependence): Check consistency of ddrs when
11732 flag_check_data_deps is passed.
11733 (analyze_all_data_dependences): Uncomment.
11734 (tree_check_data_deps): New.
11735 * tree-data-ref.h: Include omega.h.
11736 (DR_ACCESS_FNS_ADDR): Removed.
11737 (data_dependence_relation): Add inner_loop.
11738 (DDR_INNER_LOOP): New.
11739 * common.opt (fcheck-data-deps): New.
11740 * tree-flow.h (tree_check_data_deps): Declare.
11741 * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
11742 (OBJS-common): Depend on omega.o.
11743 (omega.o): Define.
11744 * passes.c (pass_check_data_deps): Scheduled.
11745 * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
11746 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
11747 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
11748 PARAM_VECT_MAX_VERSION_CHECKS,
11749 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
11750
11751 2007-03-09 Richard Guenther <rguenther@suse.de>
11752
11753 PR tree-optimization/30904
11754 PR middle-end/31058
11755 * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
11756 the same way as *_DIV_EXPR.
11757
11758 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
11759
11760 * recog.c (decode_asm_operands): No mixed declarations and code.
11761
11762 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
11763
11764 * rtl.def (ASM_INPUT): Add location.
11765 * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
11766 (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
11767 (decode_asm_operands): Add loc operand.
11768 (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
11769 * stmt.c (expand_asm): Rename to...
11770 (expand_asm_loc): ... this. Add locus argument. Pass it on to
11771 gen_rtx_ASM_INPUT_loc.
11772 (expand_asm_expr): Adjust.
11773 * recog.c (decode_asm_operands): Add loc operand.
11774 (check_asm_operands, extract_insn): Adjust.
11775 * reload1.c (maybe_fix_stack_asms): Likewise.
11776 * final.c (asm_insn_count): Likewise.
11777 (final_scan_insn): Output # line before and after asm.
11778
11779 2007-03-09 Daniel Berlin <dberlin@dberlin.org>
11780
11781 * tree-ssa-structalias.c (variable_info): Remove
11782 finished_solution.
11783 (new_var_info): Ditto.
11784 (shared_bitmap_info_t): New structure.
11785 (shared_bitmap_table): New variable.
11786 (shared_bitmap_hash): New function.
11787 (shared_bitmap_eq): Ditto
11788 (shared_bitmap_lookup): Ditto.
11789 (shared_bitmap_add): Ditto.
11790 (merge_smts_into): Change to take bitmap directly.
11791 (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
11792 (init_alias_vars): Init shared bitmap hashtable.
11793 (delete_points_to_sets): Delete shared bitmap hashtable.
11794 * tree-ssa-operands.c (add_virtual_operand): Partially revert the
11795 is_aliased removal as a change that was still necessary was
11796 deleted.
11797
11798 2007-03-09 Uros Bizjak <ubizjak@gmail.com>
11799
11800 * config/i386/i386.h (override_options): Conditionally disable
11801 x86_sahf for 64bit targets only.
11802
11803 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
11804
11805 PR C/31072
11806 * c-decl.c (merge_decls): Don't call make_var_volatile.
11807 * varasm.c (make_var_volatile): Remove.
11808 * output.h (make_var_volatile): Remove.
11809
11810 2007-03-08 Zdenek Dvorak <dvorakz@suse.cz>
11811
11812 PR tree-optimization/31085
11813 * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
11814
11815 2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11816
11817 * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
11818 llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
11819 ATTR_CONST_NOTHROW_LIST.
11820
11821 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
11822 FIX_TRUNC_EXPR.
11823
11824 2007-03-08 Diego Novillo <dnovillo@redhat.com>
11825
11826 * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
11827
11828 2007-03-08 Geoffrey Keating <geoffk@apple.com>
11829
11830 PR 31013
11831 * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
11832 is declared.
11833 * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
11834 passed, use shared libgcc.
11835
11836 2007-03-08 Roger Sayle <roger@eyesopen.com>
11837
11838 * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
11839 instead of calling build2 with a GIMPLE_MODIFY_STMT.
11840 (honor_protect_cleanup_actions, lower_try_finally_switch):
11841 Likewise.
11842 * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
11843 ifc_temp_var): Likewise.
11844 * tree-inline.c (setup_one_parameter): Likewise.
11845 * tree-mudflap.c (mf_decl_cache_locals,
11846 mf_build_check_statement_for): Likewise.
11847 * tree-nested.c (init_tmp_var, save_tmp_var,
11848 finalize_nesting_tree_1): Likewise.
11849 * tree-outof-ssa.c (insert_copy_on_edge,
11850 insert_backedge_copies): Likewise.
11851 * tree-profile.c (tree_gen_edge_profiler,
11852 tree_gen_ic_profiler): Likewise.
11853 * tree-scalar-evolution.c (scev_const_prop): Likewise.
11854 * tree-sra.c (sra_build_assignment): Likewise.
11855 * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
11856 * tree-ssa-math-opts.c (insert_reciprocals,
11857 execute_cse_sincos_1): Likewise.
11858 * tree-tailcall.c (adjust_accumulator_values,
11859 adjust_return_value): Likewise.
11860 * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
11861 * tree-vect-transform.c (vect_create_data_ref_ptr,
11862 bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
11863 vect_create_epilog_for_reduction, vectorizable_reduction,
11864 vectorizable_call, vectorizable_conversion,
11865 vectorizable_assignment, vectorizable_operation,
11866 vectorizable_type_demotion, vect_gen_widened_results_half,
11867 vect_permute_store_chain, vectorizable_store,
11868 vect_setup_realignment, vect_permute_load_chain,
11869 vectorizable_load, vectorizable_condition,
11870 vect_create_cond_for_align_checks): Likewise.
11871 * tree-vrp.c (build_assert_expr_for): Likewise.
11872
11873 2007-03-08 Ian Lance Taylor <iant@google.com>
11874
11875 * tree-vrp.c: Include "intl.h".
11876 (usable_range_p): New static function.
11877 (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
11878 overflowed values, juts set *strict_overflow_p.
11879 (compare_values): Only return -2 if one of the operands is not a
11880 constant.
11881 (compare_ranges): Call usable_range_p.
11882 (compare_range_with_value): Likewise.
11883 (vrp_evaluate_conditional_warnv): Rename from
11884 vrp_evaluate_conditional. Make static. Change all callers.
11885 (vrp_evaluate_conditional): New function.
11886 (simplify_div_or_mod_using_ranges): Issue warning about reliance
11887 on signed overflow.
11888 (simplify_abs_using_ranges): Likewise.
11889 (simplify_stmt_for_jump_threading): Add within_stmt parameter.
11890 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
11891 within_stmt parameter.
11892 * tree-ssa-propagate.c (fold_predicate_in): Update call to
11893 vrp_evaluate_conditional.
11894 * tree-ssa-threadedge.c
11895 (record_temporary_equivalences_from_stmts_at_dest): Change
11896 simplify parameter to take a second tree parameter.
11897 (simplify_control_stmt_condition): Likewise.
11898 (thread_across_edge): Likewise.
11899 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
11900 (thread_across_edge): Likewise.
11901 * Makefile.in (tree-vrp.o): Depend upon intl.h.
11902
11903 2007-03-08 Uros Bizjak <ubizjak@gmail.com>
11904
11905 * config/i386/i386.h (TARGET_SAHF): New define.
11906 * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
11907 Also enable for m_K8, m_AMDFAM10 and m_CORE2.
11908 (x86_sahf): New global variable.
11909 (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode
11910 pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and
11911 nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set
11912 in processor flags. Do not unconditionally disable TARGET_USE_SAHF
11913 for 64-bit.
11914 (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
11915 (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
11916 when expanding fcomi/sahf based tests.
11917 (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
11918 expanding sahf based alternative. Emit sahf based sequence when
11919 optimizing for code size.
11920 * config/i386/i386.md (x86_sahf_1): Do not disable for
11921 TARGET_64BIT, enable for TARGET_SAHF.
11922
11923 2007-03-08 Martin Michlmayr <tbm@cyrius.com>
11924
11925 * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
11926 spurious whitespace from error message.
11927
11928 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
11929
11930 PR c++/30852
11931 * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
11932
11933 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
11934
11935 * c-decl.c (grokdeclarator): Disable warnings for anonymous
11936 bitfields.
11937 * tree-sra.c (instantiate_element): Propagate disabled warnings
11938 from the element itself to the created variable.
11939
11940 2007-03-07 Richard Henderson <rth@redhat.com>
11941
11942 PR target/30848
11943 * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
11944 silently fix up the stack in the case of a missing register.
11945
11946 2007-03-07 Paul Brook <paul@codesourcery.com>
11947
11948 * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
11949
11950 2007-03-07 Joseph Myers <joseph@codesourcery.com>
11951
11952 * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
11953 New.
11954 (phase1_vrs): Use them.
11955 (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
11956 (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
11957 __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
11958 (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
11959 __gnu_Unwind_Restore_WMMXC if required.
11960 (_Unwind_VRS_Pop): Implement iWMMXt support.
11961 * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
11962 gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
11963 gnu_Unwind_Save_WMMXC): Define.
11964
11965 2007-03-07 Richard Sandiford <richard@codesourcery.com>
11966
11967 * config/vxworks.h (vxworks_override_options): Declare.
11968 (VXWORKS_OVERRIDE_OPTIONS): Use it.
11969 * config/vxworks.c: Include target.h and toplev.h.
11970 (vxworks_override_options): New function.
11971 * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
11972
11973 2007-03-07 Andreas Krebbel <krebbel1@de.ibm.com>
11974
11975 * config/s390/s390.c (override_options): Don't emit an error when
11976 -mstack-size is used without providing -mstack-guard.
11977 (s390_emit_prologue): Choose stack_guard value automatically if not
11978 provided via command line.
11979 * doc/invoke.texi: Adjust description of -mstack-guard and
11980 -mstack-size.
11981
11982 2007-03-07 Richard Sandiford <richard@codesourcery.com>
11983
11984 * config/i386/i386.c (output_set_got): Add a GOT initialization
11985 sequence for VxWorks PIC.
11986 (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
11987 around labels as well as symbols. Use gotoff_operand instead
11988 of local_symbolic_operand.
11989 (legitimize_pic_address): Use gotoff_operand instead of
11990 local_symbolic_operand. Use @GOT accesses for labels as
11991 well as symbols.
11992 (ix86_output_addr_diff_elt): Use PC-relative rather than
11993 GP-relative offsets for VxWorks PIC.
11994 (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
11995 no_new_pseudos. Check whether the returned register is op0.
11996 * config/i386/i386.md (tablejump): Use PC-relative rather than
11997 GP-relative offsets for VxWorks PIC.
11998 * config/i386/predicates.md (gotoff_operand): New predicate.
11999
12000 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12001
12002 * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
12003 before defining.
12004 * config/vxworks-dummy.h: New file.
12005 * config/i386/i386.h: Include it.
12006
12007 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
12008
12009 * dwarf2out.c (is_inlined_entry_point): New
12010 (add_high_low_attributes): Emit DW_AT_entry_pc along with
12011 DW_AT_ranges if the first subblock is the entry point.
12012
12013 2007-03-06 David Daney <ddaney@avtrex.com>
12014
12015 * doc/install.texi (mips-*-*): Change recommended binutils
12016 version.
12017
12018 2007-03-06 Anatoly Sokolov <aesok@post.ru>
12019
12020 * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
12021 ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
12022 devices.
12023 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12024 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12025
12026 2007-03-06 Jan Hubicka <jh@suse.cz>
12027
12028 * errors.h (warning, error, fatal, internal_error): Mark as cold.
12029 * predict.c (maybe_hot_bb): Cold functions are never hot; hot
12030 functions are hot.
12031 (probably_cold_bb_p): Cold functions are cold.
12032 (probably_never_executed_bb_p): Cold functions are cold.
12033 (tree_bb_level_predictions): Predict calls to cold functions as not
12034 taken.
12035 (compute_function_frequency): Check hot/cold attributes.
12036 * function.h (function_frequency): Update comments.
12037 * predict.def (PRED_COLD_FUNCTION): Predict cold function.
12038 * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
12039 (c_common_att): Add cold and hot.
12040
12041 * doc/extend.texi (hot,cold attributes): Document.
12042
12043 2007-03-06 Andrew Haley <aph@redhat.com>
12044
12045 * function.c (expand_function_end): Move blockage to just after we
12046 emit the label for the naked return from the function.
12047
12048 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12049
12050 * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
12051 before redefining.
12052
12053 2007-03-06 Jan Hubicka <jh@suse.cz>
12054
12055 * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
12056 loaded for constant large models. Non-large 64bit PIC can do.
12057 * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
12058 * cmodel.h: Add LARGE PIC.
12059 * i386.md (UNSPEC_PLTOFF): New.
12060 (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
12061 unspecs as needed.
12062 (*call_1_rex64): Disable for large models.
12063 (*call_1_rex64_large): New.
12064 (*call_value_1_rex64): Disable for large models.
12065 (*call_value_1_rex64_large): New.
12066 (set_rip_rex4): New.
12067 (set_got_offset_rex64): New.
12068 * predicates.md (constant_call_address_operand): For large model
12069 constant calls are not possible.
12070 * i386-protos.h (construct_plt_address): Declare.
12071 * i386.c (override_options): Accept large models.
12072 (ix86_expand_prologue): Expand large PIC GOT pointer load.
12073 (legitimate_constant_p): Add new UNSPECs.
12074 (legitimate_pic_operand_p): Likewise.
12075 (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
12076 (legitimize_pic_address): Do easy RIP relative way for TLS only for
12077 non-large model.
12078 (output_pic_addr_const): Add PLTOFF.
12079 (ix86_output_addr_diff_elt): Output 64bit tables when needed.
12080 (ix86_expand_move): Legitimize pic address when in PIC mode.
12081 (construct_plt_address): New function.
12082 (ix86_expand_call): Offload the address to register and use GOT
12083 pointer for large model.
12084 * invoke.texi (mcmodel=large): Update documentation.
12085
12086 2007-03-06 Richard Henderson <rth@redhat.com>
12087
12088 * config/i386/i386.c (x86_use_leave, x86_push_memory,
12089 x86_zero_extend_with_and, x86_movx, x86_double_with_add,
12090 x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
12091 x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
12092 x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
12093 x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
12094 x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
12095 x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
12096 x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
12097 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
12098 x86_partial_reg_dependency, x86_memory_mismatch_stall,
12099 x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
12100 x86_sse_partial_reg_dependency, x86_sse_split_regs,
12101 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
12102 x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
12103 x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
12104 x86_schedule, x86_use_bt, x86_pad_returns,
12105 x86_use_xchgb): Merge into ...
12106 (ix86_tune_features): ... here. New array.
12107 (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
12108 x86_bswap): Merge into ...
12109 (ix86_arch_features): ... here. New array.
12110 (x86_3dnow_a): Remove.
12111 (x86_accumulate_outgoing_args): Make static.
12112 (x86_arch_always_fancy_math_387): Make static.
12113 (ix86_tune_mask, ix86_arch_mask): Move ...
12114 (override_options): ... to local variables here. Apply the
12115 appropriate mask to each element of ix86_arch_features and
12116 ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF
12117 as were done in the old macros.
12118 (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
12119 * config/i386/i386.h (x86_use_leave, x86_push_memory,
12120 x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
12121 x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
12122 x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
12123 x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
12124 x86_read_modify_write, x86_read_modify, x86_split_long_moves,
12125 x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
12126 x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
12127 x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
12128 x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
12129 x86_partial_reg_dependency, x86_memory_mismatch_stall,
12130 x86_accumulate_outgoing_args, x86_prologue_using_move,
12131 x86_epilogue_using_move, x86_decompose_lea,
12132 x86_arch_always_fancy_math_387, x86_shift1,
12133 x86_sse_partial_reg_dependency, x86_sse_split_regs,
12134 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
12135 x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
12136 x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
12137 x86_use_incdec, x86_pad_returns, x86_bswap,
12138 x86_partial_flag_reg_stall): Remove.
12139 (enum ix86_tune_indices): New.
12140 (ix86_tune_features): New.
12141 (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
12142 TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
12143 TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
12144 TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
12145 TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
12146 TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
12147 TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
12148 TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
12149 TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
12150 TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
12151 TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
12152 TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
12153 TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
12154 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
12155 TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
12156 TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
12157 TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
12158 TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
12159 TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
12160 TARGET_EXT_80387_CONSTANTS): Use it.
12161 (enum ix86_arch_indices): New.
12162 (ix86_arch_features): New.
12163 (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
12164 TARGET_BSWAP): Use it.
12165 (ix86_tune_mask, ix86_arch_mask): Remove.
12166
12167 2007-03-06 Joseph Myers <joseph@codesourcery.com>
12168
12169 PR bootstrap/31020
12170 * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
12171 Define using $${sysroot_headers_suffix}.
12172 * configure: Regenerate.
12173 * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
12174 multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
12175 defined.
12176 * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
12177 * gcc.c (print_sysroot_headers_suffix): New.
12178 (option_map): Include --print-sysroot-headers-suffix.
12179 (display_help): Mention -print-sysroot-headers-suffix.
12180 (process_command): Handle -print-sysroot-headers-suffix.
12181 (do_spec_1): Append multilib directory to include-fixed path if
12182 sysroot suffixes in use.
12183 (main): Handle -print-sysroot-headers-suffix.
12184 * Makefile.in (start.encap): Don't depend on xlimits.h
12185 (xlimits.h): Remove.
12186 (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of
12187 limits.h for each multilib in fixinc_list.
12188 (fixinc_list, s-fixinc_list): New.
12189 (stmp-fixinc): Depend on fixinc_list. If not copying headers,
12190 generate them for each multilib in fixinc_list.
12191 (stmp-fixproto): Use include-fixed. Run fixproto for each
12192 multilib in fixinc_list.
12193 (mostlyclean): Don't remove xlimits.h.
12194 (clean): Remove include-fixed.
12195 (real-install-headers-tar, real-install-headers-cpio,
12196 real-install-headers-cp): Don't copy include, only include-fixed.
12197 (install-mkheaders): Depend on fixinc_list. Don't depend on
12198 xlimits.h. Save limits.h files for each multilib in fixinc_list.
12199 Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in
12200 SYSTEM_HEADER_DIR setting in mkheaders.conf.
12201
12202 2007-03-06 Jan Hubicka <jh@suse.cz>
12203
12204 * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
12205 NANs easilly.
12206
12207 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12208
12209 * configure.ac: Allow tm_file to contain build-directory files.
12210 * configure: Regenerate.
12211 * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
12212 * config/m68k/t-uclinux (sysroot-suffix.h): New target.
12213 * config/m68k/print-sysroot-suffix.sh: New file.
12214
12215 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12216
12217 * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
12218 of pic_offset_table_rtx if reload_completed.
12219 (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
12220 PIC_OFFSET_TABLE_REGNUM.
12221 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
12222 return true.
12223 (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
12224 (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
12225
12226 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12227
12228 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
12229 functions that call eh_return.
12230
12231 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12232
12233 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
12234 functions that need a constant pool.
12235
12236 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12237
12238 PR target/28181
12239 * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
12240 (m68k_preferred_reload_class): Likewise.
12241 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
12242 (SECONDARY_RELOAD_CLASS): Define.
12243 (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
12244 (LIMIT_RELOAD_CLASS): Delete.
12245 * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
12246 registers from storing bytes.
12247 (m68k_secondary_reload_class): New function.
12248 (m68k_preferred_reload_class): Likewise.
12249
12250 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12251
12252 * config/m68k/m68k.c (m68k_save_reg): Remove special case for
12253 leaf functions.
12254 (m68k_expand_prologue): Likewise.
12255
12256 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12257
12258 * config/m68k/m68k-protos.h (output_sibcall): Declare.
12259 (mips_expand_epilogue): Add a bool parameter.
12260 (m68k_legitimize_sibcall_address): Declare.
12261 * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
12262 (m68k_expand_epilogue): Add a parameter to select between sibling
12263 and normal epilogues. Only generate a return for the latter.
12264 (m68k_ok_for_sibcall_p): New function.
12265 (m68k_legitimize_sibcall_address, output_sibcall): New functions.
12266 * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
12267 (sibcall_value, *sibcall_value): Likewise.
12268 (*call, *call_value): Require !SIBLING_CALL_P.
12269 (epilogue): Update call to m68k_expand_epilogue.
12270 (sibcall_epilogue): New pattern.
12271 * config/m68k/predicates.md (const_call_operand): Say that this
12272 predicate applies to sibling calls too.
12273 (sibcall_operand): New predicate.
12274
12275 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12276
12277 * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
12278 alternatives as movsi_cf.
12279 (movsf_cf_hard): Add commentary.
12280
12281 2007-03-06 Kazu Hirata <kazu@codesourcery.com>
12282 Richard Sandiford <richard@codesourcery.com>
12283
12284 * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
12285 (m68k_movem_pattern_p, m68k_output_movem): Likewise.
12286 (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
12287 * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
12288 as being live on exit from an interrupt function.
12289 (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
12290 * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
12291 (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
12292 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
12293 (m68k_interrupt_function_p): Globalize.
12294 (m68k_compute_frame_layout): Remove reverse mask code.
12295 (m68k_emit_movem, m68k_set_frame_related): New functions.
12296 (m68k_output_function_prologue): Delete in favor of...
12297 (m68k_expand_prologue): ...this new function.
12298 (m68k_output_function_epilogue): Delete in favor of...
12299 (m68k_expand_epilogue): ...this new function.
12300 (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
12301 functions.
12302 (print_operand): Handle %?.
12303 * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
12304 (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
12305 (prologue, epilogue): New patterns.
12306 (return): Turn into a define_expand.
12307 (*return): New pattern, derived from old "return" pattern. Use rte
12308 rather than rts for interrupt functions. Only use rtd if the pop
12309 count is nonzero.
12310 (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
12311 (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
12312 (link, *link, unlink, *unlink, load_got): Likewise.
12313
12314 2007-03-06 Richard Sandiford <richard@codesourcery.com>
12315
12316 PR target/23482
12317 PR target/17114
12318 * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
12319 (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
12320 (m68k_matches_q_p, m68k_matches_u_p): Likewise.
12321 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
12322 and m68k_matches_u_p.
12323 (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
12324 (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
12325 (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
12326 (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
12327 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
12328 (REG_STRICT_P): New macro.
12329 (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
12330 PCREL_GENERAL_OPERAND_OK.
12331 (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and
12332 m68k_legitimate_base_reg_p.
12333 (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
12334 (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
12335 (PIC_CASE_VECTOR_ADDRESS): Update comment.
12336 * config/m68k/m68k.c (m68k_address): New structure.
12337 (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
12338 (m68k_decompose_index, m68k_legitimate_constant_address_p)
12339 (m68k_jump_table_ref_p, m68k_decompose_address)
12340 (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
12341 (m68k_matches_u_p): New functions.
12342 (print_operand_address): Rewrite to use m68k_decompose_index.
12343
12344 2007-03-05 David Taylor <dtaylor@emc.com>
12345
12346 * gcc.c: Correct copyright date in --version output.
12347
12348 2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12349
12350 * pa.md: In unamed move patterns, disparge copies between general
12351 and floating point registers using '?' modifier. Don't include 'f'
12352 constraint for register preferences in DImode, SImode, HImode and
12353 QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
12354 Remove constraints for copies between general and floating registers
12355 in soft-float DFmode pattern.
12356 (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
12357 floating register.
12358 (movsf): Likewise.
12359
12360 2007-03-05 Mike Stump <mrs@apple.com>
12361
12362 * c-common.c (targetcm): Add.
12363 * c-opts.c (c_common_handle_option): Handle language specific
12364 target options.
12365 * opts.c (handle_option): Verify language for target options, if
12366 any are given.
12367 * opth-gen.awk: Add CL_LANG_ALL.
12368 * target-def.h (TARGET_HANDLE_C_OPTION): Add.
12369 (TARGETCM_INITIALIZER): Add.
12370 * target.h (struct gcc_targetcm): Add.
12371 (targetcm): Add.
12372 * targhooks.c (default_handle_c_option): Add.
12373 * targhooks.h (default_handle_c_option): Add.
12374 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
12375
12376 * config/darwin.opt (iframework): Add.
12377 * config/darwin.h (TARGET_HAS_TARGETCM): Add.
12378 * config/darwin-c.c (handle_c_option): Add.
12379 (TARGET_HANDLE_C_OPTION): Add.
12380 (targetcm): Add.
12381 * doc/invoke.texi (Darwin Options): Add -iframework.
12382
12383 2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12384
12385 * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
12386 conversion.
12387
12388 2007-03-05 Ian Lance Taylor <iant@google.com>
12389
12390 * c.opt (fgnu89-inline): New option.
12391 * c-opts.c (c_common_post_options): Set default value for
12392 flag_gnu89_inline.
12393 * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
12394 (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
12395 inline functions.
12396 (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
12397 (grokdeclarator, start_function): Likewise.
12398 * c-cppbuiltin.c (c_cpp_builtins): Define either
12399 __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
12400 * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
12401 (C Dialect Options): Document -fgnu89-inline.
12402 * doc/extend.texi (Function Attributes): Explain what the
12403 gnu_inline attribute does.
12404 * doc/cpp.texi (Common Predefined Macros): Document
12405 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
12406
12407 2007-03-05 Ian Lance Taylor <iant@google.com>
12408
12409 PR tree-optimization/31034
12410 * tree-vrp.c (extract_range_from_assert): Don't try to handle a
12411 half-range if the other side is an overflow infinity.
12412
12413 2007-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12414
12415 * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
12416 (bfin*-linux-uclibc*): New configuration.
12417 * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
12418 defining.
12419 * config/bfin/linux.h: New file.
12420 * config/bfin/libgcc-bfin.ver: New file.
12421 * config/bfin/t-bfin-uclinux: New file.
12422 * config/bfin/t-bfin-linux: New file.
12423 * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
12424 (TARGET_OS_CPP_BUILTINS): New macro.
12425
12426 2007-03-05 Richard Guenther <rguenther@suse.de>
12427
12428 * fold-const.c (fold_binary): Remove duplicate folding
12429 of comparison of non-null ADDR_EXPR against null.
12430
12431 2007-03-05 Richard Guenther <rguenther@suse.de>
12432 Dorit Nuzman <dorit@il.ibm.com>
12433
12434 PR tree-optimization/26420
12435 * tree-vectorizer.c (vectorize_loops): Bail out early if there
12436 are no loops in the function. Only print the number of
12437 vectorized loops if it is greater than zero or we are supposed
12438 to print information about unvectorized loops.
12439
12440 2007-03-05 Revital Eres <eres@il.ibm.com>
12441
12442 * gcc.dg/var-expand1.c: New test.
12443 * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
12444 when an accumulator is expanded.
12445
12446 2007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12447
12448 PR other/30465
12449 * c-common.c (convert_and_check): Don't give warnings for
12450 conversion if 'expr' already overflowed.
12451
12452 2007-03-04 Roger Sayle <roger@eyesopen.com>
12453
12454 PR middle-end/30744
12455 * fold-const.c (fold_comparison): Enforce type consistency when
12456 transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
12457
12458 2007-03-04 Zdenek Dvorak <dvorakz@suse.cz>
12459
12460 * tree-ssa-address.c (create_mem_ref): Do not put an expression
12461 containing a cast to the base of TARGET_MEM_REF.
12462
12463 2007-03-04 Martin Michlmayr <tbm@cyrius.com>
12464
12465 * tree.c (tree_contains_struct_check_failed): Remove spurious
12466 whitespace from error message.
12467
12468 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
12469
12470 PR target/30406
12471 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
12472 instead of precision.
12473
12474 2007-03-04 Roman Zippel <zippel@linux-m68k.org>
12475 Nathan Sidwell <nathan@codesourcery.com>
12476
12477 * emit-rtl.c (find_auto_inc): New.
12478 (try_split): recreate REG_INC notes,
12479 Use regular for loops rather than whiles.
12480
12481 2007-03-03 Andreas Schwab <schwab@suse.de>
12482
12483 * configure.ac (HAVE_AS_REL16): Move test back to correct place.
12484 * configure: Regenerate.
12485
12486 2007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12487
12488 * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
12489 flag_rounding_math, not flag_unsafe_math_optimizations.
12490
12491 * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
12492 fold_build2.
12493 * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
12494 alpha_fold_vector_minmax): Likewise.
12495 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
12496 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
12497
12498 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
12499
12500 * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
12501 (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
12502 if the lhs has side-effects.
12503 <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
12504
12505 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
12506
12507 * config/i386/i386.h (TUNEMASK): Remove define.
12508 (ARCHMASK): Remove define.
12509 (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
12510 Use ix86_arch_mask variable instead of ARCHMASK.
12511 * config/i386/i386.c (override_options): Ditto.
12512 (standard_80387_constant_p): Ditto.
12513
12514 2007-03-02 Ian Lance Taylor <iant@google.com>
12515
12516 Used signed infinities in VRP.
12517 * tree-vrp.c (uses_overflow_infinity): New static function.
12518 (supports_overflow_infinity): New static function.
12519 (make_overflow_infinity): New static function.
12520 (negative_overflow_infinity): New static function.
12521 (positive_overflow_infinity): New static function.
12522 (is_negative_overflow_infinity): New static function.
12523 (is_positive_overflow_infinity): New static function.
12524 (is_overflow_infinity): New static function.
12525 (overflow_infinity_range_p): New static function.
12526 (compare_values_warnv): New function split out of compare_values.
12527 (compare_value): Call it.
12528 (set_value_range_to_nonnegative): Add overflow_infinity
12529 parameter. Change caller.
12530 (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
12531 Change callers.
12532 (vrp_expr_computes_nonzero): Likewise.
12533 (compare_ranges, compare_range_with_value): Likewise.
12534 (compare_name_with_value, compare_names): Likewise.
12535 (vrp_evaluate_conditional): Likewise.
12536 (set_value_range): Handle infinity
12537 (vrp_operand_equal_p, operand_less_p): Likewise.
12538 (extract_range_from_assert): Likewise.
12539 (vrp_int_const_binop): Likewise.
12540 (extract_range_from_binary_expr): Likewise.
12541 (extract_range_from_unary_expr): Likewise.
12542 (extract_range_from_comparison): Likewise.
12543 (extract_range_from_expr): Likewise.
12544 (dump_value_range): Likewise.
12545 (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
12546 (test_for_singularity): Likewise.
12547 (vrp_int_const_binop): Remove inline qualifier.
12548 (adjust_range_with_scev): Add comment.
12549 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
12550
12551 2007-03-02 Diego Novillo <dnovillo@redhat.com>
12552
12553 * tree-ssa-structalias.c (could_have_pointers): Tidy.
12554 (get_constraint_for): Likewise.
12555 (do_structure_copy): Likewise.
12556 (find_func_aliases): Fix references to MODIFY_EXPR.
12557 (intra_create_variable_infos): Tidy.
12558 * tree-ssa-operands.c (add_virtual_operand): Add argument
12559 IS_CALL_SITE.
12560 When adding members of alias sets, if IS_CALL_SITE is true and
12561 the symbol is not call-clobbered, skip it.
12562 Adjust all callers.
12563
12564 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
12565
12566 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
12567 entry by means of emit_insn_at_entry.
12568
12569 2007-03-02 Richard Henderson <rth@redhat.com>
12570
12571 * expr.h (promoted_input_arg): Remove decl.
12572 * function.c (promoted_input_arg): Merge into ...
12573 * combine.c (setup_incoming_promotions): ... only caller.
12574 Rearrange to avoid double loop.
12575
12576 2007-03-02 Ben Elliston <bje@au.ibm.com>
12577 Peter Bergner <bergner@vnet.ibm.com>
12578 Janis Johnson <janis187@us.ibm.com>
12579
12580 * config/rs6000/dfp.md: New file.
12581 * config/rs6000/rs6000.md: Include dfp.md.
12582 (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
12583 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
12584 and TDmode decimal float modes in FP registers.
12585 (num_insns_constant): Likewise.
12586 (rs6000_legitimate_offset_address_p): Likewise.
12587 (rs6000_legitimize_address): Likewise.
12588 (rs6000_legitimize_reload_address): Likewise.
12589 (rs6000_legitimate_address): Likewise.
12590 (rs6000_emit_move): Likewise.
12591 (function_arg_boundary): Likewise.
12592 (function_arg_advance): Likewise.
12593 (rs6000_darwin64_record_arg_recurse): Likewise.
12594 (function_arg): Likewise.
12595 (rs6000_gimplify_va_arg): Likewise.
12596 (rs6000_split_multireg_move): Likewise.
12597 (rs6000_output_function_epilogue): Likewise.
12598 (rs6000_output_function_epilogue): Likewise.
12599 (rs6000_register_move_cost): Likewise.
12600 (rs6000_function_value): Likewise.
12601 (rs6000_libcall_value): Likewise.
12602
12603 2007-03-02 Richard Sandiford <richard@codesourcery.com>
12604
12605 * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
12606
12607 2007-03-02 Richard Sandiford <richard@codesourcery.com>
12608
12609 * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
12610 Use $MULTIDIR to choose between the kernel and RTP headers,
12611 and use $WIND_BASE and $WIND_USR to locate them.
12612
12613 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
12614
12615 * config/i386/i386.c (override_options): Put initialization of
12616 ix86_tune_mask and ix86_arch_mask to the correct place.
12617
12618 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
12619 Michael Meissner <michael.meissner@amd.com>
12620
12621 PR target/31019
12622 * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
12623 (ARCHMASK): Define.
12624 (TARGET_CMOVE): Use ARCHMASK.
12625 (TARGET_CMPXCHG): Ditto.
12626 (TARGET_CMPXCHG8B): Ditto.
12627 (TARGET_XADD): Ditto.
12628 (TARGET_BSWAP): Ditto.
12629 * config/i386/i386.c (ix86_tune_mask): New global variable.
12630 (ix86_arch_mask): Ditto.
12631 (override_options): Initialize ix86_tune_mask and
12632 ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
12633 target_flags.
12634
12635 2007-03-02 Ben Elliston <bje@au.ibm.com>
12636
12637 PR 30992
12638 * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
12639
12640 2007-03-02 Joseph Myers <joseph@codesourcery.com>
12641
12642 * target.h (init_dwarf_reg_sizes_extra): New target hook.
12643 * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
12644 * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
12645 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
12646 hook.
12647 * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
12648 rs6000_init_dwarf_reg_sizes_extra): New.
12649 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
12650 SPE register high parts.
12651
12652 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
12653
12654 * Makefile.in: Add install-pdf target as
12655 copied from automake v1.10 rules.
12656 * configure.ac: Add install-pdf to target list.
12657 * configure: Regenerate.
12658
12659 2007-03-01 Paul Brook <paul@codesourcery.com>
12660
12661 * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
12662 modes to LDRD for DImode.
12663 (output_move_double): Fixup out of range ldrd/strd.
12664 (vfp_secondary_reload_class): Rename...
12665 (coproc_secondary_reload_class): ... to this. Add wb argument.
12666 * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
12667 coproc_secondary_reload_class for CLASS_IWMMXT.
12668 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
12669 * arm-protos.h (coproc_secondary_reload_class): Update prototype.
12670
12671 2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
12672
12673 * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
12674 unroll factor by the estimated number of iterations.
12675 (loop_prefetch_arrays): Do not prefetch in loops that iterate less
12676 than prefetch latency.
12677
12678 * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
12679 decode_caches_intel, detect_caches_intel): New functions.
12680 (host_detect_local_cpu): Use detect_caches_amd and
12681 detect_caches_intel.
12682
12683 2007-03-01 Richard Henderson <rth@redhat.com>
12684
12685 * expr.c (emit_move_complex_push): Export.
12686 (emit_move_complex_parts): Split out from ...
12687 (emit_move_complex): ... here.
12688 * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
12689 * config/i386/i386.md (movcdi): New.
12690
12691 2007-03-01 Uros Bizjak <ubizjak@gmail.com>
12692
12693 * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
12694 size of mode1 to check for tieable modes in MMX case.
12695
12696 2007-03-01 Richard Sandiford <richard@codesourcery.com>
12697
12698 * Makefile.in (rtlanal.o): Depend on tree.h.
12699 * rtl.h (offset_within_section_p, split_const): Declare.
12700 * rtlanal.c: Include tree.h.
12701 (offset_within_block_p): New function, taken from
12702 mips_offset_within_object_p.
12703 (split_const): New function, taken from mips_split_const.
12704 * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
12705 Declare.
12706 * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
12707 (CONSTANT_ADDRESS_P): Only accept legitimate constants.
12708 (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
12709 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
12710 (m68k_illegitimate_symbolic_constant_p): New function.
12711 * config/m68k/m68k.md (movsi): Remove misleading predicates.
12712 If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
12713 symbolic constant that might be outside the symbol's section,
12714 move the symbol first and then add the offset.
12715 * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
12716 Override.
12717 * config/mips/mips.c (mips_split_const): Delete.
12718 (mips_offset_within_object_p): Delete.
12719 (mips_symbolic_constant_p): Use offset_within_section_p and
12720 split_const instead of mips_offset_within_object_p and
12721 mips_split_const.
12722 (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
12723 (mips_legitimize_const_move, print_operand_reloc)
12724 (mips_dangerous_for_la25_p): Use split_const instead of
12725 mips_split_const.
12726
12727 2007-02-28 Eric Christopher <echristo@apple.com>
12728
12729 * Makefile.in (install-include-dir): Don't rm -rf include.
12730
12731 2007-02-28 Richard Guenther <rguenther@suse.de>
12732
12733 PR middle-end/30364
12734 * fold-const.c (fold_binary): Do not associate expressions
12735 with more than one variable for integer types that do not wrap.
12736
12737 2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
12738
12739 * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
12740 Delete, and replace with...
12741 (fold_builtin_call_array): This. Update callers to use it.
12742 * fold-const.c (fold_build_call_list): Delete, and replace with...
12743 (fold_build_call_array): This.
12744 (fold_build_call_list_initializer): Delete, and replace with...
12745 (fold_build_call_array_initializer): This.
12746 * tree.h: Update declarations to reflect above changes.
12747
12748 * c-typeck.c (build_function_call): Store converted arguments
12749 in a stack-allocated array instead of building a list.
12750 (convert_arguments): Store arguments in the array passed in as an
12751 argument, and return the actual number of arguments.
12752 * c-format.c: (check_function_format): Pass arguments in an
12753 array instead of a list.
12754 * c-common.c (check_function_nonnull): Likewise.
12755 (check_function_sentinel): Likewise.
12756 (check_function_arguments): Likewise.
12757 * c-common.h: Update declarations to reflect above changes.
12758
12759 2007-02-28 Jan Hubicka <jh@suse.cz>
12760
12761 * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
12762 PRED_NEGATIVE_RETURN): Update outcomes.
12763
12764 2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
12765
12766 * calls.c (emit_library_call_value_1): Handle partial registers
12767 correctly when building up CALL_INSN_FUNCTION_USAGE.
12768
12769 2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12770
12771 * pa/predicates.md (move_src_operand): Allow zero for mode.
12772 * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
12773 move pattern.
12774
12775 2007-02-27 Uros Bizjak <ubizjak@gmail.com>
12776
12777 PR target/30970
12778 * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
12779 *movv2df_internal): Enable pattern only for valid operand
12780 combinations.
12781 * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
12782 tie only 128bit modes. For MMX registers, tie only 64bit modes.
12783
12784 2007-02-27 Mike Stump <mrs@apple.com>
12785
12786 * config/darwin-crt3.c: Avoid compilation when compiling for a
12787 kext multilib.
12788
12789 2007-02-27 Joseph Myers <joseph@codesourcery.com>
12790
12791 * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
12792 FIXED_INCLUDE_DIR.
12793 (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
12794 for fixed headers and limits.h.
12795 (install-include-dir, install-headers-tar, install-headers-cpio,
12796 install-headers-cp, real-install-headers-tar,
12797 real-install-headers-cpio, real-install-headers-cp): Handle
12798 include-fixed as well as include.
12799 (install-mkheaders): Don't install files that go only in include
12800 not include-fixed.
12801 * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
12802 from GCC_INCLUDE_DIR.
12803 * gcc.c (process_command): Remove special -BstageN/ handling.
12804 (do_spec_1): Add include-fixed directories.
12805
12806 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
12807
12808 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
12809 _smulsi3_highpart.
12810 * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
12811 New functions.
12812 * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
12813 patterns.
12814
12815 2007-02-27 Mark Mitchell <mark@codesourcery.com>
12816
12817 * c-common.c (get_priority): Add check for
12818 SUPPORTS_INIT_PRIORITY.
12819
12820 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
12821
12822 * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
12823
12824 * config/bfin/bfin.c: Include "cfglayout.h".
12825 (MAX_LSETUP_DISTANCE): New macro.
12826 (struct loop_info): New members incoming, incoming_src and
12827 incoming_dest. Delete member predecessor.
12828 (length_for_loop): New function.
12829 (bfin_optimize_loop): Handle more different loop structures.
12830 (bfin_discover_loop): Rework detection of predecessor blocks by
12831 examining incoming edges.
12832 (bfin_discover_loops, bfin_free_loops): New functions, broken out of
12833 bfin_reorg_loops.
12834 (bfin_reorder_loops): New function.
12835 (bfin_reorg_loops): Use these three new functions.
12836
12837 * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
12838 REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
12839 (CONSTRAINT_LEN): Add entry for 'q'.
12840 (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
12841 Add 'q' constraints.
12842 (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
12843 (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
12844
12845 * config/bfin/bfin.md (add_with_carry): New pattern.
12846 (s_or_u, su_optab, su_modifier): New code macros/attrs.
12847 (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
12848 <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
12849 support unsigned multiplies too. Removed incorrect commutativity from
12850 operand 1 constraint where appropriate.
12851 (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
12852 patterns.
12853 (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
12854 <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
12855 New patterns.
12856 (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
12857 usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
12858 usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
12859 usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
12860 usmulhisi_hh_huh): New patterns.
12861
12862 * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
12863 lshifthi3): Fix output template to use half reg for operand 2.
12864
12865 * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
12866 instead of R2.
12867
12868 * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
12869
12870 2007-02-27 Andreas Schwab <schwab@suse.de>
12871
12872 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
12873
12874 2007-02-27 Jan Hubicka <jh@suse.cz>
12875
12876 * predict.c (last_basic_block_p): Remove.
12877 (tree_estimate_probability): Update return heuristic for commonized
12878 return blocks.
12879
12880 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
12881
12882 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
12883
12884 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
12885
12886 * doc/include/gcc-common.texi (versionsubtitle): New macro.
12887 * doc/cpp.texi: Standardize title page.
12888 * doc/cppinternals.texi: Likewise.
12889 * doc/gcc.texi: Standardize title page, remove version number
12890 from copyright page.
12891 * doc/gccint.texi: Likewise.
12892 * doc/install.texi: Standardize title page, add table of
12893 contents.
12894
12895 2007-02-26 Jan Hubicka <jh@suse.cz>
12896
12897 * predict.def: Set outcomes according to more recent results.
12898 (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
12899 Remove dead predictors.
12900 * predict.c (return_prediction): Fix pasto.
12901
12902 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
12903
12904 * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
12905 change; avoid a memory leak when returning early.
12906
12907 2007-02-26 Mark Mitchell <mark@codesourcery.com>
12908
12909 * c-decl.c (static_ctors): Move to c-common.c.
12910 (static_dtors): Likewise.
12911 (finish_function): Use c_record_cdtor_fn.
12912 (build_cdtor): Move to c-common.c.
12913 (c_write_global_declarations): Use c_build_cdtor_fns.
12914 * c-common.h (static_ctors): Declare.
12915 (static_dtors): Likewise.
12916 (c_record_cdtor_fn): Likewise.
12917 (c_build_cdtor_fns): Likewise.
12918 * c-common.c (static_ctors): New variable.
12919 (static_dtors): Likewise.
12920 (c_record_cdtor_fn): New function.
12921 (build_cdtor): Move from c-decl.c
12922 (c_build_cdtor_fns): New function.
12923
12924 * output.h (assemble_addr_to_section): Declare.
12925 (get_cdtor_priority_section): Likewise.
12926 * varasm.c (assemble_addr_to_section): New function.
12927 (get_cdtor_priority_section): Likewise.
12928 (default_named_section_asm_out_destructor): Use them.
12929 (destor_dtor_section_asm_out_destructor): Likewise.
12930 (default_named_section_asm_out_constructor): Likewise.
12931 (default_ctor_section_asm_out_constructor): Likewise.
12932 * config.gcc (*-*-vxworks*): Include vxworks.o.
12933 * config/t-vxworks (vxworks.o): New target.
12934 * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
12935 (TARGET_ASM_CONSTRUCTOR): Define.
12936 (TARGET_ASM_DESTRUCTOR): Likewise.
12937 (vxworks_asm_out_constructor): Declare.
12938 (vxworks_asm_out_destructor): Likewise.
12939
12940 * c-common.c (get_priority): Check that we have not just an
12941 INTEGER_CST, but an integer constant with integeral type.
12942
12943 2007-02-25 Uros Bizjak <ubizjak@gmail.com>
12944
12945 PR tree-optimization/30938
12946 * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
12947 use &dt[nargs-1] instead of &dt[nargs] in the call to
12948 vect_is_simple_use().
12949
12950 2007-02-25 Ulrich Weigand <uweigand@de.ibm.com>
12951
12952 * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
12953 from register elimination as PRE_MODIFY / POST_MODIFY increments.
12954 Do not attempt to handle MEM inside auto-inc expressions.
12955 * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
12956 of a register modified by an auto-inc expression. However, do handle
12957 elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
12958 (elimination_effects): Prohibit elimination of a register modified
12959 by an auto-inc expression. Disable register elimination rules whose
12960 target register is modified by an auto-inc expression with variable
12961 increment.
12962
12963 2007-02-25 Zdenek Dvorak <dvorakz@suse.cz>
12964
12965 * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
12966 off-by-one error.
12967 (array_at_struct_end_p): New function.
12968 (idx_infer_loop_bounds): Use it.
12969 (estimate_numbers_of_iterations_loop): Export.
12970 * predict.c (predict_loops): Use estimated_loop_iterations_int.
12971 Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
12972 (tree_estimate_probability): Call record_loop_exits.
12973 * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
12974 (estimated_loop_iterations, estimated_loop_iterations_int,
12975 estimated_loop_iterations_tree): New functions.
12976 (analyze_siv_subscript_cst_affine,
12977 compute_overlap_steps_for_affine_1_2,
12978 analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
12979 (analyze_miv_subscript): Use estimated_loop_iterations_tree.
12980 * predict.def (PRED_LOOP_ITERATIONS): Update comment.
12981 (PRED_LOOP_ITERATIONS_GUESSED): New.
12982 * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
12983 * cfgloop.h (estimate_numbers_of_iterations_loop,
12984 estimated_loop_iterations_int): Declare.
12985
12986 2007-02-25 Mark Mitchell <mark@codesourcery.com>
12987
12988 * doc/extend.texi: Document optional priority argument to
12989 constructors and destructors.
12990 * tree.c (init_priority_for_decl): Adjust GTY markers.
12991 (init_ttree): Use priority-info hash functions for
12992 init_priority_for_decl.
12993 (tree_map_eq): Rename to ...
12994 (tree_map_base_eq): ... this.
12995 (tree_map_marked_p): Rename to ...
12996 (tree_map_base_marked_p): ... this.
12997 (tree_map_base_hash): New function.
12998 (decl_init_priority_lookup): Rework.
12999 (decl_fini_priority_lookup): New function.
13000 (decl_priority_info): New function.
13001 (decl_init_priority_insert): Use it.
13002 (decl_fini_priority_insert): Likewise.
13003 (decl_restrict_base_lookup): Adjust for refactoring of tree_map
13004 hierarchy.
13005 (decl_restrict_base_insert): Likewise.
13006 (decl_debug_expr_insert): Likewise.
13007 (decl_value_expr_lookup): Likewise.
13008 (decl_value_expr_insert): Likewise.
13009 * tree.h (priority_type): New type.
13010 (decl_init_priority_lookup): Use priority_type.
13011 (decl_fini_priority_lookup): New function.
13012 (decl_init_priority_insert): Use priority_type.
13013 (decl_fini_priority_insert): New function.
13014 (DECL_HAS_INIT_PRIORITY): Tweak comments.
13015 (DECL_INIT_PRIORITY): Likewise.
13016 (SET_DECL_INIT_PRIORITY): Add comment.
13017 (DECL_FINI_PRIORITY): New macro.
13018 (SET_DECL_FINI_PRIORITY): Likewise.
13019 (DEFAULT_INIT_PRIORITY): Document.
13020 (MAX_INIT_PRIORITY): Likewise.
13021 (MAX_RESERVED_INIT_PRIORITY): Likewise.
13022 (tree_map_base): New type.
13023 (tree_map_base_eq): New function.
13024 (tree_map_base_hash): Likewise.
13025 (tree_map_base_marked_p): Likewise.
13026 (tree_map): Inherit from tree_map_base.
13027 (tree_map_eq): Make it a macro.
13028 (tree_map_marked_p): Likewise.
13029 (tree_int_map): Inherit from tree_map_base.
13030 (tree_int_map_eq): Make it a macro.
13031 (tree_int_map_hash): Likewise.
13032 (tree_int_map_marked_p): Likewise.
13033 (tree_priority_map): New type.
13034 (tree_priority_map_eq): New macro.
13035 (tree_priority_map_hash): Likewise.
13036 (tree_priority_map_marked_p): Likewise.
13037 * varasm.c (emults_decl): Adjust for refactoring of tree_map
13038 hierarchy.
13039 (emutls_common_1): Likewise.
13040 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
13041 * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
13042 of tree_map hierarchy.
13043 * tree-cfg.c (move_stmt_r): Likewise.
13044 (new_label_mapper): Likewise.
13045 * c-tree.h (c_expand_body): Move to ...
13046 * c-common.h (c_expand_body): ... here.
13047 * c-decl.c (c_expand_body): Move to ...
13048 * c-common.c (c_expand_body): ... here.
13049 (c_common_attribute_table): Allow 1 argument for the constructor
13050 and destructor attributes.
13051 (get_priority): New function.
13052 (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
13053 (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
13054
13055 2007-02-24 Jan Hubicka <jh@suse.cz>
13056
13057 PR middle-end/30509
13058 * tree-inline.c (copy_bb): Produce exact copy of EH info when
13059 copying for inlining.
13060
13061 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
13062 Jan Hubicka <jh@suse.cz>
13063
13064 PR target/30778
13065 * i386.c (counter_mode): New function.
13066 (expand_set_or_movmem_via_loop): Use it.
13067 (expand_movmem_epilogue): Likewise; fix pasto.
13068 (ix86_expand_movmem): Do emit guard even for constant counts.
13069 (ix86_expand_setmem): Likewise.
13070
13071 2007-02-25 Nick Clifton <nickc@redhat.com>
13072
13073 * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
13074 (JUMP_TABLES_IN_TEXT_SECTION): Define.
13075
13076 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
13077
13078 PR target/30770
13079 * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
13080 count argument with 0x10, not with 0x16.
13081 (expand_setmem_epilogue): Ditto.
13082
13083 2007-02-24 Mike Stump <mrs@apple.com>
13084
13085 * config/i386/i386.c (output_pic_addr_const): Stubify optimized
13086 symbols.
13087
13088 2007-02-24 Richard Guenther <rguenther@suse.de>
13089
13090 PR middle-end/30951
13091 * fold-const.c (fold_binary): Fold x +- CST op x for
13092 EQ_EXPR and NE_EXPR.
13093
13094 2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13095
13096 * pa.md (muldi3): Force subregs to registers in 64-bit expander.
13097
13098 2007-02-24 Jan Hubicka <jh@suse.cz>
13099
13100 * cgraphunit.c (decide_is_function_needed): Honor
13101 -fkeep-inline-functions.
13102
13103 2007-02-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13104
13105 * builtins.c (fold_builtin_modf): New.
13106 (fold_builtin_2): Use it.
13107
13108 2007-02-24 Bernd Schmidt <bernd.schmidt@analog.com>
13109
13110 * loop-iv.c (implies_p): Detect additional cases where A implies B.
13111 (determine_max_iter): Take additional LOOP arg; all callers changed.
13112 Lose broken logic dealing with PLUS. Try to limit the upper bound by
13113 one using simplifications.
13114 (simplify_using_initial_values): Return if the expression becomes
13115 invalid due to altered regs.
13116
13117 2007-02-23 DJ Delorie <dj@redhat.com>
13118
13119 * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
13120
13121 2007-02-23 Mike Stump <mrs@apple.com>
13122
13123 * tlink.c (scan_linker_output): Parse linker messages from
13124 darwin9's linker better.
13125
13126 2007-02-23 Steve Ellcey <sje@cup.hp.com>
13127
13128 PR debug/29614
13129 * varpool.c (varpool_assemble_pending_decls): Set
13130 varpool_last_needed_node to null.
13131
13132 2007-02-23 DJ Delorie <dj@redhat.com>
13133
13134 * config/i386/i386.c (ix86_data_alignment): Don't specify an
13135 alignment bigger than the object file can handle.
13136
13137 2007-02-23 Uros Bizjak <ubizjak@gmail.com>
13138
13139 PR target/30825
13140 * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
13141 zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
13142 (*movsf_1): Penalize MMX moves.
13143
13144 2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
13145
13146 * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
13147 2^32-1 or more times unless flag_unsafe_loop_optimizations.
13148
13149 * loop-iv.c (determine_max_iter): Moved in front of its sole user.
13150
13151 2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13152
13153 * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
13154 (fold_builtin_1): Use them.
13155 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
13156 BUILT_IN_SIGNIFICAND.
13157
13158 2007-02-23 H.J. Lu <hongjiu.lu@intel.com>
13159
13160 * config/i386/i386.c (bdesc_1arg): Initialize
13161 IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
13162 "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
13163 (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
13164 and IX86_BUILTIN_MOVSLDUP.
13165
13166 2007-02-22 Paolo Bonzini <bonzini@gnu.org>
13167
13168 PR rtl-optimization/30841
13169 * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
13170
13171 2007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13172
13173 * builtins.c (fold_builtin_frexp): New.
13174 (fold_builtin_2): Use it.
13175
13176 2007-02-22 Mark Mitchell <mark@codesourcery.com>
13177
13178 * doc/invoke.texi (Spec Files): Document getenv spec function.
13179
13180 * gcc.c (getenv_spec_function): New function.
13181 (static_spec_functions): Add it.
13182 * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
13183 (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
13184 header files.
13185
13186 2007-02-22 Michael Matz <matz@suse.de
13187
13188 PR c++/29433
13189 * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
13190 (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
13191
13192 2007-02-22 Ian Lance Taylor <iant@google.com>
13193
13194 PR debug/30898
13195 * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
13196 (mem_loc_descriptor): Call it.
13197
13198 2007-02-22 Zdenek Dvorak <dvorakz@suse.cz>
13199 Ira Rosen <irar@il.ibm.com>
13200
13201 * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
13202
13203 2007-02-22 Ira Rosen <irar@il.ibm.com>
13204
13205 PR tree-optimization/30843
13206 * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
13207 stores only after all the group is vectorized.
13208
13209 2007-02-22 Dorit Nuzman <dorit@il.ibm.com>
13210
13211 PR tree-optimization/30858
13212 * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
13213 in the reduction cycle have a single use in the loop.
13214 * tree-vectorizer.h (relevant): Add documentation.
13215
13216 2007-02-20 Mike Stump <mrs@apple.com>
13217
13218 * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
13219 * configure: Regenerate.
13220
13221 2007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
13222
13223 Change the defaults of some parameters and options.
13224 * config/spu/spu-protos.h (spu_optimization_options): Declare.
13225 * config/spu/spu.c (spu_optimization_options): Add.
13226 (spu_override_options): Change params in spu_optimization_options.
13227 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
13228
13229 Register 127 is only 16 byte aligned when used as a frame pointer.
13230 * config/spu/spu-protos.h (spu_init_expanders): Declare.
13231 * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
13232 HARD_FRAME_POINTER_REGNUM.
13233 (spu_legitimate_address): Use regno_aligned_for_reload.
13234 (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
13235 aligned when frame_pointer_needed is true.
13236 (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
13237 to 8 bits.
13238 * config/spu/spu.h (INIT_EXPANDERS): Define.
13239
13240 Make sure shift and rotate instructions have valid immediate operands.
13241 * config/spu/predicates.md (spu_shift_operand): Remove.
13242 * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
13243 * config/spu/constraints.md (W, O): Extend range.
13244 * config/spu/spu.md (umask, nmask): Define.
13245 (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
13246 lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
13247 rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
13248 rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
13249 spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
13250 (lshr<mode>3_reg): Fix rtl description.
13251
13252 Make sure mulhisi immediate operands are valid.
13253 * config/spu/predicates.md (imm_K_operand): Add.
13254 * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
13255
13256 Generate constants using fsmbi and andi.
13257 * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
13258 (print_operand, spu_split_immediate, classify_immediate,
13259 fsmbi_const_p): Handle IC_FSMBI2.
13260
13261 Correctly handle a CONST_VECTOR containing symbols.
13262 * config/spu/spu.c (print_operand): Handle HIGH correctly.
13263 (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
13264 (immediate_load_p): Allow symbols that use 2 instructions to create.
13265 (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
13266 with symbols when flag_pic is set.
13267 (const_vector_immediate_p): New.
13268 (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
13269 accept a CONST_VECTOR with symbols.
13270 (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
13271 accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
13272 correctly.
13273 * config/spu/spu.md (high, low): Delete.
13274 (low_<mode>): Define.
13275
13276 Remove INTRmode and INTR_REGNUM, which didn't work.
13277 * config/spu/spu.c (spu_conditional_register_usage): Remove reference
13278 of INTR_REGNUM.
13279 * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
13280 set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
13281 peephole2 pattern): Don't use INTR or 131.
13282 (movintrcc): Delete.
13283 * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
13284 CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
13285 * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
13286 (UNSPEC_SET_INTR): Add.
13287 * config/spu/spu-modes.def (INTR): Remove.
13288
13289 More accurate warnings about run-time relocations.
13290 * config/spu/spu.c (reloc_diagnostic): Test in_section.
13291
13292 Correctly warn about immediate arguments to specific intrinsics.
13293 * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
13294 (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
13295 the instruction predicate.
13296
13297 Fix tree check errors with latest update.
13298 * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
13299 CALL_EXPR_ARG.
13300 (spu_expand_builtin): Use CALL_EXPR_FN.
13301
13302 Add missing specific intrinsics.
13303 * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
13304 si_bislede.
13305 * config/spu/spu_internals.h: Ditto.
13306
13307 Fix incorrect operand modifiers.
13308 * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
13309 * config/spu/spu.md (xor<mode>3): Change %S to %J.
13310
13311 Optimize one case of zero_extend of a vec_select.
13312 * config/spu/spu.md (_vec_extractv8hi_ze): Add.
13313
13314 Accept any immediate for hbr.
13315 * config/spu/spu.md (hbr): Change s constraints to i.
13316
13317 2007-02-21 Paul Brook <paul@codesourcery.com>
13318
13319 * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
13320 condexec_count when skipping USE and CLOBBER.
13321
13322 2007-02-21 Nick Clifton <nickc@redhat.com>
13323
13324 * common.opt (Warray-bounds): Add Warning attribute.
13325 (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
13326 Likewise.
13327 (fsized-zeroes): Add Optimization attribute.
13328 (fsplit-wide-types, ftree-scev-cprop): Likewise.
13329 * c.opt (Wc++0x-compat): Add Warning attribute.
13330
13331 2007-02-21 Ulrich Weigand <uweigand@de.ibm.com>
13332
13333 PR middle-end/30761
13334 * reload1.c (eliminate_regs_in_insn): In the single_set special
13335 case, attempt to re-recognize the insn before falling back to
13336 having reload fix it up.
13337
13338 2007-02-20 Eric Christopher <echristo@gmail.com>
13339
13340 * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
13341 Rewrite accordingly.
13342 (frv_read_iacc_argument): Ditto.
13343 (frv_expand_set_builtin): Take a call instead of arglist, update for
13344 above changes.
13345 (frv_expand_unop_builtin): Ditto.
13346 (frv_expand_binop_builtin): Ditto.
13347 (frv_expand_cut_builtin): Ditto.
13348 (frv_expand_binopimm_builtin): Ditto.
13349 (frv_expand_voidbinop_builtin): Ditto.
13350 (frv_expand_int_void2arg): Ditto.
13351 (frv_expand_prefetches): Ditto.
13352 (frv_expand_voidtriop_builtin): Ditto.
13353 (frv_expand_voidaccop_builtin): Ditto.
13354 (frv_expand_load_builtin): Ditto.
13355 (frv_expand_store_builtin): Ditto.
13356 (frv_expand_mdpackh_builtin): Ditto.
13357 (frv_expand_mclracc_builtin): Ditto.
13358 (frv_expand_mrdacc_builtin): Ditto.
13359 (frv_expand_mwtacc_builtin): Ditto.
13360 (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
13361 calls for above.
13362
13363 2007-02-20 Janis Johnson <janis187@us.ibm.com>
13364
13365 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
13366 * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
13367 cmpb instruction.
13368 (HAVE_GAS_DFP): Check for assembler support of decimal floating
13369 point instructions.
13370 * configure: Regenerate.
13371 * config.in: Regenerate.
13372 * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
13373 * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
13374 masks to power6 and power6x and to POWERPC_MASKS.
13375 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
13376 _ARCH_PWR6.
13377 * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
13378 * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
13379 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
13380 Access PROTOTYPE as variable, not mask.
13381
13382 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
13383
13384 * rtl.h (remove_reg_equal_equiv_notes): New prototype.
13385 * rtlanal.c (remove_reg_equal_equiv_notes): New function.
13386 * combine.c (adjust_for_new_dest): Use it.
13387 * postreload.c (reload_combine): Likewise.
13388
13389 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
13390
13391 * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
13392 notes on an insn with multiple sets, even if single_set returns
13393 non-NULL for that insn.
13394
13395 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13396
13397 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
13398 scalbn and scalbln.
13399
13400 2007-02-20 Geoffrey Keating <geoffk@apple.com>
13401
13402 * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
13403 if user didn't pass it.
13404 * config/i386/darwin.h (CC1_SPEC): Likewise.
13405 * config/rs6000/darwin.h (CC1_SPEC): Likewise.
13406 (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
13407 -mmacosx-version-min.
13408
13409 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13410 Uros Bizjak <ubizjak@gmail.com>
13411
13412 * optabs.h (enum optab_index): Add new OTI_scalb.
13413 (scalb_optab): Define corresponding macro.
13414 * optabs.c (init_optabs): Initialize scalb_optab.
13415 * genopinit.c (optabs): Implement scalb_optab using scalb?f3
13416 patterns.
13417 * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
13418 BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
13419 (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
13420 and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
13421 flag_unsafe_math_optimizations is set.
13422
13423 * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
13424 to implement scalbf, scalb and scalbl built-ins as inline x87
13425 intrinsics.
13426
13427 2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13428 DJ Delorie <dj@redhat.com>
13429
13430 PR other/30824
13431 * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
13432 (diagnostic_report_diagnostic): ... here, and turn them into real
13433 errors. If warnings are inhibited, no need to do anything.
13434
13435 2007-02-20 Uros Bizjak <ubizjak@gmail.com>
13436
13437 * config/i386/i386.md (expm1xf2): Reorder insn sequence for
13438 better code generation.
13439
13440 2007-02-20 Ben Elliston <bje@au.ibm.com>
13441
13442 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
13443
13444 2007-02-20 Kazu Hirata <kazu@codesourcery.com>
13445
13446 * config/alpha/alpha.c, config/alpha/alpha.md,
13447 config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
13448 config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
13449 config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
13450 config/arm/lib1funcs.asm: Follow spelling conventions.
13451
13452 * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
13453 config/fr30/fr30.md, config/i386/i386.h,
13454 config/iq2000/iq2000.h, config/iq2000/predicates.md,
13455 config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
13456 config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
13457 config/pdp11/pdp11.c, config/pdp11/pdp11.h,
13458 config/rs6000/altivec.md, config/rs6000/rs6000.c,
13459 config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
13460 config/sparc/sparc.c, config/sparc/sparc.h,
13461 config/sparc/sparc.md, config/spu/constraints.md,
13462 config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
13463 conventions.
13464
13465 2007-02-20 Alan Modra <amodra@bigpond.net.au>
13466
13467 PR target/29943
13468 * varasm.c (use_blocks_for_decl_p): Return false for decls with
13469 alias attribute.
13470
13471 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
13472
13473 * doc/invoke.texi (-ftree-lrs): Remove.
13474
13475 2007-02-19 Diego Novillo <dnovillo@redhat.com>
13476
13477 * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
13478 NULL.
13479
13480 2007-02-19 Lee Millward <lee.millward@codesourcery.com>
13481
13482 * config/ia64/ia64.c (ia64_expand_builtin): Use the
13483 new CALL_EXPR_FN macro for retrieving the function
13484 declaration of the input expression.
13485
13486 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13487
13488 * c.opt (Waddress): New.
13489 * common.opt (Walways-true): Delete.
13490 (Wstring-literal-comparison): Delete.
13491 * doc/invoke.texi (Warning Options): Delete -Walways-true and
13492 -Wstring-literal-comparison. Add -Waddress.
13493 (Waddress): New.
13494 (Walways-true): Delete.
13495 (Wstring-literal-comparison): Delete.
13496 * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
13497 consistently instead of -Walways-true in example.
13498 * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
13499 * c-typeck.c (parser_build_binary_op): Replace
13500 -Wstring-literal-comparison and -Walways-true with -Waddress.
13501 * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
13502 with -Waddress.
13503
13504 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
13505
13506 * tree-cfg.c (dump_function_to_file): Be prepared for functions
13507 without DECL_STRUCT_FUNCTION initialized.
13508
13509 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
13510
13511 * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
13512 due to calls to functions taking pointers as parameters.
13513
13514 2007-02-19 Richard Henderson <rth@redhat.com>
13515
13516 PR debug/29558
13517 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
13518 in memory.
13519
13520 2007-02-19 Andreas Krebbel <krebbel1@de.ibm.com>
13521
13522 * config/s390/s390.c (s390_call_saved_register_used,
13523 s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
13524 accessed to the new scheme.
13525
13526 2007-02-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13527
13528 * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
13529 (cris_print_index, cris_print_operand, cris_print_operand_address)
13530 (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
13531 (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
13532 (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
13533 GET_CODE () == xxx.
13534 * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
13535 EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
13536 GO_IF_LEGITIMATE_ADDRESS): Ditto.
13537 * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
13538 (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
13539 (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
13540 (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
13541 (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
13542 (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
13543 (uminsi3, call, call_value): Ditto.
13544 (define_split: indir_to_reg_split, unnamed): Ditto.
13545
13546 2007-02-19 Dorit Nuzman <dorit@il.ibm.com>
13547
13548 PR tree-optimization/30975
13549 * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
13550 wrong assert.
13551
13552 2007-02-18 Eric Christopher <echristo@gmail.com>
13553
13554 * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
13555 Remove use of arglist.
13556 (mips_expand_builtin): Remove use of arglist, pass in expr.
13557 (mips_expand_builtin_direct): Rewrite handling for arglist removal.
13558 (mips_expand_builtin_movtf): Ditto.
13559 (mips_expand_builtin_compare): Ditto.
13560
13561 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
13562
13563 * tree-sra.c (sra_build_assignment): Replace assertion
13564 checking with a comment explaining why it can't be done.
13565
13566 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
13567
13568 PR middle-end/30833
13569 * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
13570 during CALL_EXPR representation conversion.
13571 * tree-ssa-propagate.c (set_rhs): Likewise.
13572
13573 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
13574
13575 * tree-sra.c (sra_build_assignment): Disable assertion checking
13576 for now.
13577
13578 2007-02-18 Roger Sayle <roger@eyesopen.com>
13579
13580 * function.c (gimplify_parameters): Call build_gimple_modify_stmt
13581 instead of calling build2 with a GIMPLE_MODIFY_STMT.
13582 * gimple-low.c (lower_function_body, lower_builtin_setjmp):
13583 Likewise.
13584 * gimplify.c (build_stack_save_restore, gimplify_return_expr,
13585 gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr,
13586 gimplify_init_ctor_eval_range, gimple_push_cleanup,
13587 gimplify_omp_for, gimplify_omp_atomic_pipeline,
13588 gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
13589 force_gimple_operand): Likewise.
13590 * ipa-cp.c (constant_val_insert): Likewise.
13591 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
13592 lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
13593 perfect_nestify): Likewise.
13594 * langhooks.c (lhd_omp_assignment): Likewise.
13595 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
13596 lower_copyprivate_clauses, lower_send_clauses,
13597 lower_send_shared_vars, expand_parallel_call,
13598 expand_omp_for_generic, expand_omp_for_static_nochunk,
13599 expand_omp_for_static_chunk, expand_omp_sections,
13600 lower_omp_single_copy, lower_omp_for_lastprivate,
13601 lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
13602 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
13603 tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
13604 Likewise.
13605
13606 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
13607
13608 * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
13609 config/sh/sh.md: Follow spelling conventions.
13610
13611 * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
13612 config/frv/predicates.md: Follow spelling conventions.
13613
13614 * config/m68k/linux-unwind.h: Fix a comment typo.
13615 * target.h: Follow spelling conventions.
13616
13617 2007-02-18 Roger Sayle <roger@eyesopen.com>
13618
13619 PR rtl-optimization/28173
13620 * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
13621 (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
13622 Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
13623 Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
13624 <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
13625
13626 2007-02-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13627
13628 * builtins.c (fold_builtin_load_exponent): New.
13629 (fold_builtin_2): Use it.
13630
13631 2007-02-18 Steven Bosscher <steven@gcc.gnu.org>
13632
13633 PR rtl-optimization/30773
13634 * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
13635 if we fail to attach a REG_EQUIV note.
13636
13637 2007-02-18 David Edelsohn <edelsohn@gnu.org>
13638 Roger Sayle <roger@eyesopen.com>
13639
13640 * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
13641
13642 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
13643
13644 * calls.c (initialize_argument_information): Pass original EXP
13645 and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move
13646 code to split complex arguments here, as part of initializing the
13647 ARGS array.
13648 (expand_call): Remove code that builds a list of arguments and
13649 inserts implicit arguments into it. Instead, just count how many
13650 implicit arguments there will be so we can determine the size of
13651 the ARGS array, and let initialize_argument_information do the work.
13652 (split_complex_values): Delete unused function.
13653
13654 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
13655
13656 * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
13657
13658 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
13659
13660 * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
13661 for arg pointer based indexed addressing.
13662
13663 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
13664
13665 * config/ia64/ia64.h, config/ia64/ia64.md,
13666 config/ia64/predicates.md, config/ia64/sysv4.h: Follow
13667 spelling conventions.
13668
13669 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
13670
13671 * config/m68k/m68k.c (split_di): New.
13672 * config/m68k/m68k-protos.h: Declare split_di.
13673 * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
13674 Improve predicate handling and split constant shifts.
13675
13676 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
13677
13678 * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
13679 parameter for register bitfield operations, general predicates
13680 cleanup
13681
13682 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
13683
13684 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
13685 * config/m68k/linux-unwind.h: New file.
13686
13687 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
13688
13689 * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
13690 config/i386/athlon.md, config/ia64/ia64.md,
13691 config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
13692 df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
13693 ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
13694 tree-ssa-loop-niter.c, tree-vect-analyze.c,
13695 tree-vect-transform.c: Fix comment typos.
13696
13697 2007-02-17 Kazu Hirata <kazu@codesourcery.com>
13698
13699 * sched-deps.c (find_insn_list): Remove.
13700 * sched-int.h: Remove the prototype for find_insn_list.
13701
13702 2007-02-16 Geoffrey Keating <geoffk@apple.com>
13703
13704 * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
13705 to linker.
13706 (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
13707 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
13708 darwin_rs6000_override_options.
13709 (C_COMMON_OVERRIDE_OPTIONS): Expect
13710 darwin_macosx_version_min to be non-NULL always.
13711 (TARGET_C99_FUNCTIONS): Likewise.
13712 (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
13713 (DARWIN_MINVERSION_SPEC): New.
13714 * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
13715 * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
13716 to cc1*.
13717 (DARWIN_MINVERSION_SPEC): New.
13718 * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
13719 value.
13720 * config/darwin-c.c (darwin_cpp_builtins): Expect
13721 darwin_macosx_version_min to be non-NULL always.
13722
13723 * config/rs6000/rs6000.c: Clean up trailing whitespace.
13724
13725 2007-02-16 Uros Bizjak <ubizjak@gmail.com>
13726
13727 * config/i386/i386.h (x86_use_xchgb): New.
13728 (TARGET_USE_XCHGB): New macro.
13729 * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
13730 * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
13731 Split after reload into bswaphi for shifts of 8.
13732 (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
13733 (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
13734 or when optimizing for size.
13735
13736 2007-02-16 Richard Guenther <rguenther@suse.de>
13737 Christian Bruel <christian.bruel@st.com>
13738
13739 * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
13740 DECLs but prefer SSA_NAMEs over DECLs.
13741
13742 2007-02-16 Richard Guenther <rguenther@suse.de>
13743
13744 * tree-flow-inline.h (single_imm_use_p): Remove.
13745 (zero_imm_uses_p): Likewise.
13746 * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
13747 instead of single_imm_use_p.
13748 * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
13749 zero_imm_uses_p.
13750
13751 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13752
13753 PR other/27843
13754 * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
13755 nested double- and backquotes.
13756
13757 2007-02-15 Roger Sayle <roger@eyesopen.com>
13758
13759 PR middle-end/30391
13760 * tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT
13761 should be unreachable.
13762 (build2_stat): Allow construction of MODIFY_EXPR at any time.
13763 For the time being redirect GIMPLE_MODIFY_STMT to the new
13764 (renamed) build_gimple_modify_stmt_stat.
13765 (build2_gimple_stat): Rename to...
13766 (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
13767 Always build a GIMPLE_MODIFY_STMT node.
13768 * tree.h (build2_gimple, build2_gimple_stat): Delete.
13769 (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
13770 declarations.
13771
13772 * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
13773 gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
13774 * tree-complex.c (set_component_ssa_name, expand_complex_move,
13775 expand_complex_div_wide): Likewise.
13776 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
13777 * tree-ssa-loop-im.c (schedule_sm): Likewise.
13778 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
13779 * tree-ssa-loop-manip.c (create_iv): Likewise.
13780 * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
13781 abs_replacement): Likewise.
13782 * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
13783 realify_fake_stores): Likewise.
13784
13785 * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
13786 node rather than a GIMPLE_MODIFY_STMT node.
13787 (std_gimpify_va_arg_expr, expand_builtin_va_copy,
13788 fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
13789 Likewise.
13790 (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
13791 * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
13792 GIMPLE_MODIFY_STMT.
13793
13794 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
13795
13796 PR middle-end/30433
13797 * fold-const.c (fold_comparison): Add back the
13798 folding of constant complex comparisions.
13799
13800 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
13801
13802 PR middle-end/30729
13803 * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
13804 effects unknown to this function, return early.
13805
13806 2007-02-15 Ian Lance Taylor <iant@google.com>
13807
13808 * lower-subreg.c (move_eh_region_note): New static function.
13809 (resolve_simple_move): Call it.
13810 (decompose_multiword_subregs): Track blocks for which we resolve a
13811 simple move which is also a control flow insn. Pass them to
13812 find_many_sub_basic_blocks.
13813 (pass_lower_subreg): Add TODO_verify_flow.
13814 (pass_lower_subreg2): Likewise.
13815
13816 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
13817 Brooks Moses <brooks.moses@codesourcery.com>
13818 Lee Millward <lee.millward@codesourcery.com>
13819
13820 * tree.h (enum tree_code_class): Add tcc_vl_exp.
13821 (VL_EXP_CLASS_P): New.
13822 (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
13823 TREE_CODE_LENGTH.
13824 (TREE_OPERAND_CHECK_CODE): Likewise.
13825 (GIMPLE_STMT_OPERAND_CHECK): Likewise.
13826 (TREE_RTL_OPERAND_CHECK): Likewise.
13827 (tree_operand_check_failed): Make second parameter the whole tree
13828 instead of its code. Fixed callers.
13829 (VL_EXP_CHECK): New.
13830 (TREE_OPERAND_LENGTH): New.
13831 (VL_EXP_OPERAND_LENGTH): New.
13832 (CALL_EXPR_FN): New.
13833 (CALL_EXPR_STATIC_CHAIN): New.
13834 (CALL_EXPR_ARGS): New.
13835 (CALL_EXPR_ARG): New.
13836 (call_expr_nargs): New.
13837 (CALL_EXPR_ARGP): New.
13838 (build_nt_call_list): Declare.
13839 (build_vl_exp_stat): Declare.
13840 (build_vl_exp): New.
13841 (build_call_list): Declare.
13842 (build_call_nary): Declare.
13843 (build_call_valist): Declare.
13844 (build_call_array): Declare.
13845 (call_expr_arg): Declare.
13846 (call_expr_argp): Declare.
13847 (call_expr_arglist): Declare.
13848 (fold_build_call_list): Declare.
13849 (fold_build_call_list_initializer): Declare.
13850 (fold_call_expr): Declare to replace fold_builtin.
13851 (fold_builtin_fputs): Update to agree with modified definition.
13852 (fold_builtin_strcpy): Likewise.
13853 (fold_builtin_strncpy): Likewise.
13854 (fold_builtin_memory_chk): Likewise.
13855 (fold_builtin_stxcpy_chk): Likewise.
13856 (fold_builtin_strncpy_chk): Likewise.
13857 (fold_builtin_next_arg): Likewise.
13858 (fold_build_call_expr): Declare.
13859 (fold_builtin_call_list): Declare.
13860 (fold_builtin_call_valist): Declare.
13861 (build_call_expr): Declare.
13862 (validate_arglist): Update to agree with modified definition.
13863 (tree_operand_length): New.
13864 (call_expr_arg_iterator): New.
13865 (init_call_expr_arg_iterator): New.
13866 (next_call_expr_arg): New.
13867 (first_call_expr_arg): New.
13868 (more_call_expr_args_p): New.
13869 (FOR_EACH_CALL_EXPR_ARG): New.
13870
13871 * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
13872 and tcc_gimple_stmt.
13873 (tree_code_size): Update documentation. Use sizeof (tree) rather
13874 than sizeof (char *).
13875 (tree_size): Likewise. Add case for tcc_vl_exp.
13876 (tree_node_structure): Add case for tcc_vl_exp.
13877 (contains_placeholder_p): Likewise.
13878 (substitute_in_expr): Likewise.
13879 (substitute_placeholder_in_expr): Likewise.
13880 (stabilize_reference_1): Likewise.
13881 (build3_stat): Remove logic for CALL_EXPRs. Replace with assertion
13882 to diagnose breakage of this interface for constructing CALL_EXPRs.
13883 (build_nt): Add similar assertion here.
13884 (build_nt_call_list): New.
13885 (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
13886 (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
13887 TREE_CODE_LENGTH.
13888 (get_callee_fndecl): Use new CALL_EXPR accessors.
13889 (tree_operand_check_failed): Change parameters to pass entire node
13890 instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
13891 (process_call_operands): New.
13892 (build_vl_exp_stat): New.
13893 (build_call_list): New.
13894 (build_call_nary): New.
13895 (build_call_valist): New.
13896 (build_call_array): New.
13897 (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
13898 (call_expr_arglist): New.
13899
13900 * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
13901 tcc_vl_exp instead of a fixed-size tcc_expression.
13902
13903 * doc/c-tree.texi (CALL_EXPR): Document new representation and
13904 accessors for CALL_EXPRs.
13905 (AGGR_INIT_EXPR): Likewise.
13906
13907 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
13908 Brooks Moses <brooks.moses@codesourcery.com>
13909 Lee Millward <lee.millward@codesourcery.com>
13910
13911 * builtins.c (c_strlen): Return NULL_TREE instead of 0.
13912 (expand_builtin_nonlocal_goto): Change parameter to be entire
13913 CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors.
13914 (expand_builtin_prefetch): Likewise.
13915 (expand_builtin_classify_type): Likewise.
13916 (mathfn_built_in): Return NULL_TREE instead of 0.
13917 (expand_errno_check): Use new CALL_EXPR accessors.
13918 (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
13919 Return NULL_RTX instead of 0.
13920 (expand_builtin_mathfn_2): Likewise.
13921 (expand_builtin_mathfn_3): Likewise.
13922 (expand_builtin_interclass_mathfn): Likewise.
13923 (expand_builtin_sincos): Likewise.
13924 (expand_builtin_cexpi): Likewise.
13925 (expand_builtin_int_roundingfn): Likewise.
13926 (expand_builtin_int_roundingfn_2): Likewise.
13927 (expand_builtin_pow): Likewise.
13928 (expand_builtin_powi): Likewise.
13929 (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
13930 of arglist, fixing callers appropriately. Use new CALL_EXPR
13931 accessors and constructors. Return NULL_RTX instead of 0.
13932 (expand_builtin_strstr): Likewise.
13933 (expand_builtin_strchr): Likewise.
13934 (expand_builtin_strrchr): Likewise.
13935 (expand_builtin_strpbrk): Likewise.
13936 (expand_builtin_memcpy): Likewise.
13937 (expand_builtin_mempcpy): Likewise.
13938 (expand_builtin_mempcpy_args): New.
13939 (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
13940 (expand_builtin_memmove_args): New.
13941 (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
13942 (expand_movstr): Likewise.
13943 (expand_builtin_strcpy): Likewise.
13944 (expand_builtin_strcpy_args): New.
13945 (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
13946 (expand_builtin_strncpy): Likewise.
13947 (expand_builtin_memset): Likewise.
13948 (expand_builtin_memset_args): New.
13949 (expand_builtin_bzero): Similarly to expand_builtin_memset.
13950 (expand_builtin_memcmp): Likewise.
13951 (expand_builtin_strcmp): Likewise.
13952 (expand_builtin_strncmp): Likewise.
13953 (expand_builtin_strcat): Likewise.
13954 (expand_builtin_strncat): Likewise.
13955 (expand_builtin_strspn): Likewise.
13956 (expand_builtin_strcspn): Likewise.
13957 (expand_builtin_args_info): Likewise.
13958 (expand_builtin_va_start): Likewise.
13959 (gimplify_va_arg_expr): Likewise.
13960 (expand_builtin_va_end): Likewise.
13961 (expand_builtin_va_copy): Likewise.
13962 (expand_builtin_frame_address): Likewise.
13963 (expand_builtin_alloca): Likewise.
13964 (expand_builtin_bswap): Likewise.
13965 (expand_builtin_unop): Likewise.
13966 (expand_builtin_fputs): Likewise.
13967 (expand_builtin_expect): Likewise.
13968 (expand_builtin_fabs): Likewise.
13969 (expand_builtin_copysign): Likewise.
13970 (expand_builtin_printf): Likewise.
13971 (expand_builtin_fprintf): Likewise.
13972 (expand_builtin_sprintf): Likewise.
13973 (expand_builtin_init_trampoline): Likewise.
13974 (expand_builtin_signbit): Likewise.
13975 (expand_builtin_fork_or_exec): Likewise.
13976 (expand_builtin_sync_operation): Likewise.
13977 (expand_builtin_compare_and_swap): Likewise.
13978 (expand_builtin_lock_test_and_set): Likewise.
13979 (expand_builtin_lock_release): Likewise.
13980 (expand_builtin): Likewise.
13981 (builtin_mathfn_code): Likewise.
13982
13983 (fold_builtin_constant_p): Pass call arguments individually instead
13984 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
13985 accessors and constructors. Return NULL_TREE instead of 0.
13986 (fold_builtin_expect): Likewise.
13987 (fold_builtin_classify_type): Likewise.
13988 (fold_builtin_strlen): Likewise.
13989 (fold_builtin_nan): Likewise.
13990 (integer_valued_real_p): Likewise.
13991 (fold_trunc_transparent_mathfn): Likewise.
13992 (fold_fixed_mathfn): Likewise.
13993 (fold_builtin_cabs): Likewise.
13994 (fold_builtin_sqrt): Likewise.
13995 (fold_builtin_cbrt): Likewise.
13996 (fold_builtin_cos): Likewise.
13997 (fold_builtin_cosh): Likewise.
13998 (fold_builtin_tan): Likewise.
13999 (fold_builtin_sincos): Likewise.
14000 (fold_builtin_cexp): Likewise.
14001 (fold_builtin_trunc): Likewise.
14002 (fold_builtin_floor): Likewise.
14003 (fold_builtin_ceil): Likewise.
14004 (fold_builtin_round): Likewise.
14005 (fold_builtin_int_roundingfn): Likewise.
14006 (fold_builtin_bitop): Likewise.
14007 (fold_builtin_bswap): Likewise.
14008 (fold_builtin_logarithm): Likewise.
14009 (fold_builtin_hypot): Likewise.
14010 (fold_builtin_pow): Likewise.
14011 (fold_builtin_powi): Likewise.
14012 (fold_builtin_exponent): Likewise.
14013 (fold_builtin_memset): Likewise.
14014 (fold_builtin_bzero): Likewise.
14015 (fold_builtin_memory_op): Likewise.
14016 (fold_builtin_bcopy): Deleted; call site changed to invoke
14017 fold_builtin_memory_op directly.
14018 (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
14019 (fold_builtin_strncpy): Likewise.
14020 (fold_builtin_memcmp): Likewise.
14021 (fold_builtin_strcmp): Likewise.
14022 (fold_builtin_strncmp): Likewise.
14023 (fold_builtin_signbit): Likewise.
14024 (fold_builtin_copysign): Likewise.
14025 (fold_builtin_isascii): Likewise.
14026 (fold_builtin_toascii): Likewise.
14027 (fold_builtin_isdigit): Likewise.
14028 (fold_builtin_fabs): Likewise.
14029 (fold_builtin_abs): Likewise.
14030 (fold_builtin_fmin_fmax): Likewise.
14031 (fold_builtin_carg): Likewise.
14032 (fold_builtin_classify): Likewise.
14033 (fold_builtin_unordered_cmp): Likewise.
14034
14035 (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
14036 New functions split out from fold_builtin_1.
14037 (fold_builtin_n): New.
14038 (fold_builtin_varargs): New.
14039 (fold_builtin): Deleted. Most callers changed to use fold_call_expr
14040 instead.
14041 (fold_call_expr): New.
14042 (build_function_call_expr): Rewrite to use new helper function.
14043 (fold_builtin_call_list): New.
14044 (build_call_expr): New.
14045 (fold_builtin_call_valist): New.
14046 (rewrite_call_expr): New.
14047 (validate_arg): New.
14048 (validate_arglist): Change parameter to be entire CALL_EXPR instead
14049 of an arglist. Change return type to bool. Use new CALL_EXPR
14050 accessors.
14051
14052 (fold_builtin_strstr): Pass call arguments individually instead
14053 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
14054 accessors and constructors. Return NULL_TREE instead of 0.
14055 (fold_builtin_strchr): Likewise.
14056 (fold_builtin_strrchr): Likewise.
14057 (fold_builtin_strpbrk): Likewise.
14058 (fold_builtin_strcat): Likewise.
14059 (fold_builtin_strncat): Likewise.
14060 (fold_builtin_strspn): Likewise.
14061 (fold_builtin_strcspn): Likewise.
14062 (fold_builtin_fputs): Likewise.
14063 (fold_builtin_next_arg): Likewise.
14064 (fold_builtin_sprintf): Likewise.
14065
14066 (expand_builtin_object_size): Use new CALL_EXPR accessors. Use
14067 NULL_RTX instead of 0.
14068 (expand_builtin_memory_chk): Likewise.
14069 (maybe_emit_chk_warning): Likewise.
14070 (maybe_emit_sprintf_chk_warning): Likewise.
14071
14072 (fold_builtin_object_size): Pass call arguments individually instead
14073 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
14074 accessors and constructors. Return NULL_TREE instead of 0.
14075 (fold_builtin_memory_chk): Likewise.
14076 (fold_builtin_stxcpy_chk): Likewise.
14077 (fold_builtin_strncpy_chk): Likewise.
14078 (fold_builtin_strcat_chk): Likewise.
14079 (fold_builtin_strcat_chk): Likewise.
14080 (fold_builtin_strncat_chk): Likewise.
14081 (fold_builtin_sprintf_chk): Likewise.
14082 (fold_builtin_snprintf_chk): Likewise.
14083 (fold_builtin_printf): Likewise.
14084 (fold_builtin_vprintf): Likewise.
14085
14086 * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
14087 constructors.
14088 (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
14089 (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
14090 (extract_muldiv_1): Add VL_EXP_CLASS_P case.
14091 (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
14092 (fold_unary): Likewise.
14093 (fold_binary): Likewise.
14094 (fold_ternary): Remove CALL_EXPR case, since they are no longer
14095 ternary expressions.
14096 (fold): Add logic for tcc_vl_exp.
14097 (fold_checksum_tree): Make it know about tcc_vl_exp. Use
14098 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
14099 (fold_build3_stat): Add assertion to flag broken interface for
14100 constructing CALL_EXPRs.
14101 (fold_build_call_list): New.
14102 (fold_build_call_list_initializer): New.
14103 (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
14104 constructors.
14105 (fold_strip_sign_ops): Likewise.
14106
14107 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
14108 Brooks Moses <brooks.moses@codesourcery.com>
14109 Lee Millward <lee.millward@codesourcery.com>
14110
14111 * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
14112 accessors and dump arguments explicitly.
14113
14114 * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
14115 TREE_CODE_LENGTH.
14116 (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
14117 explicitly.
14118 (print_call_name): Use new CALL_EXPR accessors.
14119
14120 * print-tree.c (print_node): Add case tcc_vl_exp. Print
14121 CALL_EXPR arguments explicitly instead of as a list. Use
14122 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
14123
14124 * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
14125 (vrp_visit_stmt): Likewise.
14126
14127 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
14128 know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of
14129 TREE_CODE_LENGTH.
14130 (force_move_till_expr): Likewise.
14131
14132 * targhooks.c (default_external_stack_protect_fail): Use
14133 build_call_expr instead of build_function_call_expr.
14134 (default_hidden_stack_protect_fail): Likewise.
14135
14136 * tree-complex.c (expand_complex_libcall): Use build_call_expr to
14137 build the call.
14138
14139 * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
14140 and walk arguments explicitly.
14141
14142 * tree-ssa-loop-niter.c (simplify_replace_tree): Use
14143 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
14144 (expand_simple_operations): Likewise.
14145 (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
14146
14147 * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
14148 of TREE_CODE_LENGTH.
14149 (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
14150
14151 * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
14152 instead of TREE_CODE_LENGTH.
14153
14154 * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
14155 (tree_ic_transform): Likewise.
14156 (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
14157 parameter instead of arglist. Fix callers.
14158 (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
14159 (tree_stringops_transform): Likewise.
14160 (tree_indirect_call_to_profile): Likewise.
14161 (tree_stringops_values_to_profile): Likewise.
14162
14163 * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
14164 (eliminate_tail_call): Likewise.
14165
14166 * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
14167
14168 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
14169 Use TREE_OPERAND_LENGTH and generalize to handle any number of
14170 operands.
14171 (instantiate_parameters_1): Can't handle tcc_vl_exp here.
14172
14173 * omp-low.c (build_omp_barrier): Use build_call_expr.
14174 (lower_rec_input_clauses): Likewise.
14175 (lower_reduction_clauses): Likewise.
14176 (expand_parallel_call): Likewise.
14177 (maybe_catch_exception): Likewise.
14178 (expand_omp_for_generic): Likewise.
14179 (expand_omp_for_static_nochunk): Likewise.
14180 (expand_omp_sections): Likewise.
14181 (lower_omp_single_simple): Likewise.
14182 (lower_omp_single_copy): Likewise.
14183 (lower_omp_master): Likewise.
14184 (lower_omp_ordered): Likewise.
14185 (lower_omp_critical): Likewise.
14186
14187 * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
14188 (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
14189
14190 * tree-gimple.c (is_gimple_call_addr): Fix doc.
14191 (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
14192 TREE_CODE_LENGTH. Add tcc_vl_exp case.
14193
14194 * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
14195 and generalize to handle any number of operands.
14196 (chrec_contains_undetermined): Likewise.
14197 (tree_contains_chrecs): Likewise.
14198 (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
14199
14200 * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
14201
14202 * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use
14203 fold_call_expr instead of fold_builtin.
14204 (ccp_fold_builtin): Likewise. Update calls into builtins.c to
14205 match declarations there.
14206 (fold_stmt): Use new CALL_EXPR constructor and accessors. Doc
14207 updates.
14208
14209 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
14210 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
14211
14212 * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
14213 (scan_function): Add case tcc_vl_exp for CALL_EXPR.
14214
14215 * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
14216 accessors.
14217
14218 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
14219 (execute_cse_sincos): Use new CALL_EXPR accessors.
14220
14221 * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
14222
14223 * gimple-low.c (lower_function_body): Use build_call_expr.
14224 (lower_builtin_setjmp): Likewise.
14225
14226 * expr.c (emit_block_move_via_libcall): Use build_call_expr.
14227 (set_storage_via_libcall): Likewise.
14228 (safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH
14229 instead of TREE_CODE_LENGTH.
14230 (expand_expr_real_1): Use new CALL_EXPR accessors.
14231
14232 * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
14233 generalize to handle any number of operands.
14234 (TB_parent_eq): Likewise.
14235
14236 * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
14237 (strip_builtin_expect): Likewise.
14238
14239 * function.c (gimplify_parameters): Use build_call_expr.
14240
14241 * tree-vectorizer.c (vect_is_simple_reduction): Use
14242 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
14243
14244 * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
14245 (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
14246
14247 * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
14248 iterators.
14249
14250 * gimplify.c (build_stack_save_restore): Use build_call_expr.
14251 (gimplify_decl_expr): Likewise.
14252 (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
14253 Use new CALL_EXPR iterators.
14254 (gimplify_modify_expr_to_memcpy): Use build_call_expr.
14255 (gimplify_modify_expr_to_memset): Likewise.
14256 (gimplify_variable_sized_compare): Likewise.
14257 (gimplify_omp_atomic_fetch_op): Likewise.
14258 (gimplify_omp_atomic_pipeline): Likewise.
14259 (gimplify_omp_atomic_mutex): Likewise.
14260 (gimplify_function_tree): Likewise.
14261
14262 * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
14263 (call_expr_flags): Likewise.
14264 (expand_call): Likewise.
14265
14266 * except.c (expand_builtin_eh_return_data_regno): Pass entire
14267 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
14268 accessors.
14269
14270 * coverage.c (create_coverage): Use build_call_expr.
14271
14272 * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
14273 (temp_call_expr_obstack): New.
14274 (pool_copy_list): Delete.
14275 (temp_copy_call_expr): New.
14276 (phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new
14277 CALL_EXPR accessors. Get rid of special goo for copying argument
14278 lists and use temp_copy_call_expr instead.
14279 (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new
14280 CALL_EXPR accessors.
14281 (create_expression_by_pieces): Likewise. Use build_call_array
14282 to construct the result instead of fold_build3.
14283 (create_value_expr_from): Add tcc_vl_exp. Delete special goo for
14284 dealing with argument lists.
14285 (init_pre): Remove references to expression_node_pool and
14286 list_node_pool. Init temp_call_expr_obstack instead.
14287 (fini_pre): Remove references to expression_node_pool and
14288 list_node_pool.
14289
14290 * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
14291 and walk arguments explicitly instead of as a list.
14292
14293 * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
14294 (mx_register_decls): Likewise.
14295 (mudflap_register_call): Likewise.
14296 (mudflap_finish_file): Likewise.
14297
14298 * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
14299 (ipa_callsite_compute_param): Likewise.
14300
14301 * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
14302 accessors and constructor.
14303
14304 * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
14305 accessors and constructor.
14306 (convert_tramp_reference): Likewise.
14307 (convert_call_expr): Likewise.
14308 (finalize_nesting_tree_1): Likewise.
14309
14310 * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
14311 accessors.
14312
14313 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
14314
14315 * tree-inline.c (initialize_inlined_parameters): Pass entire
14316 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
14317 accessors.
14318 (estimate_num_insns_1): Use new CALL_EXPR accessors.
14319 (expand_call_inline): Tidy up call to initialize_inlined_parameters.
14320
14321 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
14322 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
14323 (vectorizable_reduction): Likewise.
14324 (vectorizable_call): Use new CALL_EXPR iterators.
14325 (vectorizable_conversion): Use build_call_expr.
14326 (vectorizable_operation): Use TREE_OPERAND_LENGTH.
14327 (vect_gen_widened_results_half): Use build_call_expr.
14328 (vect_setup_realignment): Likewise.
14329 (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
14330
14331 * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
14332 (pass_through_call): Likewise.
14333 (compute_object_sizes): Likewise. Use fold_call_expr instead of
14334 fold_builtin.
14335
14336 * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
14337 (tree_gen_pow2_profiler): Likewise.
14338 (tree_gen_one_value_profiler): Likewise.
14339 (tree_gen_ic_func_profiler): Likewise.
14340 (tree_gen_average_profiler): Likewise.
14341 (tree_gen_ior_profiler): Likewise.
14342
14343 * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
14344 (find_func_aliases): Use new CALL_EXPR accessors. Add case
14345 tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
14346
14347 * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
14348 of TREE_CODE_LENGTH.
14349
14350 * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
14351 of TREE_CODE_LENGTH.
14352
14353 * convert.c (convert_to_real): Use new CALL_EXPR accessors and
14354 constructor.
14355 (convert_to_integer): Likewise.
14356
14357 * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
14358 accessors.
14359
14360 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
14361 Brooks Moses <brooks.moses@codesourcery.com>
14362 Lee Millward <lee.millward@codesourcery.com>
14363
14364 * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
14365 accessors.
14366 * config/frv/frv.c (frv_expand_builtin): Likewise.
14367 * config/s390/s390.c (s390_expand_builtin): Likewise.
14368
14369 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
14370 (sparc_expand_builtin): Use new CALL_EXPR accessors.
14371
14372 * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
14373 (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
14374 instead of arglist. Use new CALL_EXPR accessors on it. Fix callers.
14375 (ix86_expand_store_builtin): Likewise.
14376 (ix86_expand_unop_builtin): Likewise.
14377 (ix86_expand_unop1_builtin): Likewise.
14378 (ix86_expand_sse_compare): Likewise.
14379 (ix86_expand_sse_comi): Likewise.
14380 (ix86_expand_vec_init_builtin): Likewise.
14381 (ix86_expand_vec_ext_builtin): Likewise.
14382 (ix86_expand_vec_set_builtin): Likewise.
14383 (ix86_expand_builtin): Use new CALL_EXPR accessors.
14384
14385 * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
14386 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
14387
14388 * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
14389 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
14390 (iq2000_expand_builtin): Use new CALL_EXPR accessors.
14391
14392 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
14393 build_call_expr.
14394 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
14395 (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
14396 arglist. Use new CALL_EXPR accessors. Fix callers.
14397 (altivec_expand_abs_builtin): Likewise.
14398 (rs6000_expand_binop_builtin): Likewise.
14399 (altivec_expand_predicate_builtin): Likewise.
14400 (altivec_expand_lv_builtin): Likewise.
14401 (spe_expand_stv_builtin): Likewise.
14402 (altivec_expand_stv_builtin): Likewise.
14403 (rs6000_expand_ternop_builtin): Likewise.
14404 (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
14405 (altivec_expand_st_builtin): Likewise.
14406 (altivec_expand_dst_builtin): Likewise.
14407 (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
14408 arglist. Use new CALL_EXPR accessors. Fix callers.
14409 (altivec_expand_vec_set_builtin): Likewise.
14410 (altivec_expand_vec_ext_builtin): Likewise.
14411 (altivec_expand_builtin): Use new CALL_EXPR accessors.
14412 (spe_expand_builtin): Likewise.
14413 (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
14414 arglist. Use new CALL_EXPR accessors. Fix callers.
14415 (spe_expand_evsel_builtin): Likewise.
14416 (rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and
14417 FCFSX cases must construct whole new CALL_EXPR, not just arglist.
14418
14419 * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
14420 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
14421 (arm_expand_unop_builtin): Likewise.
14422 (arm_expand_builtin): Use new CALL_EXPR accessors.
14423
14424 * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
14425 accessors.
14426
14427 * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
14428 CALL_EXPR instead of arglist. Use new CALL_EXPR accessors.
14429 Fix callers.
14430 (bfin_expand_unop_builtin): Likewise.
14431 (bfin_expand_builtin): Use new CALL_EXPR accessors.
14432
14433 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
14434 Brooks Moses <brooks.moses@codesourcery.com>
14435 Lee Millward <lee.millward@codesourcery.com>
14436
14437 * c-semantics.c (build_stmt): Add internal diagnostic check.
14438
14439 * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
14440 accessors. Print arguments explicitly instead of as a list.
14441
14442 * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
14443
14444 * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
14445 (c_finish_omp_flish): Likewise.
14446
14447 * c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse
14448 arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH
14449 instead of TREE_CODE_LENGTH.
14450 (check_function_arguments_recurse): Use new CALL_EXPR accessors.
14451 (c_warn_unused_result): Likewise.
14452
14453 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14454
14455 PR c/26494
14456 * doc/invoke.texi (Warning Options): Remove
14457 -Werror-implicit-function-declaration.
14458 (Wimplicit-function-declaration): Update description.
14459 * opts.c (common_handle_option): Move handling of -Werror=* to...
14460 (enable_warning_as_error): ...here.
14461 * opts.h (enable_warning_as_error): Declare.
14462 * c-decl.c (implicit_decl_warning): Unless
14463 -Wno-implicit-function-declaration is given, emit a pedwarn if
14464 -std=c99 or emit a warning if -Wimplicit-function-declaration.
14465 * c.opt (Wimplicit-function-declaration): Replace
14466 mesg_implicit_function_declaration with
14467 warn_implicit_function_declaration.
14468 * c-opts.c (c_common_handle_option):
14469 -Werror-implicit-function-declaration is exactly equal as
14470 -Werror=implicit-function-declaration.
14471 (set_Wimplicit): Replace mesg_implicit_function_declaration with
14472 warn_implicit_function_declaration.
14473 (c_common_post_options): -Wimplict-function-declaration is enabled
14474 by default by -std=c99, otherwise is disabled by default.
14475 * c-objc-common.c (c_objc_common_init): Remove flawed logic.
14476
14477 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
14478
14479 * gimplify.c (gimplify_modify_expr): During gimplification, attach a
14480 DECL on the rhs to a DECL on the lhs for debug info purposes if the
14481 former is ignored but not the latter.
14482
14483 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
14484
14485 * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
14486 is made and the reference doesn't use the alias set of its type,
14487 do not create the temporary using that type.
14488
14489 2007-02-15 Aldy Hernandez <aldyh@redhat.com>
14490
14491 * jump.c: Remove prototypes for delete_computation and
14492 delete_prior_computation.
14493
14494 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
14495
14496 * jump.c (get_label_after): Delete.
14497 (get_label_before, delete_computation, delete_jump,
14498 delete_prior_computation, follow_jumps): Move...
14499 * reorg.c (delete_computation, delete_prior_computation): ... here...
14500 (get_label_before, delete_jump): ... making these static ...
14501 (follow_jumps): ... and simplifying this since it only runs after
14502 reload.
14503 * rtl.h (get_label_after, get_label_before, delete_jump,
14504 follow_jumps): Delete prototypes.
14505
14506 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
14507
14508 * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
14509
14510 2007-02-15 Nick Clifton <nickc@redhat.com>
14511
14512 * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
14513 order to prevent it from being munged by the target.
14514
14515 2007-02-15 Uros Bizjak <ubizjak@gmail.com>
14516
14517 * config/i386/i386.md: Remove misleading comment.
14518
14519 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
14520
14521 * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
14522 reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
14523 invalid patterns.
14524
14525 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
14526
14527 * tree-sra.c (instantiate_missing_elements): Canonicalize
14528 bit-field types.
14529 (sra_build_assignment): New.
14530 (generate_copy_inout, generate_element_copy,
14531 generate_element_zero, generate_one_element_init): Use it.
14532
14533 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
14534
14535 * tree-sra.c (instantiate_missing_elements): Canonicalize
14536 bit-field types.
14537 (sra_build_assignment): New.
14538 (generate_copy_inout, generate_element_copy,
14539 generate_element_zero, generate_one_element_init): Use it.
14540
14541 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
14542
14543 * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
14544 limbo die nodes.
14545
14546 2007-02-14 Joseph Myers <joseph@codesourcery.com>
14547
14548 * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
14549 types as aggregates not scalars.
14550 * function.c (assign_stack_temp_for_type): Likewise.
14551
14552 2007-02-14 Roger Sayle <roger@eyesopen.com>
14553 Zdenek Dvorak <dvorakz@suse.cz>
14554
14555 * tree-dump.c (dump_switch_p_1): Require exact match of the option
14556 name.
14557
14558 2007-02-14 Zdenek Dvorak <dvorakz@suse.cz>
14559
14560 * passes.c (next_pass_1): Clear the next field of the copied
14561 pass structure.
14562
14563 2007-02-14 Richard Henderson <rth@redhat.com>
14564
14565 * tree-sra.c (early_sra): New.
14566 (decl_can_be_decomposed_p): Deny va_list if early_sra.
14567 (tree_sra_early, pass_sra_early): New.
14568 * tree-pass.h (pass_sra_early): Declare.
14569 * passes.c (init_optimization_passes): Use it.
14570
14571 2007-02-14 Richard Guenther <rguenther@suse.de>
14572
14573 * flags.h (issue_strict_overflow_warning): Convert to a macro.
14574
14575 2007-02-14 Dorit Nuzman <dorit@il.ibm.com>
14576
14577 PR tree-optimization/30771
14578 * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
14579 also phi nodes.
14580 (vect_analyze_operations): Induction phis can now be marked as
14581 used_in_loop.
14582 (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
14583 Update documentation accordingly.
14584
14585 2007-02-14 Nick Clifton <nickc@redhat.com>
14586
14587 * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
14588 most 3 arguments are supported.
14589 (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
14590
14591 2007-02-13 Seongbae Park <seongbae.park@gmail.com>
14592
14593 * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
14594 Ensure dst->current is valid.
14595
14596 2007-02-13 Paul Brook <paul@codesourcery.com>
14597
14598 * config.gcc: Add arm*-*-uclinux-*eabi.
14599 * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
14600 (SUBTARGET_EXTRA_LINK_SPEC): Define.
14601 (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
14602 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
14603 (LINK_SPEC): Define.
14604 (LIB_SPEC): Define.
14605 * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
14606 register.
14607 * config/arm/uclinux-eabi.h: New file.
14608 * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
14609 * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
14610 based targets.
14611
14612 2007-02-13 Ian Lance Taylor <iant@google.com>
14613
14614 * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
14615 * flags.h (warn_strict_overflow): Declare.
14616 (enum warn_strict_overflow_code): Define.
14617 (issue_strict_overflow_warning): New static inline function.
14618 * opts.c (warn_strict_overflow): New variable.
14619 (common_handle_option): Handle OPT_Wstrict_overflow and
14620 OPT_Wstrict_overflow_.
14621 * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
14622 OPT_Wall.
14623 * fold-const.c: Include intl.h.
14624 (fold_deferring_overflow_warnings): New static variable.
14625 (fold_deferred_overflow_warning): New static variable.
14626 (fold_deferred_overflow_code): New static variable.
14627 (fold_defer_overflow_warnings): New function.
14628 (fold_undefer_overflow_warnings): New function.
14629 (fold_undefer_and_ignore_overflow_warnings): New function.
14630 (fold_deferring_overflow_warnings_p): New function.
14631 (fold_overflow_warning): New static function.
14632 (make_range): Add strict_overflow_p parameter. Change all
14633 callers.
14634 (extract_muldiv, extract_muldiv_1): Likewise.
14635 (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
14636 tree_expr_nonnegative_p.
14637 (fold_negate_expr): Call fold_overflow_warning.
14638 (fold_range_test): Likewise.
14639 (fold_comparison): Likewise.
14640 (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
14641 instead of tree_expr_nonnegative_p.
14642 (tree_expr_nonnegative_warnv_p): Rename from
14643 tree_expr_nonnegative_p, add strict_overflow_p parameter.
14644 (tree_expr_nonnegative_p): New function.
14645 (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
14646 strict_overflow_p parameter.
14647 (tree_expr_nonzero_p): New function.
14648 * passes.c (verify_interpass_invariants): New static function.
14649 (execute_one_pass): Call it.
14650 * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
14651 warnings.
14652 (number_of_iterations_exit, loop_niter_by_eval): Likewise.
14653 (estimate_numbers_of_iterations): Likewise.
14654 (scev_probably_wraps_p): Likewise.
14655 * tree-ssa-ccp.c: Include "toplev.h".
14656 (evaluate_stmt): Defer fold overflow warnings until we know we are
14657 going to optimize.
14658 (struct fold_stmt_r_data): Add stmt field.
14659 (fold_stmt_r): Defer fold overflow warnings until we know we
14660 optimized.
14661 (fold_stmt): Initialize stmt field of fold_stmt_r_data.
14662 (fold_stmt_inplace): Likewise.
14663 * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
14664 (cleanup_control_expr_graph): Defer fold overflow warnings until
14665 we know we are going to optimize.
14666 * tree-cfg.c (fold_cond_expr_cond): Likewise.
14667 * tree-ssa-threadedge.c (simplify_control_stmt_condition):
14668 Likewise.
14669 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
14670 tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
14671 * tree-ssa-loop-manip.c (create_iv): Likewise.
14672 * c-typeck.c (build_conditional_expr): Likewise.
14673 (build_binary_op): Likewise.
14674 * tree-vrp.c (vrp_expr_computes_nonzero): Call
14675 tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
14676 (extract_range_from_unary_expr): Likewise.
14677 * simplify-rtx.c (simplify_const_relational_operation): Warn when
14678 assuming that signed overflow does not occur.
14679 * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
14680 * tree.h (tree_expr_nonnegative_warnv_p): Declare.
14681 (fold_defer_overflow_warnings): Declare.
14682 (fold_undefer_overflow_warnings): Declare.
14683 (fold_undefer_and_ignore_overflow_warnings): Declare.
14684 (fold_deferring_overflow_warnings_p): Declare.
14685 (tree_expr_nonzero_warnv_p): Declare.
14686 * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
14687 of warning options.
14688 (Warning Options): Document -Wstrict-overflow.
14689 * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
14690 (tree-ssa-ccp.o): Likewise.
14691 (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
14692 (fold-const.o): Depend on intl.h.
14693
14694 2007-02-13 Ian Lance Taylor <iant@google.com>
14695
14696 PR middle-end/30751
14697 * lower-subreg.c (resolve_simple_move): Decompose subregs in
14698 addresses.
14699
14700 2007-02-13 Stuart Hastings <stuart@apple.com>
14701
14702 * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
14703
14704 2007-02-13 Richard Henderson <rth@redhat.com>
14705
14706 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
14707 handled_component_p before looking for the indirect_ref.
14708
14709 2007-02-13 Richard Henderson <rth@redhat.com>
14710
14711 * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
14712 remove flags clobber.
14713 (bswapsi2): New expander, emit code for !TARGET_BSWAP.
14714 (bswaphi_lowpart): New.
14715 (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
14716 remove TARGET_BSWAP test. Delete expander of the same name.
14717
14718 * optabs.c (widen_bswap, expand_doubleword_bswap): New.
14719 (expand_unop): Use them.
14720
14721 2007-02-13 Uros Bizjak <ubizjak@gmail.com>
14722
14723 * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
14724 *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
14725 *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
14726 *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
14727 *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
14728 *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
14729 *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
14730 assembler dialect choice from asm templates.
14731
14732 2007-02-12 Richard Henderson <rth@redhat.com>
14733
14734 * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
14735 (fixuns_trunc<SSEMODEF>si2): Use it.
14736 * config/i386/sse.md (vec_setv4sf_0): Export.
14737 * config/i386/i386.c (ix86_build_const_vector): Export.
14738 (ix86_split_convert_uns_si_sse): Rename from
14739 ix86_expand_convert_uns_si_sse and rewrite as a splitter.
14740 * config/i386/i386-protos.h: Update.
14741
14742 2007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14743
14744 PR c/29521
14745 * c-typeck.c (c_finish_return): Improve warning message.
14746
14747 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14748
14749 * alias.c (find_symbolic_term): Delete unused function.
14750
14751 2007-02-12 Uros Bizjak <ubizjak@gmail.com>
14752
14753 * config/i386/i386.md (paritydi2, paritysi2): New expanders.
14754 (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
14755 (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
14756
14757 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
14758
14759 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
14760 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
14761 the function, temporarily point the debug interface to the null one.
14762
14763 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
14764
14765 * dwarf2out.c (round_up_to_align): New static function.
14766 (field_byte_offset): Use it to round the offset.
14767
14768 2007-02-12 Richard Henderson <rth@redhat.com>
14769
14770 * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
14771 (inswl_const): Export.
14772
14773 2007-02-12 Richard Henderson <rth@redhat.com>
14774
14775 * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
14776 result mode of the libcall, convert back to outmode.
14777
14778 2007-02-12 Roger Sayle <roger@eyesopen.com>
14779
14780 * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
14781 (bswapdi2): New define_expand to implement 32-bit implementation.
14782
14783 2007-02-12 Nick Clifton <nickc@redhat.com>
14784
14785 * doc/invoke.texi (Overall Options): Document --help=.
14786 * gcc.c (target_help_flag): Rename to print_subprocess_flag.
14787 (cc1_options): Pass --help= on to cc1.
14788 (display_help): Add description of --help=.
14789 (process_command): Add code to handle --help=. Allow translated
14790 --help and --target-help switches to be passed on to compiler
14791 sub-process.
14792 (main): Remove unused if statement.
14793 * opts.c (columns): Remove.
14794 (LEFT_COLUMN): Define.
14795 (wrap_help): Add columns argument.
14796 (print_filtered_help): Change parameters to be an include bitmask,
14797 an exclude bitmask, an any bitmask and the column width. Move the
14798 code to display the params list here. Add code to display the
14799 status of options rather than their descriptions if the quiet flag
14800 is not active.
14801 (print_specific_help): Change parameters to be an include bitmask,
14802 an exclude bitmask and an any bitmask. Move code to look up the
14803 column width here. Decide upon the title for an options listing.
14804 (common_handle_options): Add code to handle --help=. Adapt code
14805 for --help and --target-help to use the revised form of the
14806 print_specific_help function.
14807 (print_help): Delete.
14808 (print_param_help): Delete.
14809 (print_switch): Delete.
14810 * opts.h (cl_lang_count): Add prototype.
14811 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
14812 CL_MAX_OPTION_CLASS): New defines.
14813 * optc-gen.awk: Add construction of cl_lang_count.
14814 * c.opt: Add Warning attribute to warning options and Optimization
14815 attribute to optimization options.
14816 * common.opt: Likewise.
14817 Add --help=.
14818 Add -fhelp and -ftarget-help as aliases for the transformed --help
14819 and --target-help options.
14820 * opt-functions.awk: Add code to handle Warning and Optimization
14821 attributes.
14822
14823 2007-02-12 Richard Henderson <rth@redhat.com>
14824
14825 * config/alpha/constraints.md: New file.
14826 * config/alpha/alpha.c: Include tm-constrs.h.
14827 (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
14828 alpha_extra_constraint): Remove.
14829 (alpha_emit_conditional_branch): Use satisfies_constraint_*.
14830 * config/alpha/alpha-protos.h: Update.
14831 * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
14832 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
14833 (EXTRA_CONSTRAINT): Remove.
14834 * config/alpha/alpha.md: Include constraints.md.
14835 (adddi splitter): Use satisfies_constraint_*.
14836 * config/alpha/predicates.md (add_operand): Likewise.
14837 (sext_add_operand, addition_operation): Likewise.
14838
14839 2007-02-12 Dorit Nuzman <dorit@il.ibm.com>
14840
14841 PR tree-optimization/29145
14842 * tree-data-ref.c (base_addr_differ_p): Make us more conservative
14843 in our handling of restrict qualified pointers.
14844
14845 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14846
14847 PR middle-end/7651
14848 * doc/invoke.texi (Wunused-value): Update description.
14849 (Wextra): Delete item.
14850 * opts.c (set_Wextra): Don't use the value of Wextra to set the
14851 value of Wunused-value.
14852 * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
14853 (c_finish_stmt_expr): Don't check extra_warnings.
14854 (emit_side_effect_warnings): The caller is responsible to check
14855 warn_unused_value.
14856
14857 2007-02-11 Roger Sayle <roger@eyesopen.com>
14858 Matt Thomas <matt@3am-software.com>
14859
14860 * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
14861
14862 2007-02-11 Roger Sayle <roger@eyesopen.com>
14863
14864 * simplify-rtx.c (simplify_relational_operation_1): Optimize
14865 comparisons of POPCOUNT against zero.
14866 (simplify_const_relational_operation): Likewise.
14867
14868 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14869
14870 * doc/invoke.texi (Wextra): Delete outdated paragraph.
14871
14872 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14873
14874 * dwarf2out.c (root_type): Delete unused function.
14875
14876 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14877
14878 * genattrtab.c (contained_in_p): Delete unused function.
14879 (write_expr_attr_cache): Likewise.
14880
14881 2007-02-11 Jan Hubicka <jh@suse.cz>
14882
14883 * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
14884 previous patch.
14885
14886 2007-02-11 Steven Bosscher <steven@gcc.gnu.org>
14887
14888 * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
14889 to add the REG_EQ* note.
14890 * see.c (see_merge_one_use_extension): Likewise.
14891 * local-alloc.c (update_equiv_regs): Likewise. Also don't
14892 turn REG_EQUAL notes into REG_EQUIV notes if the target
14893 register may have more than one set.
14894 * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
14895 * gcse.c (try_replace_reg): Likewise.
14896 * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
14897 * calls.c (fixup_tail_calls): Likewise. Abort if there is
14898 more than one REG_EQUIV note.
14899 * reload1.c (gen_reload): Use set_unique_reg_note.
14900
14901 2007-02-11 Uros Bizjak <ubizjak@gmail.com>
14902
14903 * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
14904 (ix86_builtin_conversion): New function.
14905
14906 2007-02-06 Mark Mitchell <mark@codesourcery.com>
14907
14908 PR target/29487
14909 * tree.h (DECL_REPLACEABLE_P): New macro.
14910 * except.c (set_nothrow_function_flags): Likewise.
14911
14912 2007-02-11 Tehila Meyzels <tehila@il.ibm.com>
14913 Ira Rosen <irar@il.ibm.com>
14914 Dorit Nuzman <dorit@il.ibm.com>
14915
14916 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
14917 * targhooks.c (default_builtin_vectorized_conversion): New.
14918 * targhooks.h (default_builtin_vectorized_function): New declaration.
14919 * target.h (struct vectorize): Add builtin_conversion field.
14920 * tree-vectorizer.h (type_conversion_vec_info_type): New enum
14921 stmt_vec_info_type value.
14922 (vectorizable_conversion): New declaration.
14923 * tree-vect-analyze.c (vect_analyze_operations): Add
14924 vectorizable_conversion call.
14925 * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
14926 * tree-vect-transform.c (vectorizable_conversion): New function.
14927 (vect_transform_stmt): Add case for type_conversion_vec_info_type.
14928 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
14929 mode.
14930 * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
14931 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
14932 (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
14933 or ALTIVEC_BUILTIN_VCFSX.
14934
14935 2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14936
14937 PR target/30634
14938 * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
14939 CONST_DOUBLE and operand 0 is a hard register.
14940 (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
14941 memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
14942 is a hard floating-point register.
14943
14944 2007-02-10 Richard Henderson <rth@redhat.com>
14945 Jakub Jelinek <jakub@redhat.com>
14946 Alexandre Oliva <aoliva@redhat.com>
14947
14948 * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
14949 * builtin-types.def (BT_WORD): Make unsigned.
14950 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
14951 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
14952 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
14953 * c-decl.c (grokdeclarator): Don't error if !have_tls.
14954 * c-parser.c (c_parser_omp_threadprivate): Likewise.
14955 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
14956 emulated tls.
14957 * expr.c (emutls_var_address): New.
14958 (expand_expr_real_1): Expand emulated tls.
14959 (expand_expr_addr_expr_1): Likewise.
14960 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
14961 * output.h (emutls_finish): Declare.
14962 * toplev.c (compile_file): Call it.
14963 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
14964 address before wrapping in CONST.
14965 * varasm.c (emutls_htab, emutls_object_type): New.
14966 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
14967 (get_emutls_object_name, get_emutls_object_type): New.
14968 (get_emutls_init_templ_addr, emutls_decl): New.
14969 (emutls_common_1, emutls_finish): New.
14970 (assemble_variable): When emulating tls, swap decls; generate
14971 constructor for the emutls objects.
14972 (do_assemble_alias): When emulating tls, swap decl and target name.
14973 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
14974 for emulated tls.
14975 * varpool.c (decide_is_variable_needed): Look at force_output.
14976 Recurse for emulated tls.
14977 (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
14978 with decide_is_variable_needed.
14979 * emutls.c: New file.
14980 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
14981 tls_object for real tls.
14982
14983 2007-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
14984
14985 PR rtl-optimization/29599
14986 * reload1.c (eliminate_regs_in_insn): Take the destination
14987 mode into account when computing the offset.
14988
14989 2007-02-09 Stuart Hastings <stuart@apple.com>
14990 Richard Henderson <rth@redhat.com>
14991
14992 * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
14993 * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
14994 * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
14995 fixuns_truncdfhi2): New.
14996 (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
14997 (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
14998 (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
14999 (floatunssidf2): Allow nonimmediate source.
15000 * config/i386/sse.md (movdi_to_sse): New.
15001 (vec_concatv2di): Drop '*'.
15002 * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
15003 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
15004 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
15005 New.
15006 * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
15007 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
15008 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
15009 ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
15010 (ix86_build_signbit_mask): Fix decl of v, refactor to call
15011 ix86_build_const_vector.
15012 (x86_emit_floatuns): Rewrite.
15013
15014 2007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15015
15016 * genautomata.c (longest_path_length): Delete unused function.
15017 (struct state): Delete unused longest_path_length.
15018 (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
15019 (get_free_state): Delete unused.
15020
15021 2007-02-09 Jan Hubicka <jh@suse.cz>
15022
15023 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
15024 * doc/invoke.texi (inline-unit-growth): Update default value.
15025
15026 * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
15027 * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
15028 (rebuild_cgraph_edges): Likewise.
15029 * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
15030 (dump_cgraph_node): Dump frequencies.
15031 (cgraph_clone_edge): Add frequency scales.
15032 (cgraph_clone_node): Add freuqnecy.
15033 * cgraph.h (cgraph_edge): Add freuqnecy argument.
15034 (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
15035 (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
15036 * tree-pass.h (TODO_rebuild_frequencies): New constant.
15037 * cgraphunit.c (verify_cgraph_node): Verify frequencies.
15038 (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
15039 (save_inline_function_body): Likewise.
15040 * ipa-inline.c: inluce rtl.h
15041 (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
15042 (cgraph_edge_badness): Use frequencies.
15043 (cgraph_decide_recursive_inlining): Update clonning.
15044 (cgraph_decide_inlining_of_small_function): Dump frequency.
15045 * predict.c (estimate_bb_frequencies): Export.
15046 * predict.h (estimate_bb_frequencies): Declare.
15047 * tree-inline.c (copy_bb): Watch overflows.
15048 (expand_call_inline): Update call of cgraph_create_edge.
15049 (optimize_inline_calls): Use TODO flags to update frequnecies.
15050 * passes.h: Include predict.h
15051 (init_optimization_passes): Move profile ahead.
15052 (execute_function_todo): Handle TODO_rebuild_frequencies.
15053
15054 2007-02-09 Roger Sayle <roger@eyesopen.com>
15055
15056 * config/alpha/alpha.c (emit_insxl): Force the first operand of
15057 the insbl or inswl pattern into a register.
15058
15059 2007-02-09 Roger Sayle <roger@eyesopen.com>
15060
15061 * config/ia64/ia64.md (bswapdi2): New define_insn.
15062
15063 2007-02-09 Richard Henderson <rth@redhat.com>
15064
15065 * config/i386/constraints.md (Ym): New constraint.
15066 * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
15067 (movdi_1_rex64): Split sse and xmm general register moves from
15068 memory move alternatives. Use conditional register constraints.
15069 (movsf_1, movdf_integer): Likewise.
15070 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
15071 (movdf_integer_rex64): New.
15072 (pushsf_rex64): Fix output constraints.
15073 * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
15074 (sse2_stored): Likewise.
15075 (sse2_storeq_rex64): New.
15076 * config/i386/i386.c (x86_inter_unit_moves): Enable for not
15077 amd and not generic.
15078 (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
15079 for optimize_size. Remove SF/DFmode hack.
15080
15081 2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
15082
15083 * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
15084 (bit_SSE4a): New.
15085
15086 2007-02-09 Nathan Sidwell <nathan@codesourcery.com>
15087 Richard Sandiford <richard@codesourcery.com>
15088
15089 * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
15090 (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
15091 (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
15092 m68k/t-mlib to tmake_file.
15093 (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well.
15094 (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
15095 (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
15096 Allow it to be cf or m68k. Set m68k_arch_family. If that
15097 variable is not empty, add t-$m68k_arch_family to tmake_file.
15098 Add t-mlibs to tmake_file.
15099 * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
15100 * config/m68k/t-cf: New file.
15101 * config/m68k/t-m68k: Likewise.
15102 * config/m68k/t-mlibs: Likewise.
15103 * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
15104 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
15105 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
15106 * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
15107 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
15108 Delete.
15109 * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
15110 (INSTALL_LIBGCC): Delete.
15111 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
15112 * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
15113 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
15114 (M68K_MLIB_CPU): Define.
15115 * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
15116 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
15117 (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
15118
15119 2007-02-09 Zdenek Dvorak <dvorakz@suse.cz>
15120 Richard Guenther <rguenther@suse.de>
15121
15122 PR middle-end/23361
15123 * fold-const.c (fold_comparison): Handle obfuscated comparisons
15124 against INT_MIN/INT_MAX.
15125 * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
15126 file if a loop is removed.
15127
15128 2007-02-09 Joseph Myers <joseph@codesourcery.com>
15129
15130 * calls.c (store_one_arg): Pass correct alignment to
15131 emit_push_insn for non-BLKmode values.
15132 * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
15133 unaligned stack slot via a suitably aligned slot.
15134
15135 2007-02-08 DJ Delorie <dj@redhat.com>
15136
15137 * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
15138 warnings.
15139 (legal_subregs): Use unsigned char, make const.
15140 (m32c_illegal_subreg_p): Use ARRAY_SIZE. Delete unused variables.
15141
15142 2007-02-08 Paul Brook <paul@codesourcery.com>
15143
15144 * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
15145 special interworking needed.
15146
15147 2007-02-08 Harsha Jagasia <harsha.jagasia@amd.com>
15148
15149 * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
15150 conditional to __SSE2__.
15151 (Entries below should have been added to first ChangeLog
15152 entry for amdfam10 dated 2007-02-05)
15153 * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
15154 defined.
15155 * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
15156 defined.
15157 * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
15158 defined.
15159
15160 2007-02-08 DJ Delorie <dj@redhat.com>
15161
15162 * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
15163 * config/m32c/m32c.c (legal_subregs): New.
15164 (m32c_illegal_subreg_p): New.
15165 * config/m32c/predicates.md (m32c_any_operand): Use it to reject
15166 unsupported subregs of hard regs.
15167
15168 2007-02-08 Jan Hubicka <jh@suse.cz>
15169
15170 * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
15171 the same one; always update histograms.
15172
15173 2007-02-08 Diego Novillo <dnovillo@redhat.com>
15174
15175 * passes.c (init_optimization_passes): Tidy comment.
15176
15177 2007-02-08 Roger Sayle <roger@eyesopen.com>
15178
15179 * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
15180 strip zero_extend, bswap and rotates from POCOUNT's argument.
15181 <PARITY>: Likewise, we can strip not, bswap, sign_extend,
15182 zero_extend and rotates from PARITY's argument.
15183 <BSWAP>: A byte-swap followed by a byte-swap is an identity.
15184 (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
15185 of an integer constant at compile-time.
15186
15187 2007-02-08 Diego Novillo <dnovillo@redhat.com>
15188
15189 PR 30562
15190 * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
15191 Update all users.
15192 * tree-ssa-alias.c (compute_is_aliased): Remove. Update all
15193 users.
15194 (init_alias_info):
15195 * tree-ssa-live.c (remove_unused_locals): Do not remove
15196 TREE_ADDRESSABLE variables.
15197 * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
15198 * tree-ssa-operands.c (add_virtual_operand): Remove argument
15199 FOR_CLOBBER. Update all users.
15200 If VAR has an associated alias set, add a virtual operand for
15201 it if no alias is found to conflict with the memory reference.
15202
15203 2007-02-07 Jan Hubicka <jh@suse.cz>
15204 Robert Kidd <rkidd@crhc.uiuc.edu>
15205
15206 * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
15207
15208 2007-02-07 Ian Lance Taylor <iant@google.com>
15209
15210 * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
15211
15212 2007-02-07 Roger Sayle <roger@eyesopen.com>
15213
15214 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
15215 parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
15216 tablejumpdi, movsi_to_cr_one): Remove constraints from
15217 define_expand's match_operands.
15218
15219 2007-02-07 Roger Sayle <roger@eyesopen.com>
15220
15221 * global.c (compute_regsets): Move declatation of "i" inside of
15222 #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
15223
15224 2007-02-07 Jakub Jelinek <jakub@redhat.com>
15225
15226 PR c++/30703
15227 * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
15228 of INDIRECT_REF <RESULT_DECL>.
15229
15230 * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
15231
15232 2007-02-06 J"orn Rennecke <joern.rennecke@arc.com>
15233 Kaz Kojima <kkojima@gcc.gnu.org>
15234
15235 PR target/29746
15236 * config/sh/sh.c (expand_cbranchdi4): Use scratch register
15237 properly.
15238 (sh_initialize_trampoline): Add parentheses to avoid a warning.
15239
15240 2007-02-06 Zdenek Dvorak <dvorakz@suse.cz>
15241
15242 * doc/loop.texi: Document possibility not to perform disambiguation
15243 of loops with multiple latches.
15244 * cfgloopmanip.c (alp_enum_p): Removed.
15245 (add_loop): Handle subloops. Use get_loop_body_with_size.
15246 (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
15247 * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
15248 the new forwarder block.
15249 (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
15250 Handle the case latch is NULL.
15251 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
15252 modifications when marking loop exits.
15253 * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot
15254 be modified.
15255 * loop-init.c (loop_optimizer_init): Do not modify cfg. Call
15256 disambiguate_loops_with_multiple_latches.
15257 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
15258 before fix_loop_structure.
15259 * cfgloop.c: Include pointer-set.h and output.h.
15260 (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
15261 update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
15262 (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
15263 find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
15264 mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
15265 disambiguate_multiple_latches, get_loop_body_with_size,
15266 disambiguate_loops_with_multiple_latches): New functions.
15267 (flow_loop_dump): Dump multiple latch edges.
15268 (flow_loop_nodes_find): Handle loops with multiple latches.
15269 (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
15270 (glb_enum_p): Modified.
15271 (get_loop_body): Use get_loop_body_with_size.
15272 * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
15273 (AVOID_CFG_MODIFICATIONS): New constant.
15274 (disambiguate_loops_with_multiple_latches, add_loop,
15275 get_loop_body_with_size): Declare.
15276 * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
15277
15278 2007-02-06 Seongbae Park <seongbae.park@gmail.com>
15279
15280 PR inline-asm/28686
15281 * global.c (compute_regsets): New function.
15282 (global_alloc): Refactored ELIMINABLE_REGSET
15283 and NO_GLOBAL_ALLOC_REGS computation out.
15284 (rest_of_handle_global_alloc): Call compute_regsets()
15285 for non-optimizing case.
15286
15287 2007-02-06 Richard Henderson <rth@redhat.com>
15288
15289 * config/i386/constraints.md (Y2): Rename from Y.
15290 (Yi): New constraint.
15291 * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
15292 pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
15293 zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
15294 (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
15295 truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
15296 fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
15297 floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
15298 absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
15299 fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
15300 * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
15301 mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
15302 vec_extractv2si_1): Change Y constraints to Y2.
15303 * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
15304 vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
15305 Change Y constraints to Y2.
15306 (sse2_loadld): Change Y constraints to x.
15307
15308 2007-02-06 Roger Sayle <roger@eyesopen.com>
15309
15310 * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
15311 (parity<mode>2): New define_expand using rs6000_emit_parity.
15312 * config/rs6000/rs6000.c (rs6000_emit_popcount,
15313 rs6000_emit_parity): New functions.
15314 * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
15315 rs6000_emit_parity): Prototype here.
15316
15317 2007-02-06 Ian Lance Taylor <iant@google.com>
15318
15319 * lower-subreg.c (simple_move_operand): Reject CONST.
15320 (resolve_clobber): Call validate_change rather than directly
15321 assigning to XEXP (pat, 0).
15322
15323 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
15324
15325 * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
15326 (tree-ssa-reassoc.o): Add pointer-set.h dependency.
15327 (tree-cfg.o): Remove hashtab.h dependency.
15328
15329 * tree-ssa-loop-ivopts.c: Include pointer-set.h.
15330 (struct ivopts_data): Change niters to pointer_map_t.
15331 (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
15332 (niter_for_exit): Create pointer_map on demand. Change for
15333 pointer_map API.
15334 (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
15335 (free_loop_data): Destroy data->niters if created and reset field.
15336 (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
15337 (tree_ssa_iv_optimize_loop): Check for presence of stale data.
15338
15339 * tree-ssa-reassoc.c: Include pointer-set.h.
15340 (bb_rank): Change to long *.
15341 (operand_rank): Change to pointer_map_t.
15342 (find_operand_rank): Return long, -1 if not found. Declare as inline.
15343 (insert_operand_rank): Accept long.
15344 (operand_entry_hash, operand_entry_eq): Remove.
15345 (get_rank): Return long. Adjust for changes above.
15346 (init_reassoc): Change rank type to long. Adjust creation of bb_rank
15347 and operand_rank.
15348 (fini_reassoc): Delete operand_rank with pointer_map_destroy.
15349
15350 * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
15351 (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
15352 (insert_vi_for_tree): Rewrite for pointer_map API. Assert argument
15353 is not NULL.
15354 (lookup_vi_for_tree): Rewrite for pointer_map API. Return varinfo_t
15355 directly since it cannot be NULL.
15356 (get_vi_for_tree): Rewrite for pointer_map API.
15357 (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
15358 (init_alias_vars): Create vi_for_tree as pointer_map.
15359 (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
15360
15361 * tree-cfg.c: Don't include hashtab.h.
15362 (edge_to_cases): Declare as pointer_map.
15363 (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
15364 Delete.
15365 (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
15366 (start_recording_case_labels): Create edge_to_cases as pointer_map.
15367 (end_recoding_case_labels): Cleanup edge_to_cases manually before
15368 destroying it.
15369 (record_switch_edge): Delete.
15370 (get_cases_for_edge): Adjust for pointer_map API, inline
15371 record_switch_edge (rewritten for new API), remove goto.
15372
15373 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
15374
15375 * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
15376 * tree-nested.c: Include pointer-set.h.
15377 (var_map_elt, var_map_eq, var_map_hash): Delete.
15378 (struct nesting_info): Remove GTY marker. Change the two htab_t's
15379 to pointer_map_t's.
15380 (nesting_info_bitmap_obstack): New.
15381 (lookup_field_for_decl): Adjust for pointer_map API.
15382 (lookup_tramp_for_decl): Adjust for pointer_map API.
15383 (get_nonlocal_debug_decl): Adjust for pointer_map API.
15384 (get_local_debug_decl): Adjust for pointer_map API.
15385 (convert_nl_goto_reference): Adjust for pointer_map API.
15386 (convert_nl_goto_receiver): Adjust for pointer_map API.
15387 (create_nesting_tree): Create outside GGC space. Create bitmap on
15388 the new obstack. Create field_map and var_map as pointer_maps.
15389 (free_nesting_tree): Adjust for changes to create_nesting_tree.
15390 (root): Delete.
15391 (lower_nested_functions): Move root here, no need to NULL it.
15392 Initialize and release the obstack.
15393
15394 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
15395
15396 * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
15397 Remove prototypes and make them non-static.
15398 (struct tree_int_map): Remove.
15399 * tree.h (struct tree_int_map): Move here, turning TO into an
15400 unsigned int.
15401 (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
15402
15403 * tree.h (TREE_COMPLEXITY): Remove.
15404 (struct tree_exp): Remove complexity field.
15405 * tree.c (build1_stat): Don't set it.
15406
15407 2007-02-06 Dorit Nuzman <dorit@il.ibm.com>
15408 Victor Kaplansky <victork@il.ibm.com>
15409
15410 * tree-vectorizer.c (vect_is_simple_use): Support induction.
15411 (vect_is_simple_reduction): Support reduction with induction as
15412 one of the operands.
15413 (vect_is_simple_iv_evolution): Fix formatting.
15414 * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
15415 formatting. Don't mark induction phis for vectorization.
15416 (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
15417 * tree-vect-transform.c (get_initial_def_for_induction): New function.
15418 (vect_get_vec_def_for_operand): Support induction.
15419 (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
15420 induction case.
15421 (vectorizable_reduction): Support reduction with induction as one of
15422 the operands.
15423 (vectorizable_type_demotion): Use def-type of stmt argument rather
15424 than dummy def-type.
15425
15426 * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
15427 flag_tree_scev_cprop.
15428 * common.opt (tree-scev-cprop): New flag.
15429
15430 * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
15431 call to vect_get_new_vect_var.
15432
15433 2007-02-06 Ira Rosen <irar@il.ibm.com>
15434
15435 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
15436 vectype is not NULL.
15437 (vect_pattern_recog_1): Likewise.
15438
15439 2007-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15440
15441 * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
15442 (fold_negate_expr): Likewise.
15443
15444 2007-02-05 Alexandre Oliva <aoliva@redhat.com>
15445
15446 PR debug/30189
15447 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
15448 even if cv-qualification is the same.
15449
15450 2007-02-05 Geoffrey Keating <geoffk@apple.com>
15451
15452 * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
15453 __enable_execute_stack on completion.
15454
15455 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15456
15457 * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
15458 athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
15459 athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
15460 athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
15461 athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
15462 athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
15463 athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
15464 athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
15465
15466 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15467
15468 * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
15469 cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
15470 swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
15471 fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
15472 x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
15473 floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
15474 floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
15475 mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
15476 umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
15477 umuldi3_highpart_rex64, umulsi3_highpart_insn,
15478 umulsi3_highpart_zext, smuldi3_highpart_rex64,
15479 smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
15480 x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
15481 sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
15482 sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
15483 sqrtextenddfxf2_i387): Added amdfam10_decode.
15484
15485 * config/i386/athlon.md (athlon_idirect_amdfam10,
15486 athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
15487 athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
15488 athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
15489 athlon_ivector_store_amdfam10): New define_insn_reservation.
15490 (athlon_idirect_loadmov, athlon_idirect_movstore): Added
15491 amdfam10.
15492
15493 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15494
15495 * config/i386/athlon.md (athlon_call_amdfam10,
15496 athlon_pop_amdfam10, athlon_lea_amdfam10): New
15497 define_insn_reservation.
15498 (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
15499 athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
15500 athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
15501
15502 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15503
15504 * config/i386/athlon.md (athlon_sseld_amdfam10,
15505 athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
15506 athlon_mmxssest_short_amdfam10): New define_insn_reservation.
15507
15508 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15509
15510 * config/i386/athlon.md (athlon_sseins_amdfam10): New
15511 define_insn_reservation.
15512 * config/i386/i386.md (sseins): Added sseins to define_attr type
15513 and define_attr unit.
15514 * config/i386/sse.md: Set type attribute to sseins for insertq
15515 and insertqi.
15516
15517 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15518
15519 * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
15520 ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
15521 ssecomi_load_amdfam10, ssecomi_amdfam10,
15522 sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
15523 define_insn_reservation.
15524 (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
15525
15526 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15527
15528 * config/i386/athlon.md (cvtss2sd_load_amdfam10,
15529 cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
15530 cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
15531 cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
15532 cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
15533 cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
15534 define_insn_reservation.
15535
15536 * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
15537 cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
15538 cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
15539 cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
15540 cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
15541
15542 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15543
15544 * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
15545 athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
15546 athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
15547 (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
15548 athlon_ssemul_load_k8): Added amdfam10.
15549
15550 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15551
15552 * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
15553 (x86_sse_unaligned_move_optimal): New variable.
15554
15555 * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
15556 m_AMDFAM10.
15557 (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
15558 for unaligned vector SSE double/single precision loads for AMDFAM10.
15559
15560 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15561
15562 * config/i386/i386.h (TARGET_AMDFAM10): New macro.
15563 (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
15564 Define TARGET_CPU_DEFAULT_amdfam10.
15565 (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
15566 (processor_type): Add PROCESSOR_AMDFAM10.
15567
15568 * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
15569 processor_type in config/i386/i386.h.
15570 Enable imul peepholes for TARGET_AMDFAM10.
15571
15572 * config.gcc: Add support for --with-cpu option for amdfam10.
15573
15574 * config/i386/i386.c (amdfam10_cost): New variable.
15575 (m_AMDFAM10): New macro.
15576 (m_ATHLON_K8_AMDFAM10): New macro.
15577 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
15578 x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
15579 x86_promote_QImode, x86_integer_DFmode_moves,
15580 x86_partial_reg_dependency, x86_memory_mismatch_stall,
15581 x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
15582 x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
15583 x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
15584 x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
15585 Enable/disable for amdfam10.
15586 (override_options): Add amdfam10_cost to processor_target_table.
15587 Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
15588 processor_alias_table.
15589 (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
15590 (ix86_adjust_cost): Add code for amdfam10.
15591
15592 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
15593
15594 * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
15595 instruction set feature flag. Add new (-mpopcnt) flag for popcnt
15596 instruction. Add new SSE4A (-msse4a) instruction set feature flag.
15597 * config/i386/i386.h: Add builtin definition for SSE4A.
15598 * config/i386/i386.md: Add support for ABM instructions
15599 (popcnt and lzcnt).
15600 * config/i386/sse.md: Add support for SSE4A instructions
15601 (movntss, movntsd, extrq, insertq).
15602 * config/i386/i386.c: Add support for ABM and SSE4A builtins.
15603 Add -march=amdfam10 flag.
15604 * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
15605 * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
15606 and amdfam10.
15607 * doc/extend.texi: Add documentation for SSE4A builtins.
15608
15609 2007-02-05 Bob Wilson <bob.wilson@acm.org>
15610
15611 * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
15612
15613 2007-02-05 Richard Guenther <rguenther@suse.de>
15614
15615 * tree-vectorizer.h (vectorizable_function): Add argument type
15616 argument, change return type.
15617 * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
15618 * tree-vect-transform.c (vectorizable_function): Handle extra
15619 argument, return vectorized function decl.
15620 (build_vectorized_function_call): Remove.
15621 (vectorizable_call): Handle calls with result and argument types
15622 differing. Handle loop vectorization factor correctly.
15623 * targhooks.c (default_builtin_vectorized_function): Adjust for
15624 extra argument.
15625 * targhooks.h (default_builtin_vectorized_function): Likewise.
15626 * target.h (builtin_vectorized_function): Add argument type
15627 argument.
15628 * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
15629 extra argument, allow vectorizing of lrintf.
15630 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
15631 documentation of target hook.
15632
15633 2007-02-05 Hans-Peter Nilsson <hp@axis.com>
15634
15635 PR target/30665
15636 * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
15637 ("*andhi_clear", andu (casesi+45)): For size-changed operand where
15638 memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
15639
15640 2007-02-05 Roger Sayle <roger@eyesopen.com>
15641
15642 * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
15643 BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
15644 <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
15645 * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
15646 before canonicalizing sincos to cexpi.
15647 (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
15648
15649 2007-02-05 Roger Sayle <roger@eyesopen.com>
15650
15651 * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
15652 Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
15653 (alpha_init_builtins): Use alpha_add_builtins to process tables.
15654
15655 2007-02-05 Roger Sayle <roger@eyesopen.com>
15656
15657 * mips-tfile.c (initialize_init_file): Correct endianness test.
15658
15659 2007-02-05 Kazu Hirata <kazu@codesourcery.com>
15660
15661 * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
15662 the 'y' constraint.
15663
15664 2007-02-05 Richard Sandiford <richard@codesourcery.com>
15665
15666 * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
15667 saves in a PARALLEL before the register assignments.
15668
15669 2007-02-05 Richard Sandiford <richard@codesourcery.com>
15670
15671 * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
15672 DWARF_FRAME_RETURN_COLUMN to be a general register.
15673 * dwarf2out.c (init_return_column_size): New function, split from...
15674 (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both
15675 DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
15676 to be nongeneral registers.
15677 * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
15678 integer registers.
15679 (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
15680 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
15681
15682 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
15683
15684 * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
15685
15686 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
15687
15688 * cfgloopmanip.c (loop_delete_branch_edge): Removed.
15689 (remove_path): Use can_remove_branch_p and remove_branch instead
15690 of loop_delete_branch_edge.
15691 * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
15692 (tree_transform_and_unroll_loop): Remove dead branches immediately.
15693 Update profile using scale_dominated_blocks_in_loop.
15694 * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
15695 * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
15696 (can_remove_branch_p, remove_branch): Declare.
15697 * tree-cfg.c (tree_can_remove_branch_p): New function.
15698 (tree_cfg_hooks): Add tree_can_remove_branch_p.
15699 * cfgrtl.c (rtl_can_remove_branch_p): New function.
15700 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
15701
15702 2007-02-05 Jan Hubicka <jh@suse.cz>
15703
15704 PR middle-end/30696
15705 * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
15706 nodes in cgraph, don't remove offline copy of the function.
15707
15708 2007-02-04 Jan Hubicka <jh@suse.cz>
15709
15710 * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
15711 vectors might cause maybe_lookup_element_for_expr to be called
15712 on non-sra-candidate.
15713
15714 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
15715
15716 * config/bfin/bfin-modes.def, config/bfin/bfin.c,
15717 config/bfin/bfin.md, config/bfin/predicates.md: Follow
15718 spelling conventions.
15719
15720 2007-02-04 Richard Guenther <rguenther@suse.de>
15721
15722 PR middle-end/30636
15723 * fold-const.c (try_move_mult_to_index): Make sure to not
15724 overflow one dimension of a multi-dimensional array access.
15725
15726 2007-02-04 Jan Hubicka <jh@suse.cz>
15727
15728 * passes.c (init_optimization_passes): Reindent.
15729
15730 2007-02-04 Jan Hubicka <jh@suse.cz>
15731 Eric Botcazou <ebotcazou@adacore.com>
15732
15733 * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
15734 (execute_fixup_cfg): Break out the abnormal goto code.
15735 * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
15736 (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
15737 (optimize_inline_calls): Call make_nonlocal_label_edges.
15738
15739 2007-02-04 Jan Hubicka <jh@suse.cz>
15740
15741 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
15742 true when something was changed.
15743 (rename_ssa_copies): When something was changed, do
15744 TODO_remove_unused_locals.
15745 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
15746 add TODO_remove_unused_locals when instruction was removed.
15747
15748 2007-02-04 Jan Hubicka <jh@suse.cz>
15749
15750 * ipa-inline.c (try_inline): Improve debug output; work on already
15751 inline edges too.
15752 (cgraph_decide_inlining_incrementally): Indent; improve debug output;
15753 call try_inline for already inlined edges too when flattening;
15754 inline also functions that make callee growth but overall unit size
15755 reduce.
15756
15757 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
15758
15759 * config/m32c/bitops.md, config/m32c/jump.md,
15760 config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
15761 config/m32r/m32r.h, config/m32r/m32r.md,
15762 config/m32r/predicates.md, config/m68hc11/larith.asm,
15763 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
15764 config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
15765 config/mips/mips-protos.h, config/mips/mips.c,
15766 config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
15767 config/mn10300/mn10300.h, config/mn10300/predicates.md,
15768 config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
15769 spelling conventions.
15770
15771 * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
15772 Follow spelling conventions.
15773
15774 2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
15775
15776 * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
15777 warn about C++0x compatibility.
15778
15779 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
15780
15781 * config/h8300/h8300.c, config/h8300/h8300.h,
15782 config/h8300/h8300.md: Follow spelling conventions.
15783
15784 2007-02-03 Uros Bizjak <ubizjak@gmail.com>
15785
15786 PR middle-end/30667
15787 * combine.c (try_combine): Do not substitute source operand
15788 with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
15789
15790 2007-02-03 Jan Hubicka <jh@suse.cz>
15791
15792 PR gcov-profile/30650
15793 * value-prof.c (stringop_block_profile): Fix handling of size counter;
15794 do not divide by zero for never executed counters.
15795 (tree_find_values_to_profile): Fix counters.
15796 * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
15797
15798 2007-02-03 Ian Lance Taylor <iant@google.com>
15799
15800 * lower-subreg.c (simple_move_operand): New static function,
15801 broken out of simple_move. Reject LABEL_REF, SYMBOL_REF, and HIGH
15802 operands.
15803 (simple_move): Call simple_move_operand.
15804 (find_decomposable_subregs): Add special handling of MEMs.
15805 (can_decompose_p): Rename from cannot_decompose_p. Reverse
15806 meaning of return value. If we see a hard register, test whether
15807 it can store a word_mode value. Change all callers.
15808
15809 2007-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15810
15811 * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
15812 ftrapv insns and expanders.
15813 (subdi3): Change define_expand operand 1 to arith11_operand, and
15814 operand 2 to reg_or_0_operand. Change constraints of 64-bit insn
15815 pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to
15816 handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
15817 respectively.
15818
15819 PR middle-end/30174
15820 * varasm.c (notice_global_symbol): Treat global objects as weak when
15821 flag_shlib is true.
15822
15823 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15824
15825 * emit-rtl.c (dconstpi): Delete.
15826 (dconstsqrt2): New.
15827 (init_emit_once): Delete dconstpi and init dconstsqrt2.
15828 * real.h (dconstpi): Delete.
15829 (dconstsqrt2): New.
15830 * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
15831 (fold_builtin_hypot): Likewise.
15832
15833 2007-02-03 Tom Tromey <tromey@redhat.com>
15834
15835 PR driver/30246
15836 * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
15837 -gcoff3, -gxcoff3, -gvms3 implies -dD.
15838
15839 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
15840
15841 * c-decl.c, config/avr/avr.c, config/avr/avr.h,
15842 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
15843 config/mn10300/mn10300.c, config/pdp11/pdp11.h,
15844 config/rs6000/cell.md, config/rs6000/darwin.h,
15845 config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
15846 config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
15847 jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
15848 tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
15849 typos. Follow spelling conventions.
15850 * doc/invoke.texi: Follow spelling conventions.
15851
15852 2007-02-03 Roger Sayle <roger@eyesopen.com>
15853
15854 * simplify-rtx.c (simplify_relational_operation_1): Implement some
15855 canonicalization transformations that attempt to simplify integer
15856 constant comparisons to become comparisons against zero.
15857
15858 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15859
15860 * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
15861 fabs(x)*sqrt(2).
15862 * fold-const.c (fold_binary): Fix comment typos. Fold complex
15863 (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y).
15864
15865 2007-02-02 Mike Stump <mrs@apple.com>
15866
15867 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
15868 * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
15869 (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
15870 generate a branch island.
15871
15872 2007-02-02 Bob Wilson <bob.wilson@acm.org>
15873
15874 * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
15875 (xtensa_legitimate_address_p): New.
15876 (xtensa_legitimize_address): New.
15877 (xtensa_output_addr_const_extra): New.
15878 * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
15879 (BASE_REG_P): New.
15880 (REG_OK_FOR_BASE_P): Use BASE_REG_P.
15881 (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
15882 (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
15883 (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
15884 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
15885 (xtensa_legitimize_address): New.
15886 (xtensa_output_addr_const_extra): New.
15887
15888 2007-02-02 Steve Ellcey <sje@cup.hp.com>
15889
15890 * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
15891
15892 2007-02-02 Ian Lance Taylor <iant@google.com>
15893
15894 * expmed.c (expand_divmod): Add comment.
15895
15896 2007-02-02 Kazu Hirata <kazu@codesourcery.com>
15897
15898 * emit-rtl.c (renumber_insns): Remove.
15899 * flags.h: Remove the extern for flag_renumber_insns.
15900 * rtl.h: Remove the prototype for renumber_insns.
15901 * toplev.c (flag_renumber_insns): Remove.
15902
15903 2007-02-02 Hui-May Chang <hm.chang@apple.com>
15904
15905 Revert for x86 darwin:
15906 2005-06-19 Uros Bizjak <uros@kss-loka.si>
15907
15908 * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
15909 code before the following patch under TARGET_MACHO.
15910 (ix86_function_value_regno_p): Likewise.
15911
15912 2007-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15913
15914 * fold-const.c (negate_expr_p, fold_negate_expr): Handle
15915 COMPLEX_EXPR.
15916
15917 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
15918
15919 PR target/29682
15920 * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
15921 loads to general or fp registers. Add comments.
15922 * config/ia64/ia64.md (reg_pred_prefix): Add comment.
15923
15924 2007-02-02 Paolo Bonzini <bonzini@gnu.org>
15925
15926 * pointer-set.c (insert_aux): Only return insertion slot.
15927 (pointer_set_insert): Adjust.
15928 (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
15929 pointer_map_destroy, pointer_map_insert, pointer_map_contains,
15930 pointer_map_traverse): New.
15931 * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
15932 pointer_map_create, pointer_map_destroy, pointer_map_insert,
15933 pointer_map_contains, pointer_map_traverse): Declare.
15934
15935 2007-02-02 Jakub Jelinek <jakub@redhat.com>
15936
15937 PR middle-end/30473
15938 * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
15939 sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
15940
15941 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
15942
15943 * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
15944
15945 (struct _dep): New type.
15946 (dep_t): New typedef.
15947 (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
15948 (DEP_STATUS): New access macro. The macro with the same name was
15949 renamed to DEP_LINK_STATUS.
15950 (dep_init): Declare function
15951
15952 (struct _dep_link): New type.
15953 (dep_link_t): New typedef.
15954 (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
15955 (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
15956 (DEP_LINK_STATUS): New macro.
15957 (debug_dep_links): New debug function.
15958
15959 (struct _deps_list): New type.
15960 (deps_list_t): New typedef.
15961 (DEPS_LIST_FIRST): New access macro.
15962 (FOR_EACH_DEP_LINK): New cycle macro.
15963 (create_deps_list, free_deps_list, delete_deps_list): Declare
15964 functions.
15965 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
15966 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
15967 (copy_deps_list_change_con): Ditto.
15968
15969 (move_dep_link): Declare function.
15970
15971 (struct _dep_node): New type.
15972 (dep_node_t): New typedef.
15973 (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
15974
15975 (struct haifa_insn_data.back_deps): New field to hold backward
15976 dependencies of the insn.
15977 (struct haifa_insn_data.depend): Rename to forw_deps. Change its type
15978 to deps_list_t.
15979 (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
15980 Change its type to deps_list_t.
15981 (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
15982 (INSN_DEPEND): Rename to INSN_FORW_DEPS.
15983 (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
15984
15985 (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead.
15986
15987 (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment.
15988
15989 (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
15990 and all callers.
15991 (dep_cost): Declare.
15992
15993 * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
15994 (ds_to_dk, dk_to_ds): New functions.
15995
15996 (init_dep_1): New static function.
15997 (init_dep): New function.
15998 (copy_dep): New static function.
15999
16000 (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
16001 functions.
16002 (detach_dep_link): New static function.
16003 (move_dep_link): New function.
16004
16005 (dep_links_consistent_p, dump_dep_links): New static functions.
16006 (debug_dep_links): New debugging function.
16007
16008 (deps_obstack, dl_obstack, dn_obstack): New static variables.
16009
16010 (alloc_deps_list, init_deps_list): New static functions.
16011 (create_deps_list): New function.
16012 (clear_deps_list): New static function.
16013 (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
16014 (deps_list_consistent_p, dump_deps_list): New static functions.
16015 (debug_deps_list): New function.
16016 (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
16017 functions.
16018 (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
16019
16020 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
16021 use new scheduler dependencies lists.
16022 (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
16023 (sched_analyze): Ditto. Initialize dependencies lists.
16024 (add_forw_dep, compute_forward_dependences): Update to use new
16025 scheduler dependencies lists.
16026
16027 (init_dependency_caches): Init deps_obstack.
16028 (free_dependency_caches): Free deps_obstack.
16029
16030 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
16031 new scheduler dependencies lists.
16032 (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
16033 (add_back_forw_dep, delete_back_forw_dep): Ditto.
16034
16035 * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
16036 Update to use new scheduler dependencies lists.
16037 (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
16038 (debug_dependencies): Ditto.
16039 (schedule_region): Update comments.
16040
16041 * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
16042 scheduler dependencies lists.
16043 (schedule_ebb): Update comments.
16044
16045 * rtl.def (DEPS_LIST): Remove.
16046
16047 * lists.c (unused_deps_list): Remove.
16048 (free_list): Update assertions.
16049
16050 (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
16051 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
16052
16053 * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
16054 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
16055
16056 * haifa-sched.c (comments): Update.
16057 (insn_cost1): Remove. Inline the code into insn_cost ().
16058 (insn_cost): Update to use new scheduler dependencies lists. Move
16059 processing of the dependency cost to dep_cost ().
16060 (dep_cost): New function. Use it instead of insn_cost () when
16061 evaluating cost of the dependency. Use compatible interface to
16062 interact with the target.
16063 (priority): Update to use new scheduler dependencies lists.
16064 (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn
16065 with greater number of insns that depend on the insn.
16066 (schedule_insn): Update to use new scheduler dependencies lists. Add
16067 code to free backward dependencies lists. Inline and optimize code
16068 from resolve_dep () - see PR28071.
16069 (ok_for_early_queue_removal): Update to use new scheduler dependencies
16070 lists. Update call to targetm.sched.is_costly_dependence hook.
16071
16072 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
16073 scheduler dependencies lists.
16074
16075 (resolve_dep): Remove. Move the logic to schedule_insn ().
16076 (init_h_i_d): Initialize dependencies lists.
16077
16078 (process_insn_depend_be_in_spec): Rename to
16079 process_insn_forw_deps_be_in_spec. Update to use new scheduler
16080 dependencies lists.
16081 (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
16082 Update to use new scheduler dependencies lists.
16083 (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
16084
16085 * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
16086 new scheduler dependencies lists.
16087 (build_intra_loop_deps): Ditto.
16088
16089 * target.h (struct _dep): Declare to use in
16090 gcc_target.sched.is_costly_dependence.
16091 (struct gcc_target.sched.adjust_cost): Fix typo.
16092 (struct gcc_target.sched.is_costly_dependence): Change signature to
16093 use single dep_t parameter instead of an equivalent triad.
16094 (struct gcc_target.sched.adjust_cost_2): Remove.
16095
16096 * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
16097
16098 * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
16099
16100 * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
16101 documentation.
16102 (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
16103
16104 * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
16105 (REG_DEP_TRUE): Document.
16106
16107 * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
16108 Change signature to correspond to the targetm.sched.adjust_cost hook.
16109 Update use in TARGET_SCHED_ADJUST_COST_2.
16110 (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
16111 (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
16112 new scheduler dependencies lists.
16113 (ia64_gen_check): Ditto.
16114
16115 * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
16116 scheduler dependencies lists.
16117
16118 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
16119 signature to correspond to the targetm.sched.is_costly_dependence hook.
16120 (is_costly_group): Update to use new scheduler dependencies lists.
16121
16122 * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
16123 instead of INSN_COST () macro.
16124
16125 2007-02-01 Ian Lance Taylor <iant@google.com>
16126
16127 * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
16128
16129 2007-02-01 Guy Martin <gmsoft@gentoo.org>
16130
16131 * pa.md (tp_load): Correct mfctl instruction syntax.
16132
16133 2007-02-01 Geoffrey Keating <geoffk@apple.com>
16134
16135 * config/rs6000/rs6000.c (rs6000_stack_info): Correct
16136 altivec_padding_size calculation on AIX. Improve comment, add
16137 assert to verify that it's right.
16138
16139 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
16140 64-bit.
16141
16142 2007-2-01 Seongbae Park <seongbae.park@gmail.com>
16143
16144 PR inline-asm/28686
16145 * global.c (global_alloc): Add mising initialization of
16146 ELIMINABLE_REGSET.
16147
16148 2007-02-01 Roger Sayle <roger@eyesopen.com>
16149
16150 * alias.c (init_alias_analysis): Correct whitespace.
16151 * bb-reorder.c (fix_edges_for_rarely_executed_code,
16152 partition_hot_cold_basic_blocks): Likewise.
16153 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
16154 expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
16155 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
16156 fold_builtin_snprintf_chk, fold_builtin_printf,
16157 fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
16158 do_mpfr_arg3, do_mpfr_sincos): Likewise.
16159 * cfgcleanup.c (cleanup_cfg): Likewise.
16160 * cfgexpand.c (tree_expand_cfg): Likewise.
16161 * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
16162 * function.c (get_next_funcdef_no): Likewise.
16163 * gengtype.c (main): Likewise.
16164 * genmodes.c (main): Likewise.
16165 * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
16166 * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
16167 * ifcvt.c (noce_emit_move_insn): Likewise.
16168 * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
16169 Likewise.
16170 * stor-layout.c (get_best_mode): Likewise.
16171 * tree-ssa-loop-niter.c (get_val_for): Likewise.
16172 * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
16173 scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
16174 perform_var_substitution, solve_graph): Likewise.
16175 * tree-vrp.c (vrp_finalize): Likewise.
16176
16177 2007-02-01 Ian Lance Taylor <iant@google.com>
16178
16179 * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
16180 high part of a paradoxical subreg, return a constant zero.
16181
16182 2007-02-01 Zdenek Dvorak <dvorakz@suse.cz>
16183
16184 * toplev.c (lang_dependent_init): Call init_set_costs.
16185 * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
16186
16187 2007-02-01 Richard Guenther <rguenther@suse.de>
16188
16189 PR middle-end/30656
16190 * fold-const.c (fold_negate_expr): Allow negating a
16191 constant if overflow does not change.
16192
16193 2007-02-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16194
16195 * doc/c-tree.texi (Expression trees): Improve markup.
16196 * doc/tm.texi (Register Classes, Addressing Modes)
16197 (Floating Point): Fix spacing after abbreviations. Fix some
16198 typos.
16199
16200 2007-02-01 Ben Elliston <bje@au.ibm.com>
16201
16202 * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
16203 * doc/contrib.texi: Likewise.
16204 * doc/install.texi: Likewise.
16205
16206 2007-01-31 Richard Henderson <rth@redhat.com>
16207 Ian Lance Taylor <iant@google.com>
16208
16209 * lower-subreg.c: New file.
16210 * rtl.def (CONCATN): Define.
16211 * passes.c (init_optimization_passes): Add pass_lower_subreg and
16212 pass_lower_subreg2.
16213 * emit-rtl.c (update_reg_offset): New static function, broken out
16214 of gen_rtx_REG_offset.
16215 (gen_rtx_REG_offset): Call update_reg_offset.
16216 (gen_reg_rtx_offset): New function.
16217 * regclass.c: Revert patch of 2006-03-05, restoring
16218 reg_scan_update.
16219 (clear_reg_info_regno): New function.
16220 * dwarf2out.c (concatn_loc_descriptor): New static function.
16221 (loc_descriptor): Handle CONCATN.
16222 * common.opt (fsplit_wide_types): New option.
16223 * opts.c (decode_options): Set flag_split_wide_types when
16224 optimizing.
16225 * timevar.def (TV_LOWER_SUBREG): Define.
16226 * rtl.h (gen_reg_rtx_offset): Declare.
16227 (reg_scan_update): Declare.
16228 * regs.h (clear_reg_info_regno): Declare.
16229 * tree-pass.h (pass_lower_subreg): Declare.
16230 (pass_lower_subreg2): Declare.
16231 * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
16232 (Optimize Options): Add -fsplit-wide-types to -O1 list. Document
16233 -fsplit-wide-types.
16234 * doc/rtl.texi (Regs and Memory): Document concat and concatn.
16235 * Makefile.in (OBJS-common): Add lower-subreg.o.
16236 (lower-subreg.o): New target.
16237
16238 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
16239
16240 * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
16241
16242 2007-01-31 Anatoly Sokolov <aesok@post.ru>
16243
16244 PR target/19087
16245 * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
16246
16247 2007-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16248
16249 PR middle-end/29335
16250 * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
16251
16252 2007-01-31 Zdenek Dvorak <dvorakz@suse.cz>
16253
16254 * cfgloop.h: Include vec-prim.h.
16255 (enum li_flags): Remove LI_ONLY_OLD.
16256 (loop_iterator): Changed.
16257 (fel_next, fel_init): Iterate over loop tree.
16258 (FOR_EACH_LOOP_BREAK): New macro.
16259 * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
16260 FOR_EACH_LOOP.
16261 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
16262 * modulo-sched.c (sms_schedule): Ditto.
16263 * tree-vectorizer.c (vectorize_loops): Ditto.
16264 * doc/loop.texi: Update information on loop numbering and behavior of
16265 FOR_EACH_LOOP wrto new loops.
16266 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
16267 add_to_evolution_1): Test nestedness of loops instead of comparing
16268 their numbers.
16269 * tree-chrec.c (chrec_fold_plus_poly_poly,
16270 chrec_fold_multiply_poly_poly, chrec_evaluate,
16271 hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
16272 reset_evolution_in_loop): Ditto.
16273 * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
16274
16275 2007-01-31 Dirk Mueller <dmueller@suse.de>
16276
16277 * c-common.c (warn_about_parentheses): Separate warning about
16278 un-parenthized sequence of comparison operators from the one
16279 which is supposed to warn about x <= y <= z.
16280
16281 2007-01-31 Uros Bizjak <ubizjak@gmail.com>
16282
16283 * optabs.h (enum optab_index): Add new OTI_isinf.
16284 (isinf_optab): Define corresponding macro.
16285 * optabs.c (init_optabs): Initialize isinf_optab.
16286 * genopinit.c (optabs): Implement isinf_optab using isinf?f2
16287 patterns.
16288 * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
16289 (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
16290 using isinf_optab.
16291 (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
16292 expand_builtin_interclass_mathfn.
16293 * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
16294 * config/i386/i386.md (UNSPEC_FXAM): New constant.
16295 (fxam<mode>2_i387): New insn pattern.
16296 (isinf<mode>2) New expander to implement isinf, isinff and isinfl
16297 built-in functions as x87 inline asm.
16298
16299 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
16300
16301 * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
16302
16303 2007-01-30 Eric Christopher <echristo@apple.com>
16304
16305 * config.gcc: Add geode.
16306
16307 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
16308
16309 * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
16310 ipa-inline.c, tree-profile.c, tree-ssa-live.c,
16311 tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
16312 value-prof.c: Fix comment typos.
16313
16314 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16315
16316 PR c++/24745
16317 * doc/invoke.texi (Wpointer-arith): Document warning.
16318
16319 2007-01-30 Janis Johnson <janis187@us.ibm.com>
16320
16321 * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
16322 the list of discrepancies from the draft TR.
16323
16324 2007-01-30 Dirk Mueller <dmueller@suse.de>
16325
16326 PR c++/30601
16327 * doc/invoke.texi (-Wreturn-type): Update description to
16328 match new behavior.
16329
16330 2007-01-30 Richard Sandiford <richard@codesourcery.com>
16331
16332 * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
16333
16334 2007-01-30 Uros Bizjak <ubizjak@gmail.com>
16335
16336 * builtins.c (expand_builtin_int_interclass_roundingfn): New function
16337 to handle optabs that operate on floating point input argument and
16338 output to integer output.
16339 (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
16340 (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
16341 (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
16342 expand_builtin_interclass_mathfn ().
16343 * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
16344 (ilogbsi2): Remove.
16345 (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
16346 ilogbl built-in functions as x87 intrinsics.
16347
16348 2007-01-30 Richard Guenther <rguenther@suse.de>
16349
16350 PR middle-end/27657
16351 * dwarf2out.c (reference_to_unused): Query varpool if the
16352 variable was output.
16353
16354 2007-01-30 Richard Guenther <rguenther@suse.de>
16355
16356 PR middle-end/30313
16357 * passes.c (execute_one_pass): Reset in_gimple_form to not
16358 confuse non-unit-at-a-time mode.
16359
16360 2007-01-29 Roger Sayle <roger@eyesopen.com>
16361 Richard Guenther <rguenther@suse.de>
16362
16363 * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
16364 avoid undefined behaviour on overflow. Use force_fit_type_double
16365 to construct the constant with the specified TREE_OVERFLOW.
16366
16367 2007-01-29 Janis Johnson <janis187@us.ibm.com>
16368
16369 * config/dfp-bit.c: Add parameterized support for fp exceptions.
16370 * config/dfp-bit.h: Ditto.
16371
16372 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16373
16374 * c-decl.c (pop_scope): Replace warnings with call to
16375 warn_for_unused_label.
16376 * c-common.h (warn_for_unused_label): Declare.
16377 * c-common.c (warn_for_unused_label): Define.
16378
16379 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16380
16381 * tree-optimize.c (update_inlined_to_pointers): Delete unused
16382 function.
16383
16384 2007-01-29 Janis Johnson <janis187@us.ibm.com>
16385
16386 * Makefile.in (USER_H): Remove decfloat.h.
16387 * ginclude/decfloat.h: Delete, moving contents to ...
16388 * ginclude/float.h: Add support for decimal floating point,
16389 guarded by __STDC_WANT_DEC_FP__.
16390
16391 2007-01-29 Mike Stump <mrs@apple.com>
16392
16393 * doc/gccint.texi (Top): Rename Loop Representation to Loop
16394 Analysis and Representation to resolve case insensitive conflict.
16395 * doc/loop.texi (Loop Analysis and Representation): Likewise.
16396
16397 2007-01-28 Daniel Berlin <dberlin@dberlin.org>
16398
16399 * tree.h (struct tree_memory_tag): Add aliases member.
16400 (MTAG_ALIASES): New macro.
16401 * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
16402 (add_may_alias): Remove pointer-set. Update for may_aliases being
16403 a bitmap.
16404 (mark_aliases_call_clobbered): Update for may_aliases being a
16405 bitmap.
16406 (compute_tag_properties): Ditto.
16407 (create_partition_for): Ditto.
16408 (compute_memory_partitions): Ditto.
16409 (dump_may_aliases_for): Ditto.
16410 (is_aliased_with): Ditto.
16411 (add_may_alias_for_new_tag): Ditto.
16412 (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
16413 (compute_is_aliased): New function.
16414 (compute_may_aliases): Call compute_is_aliased).
16415 (init_alias_info): Initialize alias_bitmap_obstack.
16416 (union_alias_set_into): New function.
16417 (compute_flow_sensitive_aliasing): Use union_aliases_into.
16418 (have_common_aliases_p): Rewrite to take two bitmaps and use
16419 intersection.
16420 (compute_flow_insensitive_aliasing): Stop using pointer-sets.
16421 Update for bitmaps.
16422 (finalize_ref_all_pointers): Update for add_may_alias changes.
16423 (new_type_alias): Ditto.
16424 * tree-flow-inline.h (may_aliases): Return a bitmap.
16425 * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
16426 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
16427 may_aliases being a bitmap.
16428 * tree-flow.h (struct var_ann_d): Remove may_aliases member.
16429 may_aliases now returns a bitmap.
16430 * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
16431 being a bitmap.
16432 * tree-ssa-operands.c (add_virtual_operand): Update for
16433 may_aliases being a bitmap.
16434
16435 2007-01-29 Daniel Berlin <dberlin@dberlin.org>
16436
16437 PR tree-optimization/30630
16438 * tree-ssa-structalias.c (do_complex_constraint): Mark correct
16439 variable as changed.
16440
16441 2007-01-29 Simon Martin <simartin@users.sourceforge.net>
16442
16443 PR c++/28266
16444 * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
16445 expanded only once even if an error occurs.
16446
16447 2007-01-29 Ben Elliston <bje@au.ibm.com>
16448
16449 * gcov-io.h (__gcov_indirect_call_profiler): Declare.
16450 (__gcov_average_profiler): Likewise.
16451 (__gcov_ior_profiler): Likewise.
16452 (__gcov_merge_ior): Likewise.
16453
16454 2007-01-28 Jan Hubicka <jh@suse.cz>
16455
16456 * builtins.c (expand_builtin_memset): Fix typo in my last patch.
16457 * value-prof.c (stringop_block_profile): Likewise.
16458
16459 2007-01-28 Jan Hubicka <jh@suse.cz>
16460
16461 * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
16462 Add variant handling histograms; add wrapper.
16463 (clear_storage_via_libcall): Export.
16464 (emit_block_move_hints): Break out from ...; add histograms.
16465 (emit_block_move): ... this one.
16466 (clear_storage_hints): Break out from ...; add histograms.
16467 (clear_storage): ... this one.
16468 (set_storage_via_memset): Handle histogram.
16469 * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
16470 (clear_storage_hints, clear_storage_via_libcall): Declare.
16471 (set_storage_via_setmem): Update prototype.
16472 * doc/md.texi (movmem, setmem): Document new arguments.
16473
16474 * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
16475 Add new histograms.
16476 (stringop_block_profile): New global function.
16477 (tree_stringops_values_to_profile): Profile block size and alignment.
16478 * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
16479 HIST_TYPE_IOR.
16480 (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
16481 (stringop_block_profile): Declare.
16482 * builtins.c: Include value-prof.h.
16483 (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
16484 * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
16485 (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
16486 (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
16487 * profile.c (instrument_values): Add new counters.
16488 * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
16489 calls.
16490 * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
16491 (tree_init_edge_profiler): Build new profilers.
16492 (tree_gen_average_profiler, tree_gen_ior_profiler): New.
16493 (pass_tree_profile): Add dump.
16494 (tree_profile_hooks): Update.
16495 * Makefile.in (LIBGCOV): Add new constants.
16496 * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
16497 __gcov_ior_profiler): New.
16498 * i386.md (movmem/setmem expanders): Add new optional arguments.
16499
16500 2007-01-28 David Edelsohn <edelsohn@gnu.org>
16501
16502 * doc/md.texi (Standard Pattern Names): Document blockage pattern.
16503
16504 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
16505
16506 * tree-ssa-loop-unswitch.c: Include tree-inline.h.
16507 (tree_unswitch_single_loop): Pass eni_size_weights to
16508 tree_num_loop_insns.
16509 * tree-ssa-loop-manip.c: Include tree-inline.h.
16510 (can_unroll_loop_p): Pass eni_size_weights to
16511 tree_num_loop_insns.
16512 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
16513 Pass eni_size_weights to estimate_num_insns.
16514 * tree.h (init_inline_once): Export.
16515 * toplev.c (backend_init): Call init_inline_once.
16516 * cgraphunit.c (cgraph_process_new_functions,
16517 cgraph_analyze_function): Pass eni_inlining_weights to
16518 estimate_num_insns.
16519 * ipa-inline.c (compute_inline_parameters): Ditto.
16520 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
16521 to estimate_num_insns.
16522 (try_unroll_loop_completely): Pass eni_size_weights to
16523 tree_num_loop_insns.
16524 * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
16525 ot estimate_num_insns.
16526 * tree-ssa-loop-prefetch.c: Include tree-inline.h.
16527 (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
16528 * tree-inline.c (eni_inlining_weights, eni_size_weights,
16529 eni_time_weights): New variables.
16530 (init_inline_once): Initialize them.
16531 (struct eni_data): Mew.
16532 (estimate_num_insns_1, estimate_num_insns): Use weights.
16533 * tree-inline.h (struct eni_weights_d): New.
16534 (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
16535 (estimate_num_insns): Declaration changed.
16536 * cfgloop.h (tree_num_loop_insns): Declaration changed.
16537 * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
16538 tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
16539
16540 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
16541
16542 * tree-data-ref.c (conflict_fn): Assert that the number of affine
16543 relations in the conflict function is valid.
16544
16545 2007-01-27 Ian Lance Taylor <iant@google.com>
16546
16547 * common.opt: Add fstrict-overflow.
16548 * opts.c (decode_options): Set flag_strict_overflow if -O2.
16549 * flags.h (TYPE_OVERFLOW_WRAPS): Define.
16550 (TYPE_OVERFLOW_UNDEFINED): Define.
16551 (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
16552 Replace all uses.
16553 * tree.h (TYPE_TRAP_SIGNED): Don't define.
16554 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
16555 (fold_negate_expr): Likewise.
16556 (make_range): Likewise.
16557 (extract_muldiv_1): Likewise.
16558 (maybe_canonicalize_comparison): Likewise.
16559 (fold_comparison): Likewise.
16560 (fold_binary): Likewise.
16561 (tree_expr_nonnegative_p): Likewise.
16562 (tree_expr_nonzero_p): Likewise.
16563 * tree-vrp.c (compare_values): Likewise.
16564 (extract_range_from_binary_expr): Likewise.
16565 (extract_range_from_unary_expr): Likewise.
16566 * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
16567 Likewise.
16568 (nowrap_type_p): Likewise.
16569 * tree-scalar-evolution.c (simple_iv): Likewise.
16570 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
16571 (build_range_check): Likewise.
16572 (extract_muldiv_1): Likewise.
16573 (fold_comparison): Likewise.
16574 * tree-vrp.c (vrp_int_const_binop): Likewise.
16575 (extract_range_from_unary_expr): Likewise.
16576 * convert.c (convert_to_integer): Likewise.
16577 * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
16578 (fold_comparison): Likewise.
16579 (fold_binary): Likewise.
16580 * optabs.c (optab_for_tree_code): Likewise.
16581 * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
16582 * simplify-rtx.c (simplify_const_relational_operation): Check
16583 flag_strict_overflow and flag_trapv.
16584 (simplify_const_relational_operation): Likewise.
16585 * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
16586 (Optimize Options): Add -fstrict-overflow to -O2 list. Document
16587 -fstrict-overflow.
16588
16589 2007-01-27 Roger Sayle <roger@eyesopen.com>
16590
16591 * tree.c (tree_fold_gcd): Delete.
16592 * tree.h (tree_fold_gcd): Remove prototype.
16593 * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
16594 test whether one constant integer is a multiple of another. Instead
16595 call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
16596 * fold-const.c (multiple_of_p): We've determined both TOP and
16597 BOTTOM are integer constants so we can call int_const_binop directly
16598 instead of the more generic const_binop.
16599
16600 2007-01-27 Roger Sayle <roger@eyesopen.com>
16601
16602 * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
16603 1*X check that the constant hasn't overflowed, to preserve the
16604 TREE_OVERFLOW bit.
16605 (round_up): Provide an efficient implementation when rouding-up an
16606 INTEGER_CST to a power-of-two.
16607
16608 2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16609
16610 * doc/sourcebuild.texi: Add comma for clarity.
16611 * doc/extend.texi: Fix some typos.
16612 * doc/passes.texi: Likewise.
16613 * doc/cppinternals.texi: Likewise.
16614 * doc/c-tree.texi: Likewise.
16615 * doc/tree-ssa.texi: Likewise.
16616 * doc/install.texi: Likewise.
16617
16618 2007-01-27 Jan Hubicka <jh@suse.cz>
16619
16620 * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
16621 (pass_sra): Do not require alias information.
16622 * passes.c (init_optimization_passes): Add SRA
16623
16624 2007-01-27 Steven Bosscher <steven@gcc.gnu.org>
16625
16626 * tracer.c (rest_of_handle_tracer): We already cleaned
16627 up the CFG in tracer() so don't do it here again.
16628 * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
16629 cleanup_cfg here, either. And don't call renumber_insns.
16630
16631 * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
16632 and BB_HEAD are in the insn stream here. Instead make sure
16633 that BB_INSN is valid on all insns. Also, do check here that
16634 there are no pending branch predictions...
16635 (rtl_verify_flow_info): ...instead of doing it here. Checks
16636 for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
16637 here.
16638
16639 2007-01-26 Roger Sayle <roger@eyesopen.com>
16640
16641 * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
16642 function to simplify/factorize operand order canonicalization.
16643 (ix86_fixup_binary_operands): Reorganize using the above function.
16644 (ix86_binary_operator_ok): Likewise.
16645
16646 2007-01-27 Jakub Jelinek <jakub@redhat.com>
16647
16648 * genattrtab.c (struct attr_value_list, insn_code_values): Move to
16649 file scope from optimize_attrs.
16650 (simplify_test_exp): If insn_code_values is not NULL, use it to speed
16651 up search.
16652 (optimize_attrs): Clear insn_code_values after freeing it.
16653
16654 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
16655
16656 * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
16657 a parts.base assignment.
16658
16659 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
16660
16661 * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
16662 (compute_subscript_distance, initialize_data_dependence_relation,
16663 finalize_ddr_dependent, analyze_ziv_subscript,
16664 analyze_siv_subscript_cst_affine,
16665 compute_overlap_steps_for_affine_univar,
16666 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
16667 analyze_siv_subscript, analyze_miv_subscript,
16668 analyze_overlapping_iterations, subscript_dependence_tester_1,
16669 compute_self_dependence, free_dependence_relation): Work
16670 with affine_fn instead of chrecs.
16671 (dump_affine_function, dump_conflict_function, affine_function_equal_p,
16672 common_affine_function, affine_function_base,
16673 affine_function_constant_p, affine_fn_op, affine_fn_plus,
16674 affine_fn_minus, affine_fn_free, conflict_fn_not_known,
16675 conflict_fn_no_dependence, free_conflict_function, free_subscripts,
16676 conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
16677 (all_chrecs_equal_p): Removed.
16678 * tree-data-ref.h (affine_fn, conflict_function): New types.
16679 (struct subscript): Change type of conflicting_iterations_in_a
16680 and conflicting_iterations_in_b.
16681
16682 2007-01-26 Steve Ellcey <sje@cup.hp.com>
16683
16684 PR other/30182
16685 * config/pa/pa.h (TARGET_HPUX_11): New.
16686 * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
16687 * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
16688
16689 2007-01-26 Daniel Berlin <dberlin@dberlin.org>
16690 Richard Guenther <rguenther@suse.de>
16691
16692 * tree-ssa-structalias.c (solve_graph): Handle case
16693 we merged the variable to another.
16694
16695 2007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16696
16697 * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
16698 functions.
16699
16700 * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
16701 catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
16702
16703 2007-01-25 DJ Delorie <dj@redhat.com>
16704
16705 * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
16706 allow changes to modes which don't fit in those registers.
16707
16708 * reload1.c (choose_reload_regs): Check for invalid subregs before
16709 computing their locations, not after.
16710
16711 2007-01-25 Geoffrey Keating <geoffk@apple.com>
16712
16713 PR 25127
16714 * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
16715 save Altivec registers in an eh_return function.
16716 (compute_vrsave_mask): Likewise.
16717 (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
16718 for saving Altivec registers.
16719 (rs6000_emit_prologue): Don't allocate stack twice in
16720 eh_return function. Correct expected value of altivec_save_offset
16721 when using save_world. Describe save of R0 to stack when using
16722 save_world. Describe stack pointer adjustment when using
16723 save_world. Remove duplicated eh_return parameter register saving.
16724 Update sp_offset variable after save_world.
16725 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
16726 darwin-world.asm.
16727 (LIB2FUNCS_EXTRA): Add darwin-world.asm.
16728 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
16729 implies Altivec.
16730
16731 2007-01-25 Steve Ellcey <sje@cup.hp.com>
16732
16733 * config.gcc (ia64*-*-hpux*): Make posix threads the default.
16734
16735 2007-01-25 Steve Ellcey <sje@cup.hp.com>
16736
16737 PR other/30182
16738 * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
16739 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
16740
16741 2007-01-25 Richard Guenther <rguenther@suse.de>
16742
16743 * doc/invoke.texi (-Wcoverage-mismatch): Document.
16744 * common.opt (-Wcoverage-mismatch): New warning option.
16745 * coverage.c (get_coverage_counts): Ignore coverage mismatch
16746 if -Wcoverage-mismatch is given.
16747
16748 2007-01-25 Razya Ladelsky <razya@il.ibm.com>
16749
16750 * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
16751 (ipcp_driver): Change to static definition.
16752 Add dumping of the ifunctions.
16753 (constant_val_insert): Remove unused parameter. Support for SSA.
16754 (ipcp_propagate_const): Support for SSA.
16755 (ipcp_profile_bb_print): Print only analyzed nodes.
16756 (ipcp_replace_map_create): Remove support for Fortran constant
16757 for now.
16758 * ipa-prop.c (ipa_method_modify_stmt,
16759 ipa_callsite_compute_param): Support for SSA.
16760 * ipa-prop.h (ipcp_driver): Remove declaration.
16761 (IS_VALID_TREE_MAP_INDEX): Add define.
16762
16763 2007-01-24 Geoffrey Keating <geoffk@apple.com>
16764
16765 * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
16766
16767 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16768
16769 PR middle-end/30447
16770 * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
16771 constant argument to cabs and do it without checking for
16772 -funsafe-math-optimizations.
16773
16774 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
16775
16776 * c-common.h (RID_FIRST_CXX0X): New.
16777 (RID_LAST_CXX0X): New.
16778 * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
16779 by -Wall.
16780 * c.opt (Wc++0x-compat): New.
16781 * doc/invoke.texi (-Wc++0x-compat): Document.
16782
16783 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16784
16785 * builtins.c (fold_builtin_carg): New.
16786 (fold_builtin_1): Use it.
16787
16788 2007-01-24 Jan Hubicka <jh@suse.cz>
16789
16790 * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
16791
16792 * ipa-inline.c (initial_insns, max_insns): Delete.
16793 (compute_max_insns): New function.
16794 (cgraph_decide_inlining_of_small_function): Use it; take minimal
16795 amount of insns as base for code growth.
16796 (cgraph_decide_inlining): Make initial_insns local; do not compute
16797 max_insns.
16798 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
16799 * doc/invoke.texi (inline-unit-growth): Update docs.
16800
16801 2007-01-24 Jakub Jelinek <jakub@redhat.com>
16802
16803 * config/i386/i386.h (x86_cmpxchg16b): Remove const.
16804 (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
16805 * config/i386/i386.c (x86_cmpxchg16b): Remove const.
16806 (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b
16807 for CPUs that have PTA_CX16 set.
16808
16809 PR middle-end/27416
16810 * gimplify.c (omp_check_private): New function.
16811 (gimplify_scan_omp_clauses): Use it for
16812 firstprivate/lastprivate/reduction.
16813
16814 PR middle-end/30494
16815 * gimplify.c (omp_add_variable): Don't call omp_notice_variable
16816 on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
16817
16818 PR middle-end/30421
16819 * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
16820 If lower_lastprivate_clauses emits some statements, append them
16821 to dlist rather than body_p and to body_p append an initializer.
16822 (lower_omp_for): Adjust caller.
16823
16824 2007-01-24 Steve Ellcey <sje@cup.hp.com>
16825
16826 * target.h (globalize_decl_name): New.
16827 * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
16828 * output.h (default_globalize_decl_name): New.
16829 * varasm.c (asm_output_bss): Use globalize_decl_name instead of
16830 globalize_label.
16831 (globalize_decl): Ditto.
16832 (default_globalize_decl_name): New.
16833 * config/ia64/ia64.c (ia64_globalize_decl_name): New.
16834 (ia64_handle_version_id_attribute): New.
16835 (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
16836 (ia64_asm_output_external): Use globalize_decl_name instead
16837 of globalize_label.
16838 * doc/extend.texi (version_id): New pragma.
16839 * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
16840
16841 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
16842
16843 * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
16844 _uleb128_t and _Unwind_SWord with _sleb128_t.
16845 * unwind-dw2.c (extract_cie_info, execute_stack_op,
16846 execute_cfa_program, uw_frame_state_for, uw_update_context_1):
16847 Likewise.
16848 * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
16849 * unwind-pe.h (read_uleb128, read_sleb128,
16850 read_encoded_value_with_base): Likewise.
16851 * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
16852
16853 2007-01-24 Richard Guenther <rguenther@suse.de>
16854
16855 * builtins.c (expand_builtin_cexpi): Get the fndecl
16856 for cexp in the correct way.
16857
16858 2007-01-24 Jan Hubicka <jh@suse.cz>
16859
16860 * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
16861 of calls.
16862
16863 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
16864
16865 * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
16866 (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
16867 __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
16868 __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
16869 __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
16870 __SIZEOF_PTRDIFF_T__.
16871 * doc/cpp.texi: Documentation for the new builtin macros added.
16872
16873 2007-01-24 Uros Bizjak <ubizjak@gmail.com>
16874
16875 * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
16876 log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
16877 instead of operands[2] to avoid access past the end of array.
16878
16879 2007-01-24 Richard Sandiford <richard@codesourcery.com>
16880
16881 * reload1.c (emit_reload_insns): Pass the reload register
16882 for a non-spill output reload through forget_old_reloads_1.
16883
16884 2007-01-23 Joseph Myers <joseph@codesourcery.com>
16885
16886 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
16887 _SOFT_DOUBLE if doubles use software floating-point.
16888 * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
16889 double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
16890 * config/rs6000/darwin-ldouble.c: Also compile functions for
16891 hard-float without FPRs. Use fmsub function for all __NO_FPRS__
16892 cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
16893 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
16894 commented-out long double override.
16895 (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
16896 * config/rs6000/eabispe.h: Likewise.
16897 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
16898 long double for non-SPE.
16899 (rs6000_handle_option): Likewise.
16900 (invalid_e500_subreg): Disallow more subregs involding DImode,
16901 DFmode, TImode or TFmode.
16902 (rs6000_legitimate_offset_address_p): Check TFmode offsets for
16903 E500 double.
16904 (legitimate_lo_sum_address_p): Also check for TFmode for E500
16905 double.
16906 (rs6000_legitimize_address): Also handle TFmode for E500 double.
16907 (rs6000_legitimize_reload_address): Also handle TFmode for E500
16908 double.
16909 (rs6000_legitimate_address): Also check for TFmode for E500
16910 double.
16911 (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
16912 (spe_build_register_parallel): Handle TFmode and TCmode.
16913 (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
16914 double.
16915 (function_arg): Handle TFmode and TCmode for E500 double.
16916 (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
16917 in general.
16918 (print_operand): Handle TFmode and TImode for %y.
16919 (rs6000_generate_compare): Handle TFmode comparisons for E500
16920 double.
16921 (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
16922 (rs6000_function_value): Handle TFmode and TCmode for E500 double.
16923 (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
16924 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
16925 TFmode for E500 double.
16926 * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
16927 (floatsidf2): Enable for E500 double.
16928 (movtf_softfloat): Use rs6000_nonimmediate_operand.
16929 (extenddftf2): Change to extenddftf2_fprs.
16930 (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
16931 depending on TARGET_E500_DOUBLE.
16932 (extendsftf2): Enable for E500 double.
16933 (trunctfdf2): Enable for E500 double.
16934 (trunctfsf2): Change to trunctfsf2_fprs.
16935 (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
16936 depending on TARGET_E500_DOUBLE.
16937 (floatsitf2): Enable for E500 double.
16938 (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
16939 (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
16940 gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
16941 (negtf2): Change to negtf2_internal.
16942 (negtf2): New expander.
16943 (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst,
16944 gen_spe_abstf2_cmp or gen_abstf2_internal depending on
16945 TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
16946 (movdi_internal32): Use rs6000_nonimmediate_operand.
16947 (unnamed splitter): Likewise.
16948 * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
16949 TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
16950 (SPE64TF, DITI): New mode macros.
16951 (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
16952 modes.
16953 (frob_tf_ti): New.
16954 (frob_<mode>_di_2): New.
16955 (frob_tf_di_8_2): New.
16956 (frob_di_df): Change to frob_di_<mode>; allow more modes.
16957 (frob_ti_tf): New.
16958 (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
16959 more modes.
16960 (frob_ti_<mode>_8_2): New.
16961 (frob_ti_tf_2): New.
16962 (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
16963 mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
16964 TFmode.
16965 (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
16966 mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
16967 (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
16968 spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
16969 spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
16970 (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
16971 tsttflt_gp): New.
16972
16973 2007-01-23 Ian Lance Taylor <iant@google.com>
16974
16975 * Makefile.in (OBJS-common): Reformat, alphabetize, but put
16976 insn-*.o first.
16977 (OBJS-archive): Reformat, alphabetize.
16978 (OBJS): Change out_object_file to OBJS-md.
16979
16980 2007-01-23 Uros Bizjak <ubizjak@gmail.com>
16981
16982 * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
16983 JUMP_P and CALL_P predicates where applicable.
16984 * config/i386/i386.c: Ditto.
16985 * config/i386/i386.md: Ditto.
16986 * config/i386/mmx.md: Ditto.
16987 * config/i386/predicates.md: Ditto.
16988
16989 2007-01-22 Andreas Schwab <schwab@suse.de>
16990
16991 * config/m68k/m68k.h: Fix comment.
16992
16993 2007-01-22 Jan Hubicka <jh@suse.cz>
16994
16995 * passes.c (init_optimization_passes): Do not rerun
16996 pass_early_warn_uninitialized.
16997
16998 2007-01-22 Richard Guenther <rguenther@suse.de>
16999
17000 PR tree-optimization/30038
17001 * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
17002 function.
17003 (execute_cse_sincos_1): Likewise.
17004 (execute_cse_sincos): Likewise.
17005 (gate_cse_sincos): Likewise.
17006 (pass_cse_sincos): New pass CSEing sin() and cos() calls using
17007 the cexpi() canonicalization of sincos().
17008 * tree-pass.h (pass_cse_sincos): Declare.
17009 * passes.c (init_optimization_passes): New pass pas_cse_sincos.
17010
17011 2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
17012
17013 PR rtl-optimization/29329
17014 * combine.c (replaced_rhs_insn): Rename to i2mod.
17015 (replaced_rhs_value): Rename to i2mod_new_rhs.
17016 (i2mod_old_rhs): New global variable.
17017 (combine_instructions): Adjust for above change. Save a copy of
17018 the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
17019 note are substituted in the second instruction.
17020 (distribute_notes) <REG_DEAD>: Adjust for above change. Do not
17021 ditch the note if it pertains to the second eliminated register
17022 and this register is mentioned in i2mod_old_rhs.
17023
17024 Revert:
17025 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
17026
17027 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
17028 the insn to which the note was originally attached.
17029
17030 2007-01-21 Jan Hubicka <jh@suse.cz>
17031
17032 * ipa-inline.c (inlining_mode): Comment, move up.
17033 (cgraph_decide_inlining_incrementally): Do not perform inlining
17034 itself; fix handling of flattening of self recursive functions.
17035 (cgraph_find_cycles): Remove.
17036 (cgraph_flatten_node): Remove.
17037 (cgraph_decide_inlining): Use incremental inliner to handle flattening.
17038 (try_inline): New function.
17039 (cgraph_early_inlining): Update call of
17040 cgraph_decide_inlining_incrementally. Apply inlining here.
17041 (apply_inline): Update call of cgraph_decide_inlining_incrementally.
17042
17043 2007-01-21 Dirk Mueller <dmueller@suse.de>
17044
17045 PR bootstrap/30511
17046 * tree-vrp.c (check_array_bounds): do not warn
17047 about ADDR_EXPR's of ARRAY_REF's which are immediately
17048 used in binary expressions.
17049
17050 2007-01-21 Ira Rosen <irar@il.ibm.com>
17051
17052 * tree-vectorizer.h (struct _stmt_vec_info): Add new field
17053 read_write_dep and macros for its access.
17054 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
17055 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
17056 argument, call vect_check_interleaving for every independent pair of
17057 data-refs. Mark loads that access the same memory location as a store
17058 in the loop.
17059 (vect_check_dependences): Remove.
17060 (vect_analyze_data_ref_dependences): Remove vect_check_dependences
17061 call, fix the call to vect_analyze_data_ref_dependence.
17062 (vect_analyze_data_ref_access): For statements that access the same
17063 data-ref, check that they are not stores; for loads, check that there
17064 is no store that access the same location.
17065
17066 2007-01-20 Roger Sayle <roger@eyesopen.com>
17067 Joseph Myers <joseph@codesourcery.com>
17068
17069 * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
17070 (-fdump-rtl-stack): Likewise.
17071 (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo.
17072 (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
17073 (-mpt-fixed): Use @minus{} for minus sign.
17074 (Using Precompiled Headers): Fix under/overfull hbox.
17075
17076 2007-01-20 Jan Hubicka <jh@suse.cz>
17077
17078 * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
17079 place within annotation.
17080
17081 2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17082
17083 * pa.c (output_move_double): Change array size of xoperands to 4.
17084
17085 2007-01-20 Jan Hubicka <jh@suse.cz>
17086
17087 * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
17088 as temporary.
17089
17090 2007-01-19 Ian Lance Taylor <iant@google.com>
17091
17092 * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
17093 constant to unsigned HOST_WIDE_INT before negating.
17094
17095 2007-01-19 Ian Lance Taylor <iant@google.com>
17096
17097 * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
17098 to unsigned.
17099 (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
17100 (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
17101 (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
17102 (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
17103 (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
17104 (realloc_vdef, realloc_vuse): Change second parameter to
17105 unsigned.
17106 (ssa_operand_iterator_d): Change vuse_index and mayuse_index
17107 fields to unsigned.
17108 * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
17109 unsigned. Change x and lim locals to unsigned.
17110 (realloc_vdef, realloc_vuse): Change num_elem parameter to
17111 unsigned.
17112 (finalize_ssa_vuse_ops): Change old_i local to unsigned.
17113 (copy_virtual_operands): Change i and n locals to unsigned.
17114
17115 2007-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17116
17117 PR middle-end/29335
17118 * builtins.c (fold_builtin_1): Handle builtin fdim.
17119
17120 2007-01-20 Jan Hubicka <jh@suse.cz>
17121
17122 * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
17123 * tree-ssa-structalias.c (compute_points_to_sets): Do call
17124 init_alias_heapvars.
17125 (init_alias_heapvars): Initialize only when not already initialized.
17126 (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
17127
17128 2007-01-19 Roger Sayle <roger@eyesopen.com>
17129
17130 * common.opt (fsigned-zeros): New command line option.
17131 * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
17132 of flag_unsafe_math_optimizations.
17133 * opts.c (set_fast_math_flags): The -ffast-math command line option
17134 implies -fno-signed-zeros.
17135 (fast_math_flags_set_p): Likewise.
17136
17137 * doc/invoke.texi: Document new -fno-signed-zeros option, and update
17138 the documentation of -ffast-math appropriately. Wrap long lines.
17139
17140 2007-01-19 Steve Ellcey <sje@cup.hp.com>
17141
17142 * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
17143 * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
17144
17145 2007-01-19 Tomas Bily <tbily@suse.cz>
17146
17147 * cgraphunit.c (cgraph_finalize_function): Updating of pid
17148 * tree-profile.c:
17149 (tree_init_ic_make_global_vars): New function
17150 (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
17151 (tree_gen_ic_profiler): New function
17152 (tree_gen_ic_func_profiler): New function
17153 (tree_profiling): Added calling of tree_gen_ic_func_profiler
17154 (tree_profile_hooks): Added hook for indirec/virtual calls
17155 * value-prof.c (tree_find_values_to_profile): New case for
17156 indirect calls
17157 (tree_values_to_profile): Call for determining indirect/virtual
17158 counters
17159 (tree_indirect_call_to_profile): New function
17160 (tree_ic_transform): New function
17161 (tree_ic): New function
17162 (find_func_by_pid): New function
17163 (init_pid_map): New function
17164 (tree_value_profile_transformations): Added check for
17165 indirect/virtual call transformation
17166 * value-prof.h (enum hist_type): New counter type for
17167 indirect/virtual calls
17168 (profile_hooks): Added new hook for profiling indirect/virtual
17169 calls
17170 * profile.c (instrument_values): New case for indirect/virtual
17171 call added
17172 * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
17173 (GCOV_COUNTER_V_INDIR): New counter type
17174 (GCOV_COUNTER_NAMES): New name of counter "indirect" added
17175 (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
17176 call added
17177 * cgraph.c: Definition of cgraph_max_pid
17178 (cgraph_create_node): Default init of pid attribute
17179 * cgraph.h: Declaration of cgraph_max_pid
17180 (struct cgraph_node): Added pid attribute
17181 * libgcov.c (__gcov_indirect_call_profiler): New function
17182 (__gcov_one_value_profiler_body): New function
17183 (__gcov_one_value_profiler): Body was moved to
17184 __gcov_one_value_profiler_body and calls it
17185
17186 2007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
17187
17188 * doc/gty.texi (Options): Document the mark_hook option to GTY.
17189 * gengtype.c (write_types_data, write_func_for_structure,
17190 write_types, ggc_wtd, pch_wtd): Add skip_hooks to
17191 write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
17192 (walk_type, write_func_for_structure): Generate the mark_hook if
17193 needed.
17194
17195 2007-01-19 Jan Hubicka <jh@suse.cz>
17196
17197 * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
17198 'early' argument take inlining mode argument specifying whether to
17199 inline for size/speeed or all functions; add support for flattening;
17200 improve dumpting.
17201 (cgraph_early_inlining): Update call of decide_inlining_incrementally.
17202
17203 2007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17204
17205 PR c++/17947
17206 * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
17207 the name of the declared identifier.
17208
17209 2007-01-19 Dirk Mueller <dmueller@suse.de>
17210
17211 * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
17212 result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
17213 duplicate evaluation.
17214
17215 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
17216
17217 * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
17218 Macroize expander using X87MODEF12 mode macro. Extend operand 1
17219 to XFMode, use acosxf2 and truncate result to requested mode.
17220 Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
17221 (asin<mode>2): Similarly, with asin expanders.
17222 (*fscalexf4_i387): Rename from *fscalexf4.
17223 (expNcorexf3): New expander.
17224 (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
17225 (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
17226 X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and
17227 truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
17228 patterns for SSE math.
17229 (exp10<mode>2): Similarly, with exp10 expanders.
17230 (exp2<mode>2): Similarly, with exp2 expanders.
17231 (expm1<mode>2): Similarly, with expm1 expanders.
17232 (ldexp<mode>3): Similarly, with ldexp expanders.
17233 (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
17234 Use gen_truncxf<mode>2_i387_noop to truncate result.
17235
17236 2007-01-19 Richard Sandiford <richard@codesourcery.com>
17237
17238 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
17239 for ColdFire targets.
17240
17241 2007-01-19 Nathan Sidwell <nathan@codesourcery.com>
17242 Richard Sandiford <richard@codesourcery.com>
17243
17244 * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
17245 (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
17246 (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
17247 * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
17248 (M68K_STATIC_CHAIN_REG_NAME): Likewise.
17249 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
17250
17251 2007-01-19 Richard Sandiford <richard@codesourcery.com>
17252
17253 * config/m68k/m68k.md (adddi_dilshr32): Rename to...
17254 (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
17255 non-canonical pattern. Restrict to !TARGET_COLDFIRE.
17256 (*adddi_dilshr32_cf): New pattern.
17257 (adddi3, subdi3): Remove first alternatives.
17258
17259 2007-01-19 Richard Sandiford <richard@codesourcery.com>
17260
17261 * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
17262 implemented using move.l, do not use its cc result for floating-point
17263 comparisons.
17264
17265 2007-01-19 Richard Sandiford <richard@codesourcery.com>
17266
17267 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
17268 from accepting 's' constraints if flag_pic.
17269
17270 2007-01-19 Richard Sandiford <richard@codesourcery.com>
17271
17272 * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
17273 (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
17274 (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
17275 condition from TARGET_68881 to TARGET_HARD_FLOAT.
17276
17277 2007-01-19 Sandra Loosemore <sandra@codesourcery.com>
17278
17279 * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
17280 ColdFire alternatives.
17281 * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
17282 * config/m68k/m68k.md (clzsi2): Define for ColdFire
17283 architectures that support ff1 instruction.
17284
17285 2007-01-19 Richard Sandiford <richard@codesourcery.com>
17286 Julian Brown <julian@codesourcery.com>
17287
17288 * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
17289 * config/m68k/m68k.md (*movsi_cfv4): Fold into...
17290 (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'.
17291 Add commentary.
17292
17293 2007-01-19 Richard Sandiford <richard@codesourcery.com>
17294
17295 * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
17296 and return a bool.
17297 (output_move_const_into_data_reg, output_move_simode_const): Delete.
17298 * config/m68k/m68k.c (const_method, const_int_cost): Take a
17299 HOST_WIDE_INT instead of an rtx.
17300 (m68k_rtx_costs): Update call accordingly.
17301 (output_move_const_into_data_reg): Likewise. Fix formatting.
17302 (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
17303 Return a bool.
17304 (output_move_simode_const): Update calls after above changes.
17305 Rework to use automatic variables and predicates like MEM_P.
17306 * config/m68k/m68k.md (pushexthisi_const): Update call to
17307 valid_mov3q_const.
17308
17309 2007-01-19 Dirk Mueller <dmueller@suse.de>
17310
17311 * tree-ssa-alias.c (perform_var_substitution): Fix typo
17312 in dump_flags test.
17313
17314 2007-01-19 Richard Guenther <rguenther@suse.de>
17315
17316 * builtins.c (expand_builtin_cexpi): Fall back to expanding
17317 via cexp in case sincos is not available.
17318
17319 2007-01-19 Richard Guenther <rguenther@suse.de>
17320
17321 * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
17322 * defaults.h (TARGET_HAS_SINCOS): Default to off.
17323 * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
17324 * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
17325 * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
17326 * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
17327 * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
17328 * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
17329
17330 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
17331
17332 * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
17333 New insn patterns.
17334 (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
17335 (atan2xf3): Directly generate RTL pattern.
17336 (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
17337 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
17338 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
17339 disable patterns for SSE math.
17340 (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
17341 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
17342 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
17343 disable patterns for SSE math.
17344
17345 2007-01-19 Alexandre Oliva <aoliva@redhat.com>
17346
17347 * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
17348
17349 2007-01-18 Roger Sayle <roger@eyesopen.com>
17350
17351 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
17352 VIEW_CONVERT_EXPR to the same type as it's operand.
17353
17354 2007-01-18 David Edelsohn <edelsohn@gnu.org>
17355
17356 * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
17357 configured for long double 128.
17358
17359 2007-01-18 Mike Stump <mrs@apple.com>
17360
17361 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
17362 error.
17363
17364 2007-01-18 Michael Meissner <michael.meissner@amd.com>
17365
17366 * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
17367 type correct.
17368
17369 2007-01-18 Jan Hubicka <jh@suse.cz>
17370
17371 * tree-ssa-operands.c (vop_free_bucket_size): Never return value
17372 greater than NUM_VOP_FREE_BUCKETS.
17373
17374 2007-01-18 Daniel Berlin <dberlin@dberlin.org>
17375
17376 * tree-ssa-structalias.c: Update comments.
17377 (ptabitmap_obstack): Removed.
17378 (pta_obstack): New.
17379 (oldpta_obstack): Ditto.
17380 (stats): Add a few members.
17381 (struct variable_info): Remove node, complex, address_taken, and
17382 indirect_target members. Add oldsolution member.
17383 (new_var_info): Do not initialize removed members.
17384 (constraint_expr_type): Remove INCLUDES.
17385 (constraint_graph): Add size, implicit_preds, rep,
17386 indirect_cycles, eq_rep, label, direct_nodes, and complex members.
17387 (FIRST_REF_NODE): New macro.
17388 (LAST_REF_NODE): Ditto.
17389 (FIRST_ADDR_NODE): Ditto.
17390 (find): New function.
17391 (unite): Ditto.
17392 (dump_constraint): Do not handle INCLUDES.
17393 (insert_into_complex): Do not insert duplicate constraints.
17394 (condense_varmap_nodes): Renamed and rewritten into ...
17395 (merge_node_constraints): This. Also fix bug in handling of
17396 offseted copy constraints.
17397 (clear_edges_for_node): No longer need to deal with preds at all,
17398 or removing associated preds/succs.
17399 (merge_graph_nodes): Deal with indirect_cycles.
17400 Don't deal with predecessors.
17401 (add_implicit_graph_edge): New function.
17402 (add_pred_graph_edge): Ditto.
17403 (add_graph_edge): Don't deal with predecessors.
17404 (build_constraint_graph): Removed.
17405 (build_pred_graph): New function.
17406 (build_succ_graph): Ditto.
17407 (struct scc_info): Removed in_component. Added roots, dfs, and
17408 node_mapping. Remove visited_index, unification_queue.
17409 (scc_visit): Deal with union-find we do now.
17410 Deal with cycles with REF nodes.
17411 (collapse_nodes): Renamed and rewritten to ...
17412 (unify_nodes): This.
17413 (process_unification_queue): Removed.
17414 (topo_visit): Cleanup
17415 (do_da_constraint): Use find.
17416 (do_sd_constraint): Ditto.
17417 (do_ds_constraint): Ditto.
17418 (do_complex_constraint): Ditto.
17419 (init_scc_info): Update for removed and added members.
17420 (find_and_collapse_graph_cycles): Renamed and rewritten into ...
17421 (find_indirect_cycles): This.
17422 (equivalence_class): New variable.
17423 (label_visit): New function.
17424 (perform_variable_substitution): Rewritten.
17425 (free_var_substitution_info): New function.
17426 (find_equivalent_node): Ditto.
17427 (move_complex_constraints): Ditto.
17428 (eliminate_indirect_cycles): Ditto.
17429 (solve_graph): Only propagate changed bits.
17430 Use indirect cycle elimination.
17431 Use find.
17432 (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
17433 (tree_id_eq): Renamed to ...
17434 (tree_vi_eq): This. Update for member change
17435 (insert_id_for_tree): Renamed and rewritten to ...
17436 (insert_vi_for_tree): This.
17437 (lookup_id_for_tree): Renamed and rewritten to ...
17438 (lookup_vi_for_tree): This.
17439 (get_id_for_tree): Renamed and rewritten to ...
17440 (get_vi_for_tree): Ditto.
17441 (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
17442 (process_constraint): Don't handle INCLUDES.
17443 Remove special ADDRESSOF case.
17444 (find_func_aliases): Rewrite to use vi functions instead of id
17445 ones.
17446 (create_function_info_for): Ditto.
17447 (create_variable_info_for): Ditto.
17448 (intra_create_variable_infos): Ditto.
17449 (merge_smts_into): Ditto.
17450 (find_what_p_points_to): Ditto.
17451 (init_base_vars): Ditto.
17452 (init_alias_vars): Ditto.
17453 (remove_preds_and_fake_succs): New function.
17454 (dump_sa_points_to_info): Dump new stats.
17455 (dump_solution_for_var): Use find.
17456 (set_used_smts): Fix formatting.
17457 (compute_points_to_sets): Updated for new functions.
17458 (ipa_pta_execute): Ditto.
17459
17460 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
17461 Richard Sandiford <richard@codesourcery.com>
17462
17463 * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
17464 parallels.
17465 * calls.c (expand_call): If the return value is a PARALLEL,
17466 extract its first member.
17467 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
17468 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
17469 use FUNCTION_EXTRA_EPILOGUE.
17470 (m68k_function_value): Return a PARALLEL if the return value
17471 is of a pointer type.
17472 * config/m68k/netbsd-elf.h (current_function_returns_pointer)
17473 (FUNCTION_EXTRA_EPILOGUE): Remove.
17474 * config/m68k/m68k.md (D0_REG): New constant.
17475
17476 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
17477
17478 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
17479 output a NOP for empty epilogues.
17480
17481 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17482
17483 * config/m68k/m68k.c (m68k_use_return_insn): Update comments
17484 before function. Extend register save check to include all
17485 registers, not just integer ones.
17486
17487 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
17488
17489 * config/m68k/m68k-protos.h (use_return_insn): Rename to...
17490 (m68k_use_return_insn): ...this.
17491 * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
17492 * config/m68k/m68k.c (use_return_insn): Rename to...
17493 (m68k_use_return_insn): ...this.
17494 * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
17495 of USE_RETURN_INSN.
17496
17497 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
17498
17499 * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
17500 nearest even, fix denormal rounding overflow.
17501
17502 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17503
17504 * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
17505 f%$smove and f%$move.
17506 (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
17507 (extendsfdf2_cf): Use fdmove instead of f%&move.
17508 (truncdfsf2_cf): Use fsmove instead of f%$smove.
17509 (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
17510
17511 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17512
17513 * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
17514 GPR<-GPR moves.
17515
17516 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17517
17518 * real.h (real_format): Add a canonical_nan_lsbs_set field.
17519 (coldfire_single_format): Declare.
17520 (coldfire_double_format): Likewise.
17521 * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
17522 of qnan_msb_set to determine the lower bits of a canonical
17523 NaN significand.
17524 (encode_ieee_double): Likewise.
17525 (encode_ieee_quad): Likewise.
17526 (ieee_single_format): Initialize canonical_nan_lsbs_set.
17527 (mips_single_format): Likewise.
17528 (ieee_double_format): Likewise.
17529 (mips_double_format): Likewise.
17530 (ieee_extended_motorola_format): Likewise.
17531 (ieee_extended_intel_96_format): Likewise.
17532 (ieee_extended_intel_128_format): Likewise.
17533 (ieee_extended_intel_96_round_53_format): Likewise.
17534 (ibm_extended_format): Likewise.
17535 (mips_extended_format): Likewise.
17536 (ieee_quad_format): Likewise.
17537 (mips_quad_format): Likewise.
17538 (vax_f_format): Likewise.
17539 (vax_d_format): Likewise.
17540 (vax_g_format): Likewise.
17541 (i370_single_format): Likewise.
17542 (i370_double_format): Likewise.
17543 (decimal_single_format): Likewise.
17544 (decimal_double_format): Likewise.
17545 (decimal_quad_format): Likewise.
17546 (c4x_single_format): Likewise.
17547 (c4x_extended_format): Likewise.
17548 (real_internal_format): Likewise.
17549 (coldfire_single_format): New real_format.
17550 (coldfire_double_format): Likewise.
17551 * config/pdp11/pdp11.c (pdp11_f_format): Initialize
17552 canonical_nan_lsbs_set.
17553 (pdp11_d_format): Likewise.
17554 * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
17555 if TARGET_COLDFIRE_CPU.
17556
17557 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17558
17559 * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
17560 (output_call, m68k_legitimize_call_address): Declare.
17561 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
17562 parenthesees. Add support for a 'W' constraint.
17563 (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
17564 (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
17565 (m68k_symbolic_call, m68k_symbolic_jump): Declare.
17566 * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
17567 variables.
17568 (override_options): Initialize them. Do not set flag_no_function_cse
17569 for TARGET_ID_SHARED_LIBRARY.
17570 (m68k_output_pic_call): Delete.
17571 (m68k_legitimize_call_address): New function.
17572 (print_operand): Remove the %o prefix. Handle the %p prefix.
17573 (output_call): New function.
17574 (m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the
17575 target address from the GOT if symbolic jumps are not allowed.
17576 * config/m68k/m68k.md (call, general_operand): Do not set
17577 SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead.
17578 Merge separate flag_pic and !flag_pic define_insns into...
17579 (*call, *call_value): ...these new patterns. Match the address
17580 rather than the containing MEM and require it to be a call_operand.
17581 Use output_call to generate the asm template.
17582 * config/m68k/predicates.md (const_call_operand): New predicate.
17583 (call_operand): Likewise.
17584
17585 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
17586
17587 * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
17588 (STACK_GROWS_DOWNWARD): Define to 1.
17589 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
17590 comments, emphasizing that these values are only defaults.
17591 * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
17592 * config/m68k/m68k.c (const_method): Remove trailing whitespace.
17593
17594 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17595
17596 * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
17597
17598 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
17599 Richard Sandiford <richard@codesourcery.com>
17600
17601 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
17602 (FP_REGNO_P): New macros.
17603 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
17604 (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
17605 (EH_RETURN_STACKADJ_RTX): Use A0_REG.
17606 * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
17607
17608 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
17609
17610 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
17611 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
17612 to $tmake_file.
17613 * config/m68k/t-floatlib: New file, extracting common code from...
17614 * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
17615 * config/m68k/t-uclinux: Here.
17616 * config/m68k/fpgnulib.c: Do not compile extendeed precision
17617 routines on ColdFire targets.
17618
17619 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
17620
17621 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
17622 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
17623 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
17624 (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
17625 explicitly set MOTOROLA to 1.
17626 * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
17627
17628 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17629 Nathan Sidwell <nathan@codesourcery.com>
17630
17631 * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
17632 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
17633 * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
17634 * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
17635 * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
17636 * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
17637 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
17638 (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
17639 (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
17640 * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
17641 * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
17642 (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
17643 (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
17644 (DBX_REGISTER_NUMBER): Delete.
17645 * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
17646 (PCC_STATIC_STRUCT_RETURN): Don't undefine.
17647 * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
17648
17649 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17650
17651 * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
17652 * config/flat.h: New file.
17653 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
17654 OBJECT_FORMAT_FLAT.
17655 * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
17656 indirect references for -msep-data or -mid-shared-library.
17657 Do not use PC-relative code addresses either.
17658 * config/m68k/m68k.c (override_options): Restrict -fPIC error
17659 to -mpcrel.
17660 * config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o
17661 for shared libraries and crt1.o for executables. Use crti.o and
17662 crtbegin.o.
17663 (ENDFILE_SPEC): Use crtend.o and crtn.o.
17664 (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
17665 Do not add -elf2flt or -shared-lib-id options here.
17666 (LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given.
17667 Pass -shared-lib-id if -mid-shared-library, taking the library
17668 identifier from -mshared-library-id if given, otherwise
17669 defaulting to 0.
17670 (EH_FRAME_IN_DATA_SECTION): Do not undefine.
17671 (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
17672 (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
17673 and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
17674 (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
17675 * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
17676 and crtend.o.
17677 * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
17678 jump sequence for ISA A and ISA A+.
17679 (PICJUMP): Likewise.
17680
17681 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17682
17683 * config.gcc (m68k-*-uclinux*): Base the port on the common
17684 and m68k GNU/Linux files rather than on the generic ELF ones.
17685 * config/m68k/uclinux.h (TARGET_VERSION): Override.
17686 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
17687
17688 2007-01-18 Julian Brown <julian@codesourcery.com>
17689 Richard Sandiford <richard@codesourcery.com>
17690
17691 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
17692 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
17693 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
17694 before redefining.
17695 * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
17696 80 unconditionally.
17697 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
17698
17699 2007-01-18 Richard Sandiford <richard@codesourcery.com>
17700
17701 * doc/install.texi: Document m68k-uclinuxoldabi.
17702 * config.gcc (m68k-*-uclinuxoldabi): New configuration.
17703 * config/m68k/uclinux-oldabi.h: New file, copied from
17704 config/m68k/uclinux.h.
17705
17706 2007-01-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
17707
17708 * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
17709 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
17710 (m32r_compute_frame_size): Use unsigned for regno.
17711 (m32r_reload_lr): Use gen_frame_mem.
17712 (pop): New.
17713 (m32r_output_function_epilogue): Don't output the function epilogue
17714 textually here.
17715 (m32r_expand_epilogue): New.
17716 (direct_return): Return false if the function has the interrupt
17717 attribute.
17718 (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
17719 * config/m32r/m32r.md (epilogue): New expander.
17720 (return_lr, return_rte): New insns.
17721 (return): Make it expander.
17722 (return_normal): New expander.
17723
17724 2007-01-18 Josh Conner <jconner@apple.com>
17725
17726 PR target/30485
17727 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
17728 support for UNLE, UNLT, UNGE, and UNGT.
17729
17730 2007-01-18 Jan Hubicka <jh@suse.cz>
17731
17732 * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
17733 * tree-tailcall (add_virtual_phis): Likewise.
17734 (optimize_tail_call): Return TODOs.
17735 (execute_tail_calls): Return TODOs.
17736 * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
17737 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
17738 changed.
17739 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
17740 Cleanup cfg using TODO.
17741 * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
17742 * passes.c (execute_function_todo): When cleanup did something, remove
17743 unused locals.
17744 * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
17745 (make_edges): Don't cleanup_cfg.
17746
17747 2007-01-18 Uros Bizjak <ubizjak@gmail.com>
17748
17749 * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
17750 UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
17751 operate on the top of stack.
17752 [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
17753 register handling of instructions that output to the second
17754 stack slot.
17755 [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
17756 (move_for_stack_reg): Special-case check for dead destination
17757 stack slot for constant load of 1.0 inside UNSPEC_TAN.
17758
17759 * config/i386/i386.md (UNSPEC_TAN): New constant.
17760 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
17761 (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
17762 to correctly model move of constant 1.0 to top stack slot.
17763 (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
17764 (unnamed peephole2 pattern): Remove corresponding peephole2
17765 pattern that optimizes tan insn and loading of constant 1.0.
17766 (tanxf2): Use fptanxf4_i387.
17767 (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
17768 patterns using X87MODEF12 mode macro. Use fptan_extend<mode>xf4_i387
17769 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
17770 disable patterns for SSE math.
17771 (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
17772 (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
17773
17774 2007-01-18 Dirk Mueller <dmueller@suse.de>
17775 Richard Guenther <rguenther@suse.de>
17776
17777 PR diagnostic/8268
17778 * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
17779 * common.opt (Warray-bounds): Add new warning option.
17780 * c-opts.c (c_common_handle_option): Define -Warray-bounds
17781 if -Wall is given.
17782 * Makefile.in: make tree-vrp.o depend on toplev.h
17783 * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
17784 is enabled.
17785 (check_array_refs, check_array_bounds, check_array_ref): New.
17786
17787 2007-01-18 Jan Hubicka <jh@suse.cz>
17788
17789 * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
17790 (execute_ssa_ccp): Return flags conditionally.
17791 * tree-ssa-propagate.c (substitue_and_fold): Return if something was
17792 changed.
17793 * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
17794
17795 2007-01-18 Steven Bosscher <steven@gcc.gnu.org>
17796
17797 * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
17798 the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
17799
17800 * Makefile.c (GTFILES): Add cfglayout.h.
17801 * gengtype.c (open_base_files): Likewise.
17802 * cfglayout.c (cfg_layout_function_footer,
17803 cfg_layout_function_header) Reindent to make gengtype happy.
17804 * cfglayout.h (cfg_layout_function_footer,
17805 cfg_layout_function_header): Add GTY(()) marker.
17806
17807 * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
17808
17809 2007-01-18 Ben Elliston <bje@au.ibm.com>
17810
17811 * genautomata.c (write_automata): Include xstrerror output in the
17812 error message if writing the DFA description file fails.
17813
17814 2007-01-17 H.J. Lu <hongjiu.lu@intel.com>
17815
17816 * config/mips/mips-protos.h (mips_output_external): Make it
17817 return void.
17818 * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
17819 * config/mips/mips.c (irix_output_external_libcall): Likewise.
17820 (extern_list): Likewise.
17821 (extern_head): Likewise.
17822 (TARGET_ASM_FILE_END): Likewise.
17823 (mips_file_end): Likewise.
17824 (mips_output_external): Rewritten.
17825
17826 2007-01-18 Ben Elliston <bje@au.ibm.com>
17827
17828 * genpreds.c (write_insn_preds_c): Only write out the function
17829 body for regclass_for_constraint if we have register constraints.
17830
17831 2007-01-17 Tom Tromey <tromey@redhat.com>
17832
17833 * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
17834 * doc/install.texi (Testing): Use sourceware.org.
17835 (Binaries): Likewise.
17836 (Specific): Likewise.
17837 * doc/contrib.texi (Contributors): Use sourceware.org.
17838
17839 2007-01-17 Anatoly Sokolov <aesok@post.ru>
17840
17841 * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
17842 (AVR_ENHANCED): Rename to ...
17843 (AVR_HAVE_MUL): ... new.
17844 (avr_enhanced_p): Rename to ...
17845 (avr_have_mul_p): ... new.
17846 (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
17847 'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
17848 * config/avr/avr.c (avr_enhanced_p): Rename to ...
17849 (avr_have_mul_p): ... new.
17850 (base_arch_s): Rename 'enhanced' to 'have_mul'.
17851 (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
17852 'avr_enhanced_p' and 'enhanced'.
17853 (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
17854 AVR_HAVE_MUL instead of AVR_ENHANCED.
17855 * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
17856 (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
17857 *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
17858 instead of AVR_ENHANCED.
17859 (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
17860 * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
17861 (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
17862
17863 2007-01-17 Ian Lance Taylor <iant@google.com>
17864
17865 * vec.h (VEC_reserve_exact): Define.
17866 (vec_gc_p_reserve_exact): Declare.
17867 (vec_gc_o_reserve_exact): Declare.
17868 (vec_heap_p_reserve_exact): Declare.
17869 (vec_heap_o_reserve_exact): Declare.
17870 (VEC_OP (T,A,reserve_exact)): New static inline function, three
17871 versions.
17872 (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
17873 negative parameter.
17874 (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
17875 (VEC_OP (T,A,copy)) [all versions]: Likewise.
17876 (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
17877 * vec.c (calculate_allocation): Add exact parameter. Change all
17878 callers.
17879 (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
17880 (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
17881 (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
17882 (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
17883 (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
17884 (vec_heap_p_reserve_exact): New function.
17885 (vec_heap_o_reserve_exact): New function.
17886
17887 2007-01-17 Jan Hubicka <jh@suse.cz>
17888
17889 * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
17890
17891 2007-01-17 Eric Christopher <echristo@apple.com>
17892
17893 * config.gcc: Support core2 processor.
17894
17895 2007-01-16 Jan Hubicka <jh@suse.cz>
17896
17897 * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
17898 the names, just unlink the chain so we don't crash on dangling
17899 pointers
17900 to dead SSA names.
17901
17902 2007-01-16 Jan Hubicka <jh@suse.cz>
17903
17904 * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
17905 * tree-pass.h: Reorder to make IPA passes appear toegher.
17906 (pass_early_inline, pass_inline_parameters, pass_apply_inline):
17907 Declare.
17908 * cgraphunit.c (cgraph_finalize_function): Do not compute inling
17909 parameters, do not call early inliner.
17910 * ipa-inline.c: Update comments. Include tree-flow.h
17911 (cgraph_decide_inlining): Do not compute inlining parameters.
17912 (cgraph_decide_inlining_incrementally): Return TODOs; assume to
17913 be called with function context set up.
17914 (pass_ipa_inline): Remove unreachable functions before pass.
17915 (cgraph_early_inlining): Simplify assuming to be called from the
17916 PM as local pass.
17917 (pass_early_inline): New pass.
17918 (cgraph_gate_ipa_early_inlining): New gate.
17919 (pass_ipa_early_inline): Turn into simple wrapper.
17920 (compute_inline_parameters): New function.
17921 (gate_inline_passes): New gate.
17922 (pass_inline_parameters): New pass.
17923 (apply_inline): Move here from tree-optimize.c
17924 (pass_apply_inline): New pass.
17925 * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
17926 transforming.
17927 * tree-inline.c (optimize_inline_calls): Return TODOs rather than
17928 doing them by hand.
17929 (tree_function_versioning): Do not allocate dummy struct function.
17930 * tree-inline.h (optimize_inline_calls): Update prototype.
17931 * tree-optimize.c (execute_fixup_cfg): Export.
17932 (pass_fixup_cfg): Remove
17933 (tree_rest_of_compilation): Do not apply inlines.
17934 * tree-flow.h (execute_fixup_cfg): Declare.
17935 * Makefile.in (gt-passes.c): New.
17936 * passes.c: Include gt-passes.h
17937 (init_optimization_passes): New passes.
17938 (nnodes, order): New static vars.
17939 (do_per_function_toporder): New function.
17940 (execute_one_pass): Dump current pass here.
17941 (execute_ipa_pass_list): Don't dump current pass here.
17942
17943 2007-01-16 Janis Johnson <janis187@us.ibm.com>
17944
17945 * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
17946 (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
17947
17948 2007-01-16 David Edelsohn <edelsohn@gnu.org>
17949
17950 * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
17951 (strong_alias): Define.
17952 (__gcc_qmul): Provide non-FMA for soft-float.
17953 (__gcc_qdiv): Same.
17954 (__gcc_qneg): New.
17955 (__gcc_qeq): New.
17956 (__gcc_qle): New.
17957 (__gcc_qge): New.
17958 (__gcc_qunord): New.
17959 (__gcc_stoq): New.
17960 (__gcc_dtoq): New.
17961 (__gcc_qtos): New.
17962 (__gcc_qtod): New.
17963 (__gcc_qtoi): New.
17964 (__gcc_qtou): New.
17965 (__gcc_itoq): New.
17966 (__gcc_utoq): New.
17967 (fmsub): New.
17968 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
17969 soft-float functions.
17970 * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
17971 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
17972 about long double soft float.
17973
17974 2007-01-16 Dorit Nuzman <dorit@il.ibm.com>
17975 Tehila Meyzels <tehila@il.ibm.com>
17976
17977 * tree-vectorizer.h (is_pattern_stmt_p): New.
17978 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
17979 formatting (tabs instead of spaces). Cleanup and clarify setting
17980 of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
17981 * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
17982 (vectorizable_type_demotion): Check that types are integral.
17983 (vectorizable_type_promotion): Likewise.
17984 (vectorizable_store): Fix typo. Eliminate new-line at end of
17985 comments.
17986
17987 2007-01-16 Jan Hubicka <jh@suse.cz>
17988
17989 * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
17990 cgraph edges too.
17991
17992 2007-01-15 Eric Christopher <echristo@apple.com>
17993
17994 * ifcvt.c: Include vec.h, vecprim.h.
17995 (check_cond_move_block): New argument regs.
17996 Reorganize. Add registers used to regs.
17997 (cond_move_process_if_block): Use regs set above as
17998 loop bounds.
17999
18000 2007-01-15 Eric Christopher <echristo@apple.com>
18001
18002 * config/darwin.h: Update copyright.
18003 (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
18004 (LINK_COMMAND_SPEC): Add -u.
18005 (LINK_SPEC): Fix umbrella for above.
18006
18007 2007-01-15 Joseph S. Myers <joseph@codesourcery.com>
18008
18009 * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
18010 glibc CVS.
18011
18012 2007-01-15 Tom Tromey <tromey@redhat.com>
18013
18014 * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
18015 * doc/install.texi (Testing): Don't mention jacks.
18016 (Configuration): Document --enable-java-maintainer-mode. Move
18017 --with-java-home to libgcj-specific section. Document
18018 --with-ecj-jar.
18019 (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
18020
18021 2007-01-15 Jan Hubicka <jh@suse.cz>
18022
18023 * tree-ssa-dce.c (DCE_TODOs): New.
18024 (propagate_necessity): Return if something changed.
18025 (eliminate_unnecessary_stmts): Likewise.
18026 (perform_tree_ssa_dce): Return TODO flags when needed.
18027 (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
18028
18029 2007-01-15 Uros Bizjak <ubizjak@gmail.com>
18030
18031 * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
18032 (fyl2x_extend<mode>xf3_i387): New insn pattern.
18033 (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
18034 patterns using X87MODEF12 mode macro. Extend operand 1
18035 to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
18036 (log10<mode>2): Ditto.
18037 (log2<mode>2): Ditto.
18038 (log1p<mode>2): Ditto.
18039 (logb<mode>2): Ditto.
18040 (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
18041 (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
18042 (*fxtractxf3_i387): Rename from *fxtractxf3.
18043 (fxtract_extend<mode>xf3_i387): New insn pattern.
18044 (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
18045 * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
18046 and gen_fyl2xxf3_i387().
18047
18048 2007-01-14 Zdenek Dvorak <dvorakz@suse.cz>
18049
18050 * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
18051 * cfgloopmanip.c (fix_loop_placement): Made static. Use
18052 get_loop_exit_edges. Changed return type to bool.
18053 * cfgloop.h (fix_loop_placement): Declaration removed.
18054
18055 2007-01-14 Dorit Nuzman <dorit@il.ibm.com>
18056
18057 * param.h (MIN_VECT_LOOP_BOUND): New.
18058 * params.def (MIN_VECT_LOOP_BOUND): New.
18059 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
18060 argument - minimum threshold for number of iterations.
18061 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
18062 argument to declaration.
18063 * tree-vect-analyze.c (vect_analyze_operations): Check value of
18064 MIN_VECT_LOOP_BOUND.
18065 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
18066 slpeel_tree_peel_loop_to_edge with additional argument.
18067 (vect_do_peeling_for_alignment): Likewise.
18068 * doc/invoke.texi (min-vect-loop-bound): Document new param option.
18069
18070 2007-01-14 Uros Bizjak <ubizjak@gmail.com>
18071
18072 PR target/30413
18073 * config/i386/i386.c (print_operand) ['z']: Output 'b' for
18074 operands of size 1.
18075
18076 2007-01-14 Jan Hubicka <jh@suse.cz>
18077
18078 * tree-dfa.c (remove_referenced_var): New function.
18079 * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
18080 prune referenced vars list too.
18081 * tree-flow.h (remove_referenced_var): Declare.
18082
18083 2007-01-14 Jan Hubicka <jh@suse.cz>
18084
18085 * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
18086 separately.
18087 (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
18088 (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
18089 * except.h (verify_eh_throw_table_statements): Kill prototype.
18090 * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
18091 into call exrepssions.
18092 * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
18093 eh trhow verifier.
18094 * tree-cfg.c: Include pointer-set.h.
18095 (verify_node_sharing): Work on pointer set.
18096 (verify_eh_throw_stmt_node): New.
18097 (verify_stmts): Use pointers sets, verify throw_stmt.
18098
18099 2007-01-13 Zdenek Dvorak <dvorakz@suse.cz>
18100
18101 * ipa-reference.c (analyze_function): Consider also addresses taken
18102 in phi nodes.
18103
18104 2007-01-12 Roger Sayle <roger@eyesopen.com>
18105
18106 * c-typeck.c (null_pointer_constant_p): Replace use of
18107 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
18108 (build_c_cast): Likewise.
18109
18110 2007-01-12 Roger Sayle <roger@eyesopen.com>
18111
18112 * tree.h (force_fit_type_double): Remove unused final argument.
18113 * c-common.c (constant_expression_warning): Replace use of
18114 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
18115 (convert_and_check): Likewise.
18116 (shorten_compare): Update call to force_fit_type_double.
18117 (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
18118 * convert.c (convert_to_pointer): Update call to
18119 force_fit_type_double.
18120 * fold-const.c (force_fit_type_double): Remove overflowed_const
18121 argument.
18122 (int_const_binop, fold_convert_const_int_from_int,
18123 fold_convert_const_int_from_real, fold_div_compare,
18124 fold_sign_changed_comparison, fold_unary, fold_negate_const,
18125 fold_abs_const, fold_not_const): Remove the final argument from
18126 calls to force_fit_type_double.
18127
18128 2007-01-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
18129
18130 * configure.ac: Set insn to "nop" for spu-*-* also.
18131 * configure: Regenerate.
18132
18133 2007-01-12 Olga Golovanevsky <olga@il.ibm.com>
18134
18135 * builtins.def : Add BUILT_IN_FREE.
18136
18137 2007-01-12 Jan Hubicka <jh@suse.cz>
18138
18139 PR tree-optimization/30443
18140 * tree-inline.c (tree_function_versioning): Do not optimize when
18141 cloning for inlining.
18142
18143 2007-01-12 Zdenek Dvorak <dvorakz@suse.cz>
18144
18145 * doc/loop.texi: Document recording of loop exits.
18146 * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
18147 (update_single_exits_after_duplication,
18148 update_single_exit_for_duplicated_loop,
18149 update_single_exit_for_duplicated_loops): Removed.
18150 (duplicate_loop_to_header_edge): Do not call
18151 update_single_exits_after_duplication and
18152 update_single_exit_for_duplicated_loops.
18153 (loop_version): Do not update single_exit information.
18154 (fix_loop_structure): Use record_loop_exits instead of
18155 mark_single_exit_loops.
18156 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
18157 the lists of loop exits.
18158 * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
18159 split_edge, merge_blocks): Update the lists of loop exits.
18160 * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
18161 loop_optimizer_init.
18162 * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
18163 of mark_single_exit_loops.
18164 (loop_optimizer_finalize): Call release_recorded_exits.
18165 * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
18166 LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
18167 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
18168 update single exit information.
18169 * lambda-code.c (perfect_nestify): Ditto.
18170 * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
18171 (mark_single_exit_loops): Removed.
18172 (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
18173 get_exit_descriptions, rescan_loop_exit, record_loop_exits,
18174 dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
18175 functions.
18176 (get_loop_exit_edges, single_exit): Use recorded exit lists.
18177 (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
18178 (verify_loop_structure): Verify consistency of the exit lists.
18179 (flow_loops_find): Use alloc_loop. Initialize exits hash.
18180 (set_single_exit): Removed.
18181 * cfgloop.h (struct loop_exit): New function.
18182 (struct loop): single_exit_ field replaced by exits field.
18183 (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
18184 LOOPS_HAVE_RECORDED_EXITS.
18185 (struct loops): Added exits hash.
18186 (mark_single_exit_loops, set_single_exit): Declaration removed.
18187 (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
18188
18189 2007-01-12 Richard Sandiford <richard@codesourcery.com>
18190
18191 * doc/invoke.texi: Avoid use of @headitem.
18192
18193 2007-01-12 Richard Sandiford <richard@codesourcery.com>
18194
18195 * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
18196
18197 2007-01-12 Richard Sandiford <richard@codesourcery.com>
18198
18199 * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
18200 list of targets.
18201
18202 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
18203 Richard Sandiford <richard@codesourcery.com>
18204
18205 * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
18206 * config/m68k/m68k.opt: Resort options.
18207 (mbitfield, mrtd, mshort): Remove RejectNegative properties.
18208
18209 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
18210 Richard Sandiford <richard@codesourcery.com>
18211
18212 * doc/invoke.texi: Document the macros that are defined by
18213 m68k's -mtune and -mhard-float options.
18214 * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
18215 (m68k_cpp_cpu_family): Likewise.
18216 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
18217 of __ucfv*__ macros. Define __mcffpu__ if generating code for
18218 ColdFire FPUs. Define __mcf_cpu_* and __mcf_family_* macros.
18219 * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
18220 (m68k_cpp_cpu_family): Likewise.
18221
18222 2007-01-12 Richard Sandiford <richard@codesourcery.com>
18223
18224 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
18225 macros besides mc68000 as tuning macros. Use a switch statement
18226 to set them and mcpu32.
18227
18228 2007-01-12 Julian Brown <julian@codesourcery.com>
18229
18230 * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
18231 (TARGET_68040_ONLY): Rename to...
18232 (TARGET_68040): ...this.
18233 * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
18234 * config/m68k/m68k.md: Likewise.
18235
18236 2007-01-12 Julian Brown <julian@codesourcery.com>
18237 Nathan Sidwell <nathan@codesourcery.com>
18238 Richard Sandiford <richard@codesourcery.com>
18239
18240 * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
18241 the -mcpu= argument associated with the --with-cpu setting.
18242 Define M68K_DEFAULT_TUNE to the default -mtune= option,
18243 if different from the one implied by the -mcpu setting.
18244 Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
18245 using mcpu=FOO as the default CPU option. Set target_cpu_default2.
18246 * doc/invoke.texi: Mention ColdFire in the introduction to the
18247 m68k options. Document the new -march, -mcpu, -mtune, -mdiv,
18248 -mno-div and -mhard-float options. Make -m68881 a synonym for
18249 -mhard-float. Document the previously-undocumented -m5206e,
18250 -m528x, -m5307 and -m5407 options. Tweak the existing option
18251 documentation for consistency.
18252 * doc/install.texi: Mention new --with-cpu arguments.
18253 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
18254 default CPU if neither -mcpu nor -march are specified.
18255 (ASM_CPU_SPEC): Pass down -mcpu and -march options.
18256 (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
18257 TARGET_ISA*. Set the legacy __mcf*__ cpu macros in the same way,
18258 using m68k_tune to decide between families that implement the
18259 same ISA. Use m68k_tune to set __mcfv4e__.
18260 (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
18261 (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
18262 (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
18263 (FL_ISA_C, FL_ISA_MMU): New macros.
18264 (MASK_COLDFIRE): Delete.
18265 (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
18266 (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
18267 (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
18268 (TARGET_HARD_FLOAT): Do not define here.
18269 (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
18270 (TUNE_68000): New macro.
18271 (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
18272 (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
18273 (TUNE_CFV2): Redefine in terms of m68k_tune.
18274 (uarch_type, target_device, fpu_type): New enums.
18275 (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
18276 * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
18277 (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
18278 (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
18279 (FL_FOR_isa_c): New macros.
18280 (m68k_isa): New enum.
18281 (m68k_target_selection): New structure.
18282 (all_devices, all_isas, all_microarchs): New tables.
18283 (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
18284 (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
18285 (MASK_ALL_CPU_BITS): Delete.
18286 (m68k_find_selection): New function.
18287 (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
18288 Map the legacy target options to a combination of the new ones.
18289 (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
18290 m68k_cpu_flags. Handle M68K_DEFAULT_TUNE. Use m68k_cpu_flags
18291 to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
18292 settings.
18293 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
18294 (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
18295 properties.
18296 (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
18297 (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
18298 * config/m68k/m68k-devices.def: New file.
18299
18300 2007-01-12 Richard Sandiford <richard@codesourcery.com>
18301 Nathan Sidwell <nathan@codesourcery.com>
18302
18303 * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
18304 (SUBTARGET_EXTRA_SPECS): New macros.
18305 * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
18306 use %(asm_cpu_spec) instead.
18307 * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
18308 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
18309 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
18310 (EXTRA_SPECS): Rename to...
18311 (SUBTARGET_EXTRA_SPECS): ...this.
18312
18313 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
18314 Richard Sandiford <richard@codesourcery.com>
18315 Julian Brown <julian@codesourcery.com>
18316
18317 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
18318 (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
18319 to the configuration's default CPU.
18320 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
18321 Remove default masks.
18322 (m680[012]0-*-*): Set the default with_cpu to the first part of
18323 the target name.
18324 (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
18325 (m68k*-*-linux): Extend the --with-cpu handling to...
18326 (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000
18327 and m68010. Don't set target_cpu_default2.
18328 * doc/install.texi: Document --with-cpu for m68k.
18329 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
18330 * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
18331 (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
18332 (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
18333 (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
18334 (ASM_SPEC): Remove use of %(asm_cpu_default).
18335 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
18336 * config/m68k/linux.h (TARGET_DEFAULT): Delete.
18337 (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here.
18338 * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
18339 __HAVE_FPU__ if TARGET_HARD_FLOAT.
18340 (TARGET_DEFAULT): Delete.
18341 (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
18342 cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
18343 (CPP_CPU_SPEC): Delete.
18344 (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
18345 the appropriate string.
18346 (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
18347 (CPP_SPEC): Define to NETBSD_CPP_SPEC.
18348 (ASM_SPEC): Don't use %(asm_default_spec).
18349 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
18350 TARGET_DEFAULT and add MASK_68881.
18351 * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
18352
18353 2007-01-12 Richard Sandiford <richard@codesourcery.com>
18354
18355 * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
18356 (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
18357 MASK_68010 alongside MASK_68020.
18358 * doc/invoke.texi: Document -m68010.
18359 * config/m68k/m68k.opt (m68010): New.
18360 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
18361 if TUNE_68010.
18362 (TUNE_68010): New macro.
18363 * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
18364 (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
18365 (M68K_CPU_m68332): Add MASK_68010.
18366 * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
18367 fallback definition.
18368 * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
18369 defines.
18370 * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
18371 (m68k_handle_option): Handle OPT_m68010. Add MASK_68010
18372 to all entries that use MASK_68020.
18373 (output_move_simode_const, output_move_himode, output_move_qimode)
18374 (output_move_stricthi, output_move_strictqi): Use TARGET_68010
18375 instead of TARGET_68020 to select clr behavior. Remove comment
18376 about there being no TARGET_68010.
18377 * config/m68k/m68k.md: Likewise throughout.
18378
18379 2007-01-12 Julian Brown <julian@codesourcery.com>
18380
18381 * config/m68k/m68k.h (TARGET_ISAB): New macro.
18382 * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
18383 * config/m68k/m68k.md: Likewise.
18384
18385 2007-01-12 Julian Brown <julian@codesourcery.com>
18386
18387 * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
18388 TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
18389
18390 2007-01-12 Julian Brown <julian@codesourcery.com>
18391
18392 * config/m68k/m68k.h (TUNE_68040_60): New macro.
18393 * config/m68k/m68k.c (standard_68881_constant_p): Use it.
18394 * config/m68k/m68k.md: Likewise.
18395
18396 2007-01-12 Julian Brown <julian@codesourcery.com>
18397 Richard Sandiford <richard@codesourcery.com>
18398
18399 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
18400 instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
18401 TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
18402 TARGET_CPU32.
18403 (TARGET_CPU32): Rename to...
18404 (TUNE_CPU32): ...this.
18405 (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
18406 (TUNE_CFV2): New macros.
18407 * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
18408 remove conditions that are implied by TARGET_68020.
18409 * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
18410 instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
18411 (m68k_output_function_epilogue): Likewise.
18412 (m68k_rtx_costs): Likewise. Use TUNE_68060 instead of TARGET_68060
18413 and TUNE_CFV2 instead of TARGET_5200. Use TUNE_68000_10 instead of
18414 "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
18415 non-68000 timings. Refactor multiplication and division costs.
18416 (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
18417 TUNE_CPU32 instead of TARGET_CPU32.
18418 (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
18419 and TUNE_68060 instead of TARGET_68060.
18420 * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
18421 TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
18422 TARGET_CPU32.
18423 (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
18424 && !TARGET_COLDFIRE" to choose between moveq and clr.
18425 Likewise in the unnamed movsf pattern.
18426 (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
18427 "!TARGET_68020 && !TARGET_COLDFIRE". Likewise the unnamed
18428 ashiftrt pattern.
18429
18430 2007-01-12 Richard Sandiford <richard@codesourcery.com>
18431
18432 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
18433 of tabbing before backslashes.
18434
18435 2007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18436
18437 * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
18438 * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
18439 (ASM_OUTPUT_INTERNAL_LABEL): Define.
18440
18441 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
18442
18443 * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
18444 find_interesting_uses_cond.
18445 (find_interesting_uses_cond): Use extract_cond_operands.
18446 (rewrite_use_compare): Use extract_cond_operands and
18447 force_gimple_operand_bsi. Do not call update_stmt.
18448 (determine_use_iv_cost_condition): Use extract_cond_operands.
18449 Return cheaper of using original bound and changing the exit bound.
18450
18451 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
18452
18453 PR tree-optimization/29516
18454 * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
18455 most_expensive_mult_to_index, addr_to_parts,
18456 create_mem_ref, maybe_fold_tmr): Make the type of
18457 fields of TARGET_MEM_REF sizetype.
18458 (move_fixed_address_to_symbol, move_pointer_to_base):
18459 New functions.
18460 * tree.def (TARGET_MEM_REF): Add comment on types of
18461 the operands.
18462
18463 2007-01-11 Joseph Myers <joseph@codesourcery.com>
18464
18465 * c-common.c (vector_types_convertible_p): Treat opaque types as
18466 always convertible if they have the same size, but not otherwise.
18467
18468 2007-01-11 Steven Bosscher <steven@gcc.gnu.org>
18469
18470 * ifcvt.c (struct noce_if_info): Add comments to the fields.
18471 Remove the b_unconditional field.
18472 (noce_try_sign_mask): Do not look at b_unconditional.
18473 (noce_process_if_block): Do not use merge_if_blocks. Update
18474 the CFG here. Do not set b_unconditional.
18475 (cond_move_process_if_block): Likewise.
18476 (find_cond_trap): Likewise.
18477 (check_cond_move_block): Require simple jump insns at the end
18478 of the basic block.
18479
18480 2007-01-11 Jan Hubicka <jh@suse.cz>
18481
18482 PR tree-optimization/1046
18483 * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
18484 when alias info is not ready.
18485 (pass_tail_recursion): Do not require aliasing.
18486 * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
18487 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
18488 * tree-ssa-copy.c (pass_copy_prop): Likewise.
18489 * tree-ssa-forwprop.c (pass_forwprop): Likewise.
18490 * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
18491 * passes.c (init_optimization_passes): Execute rename_ssa_copies,
18492 ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
18493 before inlining.
18494 * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
18495 When aliasing is not build, mark statement as volatile.
18496
18497 2007-01-11 Tom Tromey <tromey@redhat.com>
18498
18499 PR preprocessor/15185, PR preprocessor/20989:
18500 * doc/cppopts.texi <-MT>: Update description of algorithm for
18501 computing default target.
18502 <-M, -MD>: Reword "basename" text.
18503
18504 2007-01-11 Roger Sayle <roger@eyesopen.com>
18505
18506 * builtins.c (expand_builtin_pow, expand_builtin_powi,
18507 fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
18508 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
18509 fold_builtin_int_int_roundingfn, fold_builtin_bitop,
18510 fold_builtin_bswap, real_constp, fold_builtin_pow,
18511 fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
18512 do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
18513 uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
18514 * convert.c (convert_to_pointer): Likewise.
18515 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
18516 * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
18517 const_binop, fold_convert_const_int_from_int,
18518 fold_convert_const_int_from_real,
18519 fold_convert_const_real_from_real, sign_bit_p,
18520 optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
18521 fold_sign_changed_comparison, fold_unary, fold_comparison,
18522 fold_binary, multiple_of_p, tree_Expr_non_zero_p,
18523 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
18524 * print-tree.c (print_node_brief, print_node): Likewise.
18525 * stor-layout.c (place_field, layout_type): Likewise.
18526 * tree-chrec.c (keep_cast): Likewise.
18527 * tree.c (build_vector, build_real, build_real_from_int_cst,
18528 build_complex): Likewise.
18529
18530 2007-01-11 Roger Sayle <roger@eyesopen.com>
18531
18532 * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete. For the time being,
18533 treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
18534
18535 2007-01-11 Paolo Bonzini <bonzini@gnu.org>
18536
18537 * configure.ac (strict1_warn): Rename to strict_warn.
18538 (WERROR, --enable-werror, symlink hacks, stage1_cflags,
18539 cc_set_by_configure, quoted_cc_set_by_configure,
18540 stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
18541 all_boot_languages, all_stagestuff): Remove.
18542 (target_list): Remove bootstrap targets.
18543 * Makefile.in (quickstrap): Unconditionally make a synonym of all.
18544 (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
18545 REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
18546 SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
18547 VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
18548 STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
18549 stage1_copy, stage2_build, stage2_copy, stageprofile_build,
18550 stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
18551 stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
18552 bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
18553 bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
18554 unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
18555 restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
18556 cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
18557 *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
18558 stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
18559 stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
18560 risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
18561 (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
18562 (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
18563 (mostlyclean): Adjust.
18564 (clean, distclean): Don't mention bootstrap stuff.
18565 * configure: Regenerate.
18566 * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
18567 java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
18568 treelang/config-lang.in (stagestuff): Remove.
18569 * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
18570 stageprofile, stagefeedback, stagestuff): Remove mention.
18571
18572 2007-01-11 Nick Clifton <nickc@redhat.com>
18573
18574 * config/mcore/predicates.md (mcore_general_movesrc_operand):
18575 Accept CONSTs.
18576 (mcore_general_movdst_operand): Do not accept CONST_INTs.
18577 (mcore_arith_K_S_operand): Run the test for the S constraint not
18578 the test for the M constraint.
18579 (mcore_addsub_operand): Do not accept integer values that are
18580 larger than 32 bits.
18581 * config/mcore/mcore.md: Remove unused constraints from split.
18582 (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
18583 (addsi3): Likewise.
18584 (allocate_stack): Likewise.
18585 * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
18586 operands to 32 bits.
18587 (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
18588 INTVAL.
18589 (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
18590 mcore_const_ok_for_inline, mcore_const_trick_uses_not,
18591 try_constant_tricks, mcore_num_ones, mcore_num_zeros,
18592 mcore_output_bclri, mcore_output_andn, output_inline_const,
18593 mcore_output_move, mcore_output_movedouble): Likewise.
18594 (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
18595 (output_inline_const): Likewise.
18596 (output_inline_const): Fix format strings used in sprintf
18597 statements.
18598 * config/mcore/mcore-protos.h: Update prototypes for changed
18599 functions in mcore.c.
18600 * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
18601 HOST_WIDE_INT and not int.
18602 (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
18603 CONST_OK_FOR_N): Likewise.
18604 (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
18605 (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
18606 an INTVAL.
18607
18608 2007-01-10 Jan Hubicka <jh@suse.cz>
18609
18610 * tree-vrp.c (remove_range_assertions): Release defs.
18611 * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
18612 * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
18613
18614 2007-01-10 Paul Brook <paul@codesourcery.com>
18615
18616 * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
18617 * config/arm/arm.md (mulsi3subsi): New insn.
18618
18619 2007-01-10 Zdenek Dvorak <dvorakz@suse.cz>
18620
18621 * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
18622 (tree_transform_and_unroll_loop): New.
18623 * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
18624 Declare.
18625
18626 2007-01-10 Robert Kennedy <jimbob@google.com>
18627
18628 * fold-const.c (fold_comparison): Fold comparisons like (x *
18629 1000 < 0) to (x < 0).
18630
18631 2007-01-10 Ian Lance Taylor <iant@google.com>
18632
18633 * tree-pretty-print.c (dump_generic_node): Print parentheses when
18634 operands have the same priority.
18635
18636 2007-01-10 Tom Tromey <tromey@redhat.com>
18637
18638 * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
18639 (fold_binary): Likewise.
18640 * langhooks.c (lhd_can_use_bit_fields_p): Removed.
18641 * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
18642 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
18643 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
18644 * langhooks.h (struct lang_hooks): Removed field
18645 'can_use_bit_fields_p'.
18646
18647 2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
18648
18649 * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
18650
18651 2007-01-10 Razya Ladelsky <razya@il.ibm.com>
18652
18653 * function.c (get_last_funcdef_no): New function.
18654 * function.h (get_last_funcdef_no): Declare.
18655 * tree-inline.c (initialize_cfun): Add initialization.
18656 (tree_function_versioning): Cleanup.
18657
18658 2007-01-10 Jan Hubicka <jh@suse.cz>
18659
18660 * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
18661 PHIs.
18662
18663 2007-01-10 Sa Liu <saliu@de.ibm.com>
18664 Ben Elliston <bje@au.ibm.com>
18665
18666 * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
18667 for SAVE_NONLOCAL and Pmode for any other save level.
18668 * spu-protos.h (spu_restore_stack_block): Declare.
18669 * spu.md (save_stack_block): Remove.
18670 (restore_stack_block): Call spu_restore_stack_block.
18671 * spu.c (spu_restore_stack_block): New function.
18672 (spu_expand_epilogue): Remove old comment.
18673
18674 2007-01-09 Zdenek Dvorak <dvorakz@suse.cz>
18675
18676 PR tree-optimization/30322
18677 * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
18678 (cand_value_at): Return the value as aff_tree.
18679 (may_eliminate_iv): Convert the bound from aff_tree to tree.
18680 * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
18681 aff_combination_mult): New functions.
18682 (aff_combination_add): Use aff_combination_add_cst.
18683 (aff_combination_convert): Allow conversions to a wider type.
18684 (tree_to_aff_combination): Handle BIT_NOT_EXPR.
18685 * tree-affine.h (aff_combination_mult): Declare.
18686
18687 2007-01-09 Carlos O'Donell <carlos@codesourcery.com>
18688
18689 * doc/tm.texi: Update documentation to reflect reality of exec
18690 and start file search behaviours. Update copyright year.
18691 * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
18692 header file directories.
18693
18694 2007-01-09 Uros Bizjak <ubizjak@gmail.com>
18695
18696 * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
18697 (*cosxf2): Rename to cosxf2_i387.
18698 (*sindf2, *sinsf2): Extend operand 1 to XFmode. Macroize patterns
18699 using X87MODEF12 mode macro. Rename patterns to
18700 *sin_extend<mode>xf2_i387. Use SSE_FLOAT_MODE_P to disable patterns
18701 for SSE math.
18702 (*cosdf2, *cossf2): Ditto.
18703 (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters
18704 to match extended input operands.
18705 (sincos<mode>3): New expander.
18706 (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
18707 insn patterns and corresponding splitters.
18708
18709 2007-01-09 Kaz Kojima <kkojima@gcc.gnu.org>
18710
18711 * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
18712 (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
18713
18714 2007-01-09 Nicolas Pitre <nico@cam.org>
18715
18716 PR target/30173
18717 * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
18718
18719 2007-01-08 Geoffrey Keating <geoffk@apple.com>
18720
18721 * target.h (struct gcc_target): New field library_rtti_comdat.
18722 * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
18723 (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
18724 * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
18725 * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
18726
18727 2007-01-08 Geoffrey Keating <geoffk@apple.com>
18728
18729 * doc/invoke.texi (Optimize Options): Correct description of -O0.
18730
18731 2007-01-08 Richard Guenther <rguenther@suse.de>
18732
18733 * tree.h (force_fit_type_double): Export.
18734 (force_fit_type): Remove.
18735 * fold-const.c (force_fit_type_double): New function.
18736 (force_fit_type): Remove.
18737 (int_const_binop): Use it.
18738 (fold_convert_const_int_from_int): Likewise.
18739 (fold_convert_const_int_from_real): Likewise.
18740 (fold_div_compare): Likewise.
18741 (fold_sign_changed_comparison): Likewise.
18742 (fold_unary): Likewise.
18743 (fold_negate_const): Likewise.
18744 (fold_abs_const): Likewise.
18745 (fold_not_const): Likewise.
18746 * c-common.c (shorten_compare): Use force_fit_type_double.
18747 * convert.c (convert_to_pointer): Likewise.
18748
18749 2007-01-08 Richard Guenther <rguenther@suse.de>
18750
18751 * tree.h (build_int_cst_wide_type): Export.
18752 * tree.c (build_int_cst_wide_type): New function.
18753 (build_int_cst_wide): Fix comment.
18754 * builtins.c (fold_builtin_object_size): Use build_int_cst
18755 to build -1 or 0 of the correct type. Use fit_double_type
18756 to check for overflow.
18757 * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
18758 to build the mask.
18759 (decode_field_reference): Likewise.
18760 (all_ones_mask_p): Likewise.
18761 (native_interpret_int): Use build_int_cst_wide_type.
18762 (fold_binary): Use build_int_cst_type to build an all-ones
18763 value.
18764 * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
18765
18766 2007-01-08 Daniel Jacobowitz <dan@codesourcery.com>
18767
18768 * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
18769
18770 2007-01-09 Ben Elliston <bje@au.ibm.com>
18771
18772 * genautomata.c (STATS_OPTION): New option.
18773 (stats_flag): New flag.
18774 (gen_automata_option): Handle it.
18775 (initiate_automaton_gen): Ditto.
18776 (write_automata): Output statistics only if stats_flag is
18777 set. Likewise, output time statistics only if time_flag is set.
18778 * doc/md.texi (Processor pipeline description): Document new flag.
18779
18780 2007-01-08 Richard Guenther <rguenther@suse.de>
18781
18782 * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
18783 * tree.c (build_int_cst_type): Likewise.
18784 (size_in_bytes): Don't call force_fit_type on the result.
18785 (int_fits_type_p): Use fit_double_type.
18786 * fold-const.c (fit_double_type): New function.
18787 (force_fit_type): Use it.
18788 * tree.h (fit_double_type): Export.
18789
18790 2007-01-08 Jan Hubicka <jh@suse.cz>
18791
18792 * tree-vectorizer.c (gate_increase_alignment): Fix return type.
18793 * ipa.c (function_and_variable_visibility): Fix return type.
18794
18795 2007-01-08 Richard Guenther <rguenther@suse.de>
18796
18797 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
18798 of offset to build the index.
18799 * tree-pretty-print.c (dump_generic_node): Don't build negated
18800 const just for printing.
18801 * c-pretty-print.c (pp_c_integer_constant): Likewise.
18802 * builtins.c (fold_builtin_int_roundingfn): Check if result
18803 fits the type by using force_fit_type and comparing the result.
18804 * predict.c (predict_loops): Use compare_tree_int for comparison.
18805 * tree.c (build_int_cst): Fall back to integer_type_node for
18806 NULL_TREE type.
18807 (build_int_cst_wide): Assert type is non-null.
18808
18809 2007-01-08 Roberto Costa <roberto.costa@st.com>
18810
18811 * tree-vrp.c (extract_range_from_cond_expr): New.
18812 (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
18813 * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
18814 as expressions.
18815 (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
18816 * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
18817 tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
18818 used as expressions.
18819 * tree-object-size.c (cond_expr_object_size): New.
18820 (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
18821
18822 2007-01-08 Jan Hubicka <jh@suse.cz>
18823
18824 * tree-ssa-forwprop.c (forward_propagate_into_cond,
18825 tree_ssa_forward_propagate_single_use_va): Release defs of propagated
18826 statement.
18827
18828 2007-01-08 Richard Guenther <rguenther@suse.de>
18829
18830 PR tree-optimization/23603
18831 * tree-vrp.c (set_value_range_to_truthvalue): New function.
18832 (extract_range_from_binary): Fall back to truthvalue instead of
18833 varying for TRUTH_*_EXPR.
18834 (extract_range_from_comparison): Fall back to truthvalue instead of
18835 varying.
18836 (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
18837 if all visited PHI values were constant.
18838
18839 2007-01-08 Jan Hubicka <jh@suse.cz>
18840
18841 * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
18842 (cgraph_analyze_function): break out from ...
18843 (cgraph_finalize_compilation_unit): ... here.
18844 (cgraph_expand_function): Remove forgoten commented out line.
18845 (cgraph_optimize): Analyze functions.
18846
18847 2007-01-08 Jan Hubicka <jh@suse.cz>
18848
18849 * tree-pas.h (TODO_remove_function): New flag.
18850 (TODO_update*): Renumber.
18851 (pass_ipa_increase_alignment,
18852 pass_ipa_function_and_variable_visibility): New passes.
18853 * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
18854 (cgraph_function_and_variable_visibility): Move to ipa.c
18855 (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
18856 cgraph_increase_alignment.
18857 * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
18858 (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
18859 calling tree-inline.
18860 (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
18861 (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
18862 * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
18863 (gate_increase_alignment): New function.
18864 (pass_ipa_increase_alignment): New pass.
18865 * ipa.c: Inline tree-pass.h and timevar.h
18866 (function_and_variable_visibility): Move here from cgraphunit.c
18867 * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
18868 * passes.c (init_optimization_passes): Add the two new passes.
18869 (execute_todo): Handle cgraph_remove_functions.
18870
18871 2007-01-08 Nick Clifton <nickc@redhat.com>
18872
18873 * config/frv/predicates.md (reg_or_0_operand): Accept
18874 CONST_DOUBLEs.
18875
18876 2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
18877
18878 * config/bfin/rtems.h, config/bfin/t-rtems: New.
18879 * config.gcc: Add bfin*-rtems*.
18880
18881 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
18882
18883 * c.opt: Add -flax-vector-conversions.
18884 * c-typeck.c (convert_for_assignment): Pass flag to
18885 vector_types_convertible_p to allow emission of note.
18886 (digest_init): Likewise.
18887 * c-opts.c: Handle -flax-vector-conversions.
18888 * c-common.c (flag_lax_vector_conversions): New.
18889 (vector_types_convertible_p): Unless -flax-vector conversions
18890 has been passed, disallow conversions between vectors with
18891 differing numbers of subparts and/or element types. If such
18892 a conversion is disallowed, possibly emit a note on the first
18893 occasion only to inform the user of -flax-vector-conversions.
18894 The new last argument specifies this.
18895 * c-common.h (flag_lax_vector_conversions): New.
18896 (vector_types_convertible_p): Add extra argument.
18897 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
18898 char_type_node for V*QI type vectors.
18899 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
18900 Update to satisfy new typechecking rules.
18901 * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
18902 C and C++ variants.
18903 * doc/invoke.texi (C Dialect Options): Document
18904 -flax-vector-conversions.
18905
18906 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
18907
18908 PR tree-optimization/29877
18909 * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
18910 a register variable on the RHS to not be replaceable.
18911
18912 2007-01-08 Chen Liqin <liqin@sunnorth.com.cn>
18913 * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
18914 * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
18915 const_simm15, const_pow2, const_npow2): Added.
18916 * config/score/misc.md (insv, extv, extzv, movmemsi,
18917 move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
18918 * config/score/score.c (score_address_cost, score_select_cc_mode):
18919 Added.
18920 Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
18921 Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
18922 Update score_print_operand.
18923 * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
18924 Adjust register allocate order and update some macro define.
18925 * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
18926 mdx_block_move_straight, mdx_block_move_loop_head,
18927 mdx_block_move_loop_body, mdx_block_move_loop_foot,
18928 mdx_block_move_loop, mdx_block_move): Added.
18929 (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
18930 mdp_limm): Updated and fix some bug and typo.
18931 * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
18932 (movsf, movdf, doloop_end): Added.
18933
18934 2007-01-08 Kazu Hirata <kazu@codesourcery.com>
18935
18936 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
18937 config/arm/thumb2.md: Fix comment typos.
18938 * doc/extend.texi: Fix a typo.
18939
18940 2007-01-07 Eric Christopher <echristo@apple.com>
18941
18942 * configure.ac: Check for __stack_chk_fail for darwin.
18943 * configure: Regenerate.
18944
18945 2007-01-07 Richard Guenther <rguenther@suse.de>
18946
18947 * tree-vrp.c (extract_range_from_assert): CSE calls to
18948 compare_values where possible.
18949 (extract_range_from_unary_expr): Likewise.
18950
18951 2007-01-07 Anatoly Sokolov <aesok@post.ru>
18952
18953 * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
18954 * config/avr/avr.c (call_insn_operand): Delete function.
18955 * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
18956 instead of register number. Use predicates.
18957 * config/avr/predicates.md (const0_operand, reg_or_0_operand,
18958 call_insn_operand): Add.
18959
18960 2007-01-06 Jan Hubicka <jh@suse.cz>
18961
18962 * tree-pass.h (pass_build_cgraph_edges): Declare.
18963 * cgraphunit.c (record_refernece): Move to cgraphbuild.c
18964 (visited_nodes): Remove.
18965 (cgraph_create_edges): Move to cgraphbuild.c; rename to
18966 build_cgrpah_edges; make visited_nodes local.
18967 (cgraph_process_new_functions): DO not call initialize_inline_failed.
18968 (record_references_in_initializer): Move to cgraphbuild.c
18969 (initialize_inline_failed, rebuild_cgraph_edges,
18970 pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
18971 (verify_cgraph_node): Make visited_nodes local.
18972 (cgraph_analyze_function): Do not call cgraph_create_edges and
18973 initialize_inline_failed.
18974 (cgraph_expand_function): Do not call cgraph_lower_function;
18975 assert that function is already lowered.
18976 * Makefile.in (cgraphbuild.o): New.
18977 * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
18978 at the end of lowering passes.
18979
18980 2007-01-06 Steven Bosscher <steven@gcc.gnu.org>
18981
18982 * ifcvt.c (cond_move_convert_if_block): New function, code
18983 factored out from...
18984 (cond_move_process_if_block): ...here. Call the new function
18985 on the THEN and ELSE blocks.
18986 (merge_if_block): Do not copy global_live_at_end, merge_blocks
18987 already takes care of this.
18988
18989 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
18990
18991 PR c/19978
18992 * tree.h (TREE_OVERFLOW_P): New.
18993 * c-typeck.c (parser_build_unary_op): Warn only if result
18994 overflowed and operands did not.
18995 (parser_build_binary_op): Likewise.
18996 (convert_for_assignment): Remove redundant overflow_warning.
18997 * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
18998
18999 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19000
19001 * c-typeck.c (store_init_value): Split over two lines to follow
19002 the GNU coding style.
19003
19004 2007-01-05 Benjamin Kosnik <bkoz@redhat.com>
19005
19006 * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
19007 __GXX_EXPERIMENTAL_CXX0X__.
19008 * doc/cpp.texi: Same.
19009
19010 2007-01-05 Richard Guenther <rguenther@suse.de>
19011
19012 PR middle-end/27826
19013 * tree.c (get_narrower): Do not construct COMPONENT_REFs
19014 with mismatched types. Instead explicitly build a
19015 conversion NOP_EXPR.
19016
19017 2007-01-05 Ian Lance Taylor <iant@google.com>
19018
19019 * c-common.c (decl_with_nonnull_addr_p): New function.
19020 (c_common_truthvalue_conversion): Call it.
19021 * c-typeck.c (build_binary_op): Likewise.
19022 * c-common.h (decl_with_nonnull_addr_p): Declare.
19023
19024 2007-01-05 Jakub Jelinek <jakub@redhat.com>
19025
19026 PR c/30360
19027 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
19028 denom against 0.0.
19029
19030 2007-01-05 Joel Brobecker <brobecker@adacore.com>
19031
19032 * doc/install.texi (Final install): Document the fact that
19033 the GNAT runtime should not be stripped.
19034
19035 2007-01-04 Jan Hubicka <jh@suse.cz>
19036
19037 * tree-inline.c (fold_marked_statements): Update operand caches
19038 and EH after folding
19039
19040 2007-01-04 Ian Lance Taylor <iant@google.com>
19041
19042 * c-common.c (check_function_nonnull): Whitespace fix.
19043
19044 2007-01-04 Jan Hubicka <jh@suse.cz>
19045
19046 * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
19047 comitted older version of patch.
19048 (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
19049 function, celanup cfg and collect garbage.
19050
19051 2007-01-04 Mike Stump <mrs@apple.com>
19052
19053 * Makefile.in (mostlyclean): Don't remove libgcc anymore.
19054 (clean): Likewise.
19055
19056 2007-01-04 Eric Christopher <echristo@apple.com>
19057
19058 * libgcc2.c (__bswapsi2): Use SItype.
19059 (__bswapdi2): Use DItype.
19060 * libgcc2.h: Update for above.
19061
19062 2007-01-04 Paul Brook <paul@codesourcery.com>
19063
19064 * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
19065 mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
19066 mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
19067 umulsidi3, umulsidi3adddi, smulsi3_highpart,
19068 umulsi3_highpart): Make conditional on !arm_arch6.
19069 (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
19070 mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
19071 mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
19072 umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
19073 umulsi3_highpart_v6): New insns.
19074
19075 2007-01-04 Roger Sayle <roger@eyesopen.com>
19076
19077 * fold-const.c (fold_convert): When casting an expression to void,
19078 fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
19079 have a type. Instead of attempting to build a NOP_EXPR, return
19080 these "special" trees directly.
19081
19082 2007-01-04 Joseph Myers <joseph@codesourcery.com>
19083
19084 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
19085 MULT inside MINUS as either argument. Use rs6000_cost->dmul -
19086 rs6000_cost->fp not 0 as adjustment for outer NEG.
19087
19088 2007-01-04 Jan Hubicka <jh@suse.cz>
19089
19090 * cgraph.c (cgraph_release_function_body): New function.
19091 (cgraph_remove_node): Use it.
19092 * cgraph.h (cgraph_release_function_body): Declare.
19093 * cgraphunit.c (cgraph_expand_function): Use it.
19094 * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
19095 * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
19096 is initialized and while compilation of other function is running.
19097 * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
19098 statement CFG annotations from here to ...
19099 * tree-cfg.c (delete_tree_cfg_annotations): ... here.
19100
19101 2007-01-04 Zdenek Dvorak <dvorakz@suse.cz>
19102
19103 * cfgloop.h (enum li_flags): Make the constants powers of two.
19104
19105 2007-01-04 Jan Hubicka <jh@suse.cz>
19106
19107 * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
19108 set.
19109 (fold_marked_statements): New function.
19110 (optimize_inline_calls, tree_function_versioning): Fold new statements.
19111 * tree-inline.h (copy_body_data): Add statements_to_fold.
19112
19113 2007-01-03 Daniel Jacobowitz <dan@codesourcery.com>
19114
19115 * config.gcc: Mention libgcc/config.host.
19116 * Makefile.in: Update comments mentioning libgcc.
19117 (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
19118 (all.cross, start.encap, rest.encap, rest.cross): Update
19119 dependencies for libgcc move.
19120 (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
19121 (clean-target, clean-target-libgcc): Delete.
19122 (srcdirify, GCC_EXTRA_PARTS): New macros.
19123 (libgcc-support, libgcc.mvars): New rules.
19124 (distclean): Remove mention of mklibgcc.
19125 (install): Don't reference INSTALL_LIBGCC.
19126 (install-common): Don't reference EXTRA_PARTS.
19127 (install-libgcc, install-multilib): Delete rules.
19128 * mklibgcc.in: Delete file.
19129 * doc/configfiles.texi: Don't mention mklibgcc.
19130
19131 * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
19132 * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
19133 * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
19134 * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
19135 (mklibgcc, ldblspecs): Likewise.
19136
19137 * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
19138 (posixpre.def): Use $(T).
19139 (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
19140 (SHLIB_SRC, SHLIB_INSTALL): Delete.
19141 (SHLIB_LINK): Make dummy.
19142 * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
19143
19144 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
19145
19146 * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
19147 * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
19148 config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
19149 config/rs6000/t-newas, config/sparc/t-elf: Likewise.
19150
19151 * configure.ac (all_outputs): Remove mklibgcc.
19152 * configure: Regenerated.
19153
19154 2007-01-03 Josh Conner <jconner@apple.com>
19155
19156 PR middle-end/29683
19157 * calls.c (compute_argument_addresses): Set stack and stack_slot
19158 for partial args, too.
19159 (store_one_arg): Use locate.size.constant for the size when
19160 generating a save_area.
19161
19162 2007-01-03 Robert Kennedy <jimbob@google.com>
19163
19164 * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
19165 whose definitions are deleted due to basic block merging.
19166
19167 2007-01-03 Paul Brook <paul@codesourcery.com>
19168
19169 PR target/16634
19170 * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
19171 functions.
19172 (use_return_insn): Return 0 for Thumb interrupt functions.
19173 (print_multi_reg): Add rfe argument for IRQ returns.
19174 (arm_output_epilogue): Pop interrupt return address directly into PC.
19175 (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
19176
19177 2007-01-03 Paul Brook <paul@codesourcery.com>
19178
19179 Merge from sourcerygxx-4_1.
19180 * config/arm/thumb2.md: New file.
19181 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
19182 Thumb-2.
19183 * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
19184 * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
19185 (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
19186 * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
19187 tables.
19188 (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
19189 * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
19190 comptibility.
19191 * config/arm/ieee754-sf.S: Ditto.
19192 * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
19193 (thumb1_base_register_rtx_p): ... to this.
19194 (thumb_index_register_rtx_p): Rename...
19195 (thumb1_index_register_rtx_p): ... to this.
19196 (thumb_output_function_prologue): Rename...
19197 (thumb1_output_function_prologue): ... to this.
19198 (thumb_legitimate_address_p): Rename...
19199 (thumb1_legitimate_address_p): ... to this.
19200 (thumb_rtx_costs): Rename...
19201 (thumb1_rtx_costs): ... to this.
19202 (thumb_compute_save_reg_mask): Rename...
19203 (thumb1_compute_save_reg_mask): ... to this.
19204 (thumb_final_prescan_insn): Rename...
19205 (thumb1_final_prescan_insn): ... to this.
19206 (thumb_expand_epilogue): Rename...
19207 (thumb1_expand_epilogue): ... to this.
19208 (arm_unwind_emit_stm): Rename...
19209 (arm_unwind_emit_sequence): ... to this.
19210 (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
19211 thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
19212 thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
19213 arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
19214 thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
19215 thumb2_output_casesi): New functions.
19216 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
19217 (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
19218 FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
19219 THUMB2_WORK_REGS): Define.
19220 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
19221 arm_condexec_mask, arm_condexec_masklen)): New variables.
19222 (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
19223 (arm_override_options): Check new CPU capabilities.
19224 Set new architecture flag variables.
19225 (arm_isr_value): Handle v7m interrupt functions.
19226 (user_return_insn): Return 0 for v7m interrupt functions. Handle
19227 Thumb-2.
19228 (const_ok_for_arm): Handle Thumb-2 constants.
19229 (arm_gen_constant): Ditto. Use movw when available.
19230 (arm_function_ok_for_sibcall): Return false for v7m interrupt
19231 functions.
19232 (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
19233 (thumb_find_work_register, arm_load_pic_register,
19234 legitimize_tls_address, arm_address_cost, load_multiple_sequence,
19235 emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
19236 print_multi_reg, output_mov_long_double_fpa_from_arm,
19237 output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
19238 output_mov_double_fpa_from_arm, output_move_double,
19239 arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
19240 output_return_instruction, arm_output_function_prologue,
19241 arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
19242 arm_output_mi_thunk, thumb_set_return_address): Ditto.
19243 (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs.
19244 (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
19245 (arithmetic_instr, shift_op): Use arm_shift_nmem.
19246 (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.',
19247 '!' and 'L'.
19248 (arm_final_prescan_insn): Use extract_constrain_insn_cached.
19249 (thumb_expand_prologue): Use thumb_set_frame_pointer.
19250 (arm_file_start): Output directive for unified syntax.
19251 (arm_unwind_emit_set): Handle stack alignment instruction.
19252 * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
19253 Add v6t2, v7, v7a, v7r and v7m.
19254 (RETLDM): Add Thumb-2 code.
19255 (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
19256 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
19257 (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
19258 TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
19259 THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
19260 ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
19261 THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
19262 CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
19263 ADJUST_INSN_LENGTH): Define.
19264 (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
19265 STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
19266 BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
19267 PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
19268 SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
19269 TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
19270 HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
19271 HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
19272 REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
19273 REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
19274 LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
19275 GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
19276 ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
19277 FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
19278 PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
19279 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
19280 * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
19281 cortex-m3.
19282 * config/arm/arm-tune.md: Regenerate.
19283 * config/arm/arm-protos.h: Update prototypes.
19284 * config/arm/vfp.md: Enable patterns for Thumb-2.
19285 (arm_movsi_vfp): Add movw alternative. Use output_move_vfp.
19286 (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
19287 (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
19288 thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
19289 * config/arm/libunwind.S: Add Thumb-2 code.
19290 * config/arm/constraints.md: Update include Thumb-2.
19291 * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
19292 * config/arm/ieee754-df.S: Ditto.
19293 * config/arm/bpabi.S: Ditto.
19294 * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
19295 * config/arm/predicates.md (low_register_operand,
19296 low_reg_or_int_operand, thumb_16bit_operator): New.
19297 (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
19298 (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
19299 * config/arm/t-arm-elf: Add armv7 multilib.
19300 * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
19301 Include thumb2.md.
19302 (UNSPEC_STACK_ALIGN, ce_count): New.
19303 (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
19304 arm_zero_extendsidi2, arm_zero_extendqidi2): New
19305 insns/expanders.
19306 * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
19307 (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
19308 thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
19309 * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
19310 (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
19311 thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
19312 insns.
19313 * doc/extend.texi: Document ARMv7-M interrupt functions.
19314 * doc/invoke.texi: Document Thumb-2 new cores+architectures.
19315
19316 2007-01-03 Jakub Jelinek <jakub@redhat.com>
19317
19318 * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
19319 (struct _Unwind_Context): Rename args_size to flags, remove
19320 signal_frame field, add a new args_size field and version field.
19321 (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
19322 _Unwind_IsExtendedContext): New inline functions.
19323 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
19324 Assume by_value array is only present if _Unwind_IsExtendedContext.
19325 (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
19326 _Unwind_IsSignalFrame.
19327 (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
19328 (uw_update_context_1): Use _Unwind_SetSignalFrame.
19329 (uw_init_context_1): Initialize context->flags to
19330 EXTENDED_CONTEXT_BIT.
19331 * config/rs6000/linux-unwind.h (frob_update_context): Use
19332 _Unwind_SetSignalFrame.
19333
19334 2007-01-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
19335
19336 PR middle-end/30353
19337 * gimplify.c (gimplify_modify_expr_complex_part): Move below
19338 tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need
19339 the value.
19340
19341 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
19342
19343 * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
19344 REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
19345 RET, AT_SP): Remove.
19346 * config/i386/i386.md (*sse_prologue_save_insn): Use return
19347 instead of RET.
19348
19349 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
19350 * cfgbuild.c (find_basic_blocks): Likewise.
19351 * cfgrtl.c (rtl_create_basic_block): Likewise.
19352 * function.c (temp_slots_at_level): Likewise.
19353 * reg-stack.c (stack_regs_mentioned): Likewise.
19354 * regclass.c (allocate_reg_info): Likewise.
19355 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
19356 set_bb_for_stmt, move_block_to_fn): Likewise.
19357 * tree-complex.c (tree_lower_complex): Likewise.
19358 * vec.h (VEC_safe_grow_cleared): New.
19359
19360 * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
19361
19362 2007-01-03 Zdenek Dvorak <dvorakz@suse.cz>
19363
19364 * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
19365 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
19366 to loop_version.
19367 * cfgloopmanip.c (scale_loop_frequencies): Export.
19368 (loopify): Scale the frequencies by prescribed coefficients.
19369 (set_zero_probability): New function.
19370 (duplicate_loop_to_header_edge): Improve updating of frequencies.
19371 (lv_adjust_loop_entry_edge, loop_version): Set probabilities
19372 and frequencies according to arguments.
19373 * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
19374 correctly.
19375 * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
19376 * modulo-sched.c (sms_schedule): Set probabilities for entering
19377 versioned loop correctly.
19378 * tree-vect-transform.c (vect_transform_loop): Ditto.
19379 * cfgloop.h (loopify, loop_version): Declaration changed.
19380 (scale_loop_frequencies): Declared.
19381
19382 2007-01-02 Jan Hubicka <jh@suse.cz>
19383
19384 * cgraph.c: Include tree-flow.h
19385 (cgraph_add_new-function): Handle IPA_SSA mode; execute
19386 early_local_passes.
19387 * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
19388 * tree-pass.h (pass_all_early_optimizations): Declare.
19389 * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
19390 early_local_passes.
19391 (cgraph_analyze_function): Do early_local_passes.
19392 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
19393 Do not add referenced vars.
19394 * tree-optimize.c (gate_all_optimizations): Do not execute when not in
19395 SSA form.
19396 (gate_all_early_local_passes): New gate.
19397 (pass_early_local_passes): Use new gate.
19398 (execute_early_local_optimizations): New functions.
19399 (gate_all_early_optimizations): New gate.
19400 (pass_all_early_optimizations): New pass.
19401 (execute_free_datastructures): Free SSA only when initialized.
19402 (gate_init_datastructures): Init only when optimizing.
19403 (tree_lowering_passes): Do early local passes when called late.
19404 * tree-profile.c (do_tree_profiling): Don't profile functions added
19405 late.
19406 (do_early_tree_profiling, pass_early_tree_profile): Kill.
19407 * tree-cfg.c (update_modified_stmts): Do not update when operands are
19408 not active.
19409 * passes.c (init_optimizations_passes): Reorder so we go into SSA
19410 during early_local_passes.
19411 * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
19412
19413
19414 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
19415
19416 * Makefile.in: Update copyright year.
19417
19418 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
19419
19420 * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
19421 in $(lang_checks) and check-consistency targets.
19422
19423 2007-01-02 Jan Hubicka <jh@suse.cz>
19424
19425 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
19426 Do not add referenced vars.
19427 * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
19428 are not active.
19429 * passes.c (init_optimization_passes): Put mudflap_2 after
19430 free_datastructures.
19431
19432 2007-01-02 Jan Hubicka <jh@suse.cz>
19433
19434 * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
19435 Set NOTHROW flag on call statements proved to be nothrow.
19436 Update statement of local calls so new pure/const functions are
19437 updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
19438 goto receivers.
19439 (tree_rest_of_compilation): Register hooks and initialize bitmap
19440 early. Do not set after_inlining flag.
19441
19442 2007-01-02 Steve Ellcey <sje@cup.hp.com>
19443
19444 * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
19445 HOST_BITS_PER_LONGLONG
19446
19447 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19448
19449 PR c/19977
19450 * c-typeck.c (store_init_value): Don't emit pedantic overflow
19451 warning for non-static initializers.
19452
19453 2007-01-02 Steven Bosscher <steven@gcc.gnu.org>
19454
19455 * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
19456 m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
19457 rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
19458 Always use set_unique_reg_note to add REG_EQUAL notes.
19459
19460 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
19461
19462 Revert:
19463 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
19464
19465 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
19466 * cfgbuild.c (find_basic_blocks): Likewise.
19467 * cfgrtl.c (rtl_create_basic_block): Likewise.
19468 * function.c (temp_slots_at_level): Likewise.
19469 * reg-stack.c (stack_regs_mentioned): Likewise.
19470 * regclass.c (allocate_reg_info): Likewise.
19471 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
19472 set_bb_for_stmt, move_block_to_fn): Likewise.
19473 * tree-complex.c (tree_lower_complex): Likewise.
19474 * vec.h (VEC_safe_grow_cleared): New.
19475
19476 2007-01-02 Ian Lance Taylor <iant@google.com>
19477
19478 * c-common.c (c_common_truthvalue_conversion): When warning about
19479 using an assignment as a truth value, set TREE_NO_WARNING.
19480
19481 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19482
19483 PR middle-end/7651
19484 * c.opt (Wold-style-declaration): New.
19485 * doc/invoke.texi (C-only Warning Options): New.
19486 (Wold-style-declaration): Document it.
19487 (Wextra): Enabled by -Wextra.
19488 * c-opts.c (c_common_post_options): Enabled by -Wextra.
19489 * c-decl.c (declspecs_add_scspec): Replace -Wextra with
19490 -Wold-style-declaration.
19491
19492 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
19493
19494 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
19495 * cfgbuild.c (find_basic_blocks): Likewise.
19496 * cfgrtl.c (rtl_create_basic_block): Likewise.
19497 * function.c (temp_slots_at_level): Likewise.
19498 * reg-stack.c (stack_regs_mentioned): Likewise.
19499 * regclass.c (allocate_reg_info): Likewise.
19500 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
19501 set_bb_for_stmt, move_block_to_fn): Likewise.
19502 * tree-complex.c (tree_lower_complex): Likewise.
19503 * vec.h (VEC_safe_grow_cleared): New.
19504
19505 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
19506
19507 * c-common.c (c_common_nodes_and_builtins): Since variants of
19508 void_type_node get built before it is given a name, we need to
19509 give those variants the name, too.
19510 (complete_array_type): We need to work with the canonical main
19511 type of the array, from which we will build the qualified version.
19512 * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
19513 * print-tree.c (print_node): Display canonical type information
19514 for each type.
19515 * stor-layout.c (layout_type): When we don't know the
19516 alignment of a type for which we're building an array, we end up
19517 guessing wrong, so make the type require structural equality.
19518 * tree.c (make_node_stat): When we build a new type, it is its
19519 own canonical type.
19520 (build_type_attribute_qual_variant): When building an attribute
19521 variant, its canonical type is the non-attribute variant. However,
19522 if the attributes are target-dependent and they differ, we need to
19523 use structural equality checks for this type.
19524 (build_qualified_type): A qualified type is not equivalent to its
19525 unqualified variant; set the canonical type appropriately.
19526 (build_distinct_type_copy): When building a distinct type from
19527 another type, the new type is its own canonical type.
19528 (build_variant_type_copy): When building a new type variant, we
19529 assume that it is equivalent to the original type.
19530 (build_pointer_type_for_mode): When building a pointer type, also
19531 build a canonical type pointer.
19532 (build_reference_type_for_mode): When building a reference type,
19533 also build a canonical type reference.
19534 (build_index_type): When we can't hash an index type (e.g.,
19535 because its maximum value is negative), the index type requires
19536 structural equality tests.
19537 (build_array_type): Build the canonical form of an array type.
19538 (build_function_type): Function types require structural equality,
19539 because they contain default arguments, attributes, etc.
19540 (build_method_type_directly): Ditto for method types.
19541 (build_offset_type): Build the canonical offset type.
19542 (build_complex_type): Build the canonical vector type.
19543 (make_vector_type): Build the canonical vector type.
19544 * tree.h (TYPE_CANONICAL): New.
19545 (TYPE_STRUCTURAL_EQUALITY_P): New.
19546 (SET_TYPE_STRUCTURAL_EQUALITY): New.
19547 (struct tree_type): Added "canonical" field.
19548 * params.h (VERIFY_CANONICAL_TYPES): New.
19549 * doc/c-tree.texi (TYPE_CANONICAL): Document.
19550 (TYPE_STRUCTURAL_EQUALITY_P): Document.
19551 (SET_TYPE_STRUCTURAL_EQUALITY): Document.
19552 * doc/invoke.texi (verify-canonical-types): Document --param
19553 parameter for verifying canonical types.
19554
19555 2007-01-02 Joseph Myers <joseph@codesourcery.com>
19556
19557 * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
19558 powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
19559 powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
19560 powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
19561 tm_file.
19562 * config/rs6000/e500.h: New.
19563 * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
19564 TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
19565 Remove.
19566 * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
19567 TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
19568 TARGET_E500_DOUBLE): Remove.
19569 * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
19570 TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
19571 * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
19572 * config/rs6000/rs6000.c (rs6000_override_options): Use
19573 CHECK_E500_OPTIONS.
19574
19575 2007-01-02 Joseph Myers <joseph@codesourcery.com>
19576
19577 * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
19578 TARGET_E500_DOUBLE), not TARGET_E500, for %y.
19579 (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
19580 rs6000_emit_cmove): Don't check TARGET_E500.
19581 * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
19582 sordered): Don't check TARGET_E500.
19583
19584 2007-01-01 Eric Christopher <echristo@apple.com>
19585
19586 * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
19587 HARD_REGISTER_NUM_P.
19588
19589 2007-01-01 Roger Sayle <roger@eyesopen.com>
19590
19591 * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
19592 "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
19593 has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
19594 eq/ne Y".
19595
19596 2007-01-01 Mike Stump <mrs@apple.com>
19597
19598 * configure.ac: Remove support for building with Apple's gcc-3.1.
19599
19600 2007-01-02 Joseph Myers <joseph@codesourcery.com>
19601
19602 PR middle-end/30311
19603 * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
19604 REG is a hard register. Do not modify REG before calling
19605 subreg_nregs.
19606 * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
19607 multiple of the size of YMODE for certain lowpart cases.
19608
19609 2007-01-01 Andrew Pinski <pinskia@gmail.com>
19610
19611 PR middle-end/30253
19612 * gimplify (voidify_wrapper_expr): Update for
19613 GIMPLE_MODIFY_STMT.
19614
19615 2007-01-01 Andreas Schwab <schwab@suse.de>
19616
19617 PR target/29166
19618 * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
19619 save of BR0 in extra_spill_size instead of spill_size.
19620 (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
19621 area.
19622 (ia64_expand_epilogue): Restore BR0 from its new location.
19623
19624 2007-01-01 Andrew Pinski <pinskia@gmail.com>
19625
19626 * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
19627 Use a temporary variable if the left hand side is not a gimple
19628 register.
19629
19630 2007-01-01 Andrew Pinski <pinskia@gmail.com>
19631
19632 * gimplify.c (gimplify_return_expr): Make the temporary variable
19633 for the return expression, a gimple register variable.
19634
19635 2007-01-01 Jan Hubicka <jh@suse.cz>
19636
19637 * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
19638 INSN_LIST.
19639
19640 2007-01-01 Mike Stump <mrs@apple.com>
19641
19642 * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
19643 .literal16.
19644 * config/darwin.c (machopic_select_rtx_section): Use
19645 HAVE_GAS_LITERAL16.
19646 (darwin_mergeable_constant_section): Likewise.
19647 * configure: Regenerate.
19648 * config.in: Regenerate.
19649
19650 2007-01-01 Jan Hubicka <jh@suse.cz>
19651 Andrew Pinski <pinskia@gmail.com>
19652
19653 * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
19654 before starting IPA passes.