]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
rtl.h (emit_clobber, [...]): Declare.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2008-06-01 Richard Sandiford <rdsandiford@googlemail.com>
2
3 * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
4 * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
5 functions. Do not emit uses and clobbers of CONCATs; individually
6 use and clobber their operands.
7 * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
8 gen_clobber, emit_use and gen_use.
9 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
10 (expand_builtin_return): Likewise.
11 * cfgbuild.c (count_basic_blocks): Likewise.
12 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
13 * explow.c (emit_stack_restore): Likewise.
14 * expmed.c (extract_bit_field_1): Likewise.
15 * expr.c (convert_move, emit_move_complex_parts): Likewise.
16 (emit_move_multi_word, store_constructor): Likewise.
17 * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
18 (thread_prologue_and_epilogue_insns): Likewise.
19 * lower-subreg.c (resolve_simple_move): Likewise.
20 * optabs.c (widen_operand, expand_binop): Likewise.
21 (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
22 * reload.c (find_reloads): Likewise.
23 * reload1.c (eliminate_regs_in_insn): Likewise.
24 * stmt.c (expand_nl_goto_receiver): Likewise.
25 * config/alpha/alpha.md (builtin_longjmp): Likewise.
26 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
27 * config/arm/arm.c (arm_load_pic_register): Likewise.
28 (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
29 * config/arm/arm.md (untyped_return): Likewise.
30 * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
31 * config/avr/avr.c (expand_prologue): Likewise.
32 * config/bfin/bfin.c (do_unlink): Likewise.
33 * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
34 * config/cris/cris.c (cris_expand_prologue): Likewise.
35 * config/darwin.c (machopic_indirect_data_reference): Likewise.
36 (machopic_legitimize_pic_address): Likewise.
37 * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
38 (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
39 * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
40 (ix86_expand_convert_uns_didf_sse): Likewise.
41 (ix86_expand_vector_init_general): Likewise.
42 * config/ia64/ia64.md (eh_epilogue): Likewise.
43 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
44 * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
45 * config/m32r/m32r.c (m32r_reload_lr): Likewise.
46 (config/iq2000/iq2000.c): Likewise.
47 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
48 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
49 (builtin_longjmp): Likewise.
50 * config/mn10300/mn10300.md (call, call_value): Likewise.
51 * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
52 * config/pdp11/pdp11.md (abshi2): Likewise.
53 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
54 * config/s390/s390.c (s390_emit_prologue): Likewise.
55 * config/s390/s390.md (movmem_long, setmem_long): Likewise.
56 (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
57 (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
58 * config/sh/sh.c (prepare_move_operands): Likewise.
59 (output_stack_adjust, sh_expand_epilogue): Likewise.
60 (sh_set_return_address, sh_expand_t_scc): Likewise.
61 * config/sparc/sparc.c (load_pic_register): Likewise.
62 * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
63 * config/spu/spu.c (spu_expand_epilogue): Likewise.
64 * config/v850/v850.c (expand_epilogue): Likewise.
65
66 2008-05-31 Anatoly Sokolov <aesok@post.ru>
67
68 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
69 (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
70 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
71 * config/avr/avr.c (expand_prologue, expand_epilogue): Use
72 movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
73 stack pointer register.
74 (output_movhi): Remove code for interrupt specific writing to the
75 stack pointer register.
76
77 2008-05-31 Richard Guenther <rguenther@suse.de>
78
79 PR tree-optimization/34244
80 * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
81 (tree_expr_nonzero_warnv_p): Likewise.
82 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
83 ssa_name_nonnegative_p.
84 (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
85 (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
86 not tree_expr_nonzero_warnv_p.
87
88 PR tree-optimization/36262
89 Revert
90 2007-11-29 Zdenek Dvorak <ook@ucw.cz>
91
92 PR tree-optimization/34244
93 * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
94 (record_numbers_of_iterations): New function.
95 (execute_vrp): Cache the numbers of iterations of loops.
96 * tree-scalar-evolution.c (scev_reset_except_niters):
97 New function.
98 (scev_reset): Use scev_reset_except_niters.
99 * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
100
101 2008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
102
103 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
104 __WORKAROUND_RETS when appropriate.
105
106 2008-05-31 Uros Bizjak <ubizjak@gmail.com>
107
108 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
109 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
110 mode iterator.
111 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
112 *fop_df_comm_sse insn patterns using MODEF mode iterator.
113 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
114 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
115 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
116 *fop_df_1_mixed insn patterns using MODEF mode iterator.
117 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
118 *fop_df_1_sse insn patterns using MODEF mode iterator.
119 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
120 *fop_df_1_i387 insn patterns using MODEF mode iterator.
121 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
122 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
123 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
124 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
125 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
126 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
127 (*fop_xf_4_i387): Use <MODE> for mode attribute.
128 (*fop_xf_5_i387): Ditto.
129 (*fop_xf_6_i387): Ditto.
130
131 2008-05-30 Richard Guenther <rguenther@suse.de>
132
133 * builtins.c (build_string_literal): Avoid generating
134 a non-gimple_val result.
135
136 2008-05-30 DJ Delorie <dj@redhat.com>
137
138 * exec-tool.in: Use an environment variable (private) instead of a
139 file (shared) as a semaphore, so as to not break parallel builds.
140
141 2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
142
143 * optabs.c (maybe_encapsulate_block): Remove.
144 (emit_libcall_block): Adjust accordingly.
145 * optabs.h (maybe_encapsulate_block): Remove prototype.
146
147 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
148 Don't use maybe_encapsulate_block.
149
150 2008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
151
152 * config/rs6000/rs6000.c (rs6000_legitimize_address,
153 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
154 rtx is a SYMBOL_REF before calling get_pool_constant.
155
156 2008-05-30 Eric Botcazou <ebotcazou@adacore.com>
157
158 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
159
160 2008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
161
162 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
163 rather than OS names to choose INO_T_EQ definition.
164 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
165 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
166
167 2008-05-29 Daniel Franke <franke.daniel@gmail.com>
168
169 PR target/36348
170 * config/darwin-f.c: New.
171 * config/t-darwin: Added rule to build darwin-f.o.
172 * config.gcc: Defined new variable, fortran_target_objs.
173 (*-*-darwin*): Set fortran_target_objs.
174 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
175 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
176 * configure: Regenerated.
177
178 2008-05-29 H.J. Lu <hongjiu.lu@intel.com>
179
180 PR target/35771
181 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
182 canonical type if needed.
183
184 2008-05-29 Eric Botcazou <ebotcazou@adacore.com>
185
186 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
187
188 2008-05-29 Richard Guenther <rguenther@suse.de>
189
190 PR tree-optimization/36343
191 PR tree-optimization/36346
192 PR tree-optimization/36347
193 * tree-flow.h (clobber_what_p_points_to): Declare.
194 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
195 pointed-to variable is dereferenced is irrelevant to whether
196 the pointer can access the pointed-to variable.
197 (clobber_what_p_points_to): New function.
198 * tree-ssa-alias.c (set_initial_properties): Use it.
199 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
200 call clobber check for NMTs.
201
202 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
203
204 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
205 for printing gcov_type.
206
207 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
208
209 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
210 and the eh region information.
211 * value-prof.c (gimple_move_stmt_histograms): New function.
212 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
213
214 2008-05-28 Andreas Tobler <a.tobler@schweiz.org>
215
216 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
217
218 2008-05-28 Seongbae Park <seongbae.park@gmail.com>
219
220 * value-prof.c (tree_ic_transform): Print counts.
221 * tree-profile.c (tree_gen_ic_func_profiler):
222 Clear __gcov_indreict_call_callee variable to avoid misattribution
223 of the profile.
224
225 2008-05-28 Rafael Espindola <espindola@google.com>
226
227 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
228 invalid sharing.
229
230 2008-05-28 Richard Guenther <rguenther@suse.de>
231
232 PR tree-optimization/36339
233 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
234 and clobbering code out of the loop.
235
236 2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
237
238 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
239 letters defined.
240
241 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
242 s390_contiguous_bitmask_p, s390_symref_operand_p,
243 s390_check_symref_alignment, s390_reload_larl_operand,
244 s390_reload_symref_address): New functions.
245 (s390_branch_condition_mnemonic): Support compare and branch
246 instructions.
247 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
248 and 'W' constraints.
249 (s390_secondary_reload): Add secondary reloads for unaligned
250 symbol refs or symbol refs to floating point or QI/TI mode
251 integer values.
252 (legitimate_address_p): Accept symbol references as addresses.
253 (s390_expand_insv): Use rotate and insert selected bits
254 instruction for insv when building for z10.
255 (print_operand_address): Handle symbol ref addresses.
256 (print_operand): Output modifier 'c' added for signed byte values.
257 (s390_encode_section_info): Mark symbol refs with
258 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
259
260 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
261 (length attribute): RRF, RRR have 4 byte length.
262 (FPALL, INTALL): New mode iterators added.
263 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
264 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
265 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
266 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
267 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
268 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
269 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
270 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
271 instructions.
272 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
273 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
274 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
275 reload<INTALL:mode><P:mode>_toreg_z10,
276 reload<FPALL:mode><P:mode>_tomem_z10,
277 reload<FPALL:mode><P:mode>_toreg_z10,
278 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
279 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
280 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
281 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
282 definition.
283 (movmem, clrmem, cmpmem): New splitters added.
284
285 * config/s390/predicates.md (larl_operand): Use
286 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
287 SYMBOL_REF_ALIGN1_P.
288 (s390_signed_integer_comparison,
289 s390_unsigned_integer_comparison): New predicates.
290
291 * config/s390/s390-protos.h (s390_check_symref_alignment,
292 s390_contiguous_bitmask_p, s390_reload_larl_operand,
293 s390_reload_symref_address,
294 s390_compare_and_branch_condition_mask): Prototypes added.
295
296 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
297 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
298 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
299
300 2008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
301
302 * config/s390/s390.c (z10_cost): New cost function for z10.
303 (s390_handle_arch_option, override_options): Support -march=z10 switch.
304 (s390_issue_rate): Adjust issue rate for z10.
305 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
306 (processor_flags): Add PF_Z10.
307 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
308 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
309 * gcc/config.gcc: Add z10.
310
311 2008-05-28 Richard Guenther <rguenther@suse.de>
312
313 PR tree-optimization/36291
314 * tree-flow. h (struct gimple_df): Remove var_anns member.
315 * tree-flow-inline.h (gimple_var_anns): Remove.
316 (var_ann): Simplify.
317 * tree-dfa.c (create_var_ann): Simplify.
318 (remove_referenced_var): Clear alias info from var_anns of globals.
319 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
320 (delete_tree_ssa): Clear alias info from var_anns of globals.
321 Do not free var_anns.
322 (var_ann_eq): Remove.
323 (var_ann_hash): Likewise.
324
325 2008-05-28 Mark Shinwell <shinwell@codesourcery.com>
326
327 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
328 and loongson2f entries.
329 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
330 * config/mips/mips.h (processor_type): Add Loongson-2E
331 and Loongson-2F entries.
332 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
333 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
334 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
335 * doc/invoke.texi (MIPS Options): Document loongson2e
336 and loongson2f processor names.
337
338 2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
339
340 PR target/35767
341 PR target/35771
342 * config/i386/i386.c (ix86_function_arg_boundary): Use
343 alignment of canonical type.
344 (ix86_expand_vector_move): Check unaligned memory access for
345 all SSE modes.
346
347 2008-05-27 H.J. Lu <hongjiu.lu@intel.com>
348
349 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
350 Moved to the front of file.
351
352 2008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
353 H.J. Lu <hongjiu.lu@intel.com>
354
355 * dwarf2out.c (current_fde): New.
356 (add_cfi): Use it.
357 (lookup_cfa:): Likewise.
358 (dwarf2out_end_epilogue): Likewise.
359 (dwarf2out_note_section_used): Likewise.
360
361 2008-05-27 Michael Matz <matz@suse.de>
362
363 PR c++/27975
364 * c.opt (Wenum-compare): New warning option.
365 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
366
367 2008-05-27 Michael Matz <matz@suse.de>
368
369 PR middle-end/36326
370 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
371 non-BLKmode types.
372 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
373 into memory as tail calls.
374
375 2008-05-27 Richard Guenther <rguenther@suse.de>
376
377 PR tree-optimization/36339
378 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
379 pointers cause all addressable variables to be call clobbered.
380
381 2008-05-27 Richard Guenther <rguenther@suse.de>
382
383 PR tree-optimization/36245
384 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
385
386 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
387
388 * config/s390/s390.md: Replace all occurences of the 'm'
389 constraint with 'RT'.
390
391 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
392
393 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
394 definitions added.
395 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
396 "*movdi_64".
397 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
398 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
399 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
400
401 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
402
403 * reload.c: (find_reloads): Skip alternatives according to the
404 "enabled" attribute. Constify the constraint variable.
405 * recog.c (get_attr_enabled): Add default implementation.
406 (extract_insn): Set the alternative_enabled_p array
407 in the recog_data struct.
408 (preprocess_constraints, constrain_operands): Skip
409 alternatives according to the "enabled" attribute
410 * recog.h (struct recog_data): New field alternative_enabled_p.
411 (skip_alternative): New inline function.
412 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
413 (record_reg_classes): Skip alternative according to the
414 "enabled" attribute.
415
416 * doc/md.texi: Add documention for the "enabled" attribute.
417
418 2008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
419
420 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
421 * postreload.c (reload_cse_simplify_operands): Replace 'm'
422 constraint with TARGET_MEM_CONSTRAINT.
423 * recog.c (asm_operand_ok, preprocess_constraints,
424 constrain_operands): Likewise.
425 * regclass.c (record_reg_classes): Likewise.
426 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
427 * reload1.c (maybe_fix_stack_asms): Likewise.
428 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
429 * recog.h: Adjust comment.
430 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
431 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
432 * doc/md.texi: Add a note to description of 'm' constraint.
433 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
434
435 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
436
437 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
438 that the bitfield is of integral type before testing its precision.
439
440 2008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
441 Sa Liu <saliu@de.ibm.com>
442
443 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
444 __modti3, __udivti3, __umodti3 and __udivmodti4.
445 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
446 that implement TImode mul and div functions.
447 * config/spu/multi3.c: New. Implement __multi3.
448 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
449 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
450 functions on SPU.
451
452 2008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
453
454 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
455 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
456 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
457 tls_sysv_suffix): New mode and mode attribute iterators.
458 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
459 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
460 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
461 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
462 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
463 iterators.
464
465 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
466
467 PR tree-optimization/36329
468 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
469 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
470 * cgraphbuild.c (initialize_inline_failed): Use the latter
471 macro in lieu of the former.
472 * ipa-inline.c (cgraph_mark_inline): Likewise.
473 (cgraph_decide_inlining_of_small_function): Likewise.
474 (cgraph_decide_inlining): Likewise.
475 (cgraph_decide_inlining_incrementally): Likewise.
476
477 2008-05-26 Tristan Gingold <gingold@adacore.com>
478 Anatoly Sokolov <aesok@post.ru>
479
480 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
481 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
482 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
483 optimization for 'avr6' architecture.
484
485 2008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
486
487 PR target/34932
488 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
489
490 2008-05-26 Richard Guenther <rguenther@suse.de>
491
492 * tree-ssa-sccvn.c (expr_has_constants): Declare.
493 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
494
495 2008-05-26 H.J. Lu <hongjiu.lu@intel.com>
496
497 PR middle-end/36253
498 * caller-save.c (insert_restore): Verify alignment of spill space.
499 (insert_save): Likewise.
500 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
501 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
502 (STACK_SLOT_ALIGNMENT): Likewise.
503 * function.c (LOCAL_ALIGNMENT): Removed.
504 (get_stack_local_alignment): New.
505 (assign_stack_local): Use it. Set alignment on stack slot.
506 (assign_stack_temp_for_type): Use get_stack_local_alignment.
507 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
508 (STACK_SLOT_ALIGNMENT): New.
509 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
510 stack slot in XFmode.
511
512 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
513
514 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
515
516 PR/36321
517 * config/i386/i386.md (allocate_stack_worker_64): Make sure
518 argument operand in rax isn't removed.
519
520 2008-05-26 Richard Guenther <rguenther@suse.de>
521
522 PR middle-end/36300
523 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
524 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
525
526 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
527
528 PR bootstrap/36331
529 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
530
531 2008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
532
533 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
534 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
535
536 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
537
538 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
539 build a trampoline if we don't want one.
540 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
541 return zero for nested functions if we don't want a trampoline.
542
543 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
544
545 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
546
547 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
548
549 PR fortran/18428
550 * c.opt: Removed undocumented option '-lang-fortran'.
551 * c-common.h: Removed global variable 'lang_fortran'.
552 * c-opts.c (c_common_handle_option): Removed code to handle
553 option '-lang-fortran'. Updated includes.
554 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
555 definition of '__GFORTRAN__'.
556 (define__GNUC__): Reimplemented to use BASEVER and
557 cpp_define_formatted.
558 (builtin_define_with_value_n): Removed.
559 * c-incpath.h: Renamed to ...
560 * incpath.h: ... this.
561 * c-incpath.c: Renamed to ...
562 * incpath.c: ... this. Updated includes.
563 * fix-header.c: Updated includes.
564 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
565 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
566 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
567
568 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
569
570 * tree.h: Update the table of flags used on tree nodes.
571 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
572 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
573 (FORCED_LABEL): Add access check.
574 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
575 (ASM_INPUT_P): Likewise.
576 (ASM_VOLATILE_P): Likewise.
577 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
578 (OMP_SECTION_LAST): Access private_flag directly.
579 (OMP_RETURN_NOWAIT): Likewise.
580 (OMP_PARALLEL_COMBINED): Likewise.
581 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
582 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
583 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
584 deprecated_flag directly.
585
586 2008-05-25 H.J. Lu <hongjiu.lu@intel.com>
587
588 * final.c (frame_pointer_needed): Removed.
589 * flags.h (frame_pointer_needed): Likewise.
590
591 * function.h (rtl_data): Add frame_pointer_needed.
592 (frame_pointer_needed): New.
593
594 2008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
595
596 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
597
598 2008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
599
600 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
601 SRC is a REG.
602
603 2008-05-25 Alan Modra <amodra@bigpond.net.au>
604
605 * c-common.c (strip_array_types): Move function to..
606 * tree.c: ..here.
607 (get_inner_array_type): Delete.
608 * c-common.h (strip_array_types): Move declaration to..
609 * tree.h: ..here.
610 (get_inner_array_type): Delete.
611 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
612 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
613 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
614 * config/pa/pa.c (emit_move_sequence): Likewise.
615
616 2008-05-24 H.J. Lu <hongjiu.lu@intel.com>
617
618 * config/i386/i386.md (*sse_prologue_save_insn): Set length
619 attribute to 34.
620
621 2008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
622
623 * function.c: Include target hook for nonlocal_goto frame value.
624
625 2008-05-24 Richard Guenther <rguenther@suse.de>
626
627 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
628 variable can be only accessed through a pointer or a union.
629
630 2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
631
632 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
633 * doc/extend.texi: Likewise.
634
635 2008-05-23 DJ Delorie <dj@redhat.com>
636
637 * config/m32c/jump.md (untyped_call): Add.
638
639 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
640 for A24 to PSImode.
641 (m32c_address_cost): Detail costs for indirect offsets.
642
643 2008-05-23 Rafael Espindola <espindola@google.com>
644
645 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
646 if a node is a SUBREG.
647 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
648 is a SUBREG.
649
650 2008-05-23 Paul Brook <paul@codesourcery.com>
651 Carlos O'Donell <carlos@codesourcery.com>
652
653 * doc/extend.texi: Clarify use of __attribute__((naked)).
654 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
655 * target.h (gcc_target): Add allocate_stack_slots_for_args.
656 * function.c (use_register_for_decl): Use
657 targetm.calls.allocate_stack_slots_for_args.
658 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
659 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
660 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
661
662 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
663
664 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
665
666 2008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
667
668 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
669 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
670 is only rounded once.
671
672 2008-05-23 Richard Guenther <rguenther@suse.de>
673
674 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
675
676 2008-05-23 Uros Bizjak <ubizjak@gmail.com>
677 Jakub Jelinek <jakub@redhat.com>
678
679 PR target/36079
680 * configure.ac: Handle --enable-cld.
681 * configure: Regenerated.
682 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
683 * config/i386/i386.h (struct machine_function): Add needs_cld field.
684 (ix86_current_function_needs_cld): New define.
685 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
686 (cld): New isns pattern.
687 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
688 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
689 * config/i386/i386.opt (mcld): New option.
690 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
691 TARGET_CLD and ix86_current_function_needs_cld.
692 (override_options): Use -mcld by default for 32-bit code if
693 USE_IX86_CLD.
694
695 * doc/install.texi (Options specification): Document --enable-cld.
696 * doc/invoke.texi (Machine Dependent Options)
697 [i386 and x86-64 Options]: Add -mcld option.
698 (Intel 386 and AMD x86-64 Options): Document -mcld option.
699
700 2008-05-23 Kai Tietz <kai.tietz@onevison.com>
701 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
702 (return_in_memory_64): Likewise.
703 (return_in_memory_ms_64): Likewise.
704
705 2008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
706
707 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
708 * builtins.c (fold_builtin_fpclassify): New.
709 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
710 * builtins.def (BUILT_IN_FPCLASSIFY): New.
711 * c-common.c (handle_type_generic_attribute): Adjust to accept
712 fixed arguments before an elipsis.
713 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
714 * doc/extend.texi: Document __builtin_fpclassify.
715
716 2008-05-22 Aldy Hernandez <aldyh@redhat.com>
717
718 * omp-low.c (gate_expand_omp_ssa): Remove.
719 (pass_expand_omp_ssa): Remove.
720 (gate_expand_omp): Do not check for flag_openmp_ssa.
721 * common.opt (-fopenmp-ssa): Remove.
722 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
723
724 2008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
725
726 * config/sh/sh.opt (mfixed-range): New option.
727 * config/sh/sh-protos.h (sh_fix_range): Declare.
728 * config/sh/sh.c (sh_fix_range): New function.
729 * config/sh/sh.h (sh_fixed_range_str): Declare.
730 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
731 is not empty.
732 * doc/invoke.texi (SH Options): Document -mfixed-range.
733
734 2008-05-22 Kai Tietz <kai.tietz@onevision.com>
735
736 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
737 it before the redeclaration.
738
739 2008-05-22 Anatoly Sokolov <aesok@post.ru>
740
741 * config/avr/avr.c (get_sequence_length): Add new function.
742 (expand_prologue, expand_epilogue): Remove duplicate code.
743
744 2008-05-22 Rafael Espindola <espindola@google.com>
745
746 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
747 sharing.
748
749 2008-05-22 H.J. Lu <hongjiu.lu@intel.com>
750
751 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
752 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
753
754 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
755 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
756 (vect_update_misalignment_for_peel): Likewise.
757 (vector_alignment_reachable_p): Likewise.
758 * tree-vect-transform.c (vectorizable_load): Likewise.
759 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
760 (get_vectype_for_scalar_type): Pass mode of scalar_type
761 to UNITS_PER_SIMD_WORD.
762
763 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
764 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
765 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
766 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
767 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
768
769 2008-05-22 Ira Rosen <irar@il.ibm.com>
770
771 PR tree-optimization/36293
772 * tree-vect-transform.c (vect_transform_strided_load): Don't check
773 if the first load must be skipped because of a gap.
774
775 2008-05-22 Richard Guenther <rguenther@suse.de>
776
777 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
778 more cases of offset disambiguation that is possible if
779 strict-aliasing rules apply.
780 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
781 for basic offset and type-based disambiguation.
782
783 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
784
785 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
786 ix86_expand_vector_set on V16QImode for SSE4.1.
787
788 2008-05-21 Tom Tromey <tromey@redhat.com>
789
790 * c.opt (Wimport): Mark as undocumented.
791 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
792 -Wno-import.
793 (Warning Options): Likewise.
794 * doc/cppopts.texi: Don't mention -Wimport.
795
796 2008-05-21 Sebastian Pop <sebastian.pop@amd.com>
797
798 PR tree-optimization/36287
799 PR tree-optimization/36286
800 * lambda-code.c (build_access_matrix): Do not use the loop->num
801 for computing the number of induction variables: use the loop depth
802 instead.
803
804 2008-05-21 Kai Tietz <kai.tietz@onevision.com>
805
806 PR/36280
807 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
808 option -f(no-)leading-underscore.
809
810 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
811
812 * config/i386/i386.c (ix86_expand_vector_init_general): Use
813 GET_MODE_NUNITS (mode).
814
815 2008-05-21 Peter Bergner <bergner@vnet.ibm.com>
816
817 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
818 (-mmulhw): Add 464 to description.
819 (-mdlmzb): Likewise.
820 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
821 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
822 464fp entries.
823 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
824 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
825 * config/rs6000/rs6000.md: Update comments for 464.
826
827 2008-05-21 Janis Johnson <janis187@us.ibm.com>
828
829 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
830
831 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
832
833 * config/i386/sse.md (vec_extractv4sf): Removed.
834 (vec_extractv2df): Likewise.
835 (vec_extractv2di): Likewise.
836 (vec_extractv4si): Likewise.
837 (vec_extractv8hi): Likewise.
838 (vec_extractv16qi): Likewise.
839 (vec_extract<mode>): New.
840
841 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
842
843 * config/i386/sse.md (vec_setv4sf): Removed.
844 (vec_setv2df): Likewise.
845 (vec_setv2di): Likewise.
846 (vec_setv4si): Likewise.
847 (vec_setv8hi): Likewise.
848 (vec_setv16qi): Likewise.
849 (vec_set<mode>): New.
850
851 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
852
853 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
854 goto for vec_concat and vec_interleave.
855
856 2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
857
858 * config/i386/sse.md (vec_initv4sf): Removed.
859 (vec_initv2df): Likewise.
860 (vec_initv2di): Likewise.
861 (vec_initv4si): Likewise.
862 (vec_initv8hi): Likewise.
863 (vec_initv16qi): Likewise.
864 (vec_init<mode>): New.
865
866 2008-05-21 Joseph Myers <joseph@codesourcery.com>
867
868 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
869
870 2008-05-21 Tom Tromey <tromey@redhat.com>
871
872 * ggc-zone.c (lookup_page_table_if_allocated): New function.
873 (zone_find_object_offset): Likewise.
874 (gt_ggc_m_S): Likewise.
875 (highest_bit): Likewise.
876 * ggc-page.c (gt_ggc_m_S): New function.
877 * stringpool.c (string_stack): Remove.
878 (init_stringpool): Update.
879 (ggc_alloc_string): Use ggc_alloc.
880 (maybe_delete_ident): New function.
881 (ggc_purge_stringpool): Likewise.
882 (gt_ggc_m_S): Remove.
883 * ggc-common.c (ggc_protect_identifiers): New global.
884 (ggc_mark_roots): Call ggc_purge_stringpool. Use
885 ggc_protect_identifiers.
886 * ggc.h (ggc_protect_identifiers): Declare.
887 (gt_ggc_m_S): Update.
888 (ggc_purge_stringpool): Declare.
889 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
890 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
891 special case.
892 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
893
894 2008-05-21 David S. Miller <davem@davemloft.net>
895
896 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
897 tmake_file.
898
899 2008-05-21 Eric Botcazou <ebotcazou@adacore.com>
900
901 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
902 once finished.
903
904 2008-05-20 David Daney <ddaney@avtrex.com>
905
906 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
907 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
908 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
909 UNSPEC_UPDATE_GOT_VERSION): Renumber.
910 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
911 (atomic_hiqi_op): New define_code_iterator.
912 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
913 mips_expand_compare_and_swap_12.
914 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
915 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
916 (sync_<optab><mode>, sync_old_<optab><mode>,
917 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
918 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
919 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
920 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
921 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
922 (test_and_set_12): New insn.
923 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
924 sync_new_<optab><mode>, sync_old_nand<mode>,
925 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
926 clobber to operand 0 for SI and DI mode insns.
927 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
928 mips_gen_fn_4): New typedefs.
929 (mips_gen_fn_ptrs): Define new union type.
930 (mips_expand_compare_and_swap_12): Remove declaration.
931 (mips_expand_atomic_qihi): Declare function.
932 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
933 (mips_expand_atomic_qihi): ... this. Use new generator function
934 parameter.
935 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
936 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
937 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
938 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
939 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
940 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
941 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
942 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
943 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
944 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
945 New macros.
946
947 2008-05-20 H.J. Lu <hongjiu.lu@intel.com>
948
949 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
950 the missing break.
951
952 2008-05-20 Anatoly Sokolov <aesok@post.ru>
953
954 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
955 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
956 (avr_attribute_table): Add 'OS_main' function attribute.
957 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
958 functions with 'OS_main' attribute.
959
960 2008-05-20 Richard Guenther <rguenther@suse.de>
961
962 PR tree-optimization/35204
963 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
964 helper, split out from ...
965 (DFS): ... here. Make the DFS walk non-recursive.
966
967 2008-05-20 Sebastian Pop <sebastian.pop@amd.com>
968 Jan Sjodin <jan.sjodin@amd.com>
969
970 PR tree-optimization/36181
971 * tree-parloops.c (loop_has_vector_phi_nodes): New.
972 (parallelize_loops): Don't parallelize when the loop has vector
973 phi nodes.
974
975 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
976 Sebastian Pop <sebastian.pop@amd.com>
977
978 * tree-loop-linear.c (gather_interchange_stats): Look in the access
979 matrix, and never look at the tree representation of the memory
980 accesses.
981 (linear_transform_loops): Computes parameters and access matrices.
982 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
983 when fails.
984 (access_matrix_get_index_for_parameter): New.
985 * tree-data-ref.h (struct access_matrix): New.
986 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
987 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
988 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
989 am_vector_index_for_loop): New.
990 (struct data_reference): Add field access_matrix.
991 (DR_ACCESS_MATRIX): New.
992 (compute_data_dependences_for_loop): Update declaration.
993 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
994 * lambda.h (lambda_vector_vec_p): Declared.
995 * lambda-code.c: Depend on pointer-set.h.
996 (lambda_collect_parameters_from_af, lambda_collect_parameters,
997 av_for_af_base, av_for_af, build_access_matrix,
998 lambda_compute_access_matrices): New.
999 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
1000
1001 2008-05-20 Joseph Myers <joseph@codesourcery.com>
1002
1003 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
1004 $SOURCEDIR/include.
1005
1006 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
1007 Sebastian Pop <sebastian.pop@amd.com>
1008
1009 PR tree-optimization/36206
1010 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
1011 FOLD_CONVERSIONS.
1012 (instantiate_scev_1): Rename flags to fold_conversions.
1013 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
1014 outeside instantiation_loop.
1015 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
1016 (evolution_function_is_affine_or_constant_p): Removed.
1017 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
1018 instantiate_scev.
1019 (analyze_siv_subscript): Pass in the loop nest number.
1020 Call evolution_function_is_affine_in_loop instead of
1021 evolution_function_is_affine_p.
1022 (analyze_overlapping_iterations): Pass in the loop nest number.
1023
1024 2008-05-20 Jan Sjodin <jan.sjodin@amd.com>
1025 Sebastian Pop <sebastian.pop@amd.com>
1026
1027 PR tree-optimization/36206
1028 * tree-chrec.h (chrec_fold_op): New.
1029 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
1030 and other trees.
1031
1032 2008-05-20 Nathan Sidwell <nathan@codesourcery.com>
1033
1034 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
1035 (DIRS_EQ): New.
1036 (remove_duplicates): Do not set inode on non-inode systems.
1037 Use DIRS_EQ.
1038
1039 2008-05-20 Sandra Loosemore <sandra@codesourcery.com>
1040
1041 * config.gcc (tm_file): Update comments about relative pathnames.
1042
1043 2008-05-20 Richard Guenther <rguenther@suse.de>
1044
1045 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
1046 * tree-ssa-sccvn.c (process_scc): Likewise.
1047 * tree-ssa-sink.c (execute_sink_code): Likewise.
1048 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
1049 * tree-vrp.c (process_assert_insertions): Likewise.
1050 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1051 (perform_tree_ssa_dce): Likewise.
1052 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1053 (dump_dominator_optimization_stats): Likewise.
1054 * tree-vectorizer.c (vectorize_loops): Likewise.
1055
1056 2008-05-20 Richard Guenther <rguenther@suse.de>
1057
1058 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
1059
1060 2008-05-20 Kai Tietz <kai.tietz@onevision.com>
1061
1062 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
1063 (ix86_i386elf_return_in_memory): Likewise.
1064 (ix86_i386interix_return_in_memory): Likewise.
1065 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
1066 (SUBTARGET_RETURN_IN_MEMORY): New.
1067 * config/i386/i386elf.h: Likewise.
1068 * config/i386/ptx4-i.h: Likewise.
1069 * config/i386/sol2-10.h: Likewise.
1070 * config/i386/sysv4.h: Likewise.
1071 * config/i386/vx-common.h: Likewise.
1072 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
1073 * config/i386/i386.c (ix86_return_in_memory): Made static and
1074 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
1075 (ix86_i386elf_return_in_memory): Removed.
1076 (ix86_i386interix_return_in_memory): Removed.
1077 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
1078 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
1079
1080 2008-05-20 Alexandre Oliva <aoliva@redhat.com>
1081
1082 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
1083
1084 2008-05-19 Xinliang David Li <davidxl@google.com>
1085
1086 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
1087 * opts.c: Ditto.
1088 * common.opt: Ditto.
1089 * doc/invoke.texi: Ditto.
1090
1091 2008-05-19 Eric Botcazou <ebotcazou@adacore.com>
1092
1093 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
1094 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
1095
1096 2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
1097
1098 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
1099 sizes of operand array from 8/4 to 4/2.
1100 (ix86_expand_vector_init_general): Change size of operand array
1101 from 32 to 16. Remove op0, op1 and half_mode.
1102
1103 2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
1104
1105 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1106 (ix86_expand_vector_init_interleave): Likewise.
1107 (ix86_expand_vector_init_general): Use them. Assert
1108 word_mode == SImode when n_words == 4.
1109
1110 2008-05-19 Uros Bizjak <ubizjak@gmail.com>
1111
1112 * config/i386/i386.c (ix86_secondary_reload): New static function.
1113 (TARGET_SECONDARY_RELOAD): New define.
1114 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1115 * config/i386/i386.md (reload_outqi): Remove.
1116
1117 2008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1118
1119 PR middle-end/35509
1120 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1121 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
1122 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1123 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1124 (fold_builtin_1): Likewise.
1125 * builtins.def (BUILT_IN_ISINF_SIGN): New.
1126 c-common.c (check_builtin_function_arguments): Handle
1127 BUILT_IN_ISINF_SIGN.
1128 * doc/extend.texi: Document __builtin_isinf_sign.
1129 * fold-const.c (operand_equal_p): Handle COND_EXPR.
1130
1131 2008-05-18 Eric Botcazou <ebotcazou@adacore.com>
1132
1133 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1134 EH cleanup at the end of the pass, search for those that have been
1135 turned into forwarder blocks and do the cleanup on their successor.
1136
1137 2008-05-18 Richard Guenther <rguenther@suse.de>
1138
1139 * tree-cfg.c (verify_gimple_expr): Allow conversions from
1140 pointers to sizetype and vice versa.
1141
1142 2008-05-18 Xinliang David Li <davidxl@google.com>
1143
1144 * gcc/tree-ssa-dce.c: Coding style fix.
1145 (check_pow): Documentation comment.
1146 (check_log): Documenation comment. Coding style fix.
1147 (is_unnecessary_except_errno_call): Ditto.
1148 (gen_conditions_for_pow): Ditto.
1149 (gen_conditions_for_log): Ditto.
1150 (gen_shrink_wrap_conditions): Ditto.
1151 (shrink_wrap_one_built_in_calls): Ditto.
1152 * gcc/doc/invoke.texi: Better documentation string.
1153 * ChangeLog: Fix wrong change log entries from
1154 May 17 checkin on function call DCE.
1155
1156 2008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
1157
1158 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
1159
1160 2008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
1161
1162 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1163 * df-problems.c (simulation routines): Fixed block comment to
1164 properly say how to add forwards scanning functions.
1165
1166 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
1167
1168 * tree-inline.c (setup_one_parameter): Remove dead code.
1169
1170 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
1171
1172 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1173 a BIT_AND_EXPR only for an INTEGER_TYPE.
1174
1175 2008-05-17 Xinliang David Li <davidxl@google.com>
1176
1177 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1178 (check_pow, check_log, is_unnecessary_except_errno_call): New
1179 functions to check for eliminating math functions that are pure
1180 except for setting errno.
1181 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1182 general condition expressions for shrink-wrapping pow/log calls.
1183 (gen_shrink_wrap_conditions): Ditto.
1184 (shrink_wrap_one_built_in_call): Ditto.
1185 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1186 (mark_operand_necessary): If debugging, output if OP is necessary.
1187 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1188 unnecessary.
1189 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1190 opt level >= 2.
1191 * gcc/common.opt: New user flag -ftree-builtin-dce.
1192 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1193
1194 2008-05-16 David S. Miller <davem@davemloft.net>
1195
1196 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
1197 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1198
1199 2008-05-16 Uros Bizjak <ubizjak@gmail.com>
1200
1201 PR target/36246
1202 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1203
1204 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1205
1206 * ifcvt.c (dead_or_predicable): Rename
1207 df_simulate_one_insn_backwards to df_simulate_one_insn.
1208 * recog.c (peephole2_optimize): Ditto.
1209 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1210 Ditto.
1211 * df.h: Rename df_simulate_one_insn_backwards to
1212 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
1213 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1214 scanning of defs and uses.
1215 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1216 (df_simulate_one_insn_forwards): Removed.
1217
1218 2008-05-16 Doug Kwan <dougkwan@google.com>
1219
1220 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1221 QNaN & SNaN.
1222 (real_from_string): Handle NaNs and Inf as approriate.
1223
1224 2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
1225
1226 * doc/gty.texi (Source Files Containing Type Information): Note
1227 that headers should appear first in the gtfiles list.
1228
1229 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1230
1231 * tree.def (COND_EXEC): Properly documented this code.
1232
1233 2008-05-16 Diego Novillo <dnovillo@google.com>
1234
1235 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1236 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1237 the new field.
1238
1239 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1240
1241 * tree-ssa-dse (max_stmt_uid): Removed.
1242 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
1243 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1244 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1245 * function.h (cfun.last_stmt_uid): New field.
1246 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
1247 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1248 New functions.
1249 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1250 (create_stmt_ann): Initialize the ann->uid field.
1251 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1252 with new calls.
1253 * tree-flow.h (renumber_gimple_stmt_uids): New function.
1254
1255 2008-05-16 Nathan Froyd <froydnj@codesourcery.com>
1256
1257 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1258 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1259 (init_empty_tree_cfg): Call it.
1260
1261 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1262
1263 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
1264 Update all users.
1265
1266 2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1267
1268 * doc/invoke.text (-fdump-tree-*-verbose): New option.
1269 * tree-dump.c (dump_options): New verbose option.
1270 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1271 Add verbose dump.
1272 * tree-pass.h (TDF_VERBOSE): New dump flag.
1273 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
1274 (tree-flow.h): Added include.
1275 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
1276
1277 2008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
1278
1279 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1280
1281 From Jie Zhang <jie.zhang@analog.com>
1282 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1283 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1284 mcpu=bf561-none and mcpu=bf561-0.2.
1285 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1286 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1287 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1288 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1289 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1290 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1291 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
1292 option.
1293 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1294 (cputype_selected): Remove.
1295 (bfin_handle_option): Don't use cputype_selected.
1296 (override_options): When no mcpu option, enable all workarounds.
1297 Don't use bfin_workarounds.
1298 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1299 processor type.
1300 (DEFAULT_CPU_TYPE): Don't define.
1301
1302 2008-05-16 Richard Guenther <rguenther@suse.de>
1303
1304 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1305 on deletion of the last stmt.
1306
1307 2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
1308
1309 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1310 V8HImode for SSE2 and V16QImode for SSE4.1.
1311
1312 2008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
1313
1314 * cgraph.h (compute_inline_parameters): Made public.
1315 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1316 variable_generate_summary, function_write_summary,
1317 variable_write_summary, variable_read_summary. Added generate_summary,
1318 write_summary, read_summary.
1319 * cgraphunit.c (cgraph_process_new_functions): Changed call from
1320 pass_ipa_inline.function_generate_summary, to
1321 compute_inline_parameters.
1322 * ipa-inline.c (compute_inline_parameters): Made public and added
1323 node parameter.
1324 (compute_inline_parameters_for_current): New function.
1325 (pass_inline_param): Now calls compute_inline_parameters_for_current.
1326 (inline_generate_summary): Removed parameter and made to loop over
1327 all cgraph nodes.
1328 (pass_ipa_inline): Updated for new IPA_PASS structure.
1329 * passes.c (execute_ipa_summary_passes): Now is called once per
1330 pass rather than once per node*pass.
1331
1332 2008-05-15 Anatoly Sokolov <aesok@post.ru>
1333
1334 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
1335 avr_have_mul_p, avr_asm_only_p): Remove variables.
1336 (avr_override_options): Remove initialization of removed variables.
1337 (avr_file_start): Convert removed variables to fields of
1338 'struct base_arch_s *avr_current_arch'.
1339 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1340 (AVR_HAVE_MUL): (Ditto.).
1341 (AVR_HAVE_MOVW): (Ditto.).
1342 (AVR_HAVE_LPMX): (Ditto.).
1343 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
1344 avr_asm_only_p): Remove declaration.
1345
1346 2008-05-15 Diego Novillo <dnovillo@google.com>
1347
1348 * config/arm/arm.c (arm_return_in_memory): Fix return type.
1349 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1350
1351 2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
1352
1353 PR middle-end/36194
1354 * combine.c (check_conversion): Rename back to check_promoted_subreg.
1355 Don't call record_truncated_value from here.
1356 (record_truncated_value): Turn it into a for_each_rtx callback.
1357 (record_truncated_values): New function.
1358 (combine_instructions): Call note_uses with record_truncated_values.
1359 Change name of check_conversion to check_promoted_subreg.
1360
1361 2008-05-15 Janis Johnson <janis187@us.ibm.com>
1362
1363 * doc/sourcebuild.texi: Document support for torture tests.
1364
1365 2008-05-15 Uros Bizjak <ubizjak@gmail.com>
1366
1367 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1368 to alternative 4 of operand 2.
1369
1370 2008-05-15 Richard Guenther <rguenther@suse.de>
1371
1372 * tree-pass.h (current_pass): Declare.
1373 (get_pass_for_id): Likewise.
1374 * passes.c (passes_by_id, passes_by_id_size): New globals.
1375 (set_pass_for_id): New function.
1376 (get_pass_for_id): Likewise.
1377 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1378 (execute_function_todo): Flush per function statistics.
1379 * toplev.c (compile_file): Init statistics.
1380 (general_init): Do early statistics initialization.
1381 (finalize): Finish statistics.
1382 * statistics.h (statistics_early_init): Declare.
1383 (statistics_init): Likewise.
1384 (statistics_fini): Likewise.
1385 (statistics_fini_pass): Likewise.
1386 (statistics_counter_event): Likewise.
1387 (statistics_histogram_event): Likewise.
1388 * statistics.c: New file.
1389 * Makefile.in (OBJS-common): Add statistics.o.
1390 (statistics.o): Add dependencies.
1391 * doc/invoke.texi (-fdump-statistics): Document.
1392
1393 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1394 (insert): Likewise.
1395 (execute_pre): Use statistics_counter_event.
1396 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1397 (substitute_and_fold): Increment it. Use statistics_counter_event.
1398
1399 2008-05-15 Diego Novillo <dnovillo@google.com>
1400
1401 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1402
1403 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1404 * tree-ssa-alias.c (new_type_alias): Remove references to
1405 sub-variables from comment.
1406 * tree-ssa-operands.c (swap_tree_operands): Likewise.
1407
1408 2008-05-15 H.J. Lu <hongjiu.lu@intel.com>
1409
1410 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1411 attribute to 1 only for insertps alternative.
1412
1413 2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
1414
1415 * config/bfin/bfin.md (loadbytes): New pattern.
1416 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1417 (bfin_init_builtins): Initialize it.
1418 (bdesc_1arg): Add it.
1419
1420 2008-05-15 Sa Liu <saliu@de.ibm.com>
1421
1422 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1423 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1424 * testsuite/lib/target-supports.exp: Add
1425 check_effective_target_fortran_integer_16.
1426
1427 2008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
1428
1429 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1430 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1431 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
1432 (TARGET_RETURN_IN_MEMORY): Define.
1433
1434 2008-05-15 Richard Guenther <rguenther@suse.de>
1435
1436 PR middle-end/36244
1437 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1438 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1439 represent unmodifiable vars.
1440
1441 2008-05-15 Richard Guenther <rguenther@suse.de>
1442
1443 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1444 INDIRECT_REF and TARGET_MEM_REF.
1445 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1446 TARGET_MEM_REF.
1447
1448 2008-05-15 Uros Bizjak <ubizjak@gmail.com>
1449 H.J. Lu <hongjiu.lu@intel.com>
1450
1451 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1452 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1453 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
1454 insn alternatives. Add missing alternatives.
1455 (*vec_concatv2di_rex64_sse4_1): Likewise.
1456 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1457 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1458 Require TARGET_SSE.
1459
1460 2008-05-15 Richard Guenther <rguenther@suse.de>
1461
1462 PR tree-optimization/36009
1463 PR tree-optimization/36204
1464 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1465 (determine_invariantness_stmt): Record the loop a store is
1466 always executed in.
1467 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1468 dependency.
1469
1470 2008-05-15 Richard Guenther <rguenther@suse.de>
1471
1472 PR tree-optimization/34330
1473 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1474 through the pointer will alias the SMT.
1475
1476 2008-05-14 Andreas Tobler <a.tobler@schweiz.org>
1477
1478 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1479
1480 2008-05-14 H.J. Lu <hongjiu.lu@intel.com>
1481
1482 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1483
1484 2008-05-14 Michael Meissner <michael.meissner@amd.com>
1485 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1486
1487 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1488 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1489 (vashl_optab): New optab for vector/vector shifts.
1490 (vashr_optab): Ditto.
1491 (vlshr_optab): Ditto.
1492 (vrotl_optab): Ditto.
1493 (vrotr_optab): Ditto.
1494 (optab_subtype): New enum for optab_for_tree_code call.
1495 (optab_for_tree_code): Add enum optab_subtype argument.
1496
1497 * optabs.c (optab_for_tree_code): Take an additional argument to
1498 distinguish between a vector shift by a scalar and vector shift by
1499 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
1500 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
1501 vector shift by a vector.
1502 (expand_widen_pattern_expr): Pass additional argument to
1503 optab_for_tree_code.
1504
1505 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1506 vrotl_optab, vrotr_optab.
1507
1508 * expr.c (expand_expr_real_1): Update calls to
1509 optab_for_tree_code to distinguish between vector shifted by a
1510 scalar and vector shifted by a vector.
1511 * tree-vectorizer.c (supportable_widening_operation): Ditto.
1512 (supportable_narrowing_operation): Ditto.
1513 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1514 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1515 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1516 (vect_create_epilog_for_reduction): Ditto.
1517 (vectorizable_reduction): Ditto.
1518 (vectorizable_operation): Ditto.
1519 (vect_strided_store_supported): Ditto.
1520 (vect_strided_load_supported): Ditto.
1521 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1522 * expmed.c (expand_shift): Ditto.
1523
1524 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1525 scalar type.
1526 (ashr@var{m}3): Ditto.
1527 (vashl@var{m}3): Document new vector/vector shift standard name.
1528 (vashr@var{m}3): Ditto.
1529 (vlshr@var{m}3): Ditto.
1530 (vrotl@var{m}3): Ditto.
1531 (vrotr@var{m}3): Ditto.
1532
1533 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1534 (PPERM_INVERT): Ditto.
1535 (PPERM_REVERSE): Ditto.
1536 (PPERM_REV_INV): Ditto.
1537 (PPERM_ZERO): Ditto.
1538 (PPERM_ONES): Ditto.
1539 (PPERM_SIGN): Ditto.
1540 (PPERM_INV_SIGN): Ditto.
1541 (PPERM_SRC1): Ditto.
1542 (PPERM_SRC2): Ditto.
1543
1544 * config/i386/sse.md (mulv2di3): Add SSE5 support.
1545 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1546 allows a memory operand to be the value being added, and split it
1547 to improve vectorization.
1548 (sse5_pmacsdqh_mem): Ditto.
1549 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1550 (sse5_mulv2div2di3_high): Ditto.
1551 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1552 (vec_pack_trunc_v4si): Ditto.
1553 (vec_pack_trunc_v2di): Ditto.
1554 (sse5_pcmov_<mode>): Remove code that tried to use use
1555 andps/andnps instead of pcmov.
1556 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1557 pmacsdqh instructions.
1558 (vec_widen_smult_lo_v4si): Ditto.
1559
1560 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1561 (PPERM_INVERT): Ditto.
1562 (PPERM_REVERSE): Ditto.
1563 (PPERM_REV_INV): Ditto.
1564 (PPERM_ZERO): Ditto.
1565 (PPERM_ONES): Ditto.
1566 (PPERM_SIGN): Ditto.
1567 (PPERM_INV_SIGN): Ditto.
1568 (PPERM_SRC1): Ditto.
1569 (PPERM_SRC2): Ditto.
1570 (ix86_expand_sse_movcc): Move the SSE5 test after the if
1571 true/false tests.
1572 (ix86_expand_int_vcond): If SSE5 generate all possible integer
1573 comparisons.
1574 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1575 says ignore whether the last reference is a memory operand.
1576
1577 2008-05-14 Michael Meissner <michael.meissner@amd.com>
1578 Paolo Bonzini <bonzini at gnu dot org>
1579
1580 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1581 shift patterns.
1582
1583 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1584 (vlshr<mode>3): Rename from vlshr<mode>3.
1585 (vashr<mode>3): Rename from vashr<mode>3.
1586 (mulv4sf3): Change the names of vector shift patterns.
1587 (mulv4si3): Ditto.
1588 (negv4sf2): Ditt.
1589
1590 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1591 shift insns.
1592
1593 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1594 (SI_SHLHI): Ditto.
1595 (SI_SHL): Ditto.
1596 (SI_SHLI): Ditto.
1597 (SI_ROTH): Ditto.
1598 (SI_ROTHI): Ditto.
1599 (SI_ROT): Ditto.
1600 (SI_ROTI): Ditto.
1601 (SPU_RL_0): Ditto.
1602 (SPU_RL_1): Ditto.
1603 (SPU_RL_2): Ditto.
1604 (SPU_RL_3): Ditto.
1605 (SPU_RL_4): Ditto.
1606 (SPU_RL_5): Ditto.
1607 (SPU_RL_6): Ditto.
1608 (SPU_RL_7): Ditto.
1609 (SPU_SL_0): Ditto.
1610 (SPU_SL_1): Ditto.
1611 (SPU_SL_2): Ditto.
1612 (SPU_SL_3): Ditto.
1613 (SPU_SL_4): Ditto.
1614 (SPU_SL_5): Ditto.
1615 (SPU_SL_6): Ditto.
1616 (SPU_SL_7): Ditto.
1617
1618 * config/spu/spu.md (v): New iterator macro to add v for vector types.
1619 (floatunssidf2_internal): Change vector/vector shift names.
1620 (floatunsdidf2_internal): Ditto.
1621 (mulv8hi3): Ditto.
1622 (ashrdi3): Ditto.
1623 (ashrti3): Ditto.
1624 (cgt_df): Ditto.
1625 (cgt_v2df): Ditto.
1626 (dftsv): Ditto.
1627 (vashl<mode>3): Rename from ashl<mode>3.
1628 (vashr<mode>3): Rename from ashr<mode>3.
1629 (vlshr<mode>3): Rename from lshr<mode>3.
1630 (vrotl<mode>3): Rename from rotl<mode>3.
1631
1632 2008-05-14 Michael Meissner <michael.meissner@amd.com>
1633
1634 PR target/36224
1635 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1636 multiply gives the wrong value when doing widening multiplies.
1637 (vec_widen_smult_lo_v4si): Ditto.
1638
1639 2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
1640
1641 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1642 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1643 emit_library_call_value.
1644 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1645 * tree.h (ECF_LIBCALL_BLOCK): Removed.
1646 * calls.c (initialize_argument_information, precompute_arguments,
1647 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1648 (precompute_arguments): Removed flags parameter.
1649 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1650
1651 2008-05-14 Richard Guenther <rguenther@suse.de>
1652
1653 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1654 Make sure to register the store if the use is a PHI_NODE.
1655
1656 2008-05-14 Olivier Hainque <hainque@adacore.com>
1657
1658 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1659 memory if the component is to be referenced in BLKmode according
1660 to get_inner_reference.
1661
1662 2008-05-14 Adam Nemet <anemet@caviumnetworks.com>
1663
1664 * calls.c (emit_library_call_value_1): Restore code clearing
1665 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1666
1667 2008-05-14 Olivier Hainque <hainque@adacore.com>
1668 Nicolas Roche <roche@adacore.com>
1669
1670 * configure.ac: Add support for a "gcc_subdir" variable in
1671 config-lang.in, to denote a subdirectory where the language/GCC
1672 integration files are to be found.
1673 * configure: Regenerate.
1674
1675 2008-05-14 Ira Rosen <irar@il.ibm.com>
1676
1677 PR tree-optimization/36098
1678 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1679 value for the first load in the group in case of a gap.
1680 (vect_build_slp_tree): Check that there are no gaps in loads.
1681
1682 2008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
1683
1684 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1685 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1686 expand_copysign_bit, ): Change call to emit_no_conflict_block to
1687 emit_insn and remove unneeded code to construct extra args.
1688 (emit_no_conflict_block): Removed.
1689 * optabls.h: (emit_no_conflict_block): Removed.
1690 * cse.c (cse_extended_basic_block): Remove search for
1691 REG_NO_CONFLICT note.
1692 * global.c: Removed incorrect comment added in revision 117.
1693 * expr.c (convert_move): Change call to emit_no_conflict_block to
1694 emit_insn.
1695 * recog.c: Change comments so that they do not mention
1696 REG_NO_CONFLICT.
1697 * local_alloc.c (combine_regs): Removed last parameter.
1698 (no_conflict_p): Removed.
1699 (block_alloc): Removed note, no_conflict_combined_regno and set
1700 local vars. Removed all code to process REG_NO_CONFLICT blocks.
1701 (combine_regs): Removed already_dead and code to look for
1702 REG_NO_CONFLICT notes.
1703 * lower_subreg (remove_retval_note): Removed code to look for
1704 REG_NO_CONFLICT block.
1705 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1706 (resolve_clobber): Remove code to process libcalls that have
1707 REG_NO_CONFLICT notes.
1708 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1709 case.
1710 * combine.c (can_combine_p, distribute_notes): Removed
1711 REG_NO_CONFLICT case.
1712 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1713 to emit_insns.
1714 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1715 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1716 Ditto.
1717 * reg-notes.def (NO_CONFLICT): Removed.
1718
1719 2008-05-14 David S. Miller <davem@davemloft.net>
1720
1721 * config/sparc/sparc.c (sparc_profile_hook): If
1722 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1723 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1724 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1725
1726 2008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
1727
1728 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1729
1730 2008-05-13 Uros Bizjak <ubizjak@gmail.com>
1731
1732 PR target/36222
1733 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1734 and op1 expansion before vector concat to have less live pseudos.
1735
1736 2008-05-13 H.J. Lu <hongjiu.lu@intel.com>
1737
1738 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1739 ix86_expand_vector_set if supported.
1740
1741 2008-05-13 Diego Novillo <dnovillo@google.com>
1742 Kenneth Zadeck <zadeck@naturalbridge.com>
1743
1744 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1745
1746 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1747 phinodes_print_statistics, init_ssanames, fini_ssanames,
1748 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1749 release_ssa_name, release_defs, replace_ssa_name_symbol,
1750 ssanames_print_statistics): Move ...
1751 * tree-flow.h: ... here.
1752 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1753 Use FN instead of cfun.
1754 (make_ssa_name_fn): Rename from make_ssa_name.
1755 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1756 * tree-flow-inline.h (make_ssa_name): Move from
1757 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
1758 * omp-low.c (expand_omp_parallel):
1759 * tree-flow-inline.h (redirect_edge_var_map_result):
1760 * tree-ssa.c (init_tree_ssa): Add argument FN.
1761 Use it instead of cfun. Update all users.
1762
1763 2008-05-13 Tom Tromey <tromey@redhat.com>
1764
1765 PR preprocessor/22168:
1766 * doc/cpp.texi (Top): Update menu.
1767 (Alternatives to Wrapper #ifndef): New node.
1768 (Other Directives): Document deprecation.
1769 (Obsolete Features): Remove menu.
1770 (Assertions): Merge node into Obsolete Features.
1771 (Obsolete once-only headers): Move earlier; rename to Alternatives
1772 to Wrapper #ifndef.
1773 * doc/cppopts.texi: Update.
1774 * c.opt (Wdeprecated): Enable for C and ObjC.
1775 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1776 (C++ Dialect Options): Move -Wno-deprecated from here to...
1777 (Warning Options): ... here.
1778
1779 2008-05-13 Richard Guenther <rguenther@suse.de>
1780
1781 PR middle-end/36227
1782 * fold-const.c (fold_sign_changed_comparison): Do not allow
1783 changes in pointer-ness.
1784
1785 2008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1786
1787 PR target/24713
1788 * config/sh/sh.c (sh_expand_prologue): Don't clear
1789 RTX_FRAME_RELATED_P for push insns.
1790
1791 2008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
1792
1793 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1794
1795 2008-05-12 Anatoly Sokolov <aesok@post.ru>
1796
1797 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1798 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1799 Use 'machine->is_leaf' instead of 'leaf_func_p'.
1800
1801 2008-05-12 H.J. Lu <hongjiu.lu@intel.com>
1802
1803 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1804 (*vec_concatv4sf_sse): This.
1805 (*sse2_concatv2si): Renamed to ...
1806 (*vec_concatv2si_sse2): This.
1807 (*sse1_concatv2si): Renamed to ...
1808 (*vec_concatv2si_sse): This.
1809 (*vec_concatv2di_rex): Renamed to ...
1810 (*vec_concatv2di_rex64): This.
1811 (*vec_concatv2si_sse4_1): New.
1812 (*vec_concatv2di_rex64_sse4_1): Likewise.
1813
1814 2008-05-12 Uros Bizjak <ubizjak@gmail.com>
1815
1816 PR rtl-optimization/36111
1817 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1818 that was created for swappable operands.
1819
1820 2008-05-12 Samuel Tardieu <sam@rfc1149.net>
1821
1822 PR ada/36001
1823 * Makefile.in: Substitute GNATMAKE and GNATBIND.
1824 * configure.ac: Add call to ACX_PROG_GNAT.
1825
1826 2008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
1827
1828 * optc-gen.awk: Fix comment typo.
1829
1830 2008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1831
1832 * pretty-print.c (pp_integer_with_precision): Use
1833 HOST_LONG_LONG_FORMAT.
1834
1835 2008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
1836
1837 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1838
1839 2008-05-10 H.J. Lu <hongjiu.lu@intel.com>
1840
1841 * config/i386/i386.c (bdesc_ptest): Removed.
1842 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1843 (bdesc_args): Add __builtin_ia32_ptestz128,
1844 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1845 (ix86_init_mmx_sse_builtins): Updated.
1846 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1847 (ix86_expand_builtin): Updated.
1848
1849 2008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
1850
1851 * tree-cfg.c (valid_fixed_convert_types_p): New function.
1852 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1853
1854 2008-05-10 Uros Bizjak <ubizjak@gmail.com>
1855
1856 * value-prof.c (interesting_stringop_to_profile): Do not
1857 return early for BUILT_IN_MEMPCPY.
1858
1859 2008-05-09 H.J. Lu <hongjiu.lu@intel.com>
1860
1861 * calls.c (expand_call): Don't use callgraph to increase
1862 preferred_stack_boundary.
1863
1864 * cgraph.h (cgraph_rtl_info): Use unsigned on
1865 preferred_incoming_stack_boundary.
1866
1867 * final.c (rest_of_clean_state): Use unsigned on
1868 preferred_stack_boundary.
1869
1870 2008-05-09 Tom Tromey <tromey@redhat.com>
1871
1872 PR preprocessor/22231:
1873 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1874 proceeding.
1875
1876 2008-05-09 Uros Bizjak <ubizjak@gmail.com>
1877
1878 PR tree-optimization/36129
1879 * tree-ssa-ccp.c: Include value-prof.h.
1880 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1881 built-in function was folded to a constant.
1882 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1883
1884 2008-05-09 Jan Sjodin <jan.sjodin@amd.com>
1885 Sebastian Pop <sebastian.pop@amd.com>
1886
1887 * tree-scalar-evolution.c: Document instantiate_scev.
1888 (instantiate_parameters_1): Renamed instantiate_scev_1.
1889 Don't use the same loop for instantiation_loop and evolution_loop.
1890 (instantiate_scev): New.
1891 (instantiate_parameters): Moved...
1892 (resolve_mixers): Update call to instantiate_scev_1 to pass the
1893 same loop twice. Maintains the semantics for this function.
1894 * tree-scalar-evolution.h (instantiate_scev): Declare.
1895 (instantiate_parameters): ...here. Now static inline.
1896 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1897 instead of resolve_mixers.
1898
1899 2008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
1900
1901 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1902
1903 2008-05-09 Tomas Bily <tbily@suse.cz>
1904
1905 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1906 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1907 * tree-ssa-structalias.c (get_constraint_for): Likewise.
1908 * c-common.c (c_common_truthvalue_conversion): Likewise.
1909 * tree-object-size.c (compute_object_offset): Likewise.
1910 * tree-inline.c (estimate_num_insns_1): Likewise.
1911 * varasm.c (const_hash_1, compare_constant, copy_constant)
1912 (compute_reloc_for_constant, output_addressed_constants)
1913 (initializer_constant_valid_p): Likewise.
1914 * c-omp.c (check_omp_for_incr_expr): Likewise.
1915 * gimplify.c (gimplify_expr): Likewise.
1916 * c-typeck.c (c_finish_return): Likewise.
1917 * tree-vectorizer.c (supportable_widening_operation)
1918 (supportable_narrowing_operation): Likewise.
1919 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1920 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1921 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1922 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1923 (descr_info_loc): Likewise.
1924 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1925 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1926 (fold_unary): Likewise.
1927 * builtins.c (get_pointer_alignment): Likewise.
1928 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1929 (instantiate_parameters_1): Likewise.
1930 * tree.c (expr_align, stabilize_reference): Likewise.
1931 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1932 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1933 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1934 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1935 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1936 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1937 Likewise.
1938 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1939 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1940 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1941 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1942 (forward_propagate_comparison)
1943 (tree_ssa_forward_propagate_single_use_vars): Likewise.
1944 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1945 * emit-rtl.c (component_ref_for_mem_expr)
1946 (set_mem_attributes_minus_bitpos): Likewise.
1947 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1948 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1949 Likewise.
1950 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1951 (build_function_call, pointer_diff, build_compound_expr)
1952 (c_finish_return): Likewise.
1953 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1954 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1955 Likewise.
1956 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1957 * expr.c (is_aligning_offset): Likewise.
1958 * tree-ssa-alias.c (is_escape_site): Likewise.
1959 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1960 (check_all_va_list_escapes): Likewise.
1961 * tree-ssa-loop-ivopts.c (determine_base_object)
1962 (determine_common_wider_type): Likewise.
1963 * dojump.c (do_jump): Likewise.
1964 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1965 * tree-gimple.c (is_gimple_cast): Likewise.
1966 * fold-const.c (decode_field_reference, )
1967 (fold_sign_changed_comparison, fold_unary, fold_comparison)
1968 (fold_binary): Likewise.
1969 * tree-ssa-alias-warnings.c (find_alias_site_helper)
1970 (already_warned_in_frontend_p): Likewise.
1971 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1972 * tree.c (really_constant_p, get_unwidened): Likewise.
1973 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1974 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1975 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1976 Likewise.
1977 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1978 CONVERT_EXPR_P.
1979 (CONVERT_EXPR_P): Define.
1980 (CASE_CONVERT): Define.
1981
1982 2008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
1983
1984 PR middle-end/36117
1985 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1986 (delete_unmarked_insns): When deleting a call, call
1987 delete_unreachable_blocks.
1988 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1989 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1990
1991 2008-05-08 Richard Guenther <rguenther@suse.de>
1992
1993 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1994 (-ftree-salias): Likewise.
1995 (salias-max-implicit-fields): Remove param documentation.
1996 (salias-max-array-elements): Likewise.
1997 * tree-pass.h (pass_create_structure_vars): Remove.
1998 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1999 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2000 * tree-ssa-alias.c (create_structure_vars): Remove.
2001 (gate_structure_vars): Likewise.
2002 (pass_create_structure_vars): Likewise.
2003 (gate_build_alias): Likewise.
2004 (pass_build_alias): Adjust to run always and dump the function.
2005 * common.opt (ftree-salias): Hide.
2006 * passes.c (init_optimization_passes): Remove
2007 pass_create_structure_vars, adjust comment.
2008 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
2009 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
2010 * opts.c (decode_options): Do not set flag_tree_salias.
2011 (common_handle_option): Add OPT_ftree_salias to the backward
2012 compatibility section.
2013
2014 2008-05-08 Richard Guenther <rguenther@suse.de>
2015
2016 * tree-flow-inline.h (var_can_have_subvars): Move ...
2017 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
2018 * tree-flow.h (var_can_have_subvars): Remove.
2019 (push_fields_onto_fieldstack): Remove.
2020 (sort_fieldstack): Likewise.
2021 (struct fieldoff): Move ...
2022 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
2023 alias_set and base_for_components fields.
2024 (sort_fieldstack): Make static.
2025 (push_fields_onto_fieldstack): Likewise. Remove code that
2026 handles anything but RECORD_TYPEs. Remove alias_set and
2027 base_for_components handling.
2028 (create_variable_info_for): Adjust.
2029
2030 2008-05-08 Seongbae Park <seongbae.park@gmail.com>
2031
2032 * common.opt (Wframe-larger-than=): Shorten the help message
2033 to one line.
2034 * doc/invoke.texi (Wframe-larger-than=): Add more description.
2035
2036 2008-05-08 Rafael Espindola <espindola@google.com>
2037
2038 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
2039 trap.
2040 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
2041 trap and that both operands are gimple values.
2042 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
2043 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
2044 is a fp operation.
2045
2046 2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
2047
2048 * read-rtl.c (join_c_conditions): Return the first string if the
2049 two strings are equal.
2050
2051 2008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
2052
2053 * gensupport.h (pred_data): Add a "num_codes" field.
2054 (add_predicate_code): Declare.
2055 * gensupport.c (add_predicate_code): New function.
2056 (std_pred_table): Add an "allows_const_p" field.
2057 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
2058 Remove the (incomplete) list of such codes from the codes field.
2059 (init_predicate_table): Use add_predicate_code. Add all
2060 RTX_CONST_OBJs if allows_const_p is true.
2061 * genrecog.c (process_define_predicate): Use add_predicate_code.
2062
2063 2008-05-08 David Daney <ddaney@avtrex.com>
2064 Richard Sandiford <rsandifo@nildram.co.uk>
2065
2066 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
2067 special case of constant zero operands.
2068 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
2069 old and new values. Special case constant zero values.
2070 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
2071 fails.
2072 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
2073 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
2074
2075 2008-05-08 Paolo Bonzini <bonzini@gnu.org>
2076
2077 PR target/36090
2078 * simplify-rtx.c (simplify_plus_minus): Create CONST of
2079 similar RTX_CONST_OBJ before CONST_INT.
2080
2081 2008-05-08 Steve Ellcey <sje@cup.hp.com>
2082
2083 * stmt.c (expand_stack_restore): Change sa mode if needed.
2084
2085 2008-05-08 Richard Guenther <rguenther@suse.de>
2086
2087 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
2088 return type to bool.
2089 (ix86_sol10_return_in_memory): Likewise.
2090 (ix86_i386elf_return_in_memory): Likewise.
2091 (ix86_i386interix_return_in_memory): Likewise.
2092 * config/i386/i386.c (ix86_return_in_memory): Likewise.
2093 (ix86_sol10_return_in_memory): Likewise.
2094 (ix86_i386elf_return_in_memory): Likewise.
2095 (ix86_i386interix_return_in_memory): Likewise.
2096
2097 2008-05-08 Kai Tietz <kai.tietz@onevision.com>
2098
2099 PR bootstrap/36180
2100 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2101 fndecl argument.
2102 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2103 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2104 declared in front.
2105
2106 2008-05-08 Richard Guenther <rguenther@suse.de>
2107
2108 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2109 * tree-data-ref.h (struct dr_alias): Remove subvars field.
2110 (DR_SUBVARS): Remove.
2111 * tree-dfa.c (dump_subvars_for): Remove.
2112 (debug_subvars_for): Likewise.
2113 (dump_variable): Do not dump subvars.
2114 (remove_referenced_var): Do not remove subvars.
2115 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2116 (lookup_subvars_for_var): Remove.
2117 (get_subvars_for_var): Likewise.
2118 (get_subvars_at): Likewise.
2119 (get_first_overlapping_subvar): Likewise.
2120 (overlap_subvar): Likewise.
2121 * tree-flow.h (subvar_t): Remove.
2122 (struct var_ann_d): Remove subvars field.
2123 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2124 argument. Remove special handling of SFTs.
2125 (compute_tag_properties): Likewise.
2126 (set_initial_properties): Likewise.
2127 (compute_call_clobbered): Likewise.
2128 (count_mem_refs): Likewise.
2129 (compute_memory_partitions): Likewise.
2130 (compute_flow_insensitive_aliasing): Likewise.
2131 (setup_pointers_and_addressables): Likewise.
2132 (new_type_alias): Likewise.
2133 (struct used_part): Remove.
2134 (used_portions): Likewise.
2135 (struct used_part_map): Likewise.
2136 (used_part_map_eq): Likewise.
2137 (used_part_map_hash): Likewise.
2138 (free_used_part_map): Likewise.
2139 (up_lookup): Likewise.
2140 (up_insert): Likewise.
2141 (get_or_create_used_part_for): Likewise.
2142 (create_sft): Likewise.
2143 (create_overlap_variables_for): Likewise.
2144 (find_used_portions): Likewise.
2145 (create_structure_vars): Likewise.
2146 * tree.def (STRUCT_FIELD_TAG): Remove.
2147 * tree.h (MTAG_P): Adjust.
2148 (struct tree_memory_tag): Remove base_for_components and
2149 unpartitionable flags.
2150 (struct tree_struct_field_tag): Remove.
2151 (SFT_PARENT_VAR): Likewise.
2152 (SFT_OFFSET): Likewise.
2153 (SFT_SIZE): Likewise.
2154 (SFT_NONADDRESSABLE_P): Likewise.
2155 (SFT_ALIAS_SET): Likewise.
2156 (SFT_UNPARTITIONABLE_P): Likewise.
2157 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2158 (union tree_node): Remove sft field.
2159 * alias.c (get_alias_set): Remove special handling of SFTs.
2160 * print-tree.c (print_node): Remove handling of SFTs.
2161 * tree-dump.c (dequeue_and_dump): Likewise.
2162 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2163 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2164 * tree-predcom.c (set_alias_info): Do not set subvars.
2165 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2166 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2167 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2168 (add_vars_for_offset): Remove.
2169 (add_virtual_operand): Remove special handling of SFTs.
2170 (add_call_clobber_ops): Likewise.
2171 (add_call_read_ops): Likewise.
2172 (get_asm_expr_operands): Likewise.
2173 (get_modify_stmt_operands): Likewise.
2174 (get_expr_operands): Likewise.
2175 (add_to_addressable_set): Likewise.
2176 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2177 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2178 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2179 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2180 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2181 (tree_node_structure): Likewise.
2182 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2183 handling of SFTs.
2184 (find_what_p_points_to): Likewise.
2185
2186 2008-05-08 Sa Liu <saliu@de.ibm.com>
2187
2188 * config/spu/spu.md: Fixed subti3 pattern.
2189
2190 2008-05-08 Richard Guenther <rguenther@suse.de>
2191
2192 PR middle-end/36154
2193 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2194 sure to create a representative for trailing arrays for PTA.
2195
2196 2008-05-08 Richard Guenther <rguenther@suse.de>
2197
2198 PR middle-end/36172
2199 * fold-const.c (operand_equal_p): Two objects which types
2200 differ in pointerness are not equal.
2201
2202 2008-05-08 Kai Tietz <kai.tietz@onevision.com>
2203
2204 * calls.c (compute_argument_block_size): Add argument tree fndecl.
2205 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2206 (emit_library_call_value_1): Add new variable fndecl initialized by
2207 NULL_TREE. It should be the decl type of orgfun, but this information
2208 seems not to be available here, so it uses the default calling abi.
2209 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2210 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2211 by TARGET_RETURN_IN_MEMORY.
2212 * config/i386/i386-interix.h: Likewise.
2213 * config/i386/i386.h: Likewise.
2214 * config/i386/i386elf.h: Likewise.
2215 * config/i386/ptx4-i.h: Likewise.
2216 * config/i386/sol2-10.h: Likewise.
2217 * config/i386/sysv4.h: Likewise.
2218 * config/i386/vx-common.h: Likewise.
2219 * config/cris/cris.h: Removed #if 0 clause.
2220 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
2221 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2222 argument.
2223 (ix86_sol10_return_in_memory): Likewise.
2224 (ix86_i386elf_return_in_memory): New.
2225 (ix86_i386interix_return_in_memory): New.
2226 * config/mt/mt-protos.h (mt_return_in_memory): New.
2227 * config/mt/mt.c: Likewise.
2228 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2229 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
2230 * config/bfin/bfin.h: Likewise.
2231 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2232 argument.
2233 * config/bfin/bfin.c: Likewise.
2234 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2235 * config/alpha/unicosmk.h: Likewise.
2236 * config/i386/cygming.h: Likewise.
2237 * config/iq2000/iq2000.h: Likewise.
2238 * config/mips/mips.h: Likewise.
2239 * config/mn10300/mn10300.h: Likewise.
2240 * config/rs6000/rs6000.h: Likewise.
2241 * config/score/score.h: Likewise.
2242 * config/spu/spu.h: Likewise.
2243 * config/v850/v850.h: Likewise.
2244 * defaults.h: Likewise.
2245 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
2246 * expr.c (emit_block_move): Adjust use of
2247 OUTGOING_REG_PARM_STACK_SPACE.
2248 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2249 OUTGOING_REG_PARM_STACK_SPACE.
2250 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2251
2252 2008-05-08 Jakub Jelinek <jakub@redhat.com>
2253
2254 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2255 on OMP_RETURN for OMP_FOR.
2256
2257 PR debug/35896
2258 * dwarf2out.c (dw_expand_expr, common_check): Removed.
2259 (fortran_common): New function.
2260 (gen_variable_die): Call fortran_common instead of common_check,
2261 adjust for it returning tree instead of rtx. Formatting.
2262
2263 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2264
2265 PR rtl/7335
2266 PR rtl/33826
2267 * see.c (see_copy_insn): Copy new pure const attributes for new call.
2268 * c-decl.c (merge_decls): Ditto.
2269 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2270 to RTL_CONST_OR_PURE_CALL_P.
2271 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2272 Initialized DECL_LOOPING_CONST_PURE.
2273 (process_call_operands): Set tree_side_effects properly.
2274 * tree.h (TREE_READONLY_DECL_P): Removed.
2275 (DECL_IS_PURE): Renamed to DECL_PURE_P.
2276 (DECL_LOOPING_OR_CONST_P): New macro.
2277 (struct tree_function_decl): Added looping_const_or_pure_p.
2278 (ECF_*) Renumbered.
2279 (ECF_LOOPING_OR_CONST_P): New macro.
2280 * rtlanal.c (pure_const_p): Removed.
2281 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2282 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2283 to RTL_CONST_CALL_P.
2284 * ipa-pure-const.c (pure_const_state_e): Added looping field.
2285 (check_decl, check_tree, check_call, scan_function): Initialize
2286 looping.
2287 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2288 (static_execute): Set looping true for recursive functions.
2289 Undo setting state to IPA_NEITHER for recursive functions.
2290 * cse.c (cse_insn):
2291 * ifcvt.c (noce_can_store_speculate_p): Changed
2292 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
2293 RTL_CONST_OR_PURE_CALL_P.
2294 * dse.c (scan_insn): Ditto.
2295 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2296 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2297 RTL_CONST_OR_PURE_CALL_P.
2298 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2299 pure_call_p to RTL_CONST_CALL_P.
2300 * gimplify.c (gimplify_call_expr): Clear side effects for
2301 non-looping pure and constant calls.
2302 * calls.c (emit_call_1): Set rtl flags from ecf flags.
2303 (flags_from_decl_or_type): Set ecf flags from decl flags.
2304 (initialize_argument_information): Turn off
2305 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2306 Change const to pure if callee_copies is true rather than just
2307 turning off const.
2308 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2309 way of marking pure calls.
2310 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2311 Remove hack that was supposed to fix pr7335 and remove old
2312 way of marking pure calls.
2313 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2314 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2315 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2316 RTL_CONST_OR_PURE_CALL_P.
2317 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2318 * loop-invariant.c (find_exits, find_invariant_bb): Changed
2319 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2320 * sched-deps.c (schedule_analyze): Ditto.
2321 * rtl.h (struct rtx_def): Use call field, unchanging field, and
2322 return_val field of calls to represent pure and const function info.
2323 (CONST_OR_PURE_CALL_P): Deleted macro.
2324 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2325 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2326 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2327 TREE_READONLY.
2328 * tree-optimize.c (execute_fixup_cfg): Added test for
2329 ECF_LOOPING_CONST_OR_PURE.
2330 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2331 DECL_PURE_P.
2332 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2333 effects for looping pure or const calls.
2334 (verify_gimple_expr): Added verification code.
2335 * config/alpha/alpha.c (alpha_legitimize_address,
2336 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2337 RTL_CONST_CALL_P.
2338 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2339 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2340 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2341 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2342 RTL_CONST_OR_PURE_CALL_P.
2343 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2344 and const calls to be deleted.
2345
2346 2008-05-07 Uros Bizjak <ubizjak@gmail.com>
2347
2348 PR target/35714
2349 * config/i386/mmx.md (mmx_subv2sf3): New expander.
2350 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2351 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2352 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
2353 to handle nonimmediate operands.
2354 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2355 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
2356 to handle nonimmediate operands.
2357 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2358 (mmx_pmulhrwv4hi3): New expander. Use
2359 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2360 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2361 (sse2_umulv1siv1di3): New expander. Use
2362 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2363 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2364 (mmx_eq<mode>3): New expander. Use
2365 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2366 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2367 (mmx_uavgv8qi3): New expander. Use
2368 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2369 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2370 (mmx_uavgv4hi3): New expander. Use
2371 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2372
2373 * config/i386/sse.md
2374 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
2375 to handle nonimmediate operands.
2376 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
2377 to handle nonimmediate operands.
2378 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
2379 to handle nonimmediate operands.
2380 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
2381 to handle nonimmediate operands.
2382 (sse2_unpckhpd_exp): New expander. Use
2383 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2384 (sse2_unpcklpd_exp): New expander. Use
2385 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2386 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
2387 to handle nonimmediate operands.
2388 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
2389 to handle nonimmediate operands.
2390 (*sse2_<plusminus_insn><mode>3): Rename from
2391 sse2_<plusminus_insn><mode>3 insn pattern.
2392 (sse2_<plusminus_insn><mode>3): New expander. Use
2393 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2394 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2395 (sse2_umulv2siv2di3): New expander. Use
2396 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2397 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2398 (sse4_1_mulv2siv2di3): New expander. Use
2399 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2400 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2401 (sse2_pmaddwd): New expander. Use
2402 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2403 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2404 (sse2_eq<mode>3): New expander. Use
2405 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2406 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2407 (sse4_1_eqv2di3): New expander. Use
2408 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2409 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2410 (sse2_uavgv16qi3): New expander. Use
2411 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2412 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2413 (sse2_uavgv16qi3): New expander. Use
2414 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2415 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2416 (sse2_uavgv8hi3): New expander. Use
2417 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2418 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2419 (ssse3_pmulhrswv8hi3): New expander. Use
2420 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2421 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2422 (ssse3_pmulhrswv4hi3): New expander. Use
2423 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2424
2425 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2426 (<sse>_vmmul<mode>3): Ditto.
2427 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2428 (divv2df3): Ditto.
2429 (ssse3_pmaddubsw128): Use register_operand for operand 1.
2430 (ssse3_pmaddubsw): Ditto.
2431
2432 * config/i386/i386.c (struct_builtin_description)
2433 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2434 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2435 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2436 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2437 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2438 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2439 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2440 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2441 (ix86_fixup_binary_operands): Assert that src1
2442 and src2 must have the same mode when swapped.
2443 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2444 and ix86_binary_operator_ok. Do not force operands in registers
2445 when optimizing.
2446
2447 2008-05-07 Jan Hubicka <jh@suse.cz>
2448
2449 * cgraph.c (dump_cgraph_node): Update.
2450 * cgraph.h (cgraph_local_info): Break out inline summary.
2451 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2452 hook.
2453 * ipa-inline (inline_summary): New accestor function.
2454 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2455 cgraph_decide_inlining, compute_inline_parameters): Update.
2456 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2457
2458 2008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
2459
2460 Cleanup ColdFire scheduling support and add V4 pipeline model.
2461
2462 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2463 (define_attr cpu): Add cfv4 value.
2464 (define_attr type, define_attr type1): Merge into a single 'type'
2465 attribute. Update all uses.
2466 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2467 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
2468 Update all uses.
2469 (define_attr opx_mem, define_attr opy_mem): Remove.
2470 (define_attr op_mem): Clean up, update comment.
2471 (define_attr size): Use specific values instead of general int.
2472 (define_attr guess, define_attr split): Remove. Update all uses.
2473 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2474 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2475 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2476 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2477 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2478 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2479 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2480 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2481 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2482 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2483 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2484 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2485 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2486 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2487 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2488 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2489 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2490 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2491 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2492 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2493 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2494 Update or set attributes.
2495 (stack_tie): New fake instruction.
2496
2497 * config/m68k/m68k.h (TUNE_CFV4): New macro.
2498 (m68k_sched_attr_size): Update declaration.
2499 (m68k_sched_attr_type2): Remove.
2500 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2501 Declare new bypass predicates.
2502
2503 * config/m68k/m68k.c (m68k_sched_issue_rate,
2504 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2505 implementations.
2506 (TARGET_SCHED_ISSUE_RATE,
2507 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2508 (override_options): Handle scheduling for ColdFire V4 core.
2509 (m68k_expand_prologue): Emit stack_tie.
2510 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2511 'OP_TYPE_FPN'. Update all uses.
2512 (sched_guess_p): Remove.
2513 (sched_address_type): Handle symbolic addresses.
2514 (sched_get_operand): New static function.
2515 (sched_operand_type): Merge into sched_attr_op_type.
2516 (sched_attr_op_type): Handle FP registers, handle quick constants,
2517 update.
2518 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2519 (m68k_sched_attr_size): Update. Move logic to ...
2520 (sched_get_attr_size_int): New static function.
2521 (sched_get_opxy_mem_type): New static function.
2522 (m68k_sched_attr_op_mem): Update.
2523 (m68k_sched_attr_type2): Remove.
2524 (sched_cfv4_bypass_data): New static variable.
2525 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2526 (m68k_sched_issue_rate): Implement scheduler hook.
2527 (struct _sched_ib: enabled_p): New field.
2528 (m68k_sched_variable_issue): Update. Handle V4.
2529 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2530 sched_dump_class_func_t, sched_dump_split_class,
2531 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2532 sched_dump_dfa_class, m68k_sched_dump): Remove.
2533 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2534 hook.
2535 (m68k_sched_init_global): Remove statisctics dumping, introduce
2536 sanity check that all instructions have pipeline reservations. Handle
2537 ColdFire V4 core.
2538 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2539 Handle ColdFire V4 core.
2540 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2541 New static functions.
2542 (m68k_sched_address_bypass_p): New bypass predicate.
2543 (sched_get_indexed_address_scale): New static function.
2544 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2545
2546 * cf.md: Update comments.
2547 (define_attr type2): Remove. Use 'type' attribute instead.
2548 Update all uses.
2549 (cf_ib): Rename to cfv123_ib. Update all uses.
2550 (cf_oep): Rename to cfv123_oep. Update all uses.
2551 (cf_chr): Rename to cfv123_chr. Update all uses.
2552 (cf_mem): Rename to cfv123_mem. Update all uses.
2553 (cf_mac): Move to more appropriate place.
2554 (cfv123_guess): New automaton and cpu_unit.
2555 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2556 Update uses of 'size' attribute. Handle before reload scheduling.
2557 (cfv123_guess): New dummy reservation for unhandled instructions.
2558 (cfv4_*): Pipeline description of ColdFire V4 core.
2559 (ignore): New reservation to handle 'ignore' type.
2560
2561 2008-05-07 Ian Lance Taylor <iant@google.com>
2562
2563 PR middle-end/36013
2564 * gimplify.c (find_single_pointer_decl_1): Don't look through
2565 indirections.
2566 (find_single_pointer_decl): Adjust comments.
2567
2568 2008-05-07 Jakub Jelinek <jakub@redhat.com>
2569
2570 PR middle-end/36137
2571 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2572 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2573
2574 PR middle-end/36106
2575 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2576 integral type rather than floating point, then VIEW_CONVERT_EXPR
2577 to the floating point type.
2578
2579 2008-05-07 Uros Bizjak <ubizjak@gmail.com>
2580
2581 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2582 TFmode op0 to register.
2583
2584 2008-05-07 Alan Modra <amodra@bigpond.net.au>
2585
2586 * c-decl.c (grokdeclarator): Comment typo.
2587
2588 2008-05-06 Aldy Hernandez <aldyh@redhat.com>
2589
2590 * tree-flow.h: Remove prototype for computed_goto_p.
2591 * tree-cfg.c (computed_goto_p): Make static.
2592
2593 2008-05-06 H.J. Lu <hongjiu.lu@intel.com>
2594
2595 PR target/35657
2596 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2597 (contains_aligned_value_p): This. Handle _Decimal128.
2598 (ix86_function_arg_boundary): Only align _Decimal128 to its
2599 natural boundary and handle it properly.
2600
2601 2008-05-06 Martin Jambor <mjambor@suse.cz>
2602
2603 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2604 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2605 (ipcp_method_set_orig_node): Removed.
2606 (ipcp_cval_get_cvalue_type): Removed.
2607 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2608 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2609 (ipcp_cval_set_cvalue_type): Removed.
2610 (ipcp_cval_get_cvalue): Removed.
2611 (ipcp_cval_set_cvalue): Removed.
2612 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2613 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2614 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2615 (ipcp_cval_meet): Renamed to ipa_lattice_meet
2616 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2617 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2618 (ipcp_get_ith_lattice): Changed parameters.
2619 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2620 (ipcp_lattice_from_jfunc): Changed parameters.
2621 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2622 (ipcp_method_cval_print): Added temporary variable info.
2623 (ipcp_redirect): Removed already unused local variable caller.
2624 (ipcp_redirect): New temporary variable orig_callee_info
2625 (ipcp_redirect): Removed newly unused local variable callee.
2626 (ipcp_redirect): Removed (a bit confusing) local variable type.
2627 (ipcp_insert_stage): Added local variable info.
2628 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
2629 renamed too
2630 (ipcp_formal_create): Removed.
2631 (ipcp_method_cval_set): Removed.
2632 (ipcp_propagate_stage): Renamed lattice variables.
2633 (ipcp_method_cval_set_cvalue_type): Removed.
2634 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2635 (ipcp_print_all_lattices): Changed printed strings to refer to
2636 lattices rather than cvals.
2637 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2638 (ipcp_propagate_const): Changed formal parameters.
2639 (build_const_val): Changed formal parameters.
2640 (ipcp_insert_stage): Removed useless variable cvalue
2641 (build_const_val): Changed formal parameters.
2642 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2643 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2644 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2645 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2646 (ipcp_print_func_profile_counts): Changed string from "method" to
2647 "function"
2648 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2649 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2650 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2651 (ipcp_structures_print): Renamed to ipcp_print_all_structures
2652 (ipcp_profile_print): Renamed to ipcp_print_profile_data
2653 (ipcp_lat_is_const): Changed parameters and made inline.
2654 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2655 (ipcp_redirect): Renamed to ipcp_need_redirect_p
2656 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
2657 the predicate condition directly
2658 (ipcp_propagate_stage): Added local variable args. Removed local
2659 variable callee. (Both are mere code simplifications.)
2660 (ipcp_method_dont_insert_const): Renamed to
2661 ipcp_node_not_modifiable_p.
2662 (ipcp_node_not_modifiable_p): Made inline.
2663 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2664 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2665 (ipcp_print_all_lattices): Removed variable cvalue
2666 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2667 Updated comments.
2668
2669 2008-05-06 Olivier Hainque <hainque@adacore.com>
2670
2671 * tree-sra.c (try_instantiate_multiple_fields): Early return
2672 if field has POINTER_TYPE.
2673
2674 2008-05-06 Kai Tietz <kai.tietz@onevision.com>
2675
2676 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2677 by using 'q' specifier for instruction.
2678 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2679
2680 2008-05-06 Anatoly Sokolov <aesok@post.ru>
2681
2682 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2683 Change mode of zero_extract from QImode to HImode.
2684 (sign bit tests peepholes): (Ditto.).
2685
2686 2008-05-06 Uros Bizjak <ubizjak@gmail.com>
2687
2688 * config/i386/mmx.md: Remove double backslashes from asm templates.
2689 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2690 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
2691 to handle nonimmediate operands.
2692 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2693 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
2694 to handle nonimmediate operands.
2695 (*mmx_<code>v2sf3_finite): New insn pattern.
2696 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2697 (mmx_<code>v2sf3): New expander. Use
2698 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2699 (mmx_<plusminus_insn><mode>3): New expander. Use
2700 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2701 (*mmx_<plusminus_insn><mode>3): New insn pattern.
2702 (mmx_add<mode>3): Removed.
2703 (mmx_ssadd<mode>3): Ditto.
2704 (mmx_usadd<mode>3): Ditto.
2705 (mmx_sub<mode>3): Ditto.
2706 (mmx_sssub<mode>3): Ditto.
2707 (mmx_ussub<mode>3): Ditto.
2708 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2709 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
2710 to handle nonimmediate operands.
2711 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2712 insn pattern.
2713 (mmx_smulv4hi3_highpart): New expander. Use
2714 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2715 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2716 insn pattern.
2717 (mmx_umulv4hi3_highpart): New expander. Use
2718 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2719 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2720 (mmx_<code>v4hi3): New expander. Use
2721 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2722 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2723 (mmx_<code>v8qi3): New expander. Use
2724 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2725 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2726 (mmx_<code><mode>3): New expander. Use
2727 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2728
2729 2008-05-05 Jan Hubicka <jh@suse.cz>
2730
2731 PR tree-optimization/36118
2732 * passes.c (pass_init_dump_file): Fix dump header.
2733
2734 2008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
2735
2736 PR middle-end/36141
2737 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2738 VCE for function decls.
2739
2740 2008-05-05 H.J. Lu <hongjiu.lu@intel.com>
2741
2742 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2743
2744 2008-05-05 H.J. Lu <hongjiu.lu@intel.com>
2745
2746 * config/i386/i386.md (sat_plusminus): New.
2747 (plusminus_insn): Likewise.
2748 (plusminus_mnemonic): Likewise.
2749 (addsub): Removed.
2750 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2751 (*<addsub><mode>3_cc_overflow): Renamed to ...
2752 (*<plusminus_insn><mode>3_cc_overflow): This.
2753 (*<addsub>si3_zext_cc_overflow): Renamed to ...
2754 (*<plusminus_insn>si3_zext_cc_overflow): This.
2755
2756 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2757 (<plusminus_insn><mode>3): This.
2758 (*<addsub><mode>3): Renamed to ...
2759 (*<plusminus_insn><mode>3): This.
2760 (<sse>_vm<addsub><mode>3): Renamed to ...
2761 (<sse>_vm<plusminus_insn><mode>3): This.
2762 (sse3_h<addsub>v4sf3): Renamed to ...
2763 (sse3_h<plusminus_insn>v4sf3): This.
2764 (sse3_h<addsub>v2df3): Renamed to ...
2765 (sse3_h<plusminus_insn>v2df3): This.
2766 (<plusminus_insn><mode>3): New.
2767 (*<plusminus_insn><mode>3): Likewise.
2768 (sse2_<plusminus_insn><mode>3): Likewise.
2769 (add<mode>): Removed.
2770 (*add<mode>3): Likewise.
2771 (sse2_ssadd<mode>3): Likewise.
2772 (sse2_usadd<mode>3): Likewise.
2773 (sub<mode>3): Likewise.
2774 (*sub<mode>3): Likewise.
2775 (sse2_sssub<mode>3): Likewise.
2776 (sse2_ussub<mode>3): Likewise.
2777
2778 2008-05-05 Benjamin Kosnik <bkoz@redhat.com>
2779
2780 * gthr-single.h: Add in required interface elements as per gthr.h.
2781 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2782 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2783 Generalize UNUSED macro.
2784 (__gthread_once): Add.
2785 (__gthread_key_create): Add.
2786 (__gthread_key_delete): Add.
2787 (__gthread_getspecific): Add.
2788 (__gthread_setspecific): Add.
2789
2790 2008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
2791
2792 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2793 the same size types for the indirect reference on the rhs, then
2794 create a VCE.
2795
2796 2008-05-05 Uros Bizjak <ubizjak@gmail.com>
2797
2798 * config/i386/i386.md
2799 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2800 one insn template instead of template series.
2801 (*xordi_1_rex64): Ditto.
2802 (*xordi_2_rex64): Ditto.
2803
2804 2008-05-05 Ira Rosen <irar@il.ibm.com>
2805
2806 PR tree-optimization/36119
2807 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2808 in case of SLP.
2809
2810 2008-06-04 Jan Hubicka <jh@suse.cz>
2811
2812 tree-optimization/36100
2813 * tree-pass.h (pass_O0_always_inline): Declare.
2814 * ipa-inline.c (inline_transform): Remove dead code.
2815 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2816 pass_O0_always_inline): New.
2817 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2818
2819 2008-05-04 Kai Tietz <kai.tietz@onevision.com>
2820
2821 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2822 mnemonic in this_param move for TARGET_64BIT.
2823
2824 2008-05-04 Uros Bizjak <ubizjak@gmail.com>
2825
2826 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2827 (*strmovsi_rex_1): Ditto.
2828 (*strsetsi_1): Ditto.
2829 (*strsetsi_rex_1): Ditto.
2830
2831 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2832 adddicc expanders using SWI mode iterator.
2833
2834 2008-05-04 H.J. Lu <hongjiu.lu@intel.com>
2835
2836 PR target/36121
2837 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2838 argument handling.
2839
2840 2008-05-04 David S. Miller <davem@davemloft.net>
2841
2842 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2843 (sparc*-*-linux*): Use linux.h in tm_file.
2844 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2845 compiler defaulting to 32-bit.
2846 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2847 no longer needed.
2848 * config/sparc/linux.h: Remove definitions now obtained
2849 properly from linux.h
2850 * config/sparc/linux64.h: Likewise.
2851 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2852 don't want this setting for 32-bit builds in a biarch compiler.
2853 * doc/install.texi: Add sparc-linux to list of targets
2854 supporting --enable-targets=all.
2855
2856 2008-05-03 Andrew Pinski <pinskia@gmail.com>
2857
2858 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2859
2860 2008-05-03 H.J. Lu <hongjiu.lu@intel.com>
2861
2862 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2863 after V4SI_FTYPE_V8HI.
2864 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2865 case V4SI_FTYPE_V2DF.
2866
2867 2008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
2868
2869 * doc/invoke.texi (max-flow-memory-locations): Removed.
2870 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2871
2872 2008-05-03 Richard Guenther <rguenther@suse.de>
2873
2874 PR middle-end/34973
2875 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2876
2877 2008-05-02 David S. Miller <davem@davemloft.net>
2878
2879 * config.gcc (need_64bit_hwint): Document libcpp dependency.
2880
2881 2008-05-02 Simon Baldwin <simonb@google.com>
2882
2883 PR bootstrap/36108
2884 * c-common.h (warn_array_subscript_range): Removed.
2885 * c-common.c (warn_array_subscript_range): Ditto.
2886 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2887 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2888
2889 2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
2890
2891 * config/i386/i386.c (ix86_special_builtin_type): New.
2892 (bdesc_special_args): Likewise.
2893 (ix86_expand_special_args_builtin): Likewise.
2894 (ix86_init_mmx_sse_builtins): Updated.
2895 (ix86_expand_builtin): Updated.
2896 (ix86_expand_store_builtin): Removed.
2897 (ix86_expand_unop_builtin): Likewise.
2898
2899 * config/i386/mm3dnow.h (__v2sf): Moved to ...
2900 * config/i386/mmintrin.h (__v2sf): Here.
2901
2902 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2903 const __v2sf.
2904 (_mm_loadl_pi): Likewise.
2905 (_mm_storeh_pi): Replace __v2si with __v2sf.
2906 (_mm_storel_pi): Likewise.
2907
2908 * doc/extend.texi: Correct __builtin_ia32_loadhps,
2909 __builtin_ia32_loadlps, __builtin_ia32_storehps,
2910 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2911 __builtin_ia32_loadlpd.
2912
2913 2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
2914
2915 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2916 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2917 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
2918 (ix86_init_mmx_sse_builtins): Updated.
2919 (ix86_expand_args_builtin): Likewise.
2920 (ix86_expand_builtin): Likewise.
2921 (ix86_expand_unop1_builtin): Renamed to ...
2922 (ix86_expand_unop_vec_merge_builtin): This.
2923
2924 2008-05-01 Jan Hubicka <jh@suse.cz>
2925
2926 PR bootstrap/36100
2927 * ipa-inline.c (inline_generate_summary): Make static.
2928 (inline_transform): Do not call inlining at -O0; make static.
2929 * passes.c (execute_todo): Add sanity check.
2930 (execute_one_ipa_transform_pass): Execute proper flags.
2931
2932 2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
2933
2934 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2935 (DECL_NONADDRESSABLE_P): Likewise.
2936 * alias.c (record_component_aliases): Fix comment.
2937
2938 2008-05-01 Simon Baldwin <simonb@google.com>
2939
2940 * c-common.h (warn_array_subscript_range): New function.
2941 * c-common.c (warn_array_subscript_range): Ditto.
2942 * tree-vrp.c (check_array_ref): Corrected code to agree with
2943 comment, ignoring only arrays of size 0 or size 1.
2944 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2945
2946 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
2947
2948 * config/i386/i386.c (ix86_builtin_type): Replace
2949 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2950 (bdesc_args): Updated.
2951 (ix86_init_mmx_sse_builtins): Likewise.
2952 (ix86_expand_args_builtin): Likewise.
2953
2954 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2955 with __v1di.
2956
2957 * doc/extend.texi: Correct __builtin_ia32_palignr.
2958
2959 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
2960
2961 PR target/36095
2962 * config/i386/i386.c (bdesc_crc32): Removed.
2963 (ix86_expand_crc32): Likewise.
2964 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2965 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2966 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
2967 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2968 UINT_FTYPE_UINT_UCHAR.
2969 (bdesc_args): Updated. Add crc32 builtins.
2970 (ix86_init_mmx_sse_builtins): Updated.
2971 (ix86_expand_args_builtin): Updated to support subreg.
2972
2973 * doc/extend.texi: Correct __builtin_ia32_crc32di.
2974
2975 2008-05-01 Jan Hubicka <jh@suse.cz>
2976
2977 * tree-pass.h (opt_pass): Add IPA_PASS.
2978 (varpool_node, cgraph_node): Forward declare.
2979 (ipa_opt_pass): Define.
2980 (pass_ipa_inline): Turn into ipa_opt_pass.
2981 (pass_apply_inline): Remove.
2982 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2983 (apply_inline): Turn into ....
2984 (inline_transform): ... this one.
2985 (inline_generate_summary): New function.
2986 (pass_apply_inline): Remove.
2987 * function.h (ipa_opt_pass): Forward declare structure; typedef;
2988 vector.
2989 (struct function): Add ipa_transforms_to_apply.
2990 * passes.c (register_one_dump_file): Work on IPA_PASS.
2991 (init_optimization_passes): Remove pass_inline_parameters and
2992 pass_apply_inline.
2993 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2994 (execute_one_pass) ... here; apply transforms when possible.
2995 (add_ipa_transform_pass, execute_ipa_summary_asses,
2996 execute_one_ipa_transform_pass): New.
2997 (execute_ipa_pass_list): Update for IPA_PASS type.
2998
2999 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
3000
3001 * config/i386/i386.c (ix86_builtin_type): Add
3002 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
3003 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
3004 (bdesc_args): Add SSE4a builtins.
3005 (ix86_init_mmx_sse_builtins): Updated.
3006 (ix86_expand_args_builtin): Likewise.
3007 (ix86_expand_builtin): Likewise.
3008
3009 2008-05-01 H.J. Lu <hongjiu.lu@intel.com>
3010
3011 * config/i386/i386.c (ix86_builtin_type): Add
3012 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
3013 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
3014 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
3015 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
3016 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
3017 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
3018 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
3019 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
3020 and DI_FTYPE_DI_DI_INT.
3021 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
3022 (ix86_init_mmx_sse_builtins): Updated.
3023 (ix86_expand_args_builtin): Likewise.
3024 (ix86_expand_builtin): Likewise.
3025 (ix86_expand_binop_imm_builtin): Removed.
3026
3027 * doc/extend.texi: Correct __builtin_ia32_palignr128.
3028
3029 2008-04-30 Richard Guenther <rguenther@suse.de>
3030
3031 PR tree-optimization/32921
3032 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
3033
3034 2008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
3035
3036 * config/arm/arm.c (arm_unwind_emit): Use
3037 crtl->all_throwers_are_sibcalls instead of
3038 cfun->all_throwers_are_sibcalls.
3039 (arm_output_fn_unwind): Likewise.
3040 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
3041 instead of cfun->uses_pic_offset_table.
3042 (frv_expand_prologue): Likewise.
3043 (frv_frame_pointer_required): Likewise.
3044 (frv_expand_fdpic_call): Likewise.
3045 (frv_emit_movsi): Likewise.
3046 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
3047 cfun->returns_pcc_struct instead of
3048 current_function_returns_pcc_struct.
3049 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
3050 instead of cfun->calls_eh_return.
3051 (m32c_pushm_popm): Likewise.
3052 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
3053 "extern" declaration.
3054
3055 2008-04-30 Richard Guenther <rguenther@suse.de>
3056
3057 PR tree-optimization/21636
3058 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
3059 constant address.
3060 (evaluate_stmt): Print the likely value.
3061 (ccp_visit_stmt): Avoid excessive vertical spacing.
3062
3063 2008-04-30 Rafael Espindola <espindola@google.com>
3064
3065 * builtins.c (fold_call_expr): Return realret.
3066 * tree-ssa-threadedge.c
3067 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
3068 __builtin_object_size.
3069
3070 2008-04-30 Seongbae Park <seongbae.park@gmail.com>
3071
3072 * gcc.c (wrapper_string): New variable.
3073 (insert_wrapper): New function.
3074 (execute): New option -wrapper.
3075 * doc/invoke.texi (Overall Options): New driver option -wrapper.
3076
3077 2008-04-30 Nathan Froyd <froydnj@codesourcery.com>
3078
3079 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
3080 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
3081 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
3082 from...
3083 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
3084 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
3085 config/rs6000/e500crtres64gprctr.asm,
3086 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
3087 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
3088 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
3089 config/rs6000/e500crtsav64gprctr.asm,
3090 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
3091 config/rs6000/e500crtsavg64gprctr.asm: New files.
3092 * config/rs6000/t-ppccomm: Add build rules for new files.
3093 (LIB2FUNCS_STATIC_EXTRA): Add new files.
3094 * config/rs6000/t-netbsd: Add build rules for new files.
3095 (LIB2FUNCS_STATIC_EXTRA): New variable.
3096 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
3097 (CRTSAVRES_DEFAULT_SPEC): Likewise.
3098 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
3099
3100 2008-04-30 H.J. Lu <hongjiu.lu@intel.com>
3101
3102 * config/i386/i386.c (ix86_builtin_type): Add
3103 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3104 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3105 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3106 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3107 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3108 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3109 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3110 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3111 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3112 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3113 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3114 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3115 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3116 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3117 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3118 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3119 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3120 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3121 V1DI_FTYPE_V2SI_V2SI.
3122 (bdesc_2arg): Moved to ...
3123 (bdesc_args): Here.
3124 (ix86_init_mmx_sse_builtins): Updated.
3125 (ix86_expand_args_builtin): Updated. Take a pointer
3126 to const struct builtin_description. Handle comparison
3127 builtin functions.
3128 (ix86_expand_sse_compare): Take a new argument for swapping operands.
3129 (ix86_expand_builtin): Updated.
3130
3131 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3132 (ssse3_pmaddubsw128): This.
3133 (ssse3_pmaddubswv4hi3): Renamed to ...
3134 (ssse3_pmaddubsw): This.
3135
3136 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
3137 (__builtin_ia32_packssdw128): Likewise.
3138 (__builtin_ia32_packuswb128): Likewise.
3139 (__builtin_ia32_pmaddubsw): Likewise.
3140 (__builtin_ia32_pmaddubsw128): Likewise.
3141
3142 2008-04-30 Richard Guenther <rguenther@suse.de>
3143
3144 PR tree-optimization/14847
3145 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3146 (recognize_bits_test): Use it.
3147 (recognize_single_bit_test): Likewise.
3148
3149 2008-04-30 Martin Jambor <mjambor@suse.cz>
3150
3151 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3152 instead of setting number of formal parameters to zero.
3153 (ipcp_init_stage): Do not set the number of actual parameters to zero
3154 either.
3155 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3156 which are called with variable number of arguments.
3157 (ipcp_insert_stage): Explicitely skipping all nodes which are
3158 called with variable number of arguments.
3159 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
3160 number of parameters.
3161
3162 * ipa-prop.h (struct ipa_node_params): Added flag
3163 called_with_var_arguments
3164 (ipa_set_param_count): Added. Changed sole setter to use it.
3165 (ipa_get_param_count): Added. All readers of param_count
3166 converted to use it instead.
3167 (ipa_set_called_with_variable_arg): Added.
3168 (ipa_is_called_with_var_arguments): Added.
3169 (ipa_get_ith_param): Added. All readers of param_decls converted
3170 to use it instead.
3171 (ipa_set_cs_argument_count): Added, sole writer to argument_count
3172 changed to use it.
3173 (ipa_get_cs_argument_count): Added, all readers of argument_count
3174 changed to cal it.
3175 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
3176 to use it.
3177
3178 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3179 (struct ipcp_lattice): Renamed cval_type to type
3180 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3181
3182 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3183 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3184 (ipcp_insert_stage): Changed the type of variable cvalue to tree
3185 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3186 (build_const_val): Changed the type of parameter cvalue to tree
3187 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3188 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3189
3190 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
3191 constant
3192
3193 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3194 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3195 (ipa_add_method): Renamed to ipa_push_func_to_list
3196 (ipa_remove_method): Renamed to ipa_pop_func_from_list
3197 (ipa_callsite_param_count): Removed.
3198 (ipa_callsite_param_count_set): Removed.
3199 (ipa_callsite_param): Removed.
3200 (ipa_callsite_callee): Removed.
3201 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3202 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3203 (ipa_method_formal_count): Removed.
3204 (ipa_method_formal_count_set): Removed.
3205 (ipa_method_get_tree): Removed.
3206 (ipa_method_tree_map_create): Removed.
3207 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3208 (ipa_create_param_decls_array): Creates the array itself
3209 (ipa_create_param_decls_array): Temporary variable info instead of
3210 a few dereferences.
3211 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3212 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3213 (get_type): Removed.
3214 (ipa_jf_get_info_type): Removed.
3215 (ipa_node_create): Renamed to ipa_create_node_params
3216 (ipa_free): Renamed to ipa_free_all_node_params
3217 (ipa_nodes_create): Renamed to ipa_create_all_node_params
3218 (ipa_edges_create): Renamed to ipa_create_all_edge_args
3219 (ipa_edges_free): Renamed to ipa_free_all_edge_args
3220 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3221 (ipa_free_all_node_params): Deallocation to jump_functions moved to
3222 ipa_free_all_edge_args
3223 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3224 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3225 (ipa_create_methodlist_node): Removed.
3226 (ipa_methodlist_method): Removed.
3227 (ipa_methodlist_method_set): Removed.
3228 (ipa_methodlist_next_method): Removed.
3229 (ipa_methodlist_next_method_set): Removed.
3230 (ipa_method_is_modified): Removed.
3231 (ipa_method_modify_create): Removed.
3232 (ipa_method_modify_init): Temporary variable info instead of a few
3233 dereferences.
3234 (ipa_detect_param_modifications): Temporary variable info instead of
3235 a few dereferences.
3236 (ipa_compute_jump_functions): Temporary variable info instead of
3237 a few dereferences.
3238 (ipa_method_modify_set): Removed.
3239 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3240 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
3241 than craph_node as the first parameter.
3242 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3243 (ipa_method_modify_init): Removed.
3244 (ipa_compute_jump_functions): Added a temp variable instead of
3245 repeatadly dereferencing the cgraph_edge.aux pointer
3246 (ipa_callsite_param_set_type): Removed.
3247 (ipa_compute_jump_functions): i renamed to index and moved to
3248 an inner block
3249 (ipa_callsite_param_set_info_type_formal): Removed.
3250 (ipa_callsite_param_set_info_type): Removed.
3251 (ipa_callsite_param_map_create): Removed.
3252 (ipa_callsite_tree): Removed.
3253 (ipa_callsite_caller): Removed.
3254 (ipa_pop_func_from_list): return_method removed to return_func
3255
3256 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3257 prefixed all values with IPA_. Changed all users.
3258 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
3259 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
3260 and FORMAL_IPATYPE IPA_PASS_THROUGH.
3261 (union parameter_info): Renamed to jump_func_value.
3262 (union jump_func_value): Renamed value to constant
3263 (struct ipa_jump_func): Renamed info_type to value
3264 (struct ipa_node): Renamed to ipa_node_params
3265 (struct ipa_node_params): Renamed ipa_arg_num to param_count
3266 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3267 (struct ipa_node_params): Renamed ipa_mod to modified_flags
3268 (struct ipa_edge): Renamed to ipa_edge_args
3269 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3270 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3271 (struct ipa_methodlist): Renamed to ipa_func_list
3272 (struct ipa_func_list): method_p renamed to node, next_method
3273 renamed to next
3274 (ipa_methodlist_p): Removed, switched all users to struct pointer
3275 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3276
3277 2008-04-30 Alan Modra <amodra@bigpond.net.au>
3278
3279 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3280 (rs6000_emit_epilogue): Use backchain to restore only when we
3281 have a large frame. Make use of frame pointer to restore if we
3282 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3283
3284 2008-04-29 Paolo Bonzini <bonzini@gnu.org>
3285
3286 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3287 Add mode to zero_extract.
3288 (sign bit tests peepholes): (Ditto.).
3289
3290 2008-04-29 H.J. Lu <hongjiu.lu@intel.com>
3291
3292 * config/i386/i386.c (ix86_builtins): Replace Prescott New
3293 Instructions in comments with SSE3.
3294 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
3295 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3296 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3297 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3298 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3299 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3300 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3301 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3302 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3303 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3304 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3305 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3306 (bdesc_sse_args): Renamed to ...
3307 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3308 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3309 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3310 IX86_BUILTIN_FABSQ.
3311 (bdesc_1arg): Moved to ...
3312 (bdesc_args): Here.
3313 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
3314 Instructions in comments with SSE3.
3315 (ix86_expand_sse_operands_builtin): Renamed to ...
3316 (ix86_expand_args_builtin): This. Updated.
3317 (ix86_expand_unop1_builtin): Update comments.
3318 (ix86_expand_builtin): Updated.
3319
3320 2008-04-29 Richard Guenther <rguenther@suse.de>
3321
3322 PR tree-optimization/36078
3323 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3324 Update virtual SSA form after cleaning up the CFG.
3325
3326 2008-04-29 Richard Guenther <rguenther@suse.de>
3327
3328 PR middle-end/15255
3329 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3330
3331 2008-04-29 Richard Guenther <rguenther@suse.de>
3332
3333 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3334 (compute_may_aliases): Do not call finalize_ref_all_pointers.
3335 (compute_flow_insensitive_aliasing): Do not treat
3336 PTR_IS_REF_ALL pointers special.
3337 (get_smt_for): Likewise.
3338 (may_alias_p): Re-structure.
3339 (is_escape_site): A ref-all pointer conversion is not an escape site.
3340 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3341 PTR_IS_REF_ALL pointers special.
3342 * tree-ssa-structalias.h (struct alias_info): Remove
3343 ref_all_symbol_mem_tag field.
3344 (PTR_IS_REF_ALL): Remove.
3345
3346 2008-04-29 Richard Guenther <rguenther@suse.de>
3347
3348 PR middle-end/36077
3349 * fold-const.c (extract_muldiv_1): In combining division constants
3350 make sure to never overflow.
3351
3352 2008-04-29 Nick Clifton <nickc@redhat.com>
3353
3354 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3355
3356 2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3357
3358 PR bootstrap/35169
3359 * optc-gen.awk: Work around HP-UX/IA awk bug.
3360
3361 2008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
3362
3363 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3364 2008-04-25 commit.
3365
3366 2008-04-28 Uros Bizjak <ubizjak@gmail.com>
3367
3368 PR target/36073
3369 * config/i386/i386.md
3370 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3371 Change operand 1 predicate to nonimmediate_operand.
3372
3373 2008-04-28 Jakub Jelinek <jakub@redhat.com>
3374
3375 PR debug/36060
3376 * dwarf2out.c (struct die_struct): Mark as chain_circular through
3377 die_sub field.
3378 * gengtype.c (walk_type, write_func_for_structure): Handle
3379 chain_circular.
3380 * doc/gty.texi: Document chain_circular.
3381
3382 2008-04-28 Richard Guenther <rguenther@suse.de>
3383
3384 PR tree-optimization/36066
3385 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3386 SCEV and loop.
3387
3388 2008-04-28 Uros Bizjak <ubizjak@gmail.com>
3389
3390 PR target/36064
3391 * config/i386/i386.md
3392 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3393 Use match_scratch instead of match_operand for operands 3 and 4.
3394
3395 2008-04-27 Richard Guenther <rguenther@suse.de>
3396
3397 PR tree-optimization/18754
3398 PR tree-optimization/34223
3399 * tree-pass.h (pass_complete_unrolli): Declare.
3400 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3401 loop size before and after unconditionally of UL_NO_GROWTH in effect.
3402 Rewrite loop into loop closed SSA form if it is not already.
3403 (tree_unroll_loops_completely): Re-structure to iterate over
3404 innermost loops with intermediate CFG cleanups.
3405 Unroll outermost loops only if requested or the code does not grow
3406 doing so.
3407 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3408 loops are available.
3409 (tree_vectorize): Instead do so here.
3410 (tree_complete_unroll): Also unroll outermost loops.
3411 (tree_complete_unroll_inner): New function.
3412 (gate_tree_complete_unroll_inner): Likewise.
3413 (pass_complete_unrolli): New pass.
3414 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3415 uses outside of the loop.
3416 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3417 form if it is available.
3418 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3419 * passes.c (init_optimization_passes): Schedule complete inner
3420 loop unrolling pass before the first CCP pass after final inlining.
3421
3422 2008-04-27 Nathan Sidwell <nathan@codesourcery.com>
3423
3424 * targhooks.h (default_emutls_var_fields,
3425 default_emutls_var_init): Declare.
3426 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3427 * target.h (struct gcc_target): Add struct emutls member.
3428 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3429 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3430 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3431 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3432 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3433 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3434 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3435 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3436 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3437 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3438 emit debug information.
3439 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3440 * varasm.c: Include targhooks.h.
3441 (emutls_object_section, emutls_tmpl_section): New.
3442 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3443 (EMUTLS_SEPARATOR): New.
3444 (prefix_name): New.
3445 (get_emutls_object_name): New.
3446 (default_emutls_var_fields): New, broken out of ...
3447 (get_emutls_object_type): ... here. Adjust to use target hooks.
3448 (get_emutls_init_templ_addr): Adjust to use target hooks.
3449 (emutls_decl): Adjust to use target hooks.
3450 (emutls_finish): Likewise.
3451 (default_emutls_var_init): New, broken out of ...
3452 (assemble_variable): ... here. Adjust to use target hooks.
3453 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3454 SECCAT_EMUTLS_TMPL.
3455 * c-common.c (handle_section_attribute): Prevent overriding
3456 sections for emulated tls with special sections.
3457 * config/i386/i386.c (x86_64_elf_select_section): Add
3458 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3459 (x86_64_elf_unique_section): Likewise.
3460 * config/vxworks.c: Include tree.h.
3461 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3462 (vxworks_override_options): Set TLS scheme.
3463 * doc/tm.texi (Emulated TLS): New node.
3464
3465 2008-04-26 Simon Baldwin <simonb@google.com>
3466
3467 PR c/35652
3468 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3469 with propagated string constants.
3470
3471 2008-04-26 Uros Bizjak <ubizjak@gmail.com>
3472
3473 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3474 constraint for operand 2 when operand 0 is memory operand.
3475 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3476 operand 0 is memory operand.
3477 (fix_trunc<mode>_i387_with_temp): Ditto.
3478 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3479 operand 2 when operand 1 is memory operand.
3480 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3481 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3482 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3483 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3484 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3485 operands 2,3 and 4 when operand 1 is memory operand.
3486 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3487 is memory operand.
3488 (fistdi2_floor_with_temp): Ditto.
3489 (fist<mode>2_floor_with_temp): Ditto.
3490 (fistdi2_ceil_with_temp): Ditto.
3491 (fist<mode>2_ceil_with_temp): Ditto.
3492 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3493
3494 2008-04-26 David Daney <ddaney@avtrex.com>
3495
3496 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3497 unspec_volitile.
3498 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3499 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3500 UNSPEC_UPDATE_GOT_VERSION): Renumber.
3501 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3502 (compare_and_swap_12): New insn.
3503 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3504 * config/mips/mips.c (mips_force_binary): New function.
3505 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3506 (mips_expand_compare_and_swap_12): New function.
3507 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3508
3509 2008-04-25 Jan Hubicka <jh@suse.cz>
3510
3511 PR testsuite/35843
3512 * cfgexpand.c (pass_expand): Turn into RTL pass.
3513 * passes.c (execute_one_pass): Do pass typechecking after execution.
3514 * tree-pass.h (pass_expand): Turn into RTL pass.
3515
3516 * function.h (struct rtl_data): Move here fields
3517 accesses_prior_frames, calls_eh_return, saves_all_registers,
3518 has_nonlocal_goto, has_asm_statement, is_thunk,
3519 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3520 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3521 arg_pointer_save_area_init from struct function; turn into bool.
3522 (struct function): Move
3523 calls_eh_return, saves_all_registers, has_nonlocal_goto,
3524 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3525 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3526 tail_call_emit, arg_pointer_save_area_init
3527 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
3528 (current_function_returns_struct, current_function_returns_pcc_struct,
3529 current_function_calls_setjmp, current_function_calls_alloca,
3530 current_function_accesses_prior_frames,
3531 current_function_calls_eh_return, current_function_is_thunk,
3532 current_function_stdarg, current_function_profile,
3533 current_function_limit_stack, current_function_uses_pic_offset_table,
3534 current_function_uses_const_pool, current_function_has_nonlocal_label,
3535 current_function_saves_all_registers,
3536 current_function_has_nonlocal_goto,
3537 current_function_has_asm_statement): Remove accesor macros.
3538 * ra-conflict.c (global_conflicts): Update.
3539 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3540 (suitable_for_tail_call_opt_p): Update.
3541 * builtins.c (expand_builtin_return_addr): Update.
3542 (expand_builtin_setjmp_setup): Update.
3543 (expand_builtin_nonlocal_goto): Update.
3544 * final.c (final_start_function): Update.
3545 (profile_function): Update.
3546 (leaf_function_p): Update.
3547 (only_leaf_regs_used): Update.
3548 * df-scan.c (df_get_exit_block_use_set): Update.
3549 * dojump.c (clear_pending_stack_adjust): Update.
3550 * tree-stdarg.c (gate_optimize_stdarg): Update.
3551 * gimple-low.c (lower_function_body): Update.
3552 * global.c (compute_regsets): Update.
3553 (global_alloc): Update.
3554 * dwarf2out.c (dwarf2out_begin_prologue): Update.
3555 * expr.c (expand_assignment): Update.
3556 * dse.c (dse_step0): Update.
3557 (dse_step1): Update.
3558 * c-decl.c (store_parm_decls): Update.
3559 * local-alloc.c (combine_regs): Update.
3560 (find_free_reg): Update.
3561 * function.c (assign_parms_augmented_arg_list): Update.
3562 (assign_parm_find_data_types): Update.
3563 (assign_parms): Update.
3564 (allocate_struct_function): Update.
3565 (expand_function_start): Update.
3566 (expand_function_end): Update.
3567 (get_arg_pointer_save_area): Update.
3568 (thread_prologue_and_epilogue_insns): Update.
3569 (rest_of_match_asm_constraints): Update.
3570 * stor-layout.c (variable_size): Update.
3571 * gcse.c (gcse_main): Update.
3572 (bypass_jumps): Update.
3573 * gimplify.c (gimplify_function_tree): Update.
3574 * calls.c (emit_call_1): Update.
3575 (expand_call): Update.
3576 * bt-load.c (compute_defs_uses_and_gen): Update.
3577 * except.c (sjlj_assign_call_site_values): Update.
3578 (sjlj_emit_function_enter): Update.
3579 (can_throw_external): Update.
3580 (set_nothrow_function_flags): Update.
3581 (expand_builtin_unwind_init): Update.
3582 (expand_eh_return): Update.
3583 (convert_to_eh_region_ranges): Update.
3584 (output_function_exception_table): Update.
3585 * emit-rtl.c (gen_tmp_stack_mem): Update.
3586 * cfgexpand.c (expand_used_vars): Update.
3587 (tree_expand_cfg): Update.
3588 * cfgcleanup.c (rest_of_handle_jump): Update.
3589 * explow.c (allocate_dynamic_stack_space): Update.
3590 * varasm.c (assemble_start_function): Update.
3591 (force_const_mem): Update.
3592 (mark_constant_pool): Update.
3593 * tree-optimize.c (tree_rest_of_compilation): Update.
3594 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3595 * tree-cfg.c (notice_special_calls): Update.
3596 (is_ctrl_altering_stmt): Update.
3597 (tree_can_make_abnormal_goto): Update.
3598 (tree_purge_dead_abnormal_call_edges): Update.
3599 * config/alpha/predicates.md: Update.
3600 * config/alpha/alpha.c (alpha_sa_mask): Update.
3601 (alpha_sa_size): Update.
3602 (alpha_does_function_need_gp): Update.
3603 (alpha_expand_prologue): Update.
3604 (alpha_start_function): Update.
3605 (alpha_output_function_end_prologue): Update.
3606 (alpha_expand_epilogue): Update.
3607 * config/frv/frv.c (frv_stack_info): Update.
3608 (frv_expand_epilogue): Update.
3609 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3610 (s390_register_info): Update.
3611 (s390_frame_info): Update.
3612 (s390_init_frame_layout): Update.
3613 (s390_can_eliminate): Update.
3614 (save_gprs): Update.
3615 * config/spu/spu.c (spu_split_immediate): Update.
3616 (need_to_save_reg): Update.
3617 (spu_expand_prologue): Update.
3618 (spu_expand_epilogue): Update.
3619 * config/sparc/sparc.md: Update.
3620 * config/sparc/sparc.c (eligible_for_return_delay): Update.
3621 (sparc_tls_got): Update.
3622 (legitimize_pic_address): Update.
3623 (sparc_emit_call_insn): Update.
3624 (sparc_expand_prologue): Update.
3625 (output_return): Update.
3626 (print_operand): Update.
3627 (sparc_function_ok_for_sibcall): Update.
3628 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3629 * config/m32r/m32r.md: Update.
3630 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3631 (m32r_compute_frame_size): Update.
3632 (m32r_expand_prologue): Update.
3633 (m32r_expand_epilogue): Update.
3634 (m32r_legitimize_pic_address): Update.
3635 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3636 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3637 * config/i386/i386.c (ix86_frame_pointer_required): Update.
3638 (gen_push): Update.
3639 (ix86_save_reg): Update.
3640 (ix86_compute_frame_layout): Update.
3641 (ix86_expand_prologue): Update.
3642 (ix86_expand_epilogue): Update.
3643 * config/sh/sh.c (output_stack_adjust): Update.
3644 (calc_live_regs): Update.
3645 (sh5_schedule_saves): Update.
3646 (sh_expand_prologue): Update.
3647 (sh_expand_epilogue): Update.
3648 (sh_setup_incoming_varargs): Update.
3649 (sh_allocate_initial_value): Update.
3650 (sh_get_pr_initial_val): Update.
3651 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3652 * config/sh/sh.md (label:): Update.
3653 * config/avr/avr.c (out_movhi_mr_r): Update.
3654 * config/crx/crx.h (enum): Update.
3655 * config/xtensa/xtensa.h (along): Update.
3656 * config/stormy16/stormy16.c Update.
3657 (xstormy16_compute_stack_layout): Update.
3658 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3659 (fr30_expand_prologue): Update.
3660 * config/cris/cris.c (cris_conditional_register_usage): Update.
3661 (cris_reg_saved_in_regsave_area): Update.
3662 (cris_initial_frame_pointer_offset): Update.
3663 (cris_simple_epilogue): Update.
3664 (cris_expand_prologue): Update.
3665 (cris_expand_epilogue): Update.
3666 (cris_expand_pic_call_address): Update.
3667 (cris_asm_output_symbol_ref): Update.
3668 (cris_asm_output_label_ref): Update.
3669 * config/cris/cris.md Update.
3670 * config/iq2000/iq2000.c (compute_frame_size): Update.
3671 (iq2000_expand_epilogue): Update.
3672 * config/mt/mt.h (save_direction): Update.
3673 * config/mn10300/mn10300.c (mn10300_function_value): Update.
3674 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3675 (ia64_secondary_reload_class): Update.
3676 * config/m68k/m68k.c (m68k_save_reg): Update.
3677 (m68k_expand_prologue): Update.
3678 (m68k_expand_epilogue): Update.
3679 (legitimize_pic_address): Update.
3680 * config/rs6000/rs6000.c (rs6000_got_register): Update.
3681 (first_reg_to_save): Update.
3682 (first_altivec_reg_to_save): Update.
3683 (compute_vrsave_mask): Update.
3684 (compute_save_world_info): Update.
3685 (rs6000_stack_info): Update.
3686 (spe_func_has_64bit_regs_p): Update.
3687 (rs6000_ra_ever_killed): Update.
3688 (rs6000_emit_eh_reg_restore): Update.
3689 (rs6000_emit_allocate_stack): Update.
3690 (rs6000_emit_prologue): Update.
3691 (rs6000_emit_epilogue): Update.
3692 (rs6000_output_function_epilogue): Update.
3693 (output_profile_hook): Update.
3694 (rs6000_elf_declare_function_name): Update.
3695 * config/rs6000/rs6000.h (rs6000_args): Update.
3696 * config/rs6000/rs6000.md: Update.
3697 * config/mcore/mcore.c (mcore_expand_prolog): Update.
3698 * config/arc/arc.c (arc_output_function_epilogue): Update.
3699 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3700 * config/darwin.c (machopic_function_base_name): Update.
3701 * config/score/score3.c (score3_compute_frame_size): Update.
3702 (rpush): Update.
3703 (rpop): Update.
3704 (score3_epilogue): Update.
3705 * config/score/score7.c (score7_compute_frame_size): Update.
3706 (score7_prologue): Update.
3707 (score7_epilogue): Update.
3708 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3709 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3710 * config/arm/arm.c (use_return_insn): Update.
3711 (require_pic_register): Update.
3712 (arm_load_pic_register): Update.
3713 (arm_compute_save_reg0_reg12_mask): Update.
3714 (arm_compute_save_reg_mask): Update.
3715 (thumb1_compute_save_reg_mask): Update.
3716 (output_return_instruction): Update.
3717 (arm_output_function_prologue): Update.
3718 (arm_output_epilogue): Update.
3719 (arm_get_frame_offsets): Update.
3720 (arm_expand_prologue): Update.
3721 (thumb_pushpop): Update.
3722 (thumb_exit): Update.
3723 (thumb1_expand_prologue): Update.
3724 (thumb1_expand_epilogue): Update.
3725 (arm_unwind_emit): Update.
3726 (arm_output_fn_unwind): Update.
3727 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3728 * config/arm/arm.md: Update.
3729 * config/pa/pa.md: Update.
3730 * config/pa/pa.c (legitimize_pic_address): Update.
3731 (compute_frame_size): Update.
3732 (hppa_expand_prologue): Update.
3733 (hppa_expand_epilogue): Update.
3734 (borx_reg_operand): Update.
3735 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3736 (HARD_REGNO_RENAME_OK): Update.
3737 * config/mips/mips.c (mips_global_pointer): Update.
3738 (mips_save_reg_p): Update.
3739 (mips_compute_frame_info): Update.
3740 (mips_frame_pointer_required): Update.
3741 (mips_expand_prologue): Update.
3742 (mips_expand_epilogue): Update.
3743 (mips_can_use_return_insn): Update.
3744 (mips_reorg_process_insns): Update.
3745 * config/v850/v850.c (compute_register_save_size): Update.
3746 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3747 * config/mmix/mmix.c (along): Update.
3748 (mmix_expand_epilogue): Update.
3749 * config/bfin/bfin.c (legitimize_pic_address): Update.
3750 (must_save_p): Update.
3751 (stack_frame_needed_p): Update.
3752 (add_to_reg): Update.
3753 (bfin_expand_prologue): Update.
3754 * stmt.c (expand_asm_operands): Update.
3755 * reload1.c (reload): Update.
3756 (init_elim_table): Update.
3757
3758 2008-04-25 Bob Wilson <bob.wilson@acm.org>
3759
3760 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3761
3762 2008-04-25 H.J. Lu <hongjiu.lu@intel.com>
3763
3764 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3765 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
3766 (mov<mode>): Removed.
3767 (*movv4sf_internal): Likewise.
3768 (*movv2df_internal): Likewise.
3769
3770 2008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3771
3772 * config.gcc (crx-*-elf): Remove deprecation.
3773
3774 2008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
3775
3776 * config/i386/cygming-crtend.c (register_frame_ctor): Register
3777 __gcc_deregister_frame with atexit.
3778 (deregister_frame_dtor): Remove.
3779
3780 2008-04-24 Nathan Froyd <froydnj@codesourcery.com>
3781 Nathan Sidwell <nathan@codesourcery.com>
3782
3783 * config/rs6000/rs6000.opt (mspe): Remove Var property.
3784 (misel): Likewise.
3785 * config/rs6000/rs6000.h (rs6000_spe): Declare.
3786 (rs6000_isel): Likewise.
3787 * config/rs6000/rs6000.c (rs6000_spe): New variable.
3788 (rs6000_isel): New variable.
3789 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3790
3791 2008-04-24 Jakub Jelinek <jakub@redhat.com>
3792
3793 PR c++/35758
3794 * c-common.c (handle_vector_size_attribute): Call
3795 lang_hooks.types.reconstruct_complex_type instead of
3796 reconstruct_complex_type.
3797 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3798 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3799 * langhooks.h (struct lang_hooks_for_types): Add
3800 reconstruct_complex_type hook.
3801 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3802 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3803
3804 2008-04-24 Richard Guenther <rguenther@suse.de>
3805
3806 * c-common.h (check_builtin_function_arguments): Declare.
3807 * c-common.c (validate_nargs): New function.
3808 (check_builtin_function_arguments): Likewise.
3809 * c-typeck.c (build_function_call): Call
3810 check_builtin_function_arguments.
3811 * builtins.c (fold_builtin_classify): Remove error reporting code.
3812 (fold_builtin_unordered_cmp): Likewise.
3813 (fold_builtin_1): Likewise.
3814 (fold_builtin_n): Likewise.
3815
3816 2008-04-24 Jakub Jelinek <jakub@redhat.com>
3817
3818 PR tree-optimization/36008
3819 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3820 the original op1, rather than delta by step.
3821
3822 2008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
3823 Sebastian Pop <sebastian.pop@amd.com>
3824
3825 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3826 eliminate_local_variables_stmt, eliminate_local_variables,
3827 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3828 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3829 of code delimited by two edges in the CFG.
3830 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3831 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3832 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
3833 the case of parallelisation of reductions.
3834 (expr_invariant_in_region_p): New.
3835
3836 * tree-flow.h (gather_blocks_in_sese_region): Declared.
3837 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3838
3839 2008-04-24 Ira Rosen <irar@il.ibm.com>
3840 Richard Guenther <rguenther@suse.de>
3841
3842 PR tree-optimization/36034
3843 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3844 incapable of dealing with loads with gaps.
3845
3846 2008-04-24 Rafael Espindola <espindola@google.com>
3847
3848 * tree-flow.h (vrp_evaluate_conditional): Change signature.
3849 * tree-ssa-propagate.c (fold_predicate_in): Update call to
3850 vrp_evaluate_conditional.
3851 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3852 (vrp_evaluate_conditional): Split the cond argument.
3853 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3854 (simplify_stmt_for_jump_threading): Update call to
3855 vrp_evaluate_conditional.
3856
3857 2008-04-24 Ira Rosen <irar@il.ibm.com>
3858
3859 PR tree-optimization/35982
3860 * tree-vect-analyze.c (vect_check_interleaving): Check that the
3861 interleaved data-refs are of the same type.
3862
3863 2008-04-24 Danny Smith <dannysmith@users.net>
3864
3865 * c-format.c (check_format_info_main): Use strncmp rather than a
3866 magic prefix to handle multichar length specs.
3867 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3868 Don't prefix "I64" and "I32" with '\0'.
3869
3870 2008-04-24 Jakub Jelinek <jakub@redhat.com>
3871
3872 PR target/36015
3873 * config/i386/i386.c (init_cumulative_args): Don't pass anything
3874 in registers for -m32 only if stdarg_p (fntype).
3875
3876 2008-04-24 Uros Bizjak <ubizjak@gmail.com>
3877
3878 PR rtl-optimization/36006
3879 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3880 temp to op0 in order to avoid invalid rtx sharing.
3881
3882 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
3883
3884 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
3885 check TREE_INVARIANT.
3886 * tree-gimple.c (is_gimple_address): New.
3887 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3888 * tree-gimple.h (is_gimple_address): New.
3889 * tree.h (decl_address_invariant_p): New.
3890 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3891 (build_string): Likewise.
3892 (decl_address_invariant_p): New, from is_gimple_invariant_address.
3893 (tree_invariant_p_1): Likewise.
3894 (save_expr): Use it.
3895 (tree_invariant_p): New.
3896 (skip_simple_arithmetic): Use it.
3897 (stabilize_reference_1): Use it.
3898 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3899 simplify.
3900 (build1_stat): Drop code to compute TREE_INVARIANT.
3901 (build2_stat): Drop code to compute TREE_INVARIANT.
3902 (build3_stat): Drop code to compute TREE_INVARIANT.
3903 (build4_stat): Drop code to compute TREE_INVARIANT.
3904 (build5_stat): Drop code to compute TREE_INVARIANT.
3905 (build7_stat): Drop code to compute TREE_INVARIANT.
3906 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3907 * tree.h (struct tree_base): Remove invariant_flag.
3908 (TREE_INVARIANT): Remove.
3909 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3910 (fold_builtin_expect): Check TREE_CONSTANT.
3911 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3912 * c-tree.h (c_expr_to_decl): Drop third parameter.
3913 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3914 (build_c_cast): Don't set TREE_INVARIANT.
3915 (pop_init_level): Don't set TREE_INVARIANT.
3916 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3917 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3918 TREE_CONSTANT.
3919 (gimplify_init_constructor): Don't set TREE_INVARIANT.
3920 (gimplify_addr_expr): Adjust comment.
3921 * tree-mudflap.c (mf_build_string):
3922 * print-tree.c (print_node): Don't print TREE_INVARIANT.
3923 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3924 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3925 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3926 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3927 * langhooks.h (struct lang_hooks): Drop third parameter from
3928 expr_to_decl.
3929
3930 2008-04-23 Richard Guenther <rguenther@suse.de>
3931
3932 PR tree-optimization/27799
3933 PR tree-optimization/32921
3934 PR tree-optimization/32624
3935 * tree-ssa-structalias.c (merge_smts_into): Only merge the
3936 SMTs aliases and the tag itself into the solution.
3937 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3938 merge the points-to solution back into the SMT aliases.
3939 (may_alias_p): Use alias_set_subset_of instead of
3940 aliases_conflict_p. A pointer which points to
3941 memory with alias set zero may access any variable.
3942
3943 2008-04-23 Richard Guenther <rguenther@suse.de>
3944
3945 * alias.c (alias_set_subset_of): Correctly handle asking
3946 if zero is a subset of an alias set with zero child.
3947 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3948 (compute_flow_insensitive_aliasing): Correctly walk all
3949 pointers. Do not unnecessarily union sets.
3950
3951 2008-04-23 Richard Guenther <rguenther@suse.de>
3952
3953 PR middle-end/36021
3954 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3955
3956 2008-04-22 Tomas Bily <tbily@suse.cz>
3957
3958 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3959 unreachable case.
3960 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3961 NON_LVALUE_EXPR.
3962 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3963 * tree-ssa-structalias.c (get_constraint_for): Likewise.
3964 * tree-inline.c (estimate_num_insns_1): Likewise.
3965 * varasm.c (const_hash_1, compare_constant, copy_constant)
3966 (compute_reloc_for_constant, output_addressed_constants): Likewise.
3967 * emit-rtl.c (component_ref_for_mem_expr)
3968 (set_mem_attributes_minus_bitpos): Likewise.
3969 * expr.c (highest_pow2_factor, expand_expr_real_1, )
3970 (is_aligning_offset): Likewise.
3971 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3972 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3973 * dojump.c (do_jump): Likewise.
3974 * builtins.c (get_pointer_alignment, get_memory_rtx)
3975 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3976 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3977
3978 2008-04-23 Jakub Jelinek <jakub@redhat.com>
3979
3980 PR rtl-optimization/36017
3981 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3982 expanding the library call.
3983
3984 2008-04-22 Ian Lance Taylor <iant@google.com>
3985
3986 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3987 than size_in_bytes.
3988
3989 2008-04-22 Pat Haugen <pthaugen@us.ibm.com>
3990
3991 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3992 of LR/CTR moves for Power6.
3993
3994 2008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
3995
3996 PR middle-end/36003
3997 * passes.c (init_optimization_passes): Remove
3998 pass_fast_rtl_byte_dce.
3999
4000 2008-04-22 Uros Bizjak <ubizjak@gmail.com>
4001
4002 PR target/29096
4003 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
4004 builtin functions to generate faster code.
4005 (_mm_cvtpu16_ps): Ditto.
4006 (_mm_cvtpi32x2_ps): Ditto.
4007
4008 2008-04-22 Nick Clifton <nickc@redhat.com>
4009
4010 * common.opt (ftree-loop-distribution): Add Optimization
4011 attribute.
4012
4013 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
4014 (frv_expand_builtin_va_start): Likewise.
4015
4016 * config/arm/arm.c (thumb_find_work_register): Fix location of
4017 argument register count.
4018
4019 2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
4020
4021 Support scheduling for ColdFire V1 and V3 microarchitecture.
4022 Improve scheduling of multiplication instructions.
4023
4024 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
4025 (mac): New instruction attribute.
4026 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
4027 (m68k_sched_mac): New variable.
4028 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
4029 Handle cfv1 and cfv3.
4030 (max_insn_size): New static variable.
4031 (struct _sched_ib): New type.
4032 (sched_ib): New static variable.
4033 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
4034 to fields of 'struct _sched_ib sched_ib'. Update all uses.
4035 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
4036 Update.
4037 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
4038 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
4039 new variables. Update.
4040 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
4041 Add modeling of cfv3 instruction buffer. Update.
4042 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
4043 * config/m68k/m68k.h (TUNE_CFV3): New macro.
4044 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
4045 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
4046 a particular reservation applies to.
4047 (type2): Reorganize attribute values. Rename alu to alu_reg,
4048 alu_l to alu, move_l to omove. Join move to alu. Split mul
4049 to mul_l and mul_w.
4050 (cf_ib_*): Simplify description of instruction buffer.
4051 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
4052 (cf_mem): Split into cf_mem1 and cf_mem2.
4053 (cf_v2_move_??): Rename to cfv12_alu_??.
4054 (cf_v2_move_l_??): Rename to cfv12_omove_??.
4055 (cf_v2_mul_??): Remove reservations.
4056 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
4057 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
4058 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
4059 appropriate place.
4060 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
4061 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
4062 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
4063 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
4064 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
4065 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
4066 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
4067 expansions of the above reservations for instructions of sizes
4068 1, 2 and 3 words.
4069
4070 2008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
4071
4072 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
4073
4074 2008-04-21 Adam Nemet <anemet@caviumnetworks.com>
4075
4076 * coverage.c: Include tree-pass.h.
4077 (coverage_counter_alloc): Print da_file_name to the dump file.
4078
4079 2008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
4080
4081 * sbitmap.c (sbitmap_range_empty_p): New function.
4082 * sbitmap.h (sbitmap_range_empty_p): New function.
4083 * bitmap.h: Now includes obstack.h.
4084
4085 2008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
4086 Kenneth Zadeck <zadeck@naturalbridge.com>
4087
4088 * dbgcnt.def (ra_byte_scan): Added.
4089 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
4090 when the last hit happens for a counter.
4091 * timevar.def (TV_DF_BYTE_LR): New variable.
4092 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
4093 * passes.c (pass_fast_rtl_byte_dce): New pass.
4094 * fwprop.c (update_df): Added mode to call df_ref_create.
4095 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4096 DF_REF_EXTRACT_OFFSET.
4097 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
4098 DF_BYTE_LR_OUT, df_byte_lr): New macro.
4099 (df_mm): New enum.
4100 (df_ref_extract): Added mode field.
4101 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4102 DF_REF_EXTRACT_OFFSET.
4103 (DF_REF_EXTRACT_MODE): New macro.
4104 (df_byte_lr_bb_info): New structure.
4105 (df_print_byte_regset, df_compute_accessed_bytes,
4106 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4107 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4108 df_byte_lr_simulate_uses,
4109 df_byte_lr_simulate_artificial_refs_at_top,
4110 df_byte_lr_simulate_artificial_refs_at_end,
4111 df_compute_accessed_bytes): New function.
4112 (df_ref_create): Add parameter.
4113 (df_byte_lr_get_bb_info): New inline function.
4114 * df-scan.c (df_ref_record, df_uses_record,
4115 df_ref_create_structure): Added mode parameter.
4116 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
4117 df_defs_record, df_uses_record, df_get_conditional_uses,
4118 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
4119 df_entry_block_defs_collect, df_exit_block_uses_collect):
4120 Added mode parameter to calls to df_ref_record, df_uses_record,
4121 df_ref_create_structure.
4122 (df_ref_equal_p, df_ref_compare): Added test for modes.
4123 (df_ref_create_structure): Added code to set mode. Renamed
4124 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4125 DF_REF_EXTRACT_OFFSET.
4126 * df-core.c (df_print_byte_regset): New function.
4127 * df-byte-scan.c: New file.
4128 * df-problems.c (df_rd_transfer_function): Removed unnecessary
4129 calls to BITMAP_FREE.
4130 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4131 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4132 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
4133 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
4134 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4135 df_byte_lr_local_compute, df_byte_lr_init,
4136 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
4137 df_byte_lr_transfer_function, df_byte_lr_free,
4138 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4139 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
4140 df_byte_lr_simulate_uses,
4141 df_byte_lr_simulate_artificial_refs_at_top,
4142 df_byte_lr_simulate_artificial_refs_at_end): New function.
4143 * dce.c (byte_dce_process_block): New function.
4144 (dce_process_block): au is now passed in rather than computed
4145 locally. Changed loops that look at artificial defs to not look
4146 for conditional or partial ones, because there never are any.
4147 (fast_dce): Now is able to drive byte_dce_process_block or
4148 dce_process_block depending on the kind of dce being done.
4149 (rest_of_handle_fast_dce): Add parameter to fast_dce.
4150 (rest_of_handle_fast_byte_dce): New function.
4151 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4152 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4153
4154 2008-04-21 Daniel Franke <franke.daniel@gmail.com>
4155
4156 PR fortran/35019
4157 * gcc.h: Added fortran options that take arguments to
4158 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4159 macros.
4160
4161 2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
4162
4163 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4164 scalarization if on the LHS and not a full access.
4165
4166 2008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4167
4168 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
4169
4170 2008-04-18 Rafael Espindola <espindola@google.com>
4171
4172 * tree-vrp.c (find_case_label_index): Fix the binary search.
4173 (find_case_label_range): New.
4174 (vrp_visit_switch_stmt): Use find_case_label_range.
4175 (simplify_switch_using_ranges): Use find_case_label_range.
4176
4177 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4178
4179 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4180 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4181
4182 2008-04-18 Tom Tromey <tromey@redhat.com>
4183
4184 PR libcpp/15500:
4185 * doc/cpp.texi (Implementation-defined behavior): Mention
4186 -finput-charset.
4187
4188 2008-04-18 Ian Lance Taylor <iant@google.com>
4189
4190 * fold-const.c (pointer_may_wrap_p): New static function.
4191 (fold_comparison): Add another test for pointer overflow. Use
4192 pointer_may_wrap_p to disable some false positives.
4193
4194 2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
4195
4196 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4197 (fname_as_string): Match updated cpp_interpret_string prototype.
4198 (fix_string_type): Support char16_t* and char32_t*.
4199 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4200 derivative) nodes. Register as builtin if C++0x.
4201 (c_parse_error): Support CPP_CHAR{16,32}.
4202 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
4203 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4204 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4205 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4206 CTI_CHAR32_ARRAY_TYPE>: New elements.
4207 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4208 char32_type_node, signed_char32_type_node, char16_array_type_node,
4209 char32_array_type_node): New defines.
4210 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4211 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4212 (lex_string): Support CPP_STRING{16,32}, match updated
4213 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4214 (lex_charconst): Support CPP_CHAR{16,32}.
4215 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4216 and CPP_STRING{16,32}.
4217
4218 2008-04-18 Paolo Bonzini <bonzini@gnu.org>
4219
4220 PR bootstrap/35457
4221 * aclocal.m4: Regenerate.
4222 * configure: Regenerate.
4223
4224 2008-04-18 Jan Hubicka <jh@suse.cz>
4225
4226 * except.c (dw2_size_of_call_site_table,
4227 sjlj_size_of_call_site_table): Use vector API for call_site_record.
4228
4229 * cgraphbuild.c (build_cgraph_edges): Update.
4230 * tree-pass.h: Update comment.
4231 * final.c (leaf_function_p): Update.
4232 (leaf_renumber_regs): Update.
4233 (rest_of_clean_state): Update.
4234 * omp-low.c (expand_omp_parallel): Update.
4235 * ipa-reference.c (analyze_function): Update.
4236 * reorg.c (find_end_label): Update.
4237 (optimize_skip): Update.
4238 (fill_simple_delay_slots): Update.
4239 (fill_simple_delay_slots): Update.
4240 (make_return_insns): Update.
4241 (dbr_schedule): Update.
4242 * gimple-low.c (record_vars_into): Update.
4243 * cfgbuild.c (make_edges): Update.
4244 * function.c (assign_stack_local): Update.
4245 (assign_parm_adjust_stack_rtl): Update.
4246 (locate_and_pad_parm): Update.
4247 (allocate_struct_function): Do not initialize stack_alignment_needed
4248 and preferred_stack_boundary here.
4249 (stack_protect_prologue): Update.
4250 (stack_protect_epilogue): Update.
4251 (expand_function_start): Initialize stack_alignment_needed,
4252 preferred_stack_boundary and max_jumptable_ents.
4253 (expand_function_end): Update.
4254 (free_after_compilation): Do not NULLify epilogue_delay_list.
4255 * function.h (struct rtl_data): Add stack_protect_guard,
4256 stack_alignment_needed,
4257 preferred_stack_boundary, epilogue_delay_list.
4258 (struct function): Remove value_histograms, stack_alignment_needed,
4259 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4260 last_label_uid,
4261 unexpanded_var_list, stack_protect_guard.
4262 (current_function_epilogue_delay_list): Remove.
4263 * ipa-type-escape.c (analyze_function): Update.
4264 * gimplify.c (pop_gimplify_context): Update comment.
4265 * calls.c (expand_call): Update.
4266 (emit_library_call_value_1): Update.
4267 * except.c (set_nothrow_function_flags): Update.
4268 * cfgexpand.c (get_decl_align_unit): Update.
4269 (create_stack_guard): Update.
4270 (estimated_stack_frame_size): Update.
4271 (expand_used_vars): Update.
4272 (tree_expand_cfg): Free histogram earliers, init expansion variables.
4273 * explow.c (allocate_dynamic_stack_space): Update.
4274 * tree-ssa-live.c (remove_unused_locals): Update.
4275 * varasm.c (mark_constant_pool): Update.
4276 * tree-inline.c (remap_decls): Update.
4277 (initialize_cfun): Update.
4278 (declare_return_variable): Update.
4279 (inline_forbidden_p): Update.
4280 (expand_call_inline): Update.
4281 (declare_inline_vars): Update.
4282 (tree_function_versioning): Update.
4283 * tree-flow.h (value_histograms): New.
4284 (VALUE_HISTOGRAMS): New macro.
4285 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4286 last_label_uid.
4287 * tree-cfg.c (set_bb_for_stmt): Update.
4288 (replace_by_duplicate_decl): Update.
4289 (move_block_to_fn): Update.
4290 (new_label_mapper): Update.
4291 (dump_function_to_file): Update.
4292 * ipa-struct-reorg.c (build_data_structure): Update.
4293 * cfgrtl.c (print_rtl_with_bb): Update.
4294 * reload1.c (reload): Update.
4295 (reload): Update.
4296 * config/i386/i386.c (setup_incoming_varargs_64,
4297 ix86_compute_frame_layout): Update.
4298 * config/arc/arc.c (arc_output_function_epilogue): Update.
4299
4300 2008-04-18 Marius Strobl <marius@FreeBSD.org>
4301
4302 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4303 for FreeBSD as well.
4304 * gthr-posix95.h: Likewise.
4305
4306 2008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
4307
4308 PR rtl-optimization/35838
4309 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4310 out the byte offset of the first subreg.
4311
4312 2008-04-17 Uros Bizjak <ubizjak@gmail.com>
4313
4314 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4315 to split_ti instead of three separate calls with single member arrays.
4316 (subti3 splitter): Ditto.
4317 (adddi3 splitter): Ditto with split_di.
4318 (subdi3 splitter): Ditto.
4319 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4320 two separate calls with single member arrays. Swap match_dup
4321 operands 1 and 2 to better fit into the array.
4322 (negdi2 splitter): Ditto with split_di.
4323 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
4324 two separate calls with single member arrays. Swap match_dup operands
4325 6 and 7 to better fit into the array.
4326
4327 2008-04-17 H.J. Lu <hongjiu.lu@intel.com>
4328
4329 * config/i386/i386.c (sse_builtin_type): New.
4330 (bdesc_sse_args): Likewise.
4331 (bdesc_sse_3arg): Removed.
4332 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4333 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4334 IX86_BUILTIN_ROUNDPS.
4335 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
4336 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
4337 IX86_BUILTIN_ROUNDPS.
4338 (ix86_expand_sse_4_operands_builtin): Removed.
4339 (ix86_expand_sse_operands_builtin): New.
4340 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4341 and CODE_FOR_sse4_1_roundps.
4342 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4343 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
4344
4345 2008-04-17 Alan Modra <amodra@bigpond.net.au>
4346
4347 PR target/35907
4348 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4349 regs before frame pop when needed. If use_backchain_to_restore_sp
4350 then load backchain into a temp reg to restore vr and vrsave. Add
4351 code to restore vr after frame pop if possible.
4352
4353 2008-04-17 Richard Guenther <rguenther@suse.de>
4354
4355 * tree-vn.c (expressions_equal_p): Do not check type
4356 equality or compatibility before calling operand_equal_p.
4357 * fold-const.c (operand_equal_p): Check equivalence of
4358 integer constants before bailing out due to signedness or
4359 precision differences.
4360 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4361 spurious differences in type qualification. Ignore types
4362 for COMPONENT_REFs at all.
4363
4364 2008-04-17 Christian Bruel <christian.bruel@st.com>
4365
4366 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4367 msw_skip comparison.
4368
4369 2008-04-16 Jakub Jelinek <jakub@redhat.com>
4370
4371 PR c/35739
4372 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4373 reg type.
4374
4375 PR tree-optimization/35899
4376 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4377 rather than TREE_OPERAND.
4378
4379 2008-04-16 Uros Bizjak <ubizjak@gmail.com>
4380
4381 PR target/35944
4382 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4383 temporary registers. Change operand predicate to general_operand.
4384 (remainderxf3): Ditto.
4385
4386 2008-04-16 Richard Guenther <rguenther@suse.de>
4387
4388 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4389 * tree-affine.c (aff_combination_expand): Look through some
4390 conversions.
4391
4392 2008-04-15 Doug Kwan <dougkwan@google.com>
4393
4394 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4395 for hex printing.
4396 * tree-pretty-print.c (dump_generic_node): Ditto.
4397 * final.c (output_addr_const): Ditto.
4398 * dwarf2out.c (output_cfi): Ditto.
4399 * c-pretty-print.c (pp_c_integer_constant): Ditto.
4400 * print-rtl.c (print_rtx): Ditto.
4401 * print-tree.c (print_node_brief, print_node): Ditto.
4402 * c-common.c (match_case_to_enum_1): Ditto.
4403 * sched-vis.c (print_value): Ditto.
4404 * config/i386/i386.c (print_operand): Cast to long unsigned int
4405 for hex printing.
4406
4407 2008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
4408 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
4409 MS Windows VirtualProtect function.
4410
4411 2008-04-15 Jan Hubicka <jh@suse.cz>
4412
4413 * gengtype.c (write_root): Param_is argument is OK.
4414 * expr.c (expand_expr_real_1): Update call of get_exception_*.
4415 * function.h: Include varray.h
4416 (rtl_eh): New stucture based on except.c one.
4417 (call_site_record): New forward declaration and vector type.
4418 * calls.c (emit_call_1): Do not call
4419 note_current_region_may_contain_throw.
4420 * except.c (eh_status): Remove cur_region, try_region since they are
4421 unused.
4422 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4423 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4424 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
4425 Remove call_site_data_used, call_site_data_size.
4426 Turn call_site_record into vector in function.h.
4427 (note_current_region_may_contain_throw): Remove.
4428 (get_exception_pointer, get_exception_filter): Do not take struct
4429 function argument; update.
4430 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4431 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4432 build_post_landing_pads, dw2_build_landing_pads,
4433 sjlj_assign_call_site_values, sjlj_mark_call_sites,
4434 sjlj_emit_function_enter, sjlj_emit_function_enter,
4435 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4436 sjlj_build_landing_pads, finish_eh_generation,
4437 remove_exception_handler_label, remove_eh_handler,
4438 maybe_remove_eh_handler, add_reachable_handler,
4439 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4440 add_action_record, collect_one_action_chain, add_call_site,
4441 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4442 sjlj_output_call_site_table, output_function_exception_table,
4443 * except.h (note_current_region_may_contain_throw): Remove
4444 (get_exception_pointer, get_exception_filter): Do not take struct
4445 function argument.
4446 * Makefile.in (GTFILES): Put varargs before struct function.
4447
4448 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
4449
4450 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4451 punt for STRING_CST.
4452 (get_constraint_for): Deal with STRING_CST here instead.
4453
4454 2008-04-15 Richard Guenther <rguenther@suse.de>
4455
4456 * tree-ssa-propagate.c (substitute_and_fold): Substitute
4457 statements in a basic-block with a backward walk. Do not
4458 substitute into dead statements but instead remove those.
4459
4460 2008-04-15 Richard Guenther <rguenther@suse.de>
4461
4462 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4463 to zero, thus disable creation of SFTs.
4464
4465 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
4466
4467 * tree-predcom.c (suitable_reference_p): Return false if the
4468 reference can throw.
4469
4470 2008-04-15 Jakub Jelinek <jakub@redhat.com>
4471
4472 PR c/35751
4473 * c-decl.c (finish_decl): If extern or static var has variable
4474 size, set TREE_TYPE (decl) to error_mark_node.
4475
4476 2008-04-15 Rafael Espindola <espindola@google.com>
4477
4478 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4479 variable arg1.
4480
4481 2008-04-15 Richard Guenther <rguenther@suse.de>
4482
4483 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4484 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4485 (visit_reference_op_load): Do walk vuse-vdef chains on
4486 vn_reference_lookup.
4487 (visit_reference_op_store): But do not here.
4488 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4489 vn_reference_lookup.
4490 (vn_lookup_with_vuses): But do so here.
4491
4492 2008-04-14 Ian Lance Taylor <iant@google.com>
4493
4494 * fold-const.c (fold_overflow_warning): Remove assertion.
4495
4496 2008-04-15 Ben Elliston <bje@au.ibm.com>
4497
4498 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4499 temp1 local variables.
4500
4501 2008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
4502
4503 PR target/35661
4504 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4505 ".text.unlikely" section as executable.
4506
4507 2008-04-14 James E. Wilson <wilson@tuliptree.org>
4508
4509 * config/ia64/ia64.c (rtx_needs_barrier): Handle
4510 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4511 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4512 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4513 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4514 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4515 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4516
4517 2008-04-14 Ian Lance Taylor <iant@google.com>
4518
4519 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4520 * fold-const.c (fold_comparison): If appropriate, test
4521 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4522 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4523 reassociating a pointer type.
4524 * doc/invoke.texi (Optimize Options): Document that
4525 -fstrict-overflow applies to pointer wraparound.
4526
4527 2008-04-13 Jan Hubicka <jh@suse.cz>
4528
4529 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4530
4531 2008-04-12 Andrew Pinski <pinskia@gmail.com>
4532
4533 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4534 we are going to "save the world".
4535
4536 2008-04-13 Hans-Peter Nilsson <hp@axis.com>
4537
4538 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4539 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4540 operand 0 constraint, not "=".
4541
4542 2008-04-11 James E. Wilson <wilson@tuliptree.org>
4543
4544 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4545
4546 2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
4547
4548 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4549 of size of positions_needed * CHAR_BIT.
4550
4551 2008-04-11 H.J. Lu <hongjiu.lu@intel.com>
4552
4553 PR middle-end/35897
4554 * dse.c (store_info): Change positions_needed to unsigned
4555 HOST_WIDE_INT.
4556 (lowpart_bitmask): New.
4557 (record_store): Cast to unsigned HOST_WIDE_INT for
4558 positions_needed. Assert width <= size of positions_needed *
4559 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
4560 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
4561 lowpart_bitmask to set mask.
4562
4563 2008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
4564
4565 * config/bfin/constraints.md: New file.
4566 * config/bfin/bfin.md: Include it.
4567 (adddi3): Use satisfies_constraint functions instead of the old macros.
4568 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4569 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4570 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4571 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4572 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4573 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4574 EXTRA_CONSTRAINT): Delete.
4575 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4576 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4577 of the old macros.
4578 * config/bfin/bfin.c: Include "tm-constrs.h".
4579 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4580 Use satisfies_constraint functions instead of the old macros.
4581 * doc/md.texi (Blackfin Constraints): Update file name reference.
4582
4583 2008-04-11 Richard Guenther <rguenther@suse.de>
4584
4585 PR tree-optimization/35869
4586 * tree-vrp.c (execute_vrp): Move switch statement update after
4587 jump threading. Schedule another cfg cleanup run.
4588
4589 2008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
4590
4591 PR c/35744
4592 * attribs.c (decl_attributes): Return early on errorneous node.
4593
4594 2008-04-10 Oleg Ryjkov <olegr@google.com>
4595
4596 * tree.h (struct tree_base): Added a new flag default_def_flag.
4597 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4598
4599 2008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
4600
4601 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4602
4603 2008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4604
4605 PR target/35768
4606 * pa.md: Define mode iterator P. Define mode attribute dwc.
4607 (dcacheflush): Update pattern to use iterator P and attribute dwc.
4608 (icacheflush): Likewise.
4609 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4610 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4611
4612 2008-04-11 Ben Elliston <bje@au.ibm.com>
4613
4614 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4615
4616 2008-04-10 Rafael Espindola <espindola@google.com>
4617
4618 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4619 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4620 (extract_range_from_expr): The same.
4621
4622 2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
4623
4624 * config/mips/mips.md (GPR2): New mode iterator.
4625 (seq): Add comment.
4626 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4627 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4628 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4629 Rewrite these to take two modes, the mode of comparison and the
4630 mode of the destination.
4631 * config/mips/mips.c (mips_expand_scc): Instead of having
4632 paradoxical subreg as destination, expand "narrowing" scc if mode
4633 of comparison is SI and target is requested in DI mode.
4634 (mips_emit_int_order_test): Update comment. Make mode of
4635 comparison match CMP0 rather than TARGET. When creating inverse
4636 target use mode of TARGET.
4637
4638 2008-04-10 Adam Nemet <anemet@caviumnetworks.com>
4639
4640 * gcov-dump.c (tag_summary): Only print summaries for the first
4641 GCOV_COUNTERS_SUMMABLE counters.
4642
4643 2008-04-10 Uros Bizjak <ubizjak@gmail.com>
4644
4645 * config/i386/i386.md (absneg): New code iterator.
4646 (absnegprefix): New code attribute.
4647 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4648 patterns using absneg code iterator.
4649 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4650 using absneg code iterator.
4651 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4652 *neg<mode>2 patterns using absneg code iterator.
4653 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4654 *negextendsfdf2 patterns using absneg code iterator.
4655 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4656 *negextendsfxf2 patterns using absneg code iterator.
4657 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4658 *negextendsfdf2 patterns using absneg code iterator.
4659 * config/i386/sse.md (<code><mode>2): Macroize expander from
4660 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
4661
4662 2008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
4663
4664 * config/s390/s390.h: Remove the remains of the recent search
4665 & replace action of current_function_outgoing_args_size.
4666
4667 2008-04-10 Ira Rosen <irar@il.ibm.com>
4668
4669 PR tree-optimization/35821
4670 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4671 NEW_STMT_LIST is not NULL.
4672
4673 2008-04-09 David Edelsohn <edelsohn@gnu.org>
4674
4675 PR libstdc++/35597
4676 * toplev.c (process_options): Remove -ffunction-sections debugging
4677 warning.
4678
4679 2008-04-09 Peter Bergner <bergner@vnet.ibm.com>
4680
4681 PR middle-end/PR28690
4682 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4683 than gen_rtx_fmt_ee to perform more canonicalizations.
4684
4685 2008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4686
4687 PR driver/35665
4688 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4689
4690 2008-04-09 Richard Guenther <rguenther@suse.de>
4691
4692 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4693 (dump_function_to_file): Dump function arguments with types.
4694
4695 2008-04-08 Richard Guenther <rguenther@suse.de>
4696
4697 * fold-const.c (fold_widened_comparison): Do not allow
4698 sign-changes that change the result.
4699
4700 2008-04-08 Janis Johnson <janis187@us.ibm.com>
4701
4702 PR target/35839
4703 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4704 kinds of indirect references.
4705
4706 2008-04-08 David Edelsohn <edelsohn@gnu.org>
4707
4708 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4709 GNU Fortran language string.
4710
4711 2008-04-08 Rafael Espindola <espindola@google.com>
4712
4713 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4714 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4715 * tree.h (tree_call_nonnegative_warnv_p): New.
4716
4717 2008-04-08 Jan Hubicka <jh@suse.cz>
4718
4719 * function.c (free_after_compilation): Clear out regno_reg_rtx
4720 pointer.
4721
4722 2008-04-08 Peter Bergner <bergner@vnet.ibm.com>
4723
4724 Revert
4725 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
4726
4727 PR middle-end/PR28690
4728 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4729 same precedence as REG_POINTER and MEM_POINTER operands.
4730
4731 2008-04-08 Richard Guenther <rguenther@suse.de>
4732
4733 PR middle-end/35834
4734 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4735 for adding index to base.
4736
4737 2008-04-08 Kai Tietz <kai.tietz@onevision.com>
4738
4739 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4740 (MINGW_ENABLE_EXECUTE_STACK): New.
4741 (IN_LIBGCC2): For libgcc include windows.h file for
4742 function declarations.
4743
4744 2008-04-08 Hans-Peter Nilsson <hp@axis.com>
4745
4746 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4747 and tem2 if tem1 is not a REG or MULT.
4748
4749 2008-04-08 Jan Hubicka <jh@suse.cz>
4750
4751 * function.h (incomming_args): Break out of struct function.
4752 (function_subsections): Break out of struct function.
4753 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4754 return_rtx and hard_reg_initial_vals from struct function.
4755 Kill inl_max_label_num.
4756 (current_function_pops_args, current_function_args_info,
4757 current_function_args_size, current_function_args_size,
4758 current_function_pretend_args_size,
4759 current_function_outgoing_args_size,
4760 current_function_internal_arg_pointer, current_function_return_rtx):
4761 Kill compatibility accestor macros.
4762 * builtins.c (expand_builtin_apply_args_1): Update.
4763 (expand_builtin_next_arg): Update.
4764 * df-scan.c (df_get_call_refs): Update.
4765 * dbxout.c (dbxout_function_end): Update.
4766 * dwarf2out.c (dwarf2out_switch_text_section): Update.
4767 (output_line_info): Update.
4768 (secname_for_decl): Update.
4769 (dwarf2out_var_location): Update.
4770 * function.c (free_after_compilation): Update.
4771 (assign_parm_find_stack_rtl): Update.
4772 (assign_parms): Update.
4773 (expand_dummy_function_end): Update.
4774 (expand_function_end): Update.
4775 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4776 (expand_call): Update.
4777 (emit_library_call_value_1): Update.
4778 (store_one_arg): Update.
4779 * varasm.c (initialize_cold_section_name): Update.
4780 (unlikely_text_section): Update.
4781 (unlikely_text_section_p): Update.
4782 (assemble_start_function): Update.
4783 (assemble_end_function): Update.
4784 (default_section_type_flags): Update.
4785 (switch_to_section): Update.
4786 * integrate.c (set_decl_abstract_flags): Update.
4787 (get_hard_reg_initial_val): Update.
4788 (has_hard_reg_initial_val): Update.
4789 (allocate_initial_values): Update.
4790 * resource.c (init_resource_info): Update.
4791 * config/alpha/alpha.c (NUM_ARGS): Update.
4792 (direct_return): Update.
4793 (alpha_va_start): Update.
4794 (alpha_sa_size): Update.
4795 (alpha_initial_elimination_offset): Update.
4796 (alpha_expand_prologue): Update.
4797 (alpha_start_function): Update.
4798 (alpha_expand_epilogue): Update.
4799 (unicosmk_initial_elimination_offset):
4800 * config/alpha/alpha.md (call expander): Update.
4801 * config/s390/s390.c (s390_register_info): Update.
4802 (s390_register_info): Update.
4803 (s390_frame_info): Update.
4804 (s390_initial_elimination_offset): Update.
4805 (s390_build_builtin_va_list): Update.
4806 (s390_va_start): Update.
4807 * config/spu/spu.c (direct_return): Update.
4808 (spu_expand_prologue): Update.
4809 (spu_initial_elimination_offset): Update.
4810 (spu_build_builtin_va_list): Update.
4811 (spu_va_start): Update.
4812 * config/sparc/sparc.c (sparc_init_modes): Update.
4813 (sparc_compute_frame_size): Update.
4814 (function_value): Update.
4815 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4816 * config/i386/i386.md (return expander): Update.
4817 * config/i386/i386.c (ix86_va_start): Update.
4818 (ix86_can_use_return_insn_p): Update.
4819 (ix86_compute_frame_layout): Update.
4820 (ix86_expand_epilogue): Update.
4821 * config/sh/sh.c (output_stack_adjust): Update.
4822 (calc_live_regs): Update.
4823 (sh_expand_prologue): Update.
4824 (sh_builtin_saveregs): Update.
4825 (sh_va_start): Update.
4826 (initial_elimination_offset): Update.
4827 (sh_allocate_initial_value): Update.
4828 (sh_function_ok_for_sibcall): Update.
4829 (sh_get_pr_initial_val): Update.
4830 * config/sh/sh.md (return expander): Update.
4831 * config/avr/avr.c (frame_pointer_required_p): UPdate.
4832 * config/crx/crx.c (crx_compute_frame): UPdate.
4833 (crx_initial_elimination_offset): UPdate.
4834 * config/xtensa/xtensa.c (compute_frame_size): Update
4835 (xtensa_builtin_saveregs): Update.
4836 (xtensa_va_start): Update.
4837 (order_regs_for_local_alloc): Update.
4838 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4839 (xstormy16_expand_builtin_va_start): Update.
4840 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4841 * config/m68hc11/m68hc11.md (return expanders): Update.
4842 * config/m68hc11/m68hc11.c (expand_prologue): Update.
4843 (expand_epilogue): Update.
4844 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4845 (cris_simple_epilogue): Update.
4846 (cris_expand_prologue): Update.
4847 (cris_expand_epilogue): Update.
4848 * config/iq2000/iq2000.c (iq2000_va_start): Update.
4849 (compute_frame_size): Update.
4850 * config/mt/mt.c (mt_compute_frame_size): Update.
4851 * config/mn10300/mn10300.c (expand_prologue): Update.
4852 (expand_epilogue): Update.
4853 (initial_offset): Update.
4854 (mn10300_builtin_saveregs):
4855 * config/mn10300/mn10300.md (return expander): Update.
4856 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4857 (ia64_initial_elimination_offset): Update.
4858 (ia64_initial_elimination_offset): Update.
4859 (ia64_expand_prologue): Update.
4860 * config/m68k/m68k.md (return expander): Update.
4861 * config/rs6000/rs6000.c (rs6000_va_start): Update.
4862 (rs6000_stack_info): Update.
4863 * config/mcore/mcore.c (layout_mcore_frame): Update.
4864 (mcore_expand_prolog): Update.
4865 * config/arc/arc.c (arc_compute_frame_size): Update.
4866 * config/score/score3.c (score3_compute_frame_size): Update.
4867 * config/score/score7.c (score7_compute_frame_size): Update.
4868 * config/arm/arm.c (use_return_insn): Update.
4869 (thumb_find_work_register): Update.
4870 (arm_compute_save_reg_mask): Update.
4871 (arm_output_function_prologue): Update.
4872 (arm_output_epilogue): Update.
4873 (arm_size_return_regs): Update.
4874 (arm_get_frame_offsets): Update.
4875 (arm_expand_prologue): Update.
4876 (thumb_exit): Update.
4877 (thumb_unexpanded_epilogue): Update.
4878 (thumb1_output_function_prologue): Update.
4879 * config/pa/pa.md (return expander): Update.
4880 * config/pa/pa.c (compute_frame_size): Update.
4881 (hppa_builtin_saveregs): Update.
4882 * config/mips/mips.c (mips_va_start): Update.
4883 (mips16_build_function_stub): Update.
4884 (mips_compute_frame_info): Update.
4885 (mips_restore_gp): Update.
4886 (mips_output_function_prologue): Update.
4887 (mips_expand_prologue): Update.
4888 * config/v850/v850.c (compute_frame_size): Update.
4889 (expand_prologue): * config/mmix/mmix.c (along): update.
4890 (mmix_initial_elimination_offset): update.
4891 (mmix_reorg): update.
4892 (mmix_use_simple_return): update.
4893 (mmix_expand_prologue): update.
4894 (mmix_expand_epilogue): Update.
4895 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4896 (emit_link_insn): Update.
4897
4898 2008-04-08 Anatoly Sokolov <aesok@post.ru>
4899
4900 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
4901 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
4902 instructions.
4903 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
4904 atmega103 device.
4905
4906 2008-04-07 Jan Hubicka <jh@suse.cz>
4907
4908 * function.h (rtl): Rename to x_rtl.
4909 (crtl): New define.
4910 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4911 frame_offset, stack_check_probe_note, arg_pointer_save_area,
4912 used_temp_slots avail_temp_slots, temp_slot_level,
4913 nonlocal_goto_handler_labels): Update accesstors.
4914 (rtl): New global variable.
4915 (struct function): Move some fileds to rtl_data.
4916 (get_arg_pointer_save_area): Update prototype.
4917 * builtins.c (expand_builtin_setjmp_receiver): Update call of
4918 get_arg_pointer_save_area.
4919 * expr.c (init_expr): Update
4920 * function.c (get_frame_size): Update
4921 (assign_stack_local): Update
4922 (expand_function_end): Update.
4923 (get_art_pointer_save_area): Update
4924 * function.h
4925 * emit-rtl.c (rtl): Declare.
4926 (regno_reg_rtx): Declare.
4927 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4928 Update.
4929 (gen_reg_rtx): Update.
4930 * varasm.c (n_deferred_constatns): Update accestor.
4931 (init_varasm_status): Do not allocate varasm_status.
4932 (force_const_mem, get_pool_size, output_constant_pool): Update.
4933 * stmt.c (force_label_rtx): Do not use x_ prefixes.
4934 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4935 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4936 * sparc/sparc.h (INIT_EXPANDERS): Update.
4937 * ia64/ia64.h (INIT_EXPANDERS): Update.
4938
4939 2008-04-07 James E. Wilson <wilson@tuliptree.org>
4940
4941 * reload.c (push_secondary_reload): Add missing break to for loop.
4942
4943 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
4944
4945 PR middle-end/PR28690
4946 * rtlanal.c: Update copyright years.
4947 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4948 as REG_POINTER and MEM_POINTER operands.
4949 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4950 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4951 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4952 * gcse.c: Update copyright years.
4953 (pre_delete): Call gen_reg_rtx_and_attrs.
4954 (hoist_code): Likewise.
4955 (build_store_vectors): Likewise.
4956 (delete_store): Likewise.
4957 * loop-invariant.c (move_invariant_reg): Likewise.
4958 Update copyright years.
4959
4960 2008-04-07 Uros Bizjak <ubizjak@gmail.com>
4961
4962 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4963 control string instead of quoted.
4964
4965 2008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
4966
4967 * doc/rtl.texi: Rewrite of subreg section.
4968
4969 2008-04-07 Kai Tietz <kai.tietz@onevision.com>
4970
4971 PR/35842
4972 * config/i386/i386.c (legitimize_pic_address): Add treating
4973 of dllimport SYM_REF's.
4974 (legitimize_dllimport_symbol): Add prototype.
4975
4976 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
4977
4978 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
4979 reference in constructor with non self-referential type.
4980
4981 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
4982
4983 Removal of Return with Depressed Stack Pointer support
4984 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4985 (ECF_SP_DEPRESSED): Likewise.
4986 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4987 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4988 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4989 (expand_call): Do not test ECF_SP_DEPRESSED.
4990 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4991 * function.c (keep_stack_depressed): Delete.
4992 (handle_epilogue_set): Likewise.
4993 (update_epilogue_consts): Likewise.
4994 (emit_equiv_load): Likewise.
4995 (thread_prologue_and_epilogue_insns): Remove support for Return with
4996 Depressed Stack Pointer.
4997 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4998
4999 2008-04-06 Richard Guenther <rguenther@suse.de>
5000
5001 PR tree-optimization/35400
5002 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
5003 information from SSA_NAMEs.
5004
5005 2008-04-06 Anatoly Sokolov <aesok@post.ru>
5006
5007 * config/avr/avr.h (avr_mega_p): Remove declaration.
5008 (AVR_MEGA): Remove macro.
5009 * config/avr/avr.c (avr_mega_p): Remove variable.
5010 (avr_override_options): Remove inicializion of avr_mega_p.
5011 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5012 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
5013 (avr_jump_mode): (Ditto.).
5014 (avr_output_progmem_section_asm_op): (Ditto.).
5015 (avr_asm_init_sections): (Ditto.).
5016 (avr_asm_init_sections): (Ditto.).
5017 (avr_rtx_costs): (Ditto.).
5018 * config/avr/avr.md: (Ditto.).
5019 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
5020 '__AVR_MEGA__'.
5021
5022 2008-04-06 Richard Guenther <rguenther@suse.de>
5023
5024 PR tree-optimization/35842
5025 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
5026 is_gimple_invariant_address.
5027
5028 2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5029
5030 * gcc.c (default_compilers): Sync Fortran extensions list with
5031 that in fortran/lang-specs.h.
5032 * doc/invoke.texi: Likewise.
5033 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
5034 * dwarf2out.c (gen_compile_unit_die): Likewise.
5035
5036 2008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
5037
5038 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
5039
5040 2008-04-05 Uros Bizjak <ubizjak@gmail.com>
5041
5042 PR target/12329
5043 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
5044 attribute is used for nested functions.
5045
5046 2008-04-05 Jan Hubicka <jh@suse.cz>
5047
5048 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
5049
5050 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
5051 letter argument.
5052 (dump_files): Update.
5053 (enable_rtl_dump_file): Do not accept letter argument.
5054 * tree-pass.h (dump_file_info): Remove letter argument.
5055 * toplev.c (decode_d_option): Update -da handling.
5056 * toplev.h (enable_rtl_dump_file): Update prototype.
5057 * passes.c (register_one_dump_file): Do not accept IPA argument; work
5058 it out based on pass type.
5059 (register_dump_files_1): Likewise.
5060 (init_optimization_passes): Update register_one_dump_file calls.
5061 (execute_one_pass): Sanity check that IPA passes are called at IPA
5062 level and RTL passes at RTL level.
5063 (execute_pass_list): IPA pass can not be after or subpass of
5064 GIMPLE/RTL pass.
5065 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
5066 disallov RTL subpasses of IPA subpasses.
5067
5068 2008-04-05 Ben Elliston <bje@au.ibm.com>
5069
5070 * tree-cfg.c (need_fake_edge_p): Return false for calls to
5071 builtins that return exactly once and do not throw. Cache call to
5072 call_expr_flags.
5073
5074 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
5075
5076 PR rtl-optimization/34916
5077 PR middle-end/35519
5078 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
5079 between instruction pairs.
5080
5081 2008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
5082
5083 * doc/invoke.texi: Document -mbitops for SH.
5084 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
5085 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
5086 * config/sh/sh.c (print_operand): Add %t operand code.
5087 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
5088 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
5089 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
5090 (extendqihi2): Likewise.
5091 (movqi_i): Likewise.
5092 (insv): Use bset, bclr and bst instructions for SH2A if possible.
5093 (extv): Use bld instruction for SH2A if possible.
5094 (extzv): Likewise.
5095 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
5096 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
5097 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
5098 (bset.b, bclr.b): Define peepholes.
5099 * config/sh/sh.opt (mbitops): New option.
5100
5101 2008-04-04 Janis Johnson <janis187@us.ibm.com>
5102
5103 PR target/35620
5104 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5105 and view convert expression.
5106
5107 2008-04-04 Jakub Jelinek <jakub@redhat.com>
5108
5109 PR target/35364
5110 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5111
5112 2008-04-04 H.J. Lu <hongjiu.lu@intel.com>
5113
5114 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5115
5116 * config/i386/cpuid.h (bit_AES): New.
5117 (bit_PCLMUL): Likewise.
5118
5119 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5120 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
5121 SSE2 if AES or PCLMUL is enabled.
5122 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5123 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5124 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5125 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5126 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5127 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5128 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5129 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5130 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5131 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5132 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5133 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5134 __builtin_ia32_aeskeygenassist128 and
5135 __builtin_ia32_pclmulqdq128.
5136 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5137 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5138 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
5139
5140 * config/i386/i386.h (TARGET_AES): New.
5141 (TARGET_PCLMUL): Likewise.
5142 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5143
5144 * config/i386/i386.md (UNSPEC_AESENC): New.
5145 (UNSPEC_AESENCLAST): Likewise.
5146 (UNSPEC_AESDEC): Likewise.
5147 (UNSPEC_AESDECLAST): Likewise.
5148 (UNSPEC_AESIMC): Likewise.
5149 (UNSPEC_AESKEYGENASSIST): Likewise.
5150 (UNSPEC_PCLMUL): Likewise.
5151
5152 * config/i386/i386.opt (maes): New.
5153 (mpclmul): Likewise.
5154
5155 * config/i386/sse.md (aesenc): New pattern.
5156 (aesenclast): Likewise.
5157 (aesdec): Likewise.
5158 (aesdeclast): Likewise.
5159 (aesimc): Likewise.
5160 (aeskeygenassist): Likewise.
5161 (pclmulqdq): Likewise.
5162
5163 * config/i386/wmmintrin.h: New.
5164
5165 * doc/extend.texi: Document AES and PCLMUL built-in function.
5166
5167 * doc/invoke.texi: Document -maes and -mpclmul.
5168
5169 2008-04-04 Paolo Bonzini <bonzini@gnu.org>
5170
5171 * function.c (free_after_parsing): Replace with
5172 cxx_push_function_context from C++ front-end.
5173 (allocate_struct_function): Don't call langhook.
5174 * langhooks.h (struct lang_hooks_for_functions): Delete.
5175 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5176 member "function".
5177 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5178 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5179 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5180 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5181 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5182 remove LANG_HOOKS_FUNCTION_INITIALIZER.
5183 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5184
5185 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5186 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5187
5188 2008-04-04 Jakub Jelinek <jakub@redhat.com>
5189
5190 PR c/35440
5191 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5192 for all types.
5193
5194 2008-04-04 Richard Guenther <rguenther@suse.de>
5195
5196 PR middle-end/35823
5197 * fold-const.c (optimize_minmax_comparison): Use the correct
5198 type for the constant in the simplified comparison.
5199
5200 2008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
5201
5202 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5203 Pass L2 size as "--param l2-cache-size" to the compiler.
5204 (decode_l2_cache): New function to decode L2 cache parameters using
5205 0x8000006 extended cpuid function.
5206 (detect_caches_amd): Determine parameters of L2 cache using
5207 decode_l2_caches function.
5208 (decode_caches_intel): Decode L2 cache parameters.
5209 (detect_caches_intel): Determine L2 cache parameters using
5210 decode_caches_intel and decode_l2_caches functions.
5211
5212 2008-04-03 Bob Wilson <bob.wilson@acm.org>
5213
5214 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5215 secondary input reload for subword loads from the constant pool.
5216
5217 2008-04-03 Janis Johnson <janis187@us.ibm.com>
5218
5219 PR target/35713
5220 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5221 constants of the appropriate size for runtime calculations.
5222
5223 PR c/35712
5224 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5225 decimal-float literal constant zero.
5226
5227 2008-04-03 Jakub Jelinek <jakub@redhat.com>
5228
5229 PR c/35738
5230 * c-parser.c (c_parser_omp_atomic): Call
5231 default_function_array_conversion on the RHS.
5232
5233 PR middle-end/35818
5234 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5235 call is_variable_sized if decl has incomplete type.
5236
5237 2008-04-03 H.J. Lu <hongjiu.lu@intel.com>
5238
5239 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5240
5241 2008-04-03 Adam Nemet <anemet@caviumnetworks.com>
5242
5243 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5244 iterators.
5245 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
5246 (sgt<u>): Merge sgt and sgtu into new expander.
5247 (sgt, sgtu): Remove expanders.
5248 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
5249 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5250 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5251 *sgtu_<mode>_mips16 into new pattern.
5252 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5253 (sge<u>): Merge sge and sgeu into new expander.
5254 (sge, sgeu): Remove expanders.
5255 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5256 new pattern.
5257 (*sge_<mode>, second *sge_<mode>): Remove patterns.
5258 (slt<u>): Merge slt and sltu into new expander.
5259 (slt, sltu): Remove expanders.
5260 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
5261 (*slt_<mode>, *sltu_<mode>): Remove patterns.
5262 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5263 *sltu_<mode>_mips16 into new pattern.
5264 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5265 (sle<u>): Merge sle and sleu into new expander.
5266 (sle, sleu): Remove expanders.
5267 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
5268 (*sle_<mode>, *sleu_<mode>): Remove patterns.
5269 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5270 *sleu_<mode>_mips16 into new pattern.
5271 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5272
5273 2008-04-03 Jan Hubicka <jh@suse.cz>
5274
5275 PR tree-optimization/35795
5276 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5277 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5278 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5279 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5280 * score/score3.c (score3_output_mi_thunk): Likewise.
5281 * score/score7.c (score7_output_mi_thunk): Likewise.
5282 * mips/mips.c (mips_output_mi_thunk): Likewise.
5283
5284 2008-04-03 Richard Guenther <rguenther@suse.de>
5285
5286 * tree-vrp.c (extract_range_from_unary_expr): Handle all
5287 conversions. Simplify code.
5288
5289 2008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
5290
5291 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5292
5293 2008-04-03 Tom Tromey <tromey@redhat.com>
5294 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5295
5296 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5297 * config/bfin/t-bfin-linux (generated_files): Add
5298 linux-sysroot-suffix.h.
5299 * doc/install.texi (Prerequisites): Require make 3.80.
5300 * doc/sourcebuild.texi (Front End Directory): Document new
5301 variable.
5302 * Makefile.in (generated_files): New variable.
5303 (ALL_HOST_OBJS): New variable.
5304 ($(ALL_HOST_OBJS)): New target.
5305
5306 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
5307
5308 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5309 (remap_block): Call id->transform_lang_insert_block instead
5310 of langhook.
5311 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5312 Set id.transform_lang_insert_block to NULL.
5313 (clone_body): Move to cp/optimize.c
5314 * tree-inline.h (struct copy_body_data): Change
5315 transform_lang_insert_block to function pointer.
5316 (copy_generic_body, copy_decl_no_change): Export.
5317 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5318 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5319 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5320
5321 * c-tree.h (insert_block): Kill.
5322 * c-decl.c (insert_block): Kill.
5323
5324 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
5325
5326 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5327 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5328 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5329 argument.
5330 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5331 argument, call {push,pop}_function_context from here.
5332 * c-parser.c: Use c_{push,pop}_function_context.
5333
5334 * function.c (push_function_context_to): Move meat ...
5335 (push_function_context): ... here. Simplify.
5336 * function.c (pop_function_context_from): Move meat ...
5337 (pop_function_context): ... here. Simplify.
5338 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5339 leave_nested).
5340 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5341 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5342 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5343 * tree.h (push_function_context_to, pop_function_context_from): Remove.
5344
5345 2008-04-03 Ben Elliston <bje@au.ibm.com>
5346
5347 * expmed.c (extract_force_align_mem_bit_field): Remove.
5348
5349 2008-04-03 Richard Guenther <rguenther@suse.de>
5350
5351 PR middle-end/35800
5352 * expr.h (try_casesi): Adjust prototype.
5353 * expr.c (try_casesi): Take fallback label as extra parameter.
5354 Use that for gen_casesi if default_label is NULL.
5355 * stmt.c (expand_case): Pass fallback label to try_casesi,
5356 make sure to fill gaps with a fallback label if default_label
5357 is not present.
5358
5359 2008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
5360
5361 PR target/35801
5362 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5363
5364 2008-04-03 Ben Elliston <bje@au.ibm.com>
5365
5366 * expmed.c (extract_split_bit_field): Remove if (0) code.
5367 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5368 (do_ds_constraint): Likewise.
5369
5370 2008-04-02 Joseph Myers <joseph@codesourcery.com>
5371
5372 * doc/cppopts.texi (-dU): Document.
5373 * c-common.h (flag_dump_macros): Update comment.
5374 * c-opts.c (handle_OPT_d): Handle -dU.
5375 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5376 dump_queued_macros, cb_used_define, cb_used_undef): New.
5377 (init_pp_output): Handle -dU.
5378 (cb_line_change): Call dump_queued_macros.
5379 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5380
5381 2008-04-02 Anatoly Sokolov <aesok@post.ru>
5382
5383 * config/avr/predicates.md (io_address_operand): New predicate.
5384 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5385 * config/avr/avr.c (avr_io_address_p): Remove function.
5386 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
5387 'avr_io_address_p' function.
5388 (out_movhi_r_mr): (Ditto.).
5389 (out_movqi_mr_r): (Ditto.).
5390 (out_movhi_mr_r): (Ditto.).
5391 (avr_address_cost): (Ditto.).
5392
5393 2008-04-02 Uros Bizjak <ubizjak@gmail.com>
5394
5395 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5396 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5397 in 32bit mode when XMM registers are available to avoid store
5398 forwarding stalls.
5399 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5400 corresponding post-reload splitters.
5401
5402 2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
5403
5404 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5405 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
5406 __builtin_ia32_roundss.
5407 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5408 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5409 __builtin_ia32_roundss.
5410 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5411 IX86_BUILTIN_SHUFPD here.
5412
5413 2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
5414
5415 * config/i386/i386.md (plogic): New.
5416 (plogicprefix): Likewise.
5417
5418 * config/i386/mmx.md (mmx_<code><mode>3): New.
5419 (mmx_and<mode>3): Removed.
5420 (mmx_ior<mode>3): Likewise.
5421 (mmx_xor<mode>3): Likewise.
5422
5423 * config/i386/sse.md (<code><mode>3): New.
5424 (*<code><mode>3): Likewise.
5425 (*<code><mode>3): Likewise.
5426 (<code><mode>3): Likewise.
5427 (*sse_<code><mode>3): Likewise.
5428 (*sse2_<code><mode>3): Likewise.
5429 (<code>tf3): Likewise.
5430 (*<code>tf3): Likewise.
5431 (and<mode>3): Likewise.
5432 (*and<mode>3): Likewise.
5433 (ior<mode>3): Removed.
5434 (*ior<mode>3): Likewise.
5435 (xor<mode>3): Likewise.
5436 (*xor<mode>3): Likewise.
5437 (*and<mode>3): Likewise.
5438 (*ior<mode>3): Likewise.
5439 (*xor<mode>3): Likewise.
5440 (and<mode>3): Likewise.
5441 (*sse_and<mode>3): Likewise.
5442 (*sse2_and<mode>3): Likewise.
5443 (andtf3): Likewise.
5444 (*andtf3): Likewise.
5445 (ior<mode>3): Likewise.
5446 (*sse_ior<mode>3): Likewise.
5447 (*sse2_ior<mode>3): Likewise.
5448 (iortf3): Likewise.
5449 (*iortf3): Likewise.
5450 (xor<mode>3): Likewise.
5451 (*sse_xor<mode>3): Likewise.
5452 (*sse2_xor<mode>3): Likewise.
5453 (xortf3): Likewise.
5454 (*xortf3): Likewise.
5455
5456 2008-04-02 Richard Guenther <rguenther@suse.de>
5457
5458 PR tree-optimization/14495
5459 PR tree-optimization/34793
5460 * tree-vrp.c (struct switch_update): New structure.
5461 (to_remove_edges, to_update_switch_stmts): New VECs.
5462 (simplify_switch_using_ranges): New function. Remove not taken
5463 case labels and edges.
5464 (simplify_stmt_using_ranges): Call it.
5465 (identify_jump_threads): Mark edges we have queued for removal
5466 so we don't thread them.
5467 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5468 case label vector.
5469 * tree-cfg.c (group_case_labels): Deal with missing default label.
5470 (tree_verify_flow_info): Allow missing default label.
5471 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5472 (emit_case_nodes): Likewise.
5473 (expand_case): Do not rely on the default label to be present.
5474 * expr.c (try_casesi): Deal with NULL default_label.
5475 (do_tablejump): Likewise.
5476
5477 2008-04-02 Richard Guenther <rguenther@suse.de>
5478
5479 PR tree-optimization/14495
5480 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5481 SWITCH_EXPR here ...
5482 (vrp_visit_switch_stmt): ... but here (new function).
5483 (find_case_label_index): New helper function.
5484 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5485
5486 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
5487
5488 * fwprop.c: Fix ISO-C99ism.
5489
5490 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
5491
5492 PR bootstrap/35752
5493 * Makefile.in (objdir): Set it here.
5494 * configure.ac: Not here. Find dynamic linker characteristics.
5495 * exec-tool.in: Use them.
5496 * aclocal.m4: Regenerate.
5497 * configure: Regenerate.
5498
5499 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
5500
5501 * expr.c (expand_var): Delete it.
5502 * expr.h (expand_var): Delete prototype.
5503 * function.c (expand_function_start): Use expand_decl instead.
5504 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5505 langhook.
5506
5507 2008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
5508
5509 PR rtl-optimization/35542
5510 * fwprop.c (forward_propagate_and_simplify): Replace
5511 loc_reg_mentioned_in_p with reg_mentioned_p.
5512
5513 2008-04-02 Paolo Bonzini <bonzini@gnu.org>
5514
5515 PR rtl-optimization/35281
5516 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5517 (propagate_rtx_1): Handle PR_HANDLE_MEM.
5518 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5519 (varying_mem_p): Move above propagate_rtx.
5520 (all_uses_available_at): Do not check MEMs.
5521
5522 2008-04-02 Rafael Espindola <espindola@google.com>
5523
5524 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5525 (register_edge_assert_for_2): Split the cond argument.
5526 (register_edge_assert_for_1): Adjust for the change in
5527 register_edge_assert_for_2.
5528 (register_edge_assert_for): Split the cond argument.
5529 (find_switch_asserts): Adjust for the change in
5530 register_edge_assert_for.
5531
5532 2008-04-02 Kai Tietz <kai.tietz@onevision.com>
5533
5534 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5535 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5536 offsets for 64-bit mingw.
5537 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5538 abi for x86_64-pc-mingw.
5539
5540 2008-04-02 Richard Guenther <rguenther@suse.de>
5541
5542 * tree-vrp.c (extract_range_from_assert): Make sure to not
5543 produce range min/max with TREE_OVERFOW set.
5544 If merging a anti-range and a range keep the anti-range if
5545 the range covers all values of the type.
5546 (register_edge_assert_for_2): Only allow sign-changing
5547 conversions in detecting canonical range checks. Also
5548 register an assert for the unsigned name if useful.
5549
5550 PR tree-optimization/35787
5551 * tree-vrp.c (vrp_val_max): New function.
5552 (vrp_val_min): Likewise.
5553 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5554 (vrp_val_is_min): Likewise.
5555 (supports_overflow_infinity): Use vrp_val_{min,max}.
5556 (negative_overflow_infinity): Likewise.
5557 (positive_overflow_infinity): Likewise.
5558 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5559 (is_positive_overflow_infinity): Likewise.
5560 (is_overflow_infinity): Likewise.
5561 (avoid_overflow_infinity): Use vrp_val_{min,max} and
5562 vrp_val_is_{min,max}.
5563 (set_and_canonicalize_value_range): Canonicalize anti-ranges
5564 to ranges if possible. Avoid empty ranges.
5565
5566 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5567
5568 PR middle-end/35705
5569 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5570 the expression is a function address.
5571
5572 2008-04-01 George Helffrich <george@gcc.gnu.org>
5573
5574 PR fortran/35154, fortran/23057
5575 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5576 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5577 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5578 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5579 in common.
5580 (dbxout_syms): Check for COMMON-based symbol and wrap in
5581 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5582 in bracket for efficiency.
5583
5584 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5585 using DW_TAG_common_block + member offset.
5586 (add_pubname_string): New function.
5587 (dw_expand_expr): New function to find block name and offset for
5588 COMMON var.
5589 (common_check): New function to check whether symbol in Fortran COMMON.
5590 (gen_variable_die): If COMMON, use DW_TAG_common_block.
5591
5592 2008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
5593
5594 PR c/35436
5595 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5596
5597 2008-04-02 Ben Elliston <bje@au.ibm.com>
5598
5599 * config/v850/v850.md (casesi): Remove if (0) code.
5600 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5601 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5602
5603 2008-04-01 Uros Bizjak <ubizjak@gmail.com>
5604
5605 * config/i386/i386.md (rex64suffix): New mode attribute.
5606 (floathi<mode>2): Disable expander for SSE math.
5607 (*floathi<mode>2_1): New insn insn_and_split pattern.
5608 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5609 corresponding post-reload splitters.
5610 (*floathi<mode>2_i387): New macroized insn pattern.
5611 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5612 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5613 insn_and_split pattern.
5614 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5615 New macroized instruction patterns and corresponding post-reload
5616 splitters.
5617 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5618 and corresponding post-reload splitters.
5619 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5620 New macroized instruction patterns.
5621 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5622 macroized instruction patterns and corresponding post-reload splitters.
5623 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5624 corresponding post-reload splitters.
5625 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5626 New macroized instruction patterns.
5627 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5628 corresponding post-reload splitters.
5629 (*floatsi<mode>2_i387): New macroized instruction patterns.
5630
5631 2008-04-01 H.J. Lu <hongjiu.lu@intel.com>
5632
5633 * config/i386/i386.md (smaxmin): New.
5634 (umaxmin): Likewise.
5635 (maxminiprefix): Likewise.
5636 (maxminfprefix): Likewise.
5637 (<code><mode>3): Likewise.
5638 (smin<mode>3): Removed.
5639 (smax<mode>3): Likewise.
5640
5641 * config/i386/mmx.md (mmx_<code>v2sf3): New.
5642 (mmx_<code>v4hi3): Likewise.
5643 (mmx_<code>v8qi3): Likewise.
5644 (mmx_smaxv2sf3): Removed.
5645 (mmx_sminv2sf3): Likewise.
5646 (mmx_umaxv8qi3): Likewise.
5647 (mmx_smaxv4hi3): Likewise.
5648 (mmx_uminv8qi3): Likewise.
5649 (mmx_sminv4hi3): Likewise.
5650
5651 * config/i386/sse.md (<addsub><mode>3): New.
5652 (*<addsub><mode>3): Likewise.
5653 (<sse>_vm<addsub><mode>3): Likewise.
5654 (<maxmin><mode>3): Likewise.
5655 (*<maxmin><mode>3_finite): Likewise.
5656 (*<maxmin><mode>3): Likewise.
5657 (<sse>_vm<maxmin><mode>3): Likewise.
5658 (sse3_h<addsub>v4sf3): Likewise.
5659 (sse3_h<addsub>v2df3): Likewise.
5660 (<maxmin>v16qi3): Likewise.
5661 (*<maxmin>v16qi3): Likewise.
5662 (<maxmin>v8hi3): Likewise.
5663 (*<maxmin>v8hi3): Likewise.
5664 (*sse4_1_<maxmin><mode>3): Likewise.
5665 (*sse4_1_<maxmin><mode>3): Likewise.
5666 (add<mode>3): Removed.
5667 (*add<mode>3): Likewise.
5668 (<sse>_vmadd<mode>3): Likewise.
5669 (sub<mode>3): Likewise.
5670 (*sub<mode>3): Likewise.
5671 (<sse>_vmsub<mode>3): Likewise.
5672 (smin<mode>3): Likewise.
5673 (*smin<mode>3_finite): Likewise.
5674 (*smin<mode>3): Likewise.
5675 (<sse>_vmsmin<mode>3): Likewise.
5676 (smax<mode>3): Likewise.
5677 (*smax<mode>3_finite): Likewise.
5678 (*smax<mode>3): Likewise.
5679 (<sse>_vmsmax<mode>3): Likewise.
5680 (sse3_haddv4sf3): Likewise.
5681 (sse3_haddv2df3): Likewise.
5682 (sse3_hsubv4sf3): Likewise.
5683 (sse3_hsubv2df3): Likewise.
5684 (umaxv16qi3): Likewise.
5685 (*umaxv16qi3): Likewise.
5686 (smaxv8hi3): Likewise.
5687 (*smaxv8hi3): Likewise.
5688 (*sse4_1_smax<mode>3): Likewise.
5689 (*sse4_1_umax<mode>3): Likewise.
5690 (uminv16qi3): Likewise.
5691 (*uminv16qi3): Likewise.
5692 (sminv8hi3): Likewise.
5693 (*sminv8hi3): Likewise.
5694 (*sse4_1_smin<mode>3): Likewise.
5695 (*sse4_1_umin<mode>3): Likewise.
5696
5697 2008-04-01 Rafael Espindola <espindola@google.com>
5698
5699 * tree-cfg.c (verify_expr): remove in_phi.
5700 (verify_stmt): Don't call walk_tree with verify_expr. Use
5701 is_gimple_min_invariant instead of is_gimple_val.
5702
5703 2008-04-01 Joseph Myers <joseph@codesourcery.com>
5704
5705 * doc/include/gpl_v3.texi: Update for manpage generation.
5706 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5707 gpl.texi.
5708 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5709 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5710 gpl_v3.texi instead of gpl.texi.
5711 (gpl.pod): New.
5712
5713 2008-04-01 Jakub Jelinek <jakub@redhat.com>
5714
5715 PR pch/13675
5716 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5717
5718 2008-04-01 Rafael Espindola <espindola@google.com>
5719
5720 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5721 (extract_code_and_val_from_cond): Use
5722 extract_code_and_val_from_cond_with_ops.
5723
5724 2008-04-01 Jan Hubicka <jh@suse.cz>
5725
5726 * function.c (free_after_compilation): Free epilogue_delay_list.
5727 (prepare_function_start): Assert that previous compilation was freed.
5728
5729 2008-04-01 Jan Hubicka <jh@suse.cz>
5730 Jim Wilson <wilson@tuliptree.org>
5731 Andreas Tobler <andreast@gcc.gnu.org>
5732
5733 PR middle-end/35781
5734 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5735 rtl.emit instead cfun->emit.
5736 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5737 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5738
5739 2008-04-01 Ben Elliston <bje@au.ibm.com>
5740
5741 * doc/c-tree.texi (Function Basics): Fix grammatical error.
5742
5743 2008-03-31 Seongbae Park <seongbae.park@gmail.com>
5744
5745 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5746 New options
5747 (fprofile-use): Add var flag_profile_use
5748 * coverage.c (coverage_begin_output): Do not open a gcno file for
5749 output only if -ftest-coverage is set.
5750 Do not add getpwd() to gcda file path.
5751 (build_gcov_info): Check the new flag
5752 flag_profile_datafile_relative_path.
5753 (coverage_init): Use profile_data_prefix.
5754 Read profile counter only if flag_profile_use is set.
5755 * opts.c (common_handle_option): New option fprofile-use=,
5756 fprofile-dir=, fprofile-generate=.
5757 * toplev.c (profile_data_prefix): New variable definition.
5758 * toplev.h (profile_data_prefix): New declaration.
5759 * doc/invoke.tex (Option Summary, Optimization Options):
5760 Add new options.
5761
5762 2008-03-31 James E. Wilson <wilson@tuliptree.org>
5763
5764 * varasm.c (output_constant_pool_1): In LABEL_REF check,
5765 use tmp consistently.
5766
5767 PR target/35695
5768 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5769 * config/ia64/ia64.c (rtx_needs_barrier): Handle
5770 UNSPEC_FR_RECIP_APPROX_RES.
5771 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5772
5773 2008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
5774
5775 PR c/35750
5776 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5777
5778 2008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
5779
5780 PR middle-end/30186
5781 * fold-const.c (fold_indirect_ref_1): Support accessing non first
5782 element of the vector via a pointer.
5783
5784 2008-03-31 Ian Lance Taylor <iant@google.com>
5785
5786 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5787
5788 2008-03-31 Jan Hubicka <jh@suse.cz>
5789
5790 * builtins.c (expand_builtin_setjmp_receiver): Update call of
5791 get_arg_pointer_save_area.
5792 * expr.c (init_expr): Just clear out rtl.expr.
5793 * function.c (free_after_compilation): Clear out whole RTL structure.
5794 (get_func_frame_size): Merge into ...
5795 (get_frame_size): ... this one.
5796 (assign_stack_local_1): Merge into ...
5797 (assign_stack_local): ... this one.
5798 (expand_function_end): Update call of get_arg_pointer_save_area.
5799 (get_art_pointer_save_area): Remove cfun argument.
5800 * function.h (emit_status): regno_pointer_align does not need length
5801 attribute. Move x_regno_reg_rtx to ...
5802 (regno_reg_rtx): ... new global array.
5803 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5804 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5805 apply_args_value, forced_labels, stack_pointer_delta):
5806 Update accestors.
5807 (struct varasm_status): Move here from varasm.c
5808 (struct rtl_data): New. Move here some fields from struct function.
5809 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5810 frame_offset, stack_check_probe_note, arg_pointer_save_area,
5811 used_temp_slots avail_temp_slots, temp_slot_level,
5812 nonlocal_goto_handler_labels): Update accesstors.
5813 (rtl): New global variable.
5814 (struct function): Move some fileds to rtl_data.
5815 (get_arg_pointer_save_area): Update prototype.
5816 * emit-rtl.c (rtl): Declare.
5817 (regno_reg_rtx): Declare.
5818 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5819 Update.
5820 (gen_reg_rtx): Update.
5821 (init_virtual_regs): Do not tate emit_status argument.
5822 (init_emit): Do not allocate emit.
5823 * varasm.c (varasm_statuc): Move to function.h.
5824 (n_deferred_constatns): Update accestor.
5825 (init_varasm_status): Do not allocate varasm_status.
5826 (force_const_mem, get_pool_size, output_constant_pool): Update.
5827 * stmt.c (force_label_rtx): Do not use x_ prefixes.
5828 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5829
5830 2008-03-31 Zdenek Dvorak <ook@ucw.cz>
5831
5832 PR rtl-optimization/35729
5833 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5834 references.
5835
5836 2008-03-31 H.J. Lu <hongjiu.lu@intel.com>
5837
5838 PR target/32000
5839 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5840 load/store if memory is unaligned.
5841 (*movti_rex64): Likewise.
5842
5843 * config/i386/predicates.md (misaligned_operand): New.
5844
5845 2008-03-31 Andrew Pinski <pinskia@gmail.com>
5846
5847 PR tree-opt/35431
5848 * tree-ssa-phiopt.c (conditional_replacement): Return early for
5849 complex types.
5850
5851 2008-03-31 Jan Beulich <jbeulich@novell.com>
5852
5853 * config/ia64/constraints.md: Add 'j' constraint.
5854 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5855 (movdi_internal): Likewise.
5856
5857 2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
5858
5859 PR c/35748
5860 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5861
5862 2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
5863
5864 PR target/35757
5865 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5866 proper error message for the third argument on blendpd and
5867 blendps.
5868
5869 * config/i386/sse.md (blendbits): New.
5870 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5871
5872 2008-03-30 Eric Botcazou <ebotcazou@adacore.com>
5873
5874 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5875
5876 2008-03-30 Richard Guenther <rguenther@suse.de>
5877
5878 PR middle-end/31023
5879 * fold-const.c (fold_sign_changed_comparison): Do leave
5880 conversions to base-types alone.
5881
5882 2008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
5883
5884 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5885 the link register if one altivec register is be saved.
5886
5887 2008-03-30 Ben Elliston <bje@au.ibm.com>
5888
5889 * final.c (final_scan_insn): Remove if (0) code.
5890
5891 2008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
5892
5893 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5894
5895 2008-03-28 H.J. Lu <hongjiu.lu@intel.com>
5896
5897 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5898 of V4SFmode to ix86_binary_operator_ok.
5899
5900 2008-03-28 Uros Bizjak <ubizjak@gmail.com>
5901
5902 * config/i386/i386.c (override_options): Initialize
5903 ix86_veclib_handler to ix86_veclibabi_svml when
5904 -mveclibabi=svml is used.
5905 (ix86_veclibabi_svml): New function for SVML ABI style
5906 vectorization support.
5907 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5908
5909 2008-03-28 Rafael Espindola <espindola@google.com>
5910
5911 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5912 (tree_binary_nonnegative_warnv_p): Make it public.
5913 (tree_single_nonnegative_warnv_p): Make it public.
5914 (tree_invalid_nonnegative_warnv_p): Make it public.
5915 (tree_unary_nonzero_warnv_p): Make it public.
5916 (tree_binary_nonzero_warnv_p): Make it public
5917 (tree_single_nonzero_warnv_p): Make it public.
5918 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5919 (extract_range_from_binary_expr): Split the expr argument.
5920 (extract_range_from_unary_expr): Split the expr argument.
5921 (extract_range_from_comparison): Split the expr argument.
5922 (extract_range_from_expr): Use the new aux functions.
5923 (vrp_evaluate_conditional_warnv): Use
5924 vrp_evaluate_conditional_warnv_with_ops.
5925 * tree.h (tree_unary_nonzero_warnv_p): Declare.
5926 (tree_binary_nonzero_warnv_p): Declare.
5927 (tree_single_nonzero_warnv_p): Declare.
5928 (tree_expr_nonzero_warnv_p): Declare.
5929 (tree_unary_nonnegative_warnv_p): Declare.
5930 (tree_binary_nonnegative_warnv_p): Declare.
5931 (tree_single_nonnegative_warnv_p): Declare.
5932 (tree_invalid_nonnegative_warnv_p): Declare.
5933
5934 2008-03-28 Richard Guenther <rguenther@suse.de>
5935
5936 PR tree-optimization/30317
5937 PR tree-optimization/30911
5938 PR tree-optimization/34793
5939 * tree-vrp.c (set_and_canonicalize_value_range): New function.
5940 (struct assert_locus_d): New member EXPR.
5941 (register_new_assert_for): Add EXPR parameter to support
5942 ASSERT_EXPR <name, expr OP limit>.
5943 (register_edge_assert_for_1): Adjust callers.
5944 (find_assert_locations): Likewise.
5945 (process_assert_insertions_for): Build condition from expression.
5946 (extract_range_from_assert): Handle ASSERT_EXPRs
5947 of the form ASSERT_EXPR <name, expr OP limit>.
5948 (register_edge_assert_for_2): New helper registering
5949 asserts for comparisons. Recognize range tests of the form
5950 (unsigned)i - CST1 OP CST2.
5951 (register_edge_assert_for_1): Use it.
5952 (register_edge_assert_for): Likewise.
5953 (needs_overflow_infinity): Integer sub-types
5954 do not need overflow infinities.
5955 (vrp_val_is_max): The extreme values of integer sub-types
5956 are those of the base type.
5957 (vrp_val_is_min): Likewise.
5958 * tree.def (ASSERT_EXPR): Document extra allowed conditional
5959 expressions.
5960
5961 2008-03-28 Nick Clifton <nickc@redhat.com>
5962
5963 PR target/31110
5964 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5965 Return GENERAL_REGS for stack adjustment reloads.
5966
5967 2008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
5968
5969 PR target/31334
5970 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5971 const_vector when all the vectors are constant.
5972
5973 2008-03-27 Bob Wilson <bob.wilson@acm.org>
5974
5975 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5976 comparisons.
5977 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5978 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5979 (scc_sf): New.
5980 (s<code>_sf): Use new scc_sf attribute for opcode names.
5981
5982 2008-03-27 Tom Tromey <tromey@redhat.com>
5983
5984 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5985 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5986 config/spu/t-spu-elf, config/i386/t-interix,
5987 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5988 config/i386/x-darwin, config/i386/x-mingw32,
5989 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5990 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5991 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5992 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5993 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5994 config/rs6000/x-darwin, config/rs6000/t-rs6000,
5995 config/score/t-score-elf, config/arm/t-strongarm-pe,
5996 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5997 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5998 Revert automatic dependency patch.
5999
6000 2008-03-27 H.J. Lu <hongjiu.lu@intel.com>
6001
6002 PR target/35657
6003 * config/i386/i386.c (ix86_function_arg_boundary): Align
6004 decimal floating point to its natural boundary.
6005
6006 2008-03-27 Richard Guenther <rguenther@suse.de>
6007
6008 PR middle-end/35716
6009 * fold-const.c (fold_comparison): Restrict distinct decl
6010 comparison folding to VAR_DECLs and PARM_DECLs. Do not
6011 solely rely on operand_equal_p.
6012
6013 2008-03-27 Richard Guenther <rguenther@suse.de>
6014
6015 PR c/32511
6016 * c-common.c (handle_weak_attribute): Reject combination of
6017 weak and inline.
6018
6019 2008-03-27 Richard Guenther <rguenther@suse.de>
6020
6021 PR tree-optimization/32810
6022 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
6023 conversions from DECL_INITIAL.
6024 (fold_const_aggregate_ref): Likewise from constructor elements.
6025
6026 2008-03-27 Zdenek Dvorak <ook@ucw.cz>
6027
6028 * tree-affine.h (aff_combination_expand): Declare.
6029 (get_inner_reference_aff): Likewise.
6030 * tree-affine.c (aff_combination_expand): Split out from
6031 tree_to_aff_combination_expand.
6032 (get_inner_reference_aff): New function.
6033 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
6034 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
6035 (struct lim_aux_data): sm_done field removed.
6036 (mem_ref_loc_p, mem_ref_locs_p): New types.
6037 (struct mem_ref): Added id, stored, accesses_in_loop,
6038 indep_loop, dep_loop, indep_ref, dep_ref fields.
6039 Removed is_stored, locs and next fields.
6040 (memory_accesses): New variable.
6041 (movement_possibility): Do not allow moving statements
6042 that store to memory.
6043 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
6044 New functions.
6045 (determine_max_movement): For statements with memory references,
6046 find the outermost loop in that the reference is independent.
6047 (move_computations_stmt): Mark the virtual operands for renaming.
6048 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
6049 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
6050 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
6051 add_vop_ref_mapping, create_vop_ref_mapping_loop,
6052 create_vop_ref_mapping, analyze_memory_references,
6053 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
6054 get_all_locs_in_loop, ref_always_accessed_p,
6055 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
6056 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
6057 store_motion_loop, store_motion): New functions.
6058 (struct vop_to_refs_elt): New type.
6059 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
6060 memref_hash, memref_eq, hoist_memory_references): Rewritten.
6061 (schedule_sm): Replaced by...
6062 (execute_sm): ... this.
6063 (determine_lsm_ref, hoist_memory_references,
6064 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
6065 find_more_ref_vops, free_mem_ref, free_mem_refs,
6066 determine_lsm_loop, determine_lsm): Removed.
6067 (tree_ssa_lim_finalize): Free data structures used by store motion.
6068 (tree_ssa_lim): Call analyze_memory_references. Use
6069 store_motion instead of determine_lsm.
6070
6071 2008-03-27 Paolo Bonzini <bonzini@gnu.org>
6072
6073 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
6074 rename tmake_file to m68hc11/t-m68hc11.
6075 (mcore): Set inhibit_libc to true.
6076 * config.host (alpha*-dec-*vms*): Set extra_programs.
6077 (interix3*): Don't use host_xmake_file.
6078 * configure.ac: Let config.gcc override inhibit_libc.
6079 * configure: Regenerate.
6080
6081 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
6082 * config/t-openbsd-thread: Remove commented out lines.
6083
6084 * config/x-interix: Remove.
6085
6086 * config/m68hc11/t-m68hc11-gas: Rename to...
6087 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
6088
6089 * config/mcore/t-mcore: Remove T_CFLAGS.
6090 * config/mcore/t-mcore-pe: Likewise.
6091
6092 2008-03-27 Paolo Bonzini <bonzini@gnu.org>
6093
6094 * configure.ac: Replace custom __GNU_SOURCE test with
6095 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
6096 * aclocal.m4: Regenerate.
6097 * configure: Regenerate.
6098 * config.in: Regenerate.
6099
6100 2008-03-27 Richard Guenther <rguenther@suse.de>
6101
6102 * fold-const.c (target.h): Include.
6103 (fold_comparison): Fold comparison of addresses of decls
6104 that bind locally or of constants. Consolidate address folding code.
6105 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6106 results from fold_binary_to_constant.
6107 (compare_values_warnv): Likewise.
6108
6109 2008-03-27 Andrew Pinski <pinskia@gmail.com>
6110
6111 PR middle-end/35429
6112 * fold-const.c (fold_truthop): Check for integeral types when folding
6113 a == 0 && b == 0 and a != 0 || b != 0 .
6114
6115 2008-03-26 Eric Botcazou <ebotcazou@adacore.com>
6116
6117 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6118
6119 2008-03-26 Andreas Schwab <schwab@suse.de>
6120
6121 * doc/invoke.texi: Fix use of @item vs. @itemx.
6122
6123 2008-03-26 Tom Tromey <tromey@redhat.com>
6124
6125 * Makefile.in (build/gensupport.o, build/print-rtl.o,
6126 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6127 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6128 build/gencodes.o, build/genconditions.o, build/genconfig.o,
6129 build/genconstants.o, build/genemit.o, build/genextract.o,
6130 build/genflags.o, build/genmddeps.o, build/genopinit.o,
6131 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6132 options.h.
6133
6134 2008-03-26 Richard Guenther <rguenther@suse.de>
6135
6136 Revert
6137 2008-03-26 Richard Guenther <rguenther@suse.de>
6138
6139 * fold-const.c (target.h): Include.
6140 (fold_comparison): Fold comparison of addresses of two decls
6141 that bind locally. Consolidate address folding code.
6142
6143 2008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6144
6145 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6146 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6147 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6148 dconstsqrt2, dconstthird, dconste and/or dconst10.
6149 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6150 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6151 dconstsqrt2, dconste): Delete.
6152 (init_emit_once): Likewise. Simplify initializing dconstm1.
6153 Constify variable.
6154 * real.c (get_real_const): New.
6155 * real.h (dconst3, dconst10, dconstm2, dconstthird,
6156 dconstsqrt2, dconste): Delete.
6157 (real_value_const, get_real_const): New.
6158
6159 2008-03-26 H.J. Lu <hongjiu.lu@intel.com>
6160
6161 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6162
6163 * config/i386/i386.c (ix86_function_arg_boundary): Check
6164 BIGGEST_ALIGNMENT instead of 128.
6165 (setup_incoming_varargs_64): Likewise.
6166
6167 2008-03-26 Tom Tromey <tromey@redhat.com>
6168
6169 * Makefile.in (DEPFILES): Add missing '/'.
6170
6171 2008-03-26 Richard Guenther <rguenther@suse.de>
6172
6173 * fold-const.c (target.h): Include.
6174 (fold_comparison): Fold comparison of addresses of two decls
6175 that bind locally. Consolidate address folding code.
6176
6177 2008-03-26 Nick Clifton <nickc@redhat.com>
6178
6179 PR target/31232
6180 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6181 not allow INT+INT as a legitimate addressing mode.
6182
6183 2008-03-26 Richard Guenther <rguenther@suse.de>
6184
6185 * tree-flow.h (widen_bitfield): Remove declaration.
6186 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6187 (widen_bitfield): Remove function.
6188 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6189 code.
6190
6191 2008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
6192
6193 PR target/31558
6194 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6195 error_mark_node's.
6196
6197 2008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
6198
6199 PR rtl-optimization/35232
6200 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6201 (forget_old_reloads_1, forget_marked_reloads): Don't clear
6202 reg_reloaded_call_part_clobbered here.
6203 (reload_regs_reach_end_p): New function.
6204 (reload_reg_rtx_for_input): New variable.
6205 (reload_reg_rtx_for_output): Likewise.
6206 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6207 when reassigning a pseudo register. Load reloadreg from
6208 reload_reg_rtx_for_input, moving the mode and register
6209 calculation to...
6210 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
6211 instead of the original when deciding whether an input reload
6212 would be a no-op or whether an output reload can be deleted.
6213 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6214 when setting up new_spill_reg_store. Load it from
6215 reload_reg_rtx_for_output, moving the mode and register
6216 calculation to...
6217 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
6218 instead of the original when deciding whether an output reload
6219 would be a no-op. Do the same when modifying insn notes.
6220 Use rtx_equal_p instead of == to compare the registers.
6221 (inherit_piecemeal_p): Take a mode and two register numbers
6222 as argument.
6223 (emit_reload_insns): Clear new_spill_reg_store for every hard
6224 register in the reload register. Remove spill registers
6225 from reg_reloaded_valid before considering whether to record
6226 inheritance information for them. Use reload_reg_rtx_for_output
6227 instead of reg_rtx when recording output reloads. Use
6228 reload_reg_rtx_for_input instead of reg_rtx when recording
6229 input reloads. Set or clear reg_reloaded_call_part_clobbered
6230 at the same time as setting reg_reloaded_valid.
6231 (delete_output_reload): Add a new_reload_reg parameter and use it
6232 instead of rld[j].reg_rtx.
6233 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6234 calls accordingly.
6235
6236 2008-03-25 Tom Tromey <tromey@redhat.com>
6237
6238 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6239 (build/genattr.o): Likewise.
6240 (build/genattrtab.o): Likewise.
6241 (build/gencodes.o): Likewise.
6242 (build/genconfig.o): Likewise.
6243 (build/genconstants.o): Likewise.
6244 (build/genemit.o): Likewise.
6245 (build/genextract.o): Likewise.
6246 (build/genflags.o): Likewise.
6247
6248 2008-03-25 Bob Wilson <bob.wilson@acm.org>
6249
6250 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6251 instead of size_int for integer types.
6252 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
6253 to match type of MINUS_EXPR.
6254
6255 2008-03-25 Tom Tromey <tromey@redhat.com>
6256
6257 * configure: Rebuilt.
6258 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6259 Makefile.
6260
6261 2008-03-25 Tom Tromey <tromey@redhat.com>
6262
6263 * config/x-solaris (host-solaris.o): Update.
6264 * config/x-linux (host-linux.o): Update.
6265 * config/x-hpux (host-hpux.o): Update.
6266 * config/x-darwin (host-darwin.o): Update.
6267 * config/v850/t-v850e (v850-c.o): Update.
6268 * config/v850/t-v850 (v850-c.o): Update.
6269 * config/t-vxworks (vxworks.o): Update.
6270 * config/t-sol2 (sol2-c.o, sol2.o): Update.
6271 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
6272 * config/spu/t-spu-elf (spu-c.o): Update.
6273 (spu.o): Remove.
6274 * config/sh/t-symbian (sh-c.o): Update.
6275 (symbian.o): Update.
6276 * config/sh/t-sh (sh-c.o): Update.
6277 * config/score/t-score-elf (score7.o, score3.o): Update.
6278 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6279 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6280 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6281 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6282 (rs6000.o): Remove.
6283 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6284 * config/m32c/t-m32c (m32c-pragma.o): Update.
6285 * config/ia64/t-ia64 (ia64-c.o): Update.
6286 * config/i386/x-mingw32 (host-mingw32.o): Update.
6287 * config/i386/x-i386 (driver-i386.o): Update.
6288 * config/i386/x-darwin (host-i386-darwin.o): Update.
6289 * config/i386/x-cygwin (host-cygwin.o): Update.
6290 * config/i386/t-nwld (nwld.o): Update.
6291 * config/i386/t-netware (netware.o): Update.
6292 * config/i386/t-interix (winnt.o): Update.
6293 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6294 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6295 msformat-c.o): Update.
6296 * config/bfin/t-bfin-linux (generated_files): Add
6297 linux-sysroot-suffix.h.
6298 * config/arm/t-wince-pe (pe.o): Update.
6299 * config/arm/t-strongarm-pe (pe.o): Update.
6300 * config/arm/t-pe (pe.o): Update.
6301 * config/arm/t-arm (arm-c.o): Update.
6302 * doc/install.texi (Prerequisites): Require make 3.80.
6303 * Makefile.in: Remove .o targets.
6304 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6305 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6306 (simple_generated_h, simple_generated_c): Move earlier.
6307 (generated_files): New variable.
6308 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6309 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6310 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6311 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6312 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6313 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6314 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6315 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6316 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6317 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6318 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6319 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6320 (.c.o): Remove.
6321 (COMPILE.base, COMPILE): New variables.
6322 (%.o): New pattern rule.
6323 (ALL_HOST_OBJS): New variable.
6324 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6325 (dummy-checksum.o, cc1-checksum.o): Remove.
6326 (DRIVER_SHLIB): New variable.
6327 (DRIVER_DEFINES): Use it.
6328 (gencondmd.c): Move out of build/.
6329 (s-conditions): Update.
6330 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6331 (ALL_BUILD_OBJS): Likewise.
6332 (build/%.o): Use BUILDCOMPILE.
6333 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6334 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6335 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6336 build/gencheck.o, build/gencodes.o, build/genconditions.o,
6337 build/genconfig.o, build/genconstants.o, build/genemit.o,
6338 build/genextract.o, build/genflags.o, build/genmddeps.o,
6339 build/genopinit.o, build/genoutput.o, build/genpeep.o,
6340 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6341 build/gen-protos.o, build/scan.o, build/fix-header.o,
6342 build/scan-decls.o): Simplify.
6343 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6344 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6345 prefix.o, toplev.o): Reduce to variable setting.
6346 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
6347 ($(out_object_file), gcc-options.o): New targets.
6348 ($(ALL_HOST_OBJS)): New target. Include dependency files.
6349 * configure: Rebuilt.
6350 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6351 * doc/sourcebuild.texi (Front End Directory): Document new variable.
6352
6353 2008-03-25 Douglas Gregor <doug.gregor@gmail.com>
6354
6355 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6356 complain when we hit an error, return ERROR_MARK_NODE.
6357
6358 2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
6359
6360 * config/sh/constraints.md (Pso, Psz): New constraints.
6361 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6362 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6363
6364 2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
6365
6366 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6367 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6368
6369 2008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
6370
6371 * config/sh/sh.md (prefetch): Add condition for SH2A target.
6372 (prefetch_sh2a): New.
6373
6374 2008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
6375 Naveen.H.S <naveen.hs@kpitcummins.com>
6376
6377 * config/sh/constraints.md (I28): New constraint.
6378 * config/sh/sh.c (broken_move): Add support for movi20s.
6379 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6380
6381 2008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
6382 Jayant Sonar <Jayant.sonar@kpitcummins.com>
6383 Naveen.H.S <naveen.hs@kpitcummins.com>
6384
6385 * config/sh/sh.c (SH_ATTRIBUTES): Define.
6386 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6387 (print_operand): Handle resbank in %@ operand code.
6388 (sh_encode_section_info): New.
6389 (push_regs): Add conditions for resbank.
6390 (sh_expand_epilogue): Likewise.
6391 (sh_insert_attributes): Likewise.
6392 (sh_attribute_table): Likewise.
6393 (sh_handle_resbank_handler_attribute): New.
6394 (sh2a_handle_function_vector_handler_attribute): New.
6395 (sh2a_is_function_vector_call): New.
6396 (sh2a_get_function_vector_number): New.
6397 (sh2a_function_vector_p): New.
6398 (sh_cfun_resbank_handler_p): New.
6399 * config/sh/sh.md (calli): Emit jsr/n if possible.
6400 (calli_tbr_rel): New.
6401 (calli_pcrel): Emit jsr/n if possible.
6402 (return_i): Emit rts/n if possible.
6403 (call_valuei_tbr_rel): New.
6404 (call_valuei_pcrel): Add condition for SH2A target.
6405 (call_value): Likewise.
6406 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6407 (sh2a_get_function_vector_number): Likewise.
6408 (sh2a_is_function_vector_call): Likewise.
6409 * doc/extend.texi: Document TBR relative addressing of SH2A.
6410 (resbank): Add description for SH2A.
6411
6412 2008-03-24 Richard Guenther <rguenther@suse.de>
6413
6414 PR c/22371
6415 * gimplify.c (gimplify_modify_expr): For frontend type-correct
6416 pointer assignments change conversions according to middle-end rules.
6417 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6418 * configure.ac: Include type checking in yes.
6419 * configure: Regenerate.
6420
6421 2008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6422
6423 * diagnostic.c (diagnostic_count_diagnostic): Delete.
6424 (diagnostic_report_diagnostic): Update. Handle ICEs here.
6425
6426 2008-03-24 Nathan Sidwell <nathan@codesourcery.com>
6427
6428 * gthr-vxworks.h (UNUSED): Define.
6429
6430 2008-03-23 H.J. Lu <hongjiu.lu@intel.com>
6431
6432 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6433
6434 2008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
6435
6436 * doc/extend.texi (Function Attributes): Add missing comma in the
6437 example of the "alloc_size" attribute.
6438
6439 2008-03-23 Uros Bizjak <ubizjak@gmail.com>
6440
6441 Revert:
6442 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
6443
6444 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6445 32bit host.
6446
6447 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
6448
6449 PR target/35496
6450 * stor-layout.c (update_alignment_for_field): Set minimum alignment
6451 of the underlying type of a MS bitfield layout to the natural
6452 alignment of the type.
6453
6454 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
6455
6456 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6457 to their natural alignment to avoid store forwarding stalls.
6458
6459 2008-03-22 Richard Guenther <rguenther@suse.de>
6460
6461 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6462 For PHI nodes verify the address is invariant.
6463 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6464 (get_symbol_constant_value): Use is_gimple_min_invariant.
6465 (maybe_fold_stmt_indirect): Likewise.
6466
6467 2008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
6468
6469 PR rtl-optimization/33927
6470 * Makefile.in (dse.o): Depend on $(TM_P_H).
6471 * expr.h (extract_low_bits): Declare.
6472 * expmed.c (extract_low_bits): New function.
6473 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6474 * dse.c: Include tm_p.h.
6475 (find_shift_sequence): Remove the read_reg argument and return the
6476 read value. Emit the instructions instead of returning them.
6477 Iterate on new_mode rather than calculating it each time.
6478 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
6479 source to NEW_MODE and extract_low_bits to convert the shifted
6480 value to READ_MODE.
6481 (replace_read): Allow the load and store to have different mode
6482 classes. Use extract_low_bits when SHIFT == 0. Create the shift
6483 or extraction instructions before trying the replacement. Update
6484 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6485
6486 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
6487
6488 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6489 to their natural alignment to avoid store forwarding stalls.
6490
6491 2008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
6492
6493 PR target/27946
6494 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6495 encouraging but not allowing gprs for input;
6496 change the input constraint to !f#r.
6497 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6498 gprs for output;
6499 change the output constraint to !f#r.
6500
6501 2008-03-21 Uros Bizjak <ubizjak@gmail.com>
6502
6503 PR target/13958
6504 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6505 corresponding post-reload splitters.
6506 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6507 when x87 FP math is selected.
6508 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6509 New function prototype.
6510 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6511 unreachable function to ease macroization of insn patterns.
6512
6513 2008-03-21 Martin Jambor <mjambor@suse.cz>
6514
6515 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6516 reference dumps if ddr is NULL or dependence is unknown.
6517
6518 2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
6519
6520 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6521 unsigned extension into account.
6522 (ATOMIC_COMPARE_AND_SWAP): Likewise.
6523 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6524 Do computations on a scratch register.
6525
6526 2008-03-21 Richard Guenther <rguenther@suse.de>
6527
6528 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6529 Use is_gimple_min_invariant instead of TREE_INVARIANT.
6530 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6531 * tree-ssa-dom.c (record_equality): Likewise.
6532 * tree-inline.c (copy_body_r): Likewise.
6533 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6534 TREE_INVARIANT.
6535
6536 2008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
6537
6538 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6539 as 'delete_unused' argument.
6540
6541 2008-03-20 Richard Guenther <rguenther@suse.de>
6542
6543 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6544 special casing of constant qualifiers.
6545 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6546 care about them in general.
6547 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6548 regardless of their type.
6549 (fold_stmt_r): Forcefully fold *& if we end up with that.
6550
6551 2008-03-20 Paul Brook <paul@codesourcery.com>
6552
6553 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6554 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6555 linker flags.
6556 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6557 definition.
6558 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6559 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6560
6561 2008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
6562
6563 * common.opt (Wmudflap): New option.
6564 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6565 (mx_register_decls): Likewise.
6566 (mudflap_finish_file): Likewise.
6567 * doc/invoke.texi: Document -Wno-mudflap.
6568
6569 2008-03-20 Kai Tietz <kai.tietz@onevision.com>
6570
6571 * c-format.c (replace_format_name_to_system_name): New.
6572 (cmp_attribs): New.
6573 (convert_format_name_to_system_name): New.
6574 (decode_format_attr): Add use of convert_format_name_to_system_name.
6575 (format_types_orig): Add gnu_ prefix to names.
6576 (check_format_info_main): Special treating of \0 escaped names for
6577 supporting multi-character format specifiers as I32, I64.
6578 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6579 (gnu_target_overrides_format_attributes): New.
6580 * c-format.h: Add structure target_ovr_attr to hold
6581 system specific formatter names.
6582 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6583 msformat-c.o file to c_target_objs and cxx_target_objs.
6584 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6585 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6586 (TARGET_N_FORMAT_TYPES): New.
6587 * config/i386/msformat-c.c: New.
6588 * config/i386/t-cygming: Add build rule for msformat-c.o.
6589 * doc/extend.texi: Add new format names gnu_* and ms_* and
6590 further details.
6591 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6592
6593 2008-03-20 Ira Rosen <irar@il.ibm.com>
6594
6595 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6596 optimizations turned on under -O3.
6597 (ftree-vectorize): Add that the flag is turned on with -O3.
6598
6599 2008-03-20 Ben Elliston <bje@au.ibm.com>
6600
6601 * regmove.c (try_auto_increment): Fix spelling error in comment.
6602 * final.c (final_scan_insn): Likewise.
6603
6604 2008-03-20 Uros Bizjak <ubizjak@gmail.com>
6605
6606 PR target/14552
6607 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6608 allocator preferences for "y" and "r" class registers.
6609 ("*mov<mode>_internal"): Ditto.
6610 ("*movv2sf_internal_rex64"): Ditto.
6611 ("*movv2sf_internal"): Ditto.
6612
6613 2008-03-19 Michael Matz <matz@suse.de>
6614
6615 PR middle-end/35616
6616 * calls.c (expand_call): Check overlap of arguments with call
6617 address for sibcalls.
6618
6619 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
6620
6621 PR target/35496
6622 * stor-layout.c (update_alignment_for_field): Set minimum alignment
6623 of the underlying type of a MS bitfield layout to the natural
6624 alignment of the type.
6625
6626 2008-03-19 Jan Hubicka <jh@suse.cz>
6627
6628 PR other/35094
6629 * toplev.c (decode_d_option): Handle all CPP flags.
6630 * tree-vrp.c: Update tree_pass descriptors.
6631 * regrename.c: Update tree_pass descriptors.
6632 * fwprop.c: Update tree_pass descriptors.
6633 * doc/invoke.texi: Remove documentation of dropped -d? flags.
6634 * tree-into-ssa.c: Update tree_pass descriptors.
6635 * tree-dump.c: Update tree_pass descriptors.
6636 * tree-complex.c: Update tree_pass descriptors.
6637 * tree-dump.h: Update tree_pass descriptors.
6638 * see.c: Update tree_pass descriptors.
6639 * cgraphbuild.c: Update tree_pass descriptors.
6640 * tracer.c: Update tree_pass descriptors.
6641 * tree-loop-distribution.c: Update tree_pass descriptors.
6642 * cgraph.c: Update tree_pass descriptors.
6643 * postreload-gcse.c: Update tree_pass descriptors.
6644 * postreload.c: Update tree_pass descriptors.
6645 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6646 * tree-tailcall.c: Update tree_pass descriptors.
6647 * tree-pass.h (tree_opt_pass): Rename to ...
6648 (opt_pass) ... this one; add "type" field and remove letter field.
6649 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6650 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6651 all_lowering_passes): Update declaration.
6652 * ipa-cp.c: Update tree_pass descriptors.
6653 * final.c: Update tree_pass descriptors.
6654 * omp-low.c: Update tree_pass descriptors.
6655 * tree-ssa-dse.c: Update tree_pass descriptors.
6656 * ipa-reference.c: Update tree_pass descriptors.
6657 * tree-ssa-uncprop.c: Update tree_pass descriptors.
6658 * auto-inc-dec.c: Update tree_pass descriptors.
6659 * reorg.c: Update tree_pass descriptors.
6660 * cgraphunit.c: Update tree_pass descriptors.
6661 * tree-ssa-copyrename.c: Update tree_pass descriptors.
6662 * tree-ssa-ccp.c: Update tree_pass descriptors.
6663 * df-core.c: Update tree_pass descriptors.
6664 * mode-switching.c: Update tree_pass descriptors.
6665 * tree-nomudflap.c: Update tree_pass descriptors.
6666 * modulo-sched.c: Update tree_pass descriptors.
6667 * ipa-pure-const.c: Update tree_pass descriptors.
6668 * cse.c: Update tree_pass descriptors.
6669 * web.c: Update tree_pass descriptors.
6670 * tree-stdarg.c: Update tree_pass descriptors.
6671 * tree-ssa-math-opts.c: Update tree_pass descriptors.
6672 * tree-ssa-dom.c: Update tree_pass descriptors.
6673 * tree-nrv.c: Update tree_pass descriptors.
6674 * tree-ssa-alias.c: Update tree_pass descriptors.
6675 * loop-init.c: Update tree_pass descriptors.
6676 * gimple-low.c: Update tree_pass descriptors.
6677 * ipa-inline.c: Update tree_pass descriptors.
6678 * tree-ssa-sink.c: Update tree_pass descriptors.
6679 * global.c: Update tree_pass descriptors.
6680 * ifcvt.c: Update tree_pass descriptors.
6681 * jump.c: Update tree_pass descriptors.
6682 * predict.c: Update tree_pass descriptors.
6683 * tree-ssa-loop.c: Update tree_pass descriptors.
6684 * recog.c: Update tree_pass descriptors.
6685 * dse.c: Update tree_pass descriptors.
6686 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6687 * tree-eh.c: Update tree_pass descriptors.
6688 * regmove.c: Update tree_pass descriptors.
6689 * local-alloc.c
6690 * function.c: Update tree_pass descriptors.
6691 * tree-vectorizer.c: Update tree_pass descriptors.
6692 * gcse.c: Update tree_pass descriptors.
6693 * ipa-type-escape.c: Update tree_pass descriptors.
6694 * tree-if-conv.c: Update tree_pass descriptors.
6695 * init-regs.c: Update tree_pass descriptors.
6696 * ipa.c: Update tree_pass descriptors.
6697 * tree-ssa-phiopt.c: Update tree_pass descriptors.
6698 * rtl-factoring.c: Update tree_pass descriptors.
6699 * lower-subreg.c: Update tree_pass descriptors.
6700 * bt-load.c: Update tree_pass descriptors.
6701 * tree-dfa.c: Update tree_pass descriptors.
6702 * except.c: Update tree_pass descriptors.
6703 * emit-rtl.c: Update tree_pass descriptors.
6704 * cfgexpand.c: Update tree_pass descriptors.
6705 * tree-cfgcleanup.c: Update tree_pass descriptors.
6706 * cfgcleanup.c: Update tree_pass descriptors.
6707 * tree-ssa-pre.c: Update tree_pass descriptors.
6708 * tree-sra.c: Update tree_pass descriptors.
6709 * tree-mudflap.c: Update tree_pass descriptors.
6710 * tree-ssa-copy.c: Update tree_pass descriptors.
6711 * cfglayout.c: Update tree_pass descriptors.
6712 * tree-ssa-forwprop.c: Update tree_pass descriptors.
6713 * tree-ssa-dce.c: Update tree_pass descriptors.
6714 * tree-ssa.c: Update tree_pass descriptors.
6715 * regclass.c: Update tree_pass descriptors.
6716 * integrate.c: Update tree_pass descriptors.
6717 * tree-optimize.c: Update tree_pass descriptors.
6718 * tree-ssa-phiprop.c: Update tree_pass descriptors.
6719 * tree-object-size.c: Update tree_pass descriptors.
6720 * combine.c: Update tree_pass descriptors.
6721 * tree-outof-ssa.c: Update tree_pass descriptors.
6722 * bb-reorder.c: Update tree_pass descriptors.
6723 * stack-ptr-mod.c: Update tree_pass descriptors.
6724 * var-tracking.c: Update tree_pass descriptors.
6725 * tree-profile.c: Update tree_pass descriptors.
6726 * tree-vect-generic.c: Update tree_pass descriptors.
6727 * reg-stack.c: Update tree_pass descriptors.
6728 * sched-rgn.c: Update tree_pass descriptors.
6729 * tree-ssa-structalias.c: Update tree_pass descriptors.
6730 * tree-cfg.c: Update tree_pass descriptors.
6731 * passes.c (current_pass): Update declaration.
6732 (finish_optimization_passes): Update.
6733 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6734 (register_one_dump_file, register_dump_files_1, next_pass_1):
6735 Update arguments.
6736 (init_optimization_passes): Update handling of new types.
6737 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6738 * ipa-struct-reorg.c: Update tree_pass descriptors.
6739 * tree-ssa-reassoc.c: Update tree_pass descriptors.
6740 * combine-stack-adj.c: Update tree_pass descriptors.
6741 * cfgrtl.c: Update tree_pass descriptors.
6742 * dce.c: Update tree_pass descriptors.
6743 * tree-ssanames.c: Update tree_pass descriptors.
6744
6745 2008-03-19 Richard Guenther <rguenther@suse.de>
6746
6747 PR middle-end/35609
6748 * tree-ssa.c (walk_data): New structure.
6749 (warn_uninitialized_var): If not always_executed warn with "maybe"
6750 instead of "is".
6751 (execute_early_warn_uninitialized): Compute post-dominators.
6752 Initialize always_executed before processing each basic block.
6753
6754 2008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
6755
6756 PR target/35504
6757 * config/i386/i386.c (x86_this_parameter): Calculate correct location
6758 of "this" pointer when "regparm = N" or "fastcall" is in effect.
6759
6760 2008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6761
6762 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6763
6764 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
6765
6766 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6767 is true.
6768 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6769 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6770 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
6771 target after ignore has been set, and move there also the commputation
6772 of subtarget and original_target.
6773 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6774 (LANG_HOOKS_INITIALIZER): Remove it.
6775 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6776
6777 2008-03-18 Richard Guenther <rguenther@suse.de>
6778
6779 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6780 found an expression with constants, note that in the VN for the lhs.
6781 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6782 fold them to constants if possible. Run cleanup_cfg if done so.
6783 (execute_pre): Return todo.
6784 (do_pre): Likewise.
6785 (execute_fre): Likewise.
6786 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6787 of constants.
6788 (get_prop_source_stmt): Look through pointer conversions.
6789
6790 2008-03-18 Jan Hubicka <jh@suse.cz>
6791
6792 * tree-pretty-print.c: Include predict.h.
6793 (dump_generic_node): Dump predictor.
6794 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6795 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6796 * gimple-low.c (lower_stmt): Likewise.
6797 * expr.c (expand_expr_real): Likewise.
6798 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6799 them.
6800 (build_predict_expr, build_predict_expr): New.
6801 * predict.h (predictor_name, build_predict_expr): Update.
6802 * c-typeck.c (c_finish_bc_stmt): Add prediction.
6803 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6804 * predict.def (PRED_CONTINUE): Update hitrate.
6805 * tree.def (PREDICT_EXPR): Define.
6806 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6807 do not handle BIND_EXPR.
6808 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6809 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6810 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6811 operands.
6812
6813 2008-03-18 Michael Matz <matz@suse.de>
6814
6815 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6816
6817 2008-03-18 Richard Guenther <rguenther@suse.de>
6818
6819 * tree-gimple.h (is_gimple_invariant_address): Declare.
6820 (is_gimple_constant): Likewise.
6821 * tree-gimple.c (is_gimple_constant): New function.
6822 (is_gimple_invariant_address): Likewise.
6823 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6824 and is_gimple_invariant_address.
6825 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6826 previous change.
6827 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6828 an addressable base.
6829
6830 2008-03-18 Jakub Jelinek <jakub@redhat.com>
6831
6832 PR middle-end/35611
6833 * gimplify.c (gimplify_expr): Gimplify second operand of
6834 OMP_ATOMIC_LOAD.
6835
6836 2008-03-17 Richard Guenther <rguenther@suse.de>
6837
6838 PR tree-optimization/19637
6839 * fold-const.c (fold_unary): Remove restrictions of removing
6840 intermediate pointer-conversions (P2)(P1)P0.
6841 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6842 conversion to void pointer.
6843 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6844
6845 2008-03-16 James E. Wilson <wilson@tuliptree.org>
6846
6847 PR debug/31510
6848 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6849 emulated thread local variables.
6850
6851 2008-03-16 Richard Guenther <rguenther@suse.de>
6852
6853 PR middle-end/35607
6854 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6855 expand TREE_INVARIANT operations that are not gimple invariant.
6856
6857 2008-03-16 Hans-Peter Nilsson <hp@axis.com>
6858
6859 * doc/extend.texi (Alignment): Say that the ABI controls
6860 the __alignof__ for non-strict-alignment targets rather
6861 than being a recommendation.
6862
6863 2008-03-15 Paul Brook <paul@codesourcery.com>
6864
6865 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6866 annotations.
6867 (arm_output_fn_unwind): Mark functions that can not be unwound.
6868
6869 2008-03-15 Paul Brook <paul@codesourcery.com>
6870
6871 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6872 extension instructions.
6873
6874 2008-03-15 Richard Guenther <rguenther@suse.de>
6875
6876 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6877 and fold constant aggregate refs.
6878 (fold_const_aggregate_ref): Handle string constants
6879 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
6880 (evaluate_stmt): Simplify now that ccp_fold folds constant
6881 aggregate refs.
6882
6883 2008-03-15 Paul Brook <paul@codesourcery.com>
6884
6885 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6886 (extzv): Use gen_extzv_t2.
6887 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6888
6889 2008-03-15 Richard Guenther <rguenther@suse.de>
6890
6891 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6892 (fold_const_aggregate_ref): Likewise.
6893 (get_value): Return NULL if we don't have any values.
6894 (ccp_finalize): Set const_val to NULL after freeing it.
6895 * tree-flow.h (get_symbol_constant_value): Declare.
6896 (fold_const_aggregate_ref): Likewise.
6897 * tree-ssa-sccvn.c (try_to_simplify): Use them.
6898
6899 2008-03-15 Richard Guenther <rguenther@suse.de>
6900
6901 PR middle-end/35593
6902 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6903 to not produce negative array indices if not allowed. Add
6904 parameter to indicate that.
6905 (maybe_fold_offset_to_component_ref): Allow negative array
6906 indices only for the first member of a structure.
6907 (maybe_fold_offset_to_reference): Allow negative array indices.
6908 (maybe_fold_stmt_addition): Likewise.
6909
6910 2008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
6911 Anatoly Sokolov <aesok@post.ru>
6912
6913 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6914 (avr_arch): Add ARCH_AVR6.
6915 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6916 (initial_elimination_offset): Initialize and use 'avr_pc_size'
6917 instead of fixed value 2.
6918 (print_operand_address): Use gs() asm specifier instead of pm().
6919 (avr_assemble_integer): (Ditto.).
6920 (avr_output_addr_vec_elt): (Ditto.).
6921 (print_operand): Handle "!" code.
6922 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
6923 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6924 (AVR_HAVE_EIJMP_EICALL): Define.
6925 (AVR_3_BYTE_PC): Redefine.
6926 (AVR_2_BYTE_PC): (Ditto.).
6927 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6928 (LINK_SPEC): Add atmega2560 and atmega2561.
6929 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
6930 (crtm2561.o).
6931 * config/avr/avr.md (call_insn): Use eicall instead of icall
6932 for 3 byte PC devices.
6933 (call_value_insn): (Ditto.).
6934 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6935 (indirect_jump): Use only for for 2 byte PC devices.
6936 (*tablejump): (Ditto.).
6937 (*indirect_jump_avr6): Add insn.
6938 (*tablejump_rjmp): Don't use for 3 byte PC devices.
6939 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
6940 instead of ijmp for 3 byte PC devices.
6941 (__tablejump2__): (Ditto.).
6942 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6943 (MULITLIB_DIRNAMES): (Ditto.).
6944 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6945
6946 2008-03-15 Uros Bizjak <ubizjak@gmail.com>
6947
6948 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6949 "sse2_umulsidi3". Use V1DI mode for operand 0.
6950 ("mmx_psadbw"): Use V1DI mode for operand 0.
6951 * config/i386/i386-modes.def (V1SI): New vector mode.
6952 * config/i386/i386.c (struct builtin_description)
6953 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6954 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6955 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6956 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6957 v1di_ftype_v8qi_v8qi type.
6958 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6959
6960 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6961 __builtin_ia32_pmuludq]: Fix the mode of return value.
6962
6963 2008-03-15 Richard Guenther <rguenther@suse.de>
6964
6965 PR middle-end/35595
6966 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6967 being a PHI_NODE.
6968
6969 2008-03-14 Bob Wilson <bob.wilson@acm.org>
6970
6971 * doc/invoke.texi (Option Summary, Xtensa Options): Document
6972 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6973 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6974 unless TARGET_SERIALIZE_VOLATILE is enabled.
6975 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6976 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6977 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6978
6979 2008-03-14 Richard Guenther <rguenther@suse.de>
6980
6981 PR tree-optimization/34172
6982 * tree-flow.h (refs_may_alias_p): Declare.
6983 (get_single_def_stmt): Likewise.
6984 (get_single_def_stmt_from_phi): Likewise.
6985 (get_single_def_stmt_with_phi): Likewise.
6986 * tree-dfa.c (refs_may_alias_p): New function.
6987 (get_single_def_stmt): Likewise.
6988 (get_single_def_stmt_from_phi): Likewise.
6989 (get_single_def_stmt_with_phi): Likewise.
6990 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6991 (vn_reference_lookup_1): New helper function.
6992 (vn_reference_lookup): Walk the virtual use-def chain to
6993 continue searching for a match if the def does not alias the
6994 reference we are looking for.
6995
6996 2008-03-14 David Edelsohn <edelsohn@gnu.org>
6997
6998 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
6999 archive and Perzl. Update The Written Word listing.
7000
7001 2008-03-14 Richard Guenther <rguenther@suse.de>
7002
7003 PR tree-optimization/34043
7004 PR tree-optimization/33989
7005 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
7006 when doing FRE.
7007 (bitmap_find_leader): Use extra argument to verify dominance
7008 relationship inside a basic-block.
7009 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
7010 (find_leader_in_sets): Adjust.
7011 (create_component_ref_by_pieces): Take extra argument for
7012 dominance check, handle lookup failures.
7013 (find_or_generate_expression): Likewise.
7014 (create_expression_by_pieces): Likewise.
7015 (insert_into_preds_of_block): Adjust.
7016 (create_value_expr_from): If asked for, verify all operands
7017 are in the blocks AVAIL_OUT set.
7018 (make_values_for_stmt): Check for SSA_NAMEs that are life
7019 over an abnormal edge.
7020 (compute_avail): Remove such check.
7021 (do_SCCVN_insertion): New function.
7022 (eliminate): If we do not find a leader suitable for replacement
7023 insert a replacement expression from SCCVN if available.
7024 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
7025 (struct vn_ssa_aux): Add needs_insertion flag.
7026 * tree-ssa-sccvn.c (may_insert): New global flag.
7027 (copy_reference_ops_from_ref): Value-number union member access
7028 based on its size, not type and member if insertion is allowed.
7029 (visit_reference_op_load): For a weak match from union type
7030 punning lookup a view-converted value and insert a SSA_NAME
7031 for that value if that is not found.
7032 (visit_use): Make dumps shorter. Do not disallow value numbering
7033 SSA_NAMEs that are life over an abnormal edge to constants.
7034 (free_scc_vn): Release inserted SSA_NAMEs.
7035 (run_scc_vn): New flag to specify whether insertion is allowed.
7036 Process SSA_NAMEs in forward order.
7037 * tree-ssa-loop-im.c (for_each_index): Handle invariant
7038 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
7039 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
7040 pointer type to/from integral types that do not change the
7041 precision to regular conversions.
7042
7043 2008-03-13 Uros Bizjak <ubizjak@gmail.com>
7044
7045 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7046 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7047 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
7048 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
7049 input arguments and the mode of return value. Built-in functions
7050 that operate on whole 64-bit MMX register now use V1DI mode.
7051
7052 2008-03-13 Alon Dayan <alond@il.ibm.com>
7053 Olga Golovanevsky <olga@il.ibm.com>
7054
7055 PR tree-optimization/35041
7056 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
7057 to locate the right position in a statement.
7058
7059 2008-03-13 Uros Bizjak <ubizjak@gmail.com>
7060
7061 PR target/34000
7062 PR target/35553
7063 * config/i386/xmmintrin.h: Change all static inline functions to
7064 extern inline and add __gnu_inline__ attribute.
7065 * config/i386/bmintrin.h: Ditto.
7066 * config/i386/smmintrin.h: Ditto.
7067 * config/i386/tmmintrin.h: Ditto.
7068 * config/i386/mmintrin-common.h: Ditto.
7069 * config/i386/ammintrin.h: Ditto.
7070 * config/i386/emmintrin.h: Ditto.
7071 * config/i386/pmmintrin.h: Ditto.
7072 * config/i386/mmintrin.h: Ditto.
7073 * config/i386/mm3dnow.h: Ditto.
7074
7075 2008-03-13 Jakub Jelinek <jakub@redhat.com>
7076
7077 PR middle-end/35185
7078 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
7079 (lower_omp_2): New function.
7080 (lower_omp_1, lower_omp): Rewritten.
7081
7082 2008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
7083
7084 PR 35054
7085 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
7086 with the phrase "Microsoft Windows compilers".
7087 (Push/Pop Macro Pragmas): New subsection. Document
7088 #pragma push_macro and pragma pop_macro.
7089
7090 2008-03-12 Paul Brook <paul@codesourcery.com>
7091
7092 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
7093
7094 2008-03-12 Paul Brook <paul@codesourcery.com>
7095
7096 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
7097 (thumb2_alusi3_short): Exclude PLUS and MINUS.
7098 (thumb2_addsi_shortim): Rename ...
7099 (thumb2_addsi_short): ... to this. Allow register operands.
7100 (thumb2_subsi_short): New pattern.
7101 (thumb2_one_cmplsi2_short,
7102 thumb2_negsi2_short): New patterns and peepholes.
7103
7104 2008-03-12 Paul Brook <paul@codesourcery.com>
7105
7106 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7107
7108 2008-03-12 Uros Bizjak <ubizjak@gmail.com>
7109
7110 * config/i386/i386.md (int_cond): New code iterator.
7111 (fp_cond): Ditto.
7112 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7113 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7114 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7115 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7116 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7117 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7118 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7119 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7120
7121 2008-03-12 Paul Brook <paul@codesourcery.com>
7122
7123 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7124 instead of {arm,thumb}_compute_save_reg_mask.
7125 (output_return_instruction): Ditto.
7126 (thumb_unexpanded_epilogue): Ditto.
7127 (thumb1_expand_prologue): Ditto.
7128 (thumb1_output_function_prologue): Ditto.
7129 (arm_set_return_address): Ditto.
7130 (thumb_set_return_address): Ditto.
7131 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
7132 regs to achieve stack alignment.
7133 (thumb1_compute_save_reg_mask): Fix compiler warning.
7134 (arm_output_epilogue): Use offsets->saved_regs_mask.
7135 Adjust stack pointer by poping call clobered registers.
7136 (arm_expand_prologue): Use offsets->saved_regs_mask.
7137 Adjust stack pointer by pushing extra registers.
7138 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
7139
7140 2008-03-12 Paolo Bonzini <bonzini@gnu.org>
7141
7142 PR tree-opt/35422
7143 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7144 conversion to the operands of a multiplication.
7145
7146 2008-03-12 Richard Guenther <rguenther@suse.de>
7147
7148 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7149 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7150 * timevar.def (TV_TREE_PHIPROP): Add.
7151 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7152 pass description. Use TV_TREE_PHIPROP.
7153 * tree-ssa-forwprop.c: Remove phiprop code.
7154
7155 2008-03-12 Jakub Jelinek <jakub@redhat.com>
7156
7157 PR middle-end/35549
7158 * omp-low.c (maybe_lookup_decl): Constify first argument.
7159 (use_pointer_for_field): Change last argument from bool to
7160 omp_context *. Disallow shared copy-in/out in nested
7161 parallel if decl is shared in outer parallel too.
7162 (build_outer_var_ref, scan_sharing_clauses,
7163 lower_rec_input_clauses, lower_copyprivate_clauses,
7164 lower_send_clauses, lower_send_shared_vars): Adjust callers.
7165
7166 2008-03-12 Victor Kaplansky <victork@il.ibm.com>
7167 Ira Rosen <irar@il.ibm.com>
7168
7169 * tree-vectorizer.c (free_stmt_vec_info): New function.
7170 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7171 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7172 * tree-vectorizer.h (free_stmt_vec_info): Declare.
7173 * tree-vect-transform.c (vectorizable_conversion): Free
7174 vec_oprnds0 if it was allocated.
7175 (vect_permute_store_chain): Remove unused VECs.
7176 (vectorizable_store): Free VECs that are allocated in the..
7177 function.
7178 (vect_transform_strided_load, vectorizable_load): Likewise.
7179 (vect_remove_stores): Simplify the code.
7180 (vect_transform_loop): Move code to vect_remove_stores().
7181 Call vect_remove_stores() and free_stmt_vec_info().
7182
7183 2008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7184
7185 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7186 TARGET_HPUX. Revise comment.
7187 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7188 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7189 Use sr4 variant of `be' instruction when not generating PIC code.
7190 (attr_length_call): Adjust for above change.
7191
7192 2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
7193
7194 * ipa-reference.c (static_execute): Remove module_statics_const and
7195 associated setting code.
7196
7197 2008-03-11 Uros Bizjak <ubizjak@gmail.com>
7198
7199 PR target/35540
7200 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
7201 predicate for operand 1.
7202 (paritysi2_cmp): Use register_operand predicate for operand 2.
7203 Use earlyclobber modifier for operand 1. Remove support for
7204 memory operands.
7205 (paritydi2_cmp): Use register_operand predicate for operand 3.
7206 Use earlyclobber modifier for operand 1. Remove support for
7207 memory operands.
7208
7209 2008-03-11 Paul Brook <paul@codesourcery.com>
7210 Vladimir Prus <vladimir@codesourcery.com>
7211
7212 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7213 (arm_compute_save_reg0_reg12_mask): Always
7214 check if register 11 must be saved. Always safe hard frame pointer
7215 when frame_pointer_needeed.
7216 (arm_compute_save_reg_mask): Save IP and PC
7217 only with apcs frames.
7218 (arm_output_epilogue): Adjust Thumb2 codepath to
7219 be also invoked and work for ARM non-apcs frames.
7220 (arm_expand_prologue): Don't bother saving IP
7221 for non-apcs frame, since it's not clobbered by
7222 prologue code. Implement non-apcs frame
7223 layout.
7224
7225 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
7226
7227 PR rtl-optimization/35281
7228 * expr.c (convert_move): Use a new pseudo for the intermediate
7229 from_mode->word_mode result.
7230
7231 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
7232
7233 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7234 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7235 * toplev.c (compile_file): Don't call it.
7236
7237 2008-03-11 Uros Bizjak <ubizjak@gmail.com>
7238
7239 PR middle-end/35526
7240 * expr.c (store_expr): Call emit_block_move if the mode
7241 of "temp" RTX is BLKmode.
7242
7243 2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
7244 Richard Guenther <rguenther@suse.de>
7245
7246 PR tree-optimization/31358
7247 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7248 the step with a NULL_TREE.
7249 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7250 to sizetype if type is a pointer type.
7251 (add_candidate_1): Don't convert the base and step to
7252 the generic type if the orginal type is a pointer type.
7253 (add_iv_value_candidates): Use sizetype for the step
7254 if type is a pointer type.
7255 (cand_value_at): Likewise.
7256 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7257 for pointer types.
7258 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7259 Don't convert the tem affine to the type.
7260 (add_elt_to_tree): Use sizetype for the step if a pointer.
7261 Use POINTER_PLUS_EXPR for pointers.
7262 (aff_combination_to_tree): Use sizetype for the step if a
7263 pointer.
7264
7265 2008-03-10 Vladimir Makarov <vmakarov@redhat.com>
7266
7267 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7268 Remove commutativity hint.
7269
7270 2008-03-10 Jakub Jelinek <jakub@redhat.com>
7271
7272 PR c/35438
7273 PR c/35439
7274 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7275 errorneous type. Check that v is a VAR_DECL.
7276
7277 PR middle-end/35099
7278 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7279
7280 2008-03-10 H.J. Lu <hongjiu.lu@intel.com>
7281
7282 PR tree-optimization/35494
7283 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7284 may be overriden at link and run time.
7285
7286 2008-03-10 Richard Guenther <rguenther@suse.de>
7287
7288 PR tree-optimization/34677
7289 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7290 (poolify_tree): Likewise.
7291 (modify_expr_template): Likewise.
7292 (poolify_modify_stmt): Likewise.
7293 (insert_fake_stores): Handle all component-ref style stores
7294 in addition to INDIRECT_REF. Also handle complex types.
7295 Do not poolify the inserted load.
7296 (realify_fake_stores): Do not rebuild the tree but only
7297 make it a SSA_NAME copy.
7298 (init_pre): Remove initialzation of modify_expr_template.
7299 Do not allocate modify_expr_node_pool.
7300 (fini_pre): Do not free modify_expr_node_pool.
7301
7302 2008-03-10 Paul Brook <paul@codesourcery.com>
7303
7304 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7305 to avoid conflicts.
7306
7307 2008-03-10 Paul Brook <paul@codesourcery.com>
7308 Mark Shinwell <shinwell@codesourcery.com>
7309
7310 * config/arm/cortex-r4.md: New.
7311 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7312 insn attributes.
7313 * config/arm/arm.md: Include cortex-r4.md.
7314 (insn): Add smmls, sdiv and udiv values.
7315 (generic_sched): Don't use generic scheduling for Cortex-R4.
7316 (arm_issue_rate): New function.
7317 (TARGET_SCHED_ISSUE_RATE): Define.
7318
7319 2008-03-10 Sebastian Pop <sebastian.pop@amd.com>
7320
7321 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7322
7323 2008-03-10 Richard Guenther <rguenther@suse.de>
7324
7325 * tree-ssa-pre.c (get_sccvn_value): Simplify.
7326 (compute_avail): Do not add stmt uses to AVAIL_OUT.
7327
7328 2008-03-10 Paolo Bonzini <bonzini@gnu.org>
7329
7330 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7331 Set default to true.
7332
7333 2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7334
7335 * c.opt (Wsynth): Deprecate.
7336 * doc/invoke.texi (Option Summary, Warning Options): Document
7337 -Wno-format-contains-nul.
7338
7339 2008-03-09 Uros Bizjak <ubizjak@gmail.com>
7340
7341 PR target/35496
7342 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7343 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7344
7345 2008-03-09 Ira Rosen <irar@il.ibm.com>
7346
7347 * config/rs6000/rs6000.c (builtin_description): Rename vector
7348 left shift operations.
7349 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7350 (altivec_vsl<VI_char>): Rename to ...
7351 (ashl<mode>3): ... new name.
7352 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7353 gen_ashlv4si3.
7354 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7355
7356 2008-03-08 Richard Guenther <rguenther@suse.de>
7357
7358 * coverage.h (tree_coverage_counter_addr): Declare.
7359 * coverage.c (tree_coverage_counter_addr): New function.
7360 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7361 before using again.
7362 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7363 (tree_gen_one_value_profiler): Likewise.
7364 (tree_gen_ic_profiler): Likewise.
7365 (tree_gen_average_profiler): Likewise.
7366 (tree_gen_ior_profiler): Likewise.
7367
7368 2008-03-08 Richard Guenther <rguenther@suse.de>
7369
7370 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7371 (vn_binary_op_insert): Likewise.
7372 (vn_unary_op_lookup): Likewise.
7373 (vn_unary_op_insert): Likewise.
7374 (vn_nary_op_lookup): Declare.
7375 (vn_nary_op_insert): Likewise.
7376 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7377 and binary hashes, use a single obstack for unary_op_pool
7378 and binary_op_pool.
7379 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7380 a single struct vn_nary_op_s. Store tree code length and
7381 a variable number of operands.
7382 (struct vn_reference_op_struct): Remove unused op2.
7383 (vn_reference_op_eq): Do not compare op2.
7384 (vn_reference_op_compute_hash): Do not compute hash of op2.
7385 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7386 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7387 with vn_nary_op_compute_hash.
7388 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7389 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7390 vn_nary_op_lookup.
7391 (vn_unary_op_insert, vn_binary_op_insert): Replace with
7392 vn_nary_op_insert.
7393 (visit_unary_op): Call nary functions.
7394 (visit_binary_op): Likewise.
7395 (process_scc): Adjust for struct vn_tables_s changes.
7396 (allocate_vn_table): Likewise.
7397 (free_vn_table): Likewise.
7398 * tree-vn.c (vn_add): Call nary functions.
7399 (vn_lookup): Likewise.
7400
7401 2008-03-08 Jakub Jelinek <jakub@redhat.com>
7402
7403 PR target/35498
7404 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7405 wdst back after sync_compare_and_swapqhi_internal.
7406
7407 2008-03-08 Uros Bizjak <ubizjak@gmail.com>
7408
7409 PR target/22152
7410 * config/i386/i386-modes.def (V1DI): New vector mode.
7411 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7412 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7413 (MMXMODE248): Ditto.
7414 (MMXMODE): Add V1DI mode.
7415 (mmxvecsize): Change DI mode to V1DI mode.
7416 ("mov<mode>): Use MMXMODEI8 mode iterator.
7417 ("*mov<mode>_internal_rex64"): Ditto.
7418 ("*mov<mode>_internal"): Ditto.
7419 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
7420 ("mmx_sub<mode>3"): Ditto.
7421 ("mmx_adddi3"): Remove insn pattern.
7422 ("mmx_subdi3"): Ditto.
7423 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7424 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7425 ("mmx_ashl<mode>3"): Ditto.
7426 ("mmx_lshrdi3"): Remove insn pattern.
7427 ("mmx_ashldi3"): Ditto.
7428 * config/i386/i386.c (classify_argument): Handle V1DImode.
7429 (function_arg_advance_32): Ditto.
7430 (function_arg_32): Ditto.
7431 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7432 mmx_addv1di3 insn pattern.
7433 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7434 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7435 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7436 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7437 Remove definitions of built-in functions.
7438 (V1DI_type_node): New node.
7439 (v1di_ftype_v1di_int): Ditto.
7440 (v1di_ftype_v1di_v1di): Ditto.
7441 (v2si_ftype_v2si_si): Ditto.
7442 (v4hi_ftype_v4hi_di): Remove node.
7443 (v2si_ftype_v2si_di): Ditto.
7444 (ix86_init_mmx_sse_builtins): Handle V1DImode.
7445 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7446 Redefine builtins using def_builtin_const with *_ftype_*_int node.
7447 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7448 Add new builtins using def_builtin_const.
7449 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7450 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7451 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7452 * config/i386/mmintrin.h (__v1di): New typedef.
7453 (_mm_add_si64): Cast arguments to __v1di type.
7454 (_mm_sub_si64): Ditto.
7455 (_mm_sll_pi16): Cast __count to __v4hi type.
7456 (_mm_sll_pi32): Cast __count to __v2si type.
7457 (_mm_sll_si64): Cast arguments to __v1di type.
7458 (_mm_srl_pi16): Cast __count to __v4hi type.
7459 (_mm_srl_pi32): Cast __count to __v2si type.
7460 (_mm_srl_si64): Cast arguments to __v1di type.
7461 (_mm_sra_pi16): Cast __count to __v4hi type.
7462 (_mm_sra_pi32): Cast __count to __v2si type.
7463 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7464 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7465 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7466 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7467 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7468 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7469 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7470 (_mm_srai_pi32): Use __builtin_ia32_psradi.
7471 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7472 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7473 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7474 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7475
7476 2008-03-07 Joseph Myers <joseph@codesourcery.com>
7477
7478 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7479
7480 2008-03-07 Peter Bergner <bergner@vnet.ibm.com>
7481
7482 PR target/35373
7483 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7484 reg+const addressing for Altivec modes. Don't generate reg+reg
7485 addressing for TFmode or TDmode quantities.
7486
7487 2008-03-07 Paolo Bonzini <bonzini@gnu.org>
7488
7489 * c-common.c (vector_types_convertible_p): Call langhook
7490 instead of comptypes.
7491
7492 2008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
7493
7494 PR tree-opt/35402
7495 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7496 integral and scalar float variables which have a
7497 NULL DECL_INITIAL.
7498
7499 2008-03-06 Nathan Froyd <froydnj@codesourcery.com>
7500
7501 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7502 dwarf_register_span hook when emitting unwind information for
7503 register-to-memory saves.
7504 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7505 (rs6000_frame_related): Remove call to spe_synthesize_frame.
7506
7507 2008-03-06 Jakub Jelinek <jakub@redhat.com>
7508
7509 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7510 for the same VAR_DECL.
7511
7512 2008-03-06 Tom Tromey <tromey@redhat.com>
7513
7514 * treelang: Delete.
7515 * doc/standards.texi (Standards): Don't mention treelang.
7516 * doc/invoke.texi (Overall Options): Don't mention treelang.
7517 * doc/install.texi (Prerequisites): Don't mention bison or
7518 treelang.
7519 (Configuration): Don't mention treelang.
7520 (Building): Likewise.
7521 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7522
7523 2008-03-06 Paolo Bonzini <bonzini@gnu.org>
7524
7525 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7526 word-extractions out of a multi-word object.
7527
7528 2008-03-06 Richard Guenther <rguenther@suse.de>
7529
7530 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7531 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7532 result type and precision.
7533 * expr.c (get_inner_reference): Set unsignedp based on the result
7534 type of BIT_FIELD_REF.
7535 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7536 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7537 (try_instantiate_multiple_fields): Likewise. Use the correct type
7538 for BIT_FIELD_REF.
7539 (sra_build_assignment): Likewise.
7540 (sra_build_elt_assignment): Likewise.
7541 (sra_explode_bitfield_assignment): Likewise.
7542 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7543 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7544 set BIT_FIELD_REF_UNSIGNED.
7545 (vectorizable_load): Likewise.
7546
7547 2008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
7548
7549 * cse.c (cse_extended_basic_block): Invalidate artificial defs
7550 at bb start.
7551
7552 2008-03-06 Richard Guenther <rguenther@suse.de>
7553
7554 * alias.c (struct alias_set_entry): Move has_zero_child field
7555 to pack with alias_set.
7556
7557 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
7558
7559 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7560 32bit host.
7561
7562 2008-03-05 Ian Lance Taylor <iant@google.com>
7563
7564 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7565
7566 2008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
7567
7568 * fwprop.c (update_df): Support width and offset parameters of
7569 df_ref_create.
7570 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7571 global_conflicts): Change DF_REF_EXTRACT to either
7572 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
7573 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7574 * df-scan.c (df_ref_record, df_defs_record,
7575 df_ref_create_structure, df_def_record_1, df_uses_record,
7576 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7577 df_bb_refs_collect, df_entry_block_defs_collect,
7578 df_exit_block_uses_collect): Support new width and offset fields.
7579 (ref_extract_pool): New storage pool.
7580 (df_free_ref): New function.
7581 (df_reg_chain_unlink, df_free_collection_rec,
7582 df_sort_and_compress_refs): Call df_free_ref.
7583 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7584 of df_ref_extract.
7585 (df_ref_create_structure): Allocate df_ref_extract if offset and
7586 width fields are used.
7587 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7588 (df_uses_record): Get offset and width from ZERO_EXTRACT
7589 and SIGN_EXTRACT.
7590 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7591 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
7592 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7593 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7594 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
7595 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7596 (df_ref_extract): New structure.
7597 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7598 (df_ref_create): Add width and offset parameters.
7599
7600 2008-03-05 Richard Guenther <rguenther@suse.de>
7601
7602 * tree-ssa-structalias.c (get_constraint_for_component_ref):
7603 Use ranges_overlap_p.
7604 (offset_overlaps_with_access): Rename
7605 to ranges_overlap_p and move ...
7606 * tree-flow-inline.h (ranges_overlap_p): ... here.
7607
7608 * tree.h (get_inner_reference, handled_component_p): Update
7609 comments.
7610
7611 * tree.h (record_component_aliases, get_alias_set,
7612 alias_sets_conflict_p, alias_sets_must_conflict_p,
7613 objects_must_conflict_p): Move declarations ...
7614 * alias.h (record_component_aliases, get_alias_set,
7615 alias_sets_conflict_p, alias_sets_must_conflict_p,
7616 objects_must_conflict_p): ... here.
7617 Include coretypes.h.
7618 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7619
7620 2008-03-05 Aldy Hernandez <aldyh@redhat.com>
7621
7622 * cfg.c: Include tree-flow.h.
7623 (remove_edge_raw): Call redirect_edge_var_map_clear.
7624 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7625 * tree-flow-inline.h (redirect_edge_var_map_def): New.
7626 (redirect_edge_var_map_result): New.
7627 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7628 PENDING_STMT use with redirect_edge_var_map_*.
7629 * tree-ssa.c (edge_var_maps): New definition.
7630 (redirect_edge_var_map_add): New.
7631 (redirect_edge_var_map_clear): New.
7632 (redirect_edge_var_map_dup): New.
7633 (redirect_edge_var_map_vector): New.
7634 (redirect_edge_var_map_destroy): New.
7635 (ssa_redirect_edge): Replace PENDING_STMT use with
7636 redirect_edge_var_map_*.
7637 (flush_pending_stmts): Same.
7638 (delete_tree_ssa): Destroy edge var map.
7639 * tree-flow.h (struct _edge_var_map): New.
7640 Define edge_var_map vector type.
7641 Declare redirect_edge_var_map_* prototypes.
7642 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7643 * tree-cfg.c (reinstall_phi_args): Replace
7644 PENDING_STMT use with redirect_edge_var_map_*.
7645
7646 2008-03-05 Richard Guenther <rguenther@suse.de>
7647
7648 PR tree-optimization/35472
7649 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7650 whose single use_stmt has a overlapping set of loaded and
7651 stored symbols as that use_stmt might be a noop assignment then.
7652
7653 2008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
7654
7655 * gthr-rtems.h: Implement __gthread_mutex_destroy.
7656
7657 2008-03-05 Richard Guenther <rguenther@suse.de>
7658
7659 PR c++/35336
7660 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7661 should be constants.
7662 * tree-cfg.c (verify_expr): Verify it.
7663 * fold-const.c (fold_truthop): Remove code generating
7664 BIT_FIELD_REFs of structure bases.
7665 (fold_binary): Likewise.
7666 (fold_ternary): Position and size of BIT_FIELD_REFs are
7667 always host integers.
7668 (make_bit_field_ref): Remove.
7669 (optimize_bit_field_compare): Remove.
7670 (all_ones_mask_p): Remove.
7671
7672 2008-03-05 Gabor Loki <loki@gcc.gnu.org>
7673
7674 PR gcc/33009
7675 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7676 (split_block_and_df_analyze): New. Split basic block and rebuild
7677 dataflow.
7678 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7679 SPLIT_BLOCK.
7680 (split_pattern_seq): Likewise.
7681 (erase_matching_seqs): Likewise.
7682 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7683
7684 2008-03-04 Geoff Keating <geoffk@apple.com>
7685
7686 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7687 declaration and code.
7688 (tree_invalid_nonnegative_warnv_p): Likewise.
7689
7690 2008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
7691
7692 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7693 examples. Truncate option-names then causing overfull hbox.
7694
7695 2008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7696
7697 PR target/35222
7698 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7699 on hpux10.
7700 * configure: Rebuilt.
7701
7702 2008-03-04 Rafael Espindola <espindola@google.com>
7703
7704 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7705 (tree_unary_nonnegative_warnv_p): New.
7706 (tree_binary_nonnegative_warnv_p): New.
7707 (tree_single_nonnegative_warnv_p): New.
7708 (tree_invalid_nonnegative_warnv_p): New.
7709 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7710
7711 2008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7712
7713 PR 28322
7714 * opts.c (handle_option): Postpone 'unknown option' errors only for
7715 warning options.
7716
7717 2008-03-04 H.J. Lu <hongjiu.lu@intel.com>
7718
7719 PR target/35453
7720 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7721 (_SIDD_XXX): This.
7722
7723 2008-03-04 Rafael Espindola <espindola@google.com>
7724
7725 * fold-const.c (tree_unary_nonzero_warnv_p): New.
7726 (tree_binary_nonzero_warnv_p): New.
7727 (tree_single_nonzero_warnv_p): New.
7728 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7729
7730 2008-03-04 Uros Bizjak <ubizjak@gmail.com>
7731
7732 PR middle-end/35456
7733 * fold-const.c (fold_cond_expr_with_comparison): Prevent
7734 transformations for modes that have signed zeros.
7735 * ifcvt.c (noce_try_abs): Ditto.
7736
7737 2008-03-04 Joseph Myers <joseph@codesourcery.com>
7738
7739 * config/i386/i386.c (override_options): Force
7740 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7741
7742 2008-03-04 Jan Hubicka <jh@suse.cz>
7743
7744 PR c++/35262
7745 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7746 in last commit.
7747
7748 2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
7749
7750 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
7751 label to probe the stack.
7752
7753 2008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
7754
7755 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7756 (__gthr_win32_mutex_destroy): Declare.
7757 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7758 __gthr_win32_mutex_destroy.
7759 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
7760
7761 2008-03-03 Jan Hubicka <jh@suse.cz>
7762
7763 PR c++/35262
7764 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7765 aggressive on inlining cold calls.
7766
7767 2008-03-03 Richard Guenther <rguenther@suse.de>
7768
7769 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7770 struct copies into the expression table.
7771 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7772 (try_to_simplify): Likewise.
7773 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7774 integral and pointer arguments which do not change the
7775 precision to NOP_EXPRs.
7776 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7777 VIEW_CONVERT_EXPR case.
7778
7779 2008-03-02 Sebastian Pop <sebastian.pop@amd.com>
7780
7781 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7782 defined in a loop at depth 0 is invariant.
7783 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7784 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7785 be called at loop depth 0.
7786
7787 2008-03-02 Jakub Jelinek <jakub@redhat.com>
7788
7789 PR driver/35420
7790 * gcc.c (process_command): Update copyright notice dates.
7791 * gcov.c (print_version): Likewise.
7792 * gcov-dump.c (print_version): Likewise.
7793 * mips-tfile.c (main): Likewise.
7794 * mips-tdump.c (main): Likewise.
7795
7796 2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7797
7798 PR 24924
7799 * c-common.c (flag_permissive): Delete.
7800 (constant_expression_warnings): Check flags first.
7801 (constant_expression_error): New.
7802 * c-common.h (flag_permissive): Delete.
7803 (constant_expression_error): Declare.
7804 * flags.h (flag_permissive): Declare. Update description.
7805 * diagnostic.c (pedwarn): Update.
7806 (permerror): New.
7807 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7808 (permissive_error_kind): New.
7809 * toplev.c (flag_permissive): Define. Update description.
7810 * toplev.h (permissive_error_kind): Declare.
7811 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7812 (pedwarn_c90): Use pedantic_warning_kind.
7813 * c-opts.c (c_common_post_options): flag_permissive does not affect
7814 flag_pedantic_errors.
7815
7816 2008-03-02 Joseph Myers <joseph@codesourcery.com>
7817
7818 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7819 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7820 __absvsi2, __absvDI2): Use unsigned arithmetic.
7821
7822 2008-03-02 Andi Kleen <ak@suse.de>
7823 Richard Guenther <rguenther@suse.de>
7824
7825 * struct-equiv.c: Remove file.
7826 * cfg_cleanup.c (condjump_equiv_p): Remove.
7827 * Makefile.in (OBJS-common): Remove struct-equiv.o.
7828 (struct-equiv.o): Remove rule.
7829 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7830 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
7831 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7832
7833 2008-03-01 Alexandre Oliva <aoliva@redhat.com>
7834
7835 * ifcvt.c (noce_process_if_block): Try to handle only the then
7836 block if the else block exists but isn't suitable.
7837
7838 2008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
7839
7840 PR gcc/35063
7841 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7842 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7843 regression from previous patch.
7844
7845 2008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
7846
7847 PR gcc/35063
7848 * gthr.h: Add __gthread_mutex_destroy as a function that must be
7849 implemented.
7850 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7851 * gthr-single.h (__gthread_mutex_destroy): Likewise.
7852 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7853 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7854 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7855 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7856 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7857 (__gthread_mutex_destroy_function): Rename to
7858 __gthread_mutex_destroy.
7859 * gthr-dce.h (__gthread_mutex_destroy): Call
7860 pthread_mutex_destroy.
7861 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7862 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7863 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7864
7865 2008-03-01 Alexandre Oliva <aoliva@redhat.com>
7866
7867 * df-scan.c (df_ref_chain_change_bb): Simplify.
7868 (df_insn_change_bb): Add new_bb argument. Simplify. Call
7869 set_block_for_insn if there's any change.
7870 * df.h ((df_insn_change_bb): Fix prototype.
7871 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7872 df_insn_change_bb, don't call set_block_for_insn.
7873 * emit-rtl.c (reorder_insns): Likewise.
7874 * haifa-sched.c (move_insn): Likewise.
7875
7876 2008-03-01 Alexandre Oliva <aoliva@redhat.com>
7877
7878 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7879
7880 2008-03-01 Alexandre Oliva <aoliva@redhat.com>
7881
7882 * tree-flow-inline.h (next_readonly_imm_use): Return
7883 NULL_USE_OPERAND_P after the end.
7884
7885 2008-03-01 Richard Guenther <rguenther@suse.de>
7886
7887 PR tree-optimization/35411
7888 * tree-sra.c (sra_build_assignment): Split conversion to
7889 final type to a separate statement if we are not assigning
7890 to a register.
7891
7892 2008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
7893
7894 * fold-const.c (fold_convertible_p): Correct the logic to follow
7895 that in fold_convert().
7896
7897 2008-02-29 Douglas Gregor <doug.gregor@gmail.com>
7898
7899 PR c++/35315
7900 * tree-inline.c (build_duplicate_type): When we make a
7901 duplicate type, make it unique in the canonical types system.
7902
7903 2008-02-29 Tom Tromey <tromey@redhat.com>
7904
7905 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7906 input_file_stack_history, input_file_stack_restored): Remove.
7907 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7908 * input.h (struct file_stack): Remove.
7909 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7910 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7911 Likewise.
7912 * diagnostic.h (struct diagnostic_context) <last_module>: Change
7913 type.
7914 (diagnostic_last_module_changed): Add 'map' argument.
7915 (diagnostic_set_last_function): Likewise.
7916 * diagnostic.c (undiagnostic_report_current_module): Iterate using
7917 line map, not input_file_stack.
7918 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7919
7920 2008-02-29 Paul Brook <paul@codesourcery.com>
7921
7922 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7923
7924 2008-02-29 Paul Brook <paul@codesourcery.com>
7925
7926 * config/arm/ieee754-df.S (muldf3): Use RET macros.
7927
7928 2008-02-29 Richard Guenther <rguenther@suse.de>
7929
7930 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7931 vn_lookup_or_add.
7932 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7933 value for comparing for a store match.
7934 (simplify_unary_expression): Do nothing for SSA_NAMEs.
7935 (try_to_simplify): Do not do a full-blown reference lookup.
7936
7937 2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
7938
7939 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7940 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7941
7942 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7943
7944 2008-02-29 Sebastian Pop <sebastian.pop@amd.com>
7945
7946 * tree-loop-linear.c (try_interchange_loops): Compare memory access
7947 strides against cache sizes.
7948
7949 2008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
7950
7951 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7952 constant to fpul.
7953
7954 2008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
7955
7956 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7957 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7958 is smaller than the original promoted value.
7959 (simplify_subreg): If OP is a SUBREG, try to preserve its
7960 SUBREG_PROMOTED_VAR_P information.
7961
7962 2008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
7963
7964 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7965 (VN_INFO_GET): Allocate new objects on the obstack.
7966 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
7967 for rpo_numbers_temp, for consistency.
7968 (free_scc_vn): Free the obstack.
7969
7970 2008-02-28 Sebastian Pop <sebastian.pop@amd.com>
7971
7972 * doc/invoke.texi: Document -ftree-loop-distribution.
7973 * tree-loop-distribution.c: New.
7974 * tree-pass.h (pass_loop_distribution): New.
7975 * graphds.h (struct graph): Add htab_t indices.
7976 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7977 * tree-vectorizer.c (rename_variables_in_loop): Extern.
7978 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7979 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7980 * tree-data-ref.c (debug_data_dependence_relations): New.
7981 (dump_data_dependence_relation): Also print data references.
7982 (free_data_ref): Extern.
7983 (same_access_functions): Moved...
7984 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7985 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7986 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7987 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7988 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7989 (stmts_from_loop): Skip LABEL_EXPR.
7990 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7991 New.
7992 (build_rdg): Initialize rdg->indices htab.
7993 (free_rdg, stores_from_loop, ref_base_address,
7994 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7995 have_similar_memory_accesses_1, ref_base_address_1,
7996 remove_similar_memory_refs): New.
7997 * tree-data-ref.h: Depend on tree-chrec.h.
7998 (debug_data_dependence_relations, free_data_ref): Declared.
7999 (same_access_functions): ... here.
8000 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
8001 New.
8002 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
8003 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
8004 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
8005 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
8006 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
8007 rdg_vertex_for_stmt): Declared.
8008 (struct rdg_edge): Add level.
8009 (RDGE_LEVEL): New.
8010 (free_rdg, stores_from_loop, remove_similar_memory_refs,
8011 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
8012 Declared.
8013 (rdg_has_similar_memory_accesses): New.
8014 * tree-vect-analyze.c: Remove unused static decls.
8015 * lambda.h (dependence_level): New.
8016 * common.opt (ftree-loop-distribution): New.
8017 * tree-flow.h (mark_virtual_ops_in_bb,
8018 slpeel_tree_duplicate_loop_to_edge_cfg,
8019 rename_variables_in_loop): Declared.
8020 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
8021 (OBJS-common): Add tree-loop-distribution.o.
8022 (tree-loop-distribution.o): New rule.
8023 * tree-cfg.c (mark_virtual_ops_in_bb): New.
8024 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
8025 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
8026
8027 2008-02-28 Joseph Myers <joseph@codesourcery.com>
8028
8029 PR target/33963
8030 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
8031 other than structures and unions.
8032
8033 2008-02-28 Richard Guenther <rguenther@suse.de>
8034
8035 Revert:
8036 2008-02-26 Richard Guenther <rguenther@suse.de>
8037
8038 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8039 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8040 (lookup_decl_from_uid): Declare.
8041 (remove_decl_from_map): Likewise.
8042 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8043 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8044 (decl_for_uid_map): New global hashtable mapping DECL_UID
8045 to the decl tree.
8046 (init_ttree): Allocate it.
8047 (insert_decl_to_uid_decl_map): New helper function.
8048 (make_node_stat): Insert new decls into the map.
8049 (copy_node_stat): Likewise.
8050 (lookup_decl_from_uid): New function.
8051 (remove_decl_from_map): Likewise.
8052 (print_decl_for_uid_map_statistics): New helper.
8053 (dump_tree_statistics): Call it.
8054
8055 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8056 (referenced_var_iterator): Adjust.
8057 (FOR_EACH_REFERENCED_VAR): Adjust.
8058 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8059 (num_referenced_vars): Adjust.
8060 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8061 (first_referenced_var): Remove.
8062 (end_referenced_vars_p): Likewise.
8063 (next_referenced_var): Likewise.
8064 (referenced_var_iterator_set): New helper function.
8065 * tree-dfa.c (referenced_var_lookup): Adjust.
8066 (referenced_var_check_and_insert): Likewise.
8067 (remove_referenced_var): Likewise.
8068 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8069 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8070 (verify_call_clobbering): Likewise.
8071 (verify_memory_partitions): Likewise.
8072 (init_tree_ssa): Allocate bitmap instead of hashtable for
8073 referenced_vars.
8074 (delete_tree_ssa): Adjust.
8075 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8076 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8077 (compute_tag_properties): Likewise.
8078 (set_initial_properties): Likewise.
8079 (find_partition_for): Likewise.
8080 (update_reference_counts): Likewise.
8081 (dump_may_aliases_for): Likewise.
8082 * tree-ssa-operands.c (add_virtual_operand): Likewise.
8083 (add_call_clobber_ops): Likewise.
8084 (add_call_read_ops): Likewise.
8085 (get_asm_expr_operands): Likewise.
8086 * tree-into-ssa.c (dump_decl_set): Likewise.
8087 (update_ssa): Likewise.
8088 * tree-sra.c (scan_function): Likewise.
8089 (decide_instantiations): Likewise.
8090 (scalarize_parms): Likewise.
8091 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8092 (dsa_named_for): Likewise.
8093 * tree-ssa-structalias.c (update_alias_info): Likewise.
8094 (merge_smts_into): Likewise.
8095
8096 2008-02-27 David Daney <ddaney@avtrex.com>
8097
8098 PR target/34409
8099 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8100 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8101 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8102 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8103 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8104
8105 2008-02-27 Uros Bizjak <ubizjak@gmail.com>
8106
8107 PR target/25477
8108 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8109 (BUILT_IN_NEXTTOWARD): Remove.
8110 (BUILT_IN_NEXTTOWARDF): Ditto.
8111 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8112 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
8113
8114 2008-02-27 Tom Tromey <tromey@redhat.com>
8115
8116 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8117 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8118
8119 2008-02-27 Jan Beulich <jbeulich@novell.com>
8120
8121 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8122 update the respective field on newdecl.
8123
8124 2008-02-27 Revital Eres <eres@il.ibm.com>
8125
8126 PR rtl-optimization/34999
8127 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8128 crossing edges that ends with a call insn.
8129 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8130 call insn and clear the EDGE_CROSSING flag of the crossing edge
8131 when fixing fallthru edges.
8132
8133 2008-02-27 Richard Guenther <rguenther@suse.de>
8134
8135 PR middle-end/35390
8136 * fold-const.c (fold_unary): Return the correct argument,
8137 converted to the result type.
8138
8139 2008-02-27 Richard Guenther <rguenther@suse.de>
8140
8141 PR middle-end/34971
8142 * expr.c (expand_expr_real_1): Assert on rotates that operate
8143 on partial modes.
8144 * fold-const.c (fold_binary): Use the types precision, not the
8145 bitsize of the mode if folding rotate expressions. Build rotates
8146 only for full modes.
8147
8148 2008-02-27 Jakub Jelinek <jakub@redhat.com>
8149
8150 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8151 and CPP_PRAGMA_EOL.
8152 * c-pragma.c (pragma_ns_name): New typedef.
8153 (registered_pp_pragmas): New variable.
8154 (c_pp_lookup_pragma): New function.
8155 (c_register_pragma_1): If flag_preprocess_only, do nothing
8156 for non-expanded pragmas, for expanded ones push pragma's
8157 namespace and name into registered_pp_pragmas vector.
8158 (c_invoke_pragma_handler): Register OpenMP pragmas even when
8159 flag_preprocess_only, don't register GCC pch_preprocess
8160 pragma if flag_preprocess_only.
8161 * c-opts.c (c_common_init): Call init_pragma even if
8162 flag_preprocess_only.
8163 * c-pragma.c (c_pp_lookup_pragma): New prototype.
8164 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8165 cpp_register_pragma if flag_preprocess_only.
8166
8167 2008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8168
8169 PR c/28800
8170 * c-parser.c (c_parser_translation_unit): Warn for empty
8171 translation unit, not empty source file.
8172
8173 2008-02-26 Paul Brook <paul@codesourcery.com>
8174
8175 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8176 operand for Thumb-2.
8177 * config/arm/arm.h (reg_class): Add CORE_REGS.
8178 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8179 (BASE_REG_CLASS): Use CORE_REGS.
8180 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8181 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8182 (REGNO_OK_FOR_INDEX_P): Exclude SP.
8183 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
8184 ARM_REGNO_OK_FOR_INDEX_P.
8185 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8186 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8187 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8188 (ldm/stm peepholes): Ditto.
8189 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8190 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8191 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8192 * config/arm/constraints.md: Enable "k" constraint on ARM.
8193
8194 2008-02-27 Ben Elliston <bje@au.ibm.com>
8195
8196 * config/rs6000/rs6000.c: Annotate cache line size field in all
8197 instances of struct processor_costs.
8198
8199 2008-02-26 David Edelsohn <edelsohn@gnu.org>
8200
8201 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8202 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8203 jump_bypass): New counters.
8204 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8205 * dce.c (gate_ud_dce): Same.
8206 (gate_fast_dce): Same.
8207 * dse.c (gate_dse1): New function.
8208 (gate_dse2): New function.
8209 (gate_dse): Merge results of new gate functions.
8210 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8211 (gate_handle_jump_bypass): Add dbg_cnt.
8212 (gate_handle_gcse): Add dbg_cnt.
8213 * ifcvt.c (gate_handle_if_conversion): Same.
8214 (gate_handle_if_after_combine): Same.
8215 (gate_handle_if_after_reload): Same.
8216 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8217
8218 2008-02-26 Edmar Wienskoski <edmar@freescale.com>
8219
8220 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8221 line sizes.
8222 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8223
8224 2008-02-26 Jason Merrill <jason@redhat.com>
8225
8226 PR c++/35315
8227 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
8228 alone if it's the naming decl for the type's main variant.
8229
8230 2008-02-26 Tom Tromey <tromey@redhat.com>
8231
8232 * system.h (USE_MAPPED_LOCATION): Poison.
8233 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8234 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8235 (make_goto_expr_edges): Likewise.
8236 (remove_bb): Likewise.
8237 (execute_warn_function_return): Likewise.
8238 * basic-block.h (struct edge_def) <goto_locus>: Change type to
8239 location_t.
8240 * c-common.c (fname_decl): Remove old location code.
8241 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8242 location code.
8243 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8244 variant.
8245 (ASM_INPUT_SOURCE_LOCATION): Likewise.
8246 (gen_rtx_ASM_INPUT): Likewise.
8247 (gen_rtx_ASM_INPUT_loc): Likewise.
8248 (get_rtx_asm_OPERANDS): Remove.
8249 * cfglayout.c (insn_locators_alloc): Remove old location code.
8250 (set_curr_insn_source_location): Likewise.
8251 (curr_insn_locator): Likewise.
8252 * print-tree.c (print_node): Remove old location code.
8253 * tree-mudflap.c (mf_varname_tree): Remove old location code.
8254 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8255 * cfgexpand.c (expand_gimple_cond_expr): Don't use
8256 location_from_locus.
8257 (construct_exit_block): Remove old location code.
8258 * emit-rtl.c (force_next_line_note): Remove old location code.
8259 * profile.c (branch_prob): Remove old location code.
8260 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8261 LOC_LINE): Remove old-location variants.
8262 * langhooks.c (lhd_print_error_function): Remove old location
8263 code.
8264 * configure, config.in: Rebuilt.
8265 * configure.ac (--enable-mapped-location): Remove.
8266 * c-decl.c (c_init_decl_processing): Remove old location code.
8267 (finish_function): Likewise.
8268 * recog.c (decode_asm_operands): Remove old location code.
8269 * c-pch.c (c_common_read_pch): Remove old location code.
8270 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8271 variants.
8272 * gimple-low.c (lower_function_body): Remove old location code.
8273 * toplev.c (unknown_location): Remove.
8274 (push_srcloc): Remove old-location variant.
8275 (process_options): Remove old location code.
8276 (lang_dependent_init): Likewise.
8277 * input.h (UNKNOWN_LOCATION): Move definition.
8278 (location_t): Undeprecate.
8279 (source_locus): Remove.
8280 (location_from_locus): Remove.
8281 (struct location_s): Remove.
8282 Remove all old-location code.
8283 (input_line, input_filename): Remove.
8284 * final.c (final_scan_insn): Remove old location code.
8285 * diagnostic.c (diagnostic_build_prefix): Remove
8286 USE_MAPPED_LOCATION test.
8287 * tree.h (gimple_stmt) <locus>: Now a location_t.
8288 (tree_exp) <locus>: Likewise.
8289 (DECL_IS_BUILTIN): Remove old-location variant.
8290 (annotate_with_file_line, annotate_with_locus): Likewise.
8291 (expr_locus, set_expr_locus): Update.
8292 * tree.c (build1_stat): Remove old location code.
8293 (last_annotated_node): Remove.
8294 (annotate_with_file_line): Remove old-location variant.
8295 (annotate_with_locus): Likewise.
8296 (expr_location): Remove old location code.
8297 (set_expr_location): Likewise.
8298 (expr_has_location): Likewise.
8299 (expr_locus): Likewise.
8300 (set_expr_locus): Likewise.
8301 (expr_filename): Don't use location_from_locus.
8302 (expr_lineno): Likewise.
8303 * rtl-error.c (location_for_asm): Remove old location code.
8304 * c-lex.c (cb_line_change): Remove old location code.
8305 (fe_file_change): Likewise.
8306 (cb_def_pragma): Likewise.
8307 (c_lex_with_flags): Likewise.
8308 * gengtype.c (do_typedef): Don't special-case location types.
8309 (define_location_structures): Remove.
8310 (main): Don't call define_location_structures.
8311 * tree-pretty-print.c (dump_implicit_edges): Remove old location
8312 code.
8313
8314 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8315
8316 PR 26264
8317 * builtins.def (BUILT_IN_STDARG_START): Remove.
8318 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8319 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8320 * tree-inline.c (inline_forbidden_p_1): Likewise.
8321
8322 2008-02-26 Richard Guenther <rguenther@suse.de>
8323
8324 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8325 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8326 (lookup_decl_from_uid): Declare.
8327 (remove_decl_from_map): Likewise.
8328 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8329 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8330 (decl_for_uid_map): New global hashtable mapping DECL_UID
8331 to the decl tree.
8332 (init_ttree): Allocate it.
8333 (insert_decl_to_uid_decl_map): New helper function.
8334 (make_node_stat): Insert new decls into the map.
8335 (copy_node_stat): Likewise.
8336 (lookup_decl_from_uid): New function.
8337 (remove_decl_from_map): Likewise.
8338 (print_decl_for_uid_map_statistics): New helper.
8339 (dump_tree_statistics): Call it.
8340
8341 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8342 (referenced_var_iterator): Adjust.
8343 (FOR_EACH_REFERENCED_VAR): Adjust.
8344 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8345 (num_referenced_vars): Adjust.
8346 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8347 (first_referenced_var): Remove.
8348 (end_referenced_vars_p): Likewise.
8349 (next_referenced_var): Likewise.
8350 (referenced_var_iterator_set): New helper function.
8351 * tree-dfa.c (referenced_var_lookup): Adjust.
8352 (referenced_var_check_and_insert): Likewise.
8353 (remove_referenced_var): Likewise.
8354 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8355 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8356 (verify_call_clobbering): Likewise.
8357 (verify_memory_partitions): Likewise.
8358 (init_tree_ssa): Allocate bitmap instead of hashtable for
8359 referenced_vars.
8360 (delete_tree_ssa): Adjust.
8361 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8362 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8363 (compute_tag_properties): Likewise.
8364 (set_initial_properties): Likewise.
8365 (find_partition_for): Likewise.
8366 (update_reference_counts): Likewise.
8367 (dump_may_aliases_for): Likewise.
8368 * tree-ssa-operands.c (add_virtual_operand): Likewise.
8369 (add_call_clobber_ops): Likewise.
8370 (add_call_read_ops): Likewise.
8371 (get_asm_expr_operands): Likewise.
8372 * tree-into-ssa.c (dump_decl_set): Likewise.
8373 (update_ssa): Likewise.
8374 * tree-sra.c (scan_function): Likewise.
8375 (decide_instantiations): Likewise.
8376 (scalarize_parms): Likewise.
8377 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8378 (dsa_named_for): Likewise.
8379 * tree-ssa-structalias.c (update_alias_info): Likewise.
8380 (merge_smts_into): Likewise.
8381
8382 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8383
8384 PR 34351
8385 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8386 * c-opts.c (c_common_handle_option): Wall enables
8387 Wvolatile-register-var.
8388 * common.opt: Move Wvolatile-register-var to...
8389 * c.opt: ...here.
8390
8391 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8392
8393 * common.opt (Wlarger-than=): New.
8394 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8395 -Wlarger-than=.
8396 * opts.c (common_handle_option): Handle -Wlarger-than=.
8397 * optc-gen.awk: Likewise.
8398 * opth-gen.awk: Likewise.
8399 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8400 * tree-optimize.c (tree_rest_of_compilation): Likewise.
8401
8402 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8403
8404 * c-common.c (match_case_to_enum_1): Add appropriate
8405 OPT_W* parameter to warning.
8406 (c_do_switch_warnings): Likewise.
8407 * c-typeck.c (warning_init): Add one more parameter following
8408 'warning' function.
8409 (push_init_level): Update call to warning_init.
8410 (pop_init_level): Likewise.
8411 (add_pending_init): Likewise.
8412 (output_init_element: Likewise.
8413
8414 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8415
8416 PR 28322
8417 * toplev.c (toplev_main): If there are warnings or error, print
8418 errors for ignored options.
8419 * opts.c (ignored_options): New static variable.
8420 (postpone_unknown_option_error): New.
8421 (print_ignored_options): New.
8422 (handle_option): Postpone errors for unknown -Wno-* options.
8423 * opts.h (print_ignored_options): Declare.
8424
8425 2008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
8426
8427 * config/mips/mips.md (loadgp_blockage, blockage): Change type
8428 to "ghost".
8429
8430 2008-02-25 Richard Guenther <rguenther@suse.de>
8431
8432 Revert:
8433 2008-02-25 Richard Guenther <rguenther@suse.de>
8434
8435 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8436 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8437 (lookup_decl_from_uid): Declare.
8438 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8439 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8440 (decl_for_uid_map): New global hashtable mapping DECL_UID
8441 to the decl tree.
8442 (init_ttree): Allocate it.
8443 (insert_decl_to_uid_decl_map): New helper function.
8444 (make_node_stat): Insert new decls into the map.
8445 (copy_node_stat): Likewise.
8446 (lookup_decl_from_uid): New function.
8447 (print_decl_for_uid_map_statistics): New helper.
8448 (dump_tree_statistics): Call it.
8449
8450 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8451 (referenced_var_iterator): Adjust.
8452 (FOR_EACH_REFERENCED_VAR): Adjust.
8453 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8454 (num_referenced_vars): Adjust.
8455 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8456 (first_referenced_var): Remove.
8457 (end_referenced_vars_p): Likewise.
8458 (next_referenced_var): Likewise.
8459 (referenced_var_iterator_set): New helper function.
8460 * tree-dfa.c (referenced_var_lookup): Adjust.
8461 (referenced_var_check_and_insert): Likewise.
8462 (remove_referenced_var): Likewise.
8463 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8464 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8465 (verify_call_clobbering): Likewise.
8466 (verify_memory_partitions): Likewise.
8467 (init_tree_ssa): Allocate bitmap instead of hashtable for
8468 referenced_vars.
8469 (delete_tree_ssa): Adjust.
8470 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8471 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8472 (compute_tag_properties): Likewise.
8473 (set_initial_properties): Likewise.
8474 (find_partition_for): Likewise.
8475 (update_reference_counts): Likewise.
8476 (dump_may_aliases_for): Likewise.
8477 * tree-ssa-operands.c (add_virtual_operand): Likewise.
8478 (add_call_clobber_ops): Likewise.
8479 (add_call_read_ops): Likewise.
8480 (get_asm_expr_operands): Likewise.
8481 * tree-into-ssa.c (dump_decl_set): Likewise.
8482 (update_ssa): Likewise.
8483 * tree-sra.c (scan_function): Likewise.
8484 (decide_instantiations): Likewise.
8485 (scalarize_parms): Likewise.
8486 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8487 (dsa_named_for): Likewise.
8488 * tree-ssa-structalias.c (update_alias_info): Likewise.
8489 (merge_smts_into): Likewise.
8490
8491 2008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
8492
8493 PR fortran/29549
8494 * doc/invoke.texi (-fcx-limited-range): Document new option.
8495 * toplev.c (process_options): Handle -fcx-fortran-rules.
8496 * common.opt: Add documentation for -fcx-fortran-rules.
8497
8498 2008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
8499
8500 PR c/35162
8501 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8502 actual behaviour and C99.
8503
8504 2008-02-26 Ben Elliston <bje@au.ibm.com>
8505
8506 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8507 (ASM_CPU_POWER6_SPEC): Likewise.
8508 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8509 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8510 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8511
8512 2008-02-25 Richard Guenther <rguenther@suse.de>
8513
8514 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8515 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8516 (lookup_decl_from_uid): Declare.
8517 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8518 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8519 (decl_for_uid_map): New global hashtable mapping DECL_UID
8520 to the decl tree.
8521 (init_ttree): Allocate it.
8522 (insert_decl_to_uid_decl_map): New helper function.
8523 (make_node_stat): Insert new decls into the map.
8524 (copy_node_stat): Likewise.
8525 (lookup_decl_from_uid): New function.
8526 (print_decl_for_uid_map_statistics): New helper.
8527 (dump_tree_statistics): Call it.
8528
8529 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8530 (referenced_var_iterator): Adjust.
8531 (FOR_EACH_REFERENCED_VAR): Adjust.
8532 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8533 (num_referenced_vars): Adjust.
8534 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8535 (first_referenced_var): Remove.
8536 (end_referenced_vars_p): Likewise.
8537 (next_referenced_var): Likewise.
8538 (referenced_var_iterator_set): New helper function.
8539 * tree-dfa.c (referenced_var_lookup): Adjust.
8540 (referenced_var_check_and_insert): Likewise.
8541 (remove_referenced_var): Likewise.
8542 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8543 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8544 (verify_call_clobbering): Likewise.
8545 (verify_memory_partitions): Likewise.
8546 (init_tree_ssa): Allocate bitmap instead of hashtable for
8547 referenced_vars.
8548 (delete_tree_ssa): Adjust.
8549 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8550 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8551 (compute_tag_properties): Likewise.
8552 (set_initial_properties): Likewise.
8553 (find_partition_for): Likewise.
8554 (update_reference_counts): Likewise.
8555 (dump_may_aliases_for): Likewise.
8556 * tree-ssa-operands.c (add_virtual_operand): Likewise.
8557 (add_call_clobber_ops): Likewise.
8558 (add_call_read_ops): Likewise.
8559 (get_asm_expr_operands): Likewise.
8560 * tree-into-ssa.c (dump_decl_set): Likewise.
8561 (update_ssa): Likewise.
8562 * tree-sra.c (scan_function): Likewise.
8563 (decide_instantiations): Likewise.
8564 (scalarize_parms): Likewise.
8565 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8566 (dsa_named_for): Likewise.
8567 * tree-ssa-structalias.c (update_alias_info): Likewise.
8568 (merge_smts_into): Likewise.
8569
8570 2008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
8571
8572 PR target/35258
8573 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8574 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8575 * alias.h (nonoverlapping_memrefs_p): Likewise.
8576
8577 2008-02-25 Jan Beulich <jbeulich@novell.com>
8578
8579 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8580 * config/i386/netware-libgcc.exp: Add __bswap?i2,
8581 __emultls_get_address, __emultls_register_common,
8582 __floatundi?f, and _Unwind_GetIPInfo.
8583 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8584 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8585 (gen_regparm_prefix): Likewise.
8586 (i386_nlm_encode_section_info): Sync with
8587 config/i386/winnt.c:i386_pe_encode_section_info().
8588 (i386_nlm_maybe_mangle_decl_assembler_name): New.
8589 i386_nlm_mangle_decl_assembler_name): New.
8590 (netware_override_options): New.
8591 * config/i386/netware.h (netware_override_options): Declare.
8592 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8593 (i386_nlm_mangle_decl_assembler_name): Declare.
8594 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8595
8596 2008-02-25 Ben Elliston <bje@au.ibm.com>
8597
8598 PR other/32948
8599 * c-decl.c (grokdeclarator): Remove unused local variables
8600 `typedef_type' and `type_as_written'.
8601 * bb-reorder.c
8602 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8603 unused local variable `has_hot_blocks'.
8604 (fix_crossing_conditional_branches): Remove unused local variable
8605 `prev_bb'.
8606
8607 2008-02-25 Uros Bizjak <ubizjak@gmail.com>
8608
8609 PR middle-end/19984
8610 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8611 using DEF_C99_BUILTIN.
8612 (BUILT_IN_NANF): Ditto.
8613 (BUILT_IN_NANL): Ditto.
8614
8615 2008-02-25 Ayal Zaks <zaks@il.ibm.com>
8616 Revital Eres <eres@il.ibm.com>
8617
8618 * modulo-sched.c (calculate_must_precede_follow): Address TODO
8619 regarding the order of two dependent insns in the same row.
8620
8621 2008-02-25 Eric Botcazou <ebotcazou@adacore.com>
8622
8623 * stor-layout.c (layout_decl): Do not bump the alignment of a
8624 bit-field to more than byte alignment if it is packed.
8625
8626 2008-02-24 David Edelsohn <edelsohn@gnu.org>
8627
8628 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8629 e300c2 and e300c3.
8630
8631 2008-02-24 Diego Novillo <dnovillo@google.com>
8632
8633 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8634
8635 PR 33738
8636 * tree-vrp.c (vrp_evaluate_conditional): With
8637 -Wtype-limits, emit a warning when comparing against a
8638 constant outside the natural range of OP0's type.
8639 * c.opt (Wtype-limits): Move ...
8640 * common.opt (Wtype-limits): ... here.
8641
8642 2008-02-24 Edmar Wienskoski <edmar@freescale.com>
8643
8644 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8645 * config/rs6000/e300c2c3.md: New file.
8646 * config/rs6000/rs6000.c (processor_costs): Add new costs for
8647 e300c2 and e300c3.
8648 (rs6000_override_options): Add e300c2 and e300c3 cases to
8649 processor_target_table. Do not allow usage of Altivec or Spe
8650 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8651 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8652 * config/rs6000/rs6000.h (processor_type): Add
8653 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8654 (ASM_CPU_SPEC): Add e300c2 and e300c3.
8655 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8656 and ppce300c3. Include e300c2c3.md.
8657
8658 2008-02-23 David Edelsohn <edelsohn@gnu.org>
8659
8660 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8661 instead of TARGET_STRICT_ALIGN.
8662
8663 2008-02-23 Joseph Myers <joseph@codesourcery.com>
8664
8665 * explow.c (memory_address): Assert that the generated address is
8666 valid.
8667
8668 2008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
8669
8670 PR target/25477
8671 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8672 * config/darwin-ppc-ldouble-patch.def: New file.
8673 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8674 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8675 SUBTARGET_INIT_BUILTINS if defined.
8676 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8677 New functions.
8678
8679 2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
8680
8681 PR rtl-opt/33512
8682 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8683 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8684
8685 2008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
8686
8687 PR pch/35027
8688 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8689 file" warning condtional on -Winvalid-PCH.
8690
8691 2008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
8692
8693 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8694
8695 2008-02-23 Uros Bizjak <ubizjak@gmail.com>
8696
8697 PR target/22076
8698 PR target/34256
8699 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8700 prevent reload from using MMX registers.
8701 (*mov<mode>_internal): Ditto.
8702 (*movv2sf_internal_rex64): Ditto.
8703 (*movv2sf_internal): Ditto.
8704
8705 2008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8706
8707 PR documentation/31569
8708 * doc/install.texi2html: Use makeinfo --no-number-sections.
8709
8710 2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
8711
8712 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8713 ensure that we can address an entire entity > 8 bytes. Don't
8714 generate reg+reg addressing for such data.
8715
8716 2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
8717
8718 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8719 strings when optimizing for size, unless the target cares about
8720 alignment.
8721
8722 2008-02-22 Tom Tromey <tromey@redhat.com>
8723
8724 * regclass.c (current_pass): Remove declaration.
8725
8726 2008-02-22 Anatoly Sokolov <aesok@post.ru>
8727
8728 * config/avr/libgcc.S (__RAMPZ__): Define.
8729 (__do_copy_data): Add for devices with 128KB code memory.
8730
8731 2008-02-22 Nathan Froyd <froydnj@codesourcery.com>
8732
8733 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8734 Use spe_abi.
8735 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8736
8737 2008-02-22 Hans-Peter Nilsson <hp@axis.com>
8738
8739 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8740 GENNONACR_REGS.
8741
8742 2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8743
8744 PR c/19999
8745 * c-typeck.c (build_binary_op): Warn about floating point
8746 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8747
8748 2008-02-21 Janis Johnson <janis187@us.ibm.com>
8749
8750 PR target/34526
8751 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8752 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8753 add vrsave.
8754 (rs6000_override_options): Set altivec_abi as default, not override,
8755 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8756 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8757 is used; use new member spe_abi.
8758 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8759 spe_abi and altivec_abi.
8760
8761 2008-02-22 Tomas Bily <tbily@suse.cz>
8762
8763 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8764
8765 2008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8766
8767 PR bootstrap/35273
8768 * config.build (build_file_translate): Set to `CMD //c' only if
8769 it works.
8770 * Makefile.in (build_file_translate): Improve comment.
8771
8772 2008-02-21 Jan Hubicka <jh@suse.cz>
8773
8774 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8775 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8776 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8777
8778 2008-02-21 Michael Matz <matz@suse.de>
8779
8780 PR target/35264
8781 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8782
8783 2008-02-21 Uros Bizjak <ubizjak@gmail.com>
8784
8785 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8786 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8787 as insn constraint.
8788 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8789 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8790 SSE_VEC_FLOAT_MODE_P as insn constraint.
8791 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8792 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8793 sse4a_movntdf using MODEF mode iterator.
8794 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8795 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8796 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8797 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8798 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8799 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8800 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8801
8802 2008-02-21 Richard Guenther <rguenther@suse.de>
8803
8804 * tree.def (PAREN_EXPR): New tree code.
8805 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8806 and PAREN_EXPR.
8807 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8808 * expr.c (expand_expr_real_1): Likewise.
8809 * tree-inline.c (estimate_num_insns_1): Likewise.
8810 * tree-complex.c (expand_complex_move): Likewise.
8811 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8812 as plain x.
8813
8814 2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
8815
8816 PR target/35225
8817 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8818
8819 2008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
8820
8821 PR target/35190
8822 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8823
8824 * config/sh/sh.c (find_barrier): Don't go past
8825 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8826
8827 2008-02-20 DJ Delorie <dj@redhat.com>
8828
8829 * config/h8300/h8300.md (insv): Force source operand to be a register.
8830
8831 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8832 as a jump, not as a plain insn.
8833
8834 2008-02-20 Seongbae Park <seongbae.park@gmail.com>
8835
8836 * doc/invoke.texi (Warning Options): Add new option
8837 -Wframe-larger-than=.
8838 (-Wframe-larger-than): Document.
8839
8840 * flags.h (warn_frame_larger_than, frame_larger_than_size):
8841 Add declarations for new option variables.
8842
8843 * final.c (final_start_function): Check the frame size
8844 before emission and issue a Wframe-larger-than warning.
8845
8846 * opts.c (warn_frame_larger_than, frame_larger_than_size):
8847 Add definitions for new option variables.
8848 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8849
8850 * common.opt (Wframe-larger-than=): New option.
8851
8852 2008-02-20 Uros Bizjak <ubizjak@gmail.com>
8853
8854 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8855 (<sse>_div<mode>3): Ditto.
8856 (<sse>_vmdiv<mode>3): Ditto.
8857 (<sse>_vmsqrt<mode>2): Ditto.
8858 (*smax<mode>3): Ditto.
8859 (sse5_frcz<mode>2): Ditto.
8860 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
8861 as insn constraint.
8862
8863 2008-02-20 Richard Guenther <rguenther@suse.de>
8864
8865 PR middle-end/35265
8866 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8867 be happy with INTEGRAL_TYPE_P.
8868
8869 2008-02-20 Richard Guenther <rguenther@suse.de>
8870
8871 * fold-const.c (split_tree): Associate floatig-point expressions
8872 if flag_associative_math is set.
8873
8874 2008-02-20 Richard Guenther <rguenther@suse.de>
8875
8876 * tree.h (fold_real_zero_addition_p): Declare.
8877 * fold-const.c (fold_real_zero_addition_p): Export.
8878 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8879 floating-point operations with zero and one.
8880
8881 2008-02-20 Paolo Bonzini <bonzini@gnu.org>
8882
8883 * doc/install.texi: Correct references to CFLAGS, replacing them
8884 with BOOT_CFLAGS. Document flags used during bootstrap for
8885 target libraries.
8886
8887 2008-02-20 Uros Bizjak <ubizjak@gmail.com>
8888
8889 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8890 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8891 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8892 insn constraint.
8893 (smin<mode>3): Ditto from similar patterns.
8894 (smax<mode>3): Ditto.
8895 (*ieee_smin<mode>3): Ditto.
8896 (*ieee_smax<mode>3): Ditto.
8897 * config/i386/sse.md (sse): New mode attribute.
8898 (mov<mode>): Macroize expander from movv4sf and movv2df using
8899 SSEMODEF2P mode iterator.
8900 (<sse>_movnt<mode>): Ditto from similar patterns. Use
8901 SSE_VEC_FLOAT_MODE_P as insn constraint.
8902 (storent<mode>): Ditto.
8903 (storent<mode>): Macroize expander from storentsf and storentdf using
8904 MODEF mode iterator.
8905 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8906 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8907 (abs<mode>2): Ditto from similar patterns.
8908 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8909 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8910 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8911 (<sse>_vmsqrt<mode>2): Ditto.
8912 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8913 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8914 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8915 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8916 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8917 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8918 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8919 insn constraint.
8920 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8921 iterator and SSE_FLOAT_MODE_P as insn constraint.
8922 (<sse>_ucomi): Ditto from similar patterns.
8923 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8924 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8925 SSE_VEC_FLOAT_MODE_P as insn constraint.
8926 (vcond<mode>): Ditto from similar patterns.
8927 (and<mode>3, *and<mode>3): Ditto.
8928 (<sse>_nand<mode>3): Ditto.
8929 (ior<mode>3, *ior<mode>3): Ditto.
8930 (xor<mode>3, *xor<mode>3): Ditto.
8931 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8932 iterator and SSE_FLOAT_MODE_P as insn constraint.
8933 (*nand<mode>3): Ditto from similar patterns.
8934 (*ior<mode>3): Ditto.
8935 (*xor<mode>3): Ditto.
8936
8937 2008-02-20 Ira Rosen <irar@il.ibm.com>
8938
8939 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8940 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8941 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8942
8943 2008-02-19 Jan Hubicka <jh@suse.cz>
8944
8945 * predict.c (tree_bb_level_predictions): Remove variable next
8946 mistakely introduced by previous commit.
8947
8948 2008-02-19 Jan Hubicka <jh@suse.cz>
8949
8950 * predict.c (predict_paths_leading_to): Rewrite.
8951 (predict_paths_for_bb): New.
8952 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8953
8954 2008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8955
8956 PR bootstrap/35218
8957 * Makefile.in (build_file_translate): New.
8958 (gcc-vers.texi): Use it for translating $(abs_srcdir).
8959 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8960 * configure.ac (build_file_translate): Substitute it.
8961 * configure: Regenerate.
8962
8963 2008-02-19 Jan Hubicka <jh@suse.cz>
8964
8965 PR rtl-optimization/34408
8966 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8967 invalid sharing.
8968
8969 2008-02-19 Jan Hubicka <jh@suse.cz>
8970
8971 PR middle-end/28779
8972 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8973 call_expr.
8974
8975 2008-02-19 H.J. Lu <hongjiu.lu@intel.com>
8976
8977 PR Ada/35186
8978 * config/i386/i386-modes.def: Revert the last DI alignment
8979 change until Ada people can look into it.
8980
8981 2008-02-19 Nick Clifton <nickc@redhat.com>
8982
8983 * opts.c (print_specific_help): Fix typo in --help text.
8984
8985 2008-02-19 Jakub Jelinek <jakub@redhat.com>
8986
8987 PR target/35239
8988 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8989 32-bit inline asm without asm alternatives for host GCC < 3.0.
8990
8991 2008-02-19 Richard Guenther <rguenther@suse.de>
8992
8993 PR tree-optimization/34989
8994 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8995 Allow propagation to INDIRECT_REF if we can simplify only.
8996
8997 2008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8998
8999 * c-common.c (warn_for_collisions_1): Use appropriate option when
9000 warning.
9001
9002 2008-02-19 Nick Clifton <nickc@redhat.com>
9003
9004 PR other/31349
9005 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
9006 (handle_options): Fix indentation.
9007 (print_filtered_help): If no language-specific options were
9008 displayed tell the user how to list all the options supported by
9009 the language's front-end.
9010 (print_specific_help): Fix indentation and remove duplicate line.
9011 (common_handle_option): Handle the -v option.
9012 For --help enable the display of undocumented options if the -v
9013 switch has been included on the command line.
9014 For --help= check for overlaps in the arguments between the option
9015 classes and the language names and issue a warning when they
9016 cannot be disambiguated.
9017 * c.opt (v): Pass on to the common option handler.
9018
9019 2008-02-19 Revital Eres <eres@il.ibm.com>
9020
9021 * modulo-sched.c (sms_schedule): Change dump message when
9022 create_ddg function fails.
9023 (try_scheduling_node_in_cycle): Rename row to cycle.
9024 (print_partial_schedule): Rename CYCLE to ROW.
9025
9026 2008-02-19 Christian Bruel <christian.bruel@st.com>
9027 Zdenek Dvorak <ook@ucw.cz>
9028
9029 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
9030
9031 2008-02-19 Uros Bizjak <ubizjak@gmail.com>
9032
9033 PR target/33555
9034 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
9035 (*x86_movdicc_0_m1_se): Ditto.
9036
9037 2008-02-19 Uros Bizjak <ubizjak@gmail.com>
9038
9039 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
9040 (CMPtype): Define as __gcc_CMPtype.
9041 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
9042 (CMPtype): Define as __gcc_CMPtype.
9043
9044 2008-02-19 Hans-Peter Nilsson <hp@axis.com>
9045
9046 Support valgrind 3.3 for --enable-checking=valgrind.
9047 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
9048 here.
9049 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
9050 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
9051 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
9052 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
9053 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
9054 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
9055 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
9056 respectively.
9057 * ggc-zone.c: Similar.
9058 * ggc-page.c: Similar.
9059
9060 2008-02-19 Paul Brook <paul@codesourcery.com>
9061
9062 PR target/35071
9063 * config/arm/ieee754-df.S: Fix do_it typo.
9064 * config/arm/ieee754-sf.S: Fix do_it typo.
9065
9066 2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
9067
9068 PR target/35189
9069 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
9070 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
9071 (OPTION_MASK_ISA_SSE_SET): Likewise.
9072 (OPTION_MASK_ISA_SSE2_SET): Likewise.
9073 (OPTION_MASK_ISA_SSE3_SET): Likewise.
9074 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
9075 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
9076 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
9077 (OPTION_MASK_ISA_SSE4_SET): Likewise.
9078 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
9079 (OPTION_MASK_ISA_SSE5_SET): Likewise.
9080 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
9081 (OPTION_MASK_ISA_MMX_UNSET): Updated.
9082 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
9083 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
9084 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
9085 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
9086 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
9087 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
9088 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
9089 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
9090 (OPTION_MASK_ISA_SSE4): Removed.
9091 (ix86_handle_option): Turn on bits in ix86_isa_flags and
9092 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
9093 (override_options): Don't turn on implied SSE/MMX bits in
9094 ix86_isa_flags.
9095
9096 2008-02-18 H.J. Lu <hongjiu.lu@intel.com>
9097
9098 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
9099 32bit host.
9100
9101 2008-02-18 Joey Ye <joey.ye@intel.com>
9102
9103 PR middle-end/34921
9104 * tree-nested.c (insert_field_into_struct): Set type alignment
9105 to field alignment if the former is less than the latter.
9106
9107 2008-02-18 Jakub Jelinek <jakub@redhat.com>
9108
9109 * BASE-VER: Set to 4.4.0.
9110
9111 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9112
9113 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9114 * doc/cfg.texi: Likewise.
9115 * doc/extend.texi: Likewise.
9116 * doc/gty.texi: Likewise.
9117 * doc/invoke.texi: Likewise.
9118 * doc/loop.texi: Likewise.
9119 * doc/md.texi: Likewise.
9120 * doc/passes.texi: Likewise.
9121 * doc/rtl.texi: Likewise.
9122 * doc/sourcebuild.texi: Likewise.
9123 * doc/tm.texi: Likewise.
9124 * doc/tree-ssa.texi: Likewise.
9125
9126 2008-02-17 Richard Guenther <rguenther@suse.de>
9127
9128 PR middle-end/35227
9129 * tree-complex.c (init_parameter_lattice_values): Handle parameters
9130 without default definition.
9131
9132 2008-02-17 Richard Guenther <rguenther@suse.de>
9133
9134 PR tree-optimization/35231
9135 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9136 if A | B != 1.
9137
9138 2008-02-17 Uros Bizjak <ubizjak@gmail.com>
9139
9140 Revert:
9141 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
9142 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9143 libgcc_cmp_return mode.
9144
9145 2008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9146
9147 PR c/28368
9148 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9149
9150 2008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
9151
9152 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9153 multilibs.
9154
9155 2008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9156
9157 * doc/c-tree.texi: Use `@.' where appropriate.
9158 * doc/extend.texi: Likewise.
9159 * doc/install.texi: Likewise.
9160 * doc/invoke.texi: Likewise.
9161 * doc/loop.texi: Likewise.
9162 * doc/makefile.texi: Likewise.
9163 * doc/md.texi: Likewise.
9164 * doc/passes.texi: Likewise.
9165 * doc/standards.texi: Likewise.
9166 * doc/tm.texi: Likewise.
9167
9168 2008-02-15 Jakub Jelinek <jakub@redhat.com>
9169
9170 PR middle-end/35196
9171 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9172 in entry_bb.
9173 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9174 rather than in entry_bb.
9175
9176 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
9177
9178 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9179 libgcc_cmp_return mode.
9180
9181 2008-02-15 Jakub Jelinek <jakub@redhat.com>
9182
9183 PR middle-end/35130
9184 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9185 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9186
9187 2008-02-15 Richard Guenther <rguenther@suse.de>
9188 Zdenek Dvorak <ook@ucw.cz>
9189
9190 PR tree-optimization/35164
9191 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9192 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9193 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9194 Only propagate addresses which do not have abnormal SSA_NAMEs
9195 in their operands.
9196
9197 2008-02-15 Joseph Myers <joseph@codesourcery.com>
9198
9199 PR target/35088
9200 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9201
9202 2008-02-15 Jan Hubicka <jh@suse.cz>
9203
9204 PR middle-end/35149
9205 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9206
9207 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
9208
9209 PR middle-end/34621
9210 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9211 when calculating alignment_pad.
9212
9213 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
9214
9215 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9216 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9217 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9218 and STACK_BOUNDARY define.
9219
9220 2008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
9221
9222 PR preprocessor/35061
9223 * c-pragma.c (handle_pragma_pop_macro): Check that
9224 pushed_macro_table has been allocated.
9225
9226 2008-02-14 Eric Botcazou <ebotcazou@adacore.com>
9227
9228 PR middle-end/35136
9229 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9230 (force_gimple_operand): Likewise.
9231 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9232 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9233 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9234 (find_interesting_uses_address): Check addressability and alignment
9235 of the base expression only after substituting bases of IVs into it.
9236
9237 2008-02-14 Michael Matz <matz@suse.de>
9238
9239 PR target/34930
9240 * function.c (instantiate_virtual_regs_in_insn): Reload address
9241 before falling back to reloading the whole operand.
9242
9243 2008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
9244
9245 * config/s390/s390.c (s390_mainpool_start): Emit the pool
9246 before the first section switch note.
9247
9248 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9249
9250 * doc/bugreport.texi: Update copyright years.
9251 * doc/c-tree.texi: Likewise.
9252 * doc/cfg.texi: Likewise.
9253 * doc/cpp.texi: Likewise.
9254 * doc/cppinternals.texi: Likewise.
9255 * doc/fragments.texi: Likewise.
9256 * doc/frontends.texi: Likewise.
9257 * doc/gcc.texi: Likewise.
9258 * doc/gty.texi: Likewise.
9259 * doc/hostconfig.texi: Likewise.
9260 * doc/implement-c.texi: Likewise.
9261 * doc/libgcc.texi: Likewise.
9262 * doc/loop.texi: Likewise.
9263 * doc/makefile.texi: Likewise.
9264 * doc/options.texi: Likewise.
9265 * doc/passes.texi: Likewise.
9266 * doc/rtl.texi: Likewise.
9267 * doc/sourcebuild.texi: Likewise.
9268 * doc/standards.texi: Likewise.
9269 * doc/tree-ssa.texi: Likewise.
9270 * doc/trouble.texi: Likewise.
9271
9272 * doc/extend.texi: Use @: or add comma where appropriate.
9273 * doc/invoke.texi: Likewise.
9274 * doc/tm.texi: Likewise.
9275
9276 2008-02-14 Alan Modra <amodra@bigpond.net.au>
9277
9278 PR target/34393
9279 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9280 to a reg.
9281
9282 2008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
9283
9284 * doc/md.texi (clz, ctz): Add reference.
9285 * doc/rtl.texi (clz, ctz): Likewise.
9286
9287 2008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9288
9289 PR other/35148
9290 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9291 srcdir.
9292
9293 2008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
9294
9295 * config/s390/s390.c (struct constant_pool): New field
9296 emit_pool_after added.
9297 (s390_mainpool_start): Set the emit_pool_after flag according
9298 to the section switch notes.
9299 (s390_mainpool_finish): Consider emit_pool_after when emitting
9300 the literal pool at the end of the function.
9301 (s390_chunkify_start): Force literal pool splits at section
9302 switch notes.
9303
9304 2008-02-13 Michael Matz <matz@suse.de>
9305
9306 PR debug/35065
9307 * var-tracking.c (clobber_variable_part): Correctly traverse the
9308 list.
9309
9310 2008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9311
9312 PR 29673
9313 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9314 Add -fdump-ipa-inline.
9315 * tree-dump.c (dump_files): Remove tree-inlined dump.
9316 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9317
9318 2008-02-12 Richard Guenther <rguenther@suse.de>
9319
9320 PR tree-optimization/35171
9321 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9322 default defs.
9323
9324 2008-02-12 Richard Guenther <rguenther@suse.de>
9325
9326 PR middle-end/35163
9327 * fold-const.c (fold_widened_comparison): Use get_unwidened in
9328 value-preserving mode. Disallow final truncation.
9329
9330 2008-02-12 Eric Botcazou <ebotcazou@adacore.com>
9331
9332 PR middle-end/35136
9333 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9334 code from here to...
9335 (force_gimple_operand): ...here.
9336
9337 2008-02-12 Jakub Jelinek <jakub@redhat.com>
9338
9339 PR c++/35144
9340 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9341 non-compatible pointers.
9342 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9343 different FIELD_DECLs, try harder by comparing field offsets, sizes
9344 and types.
9345
9346 PR inline-asm/35160
9347 * function.c (match_asm_constraints_1): Don't replace the same input
9348 multiple times.
9349
9350 2008-02-12 Anatoly Sokolov <aesok@post.ru>
9351
9352 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9353 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9354 (expand_epilogue): Restore RAMPZ register.
9355 * config/avr/avr.md (RAMPZ_ADDR): New constant.
9356
9357 2008-02-11 Kai Tietz <kai.tietz@onevision.com>
9358
9359 * config/i386/cygwin.asm: (__alloca): Correct calling
9360 convention and alignment.
9361 (__chkstk): Force 8 byte stack alignment.
9362
9363 2008-02-11 Uros Bizjak <ubizjak@gmail.com>
9364 Richard Guenther <rguenther@suse.de>
9365
9366 PR tree-optimization/33992
9367 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9368 the zero we compare against.
9369
9370 2008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
9371
9372 PR libfortran/35063
9373 * gthr-win32.h (__gthread_mutex_destroy_function): New function
9374 to CloseHandle after unlocking to prevent accumulation of handle
9375 count.
9376
9377 2008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9378
9379 PR middle_end/34150
9380 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9381 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
9382 and update LABEL_NUSES during and after reload.
9383
9384 2008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
9385
9386 PR middle-end/34627
9387 * combine.c (simplify_if_then_else): Make sure the comparison is
9388 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9389
9390 2008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
9391
9392 PR bootstrap/35051
9393 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9394 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9395 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9396 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9397 * tree.h (get_type_static_bounds): Likewise.
9398
9399 2008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9400
9401 * doc/invoke.texi (Option Summary, C++ Dialect Options)
9402 (Objective-C and Objective-C++ Dialect Options, Warning Options):
9403 Make -Wfoo language annotations match what the compiler outputs.
9404
9405 2008-02-08 Sa Liu <saliu@de.ibm.com>
9406
9407 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
9408 intrinsics spu_convts, spu_convtu, spu_convtf.
9409
9410 2008-02-08 Hans-Peter Nilsson <hp@axis.com>
9411
9412 * doc/extend.texi (Function Attributes) <noinline>: Mention
9413 asm ("") as method to keep calls.
9414
9415 2008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9416
9417 PR other/32754
9418 * doc/options.texi (Options): Replace references to opts.sh with
9419 optc-gen.awk.
9420 * opts-common.c: Likewise.
9421 * optc-gen.awk: Likewise.
9422
9423 2008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
9424
9425 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9426
9427 2008-02-07 Richard Henderson <rth@redhat.com>
9428
9429 PR rtl-opt/33410
9430 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9431 EXPR_LIST for the REG_EQUAL instead of a comparison with a
9432 funny mode.
9433
9434 2008-02-07 Uros Bizjak <ubizjak@gmail.com>
9435
9436 PR tree-optimization/35085
9437 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9438 for operand entry oe2 in addition to operand entry oe3 in order to
9439 expose more opportunities for vectorizer sum reduction.
9440
9441 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9442
9443 PR other/35107
9444 * Makefile.in (LIBS): Remove $(GMPLIBS).
9445 (cc1-dummy, cc1): Add $(GMPLIBS).
9446
9447 2008-02-06 Jan Hubicka <jh@suse.cz>
9448
9449 PR target/23322
9450 * i386.md (moddf_integer): Do not produce partial memory stalls for
9451 targets where it hurts.
9452
9453 2008-02-06 Uros Bizjak <ubizjak@gmail.com>
9454
9455 PR target/35083
9456 * optabs.c (expand_float): Do not check for decimal modes when
9457 expanding unsigned integer through signed conversion.
9458
9459 2008-02-06 Nick Clifton <nickc@redhat.com>
9460
9461 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9462 inside the clobber with a match_operand and duplicated operand
9463 number in the constraint.
9464 (ineqbranchsi): Delete redundant comment.
9465
9466 2008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
9467
9468 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
9469 builtin_define ("__USE_INIT_FINI__").
9470 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9471 -msx multilibs.
9472 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9473
9474 2008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9475
9476 PR documentation/30330
9477 * doc/invoke.texi (C++ Dialect Options)
9478 (Objective-C and Objective-C++ Dialect Options, Warning Options):
9479 For each warning option -Wfoo that allows -Wno-foo, ensure both
9480 -Wfoo and -Wno-foo are listed in the option index. Fix index
9481 entry of -Wswitch-default, index -Wnormalized= including the
9482 `=', and -Wlarger-than-@var{len} including @var{len}.
9483
9484 2008-02-05 Uros Bizjak <ubizjak@gmail.com>
9485
9486 * config/i386/i386.md (floatunssisf2): Use
9487 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9488 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9489 Macroize expander using MODEF mode iterator.
9490
9491 2008-02-05 Diego Novillo <dnovillo@google.com>
9492
9493 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9494
9495 PR 33738
9496 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9497
9498 2008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9499
9500 PR other/35070
9501 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9502
9503 2008-02-05 H.J. Lu <hongjiu.lu@intel.com>
9504
9505 PR target/35084
9506 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9507 to indicate if a message should be generated.
9508 (init_cumulative_args): Updated.
9509 (function_value_32): Likewise.
9510
9511 2008-02-05 Joseph Myers <joseph@codesourcery.com>
9512
9513 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9514
9515 2008-02-05 Uros Bizjak <ubizjak@gmail.com>
9516
9517 PR target/35083
9518 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9519 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9520
9521 2008-02-04 Diego Novillo <dnovillo@google.com>
9522
9523 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9524
9525 PR 33738
9526 * tree-vrp.c (vrp_evaluate_conditional): With
9527 -Wtype-limits, emit a warning when comparing against a
9528 constant outside the natural range of OP0's type.
9529
9530 2008-02-04 Richard Guenther <rguenther@suse.de>
9531
9532 PR middle-end/33631
9533 * expr.c (count_type_elements): Give for unions instead of
9534 guessing.
9535
9536 2008-02-04 Richard Guenther <rguenther@suse.de>
9537
9538 PR middle-end/35043
9539 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9540 to TYPE_DOMAINs base type instead of using bitsizetype here.
9541
9542 2008-02-03 Jason Merrill <jason@redhat.com>
9543
9544 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9545
9546 2008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9547
9548 PR other/29972
9549 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9550 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9551 (RS/6000 and PowerPC Options): Fix typos and markup.
9552 * doc/passes.texi (Tree-SSA passes): Likewise.
9553
9554 2008-02-02 Michael Matz <matz@suse.de>
9555
9556 PR target/35045
9557 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9558 from record_last_reg_set_info.
9559 (record_last_reg_set_info): Take an RTX argument, iterate over all
9560 constituent hardregs.
9561 (record_last_set_info, record_opr_changes): Change calls to
9562 new signature or to record_last_reg_set_info_regno.
9563
9564 2008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
9565
9566 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9567
9568 2008-02-01 Hans-Peter Nilsson <hp@axis.com>
9569
9570 PR rtl-optimization/34773
9571 * reg-notes.def (EQUAL): Mention significance of combination of
9572 REG_EQUAL and REG_RETVAL.
9573 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9574 insn that has a REG_RETVAL.
9575
9576 2008-02-01 Roger Sayle <roger@eyesopen.com>
9577
9578 PR bootstrap/33781
9579 * configure.ac (--enable-fixed-point): Disable unless explicitly
9580 requested on IRIX.
9581 * configure: Regenerate.
9582
9583 2008-02-01 Richard Guenther <rguenther@suse.de>
9584
9585 PR other/35042
9586 * invoke.texi (-finline-limit): Remove no longer true parts
9587 of the documentation. Note that there is no default value.
9588
9589 2008-02-01 Andrew Pinski <pinskia@gmail.com>
9590 Mark Mitchell <mark@codesourcery.com>
9591 Ben Elliston <bje@au.ibm.com>
9592
9593 PR c/29326
9594 * doc/extend.texi (Other Builtins): Document.
9595
9596 2008-01-31 Tom Browder <tom.browder@gmail.com>
9597
9598 * doc/c-tree.texi (Types): Fix grammar.
9599 (Expression trees): Ditto.
9600 * doc/passes.texi (Tree-SSA passes): Ditto.
9601
9602 * doc/configterms.texi (Configure Terms): Fix typo.
9603 * doc/cpp.texi (Common Predefined Macros): Ditto.
9604 * doc/md.texi (Machine Constraints): Ditto.
9605
9606 * doc/makefile.texi (Makefile): Add comma.
9607
9608 2008-01-31 Tom Browder <tom.browder@gmail.com>
9609 Gerald Pfeifer <gerald@pfeifer.com>
9610
9611 * doc/sourcebuild.texi (Front End): Remove references to CVS
9612 and CVSROOT/modules.
9613 (Texinfo Manuals): Replace reference to CVS by one to SVN.
9614 (Back End): Remove reference to CVS.
9615
9616 2008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
9617
9618 PR target/34900
9619 * config/mips/mips.c (gen_load_const_gp): New function, taking a
9620 comment from...
9621 (mips16_gp_pseudo_reg): ...here.
9622 * config/mips/mips.md (load_const_gp): Replace with...
9623 (load_const_gp_<mode>): ...this :P-based insn.
9624
9625 2008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9626
9627 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9628 options. Minor fixes.
9629 (-std): Move reference to standards closer to where language
9630 standards are first mentioned.
9631
9632 2008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
9633
9634 PR rtl-optimization/34995
9635 * reload.c (alternative_allows_const_pool_ref): Take an rtx
9636 parameter and return a bool. If the rtx parameter is nonnull,
9637 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9638 (find_reloads): Update call accordingly. Pass the new operand
9639 if it needed no address reloads, otherwise pass null.
9640
9641 2008-01-30 Richard Henderson <rth@redhat.com>
9642
9643 PR c/34993
9644 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9645 for unbounded arrays.
9646
9647 2008-01-30 Silvius Rus <rus@google.com>
9648
9649 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9650
9651 2008-01-30 Jan Hubicka <jh@suse.cz>
9652
9653 PR target/34982
9654 * i386.c (init_cumulative_args): Use real function declaration when
9655 calling locally.
9656
9657 2008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
9658
9659 PR rtl-optimization/34998
9660 * global.c (build_insn_chain): Treat non-subreg_lowpart
9661 SUBREGs of pseudos as clobbering all the words covered by the
9662 SUBREG, not just all the bytes.
9663 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
9664 original df_ref rather than an extract parameter.
9665 (global_conflicts): Update call accordingly.
9666
9667 2008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
9668
9669 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9670 the overflow check to make it easier to read.
9671 (__fixtfdi): Change the type of the ll member in union
9672 long_double to UDItype_x.
9673
9674 2008-01-30 Jakub Jelinek <jakub@redhat.com>
9675
9676 PR middle-end/34969
9677 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9678 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9679 * tree-inline.c (fold_marked_statements): Call
9680 cgraph_update_edges_for_call_stmt if folding a call statement.
9681 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9682 debug_generic_stmt calls, reset it back afterwards.
9683
9684 PR c/35017
9685 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9686 static decls.
9687 * c-typeck.c (build_external_ref): Don't pedwarn about
9688 static vars in current function's scope.
9689
9690 2008-01-29 Joseph Myers <joseph@codesourcery.com>
9691
9692 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9693
9694 2008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
9695
9696 PR c/35002
9697 * ipa-struct-reorg.c: Fix spelling.
9698 * params.def: Ditto.
9699
9700 2008-01-29 Richard Guenther <rguenther@suse.de>
9701
9702 PR middle-end/35006
9703 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9704 field.
9705 * tree-inline.c (remap_type): Increment remapping_type_depth
9706 around remapping types.
9707 (copy_body_r): Only add referenced variables if they are referenced
9708 from code, not types.
9709
9710 2008-01-29 Douglas Gregor <doug.gregor@gmail.com>
9711
9712 PR c++/34055
9713 PR c++/34103
9714 PR c++/34219
9715 PR c++/34606
9716 PR c++/34753
9717 PR c++/34754
9718 PR c++/34755
9719 PR c++/34919
9720 PR c++/34961
9721 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9722 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9723
9724 2008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
9725
9726 PR target/34412
9727 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
9728 pointer for tiny stack.
9729
9730 2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
9731
9732 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9733
9734 2008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
9735
9736 * config/vx-common.h: Fix typo in comment.
9737
9738 2008-01-28 Ian Lance Taylor <iant@google.com>
9739
9740 PR c++/34862
9741 PR c++/33407
9742 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9743 coalesce pointers if they have different DECL_NO_TBAA_P values.
9744 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9745 between variables with different DECL_NO_TBAA_P values.
9746
9747 2008-01-28 Nathan Froyd <froydnj@codesourcery.com>
9748
9749 PR 31535
9750 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9751 are not legitimate small data references on SPE targets.
9752
9753 2008-01-28 David Daney <ddaney@avtrex.com>
9754
9755 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9756
9757 2008-01-28 David Daney <ddaney@avtrex.com>
9758
9759 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
9760
9761 2008-01-27 Joseph Myers <joseph@codesourcery.com>
9762
9763 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9764 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9765 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9766 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9767 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9768 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9769 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9770 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9771
9772 2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
9773
9774 * basic-block.h (condjump_equiv_p): Fix comment.
9775
9776 2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
9777
9778 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9779 print_generic_stmt_indented): Fix comment.
9780
9781 2008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
9782
9783 * configure.ac (__stack_chk_fail): Add detecion for availability
9784 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9785 * configure: Regenerate.
9786
9787 2008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
9788
9789 PR middle-end/34688
9790 * final.c (output_addr_const): Handle TRUNCATE.
9791
9792 2008-01-26 Zdenek Dvorak <ook@ucw.cz>
9793
9794 PR target/34711
9795 * tree-ssa-loop-ivopts.c (comp_cost): New type.
9796 (zero_cost, infinite_cost): New constants.
9797 (struct cost_pair): Change type of cost to comp_cost.
9798 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9799 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9800 New functions.
9801 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9802 split_address_cost, ptr_difference_cost, difference_cost,
9803 get_computation_cost_at, get_computation_cost,
9804 determine_use_iv_cost_generic, determine_use_iv_cost_address,
9805 determine_use_iv_cost_condition, determine_use_iv_costs,
9806 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9807 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9808 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9809 Change type of cost to comp_cost.
9810 (determine_iv_cost): Increase cost of non-original ivs, instead
9811 of decreasing the cost of original ones.
9812 (get_address_cost): Indicate the complexity of the addressing mode
9813 in comp_cost.
9814 (try_add_cand_for): Prefer using ivs not specific to some object.
9815 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9816
9817 2008-01-26 Peter Bergner <bergner@vnet.ibm.com>
9818 Janis Johnson <janis187@us.ibm.com>
9819
9820 PR target/34814
9821 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9822 (TARGET_INSTANTIATE_DECLS): Likewise.
9823 * target.h (expand_to_rtl_hook): New target hook.
9824 (instantiate_decls): Likewise.
9825 * function.c (instantiate_decl): Make non-static. Rename to...
9826 (instantiate_decl_rtl): ... this.
9827 (instantiate_expr): Use instantiate_decl_rtl.
9828 (instantiate_decls_1): Likewise.
9829 (instantiate_decls): Likewise.
9830 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9831 * function.h (instantiate_decl_rtl): Add prototype.
9832 * cfgexpand.c (target.h): New include.
9833 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9834 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9835 (TARGET_INSTANTIATE_DECLS): Likewise.
9836 (TARGET_INITIALIZER): New target hooks added.
9837 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9838 New prototype.
9839 * config/rs6000/rs6000.c (tree-flow.h): New include.
9840 (machine_function): Add sdmode_stack_slot field.
9841 (rs6000_alloc_sdmode_stack_slot): New function.
9842 (rs6000_instantiate_decls): Likewise.
9843 (rs6000_secondary_memory_needed_rtx): Likewise.
9844 (rs6000_check_sdmode): Likewise.
9845 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9846 (TARGET_INSTANTIATE_DECLS): Likewise.
9847 (rs6000_hard_regno_mode_ok): Allow SDmode.
9848 (num_insns_constant): Likewise. Handle _Decimal32 constants.
9849 (rs6000_emit_move): Handle SDmode.
9850 (function_arg_advance): Likewise.
9851 (function_arg): Likewise.
9852 (rs6000_gimplify_va_arg): Likewise. Add special handling of
9853 SDmode var args for 32-bit compiles.
9854 (rs6000_secondary_reload_class): Handle SDmode.
9855 (rs6000_output_function_epilogue): Likewise.
9856 (rs6000_function_value): Simplify if statement.
9857 (rs6000_libcall_value): Likewise.
9858 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9859 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9860 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9861 (movsd_hardfloat): New define_insn.
9862 (movsd_softfloat): Likewise.
9863 (movsd_store): Likewise.
9864 (movsd_load): Likewise.
9865 (extendsddd2): Likewise.
9866 (extendsdtd2): Likewise.
9867 (truncddsd2): Likewise.
9868 (movdd_hardfloat64): Fixup comment.
9869 (UNSPEC_MOVSD_LOAD): New constant.
9870 (UNSPEC_MOVSD_STORE): Likewise.
9871
9872 2008-01-26 Jakub Jelinek <jakub@redhat.com>
9873
9874 PR c++/34965
9875 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9876 TRUTH_XOR_EXPR.
9877 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9878 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9879 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9880 and TRUTH_XOR_EXPR.
9881
9882 2008-01-26 David Edelsohn <edelsohn@gnu.org>
9883
9884 PR target/34794
9885 * config.gcc: Separate AIX 5.3 from AIX 6.1.
9886 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9887 __LONGDOUBLE128 too.
9888 * config/rs6000/aix61.h: New file.
9889
9890 2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
9891
9892 PR rtl-optimization/34959
9893 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9894 popcount and parity rtxes the same mode as their operand.
9895 Truncate or extend the result to the return value's mode
9896 if necessary.
9897
9898 2008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
9899
9900 PR target/34981
9901 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9902 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9903 to GOT_VERSION_REGNUM.
9904 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9905 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9906 * config/mips/mips.c (mips_emit_call_insn): New function.
9907 (mips_call_tls_get_addr): Call mips_expand_call directly.
9908 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9909 emit_call_insn.
9910 (mips16_build_call_stub): Likewise. Return the call insn or null.
9911 (mips_expand_call): Update the call to mips16_build_call_stub
9912 accordingly and a remove redundant condition. Assert that MIPS16
9913 stubs do not use lazy binding. Use mips_emit_call_insn and return
9914 the call insn.
9915 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9916 TARGET_USE_GOT.
9917 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9918 (mips_avoid_hazard): Remove hazard_set handling.
9919 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9920 (UNSPEC_RESTORE_GP): ...this.
9921 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9922 (FAKE_CALL_REGNO): Rename to...
9923 (GOT_VERSION_REGNUM): ...this.
9924 (type): Add "ghost" value. Add an associated insn reservation.
9925 (hazard_set): Remove.
9926 (exception_receiver): Rename to...
9927 (restore_gp): ...this and update the unspec identifier accordingly.
9928 (exception_receiver, nonlocal_got_receiver): New expanders.
9929 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
9930 FAKE_CALL_REGNO. Remove hazard_set attribute.
9931 (set_got_version, update_got_version): New patterns.
9932
9933 2008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
9934
9935 PR target/34970
9936 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9937
9938 2008-01-25 Joseph Myers <joseph@codesourcery.com>
9939
9940 PR other/31955
9941 * doc/install.texi2html: Generate gcc-vers.texi.
9942
9943 2008-01-25 DJ Delorie <dj@redhat.com>
9944
9945 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9946
9947 2008-01-25 Joseph Myers <joseph@codesourcery.com>
9948
9949 * config/c4x: Remove directory.
9950 * config.gcc (crx-*, mt-*): Mark obsolete.
9951 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9952 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9953 sh-*-rtemscoff*): Remove cases.
9954 * defaults.h (C4X_FLOAT_FORMAT): Remove.
9955 * real.c (encode_c4x_single, decode_c4x_single,
9956 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9957 c4x_extended_format): Remove.
9958 * real.h (c4x_single_format, c4x_extended_format): Remove.
9959 * doc/extend.texi (interrupt, naked): Remove mention of attributes
9960 on C4x.
9961 (Pragmas): Remove comment about c4x pragmas.
9962 * doc/install.texi (c4x): Remove target-specific instructions.
9963 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9964 * doc/md.texi (Machine Constraints): Remove C4x documentation.
9965 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9966 refer to C4x source files as examples.
9967 (C4X_FLOAT_FORMAT): Remove documentation.
9968
9969 2008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
9970
9971 * config/bfin/bfin.c (override_options): Reorder tests so that
9972 flag_pic gets enabled for -msep-data.
9973
9974 2008-01-25 Richard Guenther <rguenther@suse.de>
9975
9976 PR middle-end/32244
9977 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9978 to its bitfield precision if required.
9979
9980 2008-01-25 Jakub Jelinek <jakub@redhat.com>
9981
9982 PR middle-end/33880
9983 * tree-nested.c (walk_omp_for): New function.
9984 (convert_nonlocal_reference, convert_local_reference): Call
9985 walk_omp_for on OMP_FOR.
9986 (convert_call_expr): Call walk_body on OMP_FOR's
9987 OMP_FOR_PRE_INIT_BODY.
9988
9989 2008-01-25 Richard Guenther <rguenther@suse.de>
9990
9991 PR tree-optimization/34966
9992 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9993 default defs and PHI_NODEs we have to insert after the
9994 defining statement.
9995
9996 2008-01-24 Nick Clifton <nickc@redhat.com>
9997
9998 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9999 Provide a default definition.
10000 (LIBGCC2_UNITS_PER_WORD): Likewise.
10001
10002 * config/stormy16/stormy16.c: Include df.h for the prototype
10003 for df_regs_ever_live_p.
10004 (xstormy16_expand_builtin_va_start): Convert the stack offset
10005 into a component_ref and then use POINTER_PLUS_EXPR to add it
10006 to the incoming_virtual_args_rtx.
10007 (xstormy16_gimplify_va_arg_expr): Rename to
10008 xstormy16_gimplify_va_arg_expr.
10009 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
10010 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
10011 xstormy16_gimplify_va_arg_expr.
10012 Fix up some formatting issues.
10013
10014 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
10015 Move to predicates.md.
10016 (xs_hi_general_operand): Likewise.
10017 (xs_hi_nonmemory_operand): Likewise.
10018 * config/stormy16/predicates.md:
10019 (xstormy16_carry_plus_operand): New predicate.
10020 (xs_hi_general_operand): New predicate.
10021 (xs_hi_nonmemory_operand): New predicate.
10022 * config/stormy16/stormy16-protos.h:
10023 (xstormy16_carry_plus_operand): Delete prototype.
10024 (xs_hi_general_operand): Likewise.
10025 (xs_hi_nonmemory_operand): Likewise.
10026
10027 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
10028 modifiers as they are no longer needed and they can trigger
10029 reload spill failures.
10030
10031 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
10032 with a match_operand in order to help reload.
10033
10034 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
10035 constraint with 'e' for the 8th alternative as this version of
10036 the mov.w instruction only accepts the lower 8 registers.
10037
10038 2008-01-25 Uros Bizjak <ubizjak@gmail.com>
10039
10040 PR target/34856
10041 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
10042 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
10043 vector elements.
10044
10045 2008-01-25 Jakub Jelinek <jakub@redhat.com>
10046
10047 PR middle-end/33333
10048 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
10049
10050 2008-01-25 Golovanevsky Olga <olga@il.ibm.com>
10051
10052 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
10053 New functions.
10054 (remove_structure): Update allocations list before removing structure.
10055
10056 2008-01-25 Golovanevsky Olga <olga@il.ibm.com>
10057
10058 * ipa-struct-reorg.c (is_safe_cond_expr,
10059 create_new_stmts_for_cond_expr): Use integer_zerop function,
10060 that recognize not only zero-pointer, but zero-integer too.
10061
10062 2008-01-25 Ben Elliston <bje@au.ibm.com>
10063
10064 PR other/22232
10065 * fixproto: Escape "." in sed expression that strips leading "./".
10066
10067 2008-01-24 H.J. Lu <hongjiu.lu@intel.com>
10068
10069 PR driver/34904
10070 * gcc.c (SWITCH_OK): Removed.
10071 (SWITCH_LIVE): Changed to bit.
10072 (SWITCH_FALSE): Likewise.
10073 (SWITCH_IGNORE): Likewise.
10074 (switchstr): Change live_cond to unsigned int.
10075 (process_command): Replace SWITCH_OK with 0.
10076 (do_self_spec): Likewise.
10077 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
10078 (give_switch): Likewise.
10079 (used_arg): Likewise.
10080 (do_spec_1): Set the SWITCH_IGNORE bit.
10081 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
10082 bits. Set the SWITCH_LIVE bit.
10083
10084 2008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
10085
10086 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
10087
10088 2008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
10089
10090 PR tree-optimization/34472
10091 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
10092 parameter to a "bool *" and set *DATA to false if there is
10093 an unsafe access. Do not delete the structure here.
10094 (check_cond_exprs): Delete it here instead.
10095 (check_cond_exprs, exclude_cold_structs): Do not increase
10096 I when removing a structure.
10097
10098 2008-01-24 Uros Bizjak <ubizjak@gmail.com>
10099
10100 PR target/34856
10101 * config/i386/i386.c (ix86_expand_vector_init): Consider only
10102 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10103
10104 2008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
10105
10106 PR middle-end/34934
10107 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10108 a fixed vector for stack.
10109
10110 2008-01-24 Ben Elliston <bje@au.ibm.com>
10111
10112 PR c++/25701
10113 * doc/gcc.texi (Software development): Add a direntry for g++.
10114
10115 2008-01-23 Hans-Peter Nilsson <hp@axis.com>
10116
10117 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10118 stale and straggling -fforce-addr comments above.
10119
10120 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10121 define.
10122 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10123 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10124
10125 2008-01-23 Michael Matz <matz@suse.de>
10126
10127 PR debug/34895
10128 * dwarf2out.c (force_type_die): Use modified_type_die instead of
10129 gen_type_die.
10130
10131 2008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
10132
10133 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10134 malloc result type.
10135
10136 2008-01-23 Anatoly Sokolov <aesok@post.ru>
10137
10138 * config/avr/avr.c (avr_current_arch): New variable.
10139 (avr_arch_types): Add 'avr31' and 'avr51' entries.
10140 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10141 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10142 (avr_override_options): Init 'avr_current_arch'.
10143 (base_arch_s): Move from here...
10144 * config/avr/avr.h (base_arch_s): ... here. Add new members
10145 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
10146 'mega' to 'have_jmp_call'.
10147 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
10148 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
10149 macros.
10150 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
10151 architectures.
10152 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10153 MULTILIB_MATCHES): (Ditto.).
10154
10155 2008-01-23 Richard Guenther <rguenther@suse.de>
10156
10157 PR middle-end/31529
10158 * cgraphunit.c (cgraph_reset_node): Always mark the node
10159 not reachable if it is not queued already.
10160
10161 2008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
10162
10163 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10164 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10165 (cputype_selected): New static variable.
10166 (bfin_handle_option): Set it if -mcpu is used.
10167 (override_option): Select default set of workarounds if no cpu type
10168 selected on the command line.
10169 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
10170
10171 From Michael Frysinger <michael.frysinger@analog.com>
10172 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10173 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10174
10175 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10176 for bf547, bf523, bf524, and bf526.
10177 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
10178 bf526.
10179 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10180 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10181 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10182 __ADSPBF547__ and __ADSPBF54x__ for bf547.
10183 * doc/invoke.texi (Blackfin Options): Document that
10184 -mcpu now accept bf547, bf523, bf524, and bf526.
10185
10186 2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
10187
10188 PR rtl-optimization/34628
10189 * combine.c (try_combine): Stop and undo after the first combination
10190 if an autoincrement side-effect on the first insn has effectively
10191 been lost.
10192
10193 2008-01-22 David Edelsohn <edelsohn@gnu.org>
10194
10195 PR target/34529
10196 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10197 Offset addresses are not valid for Altivec or paired float modes.
10198
10199 2008-01-22 Jakub Jelinek <jakub@redhat.com>
10200
10201 PR c++/34607
10202 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10203 if DECL_INITIAL (decl) is error_mark_node.
10204
10205 PR c++/34914
10206 * c-common.c (handle_vector_size_attribute): Only allow
10207 integral, scalar float and fixed point types. Handle OFFSET_TYPE
10208 the same way as pointer, array etc. types.
10209 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10210
10211 PR c++/34917
10212 * tree.c (build_type_attribute_qual_variant): Call
10213 build_qualified_type if attributes are equal, but quals are not.
10214
10215 2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10216
10217 PR 32102
10218 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10219 * flags.h (warn_strict_aliasing): Remove.
10220 (warn_strict_overflow): Remove.
10221 * opts.c (warn_strict_aliasing): Remove.
10222 (warn_strict_overflow): Remove.
10223 * c-opts.c (c_common_handle_option): -Wall only sets
10224 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10225 (c_common_post_options): Give default values to -Wstrict-aliasing
10226 and -Wstrict-overflow if they are uninitialized.
10227 * common.opt (Wstrict-aliasing): Specify Var and Init.
10228 (Wstrict-overflow): Likewise.
10229
10230 2008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
10231
10232 PR rtl-optimization/26854
10233 PR rtl-optimization/34400
10234 PR rtl-optimization/34884
10235 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10236 DF_RD->gen.
10237 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10238 (df_rd_bb_info.expanded_lr_out): Deleted
10239 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10240 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
10241 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10242 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10243 Removed code to allocate, initialize or free expanded_lr_out.
10244 (df_rd_bb_local_compute_process_def): Restructured to make more
10245 understandable.
10246 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10247 sets if the sets are being trimmed.
10248
10249 2008-01-22 H.J. Lu <hongjiu.lu@intel.com>
10250
10251 PR bootstrap/32287
10252 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10253 (as_vers): Likewise.
10254 * configure: Regenerated.
10255
10256 2008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10257
10258 PR middle-end/33092
10259 * tree-pass.h (pass_build_alias): New pass.
10260 * tree-ssa-alias.c (gate_build_alias): New.
10261 (pass_build_alias): New.
10262 * passes.c (init_optimization_passes): Add pass_build_alias after
10263 pass_create_structure_vars.
10264
10265 2008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
10266
10267 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10268 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10269 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10270 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10271 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10272 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10273 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10274 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10275 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10276 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10277 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10278 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10279 * config/s390/s390.md (FP_ALL): New mode iterator.
10280 (_d): New mode attribute.
10281 ("*signbit<mode>2>"): Changed mode of first operand.
10282 ("isinf<mode>2"): Changed mode of first operand.
10283 ("*TDC_insn"): Adaptation for DFP modes.
10284
10285 2008-01-22 Ben Elliston <bje@au.ibm.com>
10286
10287 * tree.c (check_qualified_type): Improve function description.
10288
10289 2008-01-21 Jason Merrill <jason@redhat.com>
10290
10291 PR c++/34196
10292 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10293 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10294 if it is set.
10295
10296 2008-01-21 DJ Delorie <dj@redhat.com>
10297
10298 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10299 return zero.
10300
10301 2008-01-21 Richard Guenther <rguenther@suse.de>
10302
10303 PR middle-end/34856
10304 * tree-cfg.c (verify_expr): Allow all invariant expressions
10305 instead of just constant class ones as reference argument.
10306 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10307 like any other constant.
10308 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10309
10310 2008-01-21 H.J. Lu <hongjiu.lu@intel.com>
10311
10312 * regmove.c (fixup_match_1): Update call crossed frequencies.
10313
10314 2008-01-21 Richard Guenther <rguenther@suse.de>
10315
10316 PR c/34885
10317 * tree-inline.c (setup_one_parameter): Deal with mismatched
10318 types using a VIEW_CONVERT_EXPR.
10319
10320 2008-01-21 Alon Dayan <alond@il.ibm.com>
10321 Olga Golovanevsky <olga@il.ibm.com>
10322
10323 PR tree-optimization/34701
10324 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10325 when the structure size is not a power of 2.
10326
10327 2008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
10328
10329 * doc/install.texi: Add doc for --enable-checking=df.
10330
10331 2008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
10332
10333 PR rtl-optimization/34808
10334 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10335
10336 2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
10337
10338 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10339 input.
10340
10341 2008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
10342
10343 PR rtl-optimization/26854
10344 PR rtl-optimization/34400
10345 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10346 DF_RD->gen.
10347 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10348 (df_rd_bb_info.expanded_lr_out): New.
10349 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10350 * loop_iv.c (iv_analysis_loop_init): Ditto.
10351 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10352 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10353 Added code to allocate, initialize or free expanded_lr_out.
10354 (df_rd_bb_local_compute_process_def): Restructured to make
10355 more understandable.
10356 (df_rd_confluence_n): Add code to do nothing with fake edges and
10357 code to no apply invalidate_by_call sets if the sets are being trimmed.
10358 (df_lr_local_finalize): Renamed to df_lr_finalize.
10359 (df_live_local_finalize): Renamed to df_live_finalize.
10360
10361 2008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
10362
10363 PR target/34831
10364 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10365 deciding whether to use reciprocal instructions.
10366
10367 2008-01-19 Uros Bizjak <ubizjak@gmail.com>
10368
10369 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10370 dwarf2out_note_section_used if cold_text_section is NULL.
10371
10372 2008-01-19 Jakub Jelinek <jakub@redhat.com>
10373
10374 PR gcov-profile/34610
10375 * tree-cfg.c (make_edges): Mark both outgoing edges from
10376 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10377 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10378 from OMP_FOR and OMP_CONTINUE outgoing edges.
10379
10380 * tree-profile.c (tree_profiling): Return early if
10381 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
10382 at the end.
10383 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10384 from cfun to child_cfun.
10385 * function.h (struct function): Add after_tree_profile bit.
10386
10387 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10388
10389 * config/avr/avr.S (_exit): Disable interrupt.
10390
10391 2008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
10392 Steven Bosscher <stevenb.gcc@gmail.com>
10393
10394 PR rtl-optimization/26854
10395 PR rtl-optimization/34400
10396 * df-problems.c (df_live_scratch): New scratch bitmap.
10397 (df_live_alloc): Allocate df_live_scratch when doing df_live.
10398 (df_live_reset): Clear the proper bitmaps.
10399 (df_live_bb_local_compute): Only process the artificial defs once
10400 since the order is not important.
10401 (df_live_init): Init the df_live sets only with the variables
10402 found live by df_lr.
10403 (df_live_transfer_function): Use the df_lr sets to prune the
10404 df_live sets as they are being computed.
10405 (df_live_free): Free df_live_scratch.
10406
10407 2008-01-18 Ian Lance Taylor <iant@google.com>
10408
10409 * common.opt: Add fmerge-debug-strings.
10410 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10411 flag_merge_debug_strings rather than flag_merge_constants.
10412 * doc/invoke.texi (Option Summary): Mention
10413 -fmerge-debug-strings.
10414 (Debugging Options): Document -fmerge-debug-strings.
10415
10416 2008-01-18 Ian Lance Taylor <iant@google.com>
10417
10418 PR c++/33407
10419 * tree.h (DECL_IS_OPERATOR_NEW): Define.
10420 (struct tree_function_decl): Add new field operator_new_flag.
10421 * tree-inline.c (expand_call_inline): When inlining a call to
10422 operator new, force the return value to go into a variable, and
10423 set DECL_NO_TBAA_P on that variable.
10424 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10425
10426 2008-01-18 Uros Bizjak <ubizjak@gmail.com>
10427
10428 PR debug/34484
10429 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10430 DWARF2_DEBUGGING_INFO.
10431 (dwarf2out_note_section_used): Ditto. Add prototype.
10432 (have_multiple_function_sections, text_section_used,
10433 cold_text_section_used, *cold_text_sections): Move declarations
10434 before their uses.
10435
10436 2008-01-17 Bob Wilson <bob.wilson@acm.org>
10437
10438 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10439 field and add signal_ra.
10440 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10441 assignments to frame state pc. Move end of stack check after
10442 MD_FALLBACK_FRAME_STATE_FOR.
10443 (uw_update_context_1): Use frame state signal_regs if set, instead
10444 of checking signal_frame flag.
10445 (uw_update_context): Use frame state signal_ra if set.
10446 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10447 * config/xtensa/linux-unwind.h: New file.
10448
10449 2008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
10450
10451 * modulo-sched.c (get_sched_window): Fix comment typo.
10452
10453 2008-01-17 Andrew MacLeod <amacleod@redhat.com>
10454
10455 PR tree-optimization/34648
10456 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10457
10458 2008-01-17 Anatoly Sokolov <aesok@post.ru>
10459
10460 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10461 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10462
10463 2008-01-17 Seongbae Park <seongbae.park@gmail.com>
10464
10465 PR rtl-optimization/34400
10466 * df-core.c (df_worklist_dataflow_overeager,
10467 df_worklist_dataflow_doublequeue): New functions.
10468 (df_worklist_dataflow): Two different worklist solvers.
10469 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10470 New param.
10471
10472 2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
10473
10474 PR testsuite/34821
10475 * doc/invoke.texi: Document the dependence on pthread for fopenmp
10476 and ftree-parallelize-loops.
10477
10478 2008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
10479
10480 PR rtl-optimization/34826
10481 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10482
10483 2008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
10484
10485 * global.c (find_reg): Mark the eh regs as used if necessary.
10486 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10487 * ra.h (struct allocno): no_eh_reg field added. Changed
10488 no_stack_reg type to bitfield.
10489
10490 2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
10491
10492 * tree.c (substitute_in_expr): Add missing 'break'.
10493
10494 2008-01-17 Richard Guenther <rguenther@suse.de>
10495
10496 PR tree-optimization/34825
10497 * tree-ssa-math-opts.c (is_division_by): Do not recognize
10498 x / x as division to handle.
10499
10500 2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10501
10502 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10503 "-pthread" is specified.
10504 * pa-hpux11.h (LIB_SPEC): Likewise.
10505
10506 2008-01-16 Janis Johnson <janis187@us.ibm.com>
10507 Peter Bergner <bergner@vnet.ibm.com>
10508
10509 PR rtl-optimization/33796
10510 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10511
10512 2008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10513
10514 PR libgfortran/34699
10515 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10516 static links.
10517 * pa-hpux10.h (LINK_SPEC): Likewise.
10518 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10519
10520 2008-01-16 Richard Guenther <rguenther@suse.de>
10521
10522 PR middle-end/32628
10523 * fold-const.c (fold_convert_const_int_from_int): Do not
10524 set overflow if that occured only because of a sign extension
10525 change when converting from/to a sizetype with the same
10526 precision and signedness.
10527
10528 2008-01-16 Uros Bizjak <ubizjak@gmail.com>
10529
10530 PR debug/34249
10531 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10532 location address to the correct place. Update copyright year.
10533
10534 2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
10535
10536 * lambda-code.c (lambda_transform_legal_p): Handle the case of
10537 no dependences in the dependence_relations vector.
10538
10539 2008-01-16 Jan Hubicka <jh@suse.cz>
10540
10541 PR rtl-optimization/31396
10542 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10543 * cfg.c (dump_reg_info): Print it.
10544 * regs.h (struct reg_info_t): add freq_calls_crossed.
10545 (REG_FREQ_CALLS_CROSSED): New macro.
10546 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10547 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10548 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10549 regmove_optimize): Update call crossed frequencies.
10550 * local-alloc.c (struct qty): Add freq_calls_crossed.
10551 (alloc_qty): Copute freq_calls_crossed.
10552 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10553 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10554 * ra.h (struct allocno): Add freq_calls_crossed.
10555
10556 2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
10557
10558 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10559 libgomp when compiling with ftree-parallelize-loops.
10560 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10561
10562 2008-01-16 Richard Guenther <rguenther@suse.de>
10563
10564 PR tree-optimization/34769
10565 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10566 * tree.c (int_cst_value): Instead make this function more
10567 permissive in what it accepts as valid input. Document this
10568 function always sign-extends the value.
10569
10570 2008-01-16 Jakub Jelinek <jakub@redhat.com>
10571 Richard Guenther <rguenther@suse.de>
10572
10573 PR c/34668
10574 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10575 (gimple_fold_indirect_ref_rhs): ... this.
10576 (gimple_fold_indirect_ref): New function with foldings
10577 that preserve lvalueness.
10578 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10579 * tree-flow.h (gimple_fold_indirect_ref): Declare.
10580 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10581 to fold an INDIRECT_REF, fall back to the old use of
10582 fold_indirect_ref_1.
10583
10584 2008-01-16 Sebastian Pop <sebastian.pop@amd.com>
10585
10586 * tree-data-ref.c (subscript_dependence_tester_1): Call
10587 free_conflict_function.
10588 (compute_self_dependence): Same.
10589
10590 2008-01-16 Uros Bizjak <ubizjak@gmail.com>
10591
10592 PR debug/34249
10593 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10594 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
10595 function global.
10596 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10597 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10598 for DWARF2_UNWIND_INFO targets.
10599
10600 2008-01-16 Richard Guenther <rguenther@suse.de>
10601
10602 PR c/34768
10603 * c-typeck.c (common_pointer_type): Do not merge inconsistent
10604 type qualifiers for function types.
10605
10606 2008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
10607
10608 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10609 loop_iterator li from previous commit.
10610
10611 2008-01-15 Sebastian Pop <sebastian.pop@amd.com>
10612
10613 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10614
10615 2008-01-12 Sebastian Pop <sebastian.pop@amd.com>
10616
10617 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10618 (parallelize_loops): Don't parallelize irreducible components.
10619
10620 2008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10621
10622 PR c++/24924
10623 * c-opts (c_common_post_options): Do not enable CPP
10624 flag_pedantic_errors by default.
10625
10626 2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
10627
10628 PR rtl-optimization/31944
10629 * cse.c (remove_pseudo_from_table): New function.
10630 (merge_equiv_classes): Use above function to remove pseudo-registers.
10631 (invalidate): Likewise.
10632
10633 2008-01-13 Richard Guenther <rguenther@suse.de>
10634
10635 PR middle-end/34601
10636 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10637 instead of TYPE_MODE to deal with calls from expand_one_error_var.
10638
10639 2008-01-13 Uros Bizjak <ubizjak@gmail.com>
10640
10641 * gcse.c (cprop_jump): Call validate_unshare_change instead of
10642 validate_change to unshare the source of the PC set.
10643
10644 2008-01-12 Jan Hubicka <jh@suse.cz>
10645
10646 PR middle-end/32135
10647 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10648 references above array bounds. This might trigger bounds checks for
10649 pointers to arrays.
10650
10651 2008-01-12 Sebastian Pop <sebastian.pop@amd.com>
10652
10653 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10654 new_replaceable_dependencies.
10655
10656 2008-01-12 Doug Kwan <dougkwan@google.com>
10657
10658 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10659 instead of OPT_Wreturn_type in warning due to ignored return type
10660 qualifiers.
10661 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10662 options included in -Wextra.
10663 * c.opt: New option -Wignored_qualifiers.
10664 * doc/invoke.texi (Warning Options, -Wextra): Add new option
10665 -Wignore_qualifiers.
10666 (-Wignored-qualifiers): Document.
10667 (-Wreturn-type): Remove description of functionality now handled
10668 by -Wignored-qualifiers.
10669
10670 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
10671
10672 PR ada/33788
10673 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10674 NOP_EXPR if it is between integral types with the same precision.
10675
10676 2008-01-12 Jan Hubicka <jh@suse.cz>
10677
10678 PR other/28023
10679 * invoke.texi (max-inline-recursive-depth): Fix default value.
10680
10681 2008-01-12 Zdenek Dvorak <ook@ucw.cz>
10682
10683 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10684 correct type.
10685
10686 2008-01-11 Bob Wilson <bob.wilson@acm.org>
10687
10688 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10689
10690 2008-01-11 James E. Wilson <wilson@specifix.com>
10691
10692 PR target/26015
10693 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10694
10695 2008-01-11 Anatoly Sokolov <aesok@post.ru>
10696
10697 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
10698 save/restore frame pointer register and don't use 'call-prologues'
10699 optimization in function with "OS_task" attribute.
10700
10701 2008-01-11 Eric Botcazou <ebotcazou@adacore.com>
10702
10703 PR middle-end/31309
10704 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10705 when copying to memory.
10706
10707 2008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
10708
10709 PR rtl-optimization/30905
10710 * cfgcleanup.c: Include dce.h
10711 (crossjumps_occured): New global variable.
10712 (try_crossjump_bb): Exit loop after finding a fallthru edge.
10713 If something changed, set crossjumps_occured to true.
10714 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10715 Don't add/remove fake edges to exit here...
10716 (cleanup_cfg): ...but do it here, when crossjumping.
10717 Run a fast DCE when successful crossjumps occured in the latest
10718 iteration of try_optimize_cfg.
10719
10720 2008-01-11 Richard Guenther <rguenther@suse.de>
10721
10722 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10723 (struct vn_unary_op_s): Likewise.
10724 (vn_reference_insert): Free old reference on hash collision.
10725
10726 2008-01-10 Raksit Ashok <raksit@google.com>
10727
10728 PR rtl-optimization/27971
10729 * combine.c (find_split_point): Split PLUS expressions which are
10730 inside a MEM rtx, and whose first operand is complex.
10731
10732 2008-01-10 DJ Delorie <dj@redhat.com>
10733
10734 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10735 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10736 (m32c_hard_regno_ok): Call the underlying function.
10737
10738 2008-01-10 Richard Guenther <rguenther@suse.de>
10739
10740 PR middle-end/34683
10741 * tree-cfg.c (tree_merge_blocks): Do not go through the
10742 full-blown folding and stmt updating path if we just deal
10743 with virtual operands.
10744 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10745 test for abnormal SSA_NAMEs.
10746
10747 2008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
10748
10749 PR middle-end/34641
10750 * reload.c (push_reload): Add assertions. All constants from
10751 reg_equiv_constant should have been used for replacing the respective
10752 pseudo earlier.
10753 (find_reloads_address): Invoke find_reloads_address_part for
10754 constant taken from the reg_equiv_constant array.
10755
10756 2008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
10757
10758 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10759 field (valnum) the first in the struct. Replace bools with
10760 unit bit fields.
10761
10762 2008-01-10 Richard Guenther <rguenther@suse.de>
10763
10764 PR tree-optimization/34651
10765 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
10766 types and ordering for masking and converting.
10767
10768 2008-01-09 Sebastian Pop <sebastian.pop@amd.com>
10769
10770 PR tree-optimization/34017
10771 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10772 also for PHI_NODE expressions.
10773
10774 2008-01-09 Jan Hubicka <jh@suse.cz>
10775
10776 PR tree-optimization/34708
10777 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10778 based on number of case labels.
10779 (init_inline_once): Remove switch_cost.
10780 * tree-inline.h (eni_weights_d): Remove switch_cost.
10781
10782 2008-01-09 Richard Guenther <rguenther@suse.de>
10783 Andrew Pinski <andrew_pinski@playstation.sony.com>
10784
10785 PR middle-end/30132
10786 * gimplify.c (gimplify_cond_expr): Do not create an addressable
10787 temporary if an rvalue is ok or an lvalue is not required.
10788
10789 2008-01-09 Richard Guenther <rguenther@suse.de>
10790
10791 PR middle-end/34458
10792 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10793 adjust return type.
10794
10795 2008-01-09 Richard Guenther <rguenther@suse.de>
10796
10797 PR middle-end/34679
10798 * tree.c (host_integerp): Check for sizetype only if the
10799 type is an integer type.
10800
10801 2008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
10802
10803 PR debug/26364
10804 * opts.c (decode_options): Disable inlining of functions called
10805 once if not in unit-at-a-time mode.
10806
10807 2008-01-09 Alexandre Oliva <aoliva@redhat.com>
10808
10809 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10810
10811 2008-01-08 Richard Guenther <rguenther@suse.de>
10812
10813 PR middle-end/31863
10814 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10815 out early if the result will be unused.
10816
10817 2008-01-08 Uros Bizjak <ubizjak@gmail.com>
10818
10819 PR target/34709
10820 Revert:
10821
10822 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
10823 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10824 for TARGET_RECIP.
10825
10826 2008-01-08 Jan Sjodin <jan.sjodin@amd.com>
10827
10828 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10829 for vectorization tuned.
10830
10831 2008-01-08 Richard Guenther <rguenther@suse.de>
10832
10833 PR tree-optimization/34683
10834 * tree-ssa-operands.c (operand_build_cmp): Export.
10835 * tree-ssa-operands.h (operand_build_cmp): Declare.
10836 * tree-vn.c (vuses_compare): Remove.
10837 (sort_vuses): Use operand_build_cmp.
10838 (sort_vuses_heap): Likewise.
10839 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10840 to re-use old VEC if available. Do not sort already sorted VUSEs.
10841 (vdefs_to_vec): Do not sort already sorted VDEFs.
10842
10843 2008-01-08 Jakub Jelinek <jakub@redhat.com>
10844
10845 PR middle-end/34694
10846 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10847
10848 2008-01-08 Uros Bizjak <ubizjak@gmail.com>
10849
10850 PR target/34702
10851 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10852 limitations of reciprocal sequences on x86 targets.
10853
10854 2008-01-08 Richard Guenther <rguenther@suse.de>
10855
10856 PR tree-optimization/34683
10857 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10858
10859 2008-01-07 Jakub Jelinek <jakub@redhat.com>
10860
10861 PR target/34622
10862 * config/darwin.c (darwin_mergeable_string_section): Don't use
10863 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10864
10865 2008-01-07 Uros Bizjak <ubizjak@gmail.com>
10866
10867 PR target/34682
10868 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10869 negxf2. Macroize expander using X87MODEF mode iterator. Change
10870 predicates of op0 and op1 to register_operand.
10871 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
10872 expander using X87MODEF mode iterator. Change predicates of
10873 op0 and op1 to register_operand.
10874 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10875 corresponding patterns and macroize using MODEF macro. Change
10876 predicates of op0 and op1 to register_operand and remove
10877 "m" constraint. Disparage "r" alternative with "!".
10878 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10879 macroize using X87MODEF macro. Change predicates of op0 and op1
10880 to register_operand and remove "m" constraint. Disparage "r"
10881 alternative with "!".
10882 (absneg splitter with memory operands): Remove.
10883 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10884 patterns and macroize using X87MODEF mode iterator.
10885 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10886 Change predicate of op1 to register_operand.
10887 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10888 for memory operands.
10889
10890 2008-01-07 Nathan Froyd <froydnj@codesourcery.com>
10891
10892 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10893
10894 2008-01-07 Richard Guenther <rguenther@suse.de>
10895
10896 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10897 fields.
10898
10899 2008-01-07 Richard Guenther <rguenther@suse.de>
10900
10901 PR tree-optimization/34683
10902 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10903 VOPs of the needed size to save memory. Use VEC_quick_push
10904 to save compile-time.
10905 (vdefs_to_vec): Likewise.
10906
10907 2008-01-07 Sa Liu <saliu@de.ibm.com>
10908
10909 * config/spu/spu.md (divdf3): Genetate inline code for double
10910 division. The implementation doesn't handle INF or NAN, therefore it
10911 only applies when -ffinite-math-only is given.
10912
10913 2008-01-06 Paolo Carlini <pcarlini@suse.de>
10914
10915 PR libstdc++/34680
10916 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10917 * doc/cpp.texi ([Common Predefined Macros]): Document.
10918
10919 2008-01-06 Uros Bizjak <ubizjak@gmail.com>
10920
10921 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10922 order to use commutative addition instead of subtraction.
10923
10924 2008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
10925 Mircea Namolaru <namolaru@il.ibm.com>
10926 Vladimir Yanovsky <yanov@il.ibm.com>
10927 Revital Eres <eres@il.ibm.com>
10928
10929 PR tree-optimization/34263
10930 * tree-outof-ssa.c (process_single_block_loop_latch,
10931 contains_tree_r): New functions.
10932 (analyze_edges_for_bb): Call process_single_block_loop_latch
10933 function to empty single-basic-block latch block if possible.
10934
10935 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
10936
10937 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10938 for TARGET_RECIP.
10939 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10940
10941 2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
10942
10943 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10944
10945 2008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
10946
10947 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10948
10949 2008-01-05 Jakub Jelinek <jakub@redhat.com>
10950
10951 PR tree-optimization/34618
10952 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10953 flag from T.
10954
10955 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
10956
10957 PR target/34673
10958 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10959 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
10960 Update copyright year.
10961
10962 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10963 Update copyright year.
10964 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10965 using NR fixup.
10966
10967 2008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
10968
10969 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10970 edge does not point to current bb before changing need_assert.
10971
10972 2008-01-04 Richard Guenther <rguenther@suse.de>
10973
10974 PR middle-end/34029
10975 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10976 for verifying purposes if they are is_gimple_min_invariant.
10977
10978 2008-01-04 Aldy Hernandez <aldyh@redhat.com>
10979
10980 PR tree-optimization/34448
10981 PR tree-optimization/34465
10982 * gimplify.c (gimplify_init_constructor): Add new parameter
10983 notify_temp_creation. Use it.
10984 (gimplify_modify_expr_rhs): Take volatiles into account when
10985 optimizing constructors.
10986 Do not optimize constructors if gimplify_init_constructor will dump to
10987 memory.
10988 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10989 * gcc.c-torture/compile/pr34448.c: New.
10990
10991 2008-01-04 Jakub Jelinek <jakub@redhat.com>
10992
10993 PR gcov-profile/34609
10994 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10995 return_slot if result is TREE_ADDRESSABLE.
10996
10997 2008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
10998
10999 * config/mips/mips.md (sqrt_condition): Tweak comment.
11000 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
11001
11002 2008-01-03 Tom Tromey <tromey@redhat.com>
11003
11004 PR c/34457
11005 * c-common.c (c_type_hash): Handle VLAs.
11006
11007 2008-01-03 Jan Hubicka <jh@suse.cz>
11008
11009 PR tree-optimization/31081
11010 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
11011 0 when inlining and not inlining to first basic block.
11012 (remap_decl): When var is initialized to 0, don't set default_def.
11013 (expand_call_inline): Set entry_bb.
11014 * tree-inline.h (copy_body_data): Add entry_bb.
11015
11016 2008-01-03 Jakub Jelinek <jakub@redhat.com>
11017
11018 PR c++/34619
11019 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
11020 before returning.
11021
11022 PR tree-optimization/29484
11023 * tree-inline.c (inline_forbidden_p_2): New function.
11024 (inline_forbidden_p): Disallow inlining if some static var
11025 has an address of a local LABEL_DECL in its initializer.
11026 * doc/extend.texi (Labels as Values): Document &&foo behaviour
11027 vs. inlining.
11028
11029 2008-01-03 Sebastian Pop <sebastian.pop@amd.com>
11030
11031 PR tree-optimization/34635
11032 * tree-data-ref.c (add_other_self_distances): Make sure that the
11033 evolution step is constant.
11034
11035 2008-01-03 Jakub Jelinek <jakub@redhat.com>
11036
11037 PR middle-end/34608
11038 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
11039
11040 2008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
11041
11042 * tree-sra.c (scalarize_init): Insert the generate_element_init
11043 statements after the generate_element_zero statements.
11044
11045 2008-01-02 Richard Guenther <rguenther@suse.de>
11046
11047 PR middle-end/34093
11048 PR middle-end/31976
11049 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
11050 for very large number of operands instead of ICEing.
11051
11052 2008-01-02 Arthur Norman <acn1@cam.ac.uk>
11053
11054 PR target/34013
11055 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
11056 while stack probing.
11057
11058 2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
11059
11060 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
11061 in C++0x mode.
11062
11063 2008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
11064
11065 PR libmudflap/26442
11066 * tree-mudflap.c (mx_register_decls): Guard warning by
11067 !DECL_ARTIFICIAL check.
11068
11069 2008-01-01 Jakub Jelinek <jakub@redhat.com>
11070
11071 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
11072 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
11073 sse5_perm<mode>): Fix constraints.