1 2007-09-12 Bernd Schmidt <bernd.schmidt@analog.com>
3 * config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS,
4 REG_CLASS_NAMES): Add P0REGS.
5 (REGNO_REG_CLASS): Return it where appropriate.
6 (REG_CLASS_FROM_CONSTRAINT): Add 'qA'.
7 (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled.
8 * doc/md.texi (Blackfin family): Document 'q' constraints.
10 2007-09-11 Steve Kenton <skenton@ou.edu>
12 * pa/linux-unwind.h: Guard with inhibit_libc.
13 * pa/hpux-unwind.h: Likewise.
15 2007-09-11 David Daney <ddaney@avtrex.com>
17 * doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options.
18 * doc/install.texi: Document new --with-llsc and --without-llsc
20 * config.gcc: Handle --with-llsc and --without-llsc configure options.
21 * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction
22 in %| and %- operand codes. Depend on GENERATE_SYNC instead of
24 (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
25 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
26 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
27 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
28 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on
29 GENERATE_LL_SC instead of ISA_HAS_LL_SC.
30 * config/mips/mips.opt (mllsc): New option.
31 * config/mips/mips.c (mips_llsc): Define variable.
32 (mips_handle_option): Handle mllsc option.
33 (override_options): Set mips_print_operand_punct for '|' and '-'.
34 (print_operand): Add new %| and %- operand codes.
35 * config/mips/mips.h (mips_llsc_setting): New enum type.
37 (OPTION_DEFAULT_SPECS): Add llsc handling.
38 (GENERATE_SYNC): New macro.
39 (GENERATE_LL_SC): New macro.
40 (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
41 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
42 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions
43 in %| and %- operand codes.
45 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
47 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with
48 TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.
50 2007-09-11 Jason Merrill <jason@redhat.com>
53 * stor-layout.c (layout_decl): Do pack variable size fields.
55 2007-09-11 Maxim Kuvyrkov <maxim@codesourcery.com>
57 * config/m68k/predicates.md (movsi_const0_operand,
58 non_symbolic_call_operand): New predicates.
60 * config/m68k/constraints.md: (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac):
62 * doc/md.texi (Constraints for Particular Machines: Motorola 680x0):
63 Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ,
64 CW, CZ, CS, Ap and Ac.
66 * config/m68k/m68k.md (UNSPEC_IB): New constant.
67 (constraints.md): New include.
68 (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access,
69 opx_mem, opy_mem, op_mem, guess, split): New attributes.
70 (movdf_internal): Name pattern. Fix to use alternatives. Add split.
73 (tstsi_internal): Name pattern. Fix to use alternatives. Specify
74 attributes. Split tstsi_internal_68020_cf from it.
75 (tstsi_internal_68020_cf): New pattern.
76 (tsthi_internal, tstqi_internal): Name pattern. Specify attributes.
77 (tst<mode>_cf): Specify attributea.
78 (cmpsi_cf): Name pattern. Specify attributes.
79 (cmp<mode>_68881, cmp<mode>_cf): Specify type attribute.
80 (pushexthisi_const): Fix to use alternatives. Specify
82 (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60
83 from it. Fix to use alternatives. Specify attributes.
84 (movsi_const0_68040_10, movsi_const0_68040_60): New patterns.
85 (movsi_cf, movstrictqi_cf): Fix to use alternatives. Specify
87 (movsf_cf_soft): Specify attributes.
88 (movdf_cf_soft): Add split.
89 (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4,
90 cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2,
91 68k_extendqisi2, truncdfsf2_cf): Specify attributes.
92 (truncdfsf2_68881): Name pattern. Specify attributes.
93 (floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf,
94 floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf,
95 fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32):
97 (addsi3_5200): Fix to use alternatives. Specify attributes.
99 (add<mode>3_cf, subdi_dishl32): Specify attributes.
100 (subsi3): Add alternative for subq.l. Specify attributes.
101 (sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes.
102 (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern. Specify
104 (umulhisi3): Specify attributes.
105 (mulhisisi3_z): Name pattern. Specify attributes.
106 (fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200,
107 sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32,
108 subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3,
109 bsetmemqi): Specify attributes.
110 (bsetmemqi_ext): Name pattern. Specify attributes.
111 (bclrmemqi): Specify attributes.
112 (bclrmemqi_ext, scc, sls): Name pattern. Specify attributes.
113 (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify
115 (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name
116 pattern. Specify attributes.
117 (jump): Specify attributes.
118 (tablejump_internal): Name pattern. Specify attributes.
119 (call_value): Split into non_symbolic_call_value,
120 symbolic_call_value_jsr, symbolic_call_value_bsr. Fix to use
121 alternatives. Specify attributes.
122 (non_symbolic_call_value, symbolic_call_value_jsr,
123 symbolic_call_value_bsr): New patterns.
124 (nop, return, unlink, indirect_jump): Specify attributes.
125 (trap): Fix condition. Specify attributes.
128 * config/m68k/m68k.c (m68k_symbolic_call_var): New variable.
129 (override_options): Initialize it. Initialize m68k_sched_cpu.
130 (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h.
131 (const_method): Make global, rename to m68k_const_method.
132 (const_int_cost, output_move_const_into_data_reg): Update.
133 (output_move_double): Parametrize to emit rtl code, rename to
135 (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi,
136 emit_movsi): New static functions.
137 (output_move_double): New function with semantics of old
139 (m68k_emit_move_double): New function.
140 (m68k_sched_cpu): New variable.
141 (attr_op_type): New enum.
142 (sched_guess_p): New variable.
143 (sched_address_type, sched_operand_type, sched_attr_op_type):
144 New static functions.
145 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
146 m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions.
147 (sched_branch_type): New static variable.
148 (m68k_sched_branch_type): New function.
149 * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum.
150 (m68k_symbolic_call_var): Declare.
151 (M68K_CONST_METHOD): Rename from CONST_METHOD. Move here from m68k.c.
152 (m68k_const_method, m68k_emit_move_double, m68k_sched_cpu,
153 m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
154 m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type):
157 2007-09-11 Jakub Jelinek <jakub@redhat.com>
159 * builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
160 * builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue
161 error if __builtin_va_arg_pack_len () wasn't optimized out during
163 * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len ()
164 with the number of inline's anonymous arguments.
165 * doc/extend.texi: Document __builtin_va_arg_pack_len ().
167 2007-09-11 Zdenek Dvorak <ook@ucw.cz>
169 * fold-const.c (extract_muldiv_1): Do not simplify
172 2007-09-11 Jan Hubicka <jh@suse.cz>
174 * i386.h (ix86_tune_indices): Add X86_TUNE_INTER_UNIT_CONVERSIONS.
175 (TARGET_INTER_UNIT_CONVERSIONS): New.
176 * i386.md (floatsi expanders): Remove redundant check for SImode
177 source; offload to memory when asked for.
178 (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse
179 floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
181 (floatsisf2_mixed_memory, floatsisf2_sse_memory,
182 floatsidf2_mixed_memory, floatsidf2_sse_memory
183 floatdisf2_mixed_memory, floatsisf2_sse_memory,
184 floatsidf2_mixed_memory, floatsidf2_sse_memory): New.
186 2007-09-11 Jan Hubicka <jh@suse.cz>
188 * toplev.c (process_options): all frontends now do unit-at-a-time.
189 * cgraphunit.c: update comments.
190 (cgraph_expand_function): call passmanager dirrectly; emit thunks.
191 * c-decl.c (finish_function): use cgraph_add_new_function.
192 * function.c (expand_function_end): We are always unit-at-a-time.
194 2007-09-11 Richard Sandiford <richard@codesourcery.com>
196 * config/mips/mips.c (mips_set_mips16_mode): Use separate anchor
198 (mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p.
200 2007-09-11 Richard Sandiford <richard@codesourcery.com>
202 * config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of
203 SYMBOL_FORCE_TO_MEM constants.
204 (mips_rtx_costs): Give a cost of 1 to force_to_mem_operands.
205 (mips16_rewrite_pool_refs_info): New structure.
206 (mips16_rewrite_pool_constant): New function, split out from...
207 (mips16_rewrite_pool_refs): ...here. Take a pointer to a
208 mips16_rewrite_pool_refs_info structure rather than a pointer
209 to a constant pool. Force force_to_mem_operands into memory.
210 (mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs.
211 * config/mips/predicates.md (force_to_mem_operand): New predicate.
212 * config/mips/constraints.md (kf): New constraint.
213 * config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative.
214 (*movsi_mips16): Likewise.
216 2007-09-11 Richard Sandiford <richard@codesourcery.com>
217 Nigel Stephens <nigel@mips.com>
218 David Ung <davidu@mips.com>
220 * config/mips/mips.h (CONSTANT_POOL_COST): Move to...
221 * config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16.
222 (mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost)
223 (mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost)
224 (mips_zero_extend_cost): New functions.
225 (mips_rtx_costs): Treat COMPARE constants as having zero cost.
226 Use the new functions. Tweak many cost estimates, both here
227 and in the new subroutines. Return false when the cost of the
228 operands has not been calculated. Check for *clear_upper32.
229 Check for floating-point multiply-add, reciprocal and rsqrt
230 patterns. Handle comparison and rotation codes.
232 2007-09-11 Danny Smith <dannysmith@users.sourceforge.net>
234 * config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't
236 * config/i386/i386.c (get_dllimport_decl): Don't strip
239 2007-09-10 Janis Johnson <janis187@us.ibm.com>
242 * config/dfp-bit.c: Don't skip TFmode conversions; move strto*
244 (DFP_TO_BFP): Use for either XFmode or TFmode.
245 (BFP_TO_DFP): Use for either XFmode or TFmode; always use cast
247 * config/dfp-bit.h: Include float.h.
248 (LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long
249 double is one of these modes, rather than using LIBGCC_HAS_*F_MODE
250 which doesn't mean the same thing.
251 (BFP_KIND): Use 4 to mean TFmode.
252 (BFP_FMT): Specify the number of decimal digits based on the
253 number of mantissa digits.
254 (BFP_VIA_TYPE): Binary float type to use as cast for sprintf.
255 (BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants.
256 (STR_TO_BFP): Use strtold for XFmode or TFmode.
257 (TFtype): Define if TFmode is supported.
258 * doc/libgcc.texi (Decimal float library routines): Document
259 TF conversion functions.
261 2007-09-10 Chao-ying Fu <fu@mips.com>
263 * config/mips/mips.c (mips_scalar_mode_supported_p): Declare.
264 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
265 (mips_emit_compare): Process fixed-point modes.
266 (mips_pad_arg_upward): Support fixed-point types.
267 (override_options): Allow fixed-point modes in accumulators.
268 (mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers.
269 (mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode,
270 V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP.
271 (mips_scalar_mode_supported_p): New function to accept fixed-point
272 modes if the width is not greater than two BITS_PER_WORD.
273 * config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
274 LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
275 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
276 LONG_LONG_ACCUM_TYPE_SIZE): Define.
277 * config/mips/mips.md ("d"): Update mode attribute for fixed-point
279 ("IMODE"): New mode attribute.
280 (mips-fixed.md): Include.
281 * config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT,
283 * config/mips/mips-fixed.md: New file.
285 2007-09-11 Ben Elliston <bje@au.ibm.com>
287 * config/spu/spu.md: Formatting fixes.
289 2007-09-10 Janis Johnson <janis187@us.ibm.com>
291 * config/dfp-bit.c (dfp_unary_func): Delete.
292 (dfp_unary_op): Delete.
293 (dfp_binary_op): Use decFloat functions instead of decNumber
294 functions for binary operations.
295 (d32_binary_op): Convert 32-bit operands to 64 bits for evaluation.
296 (dnn_binary_op): Call dfp_binary_op with decFloat rather than
298 (dfp_compare_op): Use decFloat functions insteadof decNumber
299 functions for comparisons.
300 (d32_compare_op): Convert 32-bit operands to 64 bits for evaluation.
301 (dnn_binary_op): Call dfp_compare_op with decFloat rather than
303 (DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for
304 call to dxx_binary_op and decFloat function.
305 (DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for
306 calls to dxx_binary_op and decFloat function.
307 * config/dfp-bit.h: Include decFloat header files.
308 (decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD,
309 DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE,
310 DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN,
311 DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths.
313 2007-09-10 Harsha Jagasia <harsha.jagasia@amd.com>
314 Jan Sjodin <jan.sjodin@amd.com>
316 * tree-vect-analyze.c (vect_analyze_operations): Change
317 comparison of loop iterations with threshold to less than
318 or equal to instead of less than. Reduce
319 min_scalar_loop_bound by one.
320 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
321 Change prologue and epilogue iterations estimate to vf/2,
322 when unknown at compile-time. Change versioning guard
323 cost to taken_branch_cost. If peeling for alignment is
324 unknown at compile-time, change peel guard costs to one
325 taken branch and one not-taken branch per peeled loop.
326 If peeling for alignment is known but number of scalar loop
327 iterations is unknown at compile-time, change peel guard
328 costs to one taken branch per peeled loop. Change the cost
329 model equation to consider vector iterations as the loop
330 iterations less the prologue and epilogue iterations.
331 Change outside vector cost check to less than or equal to
332 zero instead of equal to zero.
333 (vect_do_peeling_for_loop_bound): Reduce
334 min_scalar_loop_bound by one.
335 * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
336 TARG_COND_NOT_TAKEN_BRANCH_COST.
337 * config/i386/i386.h (processor_costs): Add
338 scalar_stmt_cost, scalar_load_cost, scalar_store_cost,
339 vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost,
340 vec_align_load_cost, vect_unalign_load_cost,
341 vec_store_cost, cond_taken_branch_cost,
342 cond_not_taken_branch_cost.
343 Define macros for x86 costs.
344 * config/i386/i386.c:
345 (size_cost): Set scalar_stmt_cost, scalar_load_cost,
346 scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
347 scalar_to_vec_cost, vec_align_load_cost,
348 vect_unalign_load_cost, vec_store_cost,
349 cond_taken_branch_cost, cond_not_taken_branch_cost to one.
350 (i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
351 geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost,
352 core2_cost, generic64_cost, generic32_cost): Set to default
354 (k8_cost, amdfam10_cost): Costs for vectorization tuned.
355 (x86_builtin_vectorization_cost): New.
357 2007-09-10 Janis Johnson <janis187@us.ibm.com>
358 Ben Elliston <bje@au.ibm.com>
360 * dfp.c: Include decimal128Local.h;
361 (dfp_byte_swap): Remove.
362 (encode_decimal32, decode_decimal32): Don't handle endianness.
363 (encode_decimal64, decode_decimal64): Ditto.
364 (encode_decimal128, decode_decimal128): Ditto.
365 * config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto.
367 (host_to_ieee_64, ieee_to_host_64): Don't handle endianness.
369 (host_to_ieee_128, ieee_to_host_128): Don't handle endianness.
370 * Makefile.in (DECNUM_H): Add decimal128Local.h.
372 2007-09-10 David Daney <ddaney@avtrex.com>
374 * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
376 (memory_barrier): Rewrote as an insn that clobbers memory.
378 2007-09-10 Richard Sandiford <richard@codesourcery.com>
380 * config/mips/mips.c (mips_global_pointer): Check
381 call_really_used_regs instead of call_used_regs.
382 (mips_save_reg_p): Likewise. Save all call-saved registers
383 if current_function_saves_all_registers. Fix indentation.
384 No longer treat $18 as a special case.
385 (compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT.
387 2007-09-10 Richard Sandiford <richard@codesourcery.com>
389 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
390 * config/mips/mips.c (mips_cpu_info_table): Mention it in the
391 the introductory comment.
392 (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
393 (override_options): Don't test for it.
394 * config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
395 (DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC.
396 * config/mips/vr.h: As for config/mips/sde.h.
398 2007-09-10 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
399 Revital Eres <eres@il.ibm.com>
401 * target.h (struct gcc_target.sched): New field: sms_res_mii.
402 (struct ddg): Define.
403 * target-def.h (TARGET_SCHED_SMS_RES_MII): Define.
404 (TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII.
405 * config/spu/spu.c: Include ddg.h.
406 (TARGET_SCHED_SMS_RES_MII): Define.
407 (spu_sms_res_mii): New function to calculate mii.
408 * modulo-sched (res_MII): Use it.
409 * doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII.
411 2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com>
413 * config/s390/s390.c (s390_dump_pool): Create copy of constant
414 pool entries since they might hold values that must not be shared.
416 2007-09-10 Uros Bizjak <ubizjak@gmail.com>
419 * gcc/config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode.
420 Use 'N' operand constraint for op2.
421 (lshr<mode>3): Ditto.
422 (ashl<mode>3): Ditto.
423 (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
424 (vec_shr_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
426 * gcc/config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128,
427 IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode.
429 2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com>
431 * config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"):
432 Change mode macro in the last real_2expN parameter to uppercase.
434 2007-09-10 Michael Matz <matz@suse.de>
436 * tree-pass.h (pass_cselim): Declare new pass.
437 * passes.c (init_optimization_passes): Link in pass_cselim.
438 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from
439 tree_ssa_phiopt; add do_store_elim parameter, handle it by calling
440 cond_store_replacement.
441 (condstoretemp): New static variable.
442 (cond_store_replacement): New function.
443 (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around
444 tree_ssa_phiopt_worker.
445 (struct name_to_bb): New.
446 (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr,
447 nt_init_block, nt_fini_block): New static functions.
448 (seen_ssa_names, nontrap_set): New static variables.
449 (gate_cselim, pass_cselim): Define new pass.
450 * common.opt (ftree-cselim): New flag.
451 * toplev.c (process_options): Set flag_tree_cselim if required.
453 2007-09-10 Hans-Peter Nilsson <hp@axis.com>
455 * simplify-rtx.c (simplify_relational_operation_1): For recent
456 canonicalization, don't recurse if op1 equals both PLUS arguments.
458 2007-09-09 David Daney <ddaney@avtrex.com>
460 * optabs.c (expand_sync_operation): Use plus insn if minus
462 (expand_sync_fetch_operation): Ditto.
464 2007-09-09 H.J. Lu <hongjiu.lu@intel.com>
466 * i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead
468 (*floatsisf2_sse_vector): Likewise.
470 2007-09-09 Krister Walfridsson <cato@df.lth.se>
472 * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
474 2007-09-09 H.J. Lu <hongjiu.lu@intel.com>
476 * config/i386/i386.h (ix86_tune_indices): Rename
477 X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS.
478 (TARGET_USE_VECTOR_CONVERTS): Updated.
479 * config/i386/i386.c: Likewise.
481 2007-09-09 Sandra Loosemore <sandra@codesourcery.com>
482 Nigel Stephens <nigel@mips.com>
484 * doc/invoke.texi (Overall Options): Add .sx file extension
486 * cppspec.c (known_suffixes): Likewise.
487 * gcc.c (default_compilers): Likewise.
489 2007-09-09 Rask Ingemann Lambertsen <rask@sygehus.dk>
492 * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete.
493 * simplify-rtx.c (simplify_relational_operation_1): Add the
494 canonicalization from i386.h.
495 * doc/md.texi (Canonicalization of Instructions): Document it.
497 2007-09-09 Jan Hubicka <jh@suse.cz>
498 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
500 * i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS.
501 (TARGET_USE_VECTOR_CONVERTS): New.
502 * i386.md: New post-reload splitters for converting SF to DF and DF to
504 (floatsi* expander): Special case vector conversions.
505 (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit,
506 floatsisf2_sse_vector_internunit, floatsisf2_sse_vector,
507 floatsidf2_mixed_vector, floatsidf2_sse_vector): New.
508 (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
509 Disable when doing vector converts.
510 (floatsi<mode>2_i387): Disable when
511 * sse.md (vec_dupv2df): Export.
512 * i386.c (ix86_tune_features): Enable SSE conversions.
514 2007-09-09 Richard Guenther <rguenther@suse.de>
516 * tree-ssa-operands.c (add_virtual_operand): Only mark
517 stores as has_volatile_ops if alias information is not available.
519 2007-09-09 Revital Eres <eres@il.ibm.com>
521 * doc/contrib.texi: Add myself.
523 2007-09-09 Ira Rosen <irar@il.ibm.com>
525 * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,
526 stmt_vinfo_set_outside_of_loop_cost): New functions.
527 * tree-vect-transform.c (vect_get_cost_fields): Remove.
528 (vect_model_simple_cost): Call
529 stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost
530 field instead of calling vect_get_cost_fields.
531 (vect_model_store_cost, vect_model_load_cost): Likewise.
533 2007-09-09 Revital Eres <eres@il.ibm.com>
535 * config/rs6000/rs6000.c (paired_init_builtins): Add const
536 declaration to bdesc_paired_preds variable.
537 (paired_expand_builtin): Likewise.
539 2007-09-09 Revital Eres <eres@il.ibm.com>
541 * dbgcnt.def (sms_sched_loop): New counter.
542 * modulo-sched.c: Use sms_sched_loop instead of
543 MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to
544 perform swing modulo scheduling on. Include dbgcnt.h.
545 * Makefile.in: Add DBGCNT_H to modulo-sched.o.
546 * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER.
548 2007-09-09 Uros Bizjak <ubizjak@gmail.com>
550 * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
551 Substitute all uses with ...
552 (MODEF): New mode iterator.
554 (fix_trunc<mode>_fisttp_i387_1): Remove operand constraints
555 from pre-regalloc define_insn_and_split splitter pattern.
556 (*fix_trunc<mode>_i387_1): Ditto.
558 (*fist<mode>2_1): Ditto.
559 (frndintxf2_floor): Ditto.
560 (*fist<mode>2_floor_1): Ditto.
561 (frndintxf2_ceil): Ditto.
562 (*fist<mode>2_ceil_1): Ditto.
563 (frndintxf2_trunc): Ditto.
564 (frndintxf2_mask_pm): Ditto.
566 (prologue): Use (const_int 0) as never generated filler insn.
568 (sibcall_epilogue): Ditto.
569 (eh_return_si): Ditto.
570 (eh_return_di): Ditto.
572 (add<mode>3): Rename from adddf3 and addsf3. Macroize expander
573 using MODEF mode iterator.
574 (sub<mode>3): Rename from subdf3 and subsf3. Macroize expander
575 using MODEF mode iterator.
576 (mul<mode>3): Rename from muldf3 and mulsf3. Macroize expander
577 using MODEF mode iterator.
578 (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
579 Macroize expander using MODEF mode iterator.
581 (zero_extendsidi2): Remove operand constraints from expander.
582 (smuldi3_highpart): Ditto.
583 (indirect_jump): Ditto.
586 * config/i386/sse.md (storentv4sf): Ditto.
587 (storentv2df): Ditto.
588 (storentv2di): Ditto.
590 (sse2_cvtpd2ps): Ditto.
591 (vec_interleave_highv16qi): Ditto.
592 (vec_interleave_lowv16qi): Ditto.
593 (vec_interleave_highv8hi): Ditto.
594 (vec_interleave_lowv8hi): Ditto.
595 (vec_interleave_highv4si): Ditto.
596 (vec_interleave_lowv4si): Ditto.
597 (vec_interleave_highv2di): Ditto.
598 (vec_interleave_lowv2di): Ditto.
599 (sse2_maskmovdqu): Ditto.
600 * config/i386/mmx.md (mmx_maskmovq): Ditto.
602 2007-09-09 Ira Rosen <irar@il.ibm.com>
604 * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
605 (struct _slp_tree, struct _slp_instance): Define new data structures
606 along macros for their access.
607 (struct _loop_vec_info): Define new fields: strided_stores,
608 slp_instances, and slp_unrolling_factor along macros for their access.
609 (enum slp_vect_type): New.
610 (struct _stmt_vec_info): Define new field, slp_type, and macros for its
612 (STMT_VINFO_STRIDED_ACCESS): New macro.
613 (vect_free_slp_tree): Declare.
614 (vectorizable_load): Add an argument of type slp_tree.
615 (vectorizable_store, vectorizable_operation, vectorizable_conversion,
616 vectorizable_assignment): Likewise.
617 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
618 Declare (make extern).
619 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
620 (new_loop_vec_info): Likewise.
621 (destroy_loop_vec_info): Free memory allocated for SLP structures.
622 * tree-vect-analyze.c: Include recog.h.
623 (vect_update_slp_costs_according_to_vf): New.
624 (vect_analyze_operations): Add argument for calls to vectorizable_ ()
625 functions. For not pure SLP stmts with strided access check that the
626 group size is power of 2. Update the vectorization factor according to
627 SLP. Call vect_update_slp_costs_according_to_vf.
628 (vect_analyze_group_access): New.
629 (vect_analyze_data_ref_access): Call vect_analyze_group_access.
630 (vect_free_slp_tree): New functions.
631 (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
632 vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
633 vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
634 vect_detect_hybrid_slp): Likewise.
635 (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
636 and vect_detect_hybrid_slp.
637 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
638 SLP costs into account.
639 (vect_get_cost_fields): New function.
640 (vect_model_simple_cost): Make extern, add SLP parameter and handle
642 (vect_model_store_cost, vect_model_load_cost): Likewise.
643 (vect_get_constant_vectors): New function.
644 (vect_get_slp_vect_defs, vect_get_slp_defs,
645 vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
646 vect_get_vec_defs): Likewise.
647 (vectorizable_reduction): Don't handle SLP for now.
648 (vectorizable_call): Don't handle SLP for now. Add argument to
649 vect_model_simple_cost.
650 (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
651 get SLPed and vectorized defs). Fix indentation and spacing.
652 (vectorizable_assignment): Handle SLP.
653 (vectorizable_induction): Don't handle SLP for now.
654 (vectorizable_operation): Likewise.
655 (vectorizable_type_demotion): Add argument to
656 vect_model_simple_cost.
657 (vectorizable_type_promotion): Likewise.
658 (vectorizable_store, vectorizable_load): Handle SLP.
659 (vectorizable_condition): Don't handle SLP for now.
660 (vect_transform_stmt): Add a new argument for SLP. Check that there is
661 no SLP transformation required for unsupported cases. Add SLP
662 argument for supported cases.
663 (vect_remove_stores): New function.
664 (vect_schedule_slp_instance, vect_schedule_slp): Likewise.
665 (vect_transform_loop): Schedule SLP instances.
666 * Makefile.in: (tree-vect-analyze.o): Depend on recog.h.
668 2007-09-09 Andrew Haley <aph@redhat.com>
670 * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the
673 2007-09-09 Hans-Peter Nilsson <hp@axis.com>
675 Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.
676 * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
677 Similar for what label_refs can go in the JUMP_TARGET field. Split
678 REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
679 * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
680 REG_LABEL when replacing an operand with a LABEL_REF for a
682 (subst_reloads): When replacing a LABEL_REG with a register,
683 instead of generating a REG_LABEL note, assert that there already
684 is one or that the label is a known target for the insn.
685 * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
686 note, check the JUMP_LABEL field. Remove "else" after return.
687 * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
688 cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
689 (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
690 REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
691 insns. Iterate over all notes; don't assume there's only one.
692 * cse.c (recorded_label_ref): Adjust comment to refer to
694 (cse_extended_basic_block): Do LABEL_REF check for all INSN_P
695 insns, not just NONJUMP_INSN_P.
696 (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
698 * jump.c (rebuild_jump_labels): Adjust head comment.
699 (init_label_info): Ditto. Remove REG_LABEL_OPERAND notes only;
700 don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
701 (mark_all_labels): For JUMP_P insns without a target, check if the
702 the target is noted on the previous nonjump insn.
703 (mark_jump_label_1): New function, guts from mark_jump_label.
704 <case IF_THEN_ELSE>: Handle first operand as a non-target when
705 marking jump target labels.
706 <case LABEL_REF>: Adjust for whether to generate a
707 REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
708 For 'E' format rtl, iterate in descending element order.
709 (delete_related_insns): Handle both REG_LABEL_TARGET and
710 REG_LABEL_OPERAND notes. For JUMP_P insns with labels with zero
711 reference count, delete and fallthrough. Move finding-next-
712 non-deleted insn last in the function. Look at all INSN_P insns
713 for REG_LABEL_OPERAND notes.
714 (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
716 * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
717 JUMP_LABEL, output the INSN_UID of it.
718 * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
719 and/or REG_LABEL_TARGET.
720 (add_label_notes): Only add REG_LABEL_OPERAND notes. Put in line
721 with jump.c copy by only adding notes for labels actually
722 referenced in the insn.
723 * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
724 usage count increment; handle all INSN_P trial insns.
725 (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
727 * rtl.h (struct rtx_def) <volatil>: Adjust to mention
728 REG_LABEL_TARGET and REG_LABEL_OPERAND.
729 (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
731 * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
732 JUMP_P insns and REG_LABEL_OPERAND everywhere.
733 * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
735 * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
736 * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
737 REG_LABEL_OPERAND notes.
738 * reload1.c (calculate_needs_all_insns): Adjust comments.
739 (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
740 * config/alpha/alpha.md (split for load of an address into a
741 four-insn sequence on Unicos/Mk): Adjust to use
743 * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.
745 2007-09-09 Laurynas Biveinis <laurynas.biveinis@gmail.com>
748 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
749 * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
750 FOR_BB_INSNS_SAFE instead of for loop.
751 * cse.c (cse_extended_basic_block): Likewise.
752 * postreload.c (reload_cse_regs_1): New variable next. Make sure
753 that the for loop does not invoke NEXT_INSN on a deleted insn.
754 * function.c (instantiate_virtual_regs): Likewise.
755 * lower-subreg.c (remove_retval_note): Likewise.
756 (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
758 * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
760 * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
761 insn, if it's a jump.
762 (try_redirect_by_replacing_jump): New variable jump_p. Call
763 tablejump_p before delete_insn_chain.
764 * reload1.c (reload): New variable next. Make sure that the for
765 loop does not invoke NEXT_INSN on a deleted insn.
766 (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
767 (delete_output_reload): New variable prev. Make sure the the for
768 loops do not invoke PREV_INSN on a deleted insn.
770 2007-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
772 * pa/constraints.md: Remove 'X' from unused letters comment.
774 2007-09-08 Richard Guenther <rguenther@suse.de>
776 * tree-tailcall.c (find_tail_calls): If we don't have aliases
777 computed check stmt_ann->references_memory instead of counting
780 2007-09-08 Segher Boessenkool <segher@kernel.crashing.org>
782 * cse.c (fold_rtx): Use validate_unshare_change() instead of
783 validate_change() in one more case.
785 2007-09-08 Zdenek Dvorak <ook@ucw.cz>
787 PR tree-optimization/32283
788 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use
789 estimated_loop_iterations.
790 (determine_use_iv_cost_condition): Decrease cost of expressions
791 used in iv elimination.
793 2007-09-08 Richard Guenther <rguenther@suse.de>
795 * tree-cfg.c (verify_gimple_expr): Avoid building new
796 pointer types, use TYPE_POINTER_TO if available instead.
798 2007-09-08 Uros Bizjak <ubizjak@gmail.com>
801 PR rtl-optimization/26449
802 * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence.
803 (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in
805 (mulv16qi3): Implement as define_insn_and_split pattern instead of
806 define_expand. Split insn in split1 pass.
809 2007-09-08 Dorit Nuzman <dorit@il.ibm.com>
811 PR tree-optimization/33301
812 * tree-vect-analyze (analyze_operations): Look at the type of the rhs
815 2007-09-07 Zdenek Dvorak <ook@ucw.cz>
817 PR tree-optimization/32183
818 * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).
820 * tree-ssa-reassoc.c: Include cfgloop.h.
821 (is_reassociable_op): Add a loop argument and return true only
823 (linearize_expr): Updated.
824 (should_break_up_subtract): Likewise.
825 (linearize_expr_tree): Likewise.
826 (init_reassoc): Call loop_optimizer_init with
827 AVOID_CFG_MODIFICATIONS. Remove calculate_dominance_info call
829 (fini_reassoc): Call loop_optimizer_finalize.
831 2007-09-07 Sterling Augustine <sterling@tensilica.com>
833 * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
834 if there is no i-cache.
836 2007-09-07 Richard Guenther <rguenther@suse.de>
839 2007-09-06 Richard Guenther <rguenther@suse.de>
841 PR tree-optimization/32586
842 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
843 folding if nothing changed.
844 (simplify_unary_expression): New function. Do tree combining
845 on conversion like codes.
846 (try_to_simplify): Call it.
848 2007-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
851 * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
852 (__gthread_active,__gthread_start, __gthread_active_init): New.
853 * gthr-posix95.h: Likewise.
855 2007-09-07 Roman Zippel <zippel@linux-m68k.org>
857 * function.h (struct function): Rename calls_unwind_init
858 to saves_all_registers.
859 (current_function_saves_all_registers): Renamed from
860 current_function_calls_unwind_init.
861 * reload1.c (reload): Set current_function_saves_all_registers.
862 * except.c (expand_builtin_unwind_init): Likewise.
863 * config/m68k/m68k.c (m68k_save_reg): Use
864 current_function_saves_all_registers to save pic register.
866 2007-09-07 Janis Johnson <janis187@us.ibm.com>
868 config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
869 config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.
871 Reapply reverted changes:
873 2007-09-06 Jan Hubicka <jh@suse.cz>
875 * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call of
878 2007-09-06 Richard Sandiford <richard@codesourcery.com>
880 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
881 (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
883 2007-09-05 Janis Johnson <janis187@us.ibm.com>
885 * optabs.c (expand_float): Convert unsigned integer as signed only
886 if it provides sufficient accuracy; add mode argument to real_2expN.
887 (expand_fix): Fix comment typos; extend binary float into mode
888 wider than destination for converion to unsigned integer; add mode
889 argument to real_2expN.
890 * real.c (real_2expN): Add mode argument to special-case decimal
892 * real.h (real_2expN): Ditto.
893 * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
895 (fixed_from_string): Ditto.
896 (fixed_to_decimal): Ditto.
897 (fixed_convert_from_real): Ditto.
898 (real_convert_from_fixed): Ditto.
899 * config/rs6000/rs6000.md (FP): Include DD and TD modes.
900 * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
901 muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
902 floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
904 2007-09-07 Diego Novillo <dnovillo@google.com>
906 * tree-flow.h (const_block_stmt_iterator): Remove.
907 Update all users to use block_stmt_iterator.
908 * tree-iterator.h (const_tree_stmt_iterator): Remove.
909 Update all users to use tree_stmt_iterator.
911 2007-09-07 Sandra Loosemore <sandra@codesourcery.com>
913 * config/mips/mips.c (mips_set_current_function): Temporarily
914 make this a no-op to fix bootstrap errors, pending rewrite.
916 2007-09-07 Jan Hubicka <jh@suse.cz>
918 * reorg.c (dbr_schedule): Move code removing placeholder USEs later
921 2007-09-07 Dorit Nuzman <dorit@il.ibm.com>
923 PR tree-optimization/33299
924 * tree-vect-transform.c (vect_create_epilog_for_reduction): Update
925 uses for all relevant loop-exit phis, not just the first.
927 2007-09-07 Richard Guenther <rguenther@suse.de>
930 * tree-ssa-operands.c (access_can_touch_variable): An access
931 of the form (*p)[0] can touch a variable of same size.
933 2007-09-07 Jan Hubicka <jh@suse.cz>
935 * passes.c (init_optimization_passes): Add simple dce and addressable
937 * tree-ssa.c (execute_update_addresses_taken): New function.
938 (pass_update_address_taken): New.
939 * tree-ssa-dse.c (execute_simple_dse): New function.
940 (pass_simple_dse): New.
941 * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
943 2007-09-07 Tobias Burnus <burnus@net-b.de>
946 * doc/invoke.texi: Fix -Wstrict-overflow= table.
948 2007-09-07 Richard Guenther <rguenther@suse.de>
951 2007-09-06 Richard Guenther <rguenther@suse.de>
953 PR tree-optimization/32586
954 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
955 folding if nothing changed.
956 (simplify_unary_expression): New function. Do tree combining
957 on conversion like codes.
958 (try_to_simplify): Call it.
960 2007-09-07 Richard Guenther <rguenther@suse.de>
961 Uros Bizjak <ubizjak@gmail.com>
963 PR tree-optimization/32821
964 * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
965 NULL in the call to set_bb_stmt_list.
967 2007-09-07 Richard Sandiford <richard@codesourcery.com>
969 * config/mips/mips.c (build_mips16_call_stub): Emit all direct
970 float calls here, rather than leaving some to the caller.
971 Use call_internal_direct and call_value_internal_direct.
972 * config/mips/mips.md (call_internal_direct): New pattern.
973 (call_value_internal_direct): Likewise.
975 2007-09-07 Richard Sandiford <richard@codesourcery.com>
977 * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
978 (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
980 (override_options): Set mips_base_move_loop_invariants.
982 2007-09-07 Richard Sandiford <richard@codesourcery.com>
984 * config/mips/mips.opt (mcode-readable=): Move to keep list
987 2007-09-07 Richard Sandiford <richard@codesourcery.com>
989 * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
990 and -mgpopt options. Adjust the -G documentation to match.
991 * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
992 * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
993 function, split out from mips_classify_symbol. Return false for
995 (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
996 Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
997 (override_options): Check whether the -mgpopt setting is consistent
998 with the other flags.
999 (symbolic_expression_p): Delete.
1000 (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
1001 and default_elf_select_rtx_section.
1002 (mips_in_small_data_p): Honor section attributes for MIPS16 too.
1003 Return false for local data unless TARGET_LOCAL_SDATA. Likewise
1004 external data and TARGET_EXTERN_SDATA.
1006 2007-09-07 Tobias Burnus <burnus@net-b.de>
1009 * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
1011 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1013 * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
1014 FOR_BB_INSNS_SAFE instead of for loop.
1015 * cse.c (cse_extended_basic_block): Likewise.
1016 * postreload.c (reload_cse_regs_1): New variable next. Make sure
1017 that the for loop does not invoke NEXT_INSN on a deleted insn.
1018 * function.c (instantiate_virtual_regs): Likewise.
1019 * lower-subreg.c (remove_retval_note): Likewise.
1020 (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
1022 * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
1024 * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
1025 insn, if it's a jump.
1026 (try_redirect_by_replacing_jump): New variable jump_p. Call
1027 tablejump_p before delete_insn_chain.
1028 * reload1.c (reload): New variable next. Make sure that the for
1029 loop does not invoke NEXT_INSN on a deleted insn.
1030 (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
1031 (delete_output_reload): New variable prev. Make sure the the for
1032 loops do not invoke PREV_INSN on a deleted insn.
1034 2007-09-06 Zdenek Dvorak <ook@ucw.cz>
1036 * cgraphbuild.c (rebuild_cgraph_edges): Export.
1037 * cgraph.h (rebuild_cgraph_edges): Declare.
1038 * tree-pass.h (pass_expand_omp_ssa): New.
1039 * omp-low.c (find_omp_clause): Export.
1040 (copy_var_decl): Split from omp_copy_decl_2.
1041 (build_omp_barrier): Return the call to emit instead of emitting
1043 (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
1045 (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
1046 expand_omp_for_generic, expand_omp_for_static_nochunk,
1047 expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
1048 Adapted to work on SSA form.
1049 (execute_expand_omp): Do not invalidate dominance information.
1050 (gate_expand_omp): Do not run with -fopenmp-ssa flag.
1051 (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
1052 * gimplify.c (gimplify_omp_for): Ensure that the control variable is
1054 (force_gimple_operand): Allow gimplifying code expressions without
1056 * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
1057 * common.opt (fopenmp-ssa): New.
1058 * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
1059 * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
1060 * tree-cfg.c: Include tree-inline.h.
1061 (struct move_stmt_d): Replace vars_to_remove by vars_map field.
1062 (replace_by_duplicate_decl, replace_ssa_name,
1063 mark_virtual_ops_in_region): New functions.
1064 (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
1065 to work on SSA form.
1066 * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
1067 * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
1070 2007-09-06 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1072 * tree-loop-linear.c: Include obstack.h.
1073 (linear_transform_loops): New obstack lambda_obstack.
1074 Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
1075 lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
1076 and free afterwards.
1077 * lambda.h (struct obstack): New forward declaration.
1078 (lambda_linear_expression_new): New parameter of type struct
1080 (lambda_loopnest_new): Likewise.
1081 (lambda_loopnest_transform): Likewise.
1082 (lambda_body_vector_new): Likewise.
1083 (lambda_body_vector_compute_new): Likewise.
1084 (gcc_loopnest_to_lambda_loopnest): Likewise.
1085 (lambda_loopnest_to_gcc_loopnest): Likewise.
1086 * lambda-code.c: Include obstack.h.
1087 (lambda_lattice_new): New parameter lambda_obstack. Use it for
1089 (lambda_body_vector_new): Likewise.
1090 (lambda_linear_expression_new): Likewise.
1091 (lambda_lattice_new): Likewise.
1092 (lambda_loopnest_new): Likewise. Additionally use obstack to
1093 allocate LN_LOOPS(ret).
1094 (lambda_lattice_compute_base): New parameter lambda_obstack. Pass
1095 it to lambda_lattice_new.
1096 (lambda_body_vector_compute_new): New parameter lambda_obstack.
1097 Pass it to lambda_body_vector_new.
1098 (lambda_lattice_compute_base): New paramater lambda_obstack. Pass
1099 it to lambda_lattice_new.
1100 (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
1101 Pass it to lambda_loopnest_new, lambda_linear_expression_new.
1102 (lambda_compute_target_space): Likewise.
1103 (lambda_compute_auxillary_space): New parameter lambda_obstack.
1104 Pass it to lambda_lattice_compute_base and
1105 compute_nest_using_fourieer_motzkin.
1106 (lambda_loopnest_transform): New parameter lambda_obstack. Pass
1107 it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
1108 and lambda_lattice_compute_target_space.
1109 (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
1110 Pass it to lambda_linear_expression_new.
1111 (gcc_loop_to_lambda_loop): New parameter lambda_obstack. Pass it
1112 to gcc_tree_to_linear_expression.
1113 (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
1114 Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
1115 (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
1116 Pass it to lambda_body_vector_new and
1117 lambda_body_vector_compute_new.
1118 * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
1119 (lambda-code.o): Likewise.
1121 2007-09-06 Chao-ying Fu <fu@mips.com>
1123 * ginclude/stdfix.h: New file.
1124 * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
1125 (convert.o): Add dependence on fixed-value.h.
1126 * c-convert.c (convert): Support FIXED_POINT_TYPE.
1127 * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
1128 to define fixed-point constants.
1129 (c_cpp_builtins): Define fixed-point constants.
1130 * convert.c (fixed-value.h): New include.
1131 (convert_to_real): Update comment to include fixed-point.
1132 Support FIXED_POINT_TYPE.
1133 (convert_to_integer): Update comment to include fixed-point.
1134 Support FIXED_POINT_TYPE.
1135 (convert_to_complex): Support FIXED_POINT_TYPE.
1136 (convert_to_fixed): New function.
1137 * convert.h (convert_to_fixed): Declare.
1138 * genopinit.c: Add comment about $Q for only fixed-point modes.
1139 (optabs): Add fract_optab, fractuns_optab, satfract_optab,
1140 satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
1141 sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
1142 ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
1143 usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
1144 usneg_optab for fixed-point modes.
1145 (gen_insn): Add force_fixed to track the $Q format for all fixed-point
1147 * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
1148 PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
1149 unsigned saturation optabs, when type is saturating.
1150 (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
1151 (expand_fixed_convert): New function.
1152 (gen_fixed_libfunc, gen_signed_fixed_libfunc,
1153 gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
1154 gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
1155 gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
1156 gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
1157 gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
1159 (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
1160 ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
1161 usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
1162 ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
1163 usneg_optab, fract_optab, fractuns_optab, satfract_optab,
1165 Initialize fixed-point libraries, including add, ssadd, usadd, sub,
1166 sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
1167 ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
1168 fractuns, satfractuns.
1169 * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
1170 OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
1171 OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
1172 OTI_ssmsub_widen, OTI_usmsub_widen.
1173 (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
1174 usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
1175 ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
1176 umsub_widen_optab, usmsub_widen_optab): Define.
1177 (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
1179 (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
1181 (expand_fixed_convert): Declare.
1182 * expr.c (convert_move): Support the move of fixed-point modes.
1183 (emit_move_insn_1): Handle fixed-point mode to move via integer.
1184 (categorize_ctor_elements_1): Handle FIXED_CST.
1185 (count_type_elements): Handle FIXED_POINT_TYPE.
1186 (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
1187 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1189 For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
1190 multiply and add/subtract for fixed-point types.
1191 For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
1192 mode, we jump to binop directly.
1193 Support FIXED_CONVERT_EXPR.
1194 (do_store_flag): Check FIXED_CST to put a constant second.
1195 (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
1196 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
1197 (const_vector_from_tree): Support FIXED_CST.
1198 * doc/extend.texi (Fixed-Point): New node.
1199 * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
1200 ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
1201 satfract, fractuns, satfractuns): Document them.
1203 2007-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
1205 * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
1206 addresses into I registers.
1208 2007-09-06 Jan Hubicka <jh@suse.cz>
1209 Andreas Tobler <a.tobler@schweiz.org>
1211 * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
1213 (machopic_legitimize_pic_address): Likewise.
1215 2007-09-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
1216 Jan Hubicka <jh@suse.cz>
1218 * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
1219 instead of ufloat_optab->handlers directly.
1220 (floatdidf2): Likewise.
1222 2007-09-06 Sandra Loosemore <sandra@codesourcery.com>
1224 * config/mips/mips.c: Include diagnostic.h.
1225 (mips_set_current_function): Check errorcount and sorrycount
1226 before generating RTL.
1228 2007-09-06 Richard Sandiford <richard@codesourcery.com>
1231 * config/mips/mips.c (mips_classify_symbolic_expression): New function.
1232 (mips_classify_address): Use it instead of mips_symbolic_constant_p.
1233 (print_operand_reloc): Likewise.
1235 2007-09-06 Janis Johnson <janis187@us.ibm.com>
1239 2007-09-06 Jan Hubicka <jh@suse.cz>
1241 * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
1244 2007-09-06 Richard Sandiford <richard@codesourcery.com>
1246 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
1247 (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
1249 2007-09-05 Janis Johnson <janis187@us.ibm.com>
1251 * optabs.c (expand_float): Convert unsigned integer as signed only
1252 if it provides sufficient accuracy; add mode argument to real_2expN.
1253 (expand_fix): Fix comment typos; extend binary float into mode
1254 wider than destination for converion to unsigned integer; add mode
1255 argument to real_2expN.
1256 * real.c (real_2expN): Add mode argument to special-case decimal
1258 * real.h (real_2expN): Ditto.
1259 * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
1261 (fixed_from_string): Ditto.
1262 (fixed_to_decimal): Ditto.
1263 (fixed_convert_from_real): Ditto.
1264 (real_convert_from_fixed): Ditto.
1265 * config/rs6000/rs6000.md (FP): Include DD and TD modes.
1266 * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
1267 muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
1268 floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
1270 2007-09-06 Tom Tromey <tromey@redhat.com>
1272 * tree-cfg.c (remove_bb): Only warn if line is non-zero.
1273 * c-pch.c (c_common_read_pch): Restore current location after
1275 * tree.c (expand_location): Update.
1276 (expr_filename): Changed return type. Unified the two cases.
1277 (expr_lineno): Likewise.
1278 (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
1280 * toplev.c (line_table): Changed type.
1281 (general_init): Update.
1282 (realloc_for_line_map): New function.
1283 (general_init): Allocate line_table using GC.
1284 * fix-header.c (line_table): Changed type.
1285 (read_scan_file): Update.
1286 (read_scan_file): Update.
1287 * c-ppoutput.c (maybe_print_line): Update.
1288 (print_line): Update.
1289 (cb_line_change): Update.
1290 (cb_define): Update.
1291 (pp_file_change): Update.
1292 * c-opts.c (c_common_init_options): Update.
1293 (finish_options): Update.
1294 (push_command_line_include): Update.
1295 * c-lex.c (cb_line_change): Update.
1296 (cb_def_pragma): Update.
1297 (cb_define): Update.
1299 (c_lex_with_flags): Use cpp_get_token_with_location.
1300 * input.h (line_table): Changed type.
1301 (location_from_locus): New macro.
1302 * tree.h (EXPR_FILENAME): No longer an lvalue.
1303 (EXPR_LINENO): Likewise.
1304 (expr_locus, set_expr_locus): Declare separately for
1305 USE_MAPPED_LOCATION.
1306 (expr_filename, expr_lineno): Changed return type.
1307 * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
1308 * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
1309 (expand_gimple_basic_block): Likewise.
1310 * final.c (final_scan_insn): Use expanded_location.
1312 2007-09-06 Richard Guenther <rguenther@suse.de>
1314 PR tree-optimization/32586
1315 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
1316 folding if nothing changed.
1317 (simplify_unary_expression): New function. Do tree combining
1318 on conversion like codes.
1319 (try_to_simplify): Call it.
1320 * builtins.c (fold_builtin_cexp): Fold the built expressions.
1321 * fold-const.c (fold_unary): Test result of get_callee_fndecl().
1323 2007-09-06 Jan Hubicka <jh@suse.cz>
1326 * cse.c (fold_rtx): Avoid invalid sharing.
1328 2007-09-06 Richard Sandiford <richard@codesourcery.com>
1330 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
1331 (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
1333 2007-09-06 Revital Eres <eres@il.ibm.com>
1335 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
1336 Fix offsettable memory reference for 750CL.
1338 2007-09-06 Pat Haugen <pthaugen@us.ibm.com>
1340 * reload.c (find_reloads_address_1): Try to preserve original
1341 base/index regclass of operands.
1342 * regrename.c (scan_rtx_address): Likewise.
1343 (replace_oldest_value_addr): Likewise.
1345 2007-09-06 Richard Guenther <rguenther@suse.de>
1347 PR tree-optimization/33302
1348 * domwalk.c (walk_dominator_tree): The exit block is
1349 interesting even if it is not reachable.
1351 2007-09-06 Richard Sandiford <richard@codesourcery.com>
1354 * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
1356 2007-09-06 Basile Starynkevitch <basile@starynkevitch.net>
1358 * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for
1361 2007-09-05 Ian Lance Taylor <iant@google.com>
1363 * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
1365 (dump_generic_node): Likewise.
1366 * print-rtl.c (print_decl_name): Likewise.
1367 * print-tree.c (print_node_brief): Likewise.
1368 (print_node): Likewise.
1369 * Makefile.in (RTL_BASE_H): Add alias.h.
1372 2007-09-06 Jesper Nilsson <jesper.nilsson@axis.com>
1374 * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
1376 * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
1377 * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
1379 2007-09-06 Jie Zhang <jie.zhang@analog.com>
1381 * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
1382 (tm_defines): Define UCLIBC_DEFAULT to 1.
1383 (extra_options): Add linux.opt.
1384 * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
1385 (CRT_CALL_STATIC_FUNCTION): Likewise.
1386 (NO_IMPLICIT_EXTERN_C): Likewise.
1387 (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
1388 * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
1389 * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
1390 (ENDFILE_SPEC): Don't define.
1391 (LIB_SPEC): Likewise.
1392 (CRT_CALL_STATIC_FUNCTION): Likewise.
1393 (NO_IMPLICIT_EXTERN_C): Likewise.
1394 (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
1395 (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
1397 2007-09-06 Jan Hubicka <jh@suse.cz>
1399 * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
1402 2007-09-06 Jan Hubicka <jh@suse.cz>
1404 * opts.c (common_handle_option): Enable inlining functions for
1407 2007-09-06 Jakub Jelinek <jakub@redhat.com>
1409 * builtin-attrs.def (ATTR_NONNULL_3): New.
1410 (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
1411 ATTR_NOTHROW_NONNULL_##FA.
1412 (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
1413 (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
1414 ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
1415 ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
1416 ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
1417 ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
1418 ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
1420 (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
1421 ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
1422 ATTR_FORMAT_NOTHROW_3_4): Remove.
1423 * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
1424 vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
1425 __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
1426 instead of ATTR_FORMAT_*_*.
1428 2007-09-06 Hans-Peter Nilsson <hp@axis.com>
1430 * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
1431 parts re-used for REG_FRAME_RELATED_EXPR.
1433 2007-09-05 Janis Johnson <janis187@us.ibm.com>
1435 * optabs.c (expand_float): Convert unsigned integer as signed only
1436 if it provides sufficient accuracy; add mode argument to real_2expN.
1437 (expand_fix): Fix comment typos; extend binary float into mode
1438 wider than destination for converion to unsigned integer; add mode
1439 argument to real_2expN.
1440 * real.c (real_2expN): Add mode argument to special-case decimal
1442 * real.h (real_2expN): Ditto.
1443 * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
1445 (fixed_from_string): Ditto.
1446 (fixed_to_decimal): Ditto.
1447 (fixed_convert_from_real): Ditto.
1448 (real_convert_from_fixed): Ditto.
1449 * config/rs6000/rs6000.md (FP): Include DD and TD modes.
1450 * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
1451 muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
1452 floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
1454 2007-09-05 Ian Lance Taylor <iant@google.com>
1456 * init-regs.c (initialize_uninitialized_regs): Call
1457 emit_insn_before rather than add_insn_before.
1459 2007-09-05 Jakub Jelinek <jakub@redhat.com>
1461 * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
1462 * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
1463 * tree-inline.h (copy_body_data): Add call_expr field.
1464 * tree-inline.c (expand_call_inline): Initialize call_expr.
1465 (copy_bb): Append anonymous inline fn arguments to arguments
1466 when inlining a CALL_EXPR_VA_ARG_PACK call.
1467 * builtins.c (expand_builtin): Issue an error if
1468 BUILT_IN_VA_ARG_PACK is seen during expand.
1469 (fold_call_expr, fold_builtin_call_array): Don't fold
1470 CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
1471 __builtin_va_arg_pack () call as last argument.
1472 * gimplify.c (gimplify_call_expr): If last argument to a vararg
1473 function is __builtin_va_arg_pack (), decrease number of call
1474 arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
1475 * expr.c (expand_expr_real_1): Issue an error if
1476 CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
1477 * tree-pretty-print.c (dump_generic_node): Handle printing
1478 CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
1479 * doc/extend.texi (__builtin_va_arg_pack): Document.
1481 2007-09-05 Adam Nemet <anemet@caviumnetworks.com>
1483 PR tree-optimization/21513
1484 * builtins.c (build_builtin_expect_predicate): New function.
1485 (fold_builtin_expect): Add argument for expected value.
1486 Distribute __builtin_expect over short-circuiting operations.
1487 Fold nested builtin_expects.
1488 (fold_builtin_2): Adjust call to fold_builtin_expect.
1490 2007-09-05 Rask Ingemann Lambertsen <rask@sygehus.dk>
1493 PR tree-optimization/13756
1494 * doc/invoke.texi (Options That Control Optimization): Document
1497 2007-09-05 Uros Bizjak <ubizjak@gmail.com>
1499 * gcc/config/i386/cpuid.h: New file.
1500 * gcc/config/i386/driver-i386.c: Include cpuid.h.
1501 (describe_cache): Shrink size and line strings to 100 bytes.
1502 (detect_caches_amd): Return "" for unsupported max_ext_level.
1503 Use __cpuid function.
1504 (detect_caches_intel): Return "" for unsupported max_level.
1505 Use __cpuid function.
1506 (host_detect_local_cpu): Change feature flag variables to
1507 unsigned int. Initialize only extended feature flag variables.
1508 Use __get_cpuid_max to determine max supported cpuid level.
1509 Use __cpuid function to determine supported features. Fix
1510 calculation of family id. Remove is_amd and check signature
1511 directly. Check for Geode signature. Handle family 4 id.
1512 [PROCESSOR_GENERIC32]: New default for unknown family id. Move
1513 cpu discovery code to lower part of the function.
1514 [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
1515 for sub-architecture.
1516 [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
1517 [PROCESSOR_K8]: Add k8-sse3 architecture.
1518 [PROCESSOR_NOCONA]: Remove.
1519 [PROCESSOR_GENERIC64]: Ditto.
1520 * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
1521 * gcc/config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid
1522 to check for SSE and FXSAVE support.
1523 * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
1524 Add -minline-all-stringops.
1525 * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
1526 (x86_64-*-*): Ditto.
1528 2007-09-05 Jie Zhang <jie.zhang@analog.com>
1530 * config/bfin/linux-unwind.h: New file.
1531 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
1532 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
1534 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1536 * Makefile.in (stmt.o): Add alloc-pool.h dependency.
1537 * stmt.c: Include alloc-pool.h.
1538 (struct case_node): Remove GTY marker.
1539 (add_case_node): New parameter case_node_pool. Use it for
1541 (expand_case): New allocation pool case_node_pool. Initialize it,
1542 pass to add_case_node and free it.
1544 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1545 David Ung <davidu@mips.com>
1546 Nigel Stephens <nigel@mips.com>
1548 Add mips16/nomips16 function attributes and -mflip-mips16 option
1549 for testing mixed-mode compilation.
1551 * config/mips/mips.opt (mflip-mips16): New.
1553 * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
1554 (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
1556 * config/mips/mips.c (mips_base_target_flags): New.
1557 (mips_base_mips16): New.
1558 (mips_base_schedule_insns): New.
1559 (mips_base_reorder_blocks_and_partition): New.
1560 (mips_base_align_loops): New.
1561 (mips_base_align_jumps): New.
1562 (mips_base_align_functions): New.
1563 (mips16_flipper): New.
1564 (mips_attribute_table): Add "mips16" and "nomips16" entries.
1565 (TARGET_SET_CURRENT_FUNCTION): Define.
1566 (mips_mips16_type_p, mips_nomips16_type_p): New.
1567 (mips_comp_type_attributes): Check mips16/nomips16 attributes.
1568 (mips_function_ok_for_sibcall): Make it deal with functions with
1570 (mips_init_split_addresses): New, split out from override_options.
1571 (mips_init_relocs): New, split out from override_options.
1572 (was_mips16_p): New.
1573 (mips_set_mips16_mode): New, split out from override_options.
1574 (mips_set_current_function): New.
1575 (override_options): Add sorry for unsupported mips16/pic
1576 combination. Remove error for mips16/dsp combination. Save
1577 base option settings.
1578 (mips_file_start): Move mips16 mode setting output from here....
1579 (mips_output_function_prologue): ....to here.
1580 (mips_output_mi_thunk): Check for mips16 function.
1581 (build_mips16_function_stub): Don't set .mips16 here.
1582 (build_mips16_call_stub): Likewise.
1583 (mips_expand_builtin): Error in mips16 mode.
1584 (mips_use_mips16_mode_p): New.
1585 (mips_encode_section_info): Check for mips16 function, and set
1586 SYMBOL_REF_FLAGS accordingly.
1588 * doc/extend.texi (Function Attributes): Document new
1589 mips16/nomips16 attributes.
1590 * doc/invoke.texi (Option Summary): Add -mflip-mips16.
1591 (MIPS Options): Document -mflip-mips16.
1593 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1595 * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
1596 if we encounter TLS address in MIPS16 mode.
1597 (mips_legitimize_const_move): Check cannot_force_const_mem for
1598 the (const (plus symbol offset)) case; this forces invalid TLS
1599 address in MIPS16 mode to be caught by the above call to sorry.
1600 (override_options): Don't reset targetm.have_tls in MIPS16 mode,
1601 because that now enables emutls, which is not ABI compatible
1602 with native TLS in non-MIPS16 mode.
1604 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1606 Add target hook invoked when cfun changes.
1608 * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
1609 * target.h (struct gcc_target): Add set_current_function.
1610 * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
1611 (TARGET_INITIALIZER): Add initializer for set_current_function.
1612 * tree.h (push_struct_function): New.
1613 * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
1615 (set_cfun): Declare.
1616 * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
1618 (push_function_context_to): Use allocate_struct_function
1619 to create null context, not init_dummy_function_start. Use set_cfun.
1620 (pop_function_context_from): Use set_cfun.
1621 (in_dummy_function): New.
1622 (invoke_set_current_function_hook): New.
1624 (push_cfun, pop_cfun): Use set_cfun.
1625 (push_struct_function): New.
1626 (allocate_struct_function): Call invoke_set_current_function_hook
1628 (prepare_function_start): Don't set cfun here. Remove unused
1629 argument; fix all callers.
1630 (init_dummy_function_start): Fiddle with in_dummy_function. Call
1631 push_struct_function.
1632 (init_function_start): Set cfun here.
1633 (expand_dummy_function_end): Fiddle with in_dummy_function. Pop cfun.
1634 * omp-low.c (create_omp_child_function): Use push_struct_function
1635 and pop_cfun to save/restore state.
1636 (expand_omp_parallel): Remove unused saved_cfun variable.
1637 * cgraphunit.c (ipa_passes): Use set_cfun.
1638 * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
1639 * dwarf2out.c (dwarf2out_abstract_function): Likewise.
1640 * matrix-reorg.c (transform_allocation_sites): Likewise.
1641 (matrix_reorg): Use set_cfun.
1642 * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
1643 * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
1644 assignment to cfun; use set_cfun for the other.
1645 * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
1646 (dump_function_to_file): Use push_cfun/pop_cfun here.
1647 * c-decl.c (finish_function): Use set_cfun.
1649 2007-09-05 Kenneth Zadeck <zadeck@naturalbridge.com>
1651 * regrename.c (rerename_optimize): Use deferred rescanning and
1652 insert explicit calls to rescan insns when changed.
1654 2007-09-05 Jan Hubicka <jh@suse.cz>
1656 * optabs.c (libfunc_entry): Change optab to integer.
1657 (hash_libfunc, convert_optab_libfunc, optab_libfunc,
1658 set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
1659 of pointers for hashing.
1661 2007-09-05 Jan Hubicka <jh@suse.cz>
1663 * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
1665 * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
1666 * see.c (pass_see): Likewise.
1667 * tracer.c (pass_tracer): Likewise.
1668 * postreload-gcse.c (pass_gcse2): Likewise.
1669 * postreload.c (pass_postreload_cse): Likewise.
1670 * mode-switching.c (pass_mode_switching): Likewise.
1671 * modulo-sched.c (pass_sms): Likewise.
1672 * cse.c (cse_insn): Likewise.
1673 * web.c (pass_web): Likweise.
1674 * combine-stack-adj.c (pass_stack_adjustments): Likewise.
1675 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
1676 * loop-init.c (pass_rtl_loop_init): Likewise.
1677 (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
1678 pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
1679 * global.c (pass_global_alloc): Likewise.
1680 * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
1681 pass_if_after_reload): Likewise.
1682 * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
1683 * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
1684 * regmove.c (pass_regmove): Likewise.
1685 * function.c (pass_thread_prologugues_epilogues): Likewise.
1686 * gcse.c (pass_gcse): Likewise.
1687 * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
1688 * lower-subreg.c (pass_lower_subreg2): Likewise.
1689 * bt-load.c (pass_branch_target_load): Likewise.
1690 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
1691 * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
1692 * combine.c (pass_combine): Likewise.
1693 * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
1694 (pass_partition_blocks): Likewise.
1695 * var-tracking.c (pass_variable_track): Likewise.
1696 * reg-stack.c (pass_stack_regs_run): Likewise.
1697 * sched-rgn.c (pass_sched, pass_sched2): Likewise.
1698 * passes.c (pass_postreload): Likewise.
1699 (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
1700 * tree-pass.h (TODO_verify_rtl_sharing): New.
1701 (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
1702 TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
1703 TODO_set_props, TODO_df_finish, TODO_df_verify,
1704 TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
1706 2007-09-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1708 * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
1709 fold_real_zero_addition_p, reorder_operands_p,
1710 div_if_zero_remainder, fold_undefer_overflow_warnings,
1711 int_binop_types_match_p, fold_convert_const_int_from_int,
1712 fold_convert_const_int_from_real,
1713 fold_convert_const_int_from_fixed,
1714 fold_convert_const_real_from_real,
1715 fold_convert_const_real_from_fixed,
1716 fold_convert_const_fixed_from_fixed,
1717 fold_convert_const_fixed_from_int,
1718 fold_convert_const_fixed_from_real, maybe_lvalue_p,
1719 fold_checksum_tree, fold_check_failed, print_fold_checksum,
1720 debug_fold_checksum, multiple_of_p): Constify.
1721 * tree-flow-inline.h (get_lineno): Likewise.
1722 * tree-flow.h (get_lineno): Likewise.
1723 * tree-object-size.c (compute_object_offset, addr_object_size,
1724 alloc_object_size, pass_through_call): Likewise.
1725 * tree-pretty-print.c (op_symbol, print_call_name,
1726 print_struct_decl, do_niy): Likewise.
1727 * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
1728 debug_fold_checksum): Likewise.
1730 2007-09-04 Steven Bosscher <steven@gcc.gnu.org>
1733 * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
1734 note, remove the associated REG_RETVAL note.
1736 2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
1738 * config.gcc (powerpc*-*-*): Install
1739 spu2vmx.h, vec_types.h, and si2vmx.h headers.
1740 * config/rs6000/spu2vmx.h: New header.
1741 * config/rs6000/si2vmx.h: New header.
1742 * config/rs6000/vec_types.h: New header.
1744 2007-09-05 Ben Elliston <bje@au.ibm.com>
1746 * varasm.c (initializer_constant_valid_p): Fix comment typo.
1748 2007-09-05 Ben Elliston <bje@au.ibm.com>
1750 * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
1752 (__stdcx): Make asm volatile.
1753 (__stwcx, __stdcx): Return only 0 or 1.
1755 2007-09-05 Jan Hubicka <jh@suse.cz>
1759 2007-09-04 Jan Hubicka <jh@suse.cz>
1760 * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
1762 2007-09-04 Richard Guenther <rguenther@suse.de>
1763 * tree-ssa-operands.c (add_virtual_operand): Only mark
1764 stores as has_volatile_ops if alias information is not available.
1766 2007-09-05 Jakub Jelinek <jakub@redhat.com>
1768 * config/rs6000/tramp.asm: Include config.h.
1769 Check __PIC__ or __pic__ macro instead of SHARED.
1771 PR rtl-optimization/32300
1772 * see.c (see_copy_insn): New function.
1773 (see_def_extension_not_merged, see_merge_one_use_extension,
1774 see_merge_one_def_extension): Use it. Avoid changing
1775 PREV_INSN/NEXT_INSN chains directly, insted emit insns
1776 into sequences. Call df_insn_delete on temporary insns
1777 that won't be emitted into the insn stream.
1778 (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
1779 and run df_process_deferred_rescans () before run_fast_dce.
1781 PR tree-optimization/33017
1782 * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
1783 recurse for pure or const function calls.
1785 2007-09-04 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1787 * c-format.c: Include alloc-pool.h.
1788 (check_format_info_main): New argument fwt_alloc. Use allocation
1789 pool instead of GC. Remove GC deallocation code.
1790 (check_format_arg): Create allocation pool, pass it to
1791 check_format_info_main and free it afterwards.
1792 * Makefile.in (c-format.o): Add alloc-pool.h dependency.
1794 2007-09-05 Ben Elliston <bje@au.ibm.com>
1796 * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
1797 Rename count macro arugment for clarity.
1798 (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
1799 (__protected_stream_set): Likewise, pass 0.
1801 2007-09-04 Jan Hubicka <jh@suse.cz>
1803 * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
1805 2007-09-04 Jan Hubicka <jh@suse.cz>
1807 * invoke.texi (-finline-small-functions): Document.
1808 * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
1809 when deciding what is inlinable.
1810 (cgraph_decide_recursive_inlining): Handle flag_inline_functions.
1811 (cgraph_decide_inlining_of_small_function): Handle new flags.
1812 (cgraph_decide_inlining_incrementally): Likewise.
1813 * opts.c (decode_options): Enable flag_inline_small_functions at -O2
1814 * common.opt (finline-small-functions): New.
1815 * Makefile.in (build/gengtype.o-warn): Work around PR29478
1817 2007-09-04 Richard Guenther <rguenther@suse.de>
1819 * tree-ssa-operands.c (add_virtual_operand): Only mark
1820 stores as has_volatile_ops if alias information is not available.
1822 2007-09-04 Andrew Haley <aph@redhat.com>
1824 * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
1826 2007-09-04 Andrew Haley <aph@redhat.com>
1828 * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
1829 * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
1830 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
1832 2007-09-04 Emmanuel Thome <Emmanuel.Thome@inria.fr>
1835 * common.opt: Mention ABI version 2 in comment.
1837 2007-09-04 Jan Hubicka <jh@suse.cz>
1839 * optabs.c (debug_optab_libfunc): Update; make available to gdb.
1840 (libfunc_entry): New structure.
1841 (libfunc_hash): New hashtable.
1842 (hash_libfunc): New function.
1843 (eq_libfunc): New function.
1844 (convert_optab_libfunc): New function.
1845 (optab_libfunc): New function.
1846 (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
1847 expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
1848 expand_float, expand_fix, new_optab, new_convert_optab):
1849 Update for new libfunc API.
1850 (init_libfunc, init_integral_libfuncs,
1851 init_floating_libfuncs, init_interclass_conv_libfuncs
1852 init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
1853 (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
1854 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
1855 gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
1856 gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
1857 gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
1858 gen_extend_conv_libfunc): New.
1859 (init_one_libfunc): Revamp for hashtables.
1860 (set_conv_libfunc): Likewise.
1861 (init_optabs): Initialize hashtable; use lazy initialization where
1863 * optabs.h (optab_handlers): Move out of GGC.
1864 (optab, convert_optab): Move out of GGC; add lazy gen info.
1865 (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
1866 (optab_libfunc, convert_optab_libfunc): New.
1867 * builtins.c (expand_builtin_powi): Update for new API.
1868 * expr.c (convert_move): Likewise.
1869 * expmed.c (expand_divmod): Likewise.
1871 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
1873 * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
1874 GOT pointer only if there is a constant pool. Use the allocated space
1877 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
1879 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
1882 2007-09-04 Revital Eres <eres@il.ibm.com>
1883 Richard Guenther <rguenther@suse.de>
1884 R. Clint Whaley <whaley@cs.utsa.edu>
1886 * doc/invoke.texi (-fassociative-math, -freciprocal-math):
1888 * tree-tailcall.c (process_assignment): Use -fassociative-math
1889 when reodering operands of floating-point type.
1890 * fold-const.c (fold_comparison, fold_binary): Use
1891 -fassociative-math and -freciprocal-math instead of
1892 -funsafe-math-optimization flag.
1893 * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
1894 * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
1895 -freciprocal-math instead of -funsafe-math-optimizations.
1896 * opts.c (set_fast_math_flags): Set -freciprocal-math and
1897 -fassociative-math when -ffast-math is set.
1898 (set_unsafe_math_optimizations_flags): New Function
1899 to set -freciprocal-math and -fassociative-math when
1900 -funsafe-math-optimizations is set.
1901 (common_handle_option): Call it.
1902 * tree-vectorizer.c (vect_is_simple_reduction): Use
1903 -fassociative-math when doing reduction on floats.
1904 * loop-unroll.c (analyze_insn_to_expand_var): Use
1905 -fassociative-math when expanding an accumulator of type float.
1906 * simplify-rtx.c (simplify_binary_operation_1): Use
1907 -fassociative-math and -freciprocal-math when reordeing operands
1908 of floating-point type.
1909 * combine.c (combine_simplify_rtx): Likewise.
1910 * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
1912 * common.opt (-fassociative-math, -freciprocal-math): New flags.
1914 2007-09-04 Paolo Carlini <pcarlini@suse.de>
1917 * doc/install.texi (--enable-__cxa_atexit): Fix typo.
1919 2007-09-04 Jan Hubicka <jh@suse.cz>
1921 * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
1923 2007-09-04 Jan Hubicka <jh@suse.cz>
1925 * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
1926 and corresponding MATCH_DUP.
1928 2007-09-04 Uros Bizjak <ubizjak@gmail.com>
1931 * combine.c (subst): Do not try to simplify X if it represents load
1932 of FP constant from the constant pool via float extension.
1934 2007-09-04 Ben Elliston <bje@au.ibm.com>
1936 * c-opts.c: Include "tm_p.h".
1937 * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
1939 2007-09-04 Richard Guenther <rguenther@suse.de>
1941 PR tree-optimization/33291
1942 * tree-pretty-print.c (dump_generic_node): Dump all
1943 qualifiers for pointer types, not only first. Dump
1944 qualifiers for aggregate types as well.
1945 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
1946 use the canonical type for building ARRAY_REFs.
1947 * gimplify.c (canonicalize_addr_expr): Clean up. The
1948 correct validness check is compatibility of the pointer
1949 types. Always use the canonical type for building
1950 ARRAY_REFs and ADDR_EXPRs.
1951 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
1952 change that disabled propagation of ADDR_EXPRs into statements
1955 2007-09-03 Zack Weinberg <zack@codesourcery.com>
1957 * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
1958 (umulsi3_highpart): Make into expanders; existing insns are
1959 now named *[insn]_nov6. Add stars to existing [insn]_v6
1960 counterparts' names.
1962 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
1964 * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
1965 (unprotoize.o): Remove SHLIB_MULTILIB.
1967 2007-09-03 Eric Weddington <eweddington@cso.atmel.com>
1969 * doc/extend.texi: Document progmem attribute for AVR.
1971 2007-09-03 Anatoly Sokolov <aesok@post.ru>
1974 * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
1976 2007-09-03 Zack Weinberg <zack@codesourcery.com>
1978 * optabs.c (expand_ffs): Initialize val and defined_at_zero
1981 * optabs.c: Remove unnecessary forward declarations.
1982 (expand_unop_direct): New, broken out of expand_unop.
1983 (expand_doubleword_clz): New.
1984 (expand_ctz): Move above expand_ffs. Use
1985 start_sequence, end_sequence, add_equal_note, and
1986 expand_unop_direct. Add more commentary.
1987 (expand_ffs): Try both ctz optab and expand_ctz.
1988 Generate a test and branch if the hardware doesn't give us
1989 a useful value for input zero. Style improvements similar to
1992 * config/arm/arm.md (ffssi2, ctzsi2): Delete.
1994 2007-09-03 Zack Weinberg <zack@codesourcery.com>
1996 * config.gcc: Delete stanza for arm-semi-aof and
1997 armel-semi-aof targets.
1998 * config/arm/arm-protos.h
2000 * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
2001 make all #ifndef AOF_ASSEMBLER blocks unconditional. Also
2002 delete aof_pic_label and remove mention of AOF in comments.
2003 * config/arm/arm.md: Delete patterns used only for AOF assembly.
2005 * config/arm/semiaof.h
2006 * config/arm/t-semi: Delete file.
2008 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2010 * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
2011 CONST_CAST_BB): New macros for type-specific casts.
2012 (CONST_CAST): Add a TYPE parameter and define it in terms of
2015 * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
2016 * c-lex.c (cb_ident, lex_string): Likewise,
2017 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
2018 * config/i386/i386.c (ix86_function_regparm,
2019 ix86_function_sseregparm): Use CONST_CAST_TREE.
2020 * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
2022 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
2023 give_switch, set_multilib_dir): Likewise,
2024 * gengtype-parse.c (string_seq, typedef_name): Likewise,
2025 * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
2026 * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
2027 * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
2028 * prefix.c (update_path): Likewise,
2029 * pretty-print.c (pp_base_destroy_prefix): Likewise,
2030 * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
2031 * tree-cfg.c (tree_can_merge_blocks_p,
2032 tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
2033 * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
2034 * tree.c (build_string): Supply a TYPE for CONST_CAST.
2035 (attribute_list_contained): Use CONST_CAST_TREE.
2037 2007-09-03 Krister Walfridsson <cato@df.lth.se>
2039 * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
2041 2007-09-03 Richard Sandiford <richard@codesourcery.com>
2044 * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
2045 before forcing them into a register.
2047 2007-09-03 Richard Sandiford <richard@codesourcery.com>
2049 * config/mips/mips.md (fetchop_bit): Use define_code_iterator
2050 rather than define_code_macro.
2052 2007-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2054 * gcc.c (xputenv): New function.
2055 (putenv_from_prefixes): Use xputenv instead of putenv.
2056 (process_command): Use xputenv instead of putenv.
2057 (set_collect_gcc_options): Use xputenv instead of putenv.
2058 (main): Use xputenv instead of putenv.
2060 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
2062 * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
2063 availability of swap instruction.
2064 * config/cris/cris.md (bswapsi2): Implement using swap instruction.
2066 2007-09-03 Revital Eres <eres@il.ibm.com>
2068 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
2071 2007-09-03 Vladimir Yanovsky <yanov@il.ibm.com>
2072 Ayal Zaks <zaks@il.ibm.com>
2073 Revital Eres <eres@il.ibm.com>
2075 * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
2076 compute_split_row): New functions.
2077 (ps_unschedule_node): Remove.
2078 (normalize_sched_times): Iterate over the already scheduled
2079 insns instead of the number of nodes.
2080 (MAX_SPLIT_NUM): New definition.
2081 (sms_schedule_by_order): Change the scheduling heuristic to
2082 avoid useless increases of initiation interval ii.
2083 (get_sched_window): Add dump printouts.
2085 2007-09-02 David Daney <ddaney@avtrex.com>
2087 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
2088 UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
2089 (optab, insn): Add more attributes.
2090 (fetchop_bit): New code macro.
2091 (immediate_insn): New code macro attribute.
2092 (sync): Change condition to ISA_HAS_SYNC.
2093 (rdhwr): Change predicate for operand 0 to register_operand.
2094 (memory_barrier): New expand.
2095 (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
2096 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
2097 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
2098 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2099 sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
2100 * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
2101 (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
2102 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
2103 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
2105 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
2106 Hans-Peter Nilsson <hp@axis.com>
2108 * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
2109 Defined to describe availability and behavior of CLZ.
2110 * config/cris/cris.md (clzsi2): Implement using lz instruction.
2111 * config/cris/cris.opt: Tweak comment for "-metrax4".
2112 * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
2113 * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
2114 (count_leading_zeros): Define.
2116 2007-09-01 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2118 * ggc-page.c (ggc_pch_read): Call validate_free_objects.
2120 2007-09-02 Joseph Myers <joseph@codesourcery.com>
2123 * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
2126 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
2128 * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
2129 config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
2130 ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
2131 sched-deps.c, sched-int.h, system.h, target.h,
2132 tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
2133 tree.def: Fix comment typos.
2135 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
2137 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
2138 (override_options): Turn on -mstrict-align on non-ColdFire
2140 * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
2142 2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2144 * c-common.c (const_strip_array_types): Delete.
2145 * c-common.h (const_strip_array_types): Likewise.
2146 * emit-rtl.c (const_next_insn, const_previous_insn,
2147 const_next_nonnote_insn, const_prev_nonnote_insn,
2148 const_next_real_insn, const_prev_real_insn,
2149 const_next_active_insn, const_prev_active_insn, const_next_label,
2150 const_prev_label): Delete.
2151 * gimple-low.c (block_may_fallthru): Use expr_last.
2152 * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
2153 * rtl.h (const_previous_insn, const_next_insn,
2154 const_prev_nonnote_insn, const_next_nonnote_insn,
2155 const_prev_real_insn, const_next_real_insn,
2156 const_prev_active_insn, const_next_active_insn, const_prev_label,
2157 const_next_label): Delete.
2158 * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
2159 * system.h (CONST_CAST): Update comment.
2160 * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
2161 (const_first_stmt, const_last_stmt): Delete.
2162 (tree_block_ends_with_condjump_p): Use last_stmt.
2163 * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
2164 * tree-iterator.c (const_expr_first, const_expr_last,
2165 const_expr_only): Delete.
2166 * tree.c (const_lookup_attribute): Likewise.
2167 (attribute_list_contained): Use lookup_attribute.
2168 * tree.h (const_lookup_attribute, const_expr_first,
2169 const_expr_last, const_expr_only): Delete.
2171 2007-09-01 Richard Guenther <rguenther@suse.de>
2173 * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
2174 instead of TREE_THIS_VOLATILE.
2175 * tree-ssa-operands.c (add_virtual_operand): Do not set
2176 has_volatile_ops. Do not check s_ann for NULL.
2177 (get_indirect_ref_operands): Likewise.
2178 (get_expr_operands): Likewise. For all reference trees
2179 set has_volatile_ops based on TREE_THIS_VOLATILE. Also
2180 check base of reference for TREE_THIS_VOLATILE.
2182 2007-09-01 Richard Guenther <rguenther@suse.de>
2184 * tree-cfg.c (verify_gimple_expr): Fix check for conversions
2185 between integral types. Also allow conversions between
2188 2007-08-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
2190 * optabs.c (prepare_float_lib_cmp): Use
2191 libgcc_cmp_return_mode instead of word_mode.
2192 * config/dfp-bit.h: Likewise.
2193 * config/fp-bit.h: Likewise.
2194 * config/spu/spu.c (spu_libgcc_cmp_return_mode):
2196 (spu_libgcc_shift_count_mode): New function.
2197 (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
2198 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
2200 2007-08-31 Joseph Myers <joseph@codesourcery.com>
2202 * tree-pretty-print.c: Include output.h.
2203 (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
2204 HOST_WIDE_INT_PRINT_DEC.
2205 * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
2207 2007-08-31 Zdenek Dvorak <ook@ucw.cz>
2209 PR rtl-optimization/33224
2210 * loop-iv.c (latch_dominating_def): Check that the definition belongs
2211 to the analysed region.
2213 2007-08-31 Richard Guenther <rguenther@suse.de>
2215 * function.c (allocate_struct_function): Do not set
2216 current_function_returns_pointer.
2217 * function.h (struct var_refs_queue): Remove.
2218 (struct simple_obstack_stack): Likewise.
2219 (struct function): Remove fixup_var_refs_queue member.
2220 Remove returns_pointer flag.
2221 (current_function_returns_pointer): Remove define.
2223 2007-08-31 Nick Clifton <nickc@redhat.com>
2225 * tree-ssa-coalesce.c (compare_pairs): Use the elements as
2226 secondary keys in order to obtain a stable sort.
2228 2007-08-31 Nick Clifton <nickc@redhat.com>
2231 * config/m32r/constraints.md: Add W constraint for integer zero.
2232 * config/m32r/m32r.md (get_pc): Use W and i constraints.
2233 Fix length calculation by using alternatives.
2235 2007-08-31 Richard Sandiford <richard@codesourcery.com>
2237 * optabs.c (shift_optab_p, commutative_optab_p): New functions,
2238 split out from expand_binop.
2239 (avoid_expensive_constant): New function.
2240 (expand_binop_directly): Remove commutative_op argument and
2241 (expand_binop_directly): Remove commutative_op argument and
2242 call cummutative_optab_p instead. Do not change op0 or op1
2243 when swapping xop0 and xop1. Apply avoid_expensive_constant
2244 to each argument after potential swapping. Enforce the
2245 canonical order of commutative operands.
2246 (expand_binop): Use shift_optab_p and commutative_optab_p.
2247 Update the calls to expand_binop_directly. Only force constants
2248 into registers when widening an operation. Only swap operands
2249 once a direct expansion has been rejected.
2250 (expand_twoval_binop): Only force constants into registers when
2251 using a direct expansion.
2253 2007-08-31 Maxim Kuvyrkov <maxim@codesourcery.com>
2255 * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
2256 (sched_analyze_insn): Don't postprocess speculative dependencies when
2257 target has no scheduling.
2258 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
2259 'uninitialized' warning.
2261 2007-08-31 Richard Guenther <rguenther@suse.de>
2263 * tree.c (build_complex_type): Always set TYPE_NAME for
2266 2007-08-31 Olivier Hainque <hainque@adacore.com>
2268 * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
2269 internal macro. Default alignment factor for csect directives, chosen
2270 to match what BIGGEST_ALIGNMENT allows.
2271 (DATA_SECTION_ASM_OP): Use it.
2272 * config/rs6000/rs6000.c
2273 (rs6000_xcoff_output_readonly_section_asm_op):
2274 Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
2275 (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
2277 2007-08-31 Olivier Hainque <hainque@adacore.com>
2279 * dbxout.c (dbxout_block): Move declaration within the first
2280 #if defined (DBX_DEBUGGING_INFO) block. Rearrange another such
2281 block to include the definition, together with the associated
2284 2007-08-31 David Edelsohn <edelsohn@gnu.org>
2285 Revital Eres <eres@il.ibm.com>
2287 * doc/invoke.texi (-mpaired): Document flag.
2288 * config.gcc: Include paired.h in powerpc extra_headers and
2289 750cl.h in powerpc-*-linux*paired*.
2290 * config/rs6000/rs6000.opt (-mpaired): New flag.
2291 * config/rs6000/rs6000.c (paired_init_builtins,
2292 paired_expand_builtin, paired_expand_lv_builtin,
2293 paired_expand_stv_builtin, paired_expand_predicate_builtin):
2294 New functions to support the paired single builtin functions.
2295 (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
2296 (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
2298 (bdesc_paired_preds): New structure for paired predicate
2300 (rs6000_expand_builtin): Expand paired single builtins.
2301 (rs6000_init_builtins): Init paired single builtins.
2302 (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
2303 Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
2304 and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf. Add new types
2305 v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
2306 (rs6000_vector_mode_supported_p): Support paired vector mode.
2307 * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
2308 PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
2310 (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
2311 (DATA_ALIGNMENT): Likewise.
2312 (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
2313 (rs6000_builtins): Add PAIRED builtins.
2314 * config/rs6000/rs6000.md: Include paired.md.
2315 * config/rs6000/paired.h: New.
2316 * config/rs6000/paired.md: New.
2317 * config/rs6000/750cl.h: New.
2318 * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
2320 2007-08-30 Ollie Wild <aaw@google.com>
2322 * c-opts.c (c_common_handle_option): Support -fno-directives-only.
2323 * gcc.c (default_compilers): Add -fno-directives-only to
2324 @assembler-with-cpp.
2326 2007-08-30 Sandra Loosemore <sandra@codesourcery.com>
2330 * regclass.c (initial_fixed_regs): Revert previous change and make
2332 (initial_call_used_regs): Likewise.
2333 (initial_call_really_used_regs): Delete, reverting previous addition.
2334 (initial_reg_names): Likewise.
2335 (init_reg_sets): Revert previous change.
2336 (saved_fixed_regs): New.
2337 (saved_call_used_regs): New.
2338 (saved_call_really_used_regs): New.
2339 (saved_reg_names): New.
2340 (save_register_info): New.
2341 (restore_register_info): New.
2342 (init_reg_sets_1): Replace reset of register info with call to
2343 restore_register_info.
2344 * rtl.h (save_register_info): Declare.
2345 * toplev.c (backend_init): Call save_register_info.
2347 2007-08-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2349 * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
2350 from the original statement.
2352 2007-08-30 Chao-ying Fu <fu@mips.com>
2354 * c-lex.c (interpret_fixed): Declare.
2355 (interpret_float): Process _Fract and _Accum.
2356 (interpret_fixed): New function.
2357 * final.c (output_addr_const): Process CONST_FIXED.
2358 * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
2359 (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
2361 (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
2363 (simplify_immed_subreg): Support CONST_FIXED.
2364 Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
2365 (simplify_subreg): Support CONST_FIXED.
2367 2007-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
2369 * config/rs6000/ppu_intrinsics.h: New file.
2370 * config.gcc (powerpc*-*-* <extra_headers>): Install
2373 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
2375 * cfg.c (dump_flow_info): Change to also print entry and exit
2377 * print-rtl.c (print_rtl_single): Allow to print rtl with
2380 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
2382 * df-core.h (df_dump_region): New function.
2383 * df.h (df_dump_region): New function.
2384 * loop-invariant.c (find_defs): Add call to df_dump_region.
2385 * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
2388 2007-08-30 Jakub Jelinek <jakub@redhat.com>
2391 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
2392 true if any of the compare_section_name calls returned true,
2393 rather than if any returned false.
2395 2007-08-30 Richard Guenther <rguenther@suse.de>
2397 PR tree-optimization/33199
2398 * tree-ssa-structalias.c (handle_lhs_call): New function.
2399 (find_func_aliases): In non-IPA mode make sure that for
2400 calls that return a pointer we add a constraint for the
2401 result to point to anything.
2403 2007-08-30 Richard Guenther <rguenther@suse.de>
2405 * doc/invoke.texi (-mveclibabi): Document new target option.
2406 * config/i386/i386.opt (-mveclibabi): New target option.
2407 * config/i386/i386.c (ix86_veclib_handler): Handler for
2408 vectorization library support.
2409 (override_options): Handle the -mveclibabi option, initialize
2410 the vectorization library handler.
2411 (ix86_builtin_vectorized_function): As fallback call the
2412 vectorization library handler, if set.
2413 (ix86_veclibabi_acml): New static function for ACML ABI style
2414 vectorization support.
2416 2007-08-30 Jakub Jelinek <jakub@redhat.com>
2418 * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
2419 used_m, even if it is 32-bit aligned, adjust used_m MEM to have
2420 SImode and update m. Don't run gen_lowpart_common on arbitrary
2421 memory address, force it to register first.
2424 * dce.c (dce_process_block): Don't delete setters of
2425 artificially used registers.
2427 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2429 * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
2430 "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
2431 "*add<mode>3_alc_carry2_cconly"): New insn definitions.
2433 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2435 * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
2437 * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
2438 "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
2440 2007-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2442 * system.h: Activate -Wcast-qual as warning-only.
2444 2007-08-29 Paolo Bonzini <bonzini@gnu.org>
2447 * config/rs6000/rs6000.c (compare_section_name): New function.
2448 (rs6000_elf_in_small_data_p): Compare section prefixes instead
2451 2007-08-29 Olivier Hainque <hainque@adacore.com>
2453 * xcoffout.c: #include debug.h.
2454 * Makefile.in (xcoffout.o): Add debug.h dependency.
2456 2007-08-29 Uros Bizjak <ubizjak@gmail.com>
2458 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
2459 Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
2461 2007-08-29 Richard Guenther <rguenther@suse.de>
2463 * tree-pretty-print.c (dump_generic_node): Print
2464 label DECL_UID as D.%u.
2465 * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
2467 2007-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2469 * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
2470 * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
2472 2007-08-29 Douglas Gregor <doug.gregor@gmail.com>
2475 * tree.c (build_type_attribute_qual_variant): Set canonical types
2476 on the final, unqualified attribute variant before building the
2479 2007-08-29 Jie Zhang <jie.zhang@analog.com>
2481 * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
2482 order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
2484 2007-08-29 Jie Zhang <jie.zhang@analog.com>
2487 2007-08-29 Jie Zhang <jie.zhang@analog.com>
2488 * config/bfin/bfin.md (composev2hi): Put operands into vector
2491 2007-08-29 Jie Zhang <jie.zhang@analog.com>
2493 * config/bfin/bfin.md (composev2hi): Put operands into vector
2496 2007-08-29 Jie Zhang <jie.zhang@analog.com>
2498 * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
2499 attribute when appropriate.
2500 (bfin_handle_l1_text_attribute): New.
2501 (bfin_handle_l1_data_attribute): New.
2502 (bfin_attribute_table): Add attributes: l1_text, l1_data,
2503 l1_data_A and l1_data_B.
2504 * doc/extend.texi (node Function Attributes): Document l1_text
2506 (Variable Attributes): Add Blackfin subsection. Document l1_data,
2507 l1_data_A and l1_data_B variable attributes.
2509 2007-08-28 Jie Zhang <jie.zhang@analog.com>
2511 * config/bfin/bfin.opt (minline-plt): Add.
2512 * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
2513 call to global functions.
2514 * doc/invoke.texi (Option Summary): Mention -minline-plt.
2515 (Blackfin Options): Document -minline-plt.
2517 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
2519 * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
2520 given a non-function.
2521 (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
2523 2007-08-28 DJ Delorie <dj@redhat.com>
2525 * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
2527 2007-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2529 * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
2531 2007-08-28 Richard Guenther <rguenther@suse.de>
2533 * tree.h (struct tree_function_decl): Increase size of
2534 function_code bitfield.
2536 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
2537 Kazu Hirata <kazu@codesourcery.com>
2539 * gcc/config/m68k/linux.h
2540 (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
2541 * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
2542 (m68k_return_in_memory): New.
2543 * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
2546 2007-08-28 Uros Bizjak <ubizjak@gmail.com>
2549 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
2550 Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
2551 operand) when top VEC_SELECT extracts scalar element.
2552 * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
2553 (*vec_extract_v4sf_mem): Ditto.
2555 2007-08-28 Jakub Jelinek <jakub@redhat.com>
2558 * passes.c (init_optimization_passes): Move pass_df_finish
2559 after pass_postreload sublist.
2561 PR rtl-optimization/33148
2562 * simplify-rtx.c (simplify_unary_operation_1): Only optimize
2563 (neg (lt X 0)) if X has scalar int mode.
2566 * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
2567 initializer, use build_vector_from_ctor if possible to create
2568 VECTOR_CST out of it. If vector initializer is not VECTOR_CST
2569 even after this, return NULL.
2571 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
2573 * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
2575 2007-08-28 Richard Guenther <rguenther@suse.de>
2577 * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
2578 (struct tree_function_decl): Make function_code a bitfield.
2579 Add disregard_inline_limits flag.
2580 * cgraphunit.c (cgraph_process_new_functions): Check
2581 DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
2582 (cgraph_preserve_function_body_p): Likewise.
2583 * ipa-inline.c (compute_inline_parameters): Likewise.
2584 * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
2585 for GNU C extern inline functions.
2586 (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
2587 * tree-inline.c (disregard_inline_limits_p): Remove.
2588 * tree-inline.h (disregard_inline_limits_p): Likewise.
2589 * c-common.c (handle_always_inline_attribute): Set
2590 DECL_DISREGARD_INLINE_LIMITS.
2591 * langhooks.c (add_builtin_function): Verify the function code
2592 fits in the bitfield.
2594 2007-08-28 Mircea Namolaru <namolaru@il.ibm.com>
2595 Vladimir Yanovsky <yanov@il.ibm.com>
2596 Revital Eres <eres@il.ibm.com>
2597 Andrey Belevantsev <abel@ispras.ru>
2599 * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
2601 * modulo-sched.c: Add documentation regarding do-loop.
2602 (doloop_register_get): Change number of arguments to support
2603 the new do-loop pattern and check whether COUNT_REG has no other
2604 occurences in the loop besides in the control part.
2605 (duplicate_insns_of_cycles): Do not duplicate the insn which
2606 changes count_reg as it is already adjusted.
2607 (generate_prolog_epilog): New argument to support the new
2608 do-loop pattern. Change the subtract instruction to use
2609 expand_simple_binop. Call duplicate_insns_of_cycles with new
2611 (sms_schedule): Call doloop_register_get and
2612 generate_prolog_epilog with new argument. Do not handle loops
2613 with single sets insns with subreg in their lhs.
2614 * loop-doloop.c (doloop_optimize): Support for another do-loop
2616 (doloop_condition_get): Gets an instruction instead of a pattern
2617 and change the return condition when the do-loop pattern is
2619 * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
2620 deps when considering to not create edges.
2622 2007-08-27 Alexandre Oliva <aoliva@redhat.com>
2624 * doc/extend.texi (gnu_inline funtion attribute): Document C++
2627 2007-08-27 Jason Merrill <jason@redhat.com>
2630 * gimplify.c (gimplify_modify_expr): Discard the assignment of
2631 zero-sized types after calling gimplify_modify_expr_rhs.
2633 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
2635 * regclass.c (init_reg_autoinc): Fix typo.
2637 2007-08-27 Daniel Berlin <dberlin@dberlin.org>
2639 Fix PR tree-optimization/33173
2640 * tree-ssa-alias.c (find_used_portions): Fix reversed test.
2642 2007-08-27 H.J. Lu <hongjiu.lu@intel.com>
2645 * config/i386/i386.h (VALID_DFP_MODE_P): New.
2646 * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
2649 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
2650 David Ung <davidu@mips.com>
2651 Nigel Stephens <nigel@mips.com>
2653 Separate target-specific initialization from general
2654 back-end initialization.
2656 * toplev.c (init_alignments): New, split out from...
2657 (process_options): ...here.
2658 (backend_init_target): New, split out from...
2659 (backend_init): ...here.
2660 (lang_dependent_init_target): New, split out from...
2661 (lang_dependent_init): ...here.
2662 (target_reinit): New.
2663 * toplev.h (target_reinit): Declare.
2664 * expr.c (init_expr_target): Renamed from init_expr_once, since it
2665 now can be called more than once. Update comments.
2666 * expr.h (init_expr_target): Likewise.
2667 * alias.c (init_alias_target): Renamed from init_alias_once, since it
2668 now can be called more than once. Explicitly zero
2669 static_reg_base_value.
2670 * emit-rtl.c (init_emit_regs): New, split out from...
2671 (init_emit_once): Here.
2672 * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
2673 non-const, so that changes from command-line arguments can overwrite
2674 values provided by the static initializers.
2675 (initial_call_really_used_regs): New, used similarly to the above.
2676 (initial_reg_names): Likewise.
2677 (last_mode_for_init_move_cost): Promoted function-local static to
2678 file-scope static to make it accessible outside init_move_cost.
2679 (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
2680 Do not initialize inv_reg_alloc_order yet, either. Do initialize
2681 reg_names since it is needed for parsing command-line options.
2682 (init_move_cost): Use last_mode_for_init_move_cost instead of
2683 function-local static.
2684 (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
2685 call_really_used_regs now. Reinitialize reg_names. Also
2686 initialize inv_reg_alloc_order. Zero reg_class_subunion and
2687 reg_class_superunion. Clear losing_caller_save_reg_set.
2688 Preserve global registers if called more than once. Reset
2689 move cost, may_move_in_cost, may_move_out_cost, and
2690 last_mode_for_init_move_cost.
2691 (init_reg_modes_target): Renamed from init_reg_modes_once, since it
2692 can now be invoked more than once. Update comments.
2693 (init_regs): Update comments.
2694 (fix_register): Update initial_fixed_regs, initial_call_used_regs,
2695 and initial_call_really_used_regs, instead of the non-initial
2696 variables. This allows us to save the command-line register settings
2697 after target reinitialization.
2698 (init_reg_autoinc): Zero forbidden_inc_dec_classes.
2699 * rtl.h (init_emit_regs): Declare.
2700 (init_reg_modes_target, init_alias_target): Renamed as described
2702 * reload1.c (init_reload): Update comments.
2703 * optabs.c (init_optabs): Likewise.
2704 * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
2706 2007-08-26 Chao-ying Fu <fu@mips.com>
2708 * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
2711 2007-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2713 * alias.c (memory_modified_1, memory_modified_in_insn_p):
2715 * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
2717 * bb-reorder.c (copy_bb_p): Likewise.
2718 * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
2719 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
2720 block_ends_with_condjump_p): Likewise.
2721 * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
2722 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
2723 block_ends_with_condjump_p): Likewise.
2724 * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
2725 * cfgrtl.c (can_delete_note_p, can_delete_label_p,
2726 rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
2727 rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
2728 need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
2729 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
2730 debug_true_const_tree instad of debug_true_tree.
2731 * debug.c (do_nothing_debug_hooks): Likewise.
2732 * debug.h (ignore_block, debug_true_const_tree): Constify.
2733 * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
2734 dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
2735 decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
2736 same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
2737 dbx_reg_number, is_based_loc, field_type,
2738 simple_type_align_in_bits, simple_decl_align_in_bits,
2739 simple_type_size_in_bits, field_byte_offset, insert_float,
2740 type_tag, member_declared_type, is_redundant_typedef,
2741 secname_for_decl, is_inlined_entry_point): Likewise.
2742 * emit-rtl.c (const_next_insn, const_previous_insn,
2743 const_next_nonnote_insn, const_prev_nonnote_insn,
2744 const_next_real_insn, const_prev_real_insn,
2745 const_next_active_insn, const_prev_active_insn, const_next_label,
2746 const_prev_label): Likewise.
2747 * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
2749 * haifa-sched.c (may_trap_exp, haifa_classify_insn,
2750 find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
2751 sched_insn_is_legitimate_for_speculation_p): Likewise.
2752 * jump.c (reversed_comparison_code_parts,
2753 reversed_comparison_code, reversed_comparison, condjump_label):
2755 * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
2756 * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
2758 * rtl.h (const_previous_insn, const_next_insn,
2759 const_prev_nonnote_insn, const_next_nonnote_insn,
2760 const_prev_real_insn, const_next_real_insn,
2761 const_prev_active_insn, const_next_active_insn, const_prev_label,
2762 const_next_label, modified_between_p, modified_in_p,
2763 const_note_storeskeep_with_call_p, condjump_label,
2764 reversed_comparison, reversed_comparison_code,
2765 reversed_comparison_code_parts, memory_modified_in_insn_p,
2766 stack_regs_mentioned): Likewise.
2767 * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
2768 keep_with_call_p): Likewise.
2769 * sched-deps.c (deps_may_trap_p, sched_get_condition,
2770 conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
2771 sd_lists_size, sd_lists_empty_p): Likewise.
2772 * sched-int.h (sched_insns_conditions_mutex_p,
2773 haifa_classify_insn, no_real_insns_p,
2774 sched_insn_is_legitimate_for_speculation_p, sd_next_list,
2775 sd_lists_size, sd_lists_empty_p): Likewise.
2776 * sdbout.c (sdb_debug_hooks): Likewise.
2777 * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
2778 stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
2779 -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
2781 * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
2782 tree_can_throw_internal): Likewise.
2783 * tree-flow-inline.h (phi_nodes): Likewise.
2784 * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
2785 tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
2786 * tree-gimple.c (const_get_call_expr_in): Likewise.
2787 * tree-gimple.h (const_get_call_expr_in): Likewise.
2788 * tree.c (const_lookup_attribute, attribute_list_equal,
2789 attribute_list_contained): Likewise.
2790 * tree.h (attribute_list_equal, attribute_list_contained,
2791 const_lookup_attribute): Likewise.
2792 * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
2794 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
2796 * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
2797 tree-ssa-pre.c: Remove unnecessary trailing whitespace.
2799 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
2802 * config/alpha/constraints.md: Delete "svn:mime-type" property
2803 with svn propdel "svn:mime-type".
2805 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
2808 * ifcvt.c (noce_get_alt_condition): Make sure that the previous
2809 non NOTE insn doesn't cross basic block.
2810 (noce_try_abs): Likewise.
2811 (noce_process_if_block): Likewise.
2813 2007-08-26 David Edelsohn <edelsohn@gnu.org>
2816 * config/rs6000/predicates.md (offsettable_mem_operand): Memory
2817 operand without auto-inc-dec.
2818 * config/rs6000/rs6000.md (floatsidf2_internal): Use
2819 offsettable_mem_operand.
2820 (floatunssidf2_internal): Same.
2821 (fix_truncdfsi2_internal): Same.
2822 (floatsidf_ppc64): Same.
2823 (floatunssidf_ppc64): Same.
2824 (fix_trunctfsi2_internal): Same.
2826 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
2829 * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
2830 pass defines needed for version.c.
2832 2007-08-25 Joseph Myers <joseph@codesourcery.com>
2834 * configure.ac (--debug-prefix-map check): Change assembler
2835 version presumed to have feature to 2.18.
2836 * configure: Regenerate.
2838 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2840 * c-common.c (vector_types_convertible_p,
2841 decl_with_nonnull_addr_p, c_promoting_integer_type_p,
2842 self_promoting_args_p): Constify.
2843 * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
2844 c_promoting_integer_type_p, self_promoting_args_p,
2845 anon_aggr_type_p, vector_types_convertible_p): Likewise.
2846 * c-decl.c (anon_aggr_type_p): Likewise.
2847 * * c-dump.c (dump_stmt): Likewise.
2848 * c-objc-common.c (has_c_linkage): Likewise.
2849 * c-tree.h (same_translation_unit_p): Likewise.
2850 * c-typeck.c (null_pointer_constant_p,
2851 tagged_types_tu_compatible_p, function_types_compatible_p,
2852 type_lists_compatible_p, lvalue_or_else, lvalue_p,
2853 comptypes_internal, struct tagged_tu_seen_cache,
2854 same_translation_unit_p, alloc_tagged_tu_seen_cache,
2855 c_size_in_bytes): Likewise.
2856 * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
2857 hash_ptr, eq_ptr): Likewise.
2858 * langhooks-def.h (lhd_decl_ok_for_sibcall,
2859 LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
2860 * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
2861 * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
2863 * optabs.c (optab_for_tree_code): Likewise.
2864 * optabs.h (optab_for_tree_code): Likewise.
2865 * rtl.h (simplify_rtx): Likewise.
2866 * simplify-rtx.c (simplify_rtx): Likewise.
2867 * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
2868 dump_flag, dump_node): Likewise.
2869 * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
2870 queue_and_dump_type, dump_flag): Likewise.
2871 * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
2872 * tree-pass.h (dump_node): Likewise.
2873 * tree-vectorizer.c (vect_can_force_dr_alignment_p,
2874 supportable_narrowing_operation): Likewise.
2875 * tree-vectorizer.h (vect_can_force_dr_alignment_p,
2876 supportable_narrowing_operation): Likewise.
2877 * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
2878 is_negative_overflow_infinity, is_positive_overflow_infinity,
2879 is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
2880 nonnull_arg_p, get_value_range, vrp_operand_equal_p,
2881 update_value_range, add_equivalence, ssa_name_nonnegative_p,
2882 ssa_name_nonzero_p, fp_predicate): Likewise.
2883 * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
2884 * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
2885 ssa_name_nonnegative_p): Likewise.
2887 2007-08-25 Hans Kester <hans.kester@ellips.nl>
2889 * config.gcc : Add x86_64-elf target.
2891 2007-08-25 Jakub Jelinek <jakub@redhat.com>
2893 * expr.c (store_expr): Fix order of store_by_pieces arguments.
2895 2007-08-24 Sandra Loosemore <sandra@codesourcery.com>
2896 Nigel Stephens <nigel@mips.com>
2900 * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
2901 (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
2902 * expr.c (SET_BY_PIECES_P): Define.
2903 (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
2904 it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
2905 (store_expr): Pass MEMSETP argument to can_store_by_pieces and
2907 * expr.h (SET_RATIO): Define.
2908 (can_store_by_pieces, store_by_pieces): Update prototypes.
2909 * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
2910 can_store_by_pieces/store_by_pieces.
2911 (expand_builtin_memcpy_args): Likewise.
2912 (expand_builtin_strncpy): Likewise.
2913 (expand_builtin_memset_args): Likewise. Also remove special case
2914 for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
2915 decide what to do instead.
2916 * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
2917 to can_store_by_pieces.
2919 * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
2920 * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
2922 * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
2923 * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
2924 * config/mips/mips.h (MIPS_CALL_RATIO): Define.
2925 (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
2926 (STORE_BY_PIECES_P): Define.
2928 2007-08-24 Tom Tromey <tromey@redhat.com>
2930 * varpool.c (varpool_last_needed_node): Fix comment typo.
2931 * c-decl.c (duplicate_decls): Fix comment typo.
2932 (clone_underlying_type): Update comment.
2934 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2936 * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
2937 alpha_in_small_data_p, alpha_split_complex_arg,
2938 alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2940 * config/arm/arm-protos.h (arm_mangle_type): Likewise.
2941 * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
2943 * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
2944 TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2945 * config/darwin-protos.h (darwin_binds_local_p): Likewise.
2946 * config/darwin.c (darwin_binds_local_p): Likewise.
2947 * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
2949 * config/i386/i386-protos.h (i386_pe_binds_local_p,
2950 i386_pe_valid_dllimport_attribute_p): Likewise.
2951 * config/i386/i386.c (ix86_function_regparm,
2952 ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
2953 x86_can_output_mi_thunk, ix86_mangle_type,
2954 TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2955 * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
2956 i386_pe_binds_local_p): Likewise.
2957 * config/ia64/ia64.c
2958 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
2959 ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
2960 ia64_invalid_conversion, ia64_invalid_unary_op,
2961 ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2963 * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
2964 * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
2965 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2966 * config/mips/mips.c (mips_use_blocks_for_constant_p,
2967 mips_in_small_data_p, mips_use_anchors_for_symbol_p,
2968 mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2969 mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
2970 mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
2971 * config/pa/pa.c (pa_commutative_p): Likewise.
2972 * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
2974 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
2975 rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
2976 rs6000_use_blocks_for_constant_p,
2977 rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
2978 invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2979 TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
2980 * config/s390/s390.c (s390_mangle_type,
2981 TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
2983 * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
2984 th_in_small_data_p): Likewise.
2985 * config/sh/sh.c (sh_ms_bitfield_layout_p,
2986 sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
2988 * config/sparc/sparc.c (sparc_can_output_mi_thunk,
2989 sparc_mangle_type): Likewise.
2990 * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
2991 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
2992 * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
2994 * hooks.c (hook_bool_mode_const_rtx_false,
2995 hook_bool_mode_const_rtx_true,
2996 hook_bool_const_tree_hwi_hwi_const_tree_false,
2997 hook_bool_const_tree_hwi_hwi_const_tree_true,
2998 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
2999 hook_constcharptr_const_tree_null,
3000 hook_constcharptr_const_rtx_null,
3001 hook_constcharptr_const_tree_const_tree_null,
3002 hook_constcharptr_int_const_tree_null,
3003 hook_constcharptr_int_const_tree_const_tree_null): New.
3004 (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
3005 hook_bool_tree_hwi_hwi_tree_false,
3006 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
3007 hook_int_tree_tree_1, hook_constcharptr_tree_null,
3008 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
3009 hook_constcharptr_int_tree_null,
3010 hook_constcharptr_int_tree_tree_null): Delete.
3011 (default_can_output_mi_thunk_no_vcall): Constify.
3012 * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
3013 hook_bool_tree_hwi_hwi_tree_false,
3014 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
3015 hook_int_tree_tree_1, hook_constcharptr_tree_null,
3016 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
3017 hook_constcharptr_int_tree_null,
3018 hook_constcharptr_int_tree_tree_null): Delete.
3019 (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
3020 hook_bool_const_tree_hwi_hwi_const_tree_false,
3021 hook_bool_const_tree_hwi_hwi_const_tree_true,
3022 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
3023 hook_constcharptr_const_tree_null,
3024 hook_constcharptr_const_rtx_null,
3025 hook_constcharptr_const_tree_const_tree_null,
3026 hook_constcharptr_int_const_tree_null,
3027 hook_constcharptr_int_const_tree_const_tree_null): New.
3028 (default_can_output_mi_thunk_no_vcall): Constify.
3029 * integrate.c (function_attribute_inlinable_p): Likewise.
3030 * integrate.h (function_attribute_inlinable_p): Likewise.
3031 * jump.c (rtx_renumbered_equal_p): Likewise.
3032 * output.h (decl_readonly_section, categorize_decl_for_section,
3033 default_use_anchors_for_symbol_p, default_binds_local_p,
3034 default_binds_local_p_1): Likewise.
3035 * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
3037 * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
3038 TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
3039 TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
3040 TARGET_COMP_TYPE_ATTRIBUTES,
3041 TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
3042 TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
3043 TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
3044 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
3045 TARGET_DWARF_CALLING_CONVENTION): Likewise.
3046 * target.h (can_output_mi_thunk, needs_block_p,
3047 first_cycle_multipass_dfa_lookahead_guard_spec,
3048 vector_alignment_reachable, comp_type_attributes,
3049 function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
3050 commutative_p, use_blocks_for_constant_p,
3051 use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
3052 vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
3053 invalid_within_doloop, valid_dllimport_attribute_p,
3054 split_complex_arg, invalid_arg_for_unprototyped_fn,
3055 invalid_conversion, invalid_unary_op, invalid_binary_op):
3057 * targhooks.c (default_invalid_within_doloop,
3058 hook_invalid_arg_for_unprototyped_fn,
3059 default_builtin_vector_alignment_reachable): Likewise.
3060 (hook_bool_rtx_commutative_p): Delete.
3061 (hook_bool_const_rtx_commutative_p): New.
3062 * targhooks.h (default_invalid_within_doloop,
3063 default_builtin_vector_alignment_reachable,
3064 hook_invalid_arg_for_unprototyped_fn): Constify.
3065 (hook_bool_rtx_commutative_p): Delete.
3066 (hook_bool_const_rtx_commutative_p): New.
3067 * varasm.c (bss_initializer_p, decl_default_tls_model,
3068 categorize_decl_for_section, decl_readonly_section,
3069 default_use_anchors_for_symbol_p, default_binds_local_p,
3070 default_binds_local_p_1): Constify.
3072 2007-08-24 Jie Zhang <jie.zhang@analog.com>
3074 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
3075 __NO_BUILTIN if -fno-builtin.
3077 2007-08-24 Jie Zhang <jie.zhang@analog.com>
3079 * config/bfin/bfin.c (print_operand): Report error instead of
3080 ICE for wrong operand.
3082 2007-08-24 Michael Matz <matz@suse.de>
3084 * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
3086 2007-08-24 Richard Guenther <rguenther@suse.de>
3089 * tree-ssa.c (useless_type_conversion_p): Split into a
3090 recursive and a non-recursive part.
3091 (useless_type_conversion_p_1): New function.
3092 * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
3093 from maybe_fold_offset_to_reference is trivially convertible
3094 to the desired type before doing the simplification.
3096 2007-08-24 Jakub Jelinek <jakub@redhat.com>
3098 * expr.c (store_expr): Optimize initialization of an array
3100 * expr.h (builtin_strncpy_read_str): New prototype.
3101 * builtins.c (builtin_strncpy_read_str): Remove prototype.
3104 2007-08-24 Uros Bizjak <ubizjak@gmail.com>
3107 * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
3108 field when initializing if_info structure.
3110 2007-08-24 Richard Guenther <rguenther@suse.de>
3112 * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
3114 * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
3115 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
3116 * tree-inline.c (inlinable_function_p): Fold in common parts of
3117 the cannot_inline_tree_fn langhook.
3118 * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
3119 (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
3120 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
3121 cannot_inline_tree_fn langhook.
3122 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
3123 cannot_inline_tree_fn member.
3125 2007-08-24 Richard Guenther <rguenther@suse.de>
3127 * expr.c (get_inner_reference): Do computation of bitoffset
3128 from offset in a way we can detect overflow reliably.
3130 2007-08-24 Jie Zhang <jie.zhang@analog.com>
3132 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
3134 2007-08-24 Jie Zhang <jie.zhang@analog.com>
3136 * config/bfin/bfin.opt (mfast-fp): Add.
3137 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
3138 libbffastfp override libgcc if -mfast-fp.
3139 * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
3140 * doc/invoke.texi (Option Summary): Mention -mfast-fp.
3141 (Blackfin Options): Document -mfast-fp.
3143 2007-08-24 Jakub Jelinek <jakub@redhat.com>
3145 PR tree-optimization/32573
3147 * tree-data-ref.c (initialize_data_dependence_relation): Clear
3148 DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
3149 (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
3150 (build_classic_dist_vector): Return false rather than true if
3151 DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false
3152 if either subscript_dependence_tester_1 or build_classic_dist_vector_1
3153 returned false. Don't call save_dist_v before calling
3154 build_classic_dist_vector_1.
3155 (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
3156 with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or
3157 DDR_DIR_VECTS vectors.
3159 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com>
3161 * configure.ac (leb128): Modify sed statement to work with any
3162 binutils version string.
3163 * configure: Regenerate
3165 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3167 * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
3168 Wrap in RTX_CODE macro guard.
3169 * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
3170 arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
3171 arm_mark_dllimport, arm_pe_encode_section_info,
3172 arm_pe_unique_section): Use ISO-C function declarations.
3173 * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
3174 c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
3175 c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
3177 * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
3178 * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
3180 * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
3182 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
3183 * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
3184 (register_move_cost): Use ISO-C function declarations.
3185 * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
3186 * config/score/score-protos.h (score_declare_object): Add
3188 * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
3190 * final.c (profile_function): Avoid empty if-bodies.
3193 * calls.c (must_pass_in_stack_var_size,
3194 must_pass_in_stack_var_size_or_pad): Constify.
3195 * config/alpha/alpha-protos.h (function_value): Likewise.
3196 * config/alpha/alpha.c (alpha_return_in_memory,
3197 alpha_pass_by_reference, function_value,
3198 unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
3199 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
3201 * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
3202 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
3203 TARGET_PROMOTE_PROTOTYPES): Likewise.
3204 * config/arm/arm-protos.h (arm_return_in_memory,
3205 arm_pad_arg_upward, arm_function_value): Likewise.
3206 * config/arm/arm.c (arm_pass_by_reference,
3207 arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
3208 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
3209 arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
3211 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3212 * config/avr/avr-protos.h (avr_function_value): Likewise.
3213 * config/avr/avr.c (avr_return_in_memory,
3214 gas_output_limited_string, gas_output_ascii, avr_function_value,
3215 avr_return_in_memory): Likewise.
3216 * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
3217 * config/bfin/bfin.c (bfin_pass_by_reference,
3218 bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
3219 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
3221 * config/cris/cris.c (cris_pass_by_reference,
3222 TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
3223 * config/crx/crx.c (crx_return_in_memory): Likewise.
3224 * config/darwin.c (function_base, machopic_function_base_name):
3226 * config/fr30/fr30.c (fr30_must_pass_in_stack,
3227 TARGET_PROMOTE_PROTOTYPES): Likewise.
3228 * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
3229 * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
3230 * config/i386/i386-protos.h (ix86_return_in_memory,
3231 ix86_sol10_return_in_memory): Likewise.
3232 * config/i386/i386.c (ix86_function_value,
3233 ix86_function_sseregparm, ix86_must_pass_in_stack,
3234 type_natural_mode, classify_argument, examine_argument,
3235 construct_container, ix86_pass_by_reference, function_value_32,
3236 function_value_64, ix86_function_value_1, return_in_memory_32,
3237 return_in_memory_64, return_in_memory_ms_64,
3238 ix86_return_in_memory, ix86_sol10_return_in_memory,
3239 TARGET_PROMOTE_PROTOTYPES): Likewise.
3240 * config/ia64/ia64-protos.h (ia64_function_value,
3241 ia64_hpux_function_arg_padding): Likewise.
3242 * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
3243 ia64_function_value, bundle_state_hash, bundle_state_eq_p,
3244 ia64_hpux_function_arg_padding): Likewise.
3245 * config/iq2000/iq2000-protos.h (function_arg,
3246 iq2000_function_value): Likewise.
3247 * config/iq2000/iq2000.c (iq2000_return_in_memory,
3248 iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
3249 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
3250 function_arg, iq2000_function_value): Likewise.
3251 * config/m32c/m32c-protos.h (m32c_function_value,
3252 m32c_promote_function_return): Likewise.
3253 * config/m32c/m32c.c (m32c_pass_by_reference,
3254 m32c_promote_prototypes, m32c_promote_function_return,
3255 m32c_function_value): Likewise.
3256 * config/m32r/m32r.c (m32r_return_in_memory,
3257 m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
3258 m32r_in_small_data_p): Likewise.
3259 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
3261 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
3262 m68hc11_function_arg_padding): Likewise.
3263 * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
3264 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
3265 m68k_function_value): Likewise.
3266 * config/mcore/mcore-protos.h (mcore_num_arg_regs,
3267 mcore_function_value): Likewise.
3268 * config/mcore/mcore.c (handle_structs_in_regs,
3269 mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
3270 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
3271 mcore_num_arg_regs, mcore_function_value): Likewise.
3272 * config/mips/mips-protos.h (mips_pad_arg_upward,
3273 mips_function_value): Likewise.
3274 * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
3275 mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
3276 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
3277 TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
3278 mips_function_value): Likewise.
3279 * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
3281 * config/mmix/mmix.c (mmix_pass_by_reference,
3282 TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
3283 mmix_encode_section_info): Likewise.
3284 * config/mn10300/mn10300-protos.h (mn10300_function_value):
3286 * config/mn10300/mn10300.c (mn10300_return_in_memory,
3287 mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
3288 mn10300_function_value): Likewise.
3289 * config/mt/mt-protos.h (mt_function_value): Likewise.
3290 * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
3291 mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
3292 * config/pa/pa-protos.h (function_arg_padding, function_value,
3293 pa_return_in_memory): Likewise.
3294 * config/pa/pa.c (pa_pass_by_reference,
3295 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
3296 function_arg_padding, function_value, pa_return_in_memory):
3298 * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
3299 * config/rs6000/rs6000-protos.h (rs6000_function_value,
3300 function_arg_padding): Likewise.
3301 * config/rs6000/rs6000.c (rs6000_return_in_memory,
3302 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
3303 rs6000_pass_by_reference, rs6000_must_pass_in_stack,
3304 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
3305 function_arg_padding, altivec_expand_dst_builtin,
3306 altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
3307 altivec_init_builtins, rs6000_common_init_builtins,
3308 rs6000_function_value): Likewise.
3309 * s390/s390-protos.h (s390_function_value): Likewise.
3310 * config/s390/s390.c (s390_function_arg_size,
3311 s390_pass_by_reference, s390_return_in_memory,
3312 s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
3313 TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
3314 * config/score/score-protos.h (score_function_value): Likewise.
3315 * config/score/score.c (score_arg_partial_bytes,
3316 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
3317 TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
3318 score_pass_by_reference, score_add_offset, score_function_value):
3320 * config/sh/sh-protos.h (sh_attr_renesas_p,
3321 sh_promote_prototypes): Likewise.
3322 * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
3323 sh_callee_copies, sh_promote_prototypes, shcompact_byref,
3324 sh_attr_renesas_p): Likewise.
3325 * config/sparc/sparc-protos.h (function_value,
3326 function_arg_padding): Likewise.
3327 * config/sparc/sparc.c (sparc_promote_prototypes,
3328 sparc_return_in_memory, sparc_pass_by_reference,
3329 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
3330 function_arg_record_value_2, function_arg_record_value_1,
3331 function_arg_record_value, function_arg_record_value,
3332 function_arg_padding, function_value): Likewise.
3333 * config/spu/spu-protos.h (spu_function_value): Likewise.
3334 * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
3335 spu_function_value): Likewise.
3336 * config/stormy16/stormy16-protos.h (xstormy16_function_value):
3338 * config/stormy16/stormy16.c (xstormy16_return_in_memory,
3339 xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
3340 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
3342 * config/v850/v850.c (v850_return_in_memory,
3343 v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
3344 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
3345 * config/xtensa/xtensa.c (xtensa_return_in_msb,
3346 xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
3347 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
3349 * explow.c (promote_mode, hard_function_value): Likewise.
3350 * expr.h (hard_function_value, promote_mode): Likewise.
3351 * function.c (aggregate_value_p): Likewise.
3352 * hooks.c (hook_bool_const_tree_true): New.
3353 * hooks.h (hook_bool_const_tree_true): New.
3354 * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
3355 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
3356 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
3357 TARGET_RETURN_IN_MSB): Likewise.
3358 * target.h (promote_function_args, promote_function_return,
3359 promote_prototypes, return_in_memory, return_in_msb,
3360 pass_by_reference, must_pass_in_stack, callee_copies,
3361 function_value): Likewi