]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
bfin.h (TARGET_CPU_CPP_BUILTINS): Define __WORKAROUND_RETS when appropriate.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
2643f14e
BS
12008-05-31 Bernd Schmidt <bernd.schmidt@analog.com>
2
3 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4 __WORKAROUND_RETS when appropriate.
5
ca3a2165
UB
62008-05-31 Uros Bizjak <ubizjak@gmail.com>
7
8 * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
9 *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
10 mode iterator.
11 (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
12 *fop_df_comm_sse insn patterns using MODEF mode iterator.
13 (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
14 *fop_df_comm_i387 insn patterns using MODEF mode iterator.
15 (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
16 *fop_df_1_mixed insn patterns using MODEF mode iterator.
17 (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
18 *fop_df_1_sse insn patterns using MODEF mode iterator.
19 (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
20 *fop_df_1_i387 insn patterns using MODEF mode iterator.
21 (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
22 *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
23 (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
24 *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
25 (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
26 (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
27 (*fop_xf_4_i387): Use <MODE> for mode attribute.
28 (*fop_xf_5_i387): Ditto.
29 (*fop_xf_6_i387): Ditto.
30
acdfeac3
RG
312008-05-30 Richard Guenther <rguenther@suse.de>
32
33 * builtins.c (build_string_literal): Avoid generating
34 a non-gimple_val result.
35
97c3860d
DD
362008-05-30 DJ Delorie <dj@redhat.com>
37
38 * exec-tool.in: Use an environment variable (private) instead of a
39 file (shared) as a semaphore, so as to not break parallel builds.
40
856905c2
SB
412008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
42
43 * optabs.c (maybe_encapsulate_block): Remove.
44 (emit_libcall_block): Adjust accordingly.
45 * optabs.h (maybe_encapsulate_block): Remove prototype.
46
47 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
48 Don't use maybe_encapsulate_block.
49
0cdc04e8
SB
502008-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
51
52 * config/rs6000/rs6000.c (rs6000_legitimize_address,
53 rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
54 rtx is a SYMBOL_REF before calling get_pool_constant.
55
bfab40f8
EB
562008-05-30 Eric Botcazou <ebotcazou@adacore.com>
57
58 * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
59
c100de59
DS
602008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
61
62 * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
63 rather than OS names to choose INO_T_EQ definition.
64 (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
ca3a2165 65 (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
c100de59 66
c776a6d0
DF
672008-05-29 Daniel Franke <franke.daniel@gmail.com>
68
69 PR target/36348
70 * config/darwin-f.c: New.
71 * config/t-darwin: Added rule to build darwin-f.o.
72 * config.gcc: Defined new variable, fortran_target_objs.
73 (*-*-darwin*): Set fortran_target_objs.
74 * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
ca3a2165 75 * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
c776a6d0
DF
76 * configure: Regenerated.
77
a20007a4
L
782008-05-29 H.J. Lu <hongjiu.lu@intel.com>
79
80 PR target/35771
81 * config/i386/i386.c (ix86_function_arg_boundary): Convert to
82 canonical type if needed.
83
4efa7ef9
EB
842008-05-29 Eric Botcazou <ebotcazou@adacore.com>
85
86 * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
87
2f571334
RG
882008-05-29 Richard Guenther <rguenther@suse.de>
89
90 PR tree-optimization/36343
91 PR tree-optimization/36346
92 PR tree-optimization/36347
93 * tree-flow.h (clobber_what_p_points_to): Declare.
94 * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
95 pointed-to variable is dereferenced is irrelevant to whether
96 the pointer can access the pointed-to variable.
97 (clobber_what_p_points_to): New function.
98 * tree-ssa-alias.c (set_initial_properties): Use it.
99 * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
100 call clobber check for NMTs.
101
68bb68ca
SP
1022008-05-28 Seongbae Park <seongbae.park@gmail.com>
103
104 * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
105 for printing gcov_type.
106
b608a1bc
SP
1072008-05-28 Seongbae Park <seongbae.park@gmail.com>
108
109 * tree-ssa-propagate.c (set_rhs): Preserve the histogram
110 and the eh region information.
111 * value-prof.c (gimple_move_stmt_histograms): New function.
112 * value-prof.h (gimple_move_stmt_histograms): New function declaration.
113
77da4248
AT
1142008-05-28 Andreas Tobler <a.tobler@schweiz.org>
115
116 * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
117
3dfb6f59
SP
1182008-05-28 Seongbae Park <seongbae.park@gmail.com>
119
120 * value-prof.c (tree_ic_transform): Print counts.
121 * tree-profile.c (tree_gen_ic_func_profiler):
ca3a2165
UB
122 Clear __gcov_indreict_call_callee variable to avoid misattribution
123 of the profile.
3dfb6f59 124
5a976da0
RAE
1252008-05-28 Rafael Espindola <espindola@google.com>
126
127 * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
128 invalid sharing.
129
38154e4f
RG
1302008-05-28 Richard Guenther <rguenther@suse.de>
131
132 PR tree-optimization/36339
133 * tree-ssa-alias.c (set_initial_properties): Move pt_anything
134 and clobbering code out of the loop.
135
963fc8d0
AK
1362008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
137
138 * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
139 letters defined.
140
141 * config/s390/s390.c (s390_compare_and_branch_condition_mask,
142 s390_contiguous_bitmask_p, s390_symref_operand_p,
143 s390_check_symref_alignment, s390_reload_larl_operand,
144 s390_reload_symref_address): New functions.
145 (s390_branch_condition_mnemonic): Support compare and branch
146 instructions.
147 (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
148 and 'W' constraints.
149 (s390_secondary_reload): Add secondary reloads for unaligned
150 symbol refs or symbol refs to floating point or QI/TI mode
151 integer values.
152 (legitimate_address_p): Accept symbol references as addresses.
153 (s390_expand_insv): Use rotate and insert selected bits
154 instruction for insv when building for z10.
155 (print_operand_address): Handle symbol ref addresses.
ca3a2165 156 (print_operand): Output modifier 'c' added for signed byte values.
963fc8d0
AK
157 (s390_encode_section_info): Mark symbol refs with
158 SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
159
160 * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
161 (length attribute): RRF, RRR have 4 byte length.
162 (FPALL, INTALL): New mode iterators added.
163 (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
164 *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
165 *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
166 *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
167 *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
168 *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
169 *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
170 *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
171 instructions.
172 (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
173 *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
174 *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
175 reload<INTALL:mode><P:mode>_toreg_z10,
176 reload<FPALL:mode><P:mode>_tomem_z10,
177 reload<FPALL:mode><P:mode>_toreg_z10,
178 reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
179 *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
180 *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
181 *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
182 definition.
183 (movmem, clrmem, cmpmem): New splitters added.
184
185 * config/s390/predicates.md (larl_operand): Use
186 SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
187 SYMBOL_REF_ALIGN1_P.
188 (s390_signed_integer_comparison,
189 s390_unsigned_integer_comparison): New predicates.
190
191 * config/s390/s390-protos.h (s390_check_symref_alignment,
192 s390_contiguous_bitmask_p, s390_reload_larl_operand,
193 s390_reload_symref_address,
194 s390_compare_and_branch_condition_mask): Prototypes added.
195
196 * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
197 SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
198 SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
199
93538e8e
AK
2002008-05-28 Andreas Krebbel <krebbel1@de.ibm.com>
201
202 * config/s390/s390.c (z10_cost): New cost function for z10.
ca3a2165 203 (s390_handle_arch_option, override_options): Support -march=z10 switch.
93538e8e
AK
204 (s390_issue_rate): Adjust issue rate for z10.
205 * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
206 (processor_flags): Add PF_Z10.
207 (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
208 * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
209 * gcc/config.gcc: Add z10.
210
540f6bda
RG
2112008-05-28 Richard Guenther <rguenther@suse.de>
212
213 PR tree-optimization/36291
214 * tree-flow. h (struct gimple_df): Remove var_anns member.
215 * tree-flow-inline.h (gimple_var_anns): Remove.
216 (var_ann): Simplify.
217 * tree-dfa.c (create_var_ann): Simplify.
218 (remove_referenced_var): Clear alias info from var_anns of globals.
219 * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
220 (delete_tree_ssa): Clear alias info from var_anns of globals.
221 Do not free var_anns.
222 (var_ann_eq): Remove.
223 (var_ann_hash): Likewise.
224
33db2060
MS
2252008-05-28 Mark Shinwell <shinwell@codesourcery.com>
226
227 * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
228 and loongson2f entries.
229 (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
230 * config/mips/mips.h (processor_type): Add Loongson-2E
231 and Loongson-2F entries.
232 (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
233 (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
234 * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
235 * doc/invoke.texi (MIPS Options): Document loongson2e
236 and loongson2f processor names.
237
23ac85e7
L
2382008-05-27 H.J. Lu <hongjiu.lu@intel.com>
239
240 PR target/35767
241 PR target/35771
242 * config/i386/i386.c (ix86_function_arg_boundary): Use
243 alignment of canonical type.
244 (ix86_expand_vector_move): Check unaligned memory access for
245 all SSE modes.
246
3395aa05
L
2472008-05-27 H.J. Lu <hongjiu.lu@intel.com>
248
249 * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
250 Moved to the front of file.
251
3ce6e42e
XG
2522008-05-27 Xuepeng Guo <xuepeng.guo@intel.com>
253 H.J. Lu <hongjiu.lu@intel.com>
254
255 * dwarf2out.c (current_fde): New.
256 (add_cfi): Use it.
257 (lookup_cfa:): Likewise.
258 (dwarf2out_end_epilogue): Likewise.
259 (dwarf2out_note_section_used): Likewise.
260
a3299096
MM
2612008-05-27 Michael Matz <matz@suse.de>
262
263 PR c++/27975
264 * c.opt (Wenum-compare): New warning option.
265 * doc/invoke.texi (Warning Options): Document -Wenum-compare.
266
bd42a56b
MM
2672008-05-27 Michael Matz <matz@suse.de>
268
269 PR middle-end/36326
270 * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
271 non-BLKmode types.
272 * tree-tailcall.c (find_tail_calls): Don't mark calls storing
273 into memory as tail calls.
274
a46fc136
RG
2752008-05-27 Richard Guenther <rguenther@suse.de>
276
277 PR tree-optimization/36339
278 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
279 pointers cause all addressable variables to be call clobbered.
280
6fe2f65a
RG
2812008-05-27 Richard Guenther <rguenther@suse.de>
282
283 PR tree-optimization/36245
ca3a2165 284 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
6fe2f65a 285
fb492564
AK
2862008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
287
288 * config/s390/s390.md: Replace all occurences of the 'm'
289 constraint with 'RT'.
290
3af8e996
AK
2912008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
292
293 * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
294 definitions added.
295 ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
296 "*movdi_64".
297 ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
298 ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
299 ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
300
7ac28727
AK
3012008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
302
303 * reload.c: (find_reloads): Skip alternatives according to the
304 "enabled" attribute. Constify the constraint variable.
305 * recog.c (get_attr_enabled): Add default implementation.
306 (extract_insn): Set the alternative_enabled_p array
307 in the recog_data struct.
308 (preprocess_constraints, constrain_operands): Skip
309 alternatives according to the "enabled" attribute
310 * recog.h (struct recog_data): New field alternative_enabled_p.
311 (skip_alternative): New inline function.
ca3a2165 312 * regclass.c: (record_operand_costs): Check the "enabled" attribute.
7ac28727
AK
313 (record_reg_classes): Skip alternative according to the
314 "enabled" attribute.
315
316 * doc/md.texi: Add documention for the "enabled" attribute.
317
a4edaf83
AK
3182008-05-27 Andreas Krebbel <krebbel1@de.ibm.com>
319
320 * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
321 * postreload.c (reload_cse_simplify_operands): Replace 'm'
322 constraint with TARGET_MEM_CONSTRAINT.
323 * recog.c (asm_operand_ok, preprocess_constraints,
324 constrain_operands): Likewise.
325 * regclass.c (record_reg_classes): Likewise.
ca3a2165 326 * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
a4edaf83 327 * reload1.c (maybe_fix_stack_asms): Likewise.
ca3a2165 328 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
a4edaf83
AK
329 * recog.h: Adjust comment.
330 * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
ca3a2165 331 * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
a4edaf83
AK
332 * doc/md.texi: Add a note to description of 'm' constraint.
333 * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
334
469dfae9
EB
3352008-05-27 Eric Botcazou <ebotcazou@adacore.com>
336
337 * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
338 that the bitfield is of integral type before testing its precision.
339
986a8d90
TS
3402008-05-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
341 Sa Liu <saliu@de.ibm.com>
342
343 * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
344 __modti3, __udivti3, __umodti3 and __udivmodti4.
345 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
346 that implement TImode mul and div functions.
347 * config/spu/multi3.c: New. Implement __multi3.
348 * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
349 * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
350 functions on SPU.
351
02135bc1
SB
3522008-05-26 Steven Bosscher <stevenb.gcc@gmail.com>
353
354 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
355 new tls_gd_* and tls_ld_* insns instead of an insn sequence.
356 * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
357 tls_sysv_suffix): New mode and mode attribute iterators.
358 (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
359 (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
360 (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
361 tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
362 tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
363 iterators.
364
ba977e1a
EB
3652008-05-26 Eric Botcazou <ebotcazou@adacore.com>
366
367 PR tree-optimization/36329
368 * tree.h (CALL_CANNOT_INLINE_P): Add access check.
369 * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
370 * cgraphbuild.c (initialize_inline_failed): Use the latter
371 macro in lieu of the former.
372 * ipa-inline.c (cgraph_mark_inline): Likewise.
373 (cgraph_decide_inlining_of_small_function): Likewise.
374 (cgraph_decide_inlining): Likewise.
375 (cgraph_decide_inlining_incrementally): Likewise.
376
4d492420 3772008-05-26 Tristan Gingold <gingold@adacore.com>
ca3a2165 378 Anatoly Sokolov <aesok@post.ru>
4d492420
TG
379
380 * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
381 instead of pm_lo8/pm_hi8 to makes this call working on avr6.
382 * config/avr/avr.c (expand_prologue): Tune "call_prologue"
383 optimization for 'avr6' architecture.
384
319a58c6
AH
3852008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
386
387 PR target/34932
388 * config/avr/avr.md (*addhi3_zero_extend2): Remove.
389
26fa9076
RG
3902008-05-26 Richard Guenther <rguenther@suse.de>
391
392 * tree-ssa-sccvn.c (expr_has_constants): Declare.
ca3a2165 393 (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
26fa9076 394
76fe54f0
L
3952008-05-26 H.J. Lu <hongjiu.lu@intel.com>
396
397 PR middle-end/36253
ca3a2165 398 * caller-save.c (insert_restore): Verify alignment of spill space.
76fe54f0 399 (insert_save): Likewise.
76fe54f0 400 * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
76fe54f0
L
401 * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
402 (STACK_SLOT_ALIGNMENT): Likewise.
76fe54f0
L
403 * function.c (LOCAL_ALIGNMENT): Removed.
404 (get_stack_local_alignment): New.
405 (assign_stack_local): Use it. Set alignment on stack slot.
406 (assign_stack_temp_for_type): Use get_stack_local_alignment.
76fe54f0
L
407 * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
408 (STACK_SLOT_ALIGNMENT): New.
76fe54f0
L
409 * config/i386/i386.c (ix86_local_alignment): Handle caller-save
410 stack slot in XFmode.
411
412 * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
413
e5f005e1
KT
4142008-05-26 Kai Tietz <kai.tietz@onevision.com>
415
416 PR/36321
417 * config/i386/i386.md (allocate_stack_worker_64): Make sure
418 argument operand in rax isn't removed.
419
fcb4587e
RG
4202008-05-26 Richard Guenther <rguenther@suse.de>
421
422 PR middle-end/36300
423 * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
424 not TYPE_UNSIGNED. Use TYPE_PRECISION instead of GET_MODE_SIZE.
425
25497730
DF
4262008-05-26 Daniel Franke <franke.daniel@gmail.com>
427
428 PR bootstrap/36331
429 * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
430
e8a25ca8
DH
4312008-05-26 Dominique Dhumieres <dominiq@lps.ens.fr>
432
433 * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
434 * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
435
3651f7ad
EB
4362008-05-25 Eric Botcazou <ebotcazou@adacore.com>
437
ca3a2165 438 * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
3651f7ad
EB
439 build a trampoline if we don't want one.
440 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
441 return zero for nested functions if we don't want a trampoline.
442
b885a4c1
DF
4432008-05-26 Daniel Franke <franke.daniel@gmail.com>
444
445 * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
446
670637ee
DF
4472008-05-26 Daniel Franke <franke.daniel@gmail.com>
448
449 PR fortran/18428
450 * c.opt: Removed undocumented option '-lang-fortran'.
451 * c-common.h: Removed global variable 'lang_fortran'.
452 * c-opts.c (c_common_handle_option): Removed code to handle
453 option '-lang-fortran'. Updated includes.
454 * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
455 definition of '__GFORTRAN__'.
456 (define__GNUC__): Reimplemented to use BASEVER and
457 cpp_define_formatted.
458 (builtin_define_with_value_n): Removed.
459 * c-incpath.h: Renamed to ...
460 * incpath.h: ... this.
461 * c-incpath.c: Renamed to ...
462 * incpath.c: ... this. Updated includes.
463 * fix-header.c: Updated includes.
464 * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
465 (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
466 (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
467
4cea6c02
EB
4682008-05-25 Eric Botcazou <ebotcazou@adacore.com>
469
470 * tree.h: Update the table of flags used on tree nodes.
471 (TREE_NO_TRAMPOLINE): New accessor for static_flag.
472 (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
473 (FORCED_LABEL): Add access check.
474 (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
475 (ASM_INPUT_P): Likewise.
476 (ASM_VOLATILE_P): Likewise.
477 (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
478 (OMP_SECTION_LAST): Access private_flag directly.
479 (OMP_RETURN_NOWAIT): Likewise.
480 (OMP_PARALLEL_COMBINED): Likewise.
481 (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
482 (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
483 * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
484 deprecated_flag directly.
485
3bffa195
L
4862008-05-25 H.J. Lu <hongjiu.lu@intel.com>
487
488 * final.c (frame_pointer_needed): Removed.
489 * flags.h (frame_pointer_needed): Likewise.
490
491 * function.h (rtl_data): Add frame_pointer_needed.
492 (frame_pointer_needed): New.
493
93fea8d3
AL
4942008-05-25 Arthur Loiret <arthur.loiret@u-psud.fr>
495
496 * config.gcc (sh2[lbe]*-*-linux*): Allow target.
497
29470771
SB
4982008-05-25 Steven Bosscher <stevenb.gcc@gmail.com>
499
500 * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
501 SRC is a REG.
502
dd25a747
AM
5032008-05-25 Alan Modra <amodra@bigpond.net.au>
504
505 * c-common.c (strip_array_types): Move function to..
506 * tree.c: ..here.
507 (get_inner_array_type): Delete.
508 * c-common.h (strip_array_types): Move declaration to..
509 * tree.h: ..here.
510 (get_inner_array_type): Delete.
511 * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
512 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
513 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
514 * config/pa/pa.c (emit_move_sequence): Likewise.
515
c36c9821
L
5162008-05-24 H.J. Lu <hongjiu.lu@intel.com>
517
518 * config/i386/i386.md (*sse_prologue_save_insn): Set length
519 attribute to 34.
520
88280cf9
AH
5212008-05-24 Andy Hutchinson <hutchinsonandy@aim.com>
522
523 * function.c: Include target hook for nonlocal_goto frame value.
524
7c88f67a
RG
5252008-05-24 Richard Guenther <rguenther@suse.de>
526
ca3a2165
UB
527 * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
528 variable can be only accessed through a pointer or a union.
7c88f67a 529
32101f99
KG
5302008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
531
532 * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
533 * doc/extend.texi: Likewise.
534
80b093df
DD
5352008-05-23 DJ Delorie <dj@redhat.com>
536
c9db440d
DD
537 * config/m32c/jump.md (untyped_call): Add.
538
80b093df
DD
539 * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
540 for A24 to PSImode.
541 (m32c_address_cost): Detail costs for indirect offsets.
542
fbcfcb3c
RAE
5432008-05-23 Rafael Espindola <espindola@google.com>
544
545 * see.c (see_get_extension_data): Don't use SUBREG_REG to test
546 if a node is a SUBREG.
547 (see_analyze_one_def): Don't use SUBREG_REG to test if a node
548 is a SUBREG.
549
007e61c2
PB
5502008-05-23 Paul Brook <paul@codesourcery.com>
551 Carlos O'Donell <carlos@codesourcery.com>
552
553 * doc/extend.texi: Clarify use of __attribute__((naked)).
554 * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
555 * target.h (gcc_target): Add allocate_stack_slots_for_args.
556 * function.c (use_register_for_decl): Use
557 targetm.calls.allocate_stack_slots_for_args.
ca3a2165
UB
558 * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
559 * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
007e61c2
PB
560 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
561
a2acd8bf
EB
5622008-05-23 Eric Botcazou <ebotcazou@adacore.com>
563
564 * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
565
c201998a
SM
5662008-05-23 Steven Munroe <sjmunroe@us.ibm.com>
567
568 * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
569 PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
570 is only rounded once.
571
833248d2
RG
5722008-05-23 Richard Guenther <rguenther@suse.de>
573
ca3a2165 574 * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
833248d2 575
922e3e33
UB
5762008-05-23 Uros Bizjak <ubizjak@gmail.com>
577 Jakub Jelinek <jakub@redhat.com>
578
579 PR target/36079
580 * configure.ac: Handle --enable-cld.
581 * configure: Regenerated.
582 * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
583 * config/i386/i386.h (struct machine_function): Add needs_cld field.
584 (ix86_current_function_needs_cld): New define.
585 * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
586 (cld): New isns pattern.
587 (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
588 cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
589 * config/i386/i386.opt (mcld): New option.
590 * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
591 TARGET_CLD and ix86_current_function_needs_cld.
592 (override_options): Use -mcld by default for 32-bit code if
593 USE_IX86_CLD.
594
595 * doc/install.texi (Options specification): Document --enable-cld.
596 * doc/invoke.texi (Machine Dependent Options)
ca3a2165
UB
597 [i386 and x86-64 Options]: Add -mcld option.
598 (Intel 386 and AMD x86-64 Options): Document -mcld option.
922e3e33 599
71995c2c
KT
6002008-05-23 Kai Tietz <kai.tietz@onevison.com>
601 * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
602 (return_in_memory_64): Likewise.
603 (return_in_memory_ms_64): Likewise.
604
3bf5906b
KG
6052008-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
606
607 * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
608 * builtins.c (fold_builtin_fpclassify): New.
609 (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
610 * builtins.def (BUILT_IN_FPCLASSIFY): New.
611 * c-common.c (handle_type_generic_attribute): Adjust to accept
612 fixed arguments before an elipsis.
613 (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
614 * doc/extend.texi: Document __builtin_fpclassify.
615
c63cac47
AH
6162008-05-22 Aldy Hernandez <aldyh@redhat.com>
617
618 * omp-low.c (gate_expand_omp_ssa): Remove.
619 (pass_expand_omp_ssa): Remove.
620 (gate_expand_omp): Do not check for flag_openmp_ssa.
621 * common.opt (-fopenmp-ssa): Remove.
622 * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
623
3217af3e
KK
6242008-05-22 Kaz Kojima <kkojima@gcc.gnu.org>
625
626 * config/sh/sh.opt (mfixed-range): New option.
627 * config/sh/sh-protos.h (sh_fix_range): Declare.
628 * config/sh/sh.c (sh_fix_range): New function.
629 * config/sh/sh.h (sh_fixed_range_str): Declare.
630 (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
631 is not empty.
632 * doc/invoke.texi (SH Options): Document -mfixed-range.
633
42b18a21
KT
6342008-05-22 Kai Tietz <kai.tietz@onevision.com>
635
636 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
637 it before the redeclaration.
638
97822902
AS
6392008-05-22 Anatoly Sokolov <aesok@post.ru>
640
641 * config/avr/avr.c (get_sequence_length): Add new function.
642 (expand_prologue, expand_epilogue): Remove duplicate code.
643
4799e6aa
RAE
6442008-05-22 Rafael Espindola <espindola@google.com>
645
646 * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
647 sharing.
648
9d3a9de1
L
6492008-05-22 H.J. Lu <hongjiu.lu@intel.com>
650
651 * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
652 * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
653
654 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
655 UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
656 (vect_update_misalignment_for_peel): Likewise.
657 (vector_alignment_reachable_p): Likewise.
658 * tree-vect-transform.c (vectorizable_load): Likewise.
659 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
922e3e33
UB
660 (get_vectype_for_scalar_type): Pass mode of scalar_type
661 to UNITS_PER_SIMD_WORD.
9d3a9de1
L
662
663 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
664 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
665 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
666 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
667 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
668
f8b52c2f
IR
6692008-05-22 Ira Rosen <irar@il.ibm.com>
670
671 PR tree-optimization/36293
672 * tree-vect-transform.c (vect_transform_strided_load): Don't check
673 if the first load must be skipped because of a gap.
674
1842e4d4
RG
6752008-05-22 Richard Guenther <rguenther@suse.de>
676
677 * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle
678 more cases of offset disambiguation that is possible if
679 strict-aliasing rules apply.
680 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
681 for basic offset and type-based disambiguation.
682
31ebe593
L
6832008-05-21 H.J. Lu <hongjiu.lu@intel.com>
684
685 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
686 ix86_expand_vector_set on V16QImode for SSE4.1.
687
c24d4112
TT
6882008-05-21 Tom Tromey <tromey@redhat.com>
689
690 * c.opt (Wimport): Mark as undocumented.
691 * doc/invoke.texi (Option Summary): Don't mention -Wimport or
692 -Wno-import.
693 (Warning Options): Likewise.
694 * doc/cppopts.texi: Don't mention -Wimport.
695
4e8d7177
SP
6962008-05-21 Sebastian Pop <sebastian.pop@amd.com>
697
698 PR tree-optimization/36287
699 PR tree-optimization/36286
700 * lambda-code.c (build_access_matrix): Do not use the loop->num
701 for computing the number of induction variables: use the loop depth
702 instead.
703
6110c44a
KT
7042008-05-21 Kai Tietz <kai.tietz@onevision.com>
705
706 PR/36280
707 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
708 option -f(no-)leading-underscore.
709
e73caa00
L
7102008-05-21 H.J. Lu <hongjiu.lu@intel.com>
711
712 * config/i386/i386.c (ix86_expand_vector_init_general): Use
713 GET_MODE_NUNITS (mode).
714
4adf8008
PB
7152008-05-21 Peter Bergner <bergner@vnet.ibm.com>
716
717 * doc/invoke.texi: Add cpu_type's 464 and 464fp.
718 (-mmulhw): Add 464 to description.
719 (-mdlmzb): Likewise.
720 * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
721 * config/rs6000/rs6000.c (processor_target_table): Add 464 and
722 464fp entries.
723 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
724 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
725 * config/rs6000/rs6000.md: Update comments for 464.
726
00a25a2d
JJ
7272008-05-21 Janis Johnson <janis187@us.ibm.com>
728
729 * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
730
80980aec
L
7312008-05-21 H.J. Lu <hongjiu.lu@intel.com>
732
733 * config/i386/sse.md (vec_extractv4sf): Removed.
734 (vec_extractv2df): Likewise.
735 (vec_extractv2di): Likewise.
736 (vec_extractv4si): Likewise.
737 (vec_extractv8hi): Likewise.
738 (vec_extractv16qi): Likewise.
739 (vec_extract<mode>): New.
740
349587b8
L
7412008-05-21 H.J. Lu <hongjiu.lu@intel.com>
742
743 * config/i386/sse.md (vec_setv4sf): Removed.
744 (vec_setv2df): Likewise.
745 (vec_setv2di): Likewise.
746 (vec_setv4si): Likewise.
747 (vec_setv8hi): Likewise.
748 (vec_setv16qi): Likewise.
749 (vec_set<mode>): New.
750
0864e1e8
L
7512008-05-21 H.J. Lu <hongjiu.lu@intel.com>
752
753 * config/i386/i386.c (ix86_expand_vector_init_general): Remove
754 goto for vec_concat and vec_interleave.
755
f8caa3a8
L
7562008-05-21 H.J. Lu <hongjiu.lu@intel.com>
757
758 * config/i386/sse.md (vec_initv4sf): Removed.
759 (vec_initv2df): Likewise.
760 (vec_initv2di): Likewise.
761 (vec_initv4si): Likewise.
762 (vec_initv8hi): Likewise.
763 (vec_initv16qi): Likewise.
764 (vec_init<mode>): New.
765
fb291f50
JM
7662008-05-21 Joseph Myers <joseph@codesourcery.com>
767
768 * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
769
dae4174e
TT
7702008-05-21 Tom Tromey <tromey@redhat.com>
771
772 * ggc-zone.c (lookup_page_table_if_allocated): New function.
773 (zone_find_object_offset): Likewise.
774 (gt_ggc_m_S): Likewise.
775 (highest_bit): Likewise.
776 * ggc-page.c (gt_ggc_m_S): New function.
777 * stringpool.c (string_stack): Remove.
778 (init_stringpool): Update.
779 (ggc_alloc_string): Use ggc_alloc.
780 (maybe_delete_ident): New function.
781 (ggc_purge_stringpool): Likewise.
782 (gt_ggc_m_S): Remove.
783 * ggc-common.c (ggc_protect_identifiers): New global.
784 (ggc_mark_roots): Call ggc_purge_stringpool. Use
785 ggc_protect_identifiers.
786 * ggc.h (ggc_protect_identifiers): Declare.
787 (gt_ggc_m_S): Update.
788 (ggc_purge_stringpool): Declare.
789 * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
790 * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
791 special case.
792 (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
793
ccbdd3bc
DM
7942008-05-21 David S. Miller <davem@davemloft.net>
795
796 * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
797 tmake_file.
798
e8a2a782
EB
7992008-05-21 Eric Botcazou <ebotcazou@adacore.com>
800
801 * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
802 once finished.
803
06d19617
DD
8042008-05-20 David Daney <ddaney@avtrex.com>
805
806 * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
922e3e33
UB
807 UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
808 (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
06d19617
DD
809 UNSPEC_UPDATE_GOT_VERSION): Renumber.
810 (optab, insn): Add 'plus' and 'minus' to define_code_attr.
811 (atomic_hiqi_op): New define_code_iterator.
922e3e33 812 (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
06d19617
DD
813 mips_expand_compare_and_swap_12.
814 (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
922e3e33 815 MIPS_COMPARE_AND_SWAP_12_0. Pass argument to MIPS_COMPARE_AND_SWAP_12.
06d19617
DD
816 (sync_<optab><mode>, sync_old_<optab><mode>,
817 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
922e3e33 818 sync_new_nand<mode>): New define_expands for HI and QI mode operands.
06d19617
DD
819 (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
820 sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
922e3e33 821 (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
06d19617
DD
822 (test_and_set_12): New insn.
823 (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
824 sync_new_<optab><mode>, sync_old_nand<mode>,
825 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Add early
826 clobber to operand 0 for SI and DI mode insns.
827 * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
828 mips_gen_fn_4): New typedefs.
829 (mips_gen_fn_ptrs): Define new union type.
830 (mips_expand_compare_and_swap_12): Remove declaration.
831 (mips_expand_atomic_qihi): Declare function.
832 * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
833 (mips_expand_atomic_qihi): ... this. Use new generator function
834 parameter.
835 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
836 (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
ca3a2165 837 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
06d19617
DD
838 MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
839 MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
840 MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
841 MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
842 MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
843 MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
ca3a2165
UB
844 MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
845 New macros.
06d19617 846
a35f6a35
L
8472008-05-20 H.J. Lu <hongjiu.lu@intel.com>
848
849 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
850 the missing break.
851
9b678d96
AS
8522008-05-20 Anatoly Sokolov <aesok@post.ru>
853
854 * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
855 * config/avr/avr.c (avr_OS_main_function_p): Add new function.
856 (avr_attribute_table): Add 'OS_main' function attribute.
857 (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
858 functions with 'OS_main' attribute.
859
6be34936
RG
8602008-05-20 Richard Guenther <rguenther@suse.de>
861
862 PR tree-optimization/35204
863 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
864 helper, split out from ...
865 (DFS): ... here. Make the DFS walk non-recursive.
866
9857228c
SP
8672008-05-20 Sebastian Pop <sebastian.pop@amd.com>
868 Jan Sjodin <jan.sjodin@amd.com>
869
870 PR tree-optimization/36181
871 * tree-parloops.c (loop_has_vector_phi_nodes): New.
872 (parallelize_loops): Don't parallelize when the loop has vector
873 phi nodes.
874
9f275479
JS
8752008-05-20 Jan Sjodin <jan.sjodin@amd.com>
876 Sebastian Pop <sebastian.pop@amd.com>
877
922e3e33
UB
878 * tree-loop-linear.c (gather_interchange_stats): Look in the access
879 matrix, and never look at the tree representation of the memory
880 accesses.
9f275479 881 (linear_transform_loops): Computes parameters and access matrices.
922e3e33
UB
882 * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
883 when fails.
9f275479
JS
884 (access_matrix_get_index_for_parameter): New.
885 * tree-data-ref.h (struct access_matrix): New.
886 (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
887 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
888 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
889 am_vector_index_for_loop): New.
890 (struct data_reference): Add field access_matrix.
891 (DR_ACCESS_MATRIX): New.
892 (compute_data_dependences_for_loop): Update declaration.
893 (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
894 * lambda.h (lambda_vector_vec_p): Declared.
895 * lambda-code.c: Depend on pointer-set.h.
896 (lambda_collect_parameters_from_af, lambda_collect_parameters,
897 av_for_af_base, av_for_af, build_access_matrix,
898 lambda_compute_access_matrices): New.
899 * Makefile.in (lambda-code.o): Depend on pointer-set.h.
900
f30fad61
JM
9012008-05-20 Joseph Myers <joseph@codesourcery.com>
902
903 * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
904 $SOURCEDIR/include.
905
5b78fc3e
JS
9062008-05-20 Jan Sjodin <jan.sjodin@amd.com>
907 Sebastian Pop <sebastian.pop@amd.com>
908
909 PR tree-optimization/36206
910 * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
911 FOLD_CONVERSIONS.
912 (instantiate_scev_1): Rename flags to fold_conversions.
913 Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
914 outeside instantiation_loop.
915 * tree-chrec.h (evolution_function_is_affine_in_loop): New.
916 (evolution_function_is_affine_or_constant_p): Removed.
917 * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
918 instantiate_scev.
919 (analyze_siv_subscript): Pass in the loop nest number.
920 Call evolution_function_is_affine_in_loop instead of
921 evolution_function_is_affine_p.
922 (analyze_overlapping_iterations): Pass in the loop nest number.
923
9242008-05-20 Jan Sjodin <jan.sjodin@amd.com>
925 Sebastian Pop <sebastian.pop@amd.com>
926
927 PR tree-optimization/36206
928 * tree-chrec.h (chrec_fold_op): New.
922e3e33
UB
929 * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
930 and other trees.
5b78fc3e 931
498f1c82
NS
9322008-05-20 Nathan Sidwell <nathan@codesourcery.com>
933
934 * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
935 (DIRS_EQ): New.
922e3e33
UB
936 (remove_duplicates): Do not set inode on non-inode systems.
937 Use DIRS_EQ.
498f1c82 938
9c63c208
SL
9392008-05-20 Sandra Loosemore <sandra@codesourcery.com>
940
941 * config.gcc (tm_file): Update comments about relative pathnames.
942
01902653
RG
9432008-05-20 Richard Guenther <rguenther@suse.de>
944
922e3e33 945 * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
01902653
RG
946 * tree-ssa-sccvn.c (process_scc): Likewise.
947 * tree-ssa-sink.c (execute_sink_code): Likewise.
948 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
949 * tree-vrp.c (process_assert_insertions): Likewise.
950 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
951 (perform_tree_ssa_dce): Likewise.
952 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
953 (dump_dominator_optimization_stats): Likewise.
954 * tree-vectorizer.c (vectorize_loops): Likewise.
955
4628e602
RG
9562008-05-20 Richard Guenther <rguenther@suse.de>
957
958 * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
959
3b23a6d3
KT
9602008-05-20 Kai Tietz <kai.tietz@onevision.com>
961
962 * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
963 (ix86_i386elf_return_in_memory): Likewise.
964 (ix86_i386interix_return_in_memory): Likewise.
965 * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
966 (SUBTARGET_RETURN_IN_MEMORY): New.
967 * config/i386/i386elf.h: Likewise.
968 * config/i386/ptx4-i.h: Likewise.
969 * config/i386/sol2-10.h: Likewise.
970 * config/i386/sysv4.h: Likewise.
971 * config/i386/vx-common.h: Likewise.
972 * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
973 * config/i386/i386.c (ix86_return_in_memory): Made static and
974 make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
975 (ix86_i386elf_return_in_memory): Removed.
976 (ix86_i386interix_return_in_memory): Removed.
977 (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
978 * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
979
be9ed5d5
AO
9802008-05-20 Alexandre Oliva <aoliva@redhat.com>
981
982 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
983
bc300fec
XDL
9842008-05-19 Xinliang David Li <davidxl@google.com>
985
986 * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
987 * opts.c: Ditto.
988 * common.opt: Ditto.
989 * doc/invoke.texi: Ditto.
990
df8e1fdc
EB
9912008-05-19 Eric Botcazou <ebotcazou@adacore.com>
992
993 * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
fa74fa39 994 (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
df8e1fdc 995
06a5f1ec
L
9962008-05-19 H.J. Lu <hongjiu.lu@intel.com>
997
9479cae3 998 * config/i386/i386.c (ix86_expand_vector_init_concat): Change
06a5f1ec
L
999 sizes of operand array from 8/4 to 4/2.
1000 (ix86_expand_vector_init_general): Change size of operand array
1001 from 32 to 16. Remove op0, op1 and half_mode.
1002
63e46cce
L
10032008-05-19 H.J. Lu <hongjiu.lu@intel.com>
1004
1005 * config/i386/i386.c (ix86_expand_vector_init_concat): New.
1006 (ix86_expand_vector_init_interleave): Likewise.
ca3a2165
UB
1007 (ix86_expand_vector_init_general): Use them. Assert
1008 word_mode == SImode when n_words == 4.
63e46cce 1009
83689be0
UB
10102008-05-19 Uros Bizjak <ubizjak@gmail.com>
1011
1012 * config/i386/i386.c (ix86_secondary_reload): New static function.
1013 (TARGET_SECONDARY_RELOAD): New define.
1014 * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
1015 * config/i386/i386.md (reload_outqi): Remove.
1016
05f41289
KG
10172008-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1018
1019 PR middle-end/35509
05f41289
KG
1020 * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
1021 Add `implicit' parameter. Handle BUILT_IN_SIGNBIT.
1022 (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
1023 (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
1024 (fold_builtin_1): Likewise.
1025 * builtins.def (BUILT_IN_ISINF_SIGN): New.
1026 c-common.c (check_builtin_function_arguments): Handle
1027 BUILT_IN_ISINF_SIGN.
1028 * doc/extend.texi: Document __builtin_isinf_sign.
1029 * fold-const.c (operand_equal_p): Handle COND_EXPR.
1030
45a7844f
EB
10312008-05-18 Eric Botcazou <ebotcazou@adacore.com>
1032
1033 * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
1034 EH cleanup at the end of the pass, search for those that have been
1035 turned into forwarder blocks and do the cleanup on their successor.
1036
a86907b2
RG
10372008-05-18 Richard Guenther <rguenther@suse.de>
1038
1039 * tree-cfg.c (verify_gimple_expr): Allow conversions from
1040 pointers to sizetype and vice versa.
1041
e29cc9b4
XDL
10422008-05-18 Xinliang David Li <davidxl@google.com>
1043
1044 * gcc/tree-ssa-dce.c: Coding style fix.
1045 (check_pow): Documentation comment.
1046 (check_log): Documenation comment. Coding style fix.
1047 (is_unnecessary_except_errno_call): Ditto.
1048 (gen_conditions_for_pow): Ditto.
1049 (gen_conditions_for_log): Ditto.
1050 (gen_shrink_wrap_conditions): Ditto.
1051 (shrink_wrap_one_built_in_calls): Ditto.
1052 * gcc/doc/invoke.texi: Better documentation string.
1053 * ChangeLog: Fix wrong change log entries from
1054 May 17 checkin on function call DCE.
1055
eb6cbf91
KK
10562008-05-17 Kaz Kojima <kkojima@gcc.gnu.org>
1057
371a0575 1058 * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
eb6cbf91 1059
bfe69700
KZ
10602008-05-17 Kenneth Zadeck <zadeck@naturalbridge.com>
1061
1062 * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
1063 * df-problems.c (simulation routines): Fixed block comment to
1064 properly say how to add forwards scanning functions.
1065
7c7d3047
EB
10662008-05-17 Eric Botcazou <ebotcazou@adacore.com>
1067
1068 * tree-inline.c (setup_one_parameter): Remove dead code.
1069
1e17e15a
EB
10702008-05-17 Eric Botcazou <ebotcazou@adacore.com>
1071
1072 * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
1073 a BIT_AND_EXPR only for an INTEGER_TYPE.
1074
e29cc9b4
XDL
10752008-05-17 Xinliang David Li <davidxl@google.com>
1076
1077 * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
1078 (check_pow, check_log, is_unnecessary_except_errno_call): New
1079 functions to check for eliminating math functions that are pure
1080 except for setting errno.
1081 (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
1082 general condition expressions for shrink-wrapping pow/log calls.
1083 (gen_shrink_wrap_conditions): Ditto.
1084 (shrink_wrap_one_built_in_call): Ditto.
1085 (shrink_wrap_conditional_dead_built_in_calls): Ditto.
1086 (mark_operand_necessary): If debugging, output if OP is necessary.
1087 (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
1088 unnecessary.
1089 * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
1090 opt level >= 2.
1091 * gcc/common.opt: New user flag -ftree-builtin-dce.
1092 * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
1093
b61eacd6
DM
10942008-05-16 David S. Miller <davem@davemloft.net>
1095
371a0575 1096 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
b61eacd6
DM
1097 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1098
c62b3659
UB
10992008-05-16 Uros Bizjak <ubizjak@gmail.com>
1100
1101 PR target/36246
1102 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
1103
07b5bc83
KZ
11042008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1105
1106 * ifcvt.c (dead_or_predicable): Rename
1107 df_simulate_one_insn_backwards to df_simulate_one_insn.
1108 * recog.c (peephole2_optimize): Ditto.
83689be0
UB
1109 * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
1110 Ditto.
07b5bc83
KZ
1111 * df.h: Rename df_simulate_one_insn_backwards to
1112 df_simulate_one_insn. and delete df_simulate_one_insn_forwards.
1113 * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
1114 scanning of defs and uses.
1115 (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
1116 (df_simulate_one_insn_forwards): Removed.
1117
f1f07a96
DK
11182008-05-16 Doug Kwan <dougkwan@google.com>
1119
1120 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
1121 QNaN & SNaN.
1122 (real_from_string): Handle NaNs and Inf as approriate.
1123
105f48ae
DN
11242008-05-16 Nathan Froyd <froydnj@codesourcery.com>
1125
1126 * doc/gty.texi (Source Files Containing Type Information): Note
1127 that headers should appear first in the gtfiles list.
1128
11292008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1130
1131 * tree.def (COND_EXEC): Properly documented this code.
1132
11332008-05-16 Diego Novillo <dnovillo@google.com>
1134
1135 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
1136 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
1137 the new field.
1138
908ff6a3
KZ
11392008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1140
1141 * tree-ssa-dse (max_stmt_uid): Removed.
1142 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
1143 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
1144 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
1145 * function.h (cfun.last_stmt_uid): New field.
1146 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
371a0575
UB
1147 gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
1148 New functions.
908ff6a3
KZ
1149 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
1150 (create_stmt_ann): Initialize the ann->uid field.
1151 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
1152 with new calls.
1153 * tree-flow.h (renumber_gimple_stmt_uids): New function.
1154
9defb1fe
DN
11552008-05-16 Nathan Froyd <froydnj@codesourcery.com>
1156
1157 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
1158 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
1159 (init_empty_tree_cfg): Call it.
1160
11612008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1162
c62b3659
UB
1163 * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
1164 Update all users.
9defb1fe 1165
3e894af1
KZ
11662008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
1167
1168 * doc/invoke.text (-fdump-tree-*-verbose): New option.
1169 * tree-dump.c (dump_options): New verbose option.
1170 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
1171 Add verbose dump.
1172 * tree-pass.h (TDF_VERBOSE): New dump flag.
c62b3659 1173 * print-tree.c (print_node): Added code to be able to print PHI_NODES.
3e894af1 1174 (tree-flow.h): Added include.
c62b3659 1175 * Makefile.in (print-tree.o): Added TREE_FLOW_H.
3e894af1 1176
16869606
BS
11772008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
1178
4fc4d850
BS
1179 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
1180
16869606 1181 From Jie Zhang <jie.zhang@analog.com>
908ff6a3 1182 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
16869606
BS
1183 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1184 mcpu=bf561-none and mcpu=bf561-0.2.
1185 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1186 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1187 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1188 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
371a0575 1189 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
c62b3659 1190 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
16869606
BS
1191 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
1192 option.
1193 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1194 (cputype_selected): Remove.
1195 (bfin_handle_option): Don't use cputype_selected.
1196 (override_options): When no mcpu option, enable all workarounds.
1197 Don't use bfin_workarounds.
1198 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1199 processor type.
1200 (DEFAULT_CPU_TYPE): Don't define.
1201
d0569f9f
RG
12022008-05-16 Richard Guenther <rguenther@suse.de>
1203
1204 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1205 on deletion of the last stmt.
1206
d0208f9b
L
12072008-05-15 H.J. Lu <hongjiu.lu@intel.com>
1208
1209 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1210 V8HImode for SSE2 and V16QImode for SSE4.1.
1211
1920df6c
KZ
12122008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
1213
1214 * cgraph.h (compute_inline_parameters): Made public.
1215 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1216 variable_generate_summary, function_write_summary,
371a0575
UB
1217 variable_write_summary, variable_read_summary. Added generate_summary,
1218 write_summary, read_summary.
1920df6c
KZ
1219 * cgraphunit.c (cgraph_process_new_functions): Changed call from
1220 pass_ipa_inline.function_generate_summary, to
1221 compute_inline_parameters.
1222 * ipa-inline.c (compute_inline_parameters): Made public and added
1223 node parameter.
1224 (compute_inline_parameters_for_current): New function.
c62b3659 1225 (pass_inline_param): Now calls compute_inline_parameters_for_current.
1920df6c
KZ
1226 (inline_generate_summary): Removed parameter and made to loop over
1227 all cgraph nodes.
1228 (pass_ipa_inline): Updated for new IPA_PASS structure.
1229 * passes.c (execute_ipa_summary_passes): Now is called once per
1230 pass rather than once per node*pass.
1231
470a4c97
AS
12322008-05-15 Anatoly Sokolov <aesok@post.ru>
1233
1234 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
1235 avr_have_mul_p, avr_asm_only_p): Remove variables.
1236 (avr_override_options): Remove initialization of removed variables.
1237 (avr_file_start): Convert removed variables to fields of
1238 'struct base_arch_s *avr_current_arch'.
1239 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1240 (AVR_HAVE_MUL): (Ditto.).
1241 (AVR_HAVE_MOVW): (Ditto.).
1242 (AVR_HAVE_LPMX): (Ditto.).
1243 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
1244 avr_asm_only_p): Remove declaration.
1245
f4dea66f
DN
12462008-05-15 Diego Novillo <dnovillo@google.com>
1247
c62b3659 1248 * config/arm/arm.c (arm_return_in_memory): Fix return type.
f4dea66f
DN
1249 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1250
36dafbd1
AN
12512008-05-15 Adam Nemet <anemet@caviumnetworks.com>
1252
1253 PR middle-end/36194
c62b3659
UB
1254 * combine.c (check_conversion): Rename back to check_promoted_subreg.
1255 Don't call record_truncated_value from here.
1256 (record_truncated_value): Turn it into a for_each_rtx callback.
1257 (record_truncated_values): New function.
1258 (combine_instructions): Call note_uses with record_truncated_values.
1259 Change name of check_conversion to check_promoted_subreg.
36dafbd1 1260
91a5b394
JJ
12612008-05-15 Janis Johnson <janis187@us.ibm.com>
1262
1263 * doc/sourcebuild.texi: Document support for torture tests.
1264
2819ae08
UB
12652008-05-15 Uros Bizjak <ubizjak@gmail.com>
1266
1267 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1268 to alternative 4 of operand 2.
1269
9fe0cb7d
RG
12702008-05-15 Richard Guenther <rguenther@suse.de>
1271
1272 * tree-pass.h (current_pass): Declare.
1273 (get_pass_for_id): Likewise.
1274 * passes.c (passes_by_id, passes_by_id_size): New globals.
1275 (set_pass_for_id): New function.
1276 (get_pass_for_id): Likewise.
1277 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1278 (execute_function_todo): Flush per function statistics.
1279 * toplev.c (compile_file): Init statistics.
1280 (general_init): Do early statistics initialization.
1281 (finalize): Finish statistics.
1282 * statistics.h (statistics_early_init): Declare.
1283 (statistics_init): Likewise.
1284 (statistics_fini): Likewise.
1285 (statistics_fini_pass): Likewise.
1286 (statistics_counter_event): Likewise.
1287 (statistics_histogram_event): Likewise.
1288 * statistics.c: New file.
1289 * Makefile.in (OBJS-common): Add statistics.o.
1290 (statistics.o): Add dependencies.
1291 * doc/invoke.texi (-fdump-statistics): Document.
1292
1293 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1294 (insert): Likewise.
1295 (execute_pre): Use statistics_counter_event.
1296 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1297 (substitute_and_fold): Increment it. Use statistics_counter_event.
1298
77f377f7
DN
12992008-05-15 Diego Novillo <dnovillo@google.com>
1300
1301 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1302
1303 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1304 * tree-ssa-alias.c (new_type_alias): Remove references to
1305 sub-variables from comment.
1306 * tree-ssa-operands.c (swap_tree_operands): Likewise.
1307
89b7851e
L
13082008-05-15 H.J. Lu <hongjiu.lu@intel.com>
1309
1310 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1311 attribute to 1 only for insertps alternative.
1312
8fa477f7
BS
13132008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
1314
1315 * config/bfin/bfin.md (loadbytes): New pattern.
1316 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1317 (bfin_init_builtins): Initialize it.
1318 (bdesc_1arg): Add it.
1319
4e8c438f
SL
13202008-05-15 Sa Liu <saliu@de.ibm.com>
1321
1322 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1323 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1324 * testsuite/lib/target-supports.exp: Add
1325 check_effective_target_fortran_integer_16.
1326
7ba20e60
BS
13272008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
1328
1329 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1330 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1331 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
1332 (TARGET_RETURN_IN_MEMORY): Define.
1333
81d19c06
RG
13342008-05-15 Richard Guenther <rguenther@suse.de>
1335
1336 PR middle-end/36244
1337 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1338 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1339 represent unmodifiable vars.
1340
9f59420d
RG
13412008-05-15 Richard Guenther <rguenther@suse.de>
1342
1343 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1344 INDIRECT_REF and TARGET_MEM_REF.
1345 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1346 TARGET_MEM_REF.
1347
6784c6e0
UB
13482008-05-15 Uros Bizjak <ubizjak@gmail.com>
1349 H.J. Lu <hongjiu.lu@intel.com>
1350
1351 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1352 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1353 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
1354 insn alternatives. Add missing alternatives.
1355 (*vec_concatv2di_rex64_sse4_1): Likewise.
1356 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1357 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1358 Require TARGET_SSE.
1359
8ded35f9
RG
13602008-05-15 Richard Guenther <rguenther@suse.de>
1361
1362 PR tree-optimization/36009
1363 PR tree-optimization/36204
1364 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1365 (determine_invariantness_stmt): Record the loop a store is
1366 always executed in.
1367 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1368 dependency.
1369
45ff5eda
RG
13702008-05-15 Richard Guenther <rguenther@suse.de>
1371
1372 PR tree-optimization/34330
1373 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1374 through the pointer will alias the SMT.
1375
c5fcd670
AT
13762008-05-14 Andreas Tobler <a.tobler@schweiz.org>
1377
1378 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1379
a3f63c28
L
13802008-05-14 H.J. Lu <hongjiu.lu@intel.com>
1381
1382 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1383
71d46ca5
MM
13842008-05-14 Michael Meissner <michael.meissner@amd.com>
1385 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
1386
1387 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1388 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1389 (vashl_optab): New optab for vector/vector shifts.
1390 (vashr_optab): Ditto.
1391 (vlshr_optab): Ditto.
1392 (vrotl_optab): Ditto.
1393 (vrotr_optab): Ditto.
1394 (optab_subtype): New enum for optab_for_tree_code call.
1395 (optab_for_tree_code): Add enum optab_subtype argument.
1396
1397 * optabs.c (optab_for_tree_code): Take an additional argument to
1398 distinguish between a vector shift by a scalar and vector shift by
1399 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
1400 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
1401 vector shift by a vector.
1402 (expand_widen_pattern_expr): Pass additional argument to
1403 optab_for_tree_code.
1404
1405 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1406 vrotl_optab, vrotr_optab.
1407
1408 * expr.c (expand_expr_real_1): Update calls to
1409 optab_for_tree_code to distinguish between vector shifted by a
1410 scalar and vector shifted by a vector.
1411 * tree-vectorizer.c (supportable_widening_operation): Ditto.
1412 (supportable_narrowing_operation): Ditto.
1413 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1414 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1415 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1416 (vect_create_epilog_for_reduction): Ditto.
1417 (vectorizable_reduction): Ditto.
1418 (vectorizable_operation): Ditto.
1419 (vect_strided_store_supported): Ditto.
1420 (vect_strided_load_supported): Ditto.
1421 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1422 * expmed.c (expand_shift): Ditto.
1423
1424 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1425 scalar type.
1426 (ashr@var{m}3): Ditto.
1427 (vashl@var{m}3): Document new vector/vector shift standard name.
1428 (vashr@var{m}3): Ditto.
1429 (vlshr@var{m}3): Ditto.
1430 (vrotl@var{m}3): Ditto.
1431 (vrotr@var{m}3): Ditto.
1432
6784c6e0 1433 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
71d46ca5
MM
1434 (PPERM_INVERT): Ditto.
1435 (PPERM_REVERSE): Ditto.
1436 (PPERM_REV_INV): Ditto.
1437 (PPERM_ZERO): Ditto.
1438 (PPERM_ONES): Ditto.
1439 (PPERM_SIGN): Ditto.
1440 (PPERM_INV_SIGN): Ditto.
1441 (PPERM_SRC1): Ditto.
1442 (PPERM_SRC2): Ditto.
1443
1444 * config/i386/sse.md (mulv2di3): Add SSE5 support.
1445 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1446 allows a memory operand to be the value being added, and split it
1447 to improve vectorization.
1448 (sse5_pmacsdqh_mem): Ditto.
1449 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1450 (sse5_mulv2div2di3_high): Ditto.
1451 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1452 (vec_pack_trunc_v4si): Ditto.
1453 (vec_pack_trunc_v2di): Ditto.
1454 (sse5_pcmov_<mode>): Remove code that tried to use use
1455 andps/andnps instead of pcmov.
1456 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1457 pmacsdqh instructions.
1458 (vec_widen_smult_lo_v4si): Ditto.
1459
1460 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1461 (PPERM_INVERT): Ditto.
1462 (PPERM_REVERSE): Ditto.
1463 (PPERM_REV_INV): Ditto.
1464 (PPERM_ZERO): Ditto.
1465 (PPERM_ONES): Ditto.
1466 (PPERM_SIGN): Ditto.
1467 (PPERM_INV_SIGN): Ditto.
1468 (PPERM_SRC1): Ditto.
1469 (PPERM_SRC2): Ditto.
1470 (ix86_expand_sse_movcc): Move the SSE5 test after the if
1471 true/false tests.
1472 (ix86_expand_int_vcond): If SSE5 generate all possible integer
1473 comparisons.
1474 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1475 says ignore whether the last reference is a memory operand.
1476
14772008-05-14 Michael Meissner <michael.meissner@amd.com>
1478 Paolo Bonzini <bonzini at gnu dot org>
1479
1480 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1481 shift patterns.
1482
6784c6e0 1483 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
71d46ca5
MM
1484 (vlshr<mode>3): Rename from vlshr<mode>3.
1485 (vashr<mode>3): Rename from vashr<mode>3.
1486 (mulv4sf3): Change the names of vector shift patterns.
1487 (mulv4si3): Ditto.
1488 (negv4sf2): Ditt.
1489
1490 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1491 shift insns.
1492
6784c6e0 1493 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
71d46ca5
MM
1494 (SI_SHLHI): Ditto.
1495 (SI_SHL): Ditto.
1496 (SI_SHLI): Ditto.
1497 (SI_ROTH): Ditto.
1498 (SI_ROTHI): Ditto.
1499 (SI_ROT): Ditto.
1500 (SI_ROTI): Ditto.
1501 (SPU_RL_0): Ditto.
1502 (SPU_RL_1): Ditto.
1503 (SPU_RL_2): Ditto.
1504 (SPU_RL_3): Ditto.
1505 (SPU_RL_4): Ditto.
1506 (SPU_RL_5): Ditto.
1507 (SPU_RL_6): Ditto.
1508 (SPU_RL_7): Ditto.
1509 (SPU_SL_0): Ditto.
1510 (SPU_SL_1): Ditto.
1511 (SPU_SL_2): Ditto.
1512 (SPU_SL_3): Ditto.
1513 (SPU_SL_4): Ditto.
1514 (SPU_SL_5): Ditto.
1515 (SPU_SL_6): Ditto.
1516 (SPU_SL_7): Ditto.
1517
1518 * config/spu/spu.md (v): New iterator macro to add v for vector types.
1519 (floatunssidf2_internal): Change vector/vector shift names.
1520 (floatunsdidf2_internal): Ditto.
1521 (mulv8hi3): Ditto.
1522 (ashrdi3): Ditto.
1523 (ashrti3): Ditto.
1524 (cgt_df): Ditto.
1525 (cgt_v2df): Ditto.
1526 (dftsv): Ditto.
1527 (vashl<mode>3): Rename from ashl<mode>3.
1528 (vashr<mode>3): Rename from ashr<mode>3.
1529 (vlshr<mode>3): Rename from lshr<mode>3.
1530 (vrotl<mode>3): Rename from rotl<mode>3.
1531
550c9cf0
MM
15322008-05-14 Michael Meissner <michael.meissner@amd.com>
1533
1534 PR target/36224
6784c6e0
UB
1535 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1536 multiply gives the wrong value when doing widening multiplies.
550c9cf0
MM
1537 (vec_widen_smult_lo_v4si): Ditto.
1538
84b8030f
KZ
15392008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
1540
1541 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1542 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1543 emit_library_call_value.
1544 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1545 * tree.h (ECF_LIBCALL_BLOCK): Removed.
1546 * calls.c (initialize_argument_information, precompute_arguments,
1547 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1548 (precompute_arguments): Removed flags parameter.
1549 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1550
f403a4a2
RG
15512008-05-14 Richard Guenther <rguenther@suse.de>
1552
1553 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1554 Make sure to register the store if the use is a PHI_NODE.
1555
da19297d
OH
15562008-05-14 Olivier Hainque <hainque@adacore.com>
1557
1558 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1559 memory if the component is to be referenced in BLKmode according
1560 to get_inner_reference.
1561
1fd03c70
AN
15622008-05-14 Adam Nemet <anemet@caviumnetworks.com>
1563
1564 * calls.c (emit_library_call_value_1): Restore code clearing
6784c6e0 1565 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1fd03c70 1566
349c3166
OH
15672008-05-14 Olivier Hainque <hainque@adacore.com>
1568 Nicolas Roche <roche@adacore.com>
1569
1570 * configure.ac: Add support for a "gcc_subdir" variable in
1571 config-lang.in, to denote a subdirectory where the language/GCC
1572 integration files are to be found.
1573 * configure: Regenerate.
1574
2b8775f3
IR
15752008-05-14 Ira Rosen <irar@il.ibm.com>
1576
1577 PR tree-optimization/36098
1578 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1579 value for the first load in the group in case of a gap.
1580 (vect_build_slp_tree): Check that there are no gaps in loads.
1581
d70dcf29
KZ
15822008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
1583
1584 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1585 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1586 expand_copysign_bit, ): Change call to emit_no_conflict_block to
1587 emit_insn and remove unneeded code to construct extra args.
1588 (emit_no_conflict_block): Removed.
1589 * optabls.h: (emit_no_conflict_block): Removed.
1590 * cse.c (cse_extended_basic_block): Remove search for
6784c6e0 1591 REG_NO_CONFLICT note.
d70dcf29
KZ
1592 * global.c: Removed incorrect comment added in revision 117.
1593 * expr.c (convert_move): Change call to emit_no_conflict_block to
1594 emit_insn.
1595 * recog.c: Change comments so that they do not mention
1596 REG_NO_CONFLICT.
1597 * local_alloc.c (combine_regs): Removed last parameter.
1598 (no_conflict_p): Removed.
1599 (block_alloc): Removed note, no_conflict_combined_regno and set
1600 local vars. Removed all code to process REG_NO_CONFLICT blocks.
1601 (combine_regs): Removed already_dead and code to look for
1602 REG_NO_CONFLICT notes.
1603 * lower_subreg (remove_retval_note): Removed code to look for
1604 REG_NO_CONFLICT block.
1605 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1606 (resolve_clobber): Remove code to process libcalls that have
1607 REG_NO_CONFLICT notes.
1608 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1609 case.
6784c6e0
UB
1610 * combine.c (can_combine_p, distribute_notes): Removed
1611 REG_NO_CONFLICT case.
1612 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1613 to emit_insns.
d70dcf29
KZ
1614 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1615 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6784c6e0 1616 Ditto.
d70dcf29 1617 * reg-notes.def (NO_CONFLICT): Removed.
c5fcd670 1618
cc44abe6
DM
16192008-05-14 David S. Miller <davem@davemloft.net>
1620
1621 * config/sparc/sparc.c (sparc_profile_hook): If
6784c6e0 1622 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
cc44abe6
DM
1623 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1624 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1625
0beb3d66
AK
16262008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
1627
1628 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1629
08e64088
UB
16302008-05-13 Uros Bizjak <ubizjak@gmail.com>
1631
1632 PR target/36222
1633 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1634 and op1 expansion before vector concat to have less live pseudos.
1635
af7ae5d1
L
16362008-05-13 H.J. Lu <hongjiu.lu@intel.com>
1637
1638 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1639 ix86_expand_vector_set if supported.
1640
5db9ba0c
DN
16412008-05-13 Diego Novillo <dnovillo@google.com>
1642 Kenneth Zadeck <zadeck@naturalbridge.com>
1643
1644 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1645
1646 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1647 phinodes_print_statistics, init_ssanames, fini_ssanames,
08e64088
UB
1648 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1649 release_ssa_name, release_defs, replace_ssa_name_symbol,
5db9ba0c
DN
1650 ssanames_print_statistics): Move ...
1651 * tree-flow.h: ... here.
08e64088
UB
1652 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1653 Use FN instead of cfun.
5db9ba0c 1654 (make_ssa_name_fn): Rename from make_ssa_name.
08e64088 1655 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
5db9ba0c 1656 * tree-flow-inline.h (make_ssa_name): Move from
08e64088 1657 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
5db9ba0c
DN
1658 * omp-low.c (expand_omp_parallel):
1659 * tree-flow-inline.h (redirect_edge_var_map_result):
6784c6e0
UB
1660 * tree-ssa.c (init_tree_ssa): Add argument FN.
1661 Use it instead of cfun. Update all users.
5db9ba0c 1662
899015a0
TT
16632008-05-13 Tom Tromey <tromey@redhat.com>
1664
1665 PR preprocessor/22168:
1666 * doc/cpp.texi (Top): Update menu.
1667 (Alternatives to Wrapper #ifndef): New node.
1668 (Other Directives): Document deprecation.
1669 (Obsolete Features): Remove menu.
1670 (Assertions): Merge node into Obsolete Features.
1671 (Obsolete once-only headers): Move earlier; rename to Alternatives
1672 to Wrapper #ifndef.
1673 * doc/cppopts.texi: Update.
1674 * c.opt (Wdeprecated): Enable for C and ObjC.
1675 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1676 (C++ Dialect Options): Move -Wno-deprecated from here to...
1677 (Warning Options): ... here.
1678
8ebc39d8
RG
16792008-05-13 Richard Guenther <rguenther@suse.de>
1680
1681 PR middle-end/36227
1682 * fold-const.c (fold_sign_changed_comparison): Do not allow
1683 changes in pointer-ness.
1684
ef0a7607
KK
16852008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1686
1687 PR target/24713
1688 * config/sh/sh.c (sh_expand_prologue): Don't clear
1689 RTX_FRAME_RELATED_P for push insns.
1690
9c218cfc
AH
16912008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
1692
1693 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1694
4c75f709
AS
16952008-05-12 Anatoly Sokolov <aesok@post.ru>
1696
1697 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1698 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1699 Use 'machine->is_leaf' instead of 'leaf_func_p'.
1700
fcc9fe1e
L
17012008-05-12 H.J. Lu <hongjiu.lu@intel.com>
1702
1703 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1704 (*vec_concatv4sf_sse): This.
1705 (*sse2_concatv2si): Renamed to ...
1706 (*vec_concatv2si_sse2): This.
1707 (*sse1_concatv2si): Renamed to ...
1708 (*vec_concatv2si_sse): This.
1709 (*vec_concatv2di_rex): Renamed to ...
1710 (*vec_concatv2di_rex64): This.
1711 (*vec_concatv2si_sse4_1): New.
1712 (*vec_concatv2di_rex64_sse4_1): Likewise.
1713
162bfc7e
UB
17142008-05-12 Uros Bizjak <ubizjak@gmail.com>
1715
1716 PR rtl-optimization/36111
1717 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1718 that was created for swappable operands.
1719
3d4e720a
ST
17202008-05-12 Samuel Tardieu <sam@rfc1149.net>
1721
1722 PR ada/36001
1723 * Makefile.in: Substitute GNATMAKE and GNATBIND.
1724 * configure.ac: Add call to ACX_PROG_GNAT.
1725
fc54bc84
VR
17262008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
1727
1728 * optc-gen.awk: Fix comment typo.
1729
2a157700
AL
17302008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1731
1732 * pretty-print.c (pp_integer_with_precision): Use
1733 HOST_LONG_LONG_FORMAT.
1734
4e00d960
KZ
17352008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
1736
1737 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1738
b282a8d3
L
17392008-05-10 H.J. Lu <hongjiu.lu@intel.com>
1740
1741 * config/i386/i386.c (bdesc_ptest): Removed.
1742 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1743 (bdesc_args): Add __builtin_ia32_ptestz128,
1744 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1745 (ix86_init_mmx_sse_builtins): Updated.
1746 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1747 (ix86_expand_builtin): Updated.
1748
17d23165
RS
17492008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
1750
1751 * tree-cfg.c (valid_fixed_convert_types_p): New function.
1752 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1753
d35910bf
UB
17542008-05-10 Uros Bizjak <ubizjak@gmail.com>
1755
1756 * value-prof.c (interesting_stringop_to_profile): Do not
1757 return early for BUILT_IN_MEMPCPY.
1758
17b29c0a
L
17592008-05-09 H.J. Lu <hongjiu.lu@intel.com>
1760
1761 * calls.c (expand_call): Don't use callgraph to increase
1762 preferred_stack_boundary.
1763
1764 * cgraph.h (cgraph_rtl_info): Use unsigned on
1765 preferred_incoming_stack_boundary.
1766
1767 * final.c (rest_of_clean_state): Use unsigned on
1768 preferred_stack_boundary.
1769
4822e563
TT
17702008-05-09 Tom Tromey <tromey@redhat.com>
1771
1772 PR preprocessor/22231:
1773 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1774 proceeding.
1775
53a8f709
UB
17762008-05-09 Uros Bizjak <ubizjak@gmail.com>
1777
1778 PR tree-optimization/36129
162bfc7e 1779 * tree-ssa-ccp.c: Include value-prof.h.
53a8f709
UB
1780 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1781 built-in function was folded to a constant.
162bfc7e 1782 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
53a8f709 1783
3f227a8c
JS
17842008-05-09 Jan Sjodin <jan.sjodin@amd.com>
1785 Sebastian Pop <sebastian.pop@amd.com>
1786
1787 * tree-scalar-evolution.c: Document instantiate_scev.
1788 (instantiate_parameters_1): Renamed instantiate_scev_1.
1789 Don't use the same loop for instantiation_loop and evolution_loop.
1790 (instantiate_scev): New.
1791 (instantiate_parameters): Moved...
1792 (resolve_mixers): Update call to instantiate_scev_1 to pass the
1793 same loop twice. Maintains the semantics for this function.
1794 * tree-scalar-evolution.h (instantiate_scev): Declare.
1795 (instantiate_parameters): ...here. Now static inline.
1796 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1797 instead of resolve_mixers.
1798
a3e19be6
MK
17992008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
1800
1801 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1802
1043771b
TB
18032008-05-09 Tomas Bily <tbily@suse.cz>
1804
1805 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1806 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1807 * tree-ssa-structalias.c (get_constraint_for): Likewise.
1808 * c-common.c (c_common_truthvalue_conversion): Likewise.
1809 * tree-object-size.c (compute_object_offset): Likewise.
1810 * tree-inline.c (estimate_num_insns_1): Likewise.
1811 * varasm.c (const_hash_1, compare_constant, copy_constant)
1812 (compute_reloc_for_constant, output_addressed_constants)
1813 (initializer_constant_valid_p): Likewise.
1814 * c-omp.c (check_omp_for_incr_expr): Likewise.
1815 * gimplify.c (gimplify_expr): Likewise.
1816 * c-typeck.c (c_finish_return): Likewise.
1817 * tree-vectorizer.c (supportable_widening_operation)
1818 (supportable_narrowing_operation): Likewise.
1819 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1820 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1821 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1822 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1823 (descr_info_loc): Likewise.
1824 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1825 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1826 (fold_unary): Likewise.
1827 * builtins.c (get_pointer_alignment): Likewise.
1828 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1829 (instantiate_parameters_1): Likewise.
1830 * tree.c (expr_align, stabilize_reference): Likewise.
1831 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1832 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1833 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1834 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1835 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
162bfc7e
UB
1836 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1837 Likewise.
1043771b
TB
1838 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1839 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1840 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1841 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1842 (forward_propagate_comparison)
1843 (tree_ssa_forward_propagate_single_use_vars): Likewise.
1844 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1845 * emit-rtl.c (component_ref_for_mem_expr)
1846 (set_mem_attributes_minus_bitpos): Likewise.
1847 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
162bfc7e
UB
1848 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1849 Likewise.
1043771b
TB
1850 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1851 (build_function_call, pointer_diff, build_compound_expr)
1852 (c_finish_return): Likewise.
1853 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
162bfc7e
UB
1854 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1855 Likewise.
1043771b
TB
1856 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1857 * expr.c (is_aligning_offset): Likewise.
1858 * tree-ssa-alias.c (is_escape_site): Likewise.
1859 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1860 (check_all_va_list_escapes): Likewise.
1861 * tree-ssa-loop-ivopts.c (determine_base_object)
1862 (determine_common_wider_type): Likewise.
1863 * dojump.c (do_jump): Likewise.
1864 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1865 * tree-gimple.c (is_gimple_cast): Likewise.
1866 * fold-const.c (decode_field_reference, )
1867 (fold_sign_changed_comparison, fold_unary, fold_comparison)
1868 (fold_binary): Likewise.
1869 * tree-ssa-alias-warnings.c (find_alias_site_helper)
1870 (already_warned_in_frontend_p): Likewise.
1871 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1872 * tree.c (really_constant_p, get_unwidened): Likewise.
1873 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1874 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
162bfc7e
UB
1875 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1876 Likewise.
1877 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1878 CONVERT_EXPR_P.
1043771b
TB
1879 (CONVERT_EXPR_P): Define.
1880 (CASE_CONVERT): Define.
1881
5ba5ab9b
KZ
18822008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
1883
1884 PR middle-end/36117
162bfc7e
UB
1885 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1886 (delete_unmarked_insns): When deleting a call, call
5ba5ab9b
KZ
1887 delete_unreachable_blocks.
1888 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
162bfc7e
UB
1889 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1890
1353232d
RG
18912008-05-08 Richard Guenther <rguenther@suse.de>
1892
1893 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1894 (-ftree-salias): Likewise.
1895 (salias-max-implicit-fields): Remove param documentation.
1896 (salias-max-array-elements): Likewise.
1897 * tree-pass.h (pass_create_structure_vars): Remove.
1898 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1899 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1900 * tree-ssa-alias.c (create_structure_vars): Remove.
1901 (gate_structure_vars): Likewise.
1902 (pass_create_structure_vars): Likewise.
1903 (gate_build_alias): Likewise.
1904 (pass_build_alias): Adjust to run always and dump the function.
1905 * common.opt (ftree-salias): Hide.
1906 * passes.c (init_optimization_passes): Remove
1907 pass_create_structure_vars, adjust comment.
1908 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1909 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1910 * opts.c (decode_options): Do not set flag_tree_salias.
1911 (common_handle_option): Add OPT_ftree_salias to the backward
1912 compatibility section.
1913
31de5b77
RG
19142008-05-08 Richard Guenther <rguenther@suse.de>
1915
1916 * tree-flow-inline.h (var_can_have_subvars): Move ...
1917 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1918 * tree-flow.h (var_can_have_subvars): Remove.
1919 (push_fields_onto_fieldstack): Remove.
1920 (sort_fieldstack): Likewise.
1921 (struct fieldoff): Move ...
1922 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
1923 alias_set and base_for_components fields.
1924 (sort_fieldstack): Make static.
1925 (push_fields_onto_fieldstack): Likewise. Remove code that
1926 handles anything but RECORD_TYPEs. Remove alias_set and
1927 base_for_components handling.
1928 (create_variable_info_for): Adjust.
1929
c1a3620a 19302008-05-08 Seongbae Park <seongbae.park@gmail.com>
b70837af 1931
c1a3620a
SP
1932 * common.opt (Wframe-larger-than=): Shorten the help message
1933 to one line.
1934 * doc/invoke.texi (Wframe-larger-than=): Add more description.
1935
04b03edb
RAE
19362008-05-08 Rafael Espindola <espindola@google.com>
1937
1938 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1939 trap.
1940 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1941 trap and that both operands are gimple values.
1942 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1943 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1944 is a fp operation.
1945
96c92f47
RS
19462008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
1947
1948 * read-rtl.c (join_c_conditions): Return the first string if the
1949 two strings are equal.
1950
e663da80
RS
19512008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
1952
1953 * gensupport.h (pred_data): Add a "num_codes" field.
1954 (add_predicate_code): Declare.
1955 * gensupport.c (add_predicate_code): New function.
1956 (std_pred_table): Add an "allows_const_p" field.
1957 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1958 Remove the (incomplete) list of such codes from the codes field.
1959 (init_predicate_table): Use add_predicate_code. Add all
1960 RTX_CONST_OBJs if allows_const_p is true.
1961 * genrecog.c (process_define_predicate): Use add_predicate_code.
1962
977502ff
DD
19632008-05-08 David Daney <ddaney@avtrex.com>
1964 Richard Sandiford <rsandifo@nildram.co.uk>
1965
1966 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1967 special case of constant zero operands.
1968 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1969 old and new values. Special case constant zero values.
1970 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1971 fails.
1972 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1973 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1974
627ab861
PB
19752008-05-08 Paolo Bonzini <bonzini@gnu.org>
1976
1977 PR target/36090
1978 * simplify-rtx.c (simplify_plus_minus): Create CONST of
1979 similar RTX_CONST_OBJ before CONST_INT.
1980
41ccb5d1
SE
19812008-05-08 Steve Ellcey <sje@cup.hp.com>
1982
1983 * stmt.c (expand_stack_restore): Change sa mode if needed.
1984
e8d6aaee
RG
19852008-05-08 Richard Guenther <rguenther@suse.de>
1986
1987 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1988 return type to bool.
1989 (ix86_sol10_return_in_memory): Likewise.
1990 (ix86_i386elf_return_in_memory): Likewise.
1991 (ix86_i386interix_return_in_memory): Likewise.
1992 * config/i386/i386.c (ix86_return_in_memory): Likewise.
1993 (ix86_sol10_return_in_memory): Likewise.
1994 (ix86_i386elf_return_in_memory): Likewise.
1995 (ix86_i386interix_return_in_memory): Likewise.
1996
033df0b9
KT
19972008-05-08 Kai Tietz <kai.tietz@onevision.com>
1998
d7822892 1999 PR bootstrap/36180
033df0b9
KT
2000 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
2001 fndecl argument.
d7822892
UB
2002 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
2003 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
2004 declared in front.
033df0b9 2005
5611cf0b
RG
20062008-05-08 Richard Guenther <rguenther@suse.de>
2007
2008 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
2009 * tree-data-ref.h (struct dr_alias): Remove subvars field.
2010 (DR_SUBVARS): Remove.
2011 * tree-dfa.c (dump_subvars_for): Remove.
2012 (debug_subvars_for): Likewise.
2013 (dump_variable): Do not dump subvars.
2014 (remove_referenced_var): Do not remove subvars.
2015 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
2016 (lookup_subvars_for_var): Remove.
2017 (get_subvars_for_var): Likewise.
2018 (get_subvars_at): Likewise.
2019 (get_first_overlapping_subvar): Likewise.
2020 (overlap_subvar): Likewise.
2021 * tree-flow.h (subvar_t): Remove.
2022 (struct var_ann_d): Remove subvars field.
2023 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
2024 argument. Remove special handling of SFTs.
2025 (compute_tag_properties): Likewise.
2026 (set_initial_properties): Likewise.
2027 (compute_call_clobbered): Likewise.
2028 (count_mem_refs): Likewise.
2029 (compute_memory_partitions): Likewise.
2030 (compute_flow_insensitive_aliasing): Likewise.
2031 (setup_pointers_and_addressables): Likewise.
2032 (new_type_alias): Likewise.
2033 (struct used_part): Remove.
2034 (used_portions): Likewise.
2035 (struct used_part_map): Likewise.
2036 (used_part_map_eq): Likewise.
2037 (used_part_map_hash): Likewise.
2038 (free_used_part_map): Likewise.
2039 (up_lookup): Likewise.
2040 (up_insert): Likewise.
2041 (get_or_create_used_part_for): Likewise.
2042 (create_sft): Likewise.
2043 (create_overlap_variables_for): Likewise.
2044 (find_used_portions): Likewise.
2045 (create_structure_vars): Likewise.
2046 * tree.def (STRUCT_FIELD_TAG): Remove.
2047 * tree.h (MTAG_P): Adjust.
2048 (struct tree_memory_tag): Remove base_for_components and
2049 unpartitionable flags.
2050 (struct tree_struct_field_tag): Remove.
2051 (SFT_PARENT_VAR): Likewise.
2052 (SFT_OFFSET): Likewise.
2053 (SFT_SIZE): Likewise.
2054 (SFT_NONADDRESSABLE_P): Likewise.
2055 (SFT_ALIAS_SET): Likewise.
2056 (SFT_UNPARTITIONABLE_P): Likewise.
2057 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
2058 (union tree_node): Remove sft field.
2059 * alias.c (get_alias_set): Remove special handling of SFTs.
2060 * print-tree.c (print_node): Remove handling of SFTs.
2061 * tree-dump.c (dequeue_and_dump): Likewise.
2062 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
2063 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
2064 * tree-predcom.c (set_alias_info): Do not set subvars.
2065 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
2066 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
2067 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
2068 (add_vars_for_offset): Remove.
2069 (add_virtual_operand): Remove special handling of SFTs.
2070 (add_call_clobber_ops): Likewise.
2071 (add_call_read_ops): Likewise.
2072 (get_asm_expr_operands): Likewise.
2073 (get_modify_stmt_operands): Likewise.
2074 (get_expr_operands): Likewise.
2075 (add_to_addressable_set): Likewise.
2076 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
2077 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
162bfc7e 2078 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5611cf0b
RG
2079 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
2080 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
2081 (tree_node_structure): Likewise.
2082 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
2083 handling of SFTs.
2084 (find_what_p_points_to): Likewise.
2085
fb4b5171
SL
20862008-05-08 Sa Liu <saliu@de.ibm.com>
2087
2088 * config/spu/spu.md: Fixed subti3 pattern.
fb4b5171 2089
1b674de0
RG
20902008-05-08 Richard Guenther <rguenther@suse.de>
2091
2092 PR middle-end/36154
2093 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
2094 sure to create a representative for trailing arrays for PTA.
2095
b13e7b6c
RG
20962008-05-08 Richard Guenther <rguenther@suse.de>
2097
2098 PR middle-end/36172
2099 * fold-const.c (operand_equal_p): Two objects which types
2100 differ in pointerness are not equal.
2101
d7822892 21022008-05-08 Kai Tietz <kai.tietz@onevision.com>
81464b2c
KT
2103
2104 * calls.c (compute_argument_block_size): Add argument tree fndecl.
2105 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
2106 (emit_library_call_value_1): Add new variable fndecl initialized by
2107 NULL_TREE. It should be the decl type of orgfun, but this information
2108 seems not to be available here, so it uses the default calling abi.
2109 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
2110 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
2111 by TARGET_RETURN_IN_MEMORY.
2112 * config/i386/i386-interix.h: Likewise.
2113 * config/i386/i386.h: Likewise.
2114 * config/i386/i386elf.h: Likewise.
2115 * config/i386/ptx4-i.h: Likewise.
2116 * config/i386/sol2-10.h: Likewise.
2117 * config/i386/sysv4.h: Likewise.
2118 * config/i386/vx-common.h: Likewise.
2119 * config/cris/cris.h: Removed #if 0 clause.
d7822892 2120 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
81464b2c
KT
2121 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
2122 argument.
2123 (ix86_sol10_return_in_memory): Likewise.
2124 (ix86_i386elf_return_in_memory): New.
2125 (ix86_i386interix_return_in_memory): New.
2126 * config/mt/mt-protos.h (mt_return_in_memory): New.
2127 * config/mt/mt.c: Likewise.
2128 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2129 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
2130 * config/bfin/bfin.h: Likewise.
2131 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
2132 argument.
2133 * config/bfin/bfin.c: Likewise.
2134 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
2135 * config/alpha/unicosmk.h: Likewise.
2136 * config/i386/cygming.h: Likewise.
2137 * config/iq2000/iq2000.h: Likewise.
2138 * config/mips/mips.h: Likewise.
2139 * config/mn10300/mn10300.h: Likewise.
2140 * config/rs6000/rs6000.h: Likewise.
2141 * config/score/score.h: Likewise.
2142 * config/spu/spu.h: Likewise.
2143 * config/v850/v850.h: Likewise.
2144 * defaults.h: Likewise.
2145 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
d7822892
UB
2146 * expr.c (emit_block_move): Adjust use of
2147 OUTGOING_REG_PARM_STACK_SPACE.
81464b2c
KT
2148 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
2149 OUTGOING_REG_PARM_STACK_SPACE.
2150 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
2151
4218dc2d
JJ
21522008-05-08 Jakub Jelinek <jakub@redhat.com>
2153
2154 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
2155 on OMP_RETURN for OMP_FOR.
2156
1f16b47c
JJ
2157 PR debug/35896
2158 * dwarf2out.c (dw_expand_expr, common_check): Removed.
2159 (fortran_common): New function.
2160 (gen_variable_die): Call fortran_common instead of common_check,
2161 adjust for it returning tree instead of rtx. Formatting.
2162
4218dc2d 21632008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
becfd6e5 2164
d7822892
UB
2165 PR rtl/7335
2166 PR rtl/33826
2167 * see.c (see_copy_insn): Copy new pure const attributes for new call.
2168 * c-decl.c (merge_decls): Ditto.
2169 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
2170 to RTL_CONST_OR_PURE_CALL_P.
2171 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
2172 Initialized DECL_LOOPING_CONST_PURE.
2173 (process_call_operands): Set tree_side_effects properly.
2174 * tree.h (TREE_READONLY_DECL_P): Removed.
2175 (DECL_IS_PURE): Renamed to DECL_PURE_P.
2176 (DECL_LOOPING_OR_CONST_P): New macro.
2177 (struct tree_function_decl): Added looping_const_or_pure_p.
2178 (ECF_*) Renumbered.
2179 (ECF_LOOPING_OR_CONST_P): New macro.
2180 * rtlanal.c (pure_const_p): Removed.
2181 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2182 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2183 to RTL_CONST_CALL_P.
2184 * ipa-pure-const.c (pure_const_state_e): Added looping field.
2185 (check_decl, check_tree, check_call, scan_function): Initialize
2186 looping.
2187 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2188 (static_execute): Set looping true for recursive functions.
2189 Undo setting state to IPA_NEITHER for recursive functions.
2190 * cse.c (cse_insn):
2191 * ifcvt.c (noce_can_store_speculate_p): Changed
2192 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
2193 RTL_CONST_OR_PURE_CALL_P.
2194 * dse.c (scan_insn): Ditto.
2195 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2196 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2197 RTL_CONST_OR_PURE_CALL_P.
2198 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2199 pure_call_p to RTL_CONST_CALL_P.
2200 * gimplify.c (gimplify_call_expr): Clear side effects for
2201 non-looping pure and constant calls.
2202 * calls.c (emit_call_1): Set rtl flags from ecf flags.
2203 (flags_from_decl_or_type): Set ecf flags from decl flags.
2204 (initialize_argument_information): Turn off
2205 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2206 Change const to pure if callee_copies is true rather than just
2207 turning off const.
2208 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2209 way of marking pure calls.
2210 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2211 Remove hack that was supposed to fix pr7335 and remove old
2212 way of marking pure calls.
2213 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2214 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2215 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2216 RTL_CONST_OR_PURE_CALL_P.
2217 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2218 * loop-invariant.c (find_exits, find_invariant_bb): Changed
2219 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2220 * sched-deps.c (schedule_analyze): Ditto.
2221 * rtl.h (struct rtx_def): Use call field, unchanging field, and
2222 return_val field of calls to represent pure and const function info.
2223 (CONST_OR_PURE_CALL_P): Deleted macro.
2224 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2225 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2226 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2227 TREE_READONLY.
2228 * tree-optimize.c (execute_fixup_cfg): Added test for
2229 ECF_LOOPING_CONST_OR_PURE.
2230 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2231 DECL_PURE_P.
2232 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2233 effects for looping pure or const calls.
2234 (verify_gimple_expr): Added verification code.
2235 * config/alpha/alpha.c (alpha_legitimize_address,
2236 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2237 RTL_CONST_CALL_P.
2238 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2239 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2240 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2241 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2242 RTL_CONST_OR_PURE_CALL_P.
2243 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2244 and const calls to be deleted.
becfd6e5 2245
d7822892 22462008-05-07 Uros Bizjak <ubizjak@gmail.com>
ffbaf337
UB
2247
2248 PR target/35714
2249 * config/i386/mmx.md (mmx_subv2sf3): New expander.
2250 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2251 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2252 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
2253 to handle nonimmediate operands.
2254 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2255 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
2256 to handle nonimmediate operands.
2257 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2258 (mmx_pmulhrwv4hi3): New expander. Use
2259 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2260 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2261 (sse2_umulv1siv1di3): New expander. Use
2262 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2263 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2264 (mmx_eq<mode>3): New expander. Use
2265 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2266 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2267 (mmx_uavgv8qi3): New expander. Use
2268 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2269 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2270 (mmx_uavgv4hi3): New expander. Use
2271 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2272
2273 * config/i386/sse.md
3a3f9d87 2274 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 2275 to handle nonimmediate operands.
3a3f9d87 2276 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 2277 to handle nonimmediate operands.
3a3f9d87 2278 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 2279 to handle nonimmediate operands.
3a3f9d87 2280 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 2281 to handle nonimmediate operands.
3a3f9d87 2282 (sse2_unpckhpd_exp): New expander. Use
ffbaf337 2283 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 2284 (sse2_unpcklpd_exp): New expander. Use
ffbaf337 2285 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 2286 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 2287 to handle nonimmediate operands.
ffbaf337
UB
2288 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
2289 to handle nonimmediate operands.
2290 (*sse2_<plusminus_insn><mode>3): Rename from
2291 sse2_<plusminus_insn><mode>3 insn pattern.
2292 (sse2_<plusminus_insn><mode>3): New expander. Use
2293 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2294 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2295 (sse2_umulv2siv2di3): New expander. Use
2296 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2297 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2298 (sse4_1_mulv2siv2di3): New expander. Use
2299 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2300 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2301 (sse2_pmaddwd): New expander. Use
2302 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2303 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2304 (sse2_eq<mode>3): New expander. Use
2305 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2306 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2307 (sse4_1_eqv2di3): New expander. Use
2308 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2309 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2310 (sse2_uavgv16qi3): New expander. Use
2311 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2312 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2313 (sse2_uavgv16qi3): New expander. Use
2314 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2315 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2316 (sse2_uavgv8hi3): New expander. Use
2317 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2318 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2319 (ssse3_pmulhrswv8hi3): New expander. Use
2320 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2321 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2322 (ssse3_pmulhrswv4hi3): New expander. Use
2323 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2324
2325 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2326 (<sse>_vmmul<mode>3): Ditto.
2327 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2328 (divv2df3): Ditto.
2329 (ssse3_pmaddubsw128): Use register_operand for operand 1.
2330 (ssse3_pmaddubsw): Ditto.
2331
3a3f9d87
UB
2332 * config/i386/i386.c (struct_builtin_description)
2333 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2334 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2335 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2336 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2337 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2338 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2339 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2340 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2341 (ix86_fixup_binary_operands): Assert that src1
ffbaf337
UB
2342 and src2 must have the same mode when swapped.
2343 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2344 and ix86_binary_operator_ok. Do not force operands in registers
2345 when optimizing.
2346
95622280
JH
23472008-05-07 Jan Hubicka <jh@suse.cz>
2348
2349 * cgraph.c (dump_cgraph_node): Update.
2350 * cgraph.h (cgraph_local_info): Break out inline summary.
2351 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2352 hook.
2353 * ipa-inline (inline_summary): New accestor function.
2354 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2355 cgraph_decide_inlining, compute_inline_parameters): Update.
2356 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2357
96fcacb7
MK
23582008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
2359
2360 Cleanup ColdFire scheduling support and add V4 pipeline model.
2361
2362 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2363 (define_attr cpu): Add cfv4 value.
2364 (define_attr type, define_attr type1): Merge into a single 'type'
2365 attribute. Update all uses.
2366 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2367 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
2368 Update all uses.
2369 (define_attr opx_mem, define_attr opy_mem): Remove.
2370 (define_attr op_mem): Clean up, update comment.
2371 (define_attr size): Use specific values instead of general int.
2372 (define_attr guess, define_attr split): Remove. Update all uses.
2373 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2374 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2375 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2376 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2377 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2378 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2379 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2380 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2381 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2382 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2383 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2384 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2385 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2386 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2387 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2388 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2389 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2390 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2391 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2392 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2393 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2394 Update or set attributes.
2395 (stack_tie): New fake instruction.
2396
2397 * config/m68k/m68k.h (TUNE_CFV4): New macro.
2398 (m68k_sched_attr_size): Update declaration.
2399 (m68k_sched_attr_type2): Remove.
2400 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2401 Declare new bypass predicates.
2402
2403 * config/m68k/m68k.c (m68k_sched_issue_rate,
2404 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2405 implementations.
2406 (TARGET_SCHED_ISSUE_RATE,
2407 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2408 (override_options): Handle scheduling for ColdFire V4 core.
2409 (m68k_expand_prologue): Emit stack_tie.
2410 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2411 'OP_TYPE_FPN'. Update all uses.
2412 (sched_guess_p): Remove.
2413 (sched_address_type): Handle symbolic addresses.
2414 (sched_get_operand): New static function.
2415 (sched_operand_type): Merge into sched_attr_op_type.
2416 (sched_attr_op_type): Handle FP registers, handle quick constants,
2417 update.
2418 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2419 (m68k_sched_attr_size): Update. Move logic to ...
2420 (sched_get_attr_size_int): New static function.
2421 (sched_get_opxy_mem_type): New static function.
2422 (m68k_sched_attr_op_mem): Update.
2423 (m68k_sched_attr_type2): Remove.
2424 (sched_cfv4_bypass_data): New static variable.
2425 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2426 (m68k_sched_issue_rate): Implement scheduler hook.
2427 (struct _sched_ib: enabled_p): New field.
2428 (m68k_sched_variable_issue): Update. Handle V4.
2429 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2430 sched_dump_class_func_t, sched_dump_split_class,
2431 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2432 sched_dump_dfa_class, m68k_sched_dump): Remove.
2433 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2434 hook.
2435 (m68k_sched_init_global): Remove statisctics dumping, introduce
2436 sanity check that all instructions have pipeline reservations. Handle
2437 ColdFire V4 core.
2438 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2439 Handle ColdFire V4 core.
2440 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2441 New static functions.
2442 (m68k_sched_address_bypass_p): New bypass predicate.
2443 (sched_get_indexed_address_scale): New static function.
2444 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2445
2446 * cf.md: Update comments.
2447 (define_attr type2): Remove. Use 'type' attribute instead.
2448 Update all uses.
2449 (cf_ib): Rename to cfv123_ib. Update all uses.
2450 (cf_oep): Rename to cfv123_oep. Update all uses.
2451 (cf_chr): Rename to cfv123_chr. Update all uses.
2452 (cf_mem): Rename to cfv123_mem. Update all uses.
2453 (cf_mac): Move to more appropriate place.
2454 (cfv123_guess): New automaton and cpu_unit.
2455 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2456 Update uses of 'size' attribute. Handle before reload scheduling.
2457 (cfv123_guess): New dummy reservation for unhandled instructions.
2458 (cfv4_*): Pipeline description of ColdFire V4 core.
2459 (ignore): New reservation to handle 'ignore' type.
2460
2ee510b4
ILT
24612008-05-07 Ian Lance Taylor <iant@google.com>
2462
2463 PR middle-end/36013
2464 * gimplify.c (find_single_pointer_decl_1): Don't look through
2465 indirections.
2466 (find_single_pointer_decl): Adjust comments.
2467
c18c98c0
JJ
24682008-05-07 Jakub Jelinek <jakub@redhat.com>
2469
f61edbf6
JJ
2470 PR middle-end/36137
2471 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2472 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2473
c18c98c0
JJ
2474 PR middle-end/36106
2475 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2476 integral type rather than floating point, then VIEW_CONVERT_EXPR
2477 to the floating point type.
2478
c18c98c0 24792008-05-07 Uros Bizjak <ubizjak@gmail.com>
537d4fa6
UB
2480
2481 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2482 TFmode op0 to register.
2483
5f04ff80
AM
24842008-05-07 Alan Modra <amodra@bigpond.net.au>
2485
2486 * c-decl.c (grokdeclarator): Comment typo.
2487
c6c6b7aa
AH
24882008-05-06 Aldy Hernandez <aldyh@redhat.com>
2489
2490 * tree-flow.h: Remove prototype for computed_goto_p.
2491 * tree-cfg.c (computed_goto_p): Make static.
2492
4317a2fa
L
24932008-05-06 H.J. Lu <hongjiu.lu@intel.com>
2494
2495 PR target/35657
d0b48c67 2496 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4317a2fa
L
2497 (contains_aligned_value_p): This. Handle _Decimal128.
2498 (ix86_function_arg_boundary): Only align _Decimal128 to its
2499 natural boundary and handle it properly.
2500
c43f07af
MJ
25012008-05-06 Martin Jambor <mjambor@suse.cz>
2502
4317a2fa
L
2503 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2504 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2505 (ipcp_method_set_orig_node): Removed.
2506 (ipcp_cval_get_cvalue_type): Removed.
2507 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2508 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2509 (ipcp_cval_set_cvalue_type): Removed.
2510 (ipcp_cval_get_cvalue): Removed.
2511 (ipcp_cval_set_cvalue): Removed.
2512 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2513 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2514 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2515 (ipcp_cval_meet): Renamed to ipa_lattice_meet
2516 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2517 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2518 (ipcp_get_ith_lattice): Changed parameters.
2519 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2520 (ipcp_lattice_from_jfunc): Changed parameters.
c43f07af
MJ
2521 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2522 (ipcp_method_cval_print): Added temporary variable info.
2523 (ipcp_redirect): Removed already unused local variable caller.
2524 (ipcp_redirect): New temporary variable orig_callee_info
2525 (ipcp_redirect): Removed newly unused local variable callee.
2526 (ipcp_redirect): Removed (a bit confusing) local variable type.
2527 (ipcp_insert_stage): Added local variable info.
2528 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
2529 renamed too
2530 (ipcp_formal_create): Removed.
2531 (ipcp_method_cval_set): Removed.
2532 (ipcp_propagate_stage): Renamed lattice variables.
2533 (ipcp_method_cval_set_cvalue_type): Removed.
2534 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2535 (ipcp_print_all_lattices): Changed printed strings to refer to
2536 lattices rather than cvals.
2537 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2538 (ipcp_propagate_const): Changed formal parameters.
2539 (build_const_val): Changed formal parameters.
2540 (ipcp_insert_stage): Removed useless variable cvalue
2541 (build_const_val): Changed formal parameters.
2542 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2543 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2544 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2545 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2546 (ipcp_print_func_profile_counts): Changed string from "method" to
2547 "function"
2548 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2549 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2550 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2551 (ipcp_structures_print): Renamed to ipcp_print_all_structures
2552 (ipcp_profile_print): Renamed to ipcp_print_profile_data
2553 (ipcp_lat_is_const): Changed parameters and made inline.
2554 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2555 (ipcp_redirect): Renamed to ipcp_need_redirect_p
2556 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
2557 the predicate condition directly
2558 (ipcp_propagate_stage): Added local variable args. Removed local
2559 variable callee. (Both are mere code simplifications.)
2560 (ipcp_method_dont_insert_const): Renamed to
2561 ipcp_node_not_modifiable_p.
2562 (ipcp_node_not_modifiable_p): Made inline.
2563 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2564 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2565 (ipcp_print_all_lattices): Removed variable cvalue
2566 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2567 Updated comments.
2568
2b9d6cf3
OH
25692008-05-06 Olivier Hainque <hainque@adacore.com>
2570
2571 * tree-sra.c (try_instantiate_multiple_fields): Early return
2572 if field has POINTER_TYPE.
2573
18efb179
KT
25742008-05-06 Kai Tietz <kai.tietz@onevision.com>
2575
2576 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2577 by using 'q' specifier for instruction.
2578 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2579
38ce04d9
AS
25802008-05-06 Anatoly Sokolov <aesok@post.ru>
2581
2582 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2583 Change mode of zero_extract from QImode to HImode.
2584 (sign bit tests peepholes): (Ditto.).
2585
333d8f61
UB
25862008-05-06 Uros Bizjak <ubizjak@gmail.com>
2587
2588 * config/i386/mmx.md: Remove double backslashes from asm templates.
d0b48c67 2589 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
333d8f61
UB
2590 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
2591 to handle nonimmediate operands.
d0b48c67 2592 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
333d8f61
UB
2593 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
2594 to handle nonimmediate operands.
d0b48c67
UB
2595 (*mmx_<code>v2sf3_finite): New insn pattern.
2596 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
333d8f61
UB
2597 (mmx_<code>v2sf3): New expander. Use
2598 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2599 (mmx_<plusminus_insn><mode>3): New expander. Use
2600 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 2601 (*mmx_<plusminus_insn><mode>3): New insn pattern.
333d8f61
UB
2602 (mmx_add<mode>3): Removed.
2603 (mmx_ssadd<mode>3): Ditto.
2604 (mmx_usadd<mode>3): Ditto.
2605 (mmx_sub<mode>3): Ditto.
2606 (mmx_sssub<mode>3): Ditto.
2607 (mmx_ussub<mode>3): Ditto.
d0b48c67 2608 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
333d8f61
UB
2609 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
2610 to handle nonimmediate operands.
d0b48c67 2611 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
333d8f61
UB
2612 insn pattern.
2613 (mmx_smulv4hi3_highpart): New expander. Use
2614 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 2615 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
333d8f61
UB
2616 insn pattern.
2617 (mmx_umulv4hi3_highpart): New expander. Use
2618 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 2619 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
333d8f61
UB
2620 (mmx_<code>v4hi3): New expander. Use
2621 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 2622 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
333d8f61
UB
2623 (mmx_<code>v8qi3): New expander. Use
2624 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 2625 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
333d8f61
UB
2626 (mmx_<code><mode>3): New expander. Use
2627 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2628
3716f233
JH
26292008-05-05 Jan Hubicka <jh@suse.cz>
2630
2631 PR tree-optimization/36118
2632 * passes.c (pass_init_dump_file): Fix dump header.
2633
1aee3ab6
AP
26342008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
2635
2636 PR middle-end/36141
333d8f61
UB
2637 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2638 VCE for function decls.
1aee3ab6 2639
0d07fcad
L
26402008-05-05 H.J. Lu <hongjiu.lu@intel.com>
2641
2642 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2643
d1c3b587
L
26442008-05-05 H.J. Lu <hongjiu.lu@intel.com>
2645
2646 * config/i386/i386.md (sat_plusminus): New.
2647 (plusminus_insn): Likewise.
2648 (plusminus_mnemonic): Likewise.
2649 (addsub): Removed.
2650 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2651 (*<addsub><mode>3_cc_overflow): Renamed to ...
2652 (*<plusminus_insn><mode>3_cc_overflow): This.
2653 (*<addsub>si3_zext_cc_overflow): Renamed to ...
2654 (*<plusminus_insn>si3_zext_cc_overflow): This.
2655
0d07fcad 2656 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
d1c3b587
L
2657 (<plusminus_insn><mode>3): This.
2658 (*<addsub><mode>3): Renamed to ...
2659 (*<plusminus_insn><mode>3): This.
2660 (<sse>_vm<addsub><mode>3): Renamed to ...
2661 (<sse>_vm<plusminus_insn><mode>3): This.
2662 (sse3_h<addsub>v4sf3): Renamed to ...
2663 (sse3_h<plusminus_insn>v4sf3): This.
2664 (sse3_h<addsub>v2df3): Renamed to ...
2665 (sse3_h<plusminus_insn>v2df3): This.
2666 (<plusminus_insn><mode>3): New.
2667 (*<plusminus_insn><mode>3): Likewise.
2668 (sse2_<plusminus_insn><mode>3): Likewise.
2669 (add<mode>): Removed.
2670 (*add<mode>3): Likewise.
2671 (sse2_ssadd<mode>3): Likewise.
2672 (sse2_usadd<mode>3): Likewise.
2673 (sub<mode>3): Likewise.
2674 (*sub<mode>3): Likewise.
2675 (sse2_sssub<mode>3): Likewise.
2676 (sse2_ussub<mode>3): Likewise.
2677
23688481
BK
26782008-05-05 Benjamin Kosnik <bkoz@redhat.com>
2679
d1c3b587
L
2680 * gthr-single.h: Add in required interface elements as per gthr.h.
2681 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2682 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2683 Generalize UNUSED macro.
2684 (__gthread_once): Add.
2685 (__gthread_key_create): Add.
333d8f61 2686 (__gthread_key_delete): Add.
d1c3b587 2687 (__gthread_getspecific): Add.
333d8f61 2688 (__gthread_setspecific): Add.
23688481 2689
e06f0ff9
AP
26902008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
2691
23688481
BK
2692 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2693 the same size types for the indirect reference on the rhs, then
2694 create a VCE.
e06f0ff9 2695
8c32cbc9
UB
26962008-05-05 Uros Bizjak <ubizjak@gmail.com>
2697
2698 * config/i386/i386.md
2699 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2700 one insn template instead of template series.
2701 (*xordi_1_rex64): Ditto.
2702 (*xordi_2_rex64): Ditto.
2703
06d10aaf
IR
27042008-05-05 Ira Rosen <irar@il.ibm.com>
2705
8c32cbc9 2706 PR tree-optimization/36119
06d10aaf
IR
2707 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2708 in case of SLP.
2709
24c05141
JH
27102008-06-04 Jan Hubicka <jh@suse.cz>
2711
2712 tree-optimization/36100
2713 * tree-pass.h (pass_O0_always_inline): Declare.
2714 * ipa-inline.c (inline_transform): Remove dead code.
2715 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2716 pass_O0_always_inline): New.
2717 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2718
8fa8585d
KT
27192008-05-04 Kai Tietz <kai.tietz@onevision.com>
2720
2721 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2722 mnemonic in this_param move for TARGET_64BIT.
2723
62d2739a
UB
27242008-05-04 Uros Bizjak <ubizjak@gmail.com>
2725
2726 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2727 (*strmovsi_rex_1): Ditto.
2728 (*strsetsi_1): Ditto.
2729 (*strsetsi_rex_1): Ditto.
2730
2731 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2732 adddicc expanders using SWI mode iterator.
2733
4d31c3e1
L
27342008-05-04 H.J. Lu <hongjiu.lu@intel.com>
2735
2736 PR target/36121
62d2739a
UB
2737 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2738 argument handling.
4d31c3e1 2739
5f7ca34b
DM
27402008-05-04 David S. Miller <davem@davemloft.net>
2741
2742 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2743 (sparc*-*-linux*): Use linux.h in tm_file.
2744 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2745 compiler defaulting to 32-bit.
2746 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2747 no longer needed.
2748 * config/sparc/linux.h: Remove definitions now obtained
2749 properly from linux.h
2750 * config/sparc/linux64.h: Likewise.
2751 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2752 don't want this setting for 32-bit builds in a biarch compiler.
2753 * doc/install.texi: Add sparc-linux to list of targets
2754 supporting --enable-targets=all.
2755
5a3db6d5
AP
27562008-05-03 Andrew Pinski <pinskia@gmail.com>
2757
2758 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2759
3c7ae64a
L
27602008-05-03 H.J. Lu <hongjiu.lu@intel.com>
2761
2762 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2763 after V4SI_FTYPE_V8HI.
2764 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2765 case V4SI_FTYPE_V2DF.
2766
4218dc2d 27672008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
75643ab1
KZ
2768
2769 * doc/invoke.texi (max-flow-memory-locations): Removed.
2770 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2771
621b5ed6
RG
27722008-05-03 Richard Guenther <rguenther@suse.de>
2773
2774 PR middle-end/34973
2775 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2776
11835124
DM
27772008-05-02 David S. Miller <davem@davemloft.net>
2778
2779 * config.gcc (need_64bit_hwint): Document libcpp dependency.
2780
e4d35515
SB
27812008-05-02 Simon Baldwin <simonb@google.com>
2782
2783 PR bootstrap/36108
2784 * c-common.h (warn_array_subscript_range): Removed.
2785 * c-common.c (warn_array_subscript_range): Ditto.
2786 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2787 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2788
bb1418c1
L
27892008-05-02 H.J. Lu <hongjiu.lu@intel.com>
2790
2791 * config/i386/i386.c (ix86_special_builtin_type): New.
2792 (bdesc_special_args): Likewise.
2793 (ix86_expand_special_args_builtin): Likewise.
2794 (ix86_init_mmx_sse_builtins): Updated.
2795 (ix86_expand_builtin): Updated.
2796 (ix86_expand_store_builtin): Removed.
2797 (ix86_expand_unop_builtin): Likewise.
2798
2799 * config/i386/mm3dnow.h (__v2sf): Moved to ...
2800 * config/i386/mmintrin.h (__v2sf): Here.
2801
2802 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2803 const __v2sf.
2804 (_mm_loadl_pi): Likewise.
2805 (_mm_storeh_pi): Replace __v2si with __v2sf.
2806 (_mm_storel_pi): Likewise.
2807
2808 * doc/extend.texi: Correct __builtin_ia32_loadhps,
2809 __builtin_ia32_loadlps, __builtin_ia32_storehps,
2810 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2811 __builtin_ia32_loadlpd.
2812
28132008-05-02 H.J. Lu <hongjiu.lu@intel.com>
2814
2815 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2816 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2817 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
2818 (ix86_init_mmx_sse_builtins): Updated.
2819 (ix86_expand_args_builtin): Likewise.
2820 (ix86_expand_builtin): Likewise.
2821 (ix86_expand_unop1_builtin): Renamed to ...
2822 (ix86_expand_unop_vec_merge_builtin): This.
2823
a12f79f5
JH
28242008-05-01 Jan Hubicka <jh@suse.cz>
2825
2826 PR bootstrap/36100
2827 * ipa-inline.c (inline_generate_summary): Make static.
2828 (inline_transform): Do not call inlining at -O0; make static.
2829 * passes.c (execute_todo): Add sanity check.
2830 (execute_one_ipa_transform_pass): Execute proper flags.
2831
b5487346
EB
28322008-05-01 Eric Botcazou <ebotcazou@adacore.com>
2833
2834 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2835 (DECL_NONADDRESSABLE_P): Likewise.
2836 * alias.c (record_component_aliases): Fix comment.
2837
ca873b0e
SB
28382008-05-01 Simon Baldwin <simonb@google.com>
2839
2840 * c-common.h (warn_array_subscript_range): New function.
2841 * c-common.c (warn_array_subscript_range): Ditto.
2842 * tree-vrp.c (check_array_ref): Corrected code to agree with
2843 comment, ignoring only arrays of size 0 or size 1.
2844 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2845
99c25ac1
L
28462008-05-01 H.J. Lu <hongjiu.lu@intel.com>
2847
2848 * config/i386/i386.c (ix86_builtin_type): Replace
2849 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2850 (bdesc_args): Updated.
2851 (ix86_init_mmx_sse_builtins): Likewise.
2852 (ix86_expand_args_builtin): Likewise.
2853
2854 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2855 with __v1di.
2856
2857 * doc/extend.texi: Correct __builtin_ia32_palignr.
2858
a44acfb9
L
28592008-05-01 H.J. Lu <hongjiu.lu@intel.com>
2860
2861 PR target/36095
2862 * config/i386/i386.c (bdesc_crc32): Removed.
2863 (ix86_expand_crc32): Likewise.
2864 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2865 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2866 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
2867 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2868 UINT_FTYPE_UINT_UCHAR.
2869 (bdesc_args): Updated. Add crc32 builtins.
2870 (ix86_init_mmx_sse_builtins): Updated.
2871 (ix86_expand_args_builtin): Updated to support subreg.
2872
2873 * doc/extend.texi: Correct __builtin_ia32_crc32di.
2874
17653c00
JH
28752008-05-01 Jan Hubicka <jh@suse.cz>
2876
2877 * tree-pass.h (opt_pass): Add IPA_PASS.
2878 (varpool_node, cgraph_node): Forward declare.
2879 (ipa_opt_pass): Define.
2880 (pass_ipa_inline): Turn into ipa_opt_pass.
2881 (pass_apply_inline): Remove.
2882 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2883 (apply_inline): Turn into ....
2884 (inline_transform): ... this one.
2885 (inline_generate_summary): New function.
2886 (pass_apply_inline): Remove.
2887 * function.h (ipa_opt_pass): Forward declare structure; typedef;
2888 vector.
2889 (struct function): Add ipa_transforms_to_apply.
2890 * passes.c (register_one_dump_file): Work on IPA_PASS.
2891 (init_optimization_passes): Remove pass_inline_parameters and
2892 pass_apply_inline.
2893 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2894 (execute_one_pass) ... here; apply transforms when possible.
2895 (add_ipa_transform_pass, execute_ipa_summary_asses,
2896 execute_one_ipa_transform_pass): New.
2897 (execute_ipa_pass_list): Update for IPA_PASS type.
2898
bd9513ea
L
28992008-05-01 H.J. Lu <hongjiu.lu@intel.com>
2900
2901 * config/i386/i386.c (ix86_builtin_type): Add
2902 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2903 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2904 (bdesc_args): Add SSE4a builtins.
2905 (ix86_init_mmx_sse_builtins): Updated.
2906 (ix86_expand_args_builtin): Likewise.
2907 (ix86_expand_builtin): Likewise.
2908
858e5e79
L
29092008-05-01 H.J. Lu <hongjiu.lu@intel.com>
2910
2911 * config/i386/i386.c (ix86_builtin_type): Add
2912 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2913 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2914 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2915 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2916 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2917 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2918 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2919 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2920 and DI_FTYPE_DI_DI_INT.
2921 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2922 (ix86_init_mmx_sse_builtins): Updated.
2923 (ix86_expand_args_builtin): Likewise.
2924 (ix86_expand_builtin): Likewise.
2925 (ix86_expand_binop_imm_builtin): Removed.
2926
2927 * doc/extend.texi: Correct __builtin_ia32_palignr128.
2928
a91ded4b
RG
29292008-04-30 Richard Guenther <rguenther@suse.de>
2930
2931 PR tree-optimization/32921
2932 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2933
ad516a74
RS
29342008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
2935
2936 * config/arm/arm.c (arm_unwind_emit): Use
2937 crtl->all_throwers_are_sibcalls instead of
2938 cfun->all_throwers_are_sibcalls.
2939 (arm_output_fn_unwind): Likewise.
2940 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2941 instead of cfun->uses_pic_offset_table.
2942 (frv_expand_prologue): Likewise.
2943 (frv_frame_pointer_required): Likewise.
2944 (frv_expand_fdpic_call): Likewise.
2945 (frv_emit_movsi): Likewise.
2946 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2947 cfun->returns_pcc_struct instead of
2948 current_function_returns_pcc_struct.
2949 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2950 instead of cfun->calls_eh_return.
2951 (m32c_pushm_popm): Likewise.
2952 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2953 "extern" declaration.
2954
00d382a8
RG
29552008-04-30 Richard Guenther <rguenther@suse.de>
2956
2957 PR tree-optimization/21636
2958 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2959 constant address.
2960 (evaluate_stmt): Print the likely value.
2961 (ccp_visit_stmt): Avoid excessive vertical spacing.
2962
45e18420
RAE
29632008-04-30 Rafael Espindola <espindola@google.com>
2964
2965 * builtins.c (fold_call_expr): Return realret.
2966 * tree-ssa-threadedge.c
2967 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2968 __builtin_object_size.
2969
fe7df9c4
SP
29702008-04-30 Seongbae Park <seongbae.park@gmail.com>
2971
2972 * gcc.c (wrapper_string): New variable.
2973 (insert_wrapper): New function.
2974 (execute): New option -wrapper.
2975 * doc/invoke.texi (Overall Options): New driver option -wrapper.
2976
18724e30
NF
29772008-04-30 Nathan Froyd <froydnj@codesourcery.com>
2978
62d2739a
UB
2979 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2980 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2981 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2982 from...
2983 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
2984 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2985 config/rs6000/e500crtres64gprctr.asm,
2986 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2987 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2988 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2989 config/rs6000/e500crtsav64gprctr.asm,
2990 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2991 config/rs6000/e500crtsavg64gprctr.asm: New files.
2992 * config/rs6000/t-ppccomm: Add build rules for new files.
2993 (LIB2FUNCS_STATIC_EXTRA): Add new files.
2994 * config/rs6000/t-netbsd: Add build rules for new files.
2995 (LIB2FUNCS_STATIC_EXTRA): New variable.
2996 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2997 (CRTSAVRES_DEFAULT_SPEC): Likewise.
2998 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18724e30 2999
1b667c82
L
30002008-04-30 H.J. Lu <hongjiu.lu@intel.com>
3001
3002 * config/i386/i386.c (ix86_builtin_type): Add
3003 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
3004 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
3005 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
3006 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
3007 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
3008 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
3009 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
3010 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
3011 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
3012 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
3013 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
3014 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
3015 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
3016 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
3017 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
3018 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
3019 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
3020 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
3021 V1DI_FTYPE_V2SI_V2SI.
3022 (bdesc_2arg): Moved to ...
3023 (bdesc_args): Here.
3024 (ix86_init_mmx_sse_builtins): Updated.
3025 (ix86_expand_args_builtin): Updated. Take a pointer
3026 to const struct builtin_description. Handle comparison
3027 builtin functions.
62d2739a 3028 (ix86_expand_sse_compare): Take a new argument for swapping operands.
1b667c82
L
3029 (ix86_expand_builtin): Updated.
3030
3031 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
3032 (ssse3_pmaddubsw128): This.
3033 (ssse3_pmaddubswv4hi3): Renamed to ...
3034 (ssse3_pmaddubsw): This.
3035
62d2739a 3036 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1b667c82 3037 (__builtin_ia32_packssdw128): Likewise.
62d2739a 3038 (__builtin_ia32_packuswb128): Likewise.
1b667c82
L
3039 (__builtin_ia32_pmaddubsw): Likewise.
3040 (__builtin_ia32_pmaddubsw128): Likewise.
3041
d7b339dd
RG
30422008-04-30 Richard Guenther <rguenther@suse.de>
3043
3044 PR tree-optimization/14847
3045 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
3046 (recognize_bits_test): Use it.
3047 (recognize_single_bit_test): Likewise.
3048
6a3f3fea
MJ
30492008-04-30 Martin Jambor <mjambor@suse.cz>
3050
3051 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
3052 instead of setting number of formal parameters to zero.
3053 (ipcp_init_stage): Do not set the number of actual parameters to zero
3054 either.
3055 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
3056 which are called with variable number of arguments.
3057 (ipcp_insert_stage): Explicitely skipping all nodes which are
3058 called with variable number of arguments.
3059 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
3060 number of parameters.
3061
3062 * ipa-prop.h (struct ipa_node_params): Added flag
3063 called_with_var_arguments
3064 (ipa_set_param_count): Added. Changed sole setter to use it.
3065 (ipa_get_param_count): Added. All readers of param_count
3066 converted to use it instead.
3067 (ipa_set_called_with_variable_arg): Added.
3068 (ipa_is_called_with_var_arguments): Added.
3069 (ipa_get_ith_param): Added. All readers of param_decls converted
3070 to use it instead.
3071 (ipa_set_cs_argument_count): Added, sole writer to argument_count
3072 changed to use it.
3073 (ipa_get_cs_argument_count): Added, all readers of argument_count
3074 changed to cal it.
3075 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
3076 to use it.
3077
3078 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
3079 (struct ipcp_lattice): Renamed cval_type to type
3080 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
3081
3082 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
3083 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
3084 (ipcp_insert_stage): Changed the type of variable cvalue to tree
3085 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
3086 (build_const_val): Changed the type of parameter cvalue to tree
3087 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
3088 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
3089
3090 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
3091 constant
3092
3093 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
3094 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
3095 (ipa_add_method): Renamed to ipa_push_func_to_list
3096 (ipa_remove_method): Renamed to ipa_pop_func_from_list
3097 (ipa_callsite_param_count): Removed.
3098 (ipa_callsite_param_count_set): Removed.
3099 (ipa_callsite_param): Removed.
3100 (ipa_callsite_callee): Removed.
3101 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
3102 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
3103 (ipa_method_formal_count): Removed.
3104 (ipa_method_formal_count_set): Removed.
3105 (ipa_method_get_tree): Removed.
3106 (ipa_method_tree_map_create): Removed.
3107 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
3108 (ipa_create_param_decls_array): Creates the array itself
3109 (ipa_create_param_decls_array): Temporary variable info instead of
3110 a few dereferences.
3111 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
3112 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
3113 (get_type): Removed.
3114 (ipa_jf_get_info_type): Removed.
3115 (ipa_node_create): Renamed to ipa_create_node_params
3116 (ipa_free): Renamed to ipa_free_all_node_params
3117 (ipa_nodes_create): Renamed to ipa_create_all_node_params
3118 (ipa_edges_create): Renamed to ipa_create_all_edge_args
3119 (ipa_edges_free): Renamed to ipa_free_all_edge_args
3120 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
3121 (ipa_free_all_node_params): Deallocation to jump_functions moved to
3122 ipa_free_all_edge_args
3123 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
3124 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
3125 (ipa_create_methodlist_node): Removed.
3126 (ipa_methodlist_method): Removed.
3127 (ipa_methodlist_method_set): Removed.
3128 (ipa_methodlist_next_method): Removed.
3129 (ipa_methodlist_next_method_set): Removed.
3130 (ipa_method_is_modified): Removed.
3131 (ipa_method_modify_create): Removed.
3132 (ipa_method_modify_init): Temporary variable info instead of a few
3133 dereferences.
3134 (ipa_detect_param_modifications): Temporary variable info instead of
3135 a few dereferences.
3136 (ipa_compute_jump_functions): Temporary variable info instead of
3137 a few dereferences.
3138 (ipa_method_modify_set): Removed.
3139 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
3140 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
3141 than craph_node as the first parameter.
3142 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
3143 (ipa_method_modify_init): Removed.
3144 (ipa_compute_jump_functions): Added a temp variable instead of
3145 repeatadly dereferencing the cgraph_edge.aux pointer
3146 (ipa_callsite_param_set_type): Removed.
3147 (ipa_compute_jump_functions): i renamed to index and moved to
3148 an inner block
3149 (ipa_callsite_param_set_info_type_formal): Removed.
3150 (ipa_callsite_param_set_info_type): Removed.
3151 (ipa_callsite_param_map_create): Removed.
3152 (ipa_callsite_tree): Removed.
3153 (ipa_callsite_caller): Removed.
3154 (ipa_pop_func_from_list): return_method removed to return_func
3155
3156 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
3157 prefixed all values with IPA_. Changed all users.
3158 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
3159 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
3160 and FORMAL_IPATYPE IPA_PASS_THROUGH.
3161 (union parameter_info): Renamed to jump_func_value.
3162 (union jump_func_value): Renamed value to constant
3163 (struct ipa_jump_func): Renamed info_type to value
3164 (struct ipa_node): Renamed to ipa_node_params
3165 (struct ipa_node_params): Renamed ipa_arg_num to param_count
3166 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
3167 (struct ipa_node_params): Renamed ipa_mod to modified_flags
3168 (struct ipa_edge): Renamed to ipa_edge_args
3169 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
3170 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
3171 (struct ipa_methodlist): Renamed to ipa_func_list
3172 (struct ipa_func_list): method_p renamed to node, next_method
3173 renamed to next
3174 (ipa_methodlist_p): Removed, switched all users to struct pointer
3175 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
3176
1c9c5e43
AM
31772008-04-30 Alan Modra <amodra@bigpond.net.au>
3178
3179 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
3180 (rs6000_emit_epilogue): Use backchain to restore only when we
3181 have a large frame. Make use of frame pointer to restore if we
3182 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3183
cf2758e3
PB
31842008-04-29 Paolo Bonzini <bonzini@gnu.org>
3185
3186 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3187 Add mode to zero_extract.
3188 (sign bit tests peepholes): (Ditto.).
3189
f318ff0a
L
31902008-04-29 H.J. Lu <hongjiu.lu@intel.com>
3191
3192 * config/i386/i386.c (ix86_builtins): Replace Prescott New
3193 Instructions in comments with SSE3.
3194 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
3195 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3196 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3197 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3198 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3199 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3200 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3201 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3202 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3203 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3204 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3205 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3206 (bdesc_sse_args): Renamed to ...
3207 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3208 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3209 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3210 IX86_BUILTIN_FABSQ.
3211 (bdesc_1arg): Moved to ...
3212 (bdesc_args): Here.
3213 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
3214 Instructions in comments with SSE3.
3215 (ix86_expand_sse_operands_builtin): Renamed to ...
3216 (ix86_expand_args_builtin): This. Updated.
3217 (ix86_expand_unop1_builtin): Update comments.
3218 (ix86_expand_builtin): Updated.
3219
ace4eb90
RG
32202008-04-29 Richard Guenther <rguenther@suse.de>
3221
3222 PR tree-optimization/36078
3223 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3224 Update virtual SSA form after cleaning up the CFG.
3225
1447bf05
RG
32262008-04-29 Richard Guenther <rguenther@suse.de>
3227
3228 PR middle-end/15255
3229 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3230
59e6913a
RG
32312008-04-29 Richard Guenther <rguenther@suse.de>
3232
3233 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3234 (compute_may_aliases): Do not call finalize_ref_all_pointers.
3235 (compute_flow_insensitive_aliasing): Do not treat
3236 PTR_IS_REF_ALL pointers special.
3237 (get_smt_for): Likewise.
3238 (may_alias_p): Re-structure.
3239 (is_escape_site): A ref-all pointer conversion is not an escape site.
3240 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3241 PTR_IS_REF_ALL pointers special.
3242 * tree-ssa-structalias.h (struct alias_info): Remove
3243 ref_all_symbol_mem_tag field.
3244 (PTR_IS_REF_ALL): Remove.
3245
81ad578e
RG
32462008-04-29 Richard Guenther <rguenther@suse.de>
3247
3248 PR middle-end/36077
3249 * fold-const.c (extract_muldiv_1): In combining division constants
3250 make sure to never overflow.
3251
4830ba1f
NC
32522008-04-29 Nick Clifton <nickc@redhat.com>
3253
3254 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3255
b1c61c7e
RW
32562008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3257
3258 PR bootstrap/35169
3259 * optc-gen.awk: Work around HP-UX/IA awk bug.
3260
d6b68fcc
DS
32612008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
3262
3263 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3264 2008-04-25 commit.
3265
0d5fd2b8
UB
32662008-04-28 Uros Bizjak <ubizjak@gmail.com>
3267
3268 PR target/36073
3269 * config/i386/i386.md
3270 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3271 Change operand 1 predicate to nonimmediate_operand.
3272
623f8e39
JJ
32732008-04-28 Jakub Jelinek <jakub@redhat.com>
3274
3275 PR debug/36060
3276 * dwarf2out.c (struct die_struct): Mark as chain_circular through
3277 die_sub field.
3278 * gengtype.c (walk_type, write_func_for_structure): Handle
3279 chain_circular.
3280 * doc/gty.texi: Document chain_circular.
3281
82893cba
RG
32822008-04-28 Richard Guenther <rguenther@suse.de>
3283
3284 PR tree-optimization/36066
3285 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3286 SCEV and loop.
3287
e356fac8
UB
32882008-04-28 Uros Bizjak <ubizjak@gmail.com>
3289
3290 PR target/36064
0d5fd2b8
UB
3291 * config/i386/i386.md
3292 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
e356fac8
UB
3293 Use match_scratch instead of match_operand for operands 3 and 4.
3294
d6e840ee
RG
32952008-04-27 Richard Guenther <rguenther@suse.de>
3296
3297 PR tree-optimization/18754
3298 PR tree-optimization/34223
3299 * tree-pass.h (pass_complete_unrolli): Declare.
3300 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3301 loop size before and after unconditionally of UL_NO_GROWTH in effect.
3302 Rewrite loop into loop closed SSA form if it is not already.
3303 (tree_unroll_loops_completely): Re-structure to iterate over
3304 innermost loops with intermediate CFG cleanups.
3305 Unroll outermost loops only if requested or the code does not grow
3306 doing so.
3307 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3308 loops are available.
3309 (tree_vectorize): Instead do so here.
3310 (tree_complete_unroll): Also unroll outermost loops.
3311 (tree_complete_unroll_inner): New function.
3312 (gate_tree_complete_unroll_inner): Likewise.
3313 (pass_complete_unrolli): New pass.
3314 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3315 uses outside of the loop.
3316 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3317 form if it is available.
3318 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3319 * passes.c (init_optimization_passes): Schedule complete inner
3320 loop unrolling pass before the first CCP pass after final inlining.
3321
feb60f03
NS
33222008-04-27 Nathan Sidwell <nathan@codesourcery.com>
3323
3324 * targhooks.h (default_emutls_var_fields,
3325 default_emutls_var_init): Declare.
3326 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3327 * target.h (struct gcc_target): Add struct emutls member.
3328 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3329 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3330 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3331 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3332 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3333 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3334 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3335 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3336 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3337 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3338 emit debug information.
3339 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3340 * varasm.c: Include targhooks.h.
3341 (emutls_object_section, emutls_tmpl_section): New.
3342 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3343 (EMUTLS_SEPARATOR): New.
3344 (prefix_name): New.
3345 (get_emutls_object_name): New.
3346 (default_emutls_var_fields): New, broken out of ...
3347 (get_emutls_object_type): ... here. Adjust to use target hooks.
3348 (get_emutls_init_templ_addr): Adjust to use target hooks.
3349 (emutls_decl): Adjust to use target hooks.
3350 (emutls_finish): Likewise.
3351 (default_emutls_var_init): New, broken out of ...
3352 (assemble_variable): ... here. Adjust to use target hooks.
3353 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3354 SECCAT_EMUTLS_TMPL.
3355 * c-common.c (handle_section_attribute): Prevent overriding
3356 sections for emulated tls with special sections.
3357 * config/i386/i386.c (x86_64_elf_select_section): Add
3358 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3359 (x86_64_elf_unique_section): Likewise.
3360 * config/vxworks.c: Include tree.h.
3361 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3362 (vxworks_override_options): Set TLS scheme.
623f8e39 3363 * doc/tm.texi (Emulated TLS): New node.
feb60f03 3364
6bfb7f10
SB
33652008-04-26 Simon Baldwin <simonb@google.com>
3366
3367 PR c/35652
3368 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3369 with propagated string constants.
3370
73e8165a
UB
33712008-04-26 Uros Bizjak <ubizjak@gmail.com>
3372
3373 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3374 constraint for operand 2 when operand 0 is memory operand.
3375 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3376 operand 0 is memory operand.
3377 (fix_trunc<mode>_i387_with_temp): Ditto.
3378 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3379 operand 2 when operand 1 is memory operand.
3380 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3381 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3382 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3383 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3384 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3385 operands 2,3 and 4 when operand 1 is memory operand.
3386 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3387 is memory operand.
3388 (fistdi2_floor_with_temp): Ditto.
3389 (fist<mode>2_floor_with_temp): Ditto.
3390 (fistdi2_ceil_with_temp): Ditto.
3391 (fist<mode>2_ceil_with_temp): Ditto.
3392 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3393
49bce30a
RS
33942008-04-26 David Daney <ddaney@avtrex.com>
3395
3396 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3397 unspec_volitile.
3398 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3399 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3400 UNSPEC_UPDATE_GOT_VERSION): Renumber.
3401 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3402 (compare_and_swap_12): New insn.
3403 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3404 * config/mips/mips.c (mips_force_binary): New function.
3405 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3406 (mips_expand_compare_and_swap_12): New function.
3407 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3408
e3b5732b
JH
34092008-04-25 Jan Hubicka <jh@suse.cz>
3410
3411 PR testsuite/35843
3412 * cfgexpand.c (pass_expand): Turn into RTL pass.
3413 * passes.c (execute_one_pass): Do pass typechecking after execution.
3414 * tree-pass.h (pass_expand): Turn into RTL pass.
3415
3416 * function.h (struct rtl_data): Move here fields
3417 accesses_prior_frames, calls_eh_return, saves_all_registers,
3418 has_nonlocal_goto, has_asm_statement, is_thunk,
3419 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3420 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3421 arg_pointer_save_area_init from struct function; turn into bool.
3422 (struct function): Move
3423 calls_eh_return, saves_all_registers, has_nonlocal_goto,
3424 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3425 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3426 tail_call_emit, arg_pointer_save_area_init
3427 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
3428 (current_function_returns_struct, current_function_returns_pcc_struct,
3429 current_function_calls_setjmp, current_function_calls_alloca,
3430 current_function_accesses_prior_frames,
3431 current_function_calls_eh_return, current_function_is_thunk,
3432 current_function_stdarg, current_function_profile,
3433 current_function_limit_stack, current_function_uses_pic_offset_table,
3434 current_function_uses_const_pool, current_function_has_nonlocal_label,
3435 current_function_saves_all_registers,
3436 current_function_has_nonlocal_goto,
3437 current_function_has_asm_statement): Remove accesor macros.
3438 * ra-conflict.c (global_conflicts): Update.
3439 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3440 (suitable_for_tail_call_opt_p): Update.
3441 * builtins.c (expand_builtin_return_addr): Update.
3442 (expand_builtin_setjmp_setup): Update.
3443 (expand_builtin_nonlocal_goto): Update.
3444 * final.c (final_start_function): Update.
3445 (profile_function): Update.
3446 (leaf_function_p): Update.
3447 (only_leaf_regs_used): Update.
3448 * df-scan.c (df_get_exit_block_use_set): Update.
3449 * dojump.c (clear_pending_stack_adjust): Update.
3450 * tree-stdarg.c (gate_optimize_stdarg): Update.
3451 * gimple-low.c (lower_function_body): Update.
3452 * global.c (compute_regsets): Update.
3453 (global_alloc): Update.
3454 * dwarf2out.c (dwarf2out_begin_prologue): Update.
3455 * expr.c (expand_assignment): Update.
3456 * dse.c (dse_step0): Update.
3457 (dse_step1): Update.
3458 * c-decl.c (store_parm_decls): Update.
3459 * local-alloc.c (combine_regs): Update.
3460 (find_free_reg): Update.
3461 * function.c (assign_parms_augmented_arg_list): Update.
3462 (assign_parm_find_data_types): Update.
3463 (assign_parms): Update.
3464 (allocate_struct_function): Update.
3465 (expand_function_start): Update.
3466 (expand_function_end): Update.
3467 (get_arg_pointer_save_area): Update.
3468 (thread_prologue_and_epilogue_insns): Update.
3469 (rest_of_match_asm_constraints): Update.
3470 * stor-layout.c (variable_size): Update.
3471 * gcse.c (gcse_main): Update.
3472 (bypass_jumps): Update.
3473 * gimplify.c (gimplify_function_tree): Update.
3474 * calls.c (emit_call_1): Update.
3475 (expand_call): Update.
3476 * bt-load.c (compute_defs_uses_and_gen): Update.
3477 * except.c (sjlj_assign_call_site_values): Update.
3478 (sjlj_emit_function_enter): Update.
3479 (can_throw_external): Update.
3480 (set_nothrow_function_flags): Update.
3481 (expand_builtin_unwind_init): Update.
3482 (expand_eh_return): Update.
3483 (convert_to_eh_region_ranges): Update.
3484 (output_function_exception_table): Update.
3485 * emit-rtl.c (gen_tmp_stack_mem): Update.
3486 * cfgexpand.c (expand_used_vars): Update.
3487 (tree_expand_cfg): Update.
3488 * cfgcleanup.c (rest_of_handle_jump): Update.
3489 * explow.c (allocate_dynamic_stack_space): Update.
3490 * varasm.c (assemble_start_function): Update.
3491 (force_const_mem): Update.
3492 (mark_constant_pool): Update.
3493 * tree-optimize.c (tree_rest_of_compilation): Update.
3494 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3495 * tree-cfg.c (notice_special_calls): Update.
3496 (is_ctrl_altering_stmt): Update.
3497 (tree_can_make_abnormal_goto): Update.
3498 (tree_purge_dead_abnormal_call_edges): Update.
3499 * config/alpha/predicates.md: Update.
3500 * config/alpha/alpha.c (alpha_sa_mask): Update.
3501 (alpha_sa_size): Update.
3502 (alpha_does_function_need_gp): Update.
3503 (alpha_expand_prologue): Update.
3504 (alpha_start_function): Update.
3505 (alpha_output_function_end_prologue): Update.
3506 (alpha_expand_epilogue): Update.
3507 * config/frv/frv.c (frv_stack_info): Update.
3508 (frv_expand_epilogue): Update.
3509 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3510 (s390_register_info): Update.
3511 (s390_frame_info): Update.
3512 (s390_init_frame_layout): Update.
3513 (s390_can_eliminate): Update.
3514 (save_gprs): Update.
3515 * config/spu/spu.c (spu_split_immediate): Update.
3516 (need_to_save_reg): Update.
3517 (spu_expand_prologue): Update.
3518 (spu_expand_epilogue): Update.
3519 * config/sparc/sparc.md: Update.
3520 * config/sparc/sparc.c (eligible_for_return_delay): Update.
3521 (sparc_tls_got): Update.
3522 (legitimize_pic_address): Update.
3523 (sparc_emit_call_insn): Update.
3524 (sparc_expand_prologue): Update.
3525 (output_return): Update.
3526 (print_operand): Update.
3527 (sparc_function_ok_for_sibcall): Update.
3528 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3529 * config/m32r/m32r.md: Update.
3530 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3531 (m32r_compute_frame_size): Update.
3532 (m32r_expand_prologue): Update.
3533 (m32r_expand_epilogue): Update.
3534 (m32r_legitimize_pic_address): Update.
3535 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3536 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3537 * config/i386/i386.c (ix86_frame_pointer_required): Update.
3538 (gen_push): Update.
3539 (ix86_save_reg): Update.
3540 (ix86_compute_frame_layout): Update.
3541 (ix86_expand_prologue): Update.
3542 (ix86_expand_epilogue): Update.
3543 * config/sh/sh.c (output_stack_adjust): Update.
3544 (calc_live_regs): Update.
3545 (sh5_schedule_saves): Update.
3546 (sh_expand_prologue): Update.
3547 (sh_expand_epilogue): Update.
3548 (sh_setup_incoming_varargs): Update.
3549 (sh_allocate_initial_value): Update.
3550 (sh_get_pr_initial_val): Update.
3551 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3552 * config/sh/sh.md (label:): Update.
3553 * config/avr/avr.c (out_movhi_mr_r): Update.
3554 * config/crx/crx.h (enum): Update.
3555 * config/xtensa/xtensa.h (along): Update.
3556 * config/stormy16/stormy16.c Update.
3557 (xstormy16_compute_stack_layout): Update.
3558 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3559 (fr30_expand_prologue): Update.
3560 * config/cris/cris.c (cris_conditional_register_usage): Update.
3561 (cris_reg_saved_in_regsave_area): Update.
3562 (cris_initial_frame_pointer_offset): Update.
3563 (cris_simple_epilogue): Update.
3564 (cris_expand_prologue): Update.
3565 (cris_expand_epilogue): Update.
3566 (cris_expand_pic_call_address): Update.
3567 (cris_asm_output_symbol_ref): Update.
3568 (cris_asm_output_label_ref): Update.
3569 * config/cris/cris.md Update.
3570 * config/iq2000/iq2000.c (compute_frame_size): Update.
3571 (iq2000_expand_epilogue): Update.
3572 * config/mt/mt.h (save_direction): Update.
3573 * config/mn10300/mn10300.c (mn10300_function_value): Update.
3574 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3575 (ia64_secondary_reload_class): Update.
3576 * config/m68k/m68k.c (m68k_save_reg): Update.
3577 (m68k_expand_prologue): Update.
3578 (m68k_expand_epilogue): Update.
3579 (legitimize_pic_address): Update.
3580 * config/rs6000/rs6000.c (rs6000_got_register): Update.
3581 (first_reg_to_save): Update.
3582 (first_altivec_reg_to_save): Update.
3583 (compute_vrsave_mask): Update.
3584 (compute_save_world_info): Update.
3585 (rs6000_stack_info): Update.
3586 (spe_func_has_64bit_regs_p): Update.
3587 (rs6000_ra_ever_killed): Update.
3588 (rs6000_emit_eh_reg_restore): Update.
3589 (rs6000_emit_allocate_stack): Update.
3590 (rs6000_emit_prologue): Update.
3591 (rs6000_emit_epilogue): Update.
3592 (rs6000_output_function_epilogue): Update.
3593 (output_profile_hook): Update.
3594 (rs6000_elf_declare_function_name): Update.
3595 * config/rs6000/rs6000.h (rs6000_args): Update.
3596 * config/rs6000/rs6000.md: Update.
3597 * config/mcore/mcore.c (mcore_expand_prolog): Update.
3598 * config/arc/arc.c (arc_output_function_epilogue): Update.
3599 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3600 * config/darwin.c (machopic_function_base_name): Update.
3601 * config/score/score3.c (score3_compute_frame_size): Update.
3602 (rpush): Update.
3603 (rpop): Update.
3604 (score3_epilogue): Update.
3605 * config/score/score7.c (score7_compute_frame_size): Update.
3606 (score7_prologue): Update.
3607 (score7_epilogue): Update.
3608 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3609 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3610 * config/arm/arm.c (use_return_insn): Update.
3611 (require_pic_register): Update.
3612 (arm_load_pic_register): Update.
3613 (arm_compute_save_reg0_reg12_mask): Update.
3614 (arm_compute_save_reg_mask): Update.
3615 (thumb1_compute_save_reg_mask): Update.
3616 (output_return_instruction): Update.
3617 (arm_output_function_prologue): Update.
3618 (arm_output_epilogue): Update.
3619 (arm_get_frame_offsets): Update.
3620 (arm_expand_prologue): Update.
3621 (thumb_pushpop): Update.
3622 (thumb_exit): Update.
3623 (thumb1_expand_prologue): Update.
3624 (thumb1_expand_epilogue): Update.
3625 (arm_unwind_emit): Update.
3626 (arm_output_fn_unwind): Update.
3627 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3628 * config/arm/arm.md: Update.
3629 * config/pa/pa.md: Update.
3630 * config/pa/pa.c (legitimize_pic_address): Update.
3631 (compute_frame_size): Update.
3632 (hppa_expand_prologue): Update.
3633 (hppa_expand_epilogue): Update.
3634 (borx_reg_operand): Update.
3635 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3636 (HARD_REGNO_RENAME_OK): Update.
3637 * config/mips/mips.c (mips_global_pointer): Update.
3638 (mips_save_reg_p): Update.
3639 (mips_compute_frame_info): Update.
3640 (mips_frame_pointer_required): Update.
3641 (mips_expand_prologue): Update.
3642 (mips_expand_epilogue): Update.
3643 (mips_can_use_return_insn): Update.
3644 (mips_reorg_process_insns): Update.
3645 * config/v850/v850.c (compute_register_save_size): Update.
3646 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3647 * config/mmix/mmix.c (along): Update.
3648 (mmix_expand_epilogue): Update.
3649 * config/bfin/bfin.c (legitimize_pic_address): Update.
3650 (must_save_p): Update.
3651 (stack_frame_needed_p): Update.
3652 (add_to_reg): Update.
3653 (bfin_expand_prologue): Update.
3654 * stmt.c (expand_asm_operands): Update.
3655 * reload1.c (reload): Update.
3656 (init_elim_table): Update.
3657
d1163987
BW
36582008-04-25 Bob Wilson <bob.wilson@acm.org>
3659
3660 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3661
a5e11364
L
36622008-04-25 H.J. Lu <hongjiu.lu@intel.com>
3663
62d2739a 3664 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
a5e11364
L
3665 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
3666 (mov<mode>): Removed.
3667 (*movv4sf_internal): Likewise.
3668 (*movv2df_internal): Likewise.
3669
68d154b9
PG
36702008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3671
3672 * config.gcc (crx-*-elf): Remove deprecation.
3673
e65e1476
DS
36742008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
3675
3676 * config/i386/cygming-crtend.c (register_frame_ctor): Register
3677 __gcc_deregister_frame with atexit.
3678 (deregister_frame_dtor): Remove.
3679
9553940c 36802008-04-24 Nathan Froyd <froydnj@codesourcery.com>
94f4765c
NF
3681 Nathan Sidwell <nathan@codesourcery.com>
3682
e6d8b0c6 3683 * config/rs6000/rs6000.opt (mspe): Remove Var property.
94f4765c 3684 (misel): Likewise.
e6d8b0c6 3685 * config/rs6000/rs6000.h (rs6000_spe): Declare.
94f4765c 3686 (rs6000_isel): Likewise.
e6d8b0c6 3687 * config/rs6000/rs6000.c (rs6000_spe): New variable.
94f4765c 3688 (rs6000_isel): New variable.
e6d8b0c6 3689 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
94f4765c 3690
5dc11954
JJ
36912008-04-24 Jakub Jelinek <jakub@redhat.com>
3692
3693 PR c++/35758
3694 * c-common.c (handle_vector_size_attribute): Call
3695 lang_hooks.types.reconstruct_complex_type instead of
3696 reconstruct_complex_type.
3697 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3698 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3699 * langhooks.h (struct lang_hooks_for_types): Add
3700 reconstruct_complex_type hook.
3701 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3702 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3703
83322951
RG
37042008-04-24 Richard Guenther <rguenther@suse.de>
3705
3706 * c-common.h (check_builtin_function_arguments): Declare.
3707 * c-common.c (validate_nargs): New function.
3708 (check_builtin_function_arguments): Likewise.
3709 * c-typeck.c (build_function_call): Call
3710 check_builtin_function_arguments.
3711 * builtins.c (fold_builtin_classify): Remove error reporting code.
3712 (fold_builtin_unordered_cmp): Likewise.
3713 (fold_builtin_1): Likewise.
3714 (fold_builtin_n): Likewise.
3715
194ac52a
JJ
37162008-04-24 Jakub Jelinek <jakub@redhat.com>
3717
3718 PR tree-optimization/36008
3719 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3720 the original op1, rather than delta by step.
3721
9f9f72aa 37222008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
e6d8b0c6 3723 Sebastian Pop <sebastian.pop@amd.com>
9f9f72aa
AP
3724
3725 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3726 eliminate_local_variables_stmt, eliminate_local_variables,
3727 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3728 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3729 of code delimited by two edges in the CFG.
3730 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3731 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3732 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
3733 the case of parallelisation of reductions.
3734 (expr_invariant_in_region_p): New.
3735
3736 * tree-flow.h (gather_blocks_in_sese_region): Declared.
3737 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3738
2aa43509 37392008-04-24 Ira Rosen <irar@il.ibm.com>
e6d8b0c6 3740 Richard Guenther <rguenther@suse.de>
2aa43509
IR
3741
3742 PR tree-optimization/36034
3743 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3744 incapable of dealing with loads with gaps.
3745
e80d7580
RAE
37462008-04-24 Rafael Espindola <espindola@google.com>
3747
3748 * tree-flow.h (vrp_evaluate_conditional): Change signature.
3749 * tree-ssa-propagate.c (fold_predicate_in): Update call to
3750 vrp_evaluate_conditional.
3751 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
e6d8b0c6
UB
3752 (vrp_evaluate_conditional): Split the cond argument.
3753 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3754 (simplify_stmt_for_jump_threading): Update call to
e80d7580
RAE
3755 vrp_evaluate_conditional.
3756
0e37a1c2
IR
37572008-04-24 Ira Rosen <irar@il.ibm.com>
3758
3759 PR tree-optimization/35982
3760 * tree-vect-analyze.c (vect_check_interleaving): Check that the
3761 interleaved data-refs are of the same type.
3762
f9f9640f
DS
37632008-04-24 Danny Smith <dannysmith@users.net>
3764
e6d8b0c6
UB
3765 * c-format.c (check_format_info_main): Use strncmp rather than a
3766 magic prefix to handle multichar length specs.
f9f9640f
DS
3767 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3768 Don't prefix "I64" and "I32" with '\0'.
3769
64ceac43
JJ
37702008-04-24 Jakub Jelinek <jakub@redhat.com>
3771
3772 PR target/36015
3773 * config/i386/i386.c (init_cumulative_args): Don't pass anything
3774 in registers for -m32 only if stdarg_p (fntype).
3775
4679504c
UB
37762008-04-24 Uros Bizjak <ubizjak@gmail.com>
3777
3778 PR rtl-optimization/36006
3779 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3780 temp to op0 in order to avoid invalid rtx sharing.
3781
51eed280
PB
37822008-04-23 Paolo Bonzini <bonzini@gnu.org>
3783
3784 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
3785 check TREE_INVARIANT.
3786 * tree-gimple.c (is_gimple_address): New.
3787 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3788 * tree-gimple.h (is_gimple_address): New.
3789 * tree.h (decl_address_invariant_p): New.
3790 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3791 (build_string): Likewise.
3792 (decl_address_invariant_p): New, from is_gimple_invariant_address.
3793 (tree_invariant_p_1): Likewise.
3794 (save_expr): Use it.
3795 (tree_invariant_p): New.
3796 (skip_simple_arithmetic): Use it.
3797 (stabilize_reference_1): Use it.
3798 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3799 simplify.
3800 (build1_stat): Drop code to compute TREE_INVARIANT.
3801 (build2_stat): Drop code to compute TREE_INVARIANT.
3802 (build3_stat): Drop code to compute TREE_INVARIANT.
3803 (build4_stat): Drop code to compute TREE_INVARIANT.
3804 (build5_stat): Drop code to compute TREE_INVARIANT.
3805 (build7_stat): Drop code to compute TREE_INVARIANT.
3806 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3807 * tree.h (struct tree_base): Remove invariant_flag.
3808 (TREE_INVARIANT): Remove.
3809 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3810 (fold_builtin_expect): Check TREE_CONSTANT.
3811 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3812 * c-tree.h (c_expr_to_decl): Drop third parameter.
3813 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3814 (build_c_cast): Don't set TREE_INVARIANT.
3815 (pop_init_level): Don't set TREE_INVARIANT.
3816 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3817 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3818 TREE_CONSTANT.
3819 (gimplify_init_constructor): Don't set TREE_INVARIANT.
3820 (gimplify_addr_expr): Adjust comment.
3821 * tree-mudflap.c (mf_build_string):
3822 * print-tree.c (print_node): Don't print TREE_INVARIANT.
3823 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3824 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3825 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3826 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3827 * langhooks.h (struct lang_hooks): Drop third parameter from
3828 expr_to_decl.
3829
17d2c090
RG
38302008-04-23 Richard Guenther <rguenther@suse.de>
3831
3832 PR tree-optimization/27799
3833 PR tree-optimization/32921
3834 PR tree-optimization/32624
3835 * tree-ssa-structalias.c (merge_smts_into): Only merge the
3836 SMTs aliases and the tag itself into the solution.
3837 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3838 merge the points-to solution back into the SMT aliases.
3839 (may_alias_p): Use alias_set_subset_of instead of
3840 aliases_conflict_p. A pointer which points to
3841 memory with alias set zero may access any variable.
3842
a7a512be
RG
38432008-04-23 Richard Guenther <rguenther@suse.de>
3844
3845 * alias.c (alias_set_subset_of): Correctly handle asking
3846 if zero is a subset of an alias set with zero child.
3847 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3848 (compute_flow_insensitive_aliasing): Correctly walk all
3849 pointers. Do not unnecessarily union sets.
3850
f3f75f69
RG
38512008-04-23 Richard Guenther <rguenther@suse.de>
3852
3853 PR middle-end/36021
3854 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3855
09725d5e
TB
38562008-04-22 Tomas Bily <tbily@suse.cz>
3857
4679504c
UB
3858 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3859 unreachable case.
3860 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3861 NON_LVALUE_EXPR.
3862 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3863 * tree-ssa-structalias.c (get_constraint_for): Likewise.
3864 * tree-inline.c (estimate_num_insns_1): Likewise.
3865 * varasm.c (const_hash_1, compare_constant, copy_constant)
3866 (compute_reloc_for_constant, output_addressed_constants): Likewise.
3867 * emit-rtl.c (component_ref_for_mem_expr)
3868 (set_mem_attributes_minus_bitpos): Likewise.
3869 * expr.c (highest_pow2_factor, expand_expr_real_1, )
3870 (is_aligning_offset): Likewise.
3871 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3872 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3873 * dojump.c (do_jump): Likewise.
3874 * builtins.c (get_pointer_alignment, get_memory_rtx)
3875 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3876 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
09725d5e 3877
63cb92c1
JJ
38782008-04-23 Jakub Jelinek <jakub@redhat.com>
3879
3880 PR rtl-optimization/36017
3881 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3882 expanding the library call.
3883
b2f06c39
ILT
38842008-04-22 Ian Lance Taylor <iant@google.com>
3885
3886 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3887 than size_in_bytes.
3888
aafc759a
PH
38892008-04-22 Pat Haugen <pthaugen@us.ibm.com>
3890
3891 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3892 of LR/CTR moves for Power6.
3893
4218dc2d 38942008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
5b4603fa
KZ
3895
3896 PR middle-end/36003
3897 * passes.c (init_optimization_passes): Remove
3898 pass_fast_rtl_byte_dce.
3899
6126672e
UB
39002008-04-22 Uros Bizjak <ubizjak@gmail.com>
3901
3902 PR target/29096
3903 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3904 builtin functions to generate faster code.
3905 (_mm_cvtpu16_ps): Ditto.
3906 (_mm_cvtpi32x2_ps): Ditto.
3907
f6d2671e
NC
39082008-04-22 Nick Clifton <nickc@redhat.com>
3909
53ed2f0e
NC
3910 * common.opt (ftree-loop-distribution): Add Optimization
3911 attribute.
3912
7dd68986
NC
3913 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3914 (frv_expand_builtin_va_start): Likewise.
3915
f6d2671e
NC
3916 * config/arm/arm.c (thumb_find_work_register): Fix location of
3917 argument register count.
3918
826fadba
MK
39192008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
3920
3921 Support scheduling for ColdFire V1 and V3 microarchitecture.
3922 Improve scheduling of multiplication instructions.
3923
3924 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
3925 (mac): New instruction attribute.
3926 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3927 (m68k_sched_mac): New variable.
3928 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3929 Handle cfv1 and cfv3.
3930 (max_insn_size): New static variable.
3931 (struct _sched_ib): New type.
3932 (sched_ib): New static variable.
3933 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3934 to fields of 'struct _sched_ib sched_ib'. Update all uses.
3935 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3936 Update.
3937 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3938 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
3939 new variables. Update.
3940 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3941 Add modeling of cfv3 instruction buffer. Update.
3942 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3943 * config/m68k/m68k.h (TUNE_CFV3): New macro.
3944 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3945 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3946 a particular reservation applies to.
3947 (type2): Reorganize attribute values. Rename alu to alu_reg,
3948 alu_l to alu, move_l to omove. Join move to alu. Split mul
3949 to mul_l and mul_w.
3950 (cf_ib_*): Simplify description of instruction buffer.
3951 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3952 (cf_mem): Split into cf_mem1 and cf_mem2.
3953 (cf_v2_move_??): Rename to cfv12_alu_??.
3954 (cf_v2_move_l_??): Rename to cfv12_omove_??.
3955 (cf_v2_mul_??): Remove reservations.
3956 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3957 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3958 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3959 appropriate place.
3960 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3961 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3962 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3963 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3964 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3965 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3966 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3967 expansions of the above reservations for instructions of sizes
3968 1, 2 and 3 words.
3969
c23da840
MK
39702008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
3971
3972 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3973
27624b9e
AN
39742008-04-21 Adam Nemet <anemet@caviumnetworks.com>
3975
3976 * coverage.c: Include tree-pass.h.
3977 (coverage_counter_alloc): Print da_file_name to the dump file.
3978
4218dc2d 39792008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
27624b9e 3980
b60db1ba
KZ
3981 * sbitmap.c (sbitmap_range_empty_p): New function.
3982 * sbitmap.h (sbitmap_range_empty_p): New function.
27624b9e 3983 * bitmap.h: Now includes obstack.h.
b60db1ba 3984
27624b9e 39852008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
4218dc2d 3986 Kenneth Zadeck <zadeck@naturalbridge.com>
cc806ac1
RS
3987
3988 * dbgcnt.def (ra_byte_scan): Added.
3989 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3990 when the last hit happens for a counter.
3991 * timevar.def (TV_DF_BYTE_LR): New variable.
3992 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3993 * passes.c (pass_fast_rtl_byte_dce): New pass.
3994 * fwprop.c (update_df): Added mode to call df_ref_create.
3995 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3996 DF_REF_EXTRACT_OFFSET.
3997 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
3998 DF_BYTE_LR_OUT, df_byte_lr): New macro.
3999 (df_mm): New enum.
4000 (df_ref_extract): Added mode field.
4001 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
4002 DF_REF_EXTRACT_OFFSET.
4003 (DF_REF_EXTRACT_MODE): New macro.
4004 (df_byte_lr_bb_info): New structure.
4005 (df_print_byte_regset, df_compute_accessed_bytes,
4006 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
4007 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
4008 df_byte_lr_simulate_uses,
4009 df_byte_lr_simulate_artificial_refs_at_top,
4010 df_byte_lr_simulate_artificial_refs_at_end,
4011 df_compute_accessed_bytes): New function.
4012 (df_ref_create): Add parameter.
4013 (df_byte_lr_get_bb_info): New inline function.
4014 * df-scan.c (df_ref_record, df_uses_record,
4015 df_ref_create_structure): Added mode parameter.
4016 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
4017 df_defs_record, df_uses_record, df_get_conditional_uses,
4018 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
4019 df_entry_block_defs_collect, df_exit_block_uses_collect):
4020 Added mode parameter to calls to df_ref_record, df_uses_record,
4021 df_ref_create_structure.
4679504c 4022 (df_ref_equal_p, df_ref_compare): Added test for modes.
cc806ac1
RS
4023 (df_ref_create_structure): Added code to set mode. Renamed
4024 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
4025 DF_REF_EXTRACT_OFFSET.
4026 * df-core.c (df_print_byte_regset): New function.
4027 * df-byte-scan.c: New file.
4028 * df-problems.c (df_rd_transfer_function): Removed unnecessary
4029 calls to BITMAP_FREE.
4030 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
4031 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
4032 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
4033 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
4034 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
4035 df_byte_lr_local_compute, df_byte_lr_init,
4036 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
4037 df_byte_lr_transfer_function, df_byte_lr_free,
4038 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
4039 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
4040 df_byte_lr_simulate_uses,
4041 df_byte_lr_simulate_artificial_refs_at_top,
4042 df_byte_lr_simulate_artificial_refs_at_end): New function.
4043 * dce.c (byte_dce_process_block): New function.
4044 (dce_process_block): au is now passed in rather than computed
4045 locally. Changed loops that look at artificial defs to not look
4046 for conditional or partial ones, because there never are any.
4047 (fast_dce): Now is able to drive byte_dce_process_block or
4048 dce_process_block depending on the kind of dce being done.
4049 (rest_of_handle_fast_dce): Add parameter to fast_dce.
4050 (rest_of_handle_fast_byte_dce): New function.
4051 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
4052 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
4053
3d4cb550
DF
40542008-04-21 Daniel Franke <franke.daniel@gmail.com>
4055
4056 PR fortran/35019
4057 * gcc.h: Added fortran options that take arguments to
4058 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
4059 macros.
4060
eea05d39
EB
40612008-04-20 Eric Botcazou <ebotcazou@adacore.com>
4062
4063 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
4064 scalarization if on the LHS and not a full access.
4065
def9bf34
RW
40662008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4067
eea05d39 4068 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
def9bf34 4069
b7d8d447 40702008-04-18 Rafael Espindola <espindola@google.com>
eea05d39 4071
b7d8d447
RAE
4072 * tree-vrp.c (find_case_label_index): Fix the binary search.
4073 (find_case_label_range): New.
4074 (vrp_visit_switch_stmt): Use find_case_label_range.
4075 (simplify_switch_using_ranges): Use find_case_label_range.
4076
ed3444e9
EB
40772008-04-18 Eric Botcazou <ebotcazou@adacore.com>
4078
4079 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
4080 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
4081
893174fa
TT
40822008-04-18 Tom Tromey <tromey@redhat.com>
4083
4084 PR libcpp/15500:
4085 * doc/cpp.texi (Implementation-defined behavior): Mention
4086 -finput-charset.
4087
6e3c5c30
ILT
40882008-04-18 Ian Lance Taylor <iant@google.com>
4089
4090 * fold-const.c (pointer_may_wrap_p): New static function.
4091 (fold_comparison): Add another test for pointer overflow. Use
4092 pointer_may_wrap_p to disable some false positives.
4093
b6baa67d
KVH
40942008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
4095
4096 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
4097 (fname_as_string): Match updated cpp_interpret_string prototype.
4098 (fix_string_type): Support char16_t* and char32_t*.
4099 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
4100 derivative) nodes. Register as builtin if C++0x.
4101 (c_parse_error): Support CPP_CHAR{16,32}.
4102 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
4103 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
4104 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
4105 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
4106 CTI_CHAR32_ARRAY_TYPE>: New elements.
4107 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
4108 char32_type_node, signed_char32_type_node, char16_array_type_node,
4109 char32_array_type_node): New defines.
4110 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
4111 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
4112 (lex_string): Support CPP_STRING{16,32}, match updated
4113 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
4114 (lex_charconst): Support CPP_CHAR{16,32}.
4115 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
4116 and CPP_STRING{16,32}.
4117
deb984e6
PB
41182008-04-18 Paolo Bonzini <bonzini@gnu.org>
4119
4120 PR bootstrap/35457
4121 * aclocal.m4: Regenerate.
4122 * configure: Regenerate.
4123
cb91fab0
JH
41242008-04-18 Jan Hubicka <jh@suse.cz>
4125
4126 * except.c (dw2_size_of_call_site_table,
4127 sjlj_size_of_call_site_table): Use vector API for call_site_record.
4128
4129 * cgraphbuild.c (build_cgraph_edges): Update.
4130 * tree-pass.h: Update comment.
4131 * final.c (leaf_function_p): Update.
4132 (leaf_renumber_regs): Update.
4133 (rest_of_clean_state): Update.
4134 * omp-low.c (expand_omp_parallel): Update.
4135 * ipa-reference.c (analyze_function): Update.
4136 * reorg.c (find_end_label): Update.
4137 (optimize_skip): Update.
4138 (fill_simple_delay_slots): Update.
4139 (fill_simple_delay_slots): Update.
4140 (make_return_insns): Update.
4141 (dbr_schedule): Update.
4142 * gimple-low.c (record_vars_into): Update.
4143 * cfgbuild.c (make_edges): Update.
4144 * function.c (assign_stack_local): Update.
4145 (assign_parm_adjust_stack_rtl): Update.
4146 (locate_and_pad_parm): Update.
4147 (allocate_struct_function): Do not initialize stack_alignment_needed
4148 and preferred_stack_boundary here.
4149 (stack_protect_prologue): Update.
4150 (stack_protect_epilogue): Update.
4151 (expand_function_start): Initialize stack_alignment_needed,
4152 preferred_stack_boundary and max_jumptable_ents.
4153 (expand_function_end): Update.
4154 (free_after_compilation): Do not NULLify epilogue_delay_list.
4155 * function.h (struct rtl_data): Add stack_protect_guard,
4156 stack_alignment_needed,
4157 preferred_stack_boundary, epilogue_delay_list.
4158 (struct function): Remove value_histograms, stack_alignment_needed,
4159 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
4160 last_label_uid,
4161 unexpanded_var_list, stack_protect_guard.
4162 (current_function_epilogue_delay_list): Remove.
4163 * ipa-type-escape.c (analyze_function): Update.
4164 * gimplify.c (pop_gimplify_context): Update comment.
4165 * calls.c (expand_call): Update.
4166 (emit_library_call_value_1): Update.
4167 * except.c (set_nothrow_function_flags): Update.
4168 * cfgexpand.c (get_decl_align_unit): Update.
4169 (create_stack_guard): Update.
4170 (estimated_stack_frame_size): Update.
4171 (expand_used_vars): Update.
4172 (tree_expand_cfg): Free histogram earliers, init expansion variables.
4173 * explow.c (allocate_dynamic_stack_space): Update.
4174 * tree-ssa-live.c (remove_unused_locals): Update.
4175 * varasm.c (mark_constant_pool): Update.
4176 * tree-inline.c (remap_decls): Update.
4177 (initialize_cfun): Update.
4178 (declare_return_variable): Update.
4179 (inline_forbidden_p): Update.
4180 (expand_call_inline): Update.
4181 (declare_inline_vars): Update.
4182 (tree_function_versioning): Update.
4183 * tree-flow.h (value_histograms): New.
4184 (VALUE_HISTOGRAMS): New macro.
4185 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4186 last_label_uid.
4187 * tree-cfg.c (set_bb_for_stmt): Update.
4188 (replace_by_duplicate_decl): Update.
4189 (move_block_to_fn): Update.
4190 (new_label_mapper): Update.
4191 (dump_function_to_file): Update.
4192 * ipa-struct-reorg.c (build_data_structure): Update.
4193 * cfgrtl.c (print_rtl_with_bb): Update.
4194 * reload1.c (reload): Update.
4195 (reload): Update.
4196 * config/i386/i386.c (setup_incoming_varargs_64,
4197 ix86_compute_frame_layout): Update.
4198 * config/arc/arc.c (arc_output_function_epilogue): Update.
4199
799cff46
MS
42002008-04-18 Marius Strobl <marius@FreeBSD.org>
4201
4202 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4203 for FreeBSD as well.
4204 * gthr-posix95.h: Likewise.
4205
de907943
RS
42062008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
4207
4208 PR rtl-optimization/35838
4209 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4210 out the byte offset of the first subreg.
4211
c2b814b9
UB
42122008-04-17 Uros Bizjak <ubizjak@gmail.com>
4213
4214 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4215 to split_ti instead of three separate calls with single member arrays.
4216 (subti3 splitter): Ditto.
4217 (adddi3 splitter): Ditto with split_di.
4218 (subdi3 splitter): Ditto.
4219 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4220 two separate calls with single member arrays. Swap match_dup
4221 operands 1 and 2 to better fit into the array.
4222 (negdi2 splitter): Ditto with split_di.
4223 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
4224 two separate calls with single member arrays. Swap match_dup operands
4225 6 and 7 to better fit into the array.
4226
ec2e9a15
L
42272008-04-17 H.J. Lu <hongjiu.lu@intel.com>
4228
4229 * config/i386/i386.c (sse_builtin_type): New.
4230 (bdesc_sse_args): Likewise.
4231 (bdesc_sse_3arg): Removed.
4232 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4233 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4234 IX86_BUILTIN_ROUNDPS.
4235 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
4236 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
4237 IX86_BUILTIN_ROUNDPS.
4238 (ix86_expand_sse_4_operands_builtin): Removed.
4239 (ix86_expand_sse_operands_builtin): New.
4240 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4241 and CODE_FOR_sse4_1_roundps.
4242 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4243 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
4244
e6477eaa
AM
42452008-04-17 Alan Modra <amodra@bigpond.net.au>
4246
4247 PR target/35907
4248 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4249 regs before frame pop when needed. If use_backchain_to_restore_sp
4250 then load backchain into a temp reg to restore vr and vrsave. Add
4251 code to restore vr after frame pop if possible.
4252
ba2e1892
RG
42532008-04-17 Richard Guenther <rguenther@suse.de>
4254
4255 * tree-vn.c (expressions_equal_p): Do not check type
4256 equality or compatibility before calling operand_equal_p.
4257 * fold-const.c (operand_equal_p): Check equivalence of
4258 integer constants before bailing out due to signedness or
4259 precision differences.
4260 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4261 spurious differences in type qualification. Ignore types
4262 for COMPONENT_REFs at all.
4263
d60819f8
CB
42642008-04-17 Christian Bruel <christian.bruel@st.com>
4265
4266 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4267 msw_skip comparison.
4268
3d5e00a0
JJ
42692008-04-16 Jakub Jelinek <jakub@redhat.com>
4270
12e19e05
JJ
4271 PR c/35739
4272 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4273 reg type.
4274
3d5e00a0
JJ
4275 PR tree-optimization/35899
4276 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4277 rather than TREE_OPERAND.
4278
17c340e0
UB
42792008-04-16 Uros Bizjak <ubizjak@gmail.com>
4280
4281 PR target/35944
4282 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4283 temporary registers. Change operand predicate to general_operand.
4284 (remainderxf3): Ditto.
4285
e544c850
RG
42862008-04-16 Richard Guenther <rguenther@suse.de>
4287
4288 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4289 * tree-affine.c (aff_combination_expand): Look through some
4290 conversions.
4291
3d57d7ce
DK
42922008-04-15 Doug Kwan <dougkwan@google.com>
4293
4294 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4295 for hex printing.
4296 * tree-pretty-print.c (dump_generic_node): Ditto.
4297 * final.c (output_addr_const): Ditto.
4298 * dwarf2out.c (output_cfi): Ditto.
4299 * c-pretty-print.c (pp_c_integer_constant): Ditto.
4300 * print-rtl.c (print_rtx): Ditto.
4301 * print-tree.c (print_node_brief, print_node): Ditto.
4302 * c-common.c (match_case_to_enum_1): Ditto.
4303 * sched-vis.c (print_value): Ditto.
4304 * config/i386/i386.c (print_operand): Cast to long unsigned int
4305 for hex printing.
4306
d98c89de
DS
43072008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
4308 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
4309 MS Windows VirtualProtect function.
4310
69c32ec8
JH
43112008-04-15 Jan Hubicka <jh@suse.cz>
4312
4313 * gengtype.c (write_root): Param_is argument is OK.
4314 * expr.c (expand_expr_real_1): Update call of get_exception_*.
4315 * function.h: Include varray.h
4316 (rtl_eh): New stucture based on except.c one.
4317 (call_site_record): New forward declaration and vector type.
4318 * calls.c (emit_call_1): Do not call
4319 note_current_region_may_contain_throw.
4320 * except.c (eh_status): Remove cur_region, try_region since they are
4321 unused.
4322 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4323 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4324 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
4325 Remove call_site_data_used, call_site_data_size.
4326 Turn call_site_record into vector in function.h.
4327 (note_current_region_may_contain_throw): Remove.
4328 (get_exception_pointer, get_exception_filter): Do not take struct
4329 function argument; update.
4330 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4331 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4332 build_post_landing_pads, dw2_build_landing_pads,
4333 sjlj_assign_call_site_values, sjlj_mark_call_sites,
4334 sjlj_emit_function_enter, sjlj_emit_function_enter,
4335 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4336 sjlj_build_landing_pads, finish_eh_generation,
4337 remove_exception_handler_label, remove_eh_handler,
4338 maybe_remove_eh_handler, add_reachable_handler,
17c340e0
UB
4339 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4340 add_action_record, collect_one_action_chain, add_call_site,
4341 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
69c32ec8
JH
4342 sjlj_output_call_site_table, output_function_exception_table,
4343 * except.h (note_current_region_may_contain_throw): Remove
4344 (get_exception_pointer, get_exception_filter): Do not take struct
4345 function argument.
4346 * Makefile.in (GTFILES): Put varargs before struct function.
4347
bd1f29d9
EB
43482008-04-15 Eric Botcazou <ebotcazou@adacore.com>
4349
4350 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4351 punt for STRING_CST.
4352 (get_constraint_for): Deal with STRING_CST here instead.
4353
3bb3bb2d
RG
43542008-04-15 Richard Guenther <rguenther@suse.de>
4355
4356 * tree-ssa-propagate.c (substitute_and_fold): Substitute
4357 statements in a basic-block with a backward walk. Do not
4358 substitute into dead statements but instead remove those.
4359
d9338cf0
RG
43602008-04-15 Richard Guenther <rguenther@suse.de>
4361
4362 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4363 to zero, thus disable creation of SFTs.
4364
7e80c6bf
EB
43652008-04-15 Eric Botcazou <ebotcazou@adacore.com>
4366
4367 * tree-predcom.c (suitable_reference_p): Return false if the
4368 reference can throw.
4369
b97d8153
JJ
43702008-04-15 Jakub Jelinek <jakub@redhat.com>
4371
4372 PR c/35751
4373 * c-decl.c (finish_decl): If extern or static var has variable
4374 size, set TREE_TYPE (decl) to error_mark_node.
4375
d0599470
RAE
43762008-04-15 Rafael Espindola <espindola@google.com>
4377
b97d8153 4378 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d0599470
RAE
4379 variable arg1.
4380
649caaad
RG
43812008-04-15 Richard Guenther <rguenther@suse.de>
4382
4383 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4384 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4385 (visit_reference_op_load): Do walk vuse-vdef chains on
4386 vn_reference_lookup.
4387 (visit_reference_op_store): But do not here.
4388 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4389 vn_reference_lookup.
4390 (vn_lookup_with_vuses): But do so here.
4391
55d7d0fa
ILT
43922008-04-14 Ian Lance Taylor <iant@google.com>
4393
4394 * fold-const.c (fold_overflow_warning): Remove assertion.
4395
2c4eec69
BE
43962008-04-15 Ben Elliston <bje@au.ibm.com>
4397
4398 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4399 temp1 local variables.
4400
44012008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
40f39798
ZM
4402
4403 PR target/35661
4404 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4405 ".text.unlikely" section as executable.
4406
07acc7b3
JW
44072008-04-14 James E. Wilson <wilson@tuliptree.org>
4408
4409 * config/ia64/ia64.c (rtx_needs_barrier): Handle
4410 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4411 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4412 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4413 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4414 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4415 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4416
4c9db6e0
ILT
44172008-04-14 Ian Lance Taylor <iant@google.com>
4418
4419 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4420 * fold-const.c (fold_comparison): If appropriate, test
4421 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4422 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4423 reassociating a pointer type.
4424 * doc/invoke.texi (Optimize Options): Document that
4425 -fstrict-overflow applies to pointer wraparound.
4426
305da3ec
JH
44272008-04-13 Jan Hubicka <jh@suse.cz>
4428
4429 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4430
298ac1dd
AP
44312008-04-12 Andrew Pinski <pinskia@gmail.com>
4432
4433 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4434 we are going to "save the world".
4435
70a7c7f1
HPN
44362008-04-13 Hans-Peter Nilsson <hp@axis.com>
4437
4438 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4439 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4440 operand 0 constraint, not "=".
4441
ad7aacba
JW
44422008-04-11 James E. Wilson <wilson@tuliptree.org>
4443
4444 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4445
9d6facc7
L
44462008-04-11 H.J. Lu <hongjiu.lu@intel.com>
4447
4448 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4449 of size of positions_needed * CHAR_BIT.
4450
4fe663b0
L
44512008-04-11 H.J. Lu <hongjiu.lu@intel.com>
4452
4453 PR middle-end/35897
4454 * dse.c (store_info): Change positions_needed to unsigned
4455 HOST_WIDE_INT.
4456 (lowpart_bitmask): New.
4457 (record_store): Cast to unsigned HOST_WIDE_INT for
4458 positions_needed. Assert width <= size of positions_needed *
4459 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
4460 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
4461 lowpart_bitmask to set mask.
4462
9fdd7520
BS
44632008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
4464
4465 * config/bfin/constraints.md: New file.
4466 * config/bfin/bfin.md: Include it.
4467 (adddi3): Use satisfies_constraint functions instead of the old macros.
4468 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4469 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4470 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4471 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4472 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4473 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4474 EXTRA_CONSTRAINT): Delete.
4475 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4476 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4477 of the old macros.
4478 * config/bfin/bfin.c: Include "tm-constrs.h".
4479 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4480 Use satisfies_constraint functions instead of the old macros.
4481 * doc/md.texi (Blackfin Constraints): Update file name reference.
4482
0a4bf1d3
RG
44832008-04-11 Richard Guenther <rguenther@suse.de>
4484
4485 PR tree-optimization/35869
4486 * tree-vrp.c (execute_vrp): Move switch statement update after
4487 jump threading. Schedule another cfg cleanup run.
4488
21516d64
VR
44892008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
4490
4491 PR c/35744
4492 * attribs.c (decl_attributes): Return early on errorneous node.
4493
0598f31b
OR
44942008-04-10 Oleg Ryjkov <olegr@google.com>
4495
4496 * tree.h (struct tree_base): Added a new flag default_def_flag.
4497 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4498
a1fcb9a1
KK
44992008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
4500
4501 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4502
6ef5fab0
JDA
45032008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4504
4505 PR target/35768
4506 * pa.md: Define mode iterator P. Define mode attribute dwc.
4507 (dcacheflush): Update pattern to use iterator P and attribute dwc.
4508 (icacheflush): Likewise.
4509 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4510 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4511
e47f8bba
BE
45122008-04-11 Ben Elliston <bje@au.ibm.com>
4513
4514 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4515
2893f753
RAE
45162008-04-10 Rafael Espindola <espindola@google.com>
4517
b97d8153 4518 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2893f753
RAE
4519 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4520 (extract_range_from_expr): The same.
4521
5fb79e4c
AN
45222008-04-10 Adam Nemet <anemet@caviumnetworks.com>
4523
4524 * config/mips/mips.md (GPR2): New mode iterator.
4525 (seq): Add comment.
4526 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4527 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4528 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4529 Rewrite these to take two modes, the mode of comparison and the
4530 mode of the destination.
4531 * config/mips/mips.c (mips_expand_scc): Instead of having
4532 paradoxical subreg as destination, expand "narrowing" scc if mode
4533 of comparison is SI and target is requested in DI mode.
4534 (mips_emit_int_order_test): Update comment. Make mode of
4535 comparison match CMP0 rather than TARGET. When creating inverse
4536 target use mode of TARGET.
4537
63d628b2
AN
45382008-04-10 Adam Nemet <anemet@caviumnetworks.com>
4539
4540 * gcov-dump.c (tag_summary): Only print summaries for the first
4541 GCOV_COUNTERS_SUMMABLE counters.
4542
6dd18eb1
UB
45432008-04-10 Uros Bizjak <ubizjak@gmail.com>
4544
4545 * config/i386/i386.md (absneg): New code iterator.
4546 (absnegprefix): New code attribute.
4547 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4548 patterns using absneg code iterator.
4549 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4550 using absneg code iterator.
4551 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4552 *neg<mode>2 patterns using absneg code iterator.
4553 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4554 *negextendsfdf2 patterns using absneg code iterator.
4555 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4556 *negextendsfxf2 patterns using absneg code iterator.
4557 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4558 *negextendsfdf2 patterns using absneg code iterator.
4559 * config/i386/sse.md (<code><mode>2): Macroize expander from
4560 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
4561
f40bee31
AK
45622008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
4563
4564 * config/s390/s390.h: Remove the remains of the recent search
4565 & replace action of current_function_outgoing_args_size.
4566
19aec6b0
IR
45672008-04-10 Ira Rosen <irar@il.ibm.com>
4568
4569 PR tree-optimization/35821
4570 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4571 NEW_STMT_LIST is not NULL.
4572
ee8f0bd7
DE
45732008-04-09 David Edelsohn <edelsohn@gnu.org>
4574
4575 PR libstdc++/35597
4576 * toplev.c (process_options): Remove -ffunction-sections debugging
4577 warning.
4578
3a3a1fe1
PB
45792008-04-09 Peter Bergner <bergner@vnet.ibm.com>
4580
4581 PR middle-end/PR28690
4582 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4583 than gen_rtx_fmt_ee to perform more canonicalizations.
4584
e0941605
JDA
45852008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4586
4587 PR driver/35665
4588 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4589
2f9ea521
RG
45902008-04-09 Richard Guenther <rguenther@suse.de>
4591
4592 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4593 (dump_function_to_file): Dump function arguments with types.
4594
02765a37
RG
45952008-04-08 Richard Guenther <rguenther@suse.de>
4596
4597 * fold-const.c (fold_widened_comparison): Do not allow
4598 sign-changes that change the result.
4599
a0f39282
JJ
46002008-04-08 Janis Johnson <janis187@us.ibm.com>
4601
4602 PR target/35839
4603 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4604 kinds of indirect references.
4605
7f62878c
DE
46062008-04-08 David Edelsohn <edelsohn@gnu.org>
4607
4608 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4609 GNU Fortran language string.
4610
a1a6e271
RAE
46112008-04-08 Rafael Espindola <espindola@google.com>
4612
4613 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4614 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4615 * tree.h (tree_call_nonnegative_warnv_p): New.
4616
57b9e367
JH
46172008-04-08 Jan Hubicka <jh@suse.cz>
4618
4619 * function.c (free_after_compilation): Clear out regno_reg_rtx
4620 pointer.
4621
a95c8615
PB
46222008-04-08 Peter Bergner <bergner@vnet.ibm.com>
4623
4624 Revert
4625 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
4626
4627 PR middle-end/PR28690
4628 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4629 same precedence as REG_POINTER and MEM_POINTER operands.
4630
903b3003
RG
46312008-04-08 Richard Guenther <rguenther@suse.de>
4632
4633 PR middle-end/35834
4634 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4635 for adding index to base.
4636
0b03b302
KT
46372008-04-08 Kai Tietz <kai.tietz@onevision.com>
4638
4639 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4640 (MINGW_ENABLE_EXECUTE_STACK): New.
4641 (IN_LIBGCC2): For libgcc include windows.h file for
4642 function declarations.
4643
582be0a1
HPN
46442008-04-08 Hans-Peter Nilsson <hp@axis.com>
4645
4646 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4647 and tem2 if tem1 is not a REG or MULT.
4648
38173d38
JH
46492008-04-08 Jan Hubicka <jh@suse.cz>
4650
4651 * function.h (incomming_args): Break out of struct function.
4652 (function_subsections): Break out of struct function.
4653 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4654 return_rtx and hard_reg_initial_vals from struct function.
4655 Kill inl_max_label_num.
4656 (current_function_pops_args, current_function_args_info,
4657 current_function_args_size, current_function_args_size,
4658 current_function_pretend_args_size,
4659 current_function_outgoing_args_size,
4660 current_function_internal_arg_pointer, current_function_return_rtx):
4661 Kill compatibility accestor macros.
4662 * builtins.c (expand_builtin_apply_args_1): Update.
4663 (expand_builtin_next_arg): Update.
4664 * df-scan.c (df_get_call_refs): Update.
4665 * dbxout.c (dbxout_function_end): Update.
4666 * dwarf2out.c (dwarf2out_switch_text_section): Update.
4667 (output_line_info): Update.
4668 (secname_for_decl): Update.
4669 (dwarf2out_var_location): Update.
4670 * function.c (free_after_compilation): Update.
4671 (assign_parm_find_stack_rtl): Update.
4672 (assign_parms): Update.
4673 (expand_dummy_function_end): Update.
4674 (expand_function_end): Update.
4675 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4676 (expand_call): Update.
4677 (emit_library_call_value_1): Update.
4678 (store_one_arg): Update.
4679 * varasm.c (initialize_cold_section_name): Update.
4680 (unlikely_text_section): Update.
4681 (unlikely_text_section_p): Update.
4682 (assemble_start_function): Update.
4683 (assemble_end_function): Update.
4684 (default_section_type_flags): Update.
4685 (switch_to_section): Update.
4686 * integrate.c (set_decl_abstract_flags): Update.
4687 (get_hard_reg_initial_val): Update.
4688 (has_hard_reg_initial_val): Update.
4689 (allocate_initial_values): Update.
4690 * resource.c (init_resource_info): Update.
4691 * config/alpha/alpha.c (NUM_ARGS): Update.
4692 (direct_return): Update.
4693 (alpha_va_start): Update.
4694 (alpha_sa_size): Update.
4695 (alpha_initial_elimination_offset): Update.
4696 (alpha_expand_prologue): Update.
4697 (alpha_start_function): Update.
4698 (alpha_expand_epilogue): Update.
4699 (unicosmk_initial_elimination_offset):
4700 * config/alpha/alpha.md (call expander): Update.
4701 * config/s390/s390.c (s390_register_info): Update.
4702 (s390_register_info): Update.
4703 (s390_frame_info): Update.
4704 (s390_initial_elimination_offset): Update.
4705 (s390_build_builtin_va_list): Update.
4706 (s390_va_start): Update.
4707 * config/spu/spu.c (direct_return): Update.
4708 (spu_expand_prologue): Update.
4709 (spu_initial_elimination_offset): Update.
4710 (spu_build_builtin_va_list): Update.
4711 (spu_va_start): Update.
4712 * config/sparc/sparc.c (sparc_init_modes): Update.
4713 (sparc_compute_frame_size): Update.
4714 (function_value): Update.
4715 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4716 * config/i386/i386.md (return expander): Update.
4717 * config/i386/i386.c (ix86_va_start): Update.
4718 (ix86_can_use_return_insn_p): Update.
4719 (ix86_compute_frame_layout): Update.
4720 (ix86_expand_epilogue): Update.
4721 * config/sh/sh.c (output_stack_adjust): Update.
4722 (calc_live_regs): Update.
4723 (sh_expand_prologue): Update.
4724 (sh_builtin_saveregs): Update.
4725 (sh_va_start): Update.
4726 (initial_elimination_offset): Update.
4727 (sh_allocate_initial_value): Update.
4728 (sh_function_ok_for_sibcall): Update.
4729 (sh_get_pr_initial_val): Update.
4730 * config/sh/sh.md (return expander): Update.
4731 * config/avr/avr.c (frame_pointer_required_p): UPdate.
4732 * config/crx/crx.c (crx_compute_frame): UPdate.
4733 (crx_initial_elimination_offset): UPdate.
4734 * config/xtensa/xtensa.c (compute_frame_size): Update
4735 (xtensa_builtin_saveregs): Update.
4736 (xtensa_va_start): Update.
4737 (order_regs_for_local_alloc): Update.
4738 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4739 (xstormy16_expand_builtin_va_start): Update.
4740 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4741 * config/m68hc11/m68hc11.md (return expanders): Update.
4742 * config/m68hc11/m68hc11.c (expand_prologue): Update.
4743 (expand_epilogue): Update.
4744 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4745 (cris_simple_epilogue): Update.
4746 (cris_expand_prologue): Update.
4747 (cris_expand_epilogue): Update.
4748 * config/iq2000/iq2000.c (iq2000_va_start): Update.
4749 (compute_frame_size): Update.
4750 * config/mt/mt.c (mt_compute_frame_size): Update.
4751 * config/mn10300/mn10300.c (expand_prologue): Update.
4752 (expand_epilogue): Update.
4753 (initial_offset): Update.
4754 (mn10300_builtin_saveregs):
4755 * config/mn10300/mn10300.md (return expander): Update.
4756 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4757 (ia64_initial_elimination_offset): Update.
4758 (ia64_initial_elimination_offset): Update.
4759 (ia64_expand_prologue): Update.
4760 * config/m68k/m68k.md (return expander): Update.
4761 * config/rs6000/rs6000.c (rs6000_va_start): Update.
4762 (rs6000_stack_info): Update.
4763 * config/mcore/mcore.c (layout_mcore_frame): Update.
4764 (mcore_expand_prolog): Update.
4765 * config/arc/arc.c (arc_compute_frame_size): Update.
4766 * config/score/score3.c (score3_compute_frame_size): Update.
4767 * config/score/score7.c (score7_compute_frame_size): Update.
4768 * config/arm/arm.c (use_return_insn): Update.
4769 (thumb_find_work_register): Update.
4770 (arm_compute_save_reg_mask): Update.
4771 (arm_output_function_prologue): Update.
4772 (arm_output_epilogue): Update.
4773 (arm_size_return_regs): Update.
4774 (arm_get_frame_offsets): Update.
4775 (arm_expand_prologue): Update.
4776 (thumb_exit): Update.
4777 (thumb_unexpanded_epilogue): Update.
4778 (thumb1_output_function_prologue): Update.
4779 * config/pa/pa.md (return expander): Update.
4780 * config/pa/pa.c (compute_frame_size): Update.
4781 (hppa_builtin_saveregs): Update.
4782 * config/mips/mips.c (mips_va_start): Update.
4783 (mips16_build_function_stub): Update.
4784 (mips_compute_frame_info): Update.
4785 (mips_restore_gp): Update.
4786 (mips_output_function_prologue): Update.
4787 (mips_expand_prologue): Update.
4788 * config/v850/v850.c (compute_frame_size): Update.
4789 (expand_prologue): * config/mmix/mmix.c (along): update.
4790 (mmix_initial_elimination_offset): update.
4791 (mmix_reorg): update.
4792 (mmix_use_simple_return): update.
4793 (mmix_expand_prologue): update.
4794 (mmix_expand_epilogue): Update.
4795 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4796 (emit_link_insn): Update.
4797
5d9b8bb4
AS
47982008-04-08 Anatoly Sokolov <aesok@post.ru>
4799
4800 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
4801 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
4802 instructions.
4803 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
4804 atmega103 device.
4805
3e029763
JH
48062008-04-07 Jan Hubicka <jh@suse.cz>
4807
4808 * function.h (rtl): Rename to x_rtl.
4809 (crtl): New define.
4810 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4811 frame_offset, stack_check_probe_note, arg_pointer_save_area,
4812 used_temp_slots avail_temp_slots, temp_slot_level,
4813 nonlocal_goto_handler_labels): Update accesstors.
4814 (rtl): New global variable.
4815 (struct function): Move some fileds to rtl_data.
4816 (get_arg_pointer_save_area): Update prototype.
4817 * builtins.c (expand_builtin_setjmp_receiver): Update call of
4818 get_arg_pointer_save_area.
4819 * expr.c (init_expr): Update
4820 * function.c (get_frame_size): Update
4821 (assign_stack_local): Update
4822 (expand_function_end): Update.
4823 (get_art_pointer_save_area): Update
4824 * function.h
4825 * emit-rtl.c (rtl): Declare.
4826 (regno_reg_rtx): Declare.
4827 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4828 Update.
4829 (gen_reg_rtx): Update.
4830 * varasm.c (n_deferred_constatns): Update accestor.
4831 (init_varasm_status): Do not allocate varasm_status.
4832 (force_const_mem, get_pool_size, output_constant_pool): Update.
4833 * stmt.c (force_label_rtx): Do not use x_ prefixes.
4834 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4835 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4836 * sparc/sparc.h (INIT_EXPANDERS): Update.
4837 * ia64/ia64.h (INIT_EXPANDERS): Update.
4838
c3be2598
JW
48392008-04-07 James E. Wilson <wilson@tuliptree.org>
4840
4841 * reload.c (push_secondary_reload): Add missing break to for loop.
4842
46b71b03
PB
48432008-04-07 Peter Bergner <bergner@vnet.ibm.com>
4844
4845 PR middle-end/PR28690
4846 * rtlanal.c: Update copyright years.
4847 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4848 as REG_POINTER and MEM_POINTER operands.
4849 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4850 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4851 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4852 * gcse.c: Update copyright years.
4853 (pre_delete): Call gen_reg_rtx_and_attrs.
4854 (hoist_code): Likewise.
4855 (build_store_vectors): Likewise.
4856 (delete_store): Likewise.
4857 * loop-invariant.c (move_invariant_reg): Likewise.
4858 Update copyright years.
4859
64ef8953
UB
48602008-04-07 Uros Bizjak <ubizjak@gmail.com>
4861
4862 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4863 control string instead of quoted.
4864
4218dc2d 48652008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
84159bd8 4866
64ef8953
UB
4867 * doc/rtl.texi: Rewrite of subreg section.
4868
8502420b
KT
48692008-04-07 Kai Tietz <kai.tietz@onevision.com>
4870
64ef8953
UB
4871 PR/35842
4872 * config/i386/i386.c (legitimize_pic_address): Add treating
4873 of dllimport SYM_REF's.
4874 (legitimize_dllimport_symbol): Add prototype.
8502420b 4875
39fcde8f
EB
48762008-04-07 Eric Botcazou <ebotcazou@adacore.com>
4877
4878 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
4879 reference in constructor with non self-referential type.
4880
9dd9bf80
EB
48812008-04-07 Eric Botcazou <ebotcazou@adacore.com>
4882
4883 Removal of Return with Depressed Stack Pointer support
4884 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4885 (ECF_SP_DEPRESSED): Likewise.
4886 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4887 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4888 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4889 (expand_call): Do not test ECF_SP_DEPRESSED.
4890 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4891 * function.c (keep_stack_depressed): Delete.
4892 (handle_epilogue_set): Likewise.
4893 (update_epilogue_consts): Likewise.
4894 (emit_equiv_load): Likewise.
4895 (thread_prologue_and_epilogue_insns): Remove support for Return with
4896 Depressed Stack Pointer.
4897 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4898
3633df5a
RG
48992008-04-06 Richard Guenther <rguenther@suse.de>
4900
4901 PR tree-optimization/35400
4902 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4903 information from SSA_NAMEs.
4904
5dc77808
AS
49052008-04-06 Anatoly Sokolov <aesok@post.ru>
4906
4907 * config/avr/avr.h (avr_mega_p): Remove declaration.
4908 (AVR_MEGA): Remove macro.
4909 * config/avr/avr.c (avr_mega_p): Remove variable.
4910 (avr_override_options): Remove inicializion of avr_mega_p.
4911 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4912 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4913 (avr_jump_mode): (Ditto.).
4914 (avr_output_progmem_section_asm_op): (Ditto.).
4915 (avr_asm_init_sections): (Ditto.).
4916 (avr_asm_init_sections): (Ditto.).
4917 (avr_rtx_costs): (Ditto.).
4918 * config/avr/avr.md: (Ditto.).
4919 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
4920 '__AVR_MEGA__'.
4921
8c51effa
RG
49222008-04-06 Richard Guenther <rguenther@suse.de>
4923
4924 PR tree-optimization/35842
4925 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4926 is_gimple_invariant_address.
4927
3135ce84
FXC
49282008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4929
4930 * gcc.c (default_compilers): Sync Fortran extensions list with
4931 that in fortran/lang-specs.h.
4932 * doc/invoke.texi: Likewise.
4933 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4934 * dwarf2out.c (gen_compile_unit_die): Likewise.
4935
d7d7db8b
TC
49362008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
4937
4938 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4939
27183bba
UB
49402008-04-05 Uros Bizjak <ubizjak@gmail.com>
4941
4942 PR target/12329
4943 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4944 attribute is used for nested functions.
4945
9e016eba
JH
49462008-04-05 Jan Hubicka <jh@suse.cz>
4947
9fb7564e
JH
4948 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4949
9e016eba
JH
4950 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4951 letter argument.
4952 (dump_files): Update.
4953 (enable_rtl_dump_file): Do not accept letter argument.
4954 * tree-pass.h (dump_file_info): Remove letter argument.
4955 * toplev.c (decode_d_option): Update -da handling.
4956 * toplev.h (enable_rtl_dump_file): Update prototype.
4957 * passes.c (register_one_dump_file): Do not accept IPA argument; work
4958 it out based on pass type.
4959 (register_dump_files_1): Likewise.
4960 (init_optimization_passes): Update register_one_dump_file calls.
27183bba
UB
4961 (execute_one_pass): Sanity check that IPA passes are called at IPA
4962 level and RTL passes at RTL level.
9e016eba
JH
4963 (execute_pass_list): IPA pass can not be after or subpass of
4964 GIMPLE/RTL pass.
4965 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4966 disallov RTL subpasses of IPA subpasses.
4967
23ef6d21
BE
49682008-04-05 Ben Elliston <bje@au.ibm.com>
4969
4970 * tree-cfg.c (need_fake_edge_p): Return false for calls to
4971 builtins that return exactly once and do not throw. Cache call to
4972 call_expr_flags.
4973
3c2397cd
AH
49742008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4975
4976 PR rtl-optimization/34916
4977 PR middle-end/35519
4978 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4979 between instruction pairs.
4980
9eb3a0dd
N
49812008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
4982
4983 * doc/invoke.texi: Document -mbitops for SH.
4984 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4985 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4986 * config/sh/sh.c (print_operand): Add %t operand code.
4987 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4988 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4989 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4990 (extendqihi2): Likewise.
4991 (movqi_i): Likewise.
4992 (insv): Use bset, bclr and bst instructions for SH2A if possible.
4993 (extv): Use bld instruction for SH2A if possible.
4994 (extzv): Likewise.
4995 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4996 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4997 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4998 (bset.b, bclr.b): Define peepholes.
4999 * config/sh/sh.opt (mbitops): New option.
5000
fdf4f148
JJ
50012008-04-04 Janis Johnson <janis187@us.ibm.com>
5002
5003 PR target/35620
5004 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
5005 and view convert expression.
5006
3088d404
JJ
50072008-04-04 Jakub Jelinek <jakub@redhat.com>
5008
5009 PR target/35364
5010 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
5011
8b96a312
L
50122008-04-04 H.J. Lu <hongjiu.lu@intel.com>
5013
5014 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
5015
5016 * config/i386/cpuid.h (bit_AES): New.
5017 (bit_PCLMUL): Likewise.
5018
5019 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
5020 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
5021 SSE2 if AES or PCLMUL is enabled.
5022 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
5023 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5024 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
5025 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
5026 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
5027 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
5028 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
5029 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
5030 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
5031 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
5032 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
5033 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
5034 __builtin_ia32_aeskeygenassist128 and
5035 __builtin_ia32_pclmulqdq128.
5036 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
5037 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
5038 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
5039
5040 * config/i386/i386.h (TARGET_AES): New.
5041 (TARGET_PCLMUL): Likewise.
5042 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
5043
5044 * config/i386/i386.md (UNSPEC_AESENC): New.
5045 (UNSPEC_AESENCLAST): Likewise.
5046 (UNSPEC_AESDEC): Likewise.
5047 (UNSPEC_AESDECLAST): Likewise.
5048 (UNSPEC_AESIMC): Likewise.
5049 (UNSPEC_AESKEYGENASSIST): Likewise.
c9a22ea1 5050 (UNSPEC_PCLMUL): Likewise.
8b96a312
L
5051
5052 * config/i386/i386.opt (maes): New.
5053 (mpclmul): Likewise.
5054
5055 * config/i386/sse.md (aesenc): New pattern.
5056 (aesenclast): Likewise.
5057 (aesdec): Likewise.
5058 (aesdeclast): Likewise.
5059 (aesimc): Likewise.
5060 (aeskeygenassist): Likewise.
5061 (pclmulqdq): Likewise.
5062
5063 * config/i386/wmmintrin.h: New.
5064
5065 * doc/extend.texi: Document AES and PCLMUL built-in function.
5066
5067 * doc/invoke.texi: Document -maes and -mpclmul.
5068
e8924938
PB
50692008-04-04 Paolo Bonzini <bonzini@gnu.org>
5070
5071 * function.c (free_after_parsing): Replace with
5072 cxx_push_function_context from C++ front-end.
5073 (allocate_struct_function): Don't call langhook.
5074 * langhooks.h (struct lang_hooks_for_functions): Delete.
5075 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
5076 member "function".
5077 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
5078 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
5079 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
5080 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
5081 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
5082 remove LANG_HOOKS_FUNCTION_INITIALIZER.
5083 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
5084
5085 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
5086 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
5087
05008a0c
JJ
50882008-04-04 Jakub Jelinek <jakub@redhat.com>
5089
5090 PR c/35440
5091 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
5092 for all types.
5093
c071e8bc
RG
50942008-04-04 Richard Guenther <rguenther@suse.de>
5095
5096 PR middle-end/35823
5097 * fold-const.c (optimize_minmax_comparison): Use the correct
5098 type for the constant in the simplified comparison.
5099
f4a1dd0d
ZM
51002008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
5101
5102 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
5103 Pass L2 size as "--param l2-cache-size" to the compiler.
5104 (decode_l2_cache): New function to decode L2 cache parameters using
5105 0x8000006 extended cpuid function.
5106 (detect_caches_amd): Determine parameters of L2 cache using
5107 decode_l2_caches function.
5108 (decode_caches_intel): Decode L2 cache parameters.
5109 (detect_caches_intel): Determine L2 cache parameters using
5110 decode_caches_intel and decode_l2_caches functions.
5111
3ee909cb
BW
51122008-04-03 Bob Wilson <bob.wilson@acm.org>
5113
5114 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
5115 secondary input reload for subword loads from the constant pool.
5116
6db07dcb
JJ
51172008-04-03 Janis Johnson <janis187@us.ibm.com>
5118
383e91e4
JJ
5119 PR target/35713
5120 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
5121 constants of the appropriate size for runtime calculations.
5122
6db07dcb
JJ
5123 PR c/35712
5124 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
5125 decimal-float literal constant zero.
5126
5da250fc
JJ
51272008-04-03 Jakub Jelinek <jakub@redhat.com>
5128
79addd1f
JJ
5129 PR c/35738
5130 * c-parser.c (c_parser_omp_atomic): Call
5131 default_function_array_conversion on the RHS.
5132
5da250fc
JJ
5133 PR middle-end/35818
5134 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
5135 call is_variable_sized if decl has incomplete type.
5136
940f3b52
L
51372008-04-03 H.J. Lu <hongjiu.lu@intel.com>
5138
5139 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
5140
6ac935c1
AN
51412008-04-03 Adam Nemet <anemet@caviumnetworks.com>
5142
5143 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
5144 iterators.
64ef8953 5145 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6ac935c1
AN
5146 (sgt<u>): Merge sgt and sgtu into new expander.
5147 (sgt, sgtu): Remove expanders.
64ef8953 5148 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6ac935c1
AN
5149 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
5150 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
5151 *sgtu_<mode>_mips16 into new pattern.
5152 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
5153 (sge<u>): Merge sge and sgeu into new expander.
5154 (sge, sgeu): Remove expanders.
5155 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
5156 new pattern.
5157 (*sge_<mode>, second *sge_<mode>): Remove patterns.
5158 (slt<u>): Merge slt and sltu into new expander.
5159 (slt, sltu): Remove expanders.
64ef8953 5160 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6ac935c1
AN
5161 (*slt_<mode>, *sltu_<mode>): Remove patterns.
5162 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
5163 *sltu_<mode>_mips16 into new pattern.
5164 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
5165 (sle<u>): Merge sle and sleu into new expander.
5166 (sle, sleu): Remove expanders.
64ef8953 5167 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6ac935c1
AN
5168 (*sle_<mode>, *sleu_<mode>): Remove patterns.
5169 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
5170 *sleu_<mode>_mips16 into new pattern.
5171 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
5172
6b0c2336
JH
51732008-04-03 Jan Hubicka <jh@suse.cz>
5174
5175 PR tree-optimization/35795
5176 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
5177 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5178 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5179 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5180 * score/score3.c (score3_output_mi_thunk): Likewise.
5181 * score/score7.c (score7_output_mi_thunk): Likewise.
5182 * mips/mips.c (mips_output_mi_thunk): Likewise.
5183
b47ee386
RG
51842008-04-03 Richard Guenther <rguenther@suse.de>
5185
5186 * tree-vrp.c (extract_range_from_unary_expr): Handle all
5187 conversions. Simplify code.
5188
2a7428c0
KK
51892008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
5190
5191 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5192
6cba282a
TT
51932008-04-03 Tom Tromey <tromey@redhat.com>
5194 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5195
5196 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5197 * config/bfin/t-bfin-linux (generated_files): Add
5198 linux-sysroot-suffix.h.
5199 * doc/install.texi (Prerequisites): Require make 3.80.
5200 * doc/sourcebuild.texi (Front End Directory): Document new
5201 variable.
5202 * Makefile.in (generated_files): New variable.
5203 (ALL_HOST_OBJS): New variable.
5204 ($(ALL_HOST_OBJS)): New target.
5205
9ff420f1
PB
52062008-04-03 Paolo Bonzini <bonzini@gnu.org>
5207
6b0c2336
JH
5208 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5209 (remap_block): Call id->transform_lang_insert_block instead
5210 of langhook.
5211 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5212 Set id.transform_lang_insert_block to NULL.
5213 (clone_body): Move to cp/optimize.c
5214 * tree-inline.h (struct copy_body_data): Change
5215 transform_lang_insert_block to function pointer.
5216 (copy_generic_body, copy_decl_no_change): Export.
5217 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5218 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5219 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5220
5221 * c-tree.h (insert_block): Kill.
5222 * c-decl.c (insert_block): Kill.
9ff420f1 5223
d2784db4
PB
52242008-04-03 Paolo Bonzini <bonzini@gnu.org>
5225
6b0c2336
JH
5226 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5227 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5228 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5229 argument.
5230 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5231 argument, call {push,pop}_function_context from here.
5232 * c-parser.c: Use c_{push,pop}_function_context.
5233
5234 * function.c (push_function_context_to): Move meat ...
5235 (push_function_context): ... here. Simplify.
5236 * function.c (pop_function_context_from): Move meat ...
5237 (pop_function_context): ... here. Simplify.
5238 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5239 leave_nested).
5240 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5241 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5242 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5243 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2784db4 5244
9e0aebca
BE
52452008-04-03 Ben Elliston <bje@au.ibm.com>
5246
5247 * expmed.c (extract_force_align_mem_bit_field): Remove.
5248
55187c8a
RG
52492008-04-03 Richard Guenther <rguenther@suse.de>
5250
5251 PR middle-end/35800
5252 * expr.h (try_casesi): Adjust prototype.
5253 * expr.c (try_casesi): Take fallback label as extra parameter.
5254 Use that for gen_casesi if default_label is NULL.
5255 * stmt.c (expand_case): Pass fallback label to try_casesi,
5256 make sure to fill gaps with a fallback label if default_label
5257 is not present.
5258
d7087dd2
DH
52592008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
5260
5261 PR target/35801
5262 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5263
609023ff
BE
52642008-04-03 Ben Elliston <bje@au.ibm.com>
5265
5266 * expmed.c (extract_split_bit_field): Remove if (0) code.
5267 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5268 (do_ds_constraint): Likewise.
5269
93d45d9e
JM
52702008-04-02 Joseph Myers <joseph@codesourcery.com>
5271
5272 * doc/cppopts.texi (-dU): Document.
5273 * c-common.h (flag_dump_macros): Update comment.
5274 * c-opts.c (handle_OPT_d): Handle -dU.
5275 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5276 dump_queued_macros, cb_used_define, cb_used_undef): New.
5277 (init_pp_output): Handle -dU.
5278 (cb_line_change): Call dump_queued_macros.
5279 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5280
e6b69d0e
AS
52812008-04-02 Anatoly Sokolov <aesok@post.ru>
5282
5283 * config/avr/predicates.md (io_address_operand): New predicate.
5284 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5285 * config/avr/avr.c (avr_io_address_p): Remove function.
5286 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
5287 'avr_io_address_p' function.
5288 (out_movhi_r_mr): (Ditto.).
5289 (out_movqi_mr_r): (Ditto.).
5290 (out_movhi_mr_r): (Ditto.).
5291 (avr_address_cost): (Ditto.).
5292
7b198002
UB
52932008-04-02 Uros Bizjak <ubizjak@gmail.com>
5294
5295 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5296 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5297 in 32bit mode when XMM registers are available to avoid store
5298 forwarding stalls.
5299 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5300 corresponding post-reload splitters.
5301
abe08645
L
53022008-04-02 H.J. Lu <hongjiu.lu@intel.com>
5303
5304 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5305 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
5306 __builtin_ia32_roundss.
5307 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5308 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5309 __builtin_ia32_roundss.
5310 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5311 IX86_BUILTIN_SHUFPD here.
5312
94237c92
L
53132008-04-02 H.J. Lu <hongjiu.lu@intel.com>
5314
5315 * config/i386/i386.md (plogic): New.
5316 (plogicprefix): Likewise.
5317
5318 * config/i386/mmx.md (mmx_<code><mode>3): New.
5319 (mmx_and<mode>3): Removed.
5320 (mmx_ior<mode>3): Likewise.
5321 (mmx_xor<mode>3): Likewise.
5322
5323 * config/i386/sse.md (<code><mode>3): New.
5324 (*<code><mode>3): Likewise.
5325 (*<code><mode>3): Likewise.
5326 (<code><mode>3): Likewise.
5327 (*sse_<code><mode>3): Likewise.
5328 (*sse2_<code><mode>3): Likewise.
5329 (<code>tf3): Likewise.
5330 (*<code>tf3): Likewise.
5331 (and<mode>3): Likewise.
5332 (*and<mode>3): Likewise.
5333 (ior<mode>3): Removed.
5334 (*ior<mode>3): Likewise.
5335 (xor<mode>3): Likewise.
5336 (*xor<mode>3): Likewise.
5337 (*and<mode>3): Likewise.
5338 (*ior<mode>3): Likewise.
5339 (*xor<mode>3): Likewise.
5340 (and<mode>3): Likewise.
5341 (*sse_and<mode>3): Likewise.
5342 (*sse2_and<mode>3): Likewise.
5343 (andtf3): Likewise.
5344 (*andtf3): Likewise.
5345 (ior<mode>3): Likewise.
5346 (*sse_ior<mode>3): Likewise.
5347 (*sse2_ior<mode>3): Likewise.
5348 (iortf3): Likewise.
5349 (*iortf3): Likewise.
5350 (xor<mode>3): Likewise.
5351 (*sse_xor<mode>3): Likewise.
5352 (*sse2_xor<mode>3): Likewise.
5353 (xortf3): Likewise.
5354 (*xortf3): Likewise.
5355
b7814a18
RG
53562008-04-02 Richard Guenther <rguenther@suse.de>
5357
5358 PR tree-optimization/14495
5359 PR tree-optimization/34793
5360 * tree-vrp.c (struct switch_update): New structure.
5361 (to_remove_edges, to_update_switch_stmts): New VECs.
5362 (simplify_switch_using_ranges): New function. Remove not taken
5363 case labels and edges.
5364 (simplify_stmt_using_ranges): Call it.
5365 (identify_jump_threads): Mark edges we have queued for removal
5366 so we don't thread them.
5367 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5368 case label vector.
5369 * tree-cfg.c (group_case_labels): Deal with missing default label.
5370 (tree_verify_flow_info): Allow missing default label.
5371 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5372 (emit_case_nodes): Likewise.
5373 (expand_case): Do not rely on the default label to be present.
5374 * expr.c (try_casesi): Deal with NULL default_label.
5375 (do_tablejump): Likewise.
5376
8aea0bf0
RG
53772008-04-02 Richard Guenther <rguenther@suse.de>
5378
5379 PR tree-optimization/14495
5380 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5381 SWITCH_EXPR here ...
5382 (vrp_visit_switch_stmt): ... but here (new function).
5383 (find_case_label_index): New helper function.
5384 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5385
3f1c2278
PB
53862008-04-02 Paolo Bonzini <bonzini@gnu.org>
5387
5388 * fwprop.c: Fix ISO-C99ism.
5389
da0f6381
PB
53902008-04-02 Paolo Bonzini <bonzini@gnu.org>
5391
5392 PR bootstrap/35752
5393 * Makefile.in (objdir): Set it here.
5394 * configure.ac: Not here. Find dynamic linker characteristics.
5395 * exec-tool.in: Use them.
5396 * aclocal.m4: Regenerate.
5397 * configure: Regenerate.
5398
4846b435
PB
53992008-04-02 Paolo Bonzini <bonzini@gnu.org>
5400
5401 * expr.c (expand_var): Delete it.
5402 * expr.h (expand_var): Delete prototype.
5403 * function.c (expand_function_start): Use expand_decl instead.
5404 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5405 langhook.
5406
4fefbcdb
AH
54072008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
5408
5409 PR rtl-optimization/35542
5410 * fwprop.c (forward_propagate_and_simplify): Replace
5411 loc_reg_mentioned_in_p with reg_mentioned_p.
5412
460d667d
PB
54132008-04-02 Paolo Bonzini <bonzini@gnu.org>
5414
4fefbcdb 5415 PR rtl-optimization/35281
460d667d
PB
5416 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5417 (propagate_rtx_1): Handle PR_HANDLE_MEM.
5418 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5419 (varying_mem_p): Move above propagate_rtx.
5420 (all_uses_available_at): Do not check MEMs.
5421
a26a02d7
RAE
54222008-04-02 Rafael Espindola <espindola@google.com>
5423
5424 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5425 (register_edge_assert_for_2): Split the cond argument.
5426 (register_edge_assert_for_1): Adjust for the change in
5427 register_edge_assert_for_2.
5428 (register_edge_assert_for): Split the cond argument.
5429 (find_switch_asserts): Adjust for the change in
5430 register_edge_assert_for.
5431
e8930cc1
KT
54322008-04-02 Kai Tietz <kai.tietz@onevision.com>
5433
5434 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
b97d8153 5435 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
893125e0 5436 offsets for 64-bit mingw.
b97d8153 5437 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
893125e0 5438 abi for x86_64-pc-mingw.
e8930cc1 5439
70b7b037
RG
54402008-04-02 Richard Guenther <rguenther@suse.de>
5441
5442 * tree-vrp.c (extract_range_from_assert): Make sure to not
5443 produce range min/max with TREE_OVERFOW set.
5444 If merging a anti-range and a range keep the anti-range if
5445 the range covers all values of the type.
5446 (register_edge_assert_for_2): Only allow sign-changing
5447 conversions in detecting canonical range checks. Also
5448 register an assert for the unsigned name if useful.
5449
5450 PR tree-optimization/35787
5451 * tree-vrp.c (vrp_val_max): New function.
5452 (vrp_val_min): Likewise.
5453 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5454 (vrp_val_is_min): Likewise.
5455 (supports_overflow_infinity): Use vrp_val_{min,max}.
5456 (negative_overflow_infinity): Likewise.
5457 (positive_overflow_infinity): Likewise.
5458 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5459 (is_positive_overflow_infinity): Likewise.
5460 (is_overflow_infinity): Likewise.
5461 (avoid_overflow_infinity): Use vrp_val_{min,max} and
5462 vrp_val_is_{min,max}.
5463 (set_and_canonicalize_value_range): Canonicalize anti-ranges
5464 to ranges if possible. Avoid empty ranges.
5465
10743280
JDA
54662008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5467
5468 PR middle-end/35705
5469 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5470 the expression is a function address.
5471
7151ffbe
GH
54722008-04-01 George Helffrich <george@gcc.gnu.org>
5473
623f8e39 5474 PR fortran/35154, fortran/23057
7151ffbe
GH
5475 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5476 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5477 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5478 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5479 in common.
5480 (dbxout_syms): Check for COMMON-based symbol and wrap in
5481 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5482 in bracket for efficiency.
5483
5484 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5485 using DW_TAG_common_block + member offset.
5486 (add_pubname_string): New function.
5487 (dw_expand_expr): New function to find block name and offset for
5488 COMMON var.
5489 (common_check): New function to check whether symbol in Fortran COMMON.
5490 (gen_variable_die): If COMMON, use DW_TAG_common_block.
5491
dc197ab9
VR
54922008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
5493
5494 PR c/35436
5495 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5496
9e9b5341
BE
54972008-04-02 Ben Elliston <bje@au.ibm.com>
5498
5499 * config/v850/v850.md (casesi): Remove if (0) code.
5500 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5501 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5502
380edc9f
UB
55032008-04-01 Uros Bizjak <ubizjak@gmail.com>
5504
5505 * config/i386/i386.md (rex64suffix): New mode attribute.
5506 (floathi<mode>2): Disable expander for SSE math.
5507 (*floathi<mode>2_1): New insn insn_and_split pattern.
5508 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5509 corresponding post-reload splitters.
5510 (*floathi<mode>2_i387): New macroized insn pattern.
5511 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5512 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5513 insn_and_split pattern.
5514 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5515 New macroized instruction patterns and corresponding post-reload
5516 splitters.
5517 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5518 and corresponding post-reload splitters.
5519 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5520 New macroized instruction patterns.
5521 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5522 macroized instruction patterns and corresponding post-reload splitters.
5523 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5524 corresponding post-reload splitters.
5525 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5526 New macroized instruction patterns.
5527 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5528 corresponding post-reload splitters.
5529 (*floatsi<mode>2_i387): New macroized instruction patterns.
5530
78e8956b
L
55312008-04-01 H.J. Lu <hongjiu.lu@intel.com>
5532
5533 * config/i386/i386.md (smaxmin): New.
5534 (umaxmin): Likewise.
5535 (maxminiprefix): Likewise.
5536 (maxminfprefix): Likewise.
5537 (<code><mode>3): Likewise.
5538 (smin<mode>3): Removed.
5539 (smax<mode>3): Likewise.
5540
5541 * config/i386/mmx.md (mmx_<code>v2sf3): New.
5542 (mmx_<code>v4hi3): Likewise.
5543 (mmx_<code>v8qi3): Likewise.
5544 (mmx_smaxv2sf3): Removed.
5545 (mmx_sminv2sf3): Likewise.
5546 (mmx_umaxv8qi3): Likewise.
5547 (mmx_smaxv4hi3): Likewise.
5548 (mmx_uminv8qi3): Likewise.
5549 (mmx_sminv4hi3): Likewise.
5550
5551 * config/i386/sse.md (<addsub><mode>3): New.
5552 (*<addsub><mode>3): Likewise.
5553 (<sse>_vm<addsub><mode>3): Likewise.
5554 (<maxmin><mode>3): Likewise.
5555 (*<maxmin><mode>3_finite): Likewise.
5556 (*<maxmin><mode>3): Likewise.
5557 (<sse>_vm<maxmin><mode>3): Likewise.
5558 (sse3_h<addsub>v4sf3): Likewise.
5559 (sse3_h<addsub>v2df3): Likewise.
5560 (<maxmin>v16qi3): Likewise.
5561 (*<maxmin>v16qi3): Likewise.
5562 (<maxmin>v8hi3): Likewise.
5563 (*<maxmin>v8hi3): Likewise.
5564 (*sse4_1_<maxmin><mode>3): Likewise.
5565 (*sse4_1_<maxmin><mode>3): Likewise.
5566 (add<mode>3): Removed.
5567 (*add<mode>3): Likewise.
5568 (<sse>_vmadd<mode>3): Likewise.
5569 (sub<mode>3): Likewise.
5570 (*sub<mode>3): Likewise.
5571 (<sse>_vmsub<mode>3): Likewise.
5572 (smin<mode>3): Likewise.
5573 (*smin<mode>3_finite): Likewise.
5574 (*smin<mode>3): Likewise.
5575 (<sse>_vmsmin<mode>3): Likewise.
5576 (smax<mode>3): Likewise.
5577 (*smax<mode>3_finite): Likewise.
5578 (*smax<mode>3): Likewise.
5579 (<sse>_vmsmax<mode>3): Likewise.
5580 (sse3_haddv4sf3): Likewise.
5581 (sse3_haddv2df3): Likewise.
5582 (sse3_hsubv4sf3): Likewise.
5583 (sse3_hsubv2df3): Likewise.
5584 (umaxv16qi3): Likewise.
5585 (*umaxv16qi3): Likewise.
5586 (smaxv8hi3): Likewise.
5587 (*smaxv8hi3): Likewise.
5588 (*sse4_1_smax<mode>3): Likewise.
5589 (*sse4_1_umax<mode>3): Likewise.
5590 (uminv16qi3): Likewise.
5591 (*uminv16qi3): Likewise.
5592 (sminv8hi3): Likewise.
5593 (*sminv8hi3): Likewise.
5594 (*sse4_1_smin<mode>3): Likewise.
5595 (*sse4_1_umin<mode>3): Likewise.
5596
220f1c29
RAE
55972008-04-01 Rafael Espindola <espindola@google.com>
5598
5599 * tree-cfg.c (verify_expr): remove in_phi.
78e8956b 5600 (verify_stmt): Don't call walk_tree with verify_expr. Use
220f1c29
RAE
5601 is_gimple_min_invariant instead of is_gimple_val.
5602
7f9766e4
JM
56032008-04-01 Joseph Myers <joseph@codesourcery.com>
5604
5605 * doc/include/gpl_v3.texi: Update for manpage generation.
5606 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5607 gpl.texi.
5608 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5609 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5610 gpl_v3.texi instead of gpl.texi.
5611 (gpl.pod): New.
5612
d4c32e1d
JJ
56132008-04-01 Jakub Jelinek <jakub@redhat.com>
5614
5615 PR pch/13675
5616 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5617
764a79ed
RAE
56182008-04-01 Rafael Espindola <espindola@google.com>
5619
5620 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5621 (extract_code_and_val_from_cond): Use
5622 extract_code_and_val_from_cond_with_ops.
5623
113c63b8
JH
56242008-04-01 Jan Hubicka <jh@suse.cz>
5625
5626 * function.c (free_after_compilation): Free epilogue_delay_list.
5627 (prepare_function_start): Assert that previous compilation was freed.
5628
ec24c3a3
JH
56292008-04-01 Jan Hubicka <jh@suse.cz>
5630 Jim Wilson <wilson@tuliptree.org>
5631 Andreas Tobler <andreast@gcc.gnu.org>
5632
5633 PR middle-end/35781
5634 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5635 rtl.emit instead cfun->emit.
5636 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5637 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5638
1b82c3aa
BE
56392008-04-01 Ben Elliston <bje@au.ibm.com>
5640
5641 * doc/c-tree.texi (Function Basics): Fix grammatical error.
5642
2f908293
SP
56432008-03-31 Seongbae Park <seongbae.park@gmail.com>
5644
5645 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5646 New options
5647 (fprofile-use): Add var flag_profile_use
380edc9f
UB
5648 * coverage.c (coverage_begin_output): Do not open a gcno file for
5649 output only if -ftest-coverage is set.
2f908293 5650 Do not add getpwd() to gcda file path.
380edc9f 5651 (build_gcov_info): Check the new flag
2f908293
SP
5652 flag_profile_datafile_relative_path.
5653 (coverage_init): Use profile_data_prefix.
5654 Read profile counter only if flag_profile_use is set.
5655 * opts.c (common_handle_option): New option fprofile-use=,
5656 fprofile-dir=, fprofile-generate=.
5657 * toplev.c (profile_data_prefix): New variable definition.
5658 * toplev.h (profile_data_prefix): New declaration.
5659 * doc/invoke.tex (Option Summary, Optimization Options):
5660 Add new options.
5661
1def9c3f
JW
56622008-03-31 James E. Wilson <wilson@tuliptree.org>
5663
380edc9f
UB
5664 * varasm.c (output_constant_pool_1): In LABEL_REF check,
5665 use tmp consistently.
048ffb8f 5666
1def9c3f
JW
5667 PR target/35695
5668 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5669 * config/ia64/ia64.c (rtx_needs_barrier): Handle
5670 UNSPEC_FR_RECIP_APPROX_RES.
5671 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5672
bb686a19
VR
56732008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
5674
5675 PR c/35750
5676 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5677
a12bdb97
AP
56782008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
5679
5680 PR middle-end/30186
5681 * fold-const.c (fold_indirect_ref_1): Support accessing non first
5682 element of the vector via a pointer.
5683
2d4bba80
ILT
56842008-03-31 Ian Lance Taylor <iant@google.com>
5685
380edc9f 5686 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2d4bba80 5687
bd60bab2
JH
56882008-03-31 Jan Hubicka <jh@suse.cz>
5689
5690 * builtins.c (expand_builtin_setjmp_receiver): Update call of
5691 get_arg_pointer_save_area.
5692 * expr.c (init_expr): Just clear out rtl.expr.
5693 * function.c (free_after_compilation): Clear out whole RTL structure.
5694 (get_func_frame_size): Merge into ...
5695 (get_frame_size): ... this one.
5696 (assign_stack_local_1): Merge into ...
5697 (assign_stack_local): ... this one.
5698 (expand_function_end): Update call of get_arg_pointer_save_area.
5699 (get_art_pointer_save_area): Remove cfun argument.
5700 * function.h (emit_status): regno_pointer_align does not need length
5701 attribute. Move x_regno_reg_rtx to ...
5702 (regno_reg_rtx): ... new global array.
5703 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5704 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
380edc9f
UB
5705 apply_args_value, forced_labels, stack_pointer_delta):
5706 Update accestors.
bd60bab2
JH
5707 (struct varasm_status): Move here from varasm.c
5708 (struct rtl_data): New. Move here some fields from struct function.
5709 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5710 frame_offset, stack_check_probe_note, arg_pointer_save_area,
5711 used_temp_slots avail_temp_slots, temp_slot_level,
5712 nonlocal_goto_handler_labels): Update accesstors.
5713 (rtl): New global variable.
5714 (struct function): Move some fileds to rtl_data.
5715 (get_arg_pointer_save_area): Update prototype.
5716 * emit-rtl.c (rtl): Declare.
5717 (regno_reg_rtx): Declare.
380edc9f
UB
5718 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5719 Update.
bd60bab2
JH
5720 (gen_reg_rtx): Update.
5721 (init_virtual_regs): Do not tate emit_status argument.
5722 (init_emit): Do not allocate emit.
5723 * varasm.c (varasm_statuc): Move to function.h.
5724 (n_deferred_constatns): Update accestor.
5725 (init_varasm_status): Do not allocate varasm_status.
5726 (force_const_mem, get_pool_size, output_constant_pool): Update.
5727 * stmt.c (force_label_rtx): Do not use x_ prefixes.
5728 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5729
66f91b93
ZD
57302008-03-31 Zdenek Dvorak <ook@ucw.cz>
5731
5732 PR rtl-optimization/35729
5733 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5734 references.
5735
66e1ecfe
L
57362008-03-31 H.J. Lu <hongjiu.lu@intel.com>
5737
5738 PR target/32000
5739 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5740 load/store if memory is unaligned.
5741 (*movti_rex64): Likewise.
5742
5743 * config/i386/predicates.md (misaligned_operand): New.
5744
550386ad
AP
57452008-03-31 Andrew Pinski <pinskia@gmail.com>
5746
5747 PR tree-opt/35431
5748 * tree-ssa-phiopt.c (conditional_replacement): Return early for
5749 complex types.
5750
4e483a22
JB
57512008-03-31 Jan Beulich <jbeulich@novell.com>
5752
5753 * config/ia64/constraints.md: Add 'j' constraint.
5754 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5755 (movdi_internal): Likewise.
5756
39ffbac9
VR
57572008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
5758
5759 PR c/35748
5760 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5761
23594c97
L
57622008-03-30 H.J. Lu <hongjiu.lu@intel.com>
5763
5764 PR target/35757
5765 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5766 proper error message for the third argument on blendpd and
5767 blendps.
5768
5769 * config/i386/sse.md (blendbits): New.
5770 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5771
8f0e2671
EB
57722008-03-30 Eric Botcazou <ebotcazou@adacore.com>
5773
5774 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5775
96648603
RG
57762008-03-30 Richard Guenther <rguenther@suse.de>
5777
5778 PR middle-end/31023
5779 * fold-const.c (fold_sign_changed_comparison): Do leave
5780 conversions to base-types alone.
5781
3ac0963a
AP
57822008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
5783
5784 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5785 the link register if one altivec register is be saved.
5786
744c6d6e
BE
57872008-03-30 Ben Elliston <bje@au.ibm.com>
5788
5789 * final.c (final_scan_insn): Remove if (0) code.
5790
dbc518f0
VR
57912008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
5792
5793 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5794
ad387dad
L
57952008-03-28 H.J. Lu <hongjiu.lu@intel.com>
5796
5797 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5798 of V4SFmode to ix86_binary_operator_ok.
5799
9aba5d22
UB
58002008-03-28 Uros Bizjak <ubizjak@gmail.com>
5801
5802 * config/i386/i386.c (override_options): Initialize
5803 ix86_veclib_handler to ix86_veclibabi_svml when
5804 -mveclibabi=svml is used.
5805 (ix86_veclibabi_svml): New function for SVML ABI style
5806 vectorization support.
5807 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5808
2d3cd5d5
RAE
58092008-03-28 Rafael Espindola <espindola@google.com>
5810
5811 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5812 (tree_binary_nonnegative_warnv_p): Make it public.
5813 (tree_single_nonnegative_warnv_p): Make it public.
5814 (tree_invalid_nonnegative_warnv_p): Make it public.
5815 (tree_unary_nonzero_warnv_p): Make it public.
5816 (tree_binary_nonzero_warnv_p): Make it public
5817 (tree_single_nonzero_warnv_p): Make it public.
5818 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5819 (extract_range_from_binary_expr): Split the expr argument.
5820 (extract_range_from_unary_expr): Split the expr argument.
5821 (extract_range_from_comparison): Split the expr argument.
5822 (extract_range_from_expr): Use the new aux functions.
5823 (vrp_evaluate_conditional_warnv): Use
5824 vrp_evaluate_conditional_warnv_with_ops.
5825 * tree.h (tree_unary_nonzero_warnv_p): Declare.
5826 (tree_binary_nonzero_warnv_p): Declare.
5827 (tree_single_nonzero_warnv_p): Declare.
5828 (tree_expr_nonzero_warnv_p): Declare.
5829 (tree_unary_nonnegative_warnv_p): Declare.
5830 (tree_binary_nonnegative_warnv_p): Declare.
5831 (tree_single_nonnegative_warnv_p): Declare.
5832 (tree_invalid_nonnegative_warnv_p): Declare.
5833
2ab8dbf4
RG
58342008-03-28 Richard Guenther <rguenther@suse.de>
5835
5836 PR tree-optimization/30317
5837 PR tree-optimization/30911
5838 PR tree-optimization/34793
5839 * tree-vrp.c (set_and_canonicalize_value_range): New function.
5840 (struct assert_locus_d): New member EXPR.
5841 (register_new_assert_for): Add EXPR parameter to support
5842 ASSERT_EXPR <name, expr OP limit>.
5843 (register_edge_assert_for_1): Adjust callers.
5844 (find_assert_locations): Likewise.
9aba5d22 5845 (process_assert_insertions_for): Build condition from expression.
2ab8dbf4
RG
5846 (extract_range_from_assert): Handle ASSERT_EXPRs
5847 of the form ASSERT_EXPR <name, expr OP limit>.
5848 (register_edge_assert_for_2): New helper registering
5849 asserts for comparisons. Recognize range tests of the form
5850 (unsigned)i - CST1 OP CST2.
5851 (register_edge_assert_for_1): Use it.
5852 (register_edge_assert_for): Likewise.
5853 (needs_overflow_infinity): Integer sub-types
5854 do not need overflow infinities.
5855 (vrp_val_is_max): The extreme values of integer sub-types
5856 are those of the base type.
5857 (vrp_val_is_min): Likewise.
5858 * tree.def (ASSERT_EXPR): Document extra allowed conditional
5859 expressions.
5860
fc4f3261
NC
58612008-03-28 Nick Clifton <nickc@redhat.com>
5862
f6d2671e 5863 PR target/31110
fc4f3261 5864 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9aba5d22 5865 Return GENERAL_REGS for stack adjustment reloads.
fc4f3261 5866
501fb355
AP
58672008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
5868
5869 PR target/31334
5870 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5871 const_vector when all the vectors are constant.
5872
ff779f98
BW
58732008-03-27 Bob Wilson <bob.wilson@acm.org>
5874
5875 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5876 comparisons.
5877 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5878 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5879 (scc_sf): New.
5880 (s<code>_sf): Use new scc_sf attribute for opcode names.
5881
e980df8e
TT
58822008-03-27 Tom Tromey <tromey@redhat.com>
5883
5884 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5885 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5886 config/spu/t-spu-elf, config/i386/t-interix,
5887 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5888 config/i386/x-darwin, config/i386/x-mingw32,
5889 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5890 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5891 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5892 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5893 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5894 config/rs6000/x-darwin, config/rs6000/t-rs6000,
5895 config/score/t-score-elf, config/arm/t-strongarm-pe,
5896 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5897 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5898 Revert automatic dependency patch.
5899
c84555eb
L
59002008-03-27 H.J. Lu <hongjiu.lu@intel.com>
5901
5902 PR target/35657
5903 * config/i386/i386.c (ix86_function_arg_boundary): Align
5904 decimal floating point to its natural boundary.
5905
ffd837fe
RG
59062008-03-27 Richard Guenther <rguenther@suse.de>
5907
5908 PR middle-end/35716
5909 * fold-const.c (fold_comparison): Restrict distinct decl
5910 comparison folding to VAR_DECLs and PARM_DECLs. Do not
5911 solely rely on operand_equal_p.
5912
6b4e94bc
RG
59132008-03-27 Richard Guenther <rguenther@suse.de>
5914
5915 PR c/32511
5916 * c-common.c (handle_weak_attribute): Reject combination of
5917 weak and inline.
5918
62bc00e2
RG
59192008-03-27 Richard Guenther <rguenther@suse.de>
5920
5921 PR tree-optimization/32810
5922 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5923 conversions from DECL_INITIAL.
5924 (fold_const_aggregate_ref): Likewise from constructor elements.
5925
72425608
ZD
59262008-03-27 Zdenek Dvorak <ook@ucw.cz>
5927
5928 * tree-affine.h (aff_combination_expand): Declare.
5929 (get_inner_reference_aff): Likewise.
5930 * tree-affine.c (aff_combination_expand): Split out from
5931 tree_to_aff_combination_expand.
5932 (get_inner_reference_aff): New function.
5933 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9aba5d22
UB
5934 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5935 (struct lim_aux_data): sm_done field removed.
5936 (mem_ref_loc_p, mem_ref_locs_p): New types.
5937 (struct mem_ref): Added id, stored, accesses_in_loop,
5938 indep_loop, dep_loop, indep_ref, dep_ref fields.
5939 Removed is_stored, locs and next fields.
5940 (memory_accesses): New variable.
5941 (movement_possibility): Do not allow moving statements
5942 that store to memory.
5943 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5944 New functions.
5945 (determine_max_movement): For statements with memory references,
5946 find the outermost loop in that the reference is independent.
5947 (move_computations_stmt): Mark the virtual operands for renaming.
5948 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5949 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5950 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5951 add_vop_ref_mapping, create_vop_ref_mapping_loop,
5952 create_vop_ref_mapping, analyze_memory_references,
5953 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5954 get_all_locs_in_loop, ref_always_accessed_p,
5955 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5956 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5957 store_motion_loop, store_motion): New functions.
5958 (struct vop_to_refs_elt): New type.
5959 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5960 memref_hash, memref_eq, hoist_memory_references): Rewritten.
5961 (schedule_sm): Replaced by...
5962 (execute_sm): ... this.
5963 (determine_lsm_ref, hoist_memory_references,
5964 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5965 find_more_ref_vops, free_mem_ref, free_mem_refs,
5966 determine_lsm_loop, determine_lsm): Removed.
5967 (tree_ssa_lim_finalize): Free data structures used by store motion.
5968 (tree_ssa_lim): Call analyze_memory_references. Use
5969 store_motion instead of determine_lsm.
72425608 5970
a929bc28
PB
59712008-03-27 Paolo Bonzini <bonzini@gnu.org>
5972
5973 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5974 rename tmake_file to m68hc11/t-m68hc11.
5975 (mcore): Set inhibit_libc to true.
5976 * config.host (alpha*-dec-*vms*): Set extra_programs.
5977 (interix3*): Don't use host_xmake_file.
5978 * configure.ac: Let config.gcc override inhibit_libc.
5979 * configure: Regenerate.
5980
5981 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5982 * config/t-openbsd-thread: Remove commented out lines.
5983
5984 * config/x-interix: Remove.
5985
5986 * config/m68hc11/t-m68hc11-gas: Rename to...
5987 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
5988
5989 * config/mcore/t-mcore: Remove T_CFLAGS.
5990 * config/mcore/t-mcore-pe: Likewise.
5991
60d26958
PB
59922008-03-27 Paolo Bonzini <bonzini@gnu.org>
5993
5994 * configure.ac: Replace custom __GNU_SOURCE test with
5995 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
5996 * aclocal.m4: Regenerate.
5997 * configure: Regenerate.
5998 * config.in: Regenerate.
5999
bd03c084
RG
60002008-03-27 Richard Guenther <rguenther@suse.de>
6001
6002 * fold-const.c (target.h): Include.
6003 (fold_comparison): Fold comparison of addresses of decls
6004 that bind locally or of constants. Consolidate address folding code.
6005 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
6006 results from fold_binary_to_constant.
6007 (compare_values_warnv): Likewise.
6008
87a72aa8
AP
60092008-03-27 Andrew Pinski <pinskia@gmail.com>
6010
6011 PR middle-end/35429
6012 * fold-const.c (fold_truthop): Check for integeral types when folding
6013 a == 0 && b == 0 and a != 0 || b != 0 .
6014
6e1b3420
EB
60152008-03-26 Eric Botcazou <ebotcazou@adacore.com>
6016
6017 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
6018
33558d94
AS
60192008-03-26 Andreas Schwab <schwab@suse.de>
6020
6021 * doc/invoke.texi: Fix use of @item vs. @itemx.
6022
f6a9a9af
TT
60232008-03-26 Tom Tromey <tromey@redhat.com>
6024
6025 * Makefile.in (build/gensupport.o, build/print-rtl.o,
6026 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
6027 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
6028 build/gencodes.o, build/genconditions.o, build/genconfig.o,
6029 build/genconstants.o, build/genemit.o, build/genextract.o,
6030 build/genflags.o, build/genmddeps.o, build/genopinit.o,
6031 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
6032 options.h.
6033
2041e75c
RG
60342008-03-26 Richard Guenther <rguenther@suse.de>
6035
6036 Revert
6037 2008-03-26 Richard Guenther <rguenther@suse.de>
6038
6039 * fold-const.c (target.h): Include.
6040 (fold_comparison): Fold comparison of addresses of two decls
6041 that bind locally. Consolidate address folding code.
6042
aefa9d43
KG
60432008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6044
6045 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
6046 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
6047 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
6048 dconstsqrt2, dconstthird, dconste and/or dconst10.
6049 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
6050 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
6051 dconstsqrt2, dconste): Delete.
6052 (init_emit_once): Likewise. Simplify initializing dconstm1.
6053 Constify variable.
6054 * real.c (get_real_const): New.
6055 * real.h (dconst3, dconst10, dconstm2, dconstthird,
6056 dconstsqrt2, dconste): Delete.
6057 (real_value_const, get_real_const): New.
6058
35dd7cc3
L
60592008-03-26 H.J. Lu <hongjiu.lu@intel.com>
6060
6061 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
6062
6063 * config/i386/i386.c (ix86_function_arg_boundary): Check
6064 BIGGEST_ALIGNMENT instead of 128.
6065 (setup_incoming_varargs_64): Likewise.
6066
f91ed78d
TT
60672008-03-26 Tom Tromey <tromey@redhat.com>
6068
6069 * Makefile.in (DEPFILES): Add missing '/'.
6070
4990038d
RG
60712008-03-26 Richard Guenther <rguenther@suse.de>
6072
6073 * fold-const.c (target.h): Include.
6074 (fold_comparison): Fold comparison of addresses of two decls
6075 that bind locally. Consolidate address folding code.
6076
813ab1d7
NC
60772008-03-26 Nick Clifton <nickc@redhat.com>
6078
6079 PR target/31232
6080 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
6081 not allow INT+INT as a legitimate addressing mode.
6082
cf3135aa
RG
60832008-03-26 Richard Guenther <rguenther@suse.de>
6084
6085 * tree-flow.h (widen_bitfield): Remove declaration.
6086 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
6087 (widen_bitfield): Remove function.
6088 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
6089 code.
6090
fd88fd09
AP
60912008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
6092
22ec849c 6093 PR target/31558
fd88fd09
AP
6094 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
6095 error_mark_node's.
6096
fb959f72
RS
60972008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
6098
6099 PR rtl-optimization/35232
6100 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
6101 (forget_old_reloads_1, forget_marked_reloads): Don't clear
6102 reg_reloaded_call_part_clobbered here.
6103 (reload_regs_reach_end_p): New function.
6104 (reload_reg_rtx_for_input): New variable.
6105 (reload_reg_rtx_for_output): Likewise.
6106 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
6107 when reassigning a pseudo register. Load reloadreg from
6108 reload_reg_rtx_for_input, moving the mode and register
6109 calculation to...
6110 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
6111 instead of the original when deciding whether an input reload
6112 would be a no-op or whether an output reload can be deleted.
6113 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
6114 when setting up new_spill_reg_store. Load it from
6115 reload_reg_rtx_for_output, moving the mode and register
6116 calculation to...
6117 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
6118 instead of the original when deciding whether an output reload
6119 would be a no-op. Do the same when modifying insn notes.
6120 Use rtx_equal_p instead of == to compare the registers.
6121 (inherit_piecemeal_p): Take a mode and two register numbers
6122 as argument.
6123 (emit_reload_insns): Clear new_spill_reg_store for every hard
6124 register in the reload register. Remove spill registers
6125 from reg_reloaded_valid before considering whether to record
6126 inheritance information for them. Use reload_reg_rtx_for_output
6127 instead of reg_rtx when recording output reloads. Use
6128 reload_reg_rtx_for_input instead of reg_rtx when recording
6129 input reloads. Set or clear reg_reloaded_call_part_clobbered
6130 at the same time as setting reg_reloaded_valid.
6131 (delete_output_reload): Add a new_reload_reg parameter and use it
6132 instead of rld[j].reg_rtx.
6133 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
6134 calls accordingly.
6135
a8c86f3f
TT
61362008-03-25 Tom Tromey <tromey@redhat.com>
6137
6138 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
6139 (build/genattr.o): Likewise.
6140 (build/genattrtab.o): Likewise.
6141 (build/gencodes.o): Likewise.
6142 (build/genconfig.o): Likewise.
6143 (build/genconstants.o): Likewise.
6144 (build/genemit.o): Likewise.
6145 (build/genextract.o): Likewise.
6146 (build/genflags.o): Likewise.
6147
f4d3e7fd
BW
61482008-03-25 Bob Wilson <bob.wilson@acm.org>
6149
6150 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
6151 instead of size_int for integer types.
6152 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
6153 to match type of MINUS_EXPR.
6154
55d059d3
TT
61552008-03-25 Tom Tromey <tromey@redhat.com>
6156
6157 * configure: Rebuilt.
6158 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
6159 Makefile.
6160
2fe3178b
TT
61612008-03-25 Tom Tromey <tromey@redhat.com>
6162
6163 * config/x-solaris (host-solaris.o): Update.
6164 * config/x-linux (host-linux.o): Update.
6165 * config/x-hpux (host-hpux.o): Update.
6166 * config/x-darwin (host-darwin.o): Update.
6167 * config/v850/t-v850e (v850-c.o): Update.
6168 * config/v850/t-v850 (v850-c.o): Update.
6169 * config/t-vxworks (vxworks.o): Update.
6170 * config/t-sol2 (sol2-c.o, sol2.o): Update.
4acc3f42 6171 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2fe3178b
TT
6172 * config/spu/t-spu-elf (spu-c.o): Update.
6173 (spu.o): Remove.
6174 * config/sh/t-symbian (sh-c.o): Update.
6175 (symbian.o): Update.
6176 * config/sh/t-sh (sh-c.o): Update.
6177 * config/score/t-score-elf (score7.o, score3.o): Update.
6178 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
6179 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
6180 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6181 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6182 (rs6000.o): Remove.
6183 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6184 * config/m32c/t-m32c (m32c-pragma.o): Update.
6185 * config/ia64/t-ia64 (ia64-c.o): Update.
6186 * config/i386/x-mingw32 (host-mingw32.o): Update.
6187 * config/i386/x-i386 (driver-i386.o): Update.
6188 * config/i386/x-darwin (host-i386-darwin.o): Update.
6189 * config/i386/x-cygwin (host-cygwin.o): Update.
6190 * config/i386/t-nwld (nwld.o): Update.
6191 * config/i386/t-netware (netware.o): Update.
6192 * config/i386/t-interix (winnt.o): Update.
6193 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6194 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6195 msformat-c.o): Update.
6196 * config/bfin/t-bfin-linux (generated_files): Add
6197 linux-sysroot-suffix.h.
6198 * config/arm/t-wince-pe (pe.o): Update.
6199 * config/arm/t-strongarm-pe (pe.o): Update.
6200 * config/arm/t-pe (pe.o): Update.
6201 * config/arm/t-arm (arm-c.o): Update.
6202 * doc/install.texi (Prerequisites): Require make 3.80.
6203 * Makefile.in: Remove .o targets.
6204 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6205 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6206 (simple_generated_h, simple_generated_c): Move earlier.
6207 (generated_files): New variable.
6208 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6209 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6210 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6211 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6212 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6213 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6214 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6215 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6216 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6217 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6218 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6219 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6220 (.c.o): Remove.
6221 (COMPILE.base, COMPILE): New variables.
6222 (%.o): New pattern rule.
6223 (ALL_HOST_OBJS): New variable.
6224 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6225 (dummy-checksum.o, cc1-checksum.o): Remove.
6226 (DRIVER_SHLIB): New variable.
6227 (DRIVER_DEFINES): Use it.
6228 (gencondmd.c): Move out of build/.
6229 (s-conditions): Update.
6230 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6231 (ALL_BUILD_OBJS): Likewise.
6232 (build/%.o): Use BUILDCOMPILE.
6233 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6234 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6235 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6236 build/gencheck.o, build/gencodes.o, build/genconditions.o,
6237 build/genconfig.o, build/genconstants.o, build/genemit.o,
6238 build/genextract.o, build/genflags.o, build/genmddeps.o,
6239 build/genopinit.o, build/genoutput.o, build/genpeep.o,
6240 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6241 build/gen-protos.o, build/scan.o, build/fix-header.o,
6242 build/scan-decls.o): Simplify.
6243 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6244 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6245 prefix.o, toplev.o): Reduce to variable setting.
4acc3f42 6246 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
2fe3178b 6247 ($(out_object_file), gcc-options.o): New targets.
4acc3f42 6248 ($(ALL_HOST_OBJS)): New target. Include dependency files.
2fe3178b 6249 * configure: Rebuilt.
4acc3f42
UB
6250 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6251 * doc/sourcebuild.texi (Front End Directory): Document new variable.
2fe3178b 6252
5ade1ed2
DG
62532008-03-25 Douglas Gregor <doug.gregor@gmail.com>
6254
4acc3f42
UB
6255 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6256 complain when we hit an error, return ERROR_MARK_NODE.
5ade1ed2 6257
de6adfa2
N
62582008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
6259
6260 * config/sh/constraints.md (Pso, Psz): New constraints.
6261 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6262 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6263
f326a6cb
N
62642008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
6265
4acc3f42 6266 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
f326a6cb
N
6267 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6268
b4b0018b
N
62692008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
6270
6271 * config/sh/sh.md (prefetch): Add condition for SH2A target.
6272 (prefetch_sh2a): New.
6273
e990551a
JS
62742008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
6275 Naveen.H.S <naveen.hs@kpitcummins.com>
6276
6277 * config/sh/constraints.md (I28): New constraint.
6278 * config/sh/sh.c (broken_move): Add support for movi20s.
4acc3f42 6279 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
e990551a 6280
561642fa
AP
62812008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
6282 Jayant Sonar <Jayant.sonar@kpitcummins.com>
6283 Naveen.H.S <naveen.hs@kpitcummins.com>
6284
6285 * config/sh/sh.c (SH_ATTRIBUTES): Define.
6286 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6287 (print_operand): Handle resbank in %@ operand code.
6288 (sh_encode_section_info): New.
6289 (push_regs): Add conditions for resbank.
6290 (sh_expand_epilogue): Likewise.
6291 (sh_insert_attributes): Likewise.
6292 (sh_attribute_table): Likewise.
6293 (sh_handle_resbank_handler_attribute): New.
6294 (sh2a_handle_function_vector_handler_attribute): New.
6295 (sh2a_is_function_vector_call): New.
6296 (sh2a_get_function_vector_number): New.
6297 (sh2a_function_vector_p): New.
6298 (sh_cfun_resbank_handler_p): New.
6299 * config/sh/sh.md (calli): Emit jsr/n if possible.
6300 (calli_tbr_rel): New.
6301 (calli_pcrel): Emit jsr/n if possible.
6302 (return_i): Emit rts/n if possible.
6303 (call_valuei_tbr_rel): New.
6304 (call_valuei_pcrel): Add condition for SH2A target.
6305 (call_value): Likewise.
6306 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6307 (sh2a_get_function_vector_number): Likewise.
6308 (sh2a_is_function_vector_call): Likewise.
6309 * doc/extend.texi: Document TBR relative addressing of SH2A.
6310 (resbank): Add description for SH2A.
6311
1b24a790
RG
63122008-03-24 Richard Guenther <rguenther@suse.de>
6313
6314 PR c/22371
6315 * gimplify.c (gimplify_modify_expr): For frontend type-correct
6316 pointer assignments change conversions according to middle-end rules.
6317 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6318 * configure.ac: Include type checking in yes.
6319 * configure: Regenerate.
6320
52249a2e
MLI
63212008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6322
6323 * diagnostic.c (diagnostic_count_diagnostic): Delete.
6324 (diagnostic_report_diagnostic): Update. Handle ICEs here.
6325
37ca4602
NS
63262008-03-24 Nathan Sidwell <nathan@codesourcery.com>
6327
6328 * gthr-vxworks.h (UNUSED): Define.
6329
2ff8644d
L
63302008-03-23 H.J. Lu <hongjiu.lu@intel.com>
6331
9aba5d22 6332 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2ff8644d 6333
1c42f5c6
ZM
63342008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
6335
6336 * doc/extend.texi (Function Attributes): Add missing comma in the
6337 example of the "alloc_size" attribute.
6338
808e68bb
UB
63392008-03-23 Uros Bizjak <ubizjak@gmail.com>
6340
6341 Revert:
6342 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
6343
6344 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6345 32bit host.
6346
6347 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
6348
6349 PR target/35496
6350 * stor-layout.c (update_alignment_for_field): Set minimum alignment
6351 of the underlying type of a MS bitfield layout to the natural
6352 alignment of the type.
6353
6354 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
6355
6356 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6357 to their natural alignment to avoid store forwarding stalls.
6358
1b738915
RG
63592008-03-22 Richard Guenther <rguenther@suse.de>
6360
6361 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6362 For PHI nodes verify the address is invariant.
6363 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6364 (get_symbol_constant_value): Use is_gimple_min_invariant.
6365 (maybe_fold_stmt_indirect): Likewise.
6366
18b526e8
RS
63672008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
6368
6369 PR rtl-optimization/33927
6370 * Makefile.in (dse.o): Depend on $(TM_P_H).
6371 * expr.h (extract_low_bits): Declare.
6372 * expmed.c (extract_low_bits): New function.
6373 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6374 * dse.c: Include tm_p.h.
6375 (find_shift_sequence): Remove the read_reg argument and return the
6376 read value. Emit the instructions instead of returning them.
6377 Iterate on new_mode rather than calculating it each time.
6378 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
6379 source to NEW_MODE and extract_low_bits to convert the shifted
6380 value to READ_MODE.
6381 (replace_read): Allow the load and store to have different mode
6382 classes. Use extract_low_bits when SHIFT == 0. Create the shift
6383 or extraction instructions before trying the replacement. Update
6384 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6385
48e55066
UB
63862008-03-22 Uros Bizjak <ubizjak@gmail.com>
6387
6388 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6389 to their natural alignment to avoid store forwarding stalls.
6390
94e98316
AP
63912008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
6392
e8afc0cb 6393 PR target/27946
94e98316
AP
6394 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6395 encouraging but not allowing gprs for input;
6396 change the input constraint to !f#r.
6397 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6398 gprs for output;
6399 change the output constraint to !f#r.
6400
7fb1431b
UB
64012008-03-21 Uros Bizjak <ubizjak@gmail.com>
6402
6403 PR target/13958
6404 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6405 corresponding post-reload splitters.
6406 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6407 when x87 FP math is selected.
6408 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6409 New function prototype.
6410 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6411 unreachable function to ease macroization of insn patterns.
6412
ed2024ba
MJ
64132008-03-21 Martin Jambor <mjambor@suse.cz>
6414
6415 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6416 reference dumps if ddr is NULL or dependence is unknown.
6417
06644a07
KK
64182008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
6419
6420 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6421 unsigned extension into account.
6422 (ATOMIC_COMPARE_AND_SWAP): Likewise.
6423 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6424 Do computations on a scratch register.
6425
ad6003f2
RG
64262008-03-21 Richard Guenther <rguenther@suse.de>
6427
6428 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6429 Use is_gimple_min_invariant instead of TREE_INVARIANT.
6430 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6431 * tree-ssa-dom.c (record_equality): Likewise.
6432 * tree-inline.c (copy_body_r): Likewise.
6433 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6434 TREE_INVARIANT.
6435
2acdc1fb
KK
64362008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
6437
6438 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6439 as 'delete_unused' argument.
6440
16ac8575
RG
64412008-03-20 Richard Guenther <rguenther@suse.de>
6442
6443 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6444 special casing of constant qualifiers.
6445 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6446 care about them in general.
6447 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6448 regardless of their type.
6449 (fold_stmt_r): Forcefully fold *& if we end up with that.
6450
433d52fd
PB
64512008-03-20 Paul Brook <paul@codesourcery.com>
6452
6453 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6454 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6455 linker flags.
6456 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6457 definition.
6458 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6459 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6460
7621f5d5
VR
64612008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
6462
6463 * common.opt (Wmudflap): New option.
6464 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6465 (mx_register_decls): Likewise.
6466 (mudflap_finish_file): Likewise.
6467 * doc/invoke.texi: Document -Wno-mudflap.
6468
64692008-03-20 Kai Tietz <kai.tietz@onevision.com>
6590fc9f
KT
6470
6471 * c-format.c (replace_format_name_to_system_name): New.
6472 (cmp_attribs): New.
6473 (convert_format_name_to_system_name): New.
6474 (decode_format_attr): Add use of convert_format_name_to_system_name.
6475 (format_types_orig): Add gnu_ prefix to names.
6476 (check_format_info_main): Special treating of \0 escaped names for
6477 supporting multi-character format specifiers as I32, I64.
6478 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6479 (gnu_target_overrides_format_attributes): New.
6480 * c-format.h: Add structure target_ovr_attr to hold
6481 system specific formatter names.
6482 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6483 msformat-c.o file to c_target_objs and cxx_target_objs.
6484 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6485 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6486 (TARGET_N_FORMAT_TYPES): New.
6487 * config/i386/msformat-c.c: New.
6488 * config/i386/t-cygming: Add build rule for msformat-c.o.
6489 * doc/extend.texi: Add new format names gnu_* and ms_* and
6490 further details.
6491 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6492
4e359692
IR
64932008-03-20 Ira Rosen <irar@il.ibm.com>
6494
6495 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6496 optimizations turned on under -O3.
6497 (ftree-vectorize): Add that the flag is turned on with -O3.
6498
41129be2
BE
64992008-03-20 Ben Elliston <bje@au.ibm.com>
6500
6501 * regmove.c (try_auto_increment): Fix spelling error in comment.
6502 * final.c (final_scan_insn): Likewise.
6503
1b1d8f88
UB
65042008-03-20 Uros Bizjak <ubizjak@gmail.com>
6505
6506 PR target/14552
6507 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6508 allocator preferences for "y" and "r" class registers.
6509 ("*mov<mode>_internal"): Ditto.
6510 ("*movv2sf_internal_rex64"): Ditto.
6511 ("*movv2sf_internal"): Ditto.
6512
05e6ee93
MM
65132008-03-19 Michael Matz <matz@suse.de>
6514
6515 PR middle-end/35616
6516 * calls.c (expand_call): Check overlap of arguments with call
6517 address for sibcalls.
6518
cd7e0bd4
UB
65192008-03-19 Uros Bizjak <ubizjak@gmail.com>
6520
6521 PR target/35496
6522 * stor-layout.c (update_alignment_for_field): Set minimum alignment
6523 of the underlying type of a MS bitfield layout to the natural
6524 alignment of the type.
6525
8ddbbcae
JH
65262008-03-19 Jan Hubicka <jh@suse.cz>
6527
6528 PR other/35094
6529 * toplev.c (decode_d_option): Handle all CPP flags.
6530 * tree-vrp.c: Update tree_pass descriptors.
6531 * regrename.c: Update tree_pass descriptors.
6532 * fwprop.c: Update tree_pass descriptors.
6533 * doc/invoke.texi: Remove documentation of dropped -d? flags.
6534 * tree-into-ssa.c: Update tree_pass descriptors.
6535 * tree-dump.c: Update tree_pass descriptors.
6536 * tree-complex.c: Update tree_pass descriptors.
6537 * tree-dump.h: Update tree_pass descriptors.
6538 * see.c: Update tree_pass descriptors.
6539 * cgraphbuild.c: Update tree_pass descriptors.
6540 * tracer.c: Update tree_pass descriptors.
6541 * tree-loop-distribution.c: Update tree_pass descriptors.
6542 * cgraph.c: Update tree_pass descriptors.
6543 * postreload-gcse.c: Update tree_pass descriptors.
6544 * postreload.c: Update tree_pass descriptors.
6545 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6546 * tree-tailcall.c: Update tree_pass descriptors.
6547 * tree-pass.h (tree_opt_pass): Rename to ...
6548 (opt_pass) ... this one; add "type" field and remove letter field.
6549 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6550 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6551 all_lowering_passes): Update declaration.
6552 * ipa-cp.c: Update tree_pass descriptors.
6553 * final.c: Update tree_pass descriptors.
6554 * omp-low.c: Update tree_pass descriptors.
6555 * tree-ssa-dse.c: Update tree_pass descriptors.
6556 * ipa-reference.c: Update tree_pass descriptors.
6557 * tree-ssa-uncprop.c: Update tree_pass descriptors.
6558 * auto-inc-dec.c: Update tree_pass descriptors.
6559 * reorg.c: Update tree_pass descriptors.
6560 * cgraphunit.c: Update tree_pass descriptors.
6561 * tree-ssa-copyrename.c: Update tree_pass descriptors.
6562 * tree-ssa-ccp.c: Update tree_pass descriptors.
6563 * df-core.c: Update tree_pass descriptors.
6564 * mode-switching.c: Update tree_pass descriptors.
6565 * tree-nomudflap.c: Update tree_pass descriptors.
6566 * modulo-sched.c: Update tree_pass descriptors.
6567 * ipa-pure-const.c: Update tree_pass descriptors.
6568 * cse.c: Update tree_pass descriptors.
6569 * web.c: Update tree_pass descriptors.
6570 * tree-stdarg.c: Update tree_pass descriptors.
6571 * tree-ssa-math-opts.c: Update tree_pass descriptors.
6572 * tree-ssa-dom.c: Update tree_pass descriptors.
6573 * tree-nrv.c: Update tree_pass descriptors.
6574 * tree-ssa-alias.c: Update tree_pass descriptors.
6575 * loop-init.c: Update tree_pass descriptors.
6576 * gimple-low.c: Update tree_pass descriptors.
6577 * ipa-inline.c: Update tree_pass descriptors.
6578 * tree-ssa-sink.c: Update tree_pass descriptors.
6579 * global.c: Update tree_pass descriptors.
6580 * ifcvt.c: Update tree_pass descriptors.
6581 * jump.c: Update tree_pass descriptors.
6582 * predict.c: Update tree_pass descriptors.
6583 * tree-ssa-loop.c: Update tree_pass descriptors.
6584 * recog.c: Update tree_pass descriptors.
6585 * dse.c: Update tree_pass descriptors.
6586 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6587 * tree-eh.c: Update tree_pass descriptors.
6588 * regmove.c: Update tree_pass descriptors.
6589 * local-alloc.c
6590 * function.c: Update tree_pass descriptors.
6591 * tree-vectorizer.c: Update tree_pass descriptors.
6592 * gcse.c: Update tree_pass descriptors.
6593 * ipa-type-escape.c: Update tree_pass descriptors.
6594 * tree-if-conv.c: Update tree_pass descriptors.
6595 * init-regs.c: Update tree_pass descriptors.
6596 * ipa.c: Update tree_pass descriptors.
6597 * tree-ssa-phiopt.c: Update tree_pass descriptors.
6598 * rtl-factoring.c: Update tree_pass descriptors.
6599 * lower-subreg.c: Update tree_pass descriptors.
6600 * bt-load.c: Update tree_pass descriptors.
6601 * tree-dfa.c: Update tree_pass descriptors.
6602 * except.c: Update tree_pass descriptors.
6603 * emit-rtl.c: Update tree_pass descriptors.
6604 * cfgexpand.c: Update tree_pass descriptors.
6605 * tree-cfgcleanup.c: Update tree_pass descriptors.
6606 * cfgcleanup.c: Update tree_pass descriptors.
6607 * tree-ssa-pre.c: Update tree_pass descriptors.
6608 * tree-sra.c: Update tree_pass descriptors.
6609 * tree-mudflap.c: Update tree_pass descriptors.
6610 * tree-ssa-copy.c: Update tree_pass descriptors.
6611 * cfglayout.c: Update tree_pass descriptors.
6612 * tree-ssa-forwprop.c: Update tree_pass descriptors.
6613 * tree-ssa-dce.c: Update tree_pass descriptors.
6614 * tree-ssa.c: Update tree_pass descriptors.
6615 * regclass.c: Update tree_pass descriptors.
6616 * integrate.c: Update tree_pass descriptors.
6617 * tree-optimize.c: Update tree_pass descriptors.
6618 * tree-ssa-phiprop.c: Update tree_pass descriptors.
6619 * tree-object-size.c: Update tree_pass descriptors.
6620 * combine.c: Update tree_pass descriptors.
6621 * tree-outof-ssa.c: Update tree_pass descriptors.
6622 * bb-reorder.c: Update tree_pass descriptors.
6623 * stack-ptr-mod.c: Update tree_pass descriptors.
6624 * var-tracking.c: Update tree_pass descriptors.
6625 * tree-profile.c: Update tree_pass descriptors.
6626 * tree-vect-generic.c: Update tree_pass descriptors.
6627 * reg-stack.c: Update tree_pass descriptors.
6628 * sched-rgn.c: Update tree_pass descriptors.
6629 * tree-ssa-structalias.c: Update tree_pass descriptors.
6630 * tree-cfg.c: Update tree_pass descriptors.
6631 * passes.c (current_pass): Update declaration.
6632 (finish_optimization_passes): Update.
6633 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6634 (register_one_dump_file, register_dump_files_1, next_pass_1):
6635 Update arguments.
6636 (init_optimization_passes): Update handling of new types.
6637 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6638 * ipa-struct-reorg.c: Update tree_pass descriptors.
6639 * tree-ssa-reassoc.c: Update tree_pass descriptors.
6640 * combine-stack-adj.c: Update tree_pass descriptors.
6641 * cfgrtl.c: Update tree_pass descriptors.
6642 * dce.c: Update tree_pass descriptors.
6643 * tree-ssanames.c: Update tree_pass descriptors.
6644
8cb3ee37
RG
66452008-03-19 Richard Guenther <rguenther@suse.de>
6646
6647 PR middle-end/35609
4990038d
RG
6648 * tree-ssa.c (walk_data): New structure.
6649 (warn_uninitialized_var): If not always_executed warn with "maybe"
8cb3ee37
RG
6650 instead of "is".
6651 (execute_early_warn_uninitialized): Compute post-dominators.
6652 Initialize always_executed before processing each basic block.
6653
34614fff
MP
66542008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
6655
6656 PR target/35504
6657 * config/i386/i386.c (x86_this_parameter): Calculate correct location
6658 of "this" pointer when "regparm = N" or "fastcall" is in effect.
6659
c15477fb
RW
66602008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6661
6662 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6663
ac5dc795
PB
66642008-03-18 Paolo Bonzini <bonzini@gnu.org>
6665
34614fff
MP
6666 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6667 is true.
6668 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6669 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6670 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
6671 target after ignore has been set, and move there also the commputation
6672 of subtarget and original_target.
6673 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6674 (LANG_HOOKS_INITIALIZER): Remove it.
6675 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
ac5dc795 6676
b80280f2
RG
66772008-03-18 Richard Guenther <rguenther@suse.de>
6678
6679 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6680 found an expression with constants, note that in the VN for the lhs.
6681 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6682 fold them to constants if possible. Run cleanup_cfg if done so.
6683 (execute_pre): Return todo.
6684 (do_pre): Likewise.
6685 (execute_fre): Likewise.
6686 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6687 of constants.
6688 (get_prop_source_stmt): Look through pointer conversions.
6689
2e28e797
JH
66902008-03-18 Jan Hubicka <jh@suse.cz>
6691
6692 * tree-pretty-print.c: Include predict.h.
6693 (dump_generic_node): Dump predictor.
6694 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6695 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6696 * gimple-low.c (lower_stmt): Likewise.
6697 * expr.c (expand_expr_real): Likewise.
6698 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6699 them.
6700 (build_predict_expr, build_predict_expr): New.
6701 * predict.h (predictor_name, build_predict_expr): Update.
6702 * c-typeck.c (c_finish_bc_stmt): Add prediction.
6703 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6704 * predict.def (PRED_CONTINUE): Update hitrate.
6705 * tree.def (PREDICT_EXPR): Define.
6706 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6707 do not handle BIND_EXPR.
6708 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6709 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6710 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6711 operands.
6712
52f1c7ed
MM
67132008-03-18 Michael Matz <matz@suse.de>
6714
6715 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6716
c8ae0bec
RG
67172008-03-18 Richard Guenther <rguenther@suse.de>
6718
6719 * tree-gimple.h (is_gimple_invariant_address): Declare.
6720 (is_gimple_constant): Likewise.
6721 * tree-gimple.c (is_gimple_constant): New function.
6722 (is_gimple_invariant_address): Likewise.
6723 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6724 and is_gimple_invariant_address.
6725 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6726 previous change.
6727 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6728 an addressable base.
6729
8119fc93
JJ
67302008-03-18 Jakub Jelinek <jakub@redhat.com>
6731
6732 PR middle-end/35611
6733 * gimplify.c (gimplify_expr): Gimplify second operand of
6734 OMP_ATOMIC_LOAD.
6735
c4e5b5a8
RG
67362008-03-17 Richard Guenther <rguenther@suse.de>
6737
6738 PR tree-optimization/19637
6739 * fold-const.c (fold_unary): Remove restrictions of removing
6740 intermediate pointer-conversions (P2)(P1)P0.
6741 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6742 conversion to void pointer.
6743 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6744
fcb9237b
JW
67452008-03-16 James E. Wilson <wilson@tuliptree.org>
6746
6747 PR debug/31510
6748 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6749 emulated thread local variables.
6750
461f8762
RG
67512008-03-16 Richard Guenther <rguenther@suse.de>
6752
6753 PR middle-end/35607
6754 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6755 expand TREE_INVARIANT operations that are not gimple invariant.
6756
2a31c49c
HPN
67572008-03-16 Hans-Peter Nilsson <hp@axis.com>
6758
6759 * doc/extend.texi (Alignment): Say that the ABI controls
6760 the __alignof__ for non-strict-alignment targets rather
6761 than being a recommendation.
6762
80efdb6a
PB
67632008-03-15 Paul Brook <paul@codesourcery.com>
6764
6765 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6766 annotations.
6767 (arm_output_fn_unwind): Mark functions that can not be unwound.
6768
ff069900
PB
67692008-03-15 Paul Brook <paul@codesourcery.com>
6770
6771 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6772 extension instructions.
6773
87e1e42b
RG
67742008-03-15 Richard Guenther <rguenther@suse.de>
6775
6776 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6777 and fold constant aggregate refs.
6778 (fold_const_aggregate_ref): Handle string constants
6779 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
6780 (evaluate_stmt): Simplify now that ccp_fold folds constant
6781 aggregate refs.
6782
ef87d898
PB
67832008-03-15 Paul Brook <paul@codesourcery.com>
6784
6785 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6786 (extzv): Use gen_extzv_t2.
6787 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6788
ed97ddc6
RG
67892008-03-15 Richard Guenther <rguenther@suse.de>
6790
6791 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6792 (fold_const_aggregate_ref): Likewise.
6793 (get_value): Return NULL if we don't have any values.
6794 (ccp_finalize): Set const_val to NULL after freeing it.
6795 * tree-flow.h (get_symbol_constant_value): Declare.
6796 (fold_const_aggregate_ref): Likewise.
6797 * tree-ssa-sccvn.c (try_to_simplify): Use them.
6798
1fd89060
RG
67992008-03-15 Richard Guenther <rguenther@suse.de>
6800
6801 PR middle-end/35593
6802 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6803 to not produce negative array indices if not allowed. Add
6804 parameter to indicate that.
6805 (maybe_fold_offset_to_component_ref): Allow negative array
6806 indices only for the first member of a structure.
6807 (maybe_fold_offset_to_reference): Allow negative array indices.
6808 (maybe_fold_stmt_addition): Likewise.
6809
693092fb 68102008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
cd7e0bd4 6811 Anatoly Sokolov <aesok@post.ru>
693092fb 6812
b97d8153 6813 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
693092fb
BH
6814 (avr_arch): Add ARCH_AVR6.
6815 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6816 (initial_elimination_offset): Initialize and use 'avr_pc_size'
6817 instead of fixed value 2.
6818 (print_operand_address): Use gs() asm specifier instead of pm().
6819 (avr_assemble_integer): (Ditto.).
6820 (avr_output_addr_vec_elt): (Ditto.).
6821 (print_operand): Handle "!" code.
b97d8153 6822 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
693092fb
BH
6823 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6824 (AVR_HAVE_EIJMP_EICALL): Define.
6825 (AVR_3_BYTE_PC): Redefine.
6826 (AVR_2_BYTE_PC): (Ditto.).
6827 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6828 (LINK_SPEC): Add atmega2560 and atmega2561.
6829 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
6830 (crtm2561.o).
b97d8153 6831 * config/avr/avr.md (call_insn): Use eicall instead of icall
693092fb
BH
6832 for 3 byte PC devices.
6833 (call_value_insn): (Ditto.).
6834 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6835 (indirect_jump): Use only for for 2 byte PC devices.
6836 (*tablejump): (Ditto.).
6837 (*indirect_jump_avr6): Add insn.
6838 (*tablejump_rjmp): Don't use for 3 byte PC devices.
b97d8153 6839 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
693092fb
BH
6840 instead of ijmp for 3 byte PC devices.
6841 (__tablejump2__): (Ditto.).
b97d8153 6842 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
693092fb
BH
6843 (MULITLIB_DIRNAMES): (Ditto.).
6844 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6845
ab555a5b
UB
68462008-03-15 Uros Bizjak <ubizjak@gmail.com>
6847
6848 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6849 "sse2_umulsidi3". Use V1DI mode for operand 0.
6850 ("mmx_psadbw"): Use V1DI mode for operand 0.
6851 * config/i386/i386-modes.def (V1SI): New vector mode.
6852 * config/i386/i386.c (struct builtin_description)
6853 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6854 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6855 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6856 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6857 v1di_ftype_v8qi_v8qi type.
6858 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6859
6860 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6861 __builtin_ia32_pmuludq]: Fix the mode of return value.
6862
8f78ed0e
RG
68632008-03-15 Richard Guenther <rguenther@suse.de>
6864
6865 PR middle-end/35595
6866 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6867 being a PHI_NODE.
6868
66e58b33
BW
68692008-03-14 Bob Wilson <bob.wilson@acm.org>
6870
6871 * doc/invoke.texi (Option Summary, Xtensa Options): Document
6872 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6873 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6874 unless TARGET_SERIALIZE_VOLATILE is enabled.
6875 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6876 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6877 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6878
896c8b96
RG
68792008-03-14 Richard Guenther <rguenther@suse.de>
6880
6881 PR tree-optimization/34172
6882 * tree-flow.h (refs_may_alias_p): Declare.
6883 (get_single_def_stmt): Likewise.
6884 (get_single_def_stmt_from_phi): Likewise.
6885 (get_single_def_stmt_with_phi): Likewise.
6886 * tree-dfa.c (refs_may_alias_p): New function.
6887 (get_single_def_stmt): Likewise.
6888 (get_single_def_stmt_from_phi): Likewise.
6889 (get_single_def_stmt_with_phi): Likewise.
6890 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6891 (vn_reference_lookup_1): New helper function.
6892 (vn_reference_lookup): Walk the virtual use-def chain to
6893 continue searching for a match if the def does not alias the
6894 reference we are looking for.
6895
75dd1ae2
DE
68962008-03-14 David Edelsohn <edelsohn@gnu.org>
6897
6898 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
6899 archive and Perzl. Update The Written Word listing.
6900
3d45dd59
RG
69012008-03-14 Richard Guenther <rguenther@suse.de>
6902
6903 PR tree-optimization/34043
6904 PR tree-optimization/33989
6905 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6906 when doing FRE.
6907 (bitmap_find_leader): Use extra argument to verify dominance
6908 relationship inside a basic-block.
6909 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6910 (find_leader_in_sets): Adjust.
6911 (create_component_ref_by_pieces): Take extra argument for
6912 dominance check, handle lookup failures.
6913 (find_or_generate_expression): Likewise.
6914 (create_expression_by_pieces): Likewise.
6915 (insert_into_preds_of_block): Adjust.
6916 (create_value_expr_from): If asked for, verify all operands
6917 are in the blocks AVAIL_OUT set.
6918 (make_values_for_stmt): Check for SSA_NAMEs that are life
6919 over an abnormal edge.
6920 (compute_avail): Remove such check.
6921 (do_SCCVN_insertion): New function.
6922 (eliminate): If we do not find a leader suitable for replacement
6923 insert a replacement expression from SCCVN if available.
6924 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6925 (struct vn_ssa_aux): Add needs_insertion flag.
6926 * tree-ssa-sccvn.c (may_insert): New global flag.
6927 (copy_reference_ops_from_ref): Value-number union member access
6928 based on its size, not type and member if insertion is allowed.
6929 (visit_reference_op_load): For a weak match from union type
6930 punning lookup a view-converted value and insert a SSA_NAME
6931 for that value if that is not found.
6932 (visit_use): Make dumps shorter. Do not disallow value numbering
6933 SSA_NAMEs that are life over an abnormal edge to constants.
6934 (free_scc_vn): Release inserted SSA_NAMEs.
6935 (run_scc_vn): New flag to specify whether insertion is allowed.
6936 Process SSA_NAMEs in forward order.
6937 * tree-ssa-loop-im.c (for_each_index): Handle invariant
6938 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6939 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6940 pointer type to/from integral types that do not change the
6941 precision to regular conversions.
6942
52eaae97
UB
69432008-03-13 Uros Bizjak <ubizjak@gmail.com>
6944
6945 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6946 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6947 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6948 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
75d8b30e
UB
6949 input arguments and the mode of return value. Built-in functions
6950 that operate on whole 64-bit MMX register now use V1DI mode.
52eaae97 6951
5f5f0635
AD
69522008-03-13 Alon Dayan <alond@il.ibm.com>
6953 Olga Golovanevsky <olga@il.ibm.com>
6954
6955 PR tree-optimization/35041
6956 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6957 to locate the right position in a statement.
6958
1359ef39
UB
69592008-03-13 Uros Bizjak <ubizjak@gmail.com>
6960
6961 PR target/34000
6962 PR target/35553
6963 * config/i386/xmmintrin.h: Change all static inline functions to
6964 extern inline and add __gnu_inline__ attribute.
6965 * config/i386/bmintrin.h: Ditto.
6966 * config/i386/smmintrin.h: Ditto.
6967 * config/i386/tmmintrin.h: Ditto.
6968 * config/i386/mmintrin-common.h: Ditto.
6969 * config/i386/ammintrin.h: Ditto.
6970 * config/i386/emmintrin.h: Ditto.
6971 * config/i386/pmmintrin.h: Ditto.
6972 * config/i386/mmintrin.h: Ditto.
6973 * config/i386/mm3dnow.h: Ditto.
6974
d0fb20be
JJ
69752008-03-13 Jakub Jelinek <jakub@redhat.com>
6976
6977 PR middle-end/35185
6978 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6979 (lower_omp_2): New function.
6980 (lower_omp_1, lower_omp): Rewritten.
6981
20cef83a
DS
69822008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
6983
6984 PR 35054
6985 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6986 with the phrase "Microsoft Windows compilers".
6987 (Push/Pop Macro Pragmas): New subsection. Document
6988 #pragma push_macro and pragma pop_macro.
6989
5dea0c19
PB
69902008-03-12 Paul Brook <paul@codesourcery.com>
6991
6992 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6993
d1b85efb
PB
69942008-03-12 Paul Brook <paul@codesourcery.com>
6995
6996 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6997 (thumb2_alusi3_short): Exclude PLUS and MINUS.
6998 (thumb2_addsi_shortim): Rename ...
6999 (thumb2_addsi_short): ... to this. Allow register operands.
7000 (thumb2_subsi_short): New pattern.
7001 (thumb2_one_cmplsi2_short,
7002 thumb2_negsi2_short): New patterns and peepholes.
7003
09754904
PB
70042008-03-12 Paul Brook <paul@codesourcery.com>
7005
09754904
PB
7006 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
7007
a7438d6d
UB
70082008-03-12 Uros Bizjak <ubizjak@gmail.com>
7009
7010 * config/i386/i386.md (int_cond): New code iterator.
7011 (fp_cond): Ditto.
7012 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
7013 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
7014 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
7015 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
7016 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
7017 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
7018 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
7019 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
7020
954954d1
PB
70212008-03-12 Paul Brook <paul@codesourcery.com>
7022
7023 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
7024 instead of {arm,thumb}_compute_save_reg_mask.
7025 (output_return_instruction): Ditto.
7026 (thumb_unexpanded_epilogue): Ditto.
7027 (thumb1_expand_prologue): Ditto.
7028 (thumb1_output_function_prologue): Ditto.
7029 (arm_set_return_address): Ditto.
7030 (thumb_set_return_address): Ditto.
7031 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
7032 regs to achieve stack alignment.
7033 (thumb1_compute_save_reg_mask): Fix compiler warning.
7034 (arm_output_epilogue): Use offsets->saved_regs_mask.
7035 Adjust stack pointer by poping call clobered registers.
7036 (arm_expand_prologue): Use offsets->saved_regs_mask.
7037 Adjust stack pointer by pushing extra registers.
d0fb20be 7038 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
954954d1 7039
c83bd37c
PB
70402008-03-12 Paolo Bonzini <bonzini@gnu.org>
7041
7042 PR tree-opt/35422
7043 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
7044 conversion to the operands of a multiplication.
7045
67514449
RG
70462008-03-12 Richard Guenther <rguenther@suse.de>
7047
7048 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
7049 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
7050 * timevar.def (TV_TREE_PHIPROP): Add.
7051 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
7052 pass description. Use TV_TREE_PHIPROP.
7053 * tree-ssa-forwprop.c: Remove phiprop code.
7054
7c8f7639
JJ
70552008-03-12 Jakub Jelinek <jakub@redhat.com>
7056
7057 PR middle-end/35549
7058 * omp-low.c (maybe_lookup_decl): Constify first argument.
7059 (use_pointer_for_field): Change last argument from bool to
7060 omp_context *. Disallow shared copy-in/out in nested
7061 parallel if decl is shared in outer parallel too.
7062 (build_outer_var_ref, scan_sharing_clauses,
7063 lower_rec_input_clauses, lower_copyprivate_clauses,
7064 lower_send_clauses, lower_send_shared_vars): Adjust callers.
7065
62878103
VK
70662008-03-12 Victor Kaplansky <victork@il.ibm.com>
7067 Ira Rosen <irar@il.ibm.com>
7068
7069 * tree-vectorizer.c (free_stmt_vec_info): New function.
7070 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
7071 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
7072 * tree-vectorizer.h (free_stmt_vec_info): Declare.
7073 * tree-vect-transform.c (vectorizable_conversion): Free
7074 vec_oprnds0 if it was allocated.
7075 (vect_permute_store_chain): Remove unused VECs.
7076 (vectorizable_store): Free VECs that are allocated in the..
7077 function.
7078 (vect_transform_strided_load, vectorizable_load): Likewise.
7079 (vect_remove_stores): Simplify the code.
7080 (vect_transform_loop): Move code to vect_remove_stores().
7081 Call vect_remove_stores() and free_stmt_vec_info().
7082
9dbd54be
JDA
70832008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7084
7085 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
7086 TARGET_HPUX. Revise comment.
7087 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
7088 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
7089 Use sr4 variant of `be' instruction when not generating PIC code.
7090 (attr_length_call): Adjust for above change.
7091
76a7d3ca
AP
70922008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
7093
7094 * ipa-reference.c (static_execute): Remove module_statics_const and
7095 associated setting code.
7096
40cca4f9
UB
70972008-03-11 Uros Bizjak <ubizjak@gmail.com>
7098
7099 PR target/35540
7100 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1b1d8f88
UB
7101 predicate for operand 1.
7102 (paritysi2_cmp): Use register_operand predicate for operand 2.
40cca4f9
UB
7103 Use earlyclobber modifier for operand 1. Remove support for
7104 memory operands.
1b1d8f88 7105 (paritydi2_cmp): Use register_operand predicate for operand 3.
40cca4f9
UB
7106 Use earlyclobber modifier for operand 1. Remove support for
7107 memory operands.
7108
ec6237e4 71092008-03-11 Paul Brook <paul@codesourcery.com>
40cca4f9 7110 Vladimir Prus <vladimir@codesourcery.com>
ec6237e4
PB
7111
7112 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
7113 (arm_compute_save_reg0_reg12_mask): Always
7114 check if register 11 must be saved. Always safe hard frame pointer
7115 when frame_pointer_needeed.
7116 (arm_compute_save_reg_mask): Save IP and PC
7117 only with apcs frames.
7118 (arm_output_epilogue): Adjust Thumb2 codepath to
7119 be also invoked and work for ARM non-apcs frames.
7120 (arm_expand_prologue): Don't bother saving IP
7121 for non-apcs frame, since it's not clobbered by
7122 prologue code. Implement non-apcs frame
7123 layout.
7124
2f6025a1
PB
71252008-03-11 Paolo Bonzini <bonzini@gnu.org>
7126
7127 PR rtl-optimization/35281
7128 * expr.c (convert_move): Use a new pseudo for the intermediate
7129 from_mode->word_mode result.
7130
30e257e5
PB
71312008-03-11 Paolo Bonzini <bonzini@gnu.org>
7132
ec6237e4
PB
7133 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
7134 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
7135 * toplev.c (compile_file): Don't call it.
30e257e5 7136
ab669042
UB
71372008-03-11 Uros Bizjak <ubizjak@gmail.com>
7138
7139 PR middle-end/35526
7140 * expr.c (store_expr): Call emit_block_move if the mode
7141 of "temp" RTX is BLKmode.
7142
1ffe34d9 71432008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
ab669042 7144 Richard Guenther <rguenther@suse.de>
1ffe34d9
AP
7145
7146 PR tree-optimization/31358
7147 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
7148 the step with a NULL_TREE.
7149 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
7150 to sizetype if type is a pointer type.
7151 (add_candidate_1): Don't convert the base and step to
7152 the generic type if the orginal type is a pointer type.
7153 (add_iv_value_candidates): Use sizetype for the step
7154 if type is a pointer type.
7155 (cand_value_at): Likewise.
7156 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
7157 for pointer types.
7158 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
7159 Don't convert the tem affine to the type.
7160 (add_elt_to_tree): Use sizetype for the step if a pointer.
7161 Use POINTER_PLUS_EXPR for pointers.
7162 (aff_combination_to_tree): Use sizetype for the step if a
7163 pointer.
7164
dd6d5236
VM
71652008-03-10 Vladimir Makarov <vmakarov@redhat.com>
7166
7167 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
7168 Remove commutativity hint.
7169
8b46837c
JJ
71702008-03-10 Jakub Jelinek <jakub@redhat.com>
7171
5df27e4a
JJ
7172 PR c/35438
7173 PR c/35439
7174 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
7175 errorneous type. Check that v is a VAR_DECL.
7176
8b46837c
JJ
7177 PR middle-end/35099
7178 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
7179
725c2d32
L
71802008-03-10 H.J. Lu <hongjiu.lu@intel.com>
7181
7182 PR tree-optimization/35494
7183 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7184 may be overriden at link and run time.
7185
3ba404df
RG
71862008-03-10 Richard Guenther <rguenther@suse.de>
7187
7188 PR tree-optimization/34677
7189 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7190 (poolify_tree): Likewise.
7191 (modify_expr_template): Likewise.
7192 (poolify_modify_stmt): Likewise.
7193 (insert_fake_stores): Handle all component-ref style stores
7194 in addition to INDIRECT_REF. Also handle complex types.
7195 Do not poolify the inserted load.
7196 (realify_fake_stores): Do not rebuild the tree but only
7197 make it a SSA_NAME copy.
7198 (init_pre): Remove initialzation of modify_expr_template.
7199 Do not allocate modify_expr_node_pool.
7200 (fini_pre): Do not free modify_expr_node_pool.
7201
97e38a92
PB
72022008-03-10 Paul Brook <paul@codesourcery.com>
7203
7204 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7205 to avoid conflicts.
7206
bd4dc3cd 72072008-03-10 Paul Brook <paul@codesourcery.com>
ab669042 7208 Mark Shinwell <shinwell@codesourcery.com>
bd4dc3cd 7209
bd4dc3cd
PB
7210 * config/arm/cortex-r4.md: New.
7211 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7212 insn attributes.
7213 * config/arm/arm.md: Include cortex-r4.md.
7214 (insn): Add smmls, sdiv and udiv values.
7215 (generic_sched): Don't use generic scheduling for Cortex-R4.
7216 (arm_issue_rate): New function.
7217 (TARGET_SCHED_ISSUE_RATE): Define.
7218
9886a872
SP
72192008-03-10 Sebastian Pop <sebastian.pop@amd.com>
7220
7221 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7222
e5eff6a3
RG
72232008-03-10 Richard Guenther <rguenther@suse.de>
7224
7225 * tree-ssa-pre.c (get_sccvn_value): Simplify.
7226 (compute_avail): Do not add stmt uses to AVAIL_OUT.
7227
0d4c700c
PB
72282008-03-10 Paolo Bonzini <bonzini@gnu.org>
7229
7230 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7231 Set default to true.
7232
802e3f8c
RW
72332008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7234
7235 * c.opt (Wsynth): Deprecate.
7236 * doc/invoke.texi (Option Summary, Warning Options): Document
7237 -Wno-format-contains-nul.
7238
be3d4789
UB
72392008-03-09 Uros Bizjak <ubizjak@gmail.com>
7240
7241 PR target/35496
3b509e33 7242 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
be3d4789
UB
7243 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7244
e83a75a7
IR
72452008-03-09 Ira Rosen <irar@il.ibm.com>
7246
7247 * config/rs6000/rs6000.c (builtin_description): Rename vector
7248 left shift operations.
7249 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7250 (altivec_vsl<VI_char>): Rename to ...
7251 (ashl<mode>3): ... new name.
7252 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7253 gen_ashlv4si3.
7254 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7255
fc9161c1
RG
72562008-03-08 Richard Guenther <rguenther@suse.de>
7257
7258 * coverage.h (tree_coverage_counter_addr): Declare.
7259 * coverage.c (tree_coverage_counter_addr): New function.
7260 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7261 before using again.
7262 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7263 (tree_gen_one_value_profiler): Likewise.
7264 (tree_gen_ic_profiler): Likewise.
7265 (tree_gen_average_profiler): Likewise.
7266 (tree_gen_ior_profiler): Likewise.
7267
49a1fb2d
RG
72682008-03-08 Richard Guenther <rguenther@suse.de>
7269
7270 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7271 (vn_binary_op_insert): Likewise.
7272 (vn_unary_op_lookup): Likewise.
7273 (vn_unary_op_insert): Likewise.
7274 (vn_nary_op_lookup): Declare.
7275 (vn_nary_op_insert): Likewise.
7276 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7277 and binary hashes, use a single obstack for unary_op_pool
7278 and binary_op_pool.
7279 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7280 a single struct vn_nary_op_s. Store tree code length and
7281 a variable number of operands.
7282 (struct vn_reference_op_struct): Remove unused op2.
7283 (vn_reference_op_eq): Do not compare op2.
7284 (vn_reference_op_compute_hash): Do not compute hash of op2.
7285 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7286 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7287 with vn_nary_op_compute_hash.
7288 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7289 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7290 vn_nary_op_lookup.
7291 (vn_unary_op_insert, vn_binary_op_insert): Replace with
7292 vn_nary_op_insert.
7293 (visit_unary_op): Call nary functions.
7294 (visit_binary_op): Likewise.
7295 (process_scc): Adjust for struct vn_tables_s changes.
7296 (allocate_vn_table): Likewise.
7297 (free_vn_table): Likewise.
7298 * tree-vn.c (vn_add): Call nary functions.
7299 (vn_lookup): Likewise.
7300
2725b75c
JJ
73012008-03-08 Jakub Jelinek <jakub@redhat.com>
7302
7303 PR target/35498
7304 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7305 wdst back after sync_compare_and_swapqhi_internal.
7306
10a97ae6
UB
73072008-03-08 Uros Bizjak <ubizjak@gmail.com>
7308
7309 PR target/22152
7310 * config/i386/i386-modes.def (V1DI): New vector mode.
7311 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7312 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7313 (MMXMODE248): Ditto.
7314 (MMXMODE): Add V1DI mode.
7315 (mmxvecsize): Change DI mode to V1DI mode.
7316 ("mov<mode>): Use MMXMODEI8 mode iterator.
7317 ("*mov<mode>_internal_rex64"): Ditto.
7318 ("*mov<mode>_internal"): Ditto.
7319 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
7320 ("mmx_sub<mode>3"): Ditto.
7321 ("mmx_adddi3"): Remove insn pattern.
7322 ("mmx_subdi3"): Ditto.
7323 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7324 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7325 ("mmx_ashl<mode>3"): Ditto.
7326 ("mmx_lshrdi3"): Remove insn pattern.
7327 ("mmx_ashldi3"): Ditto.
7328 * config/i386/i386.c (classify_argument): Handle V1DImode.
7329 (function_arg_advance_32): Ditto.
7330 (function_arg_32): Ditto.
7331 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7332 mmx_addv1di3 insn pattern.
7333 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7334 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7335 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7336 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7337 Remove definitions of built-in functions.
7338 (V1DI_type_node): New node.
7339 (v1di_ftype_v1di_int): Ditto.
7340 (v1di_ftype_v1di_v1di): Ditto.
7341 (v2si_ftype_v2si_si): Ditto.
7342 (v4hi_ftype_v4hi_di): Remove node.
7343 (v2si_ftype_v2si_di): Ditto.
7344 (ix86_init_mmx_sse_builtins): Handle V1DImode.
7345 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7346 Redefine builtins using def_builtin_const with *_ftype_*_int node.
7347 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7348 Add new builtins using def_builtin_const.
7349 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7350 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7351 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7352 * config/i386/mmintrin.h (__v1di): New typedef.
7353 (_mm_add_si64): Cast arguments to __v1di type.
7354 (_mm_sub_si64): Ditto.
7355 (_mm_sll_pi16): Cast __count to __v4hi type.
7356 (_mm_sll_pi32): Cast __count to __v2si type.
7357 (_mm_sll_si64): Cast arguments to __v1di type.
7358 (_mm_srl_pi16): Cast __count to __v4hi type.
7359 (_mm_srl_pi32): Cast __count to __v2si type.
7360 (_mm_srl_si64): Cast arguments to __v1di type.
7361 (_mm_sra_pi16): Cast __count to __v4hi type.
7362 (_mm_sra_pi32): Cast __count to __v2si type.
7363 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7364 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7365 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7366 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7367 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7368 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7369 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7370 (_mm_srai_pi32): Use __builtin_ia32_psradi.
7371 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7372 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7373 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7374 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7375
08c3b5b0
JM
73762008-03-07 Joseph Myers <joseph@codesourcery.com>
7377
7378 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7379
efc05e3c
PB
73802008-03-07 Peter Bergner <bergner@vnet.ibm.com>
7381
7382 PR target/35373
7383 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7384 reg+const addressing for Altivec modes. Don't generate reg+reg
7385 addressing for TFmode or TDmode quantities.
7386
cf7bc668
PB
73872008-03-07 Paolo Bonzini <bonzini@gnu.org>
7388
7389 * c-common.c (vector_types_convertible_p): Call langhook
7390 instead of comptypes.
7391
b0940154
AP
73922008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
7393
7394 PR tree-opt/35402
7395 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7396 integral and scalar float variables which have a
7397 NULL DECL_INITIAL.
7398
48081aae
NF
73992008-03-06 Nathan Froyd <froydnj@codesourcery.com>
7400
7401 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7402 dwarf_register_span hook when emitting unwind information for
7403 register-to-memory saves.
7404 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7405 (rs6000_frame_related): Remove call to spe_synthesize_frame.
7406
251923f5
JJ
74072008-03-06 Jakub Jelinek <jakub@redhat.com>
7408
7409 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7410 for the same VAR_DECL.
7411
e8645a40
TT
74122008-03-06 Tom Tromey <tromey@redhat.com>
7413
7414 * treelang: Delete.
7415 * doc/standards.texi (Standards): Don't mention treelang.
7416 * doc/invoke.texi (Overall Options): Don't mention treelang.
7417 * doc/install.texi (Prerequisites): Don't mention bison or
7418 treelang.
7419 (Configuration): Don't mention treelang.
7420 (Building): Likewise.
7421 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7422
97efb03a
PB
74232008-03-06 Paolo Bonzini <bonzini@gnu.org>
7424
7425 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7426 word-extractions out of a multi-word object.
7427
fc0f49f3
RG
74282008-03-06 Richard Guenther <rguenther@suse.de>
7429
7430 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7431 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7432 result type and precision.
7433 * expr.c (get_inner_reference): Set unsignedp based on the result
7434 type of BIT_FIELD_REF.
7435 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7436 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7437 (try_instantiate_multiple_fields): Likewise. Use the correct type
7438 for BIT_FIELD_REF.
7439 (sra_build_assignment): Likewise.
7440 (sra_build_elt_assignment): Likewise.
7441 (sra_explode_bitfield_assignment): Likewise.
7442 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7443 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7444 set BIT_FIELD_REF_UNSIGNED.
7445 (vectorizable_load): Likewise.
7446
e186ff69
AK
74472008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
7448
7449 * cse.c (cse_extended_basic_block): Invalidate artificial defs
7450 at bb start.
7451
4c067742
RG
74522008-03-06 Richard Guenther <rguenther@suse.de>
7453
7454 * alias.c (struct alias_set_entry): Move has_zero_child field
7455 to pack with alias_set.
7456
23880b97
L
74572008-03-05 H.J. Lu <hongjiu.lu@intel.com>
7458
7459 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7460 32bit host.
7461
6ab81302
ILT
74622008-03-05 Ian Lance Taylor <iant@google.com>
7463
7464 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7465
4218dc2d 74662008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
ca9052ce
KZ
7467
7468 * fwprop.c (update_df): Support width and offset parameters of
7469 df_ref_create.
7470 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7471 global_conflicts): Change DF_REF_EXTRACT to either
7472 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
7473 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7474 * df-scan.c (df_ref_record, df_defs_record,
7475 df_ref_create_structure, df_def_record_1, df_uses_record,
7476 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7477 df_bb_refs_collect, df_entry_block_defs_collect,
7478 df_exit_block_uses_collect): Support new width and offset fields.
7479 (ref_extract_pool): New storage pool.
7480 (df_free_ref): New function.
7481 (df_reg_chain_unlink, df_free_collection_rec,
7482 df_sort_and_compress_refs): Call df_free_ref.
7483 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7484 of df_ref_extract.
7485 (df_ref_create_structure): Allocate df_ref_extract if offset and
7486 width fields are used.
7487 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7488 (df_uses_record): Get offset and width from ZERO_EXTRACT
7489 and SIGN_EXTRACT.
7490 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7491 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
7492 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7493 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7494 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
7495 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7496 (df_ref_extract): New structure.
7497 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7498 (df_ref_create): Add width and offset parameters.
7499
63d195d5
RG
75002008-03-05 Richard Guenther <rguenther@suse.de>
7501
7502 * tree-ssa-structalias.c (get_constraint_for_component_ref):
7503 Use ranges_overlap_p.
7504 (offset_overlaps_with_access): Rename
7505 to ranges_overlap_p and move ...
7506 * tree-flow-inline.h (ranges_overlap_p): ... here.
7507
7508 * tree.h (get_inner_reference, handled_component_p): Update
7509 comments.
7510
7511 * tree.h (record_component_aliases, get_alias_set,
7512 alias_sets_conflict_p, alias_sets_must_conflict_p,
7513 objects_must_conflict_p): Move declarations ...
7514 * alias.h (record_component_aliases, get_alias_set,
7515 alias_sets_conflict_p, alias_sets_must_conflict_p,
7516 objects_must_conflict_p): ... here.
7517 Include coretypes.h.
7518 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7519
ea7e6d5a
AH
75202008-03-05 Aldy Hernandez <aldyh@redhat.com>
7521
7522 * cfg.c: Include tree-flow.h.
7523 (remove_edge_raw): Call redirect_edge_var_map_clear.
7524 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7525 * tree-flow-inline.h (redirect_edge_var_map_def): New.
7526 (redirect_edge_var_map_result): New.
7527 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7528 PENDING_STMT use with redirect_edge_var_map_*.
7529 * tree-ssa.c (edge_var_maps): New definition.
7530 (redirect_edge_var_map_add): New.
7531 (redirect_edge_var_map_clear): New.
7532 (redirect_edge_var_map_dup): New.
7533 (redirect_edge_var_map_vector): New.
7534 (redirect_edge_var_map_destroy): New.
7535 (ssa_redirect_edge): Replace PENDING_STMT use with
7536 redirect_edge_var_map_*.
7537 (flush_pending_stmts): Same.
7538 (delete_tree_ssa): Destroy edge var map.
7539 * tree-flow.h (struct _edge_var_map): New.
7540 Define edge_var_map vector type.
7541 Declare redirect_edge_var_map_* prototypes.
7542 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7543 * tree-cfg.c (reinstall_phi_args): Replace
7544 PENDING_STMT use with redirect_edge_var_map_*.
7545
1bdcf037
RG
75462008-03-05 Richard Guenther <rguenther@suse.de>
7547
7548 PR tree-optimization/35472
7549 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7550 whose single use_stmt has a overlapping set of loaded and
7551 stored symbols as that use_stmt might be a noop assignment then.
7552
fec5fe47
JS
75532008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
7554
7555 * gthr-rtems.h: Implement __gthread_mutex_destroy.
7556
e55f42fb
RG
75572008-03-05 Richard Guenther <rguenther@suse.de>
7558
7559 PR c++/35336
7560 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7561 should be constants.
7562 * tree-cfg.c (verify_expr): Verify it.
7563 * fold-const.c (fold_truthop): Remove code generating
7564 BIT_FIELD_REFs of structure bases.
7565 (fold_binary): Likewise.
7566 (fold_ternary): Position and size of BIT_FIELD_REFs are
7567 always host integers.
7568 (make_bit_field_ref): Remove.
7569 (optimize_bit_field_compare): Remove.
7570 (all_ones_mask_p): Remove.
7571
1da266fe
GL
75722008-03-05 Gabor Loki <loki@gcc.gnu.org>
7573
7574 PR gcc/33009
7575 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7576 (split_block_and_df_analyze): New. Split basic block and rebuild
7577 dataflow.
7578 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7579 SPLIT_BLOCK.
7580 (split_pattern_seq): Likewise.
7581 (erase_matching_seqs): Likewise.
7582 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7583
07c40d0b
GK
75842008-03-04 Geoff Keating <geoffk@apple.com>
7585
7586 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7587 declaration and code.
7588 (tree_invalid_nonnegative_warnv_p): Likewise.
7589
4c754988
SB
75902008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
7591
7592 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7593 examples. Truncate option-names then causing overfull hbox.
7594
399fe3e1
JDA
75952008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7596
7597 PR target/35222
7598 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7599 on hpux10.
7600 * configure: Rebuilt.
7601
e918a58a
RAE
76022008-03-04 Rafael Espindola <espindola@google.com>
7603
7604 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7605 (tree_unary_nonnegative_warnv_p): New.
7606 (tree_binary_nonnegative_warnv_p): New.
7607 (tree_single_nonnegative_warnv_p): New.
7608 (tree_invalid_nonnegative_warnv_p): New.
7609 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7610
ee8ea087
MLI
76112008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7612
7613 PR 28322
7614 * opts.c (handle_option): Postpone 'unknown option' errors only for
7615 warning options.
7616
b5220972
L
76172008-03-04 H.J. Lu <hongjiu.lu@intel.com>
7618
7619 PR target/35453
7620 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7621 (_SIDD_XXX): This.
7622
74dd418c
RAE
76232008-03-04 Rafael Espindola <espindola@google.com>
7624
7625 * fold-const.c (tree_unary_nonzero_warnv_p): New.
7626 (tree_binary_nonzero_warnv_p): New.
7627 (tree_single_nonzero_warnv_p): New.
7628 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7629
5ce0e197
UB
76302008-03-04 Uros Bizjak <ubizjak@gmail.com>
7631
7632 PR middle-end/35456
7633 * fold-const.c (fold_cond_expr_with_comparison): Prevent
7634 transformations for modes that have signed zeros.
7635 * ifcvt.c (noce_try_abs): Ditto.
7636
2c7c6f54
JM
76372008-03-04 Joseph Myers <joseph@codesourcery.com>
7638
7639 * config/i386/i386.c (override_options): Force
7640 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7641
b7884852
JH
76422008-03-04 Jan Hubicka <jh@suse.cz>
7643
7644 PR c++/35262
7645 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7646 in last commit.
7647
ab65b56b
DS
76482008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
7649
7650 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
cd7e0bd4 7651 label to probe the stack.
ab65b56b 7652
c262f705
DS
76532008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
7654
7655 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7656 (__gthr_win32_mutex_destroy): Declare.
7657 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7658 __gthr_win32_mutex_destroy.
7659 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
7660
44682fab
JH
76612008-03-03 Jan Hubicka <jh@suse.cz>
7662
7663 PR c++/35262
7664 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7665 aggressive on inlining cold calls.
7666
9a327766
RG
76672008-03-03 Richard Guenther <rguenther@suse.de>
7668
7669 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7670 struct copies into the expression table.
7671 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7672 (try_to_simplify): Likewise.
7673 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7674 integral and pointer arguments which do not change the
7675 precision to NOP_EXPRs.
7676 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7677 VIEW_CONVERT_EXPR case.
7678
6a732743
SP
76792008-03-02 Sebastian Pop <sebastian.pop@amd.com>
7680
7681 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7682 defined in a loop at depth 0 is invariant.
7683 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7684 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7685 be called at loop depth 0.
7686
0e5997c0
JJ
76872008-03-02 Jakub Jelinek <jakub@redhat.com>
7688
7689 PR driver/35420
7690 * gcc.c (process_command): Update copyright notice dates.
7691 * gcov.c (print_version): Likewise.
7692 * gcov-dump.c (print_version): Likewise.
7693 * mips-tfile.c (main): Likewise.
7694 * mips-tdump.c (main): Likewise.
7695
393eda6a
MLI
76962008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7697
7698 PR 24924
7699 * c-common.c (flag_permissive): Delete.
7700 (constant_expression_warnings): Check flags first.
7701 (constant_expression_error): New.
7702 * c-common.h (flag_permissive): Delete.
7703 (constant_expression_error): Declare.
7704 * flags.h (flag_permissive): Declare. Update description.
7705 * diagnostic.c (pedwarn): Update.
7706 (permerror): New.
7707 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7708 (permissive_error_kind): New.
7709 * toplev.c (flag_permissive): Define. Update description.
7710 * toplev.h (permissive_error_kind): Declare.
7711 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7712 (pedwarn_c90): Use pedantic_warning_kind.
7713 * c-opts.c (c_common_post_options): flag_permissive does not affect
7714 flag_pedantic_errors.
7715
9677aa89
JM
77162008-03-02 Joseph Myers <joseph@codesourcery.com>
7717
7718 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7719 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7720 __absvsi2, __absvDI2): Use unsigned arithmetic.
7721
f3130d75 77222008-03-02 Andi Kleen <ak@suse.de>
ab669042 7723 Richard Guenther <rguenther@suse.de>
f3130d75
AK
7724
7725 * struct-equiv.c: Remove file.
7726 * cfg_cleanup.c (condjump_equiv_p): Remove.
7727 * Makefile.in (OBJS-common): Remove struct-equiv.o.
7728 (struct-equiv.o): Remove rule.
7729 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7730 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
7731 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7732
89c3cbc6
AO
77332008-03-01 Alexandre Oliva <aoliva@redhat.com>
7734
7735 * ifcvt.c (noce_process_if_block): Try to handle only the then
7736 block if the else block exists but isn't suitable.
7737
5eb4a9af
JB
77382008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
7739
7740 PR gcc/35063
7741 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7742 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7743 regression from previous patch.
7744
4dabf736
JB
77452008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
7746
7747 PR gcc/35063
7748 * gthr.h: Add __gthread_mutex_destroy as a function that must be
7749 implemented.
7750 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7751 * gthr-single.h (__gthread_mutex_destroy): Likewise.
7752 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7753 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7754 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7755 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7756 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7757 (__gthread_mutex_destroy_function): Rename to
7758 __gthread_mutex_destroy.
7759 * gthr-dce.h (__gthread_mutex_destroy): Call
7760 pthread_mutex_destroy.
7761 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7762 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7763 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7764
63642d5a
AO
77652008-03-01 Alexandre Oliva <aoliva@redhat.com>
7766
7767 * df-scan.c (df_ref_chain_change_bb): Simplify.
7768 (df_insn_change_bb): Add new_bb argument. Simplify. Call
7769 set_block_for_insn if there's any change.
7770 * df.h ((df_insn_change_bb): Fix prototype.
7771 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7772 df_insn_change_bb, don't call set_block_for_insn.
7773 * emit-rtl.c (reorder_insns): Likewise.
7774 * haifa-sched.c (move_insn): Likewise.
7775
e0651058
AO
77762008-03-01 Alexandre Oliva <aoliva@redhat.com>
7777
7778 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7779
d2b6be72
AO
77802008-03-01 Alexandre Oliva <aoliva@redhat.com>
7781
7782 * tree-flow-inline.h (next_readonly_imm_use): Return
7783 NULL_USE_OPERAND_P after the end.
7784
2fb5f2af
RG
77852008-03-01 Richard Guenther <rguenther@suse.de>
7786
7787 PR tree-optimization/35411
7788 * tree-sra.c (sra_build_assignment): Split conversion to
7789 final type to a separate statement if we are not assigning
7790 to a register.
7791
c17ee676
FXC
77922008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
7793
7794 * fold-const.c (fold_convertible_p): Correct the logic to follow
7795 that in fold_convert().
7796
f31c9f09
DG
77972008-02-29 Douglas Gregor <doug.gregor@gmail.com>
7798
7799 PR c++/35315
7800 * tree-inline.c (build_duplicate_type): When we make a
7801 duplicate type, make it unique in the canonical types system.
7802
966e8f4d
TT
78032008-02-29 Tom Tromey <tromey@redhat.com>
7804
7805 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7806 input_file_stack_history, input_file_stack_restored): Remove.
7807 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7808 * input.h (struct file_stack): Remove.
7809 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7810 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7811 Likewise.
7812 * diagnostic.h (struct diagnostic_context) <last_module>: Change
7813 type.
7814 (diagnostic_last_module_changed): Add 'map' argument.
7815 (diagnostic_set_last_function): Likewise.
7816 * diagnostic.c (undiagnostic_report_current_module): Iterate using
7817 line map, not input_file_stack.
7818 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7819
3cbe0ba6
PB
78202008-02-29 Paul Brook <paul@codesourcery.com>
7821
7822 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7823
d96ae4d4
PB
78242008-02-29 Paul Brook <paul@codesourcery.com>
7825
7826 * config/arm/ieee754-df.S (muldf3): Use RET macros.
7827
5be891a4
RG
78282008-02-29 Richard Guenther <rguenther@suse.de>
7829
7830 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7831 vn_lookup_or_add.
7832 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7833 value for comparing for a store match.
7834 (simplify_unary_expression): Do nothing for SSA_NAMEs.
7835 (try_to_simplify): Do not do a full-blown reference lookup.
7836
b0fbea13
KK
78372008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
7838
7839 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7840 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7841
7842 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7843
0c96231b
SP
78442008-02-29 Sebastian Pop <sebastian.pop@amd.com>
7845
7846 * tree-loop-linear.c (try_interchange_loops): Compare memory access
7847 strides against cache sizes.
7848
d973ac5a
KK
78492008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
7850
7851 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7852 constant to fpul.
7853
4613543f
RS
78542008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
7855
7856 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7857 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7858 is smaller than the original promoted value.
7859 (simplify_subreg): If OP is a SUBREG, try to preserve its
7860 SUBREG_PROMOTED_VAR_P information.
7861
cbfb21c1
SB
78622008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
7863
7864 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7865 (VN_INFO_GET): Allocate new objects on the obstack.
7866 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
7867 for rpo_numbers_temp, for consistency.
7868 (free_scc_vn): Free the obstack.
7869
dea61d92
SP
78702008-02-28 Sebastian Pop <sebastian.pop@amd.com>
7871
7872 * doc/invoke.texi: Document -ftree-loop-distribution.
7873 * tree-loop-distribution.c: New.
7874 * tree-pass.h (pass_loop_distribution): New.
7875 * graphds.h (struct graph): Add htab_t indices.
7876 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7877 * tree-vectorizer.c (rename_variables_in_loop): Extern.
7878 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7879 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7880 * tree-data-ref.c (debug_data_dependence_relations): New.
7881 (dump_data_dependence_relation): Also print data references.
7882 (free_data_ref): Extern.
7883 (same_access_functions): Moved...
7884 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7885 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7886 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7887 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7888 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7889 (stmts_from_loop): Skip LABEL_EXPR.
5ce0e197
UB
7890 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7891 New.
dea61d92
SP
7892 (build_rdg): Initialize rdg->indices htab.
7893 (free_rdg, stores_from_loop, ref_base_address,
7894 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7895 have_similar_memory_accesses_1, ref_base_address_1,
7896 remove_similar_memory_refs): New.
7897 * tree-data-ref.h: Depend on tree-chrec.h.
7898 (debug_data_dependence_relations, free_data_ref): Declared.
7899 (same_access_functions): ... here.
5ce0e197
UB
7900 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7901 New.
dea61d92
SP
7902 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7903 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7904 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7905 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7906 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7907 rdg_vertex_for_stmt): Declared.
7908 (struct rdg_edge): Add level.
7909 (RDGE_LEVEL): New.
7910 (free_rdg, stores_from_loop, remove_similar_memory_refs,
5ce0e197
UB
7911 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7912 Declared.
dea61d92
SP
7913 (rdg_has_similar_memory_accesses): New.
7914 * tree-vect-analyze.c: Remove unused static decls.
7915 * lambda.h (dependence_level): New.
7916 * common.opt (ftree-loop-distribution): New.
7917 * tree-flow.h (mark_virtual_ops_in_bb,
7918 slpeel_tree_duplicate_loop_to_edge_cfg,
7919 rename_variables_in_loop): Declared.
7920 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7921 (OBJS-common): Add tree-loop-distribution.o.
7922 (tree-loop-distribution.o): New rule.
7923 * tree-cfg.c (mark_virtual_ops_in_bb): New.
7924 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7925 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7926
dde75838
JM
79272008-02-28 Joseph Myers <joseph@codesourcery.com>
7928
7929 PR target/33963
7930 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7931 other than structures and unions.
7932
3b302421
RG
79332008-02-28 Richard Guenther <rguenther@suse.de>
7934
7935 Revert:
7936 2008-02-26 Richard Guenther <rguenther@suse.de>
7937
7938 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7939 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7940 (lookup_decl_from_uid): Declare.
7941 (remove_decl_from_map): Likewise.
7942 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7943 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7944 (decl_for_uid_map): New global hashtable mapping DECL_UID
7945 to the decl tree.
7946 (init_ttree): Allocate it.
7947 (insert_decl_to_uid_decl_map): New helper function.
7948 (make_node_stat): Insert new decls into the map.
7949 (copy_node_stat): Likewise.
7950 (lookup_decl_from_uid): New function.
7951 (remove_decl_from_map): Likewise.
7952 (print_decl_for_uid_map_statistics): New helper.
7953 (dump_tree_statistics): Call it.
7954
7955 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7956 (referenced_var_iterator): Adjust.
7957 (FOR_EACH_REFERENCED_VAR): Adjust.
7958 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7959 (num_referenced_vars): Adjust.
7960 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7961 (first_referenced_var): Remove.
7962 (end_referenced_vars_p): Likewise.
7963 (next_referenced_var): Likewise.
7964 (referenced_var_iterator_set): New helper function.
7965 * tree-dfa.c (referenced_var_lookup): Adjust.
7966 (referenced_var_check_and_insert): Likewise.
7967 (remove_referenced_var): Likewise.
7968 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7969 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7970 (verify_call_clobbering): Likewise.
7971 (verify_memory_partitions): Likewise.
7972 (init_tree_ssa): Allocate bitmap instead of hashtable for
7973 referenced_vars.
7974 (delete_tree_ssa): Adjust.
7975 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7976 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7977 (compute_tag_properties): Likewise.
7978 (set_initial_properties): Likewise.
7979 (find_partition_for): Likewise.
7980 (update_reference_counts): Likewise.
7981 (dump_may_aliases_for): Likewise.
7982 * tree-ssa-operands.c (add_virtual_operand): Likewise.
7983 (add_call_clobber_ops): Likewise.
7984 (add_call_read_ops): Likewise.
7985 (get_asm_expr_operands): Likewise.
7986 * tree-into-ssa.c (dump_decl_set): Likewise.
7987 (update_ssa): Likewise.
7988 * tree-sra.c (scan_function): Likewise.
7989 (decide_instantiations): Likewise.
7990 (scalarize_parms): Likewise.
7991 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7992 (dsa_named_for): Likewise.
7993 * tree-ssa-structalias.c (update_alias_info): Likewise.
7994 (merge_smts_into): Likewise.
7995
2a1ed4fc
DD
79962008-02-27 David Daney <ddaney@avtrex.com>
7997
7998 PR target/34409
7999 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
8000 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
8001 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
8002 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
8003 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
8004
c92712d1
UB
80052008-02-27 Uros Bizjak <ubizjak@gmail.com>
8006
8007 PR target/25477
8008 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
8009 (BUILT_IN_NEXTTOWARD): Remove.
8010 (BUILT_IN_NEXTTOWARDF): Ditto.
8011 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
8012 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
8013
a8bafc43
TT
80142008-02-27 Tom Tromey <tromey@redhat.com>
8015
8016 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
8017 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
8018
8220334a
JB
80192008-02-27 Jan Beulich <jbeulich@novell.com>
8020
8021 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
8022 update the respective field on newdecl.
8023
8bf6e270
RE
80242008-02-27 Revital Eres <eres@il.ibm.com>
8025
8026 PR rtl-optimization/34999
8027 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
8028 crossing edges that ends with a call insn.
8029 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
8030 call insn and clear the EDGE_CROSSING flag of the crossing edge
8031 when fixing fallthru edges.
8032
7fb52af2
RG
80332008-02-27 Richard Guenther <rguenther@suse.de>
8034
3b302421 8035 PR middle-end/35390
7fb52af2
RG
8036 * fold-const.c (fold_unary): Return the correct argument,
8037 converted to the result type.
8038
70582b3a
RG
80392008-02-27 Richard Guenther <rguenther@suse.de>
8040
8041 PR middle-end/34971
8042 * expr.c (expand_expr_real_1): Assert on rotates that operate
8043 on partial modes.
8044 * fold-const.c (fold_binary): Use the types precision, not the
8045 bitsize of the mode if folding rotate expressions. Build rotates
8046 only for full modes.
8047
a25a8f3b
JJ
80482008-02-27 Jakub Jelinek <jakub@redhat.com>
8049
8050 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
8051 and CPP_PRAGMA_EOL.
8052 * c-pragma.c (pragma_ns_name): New typedef.
8053 (registered_pp_pragmas): New variable.
8054 (c_pp_lookup_pragma): New function.
8055 (c_register_pragma_1): If flag_preprocess_only, do nothing
8056 for non-expanded pragmas, for expanded ones push pragma's
8057 namespace and name into registered_pp_pragmas vector.
8058 (c_invoke_pragma_handler): Register OpenMP pragmas even when
8059 flag_preprocess_only, don't register GCC pch_preprocess
8060 pragma if flag_preprocess_only.
8061 * c-opts.c (c_common_init): Call init_pragma even if
8062 flag_preprocess_only.
8063 * c-pragma.c (c_pp_lookup_pragma): New prototype.
8064 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
8065 cpp_register_pragma if flag_preprocess_only.
8066
369239ef
RW
80672008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8068
8069 PR c/28800
8070 * c-parser.c (c_parser_translation_unit): Warn for empty
8071 translation unit, not empty source file.
8072
f5c630c3
PB
80732008-02-26 Paul Brook <paul@codesourcery.com>
8074
8075 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
8076 operand for Thumb-2.
8077 * config/arm/arm.h (reg_class): Add CORE_REGS.
8078 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
8079 (BASE_REG_CLASS): Use CORE_REGS.
8080 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
8081 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
8082 (REGNO_OK_FOR_INDEX_P): Exclude SP.
8083 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
8084 ARM_REGNO_OK_FOR_INDEX_P.
8085 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
8086 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
8087 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
8088 (ldm/stm peepholes): Ditto.
8089 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
8090 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
8091 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
8092 * config/arm/constraints.md: Enable "k" constraint on ARM.
8093
0d158b6e
BE
80942008-02-27 Ben Elliston <bje@au.ibm.com>
8095
8096 * config/rs6000/rs6000.c: Annotate cache line size field in all
8097 instances of struct processor_costs.
8098
7d817ebc
DE
80992008-02-26 David Edelsohn <edelsohn@gnu.org>
8100
8101 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
8102 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
8103 jump_bypass): New counters.
8104 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
8105 * dce.c (gate_ud_dce): Same.
8106 (gate_fast_dce): Same.
8107 * dse.c (gate_dse1): New function.
8108 (gate_dse2): New function.
8109 (gate_dse): Merge results of new gate functions.
8110 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
8111 (gate_handle_jump_bypass): Add dbg_cnt.
8112 (gate_handle_gcse): Add dbg_cnt.
8113 * ifcvt.c (gate_handle_if_conversion): Same.
8114 (gate_handle_if_after_combine): Same.
8115 (gate_handle_if_after_reload): Same.
8116 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
8117
a19b7d46
EW
81182008-02-26 Edmar Wienskoski <edmar@freescale.com>
8119
8120 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
8121 line sizes.
8122 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
8123
317c435f
JM
81242008-02-26 Jason Merrill <jason@redhat.com>
8125
8126 PR c++/35315
8127 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
8128 alone if it's the naming decl for the type's main variant.
8129
2d593c86
TT
81302008-02-26 Tom Tromey <tromey@redhat.com>
8131
8132 * system.h (USE_MAPPED_LOCATION): Poison.
8133 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
8134 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
8135 (make_goto_expr_edges): Likewise.
8136 (remove_bb): Likewise.
8137 (execute_warn_function_return): Likewise.
8138 * basic-block.h (struct edge_def) <goto_locus>: Change type to
8139 location_t.
8140 * c-common.c (fname_decl): Remove old location code.
8141 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
8142 location code.
8143 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
8144 variant.
8145 (ASM_INPUT_SOURCE_LOCATION): Likewise.
8146 (gen_rtx_ASM_INPUT): Likewise.
8147 (gen_rtx_ASM_INPUT_loc): Likewise.
8148 (get_rtx_asm_OPERANDS): Remove.
8149 * cfglayout.c (insn_locators_alloc): Remove old location code.
8150 (set_curr_insn_source_location): Likewise.
8151 (curr_insn_locator): Likewise.
8152 * print-tree.c (print_node): Remove old location code.
8153 * tree-mudflap.c (mf_varname_tree): Remove old location code.
8154 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
8155 * cfgexpand.c (expand_gimple_cond_expr): Don't use
8156 location_from_locus.
8157 (construct_exit_block): Remove old location code.
8158 * emit-rtl.c (force_next_line_note): Remove old location code.
8159 * profile.c (branch_prob): Remove old location code.
8160 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
8161 LOC_LINE): Remove old-location variants.
8162 * langhooks.c (lhd_print_error_function): Remove old location
8163 code.
8164 * configure, config.in: Rebuilt.
8165 * configure.ac (--enable-mapped-location): Remove.
8166 * c-decl.c (c_init_decl_processing): Remove old location code.
8167 (finish_function): Likewise.
8168 * recog.c (decode_asm_operands): Remove old location code.
8169 * c-pch.c (c_common_read_pch): Remove old location code.
8170 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
8171 variants.
8172 * gimple-low.c (lower_function_body): Remove old location code.
8173 * toplev.c (unknown_location): Remove.
8174 (push_srcloc): Remove old-location variant.
8175 (process_options): Remove old location code.
8176 (lang_dependent_init): Likewise.
8177 * input.h (UNKNOWN_LOCATION): Move definition.
8178 (location_t): Undeprecate.
8179 (source_locus): Remove.
8180 (location_from_locus): Remove.
8181 (struct location_s): Remove.
8182 Remove all old-location code.
8183 (input_line, input_filename): Remove.
8184 * final.c (final_scan_insn): Remove old location code.
8185 * diagnostic.c (diagnostic_build_prefix): Remove
8186 USE_MAPPED_LOCATION test.
8187 * tree.h (gimple_stmt) <locus>: Now a location_t.
8188 (tree_exp) <locus>: Likewise.
8189 (DECL_IS_BUILTIN): Remove old-location variant.
8190 (annotate_with_file_line, annotate_with_locus): Likewise.
8191 (expr_locus, set_expr_locus): Update.
8192 * tree.c (build1_stat): Remove old location code.
8193 (last_annotated_node): Remove.
8194 (annotate_with_file_line): Remove old-location variant.
8195 (annotate_with_locus): Likewise.
8196 (expr_location): Remove old location code.
8197 (set_expr_location): Likewise.
8198 (expr_has_location): Likewise.
8199 (expr_locus): Likewise.
8200 (set_expr_locus): Likewise.
8201 (expr_filename): Don't use location_from_locus.
8202 (expr_lineno): Likewise.
8203 * rtl-error.c (location_for_asm): Remove old location code.
8204 * c-lex.c (cb_line_change): Remove old location code.
8205 (fe_file_change): Likewise.
8206 (cb_def_pragma): Likewise.
8207 (c_lex_with_flags): Likewise.
8208 * gengtype.c (do_typedef): Don't special-case location types.
8209 (define_location_structures): Remove.
8210 (main): Don't call define_location_structures.
8211 * tree-pretty-print.c (dump_implicit_edges): Remove old location
8212 code.
8213
4f01eeb4
MLI
82142008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8215
cd7e0bd4 8216 PR 26264
4f01eeb4
MLI
8217 * builtins.def (BUILT_IN_STDARG_START): Remove.
8218 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8219 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8220 * tree-inline.c (inline_forbidden_p_1): Likewise.
8221
bbd59cf4
RG
82222008-02-26 Richard Guenther <rguenther@suse.de>
8223
8224 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8225 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8226 (lookup_decl_from_uid): Declare.
8227 (remove_decl_from_map): Likewise.
8228 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8229 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8230 (decl_for_uid_map): New global hashtable mapping DECL_UID
8231 to the decl tree.
8232 (init_ttree): Allocate it.
8233 (insert_decl_to_uid_decl_map): New helper function.
8234 (make_node_stat): Insert new decls into the map.
8235 (copy_node_stat): Likewise.
8236 (lookup_decl_from_uid): New function.
8237 (remove_decl_from_map): Likewise.
8238 (print_decl_for_uid_map_statistics): New helper.
8239 (dump_tree_statistics): Call it.
8240
8241 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8242 (referenced_var_iterator): Adjust.
8243 (FOR_EACH_REFERENCED_VAR): Adjust.
8244 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8245 (num_referenced_vars): Adjust.
8246 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8247 (first_referenced_var): Remove.
8248 (end_referenced_vars_p): Likewise.
8249 (next_referenced_var): Likewise.
8250 (referenced_var_iterator_set): New helper function.
8251 * tree-dfa.c (referenced_var_lookup): Adjust.
8252 (referenced_var_check_and_insert): Likewise.
8253 (remove_referenced_var): Likewise.
8254 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8255 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8256 (verify_call_clobbering): Likewise.
8257 (verify_memory_partitions): Likewise.
8258 (init_tree_ssa): Allocate bitmap instead of hashtable for
8259 referenced_vars.
8260 (delete_tree_ssa): Adjust.
8261 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8262 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8263 (compute_tag_properties): Likewise.
8264 (set_initial_properties): Likewise.
8265 (find_partition_for): Likewise.
8266 (update_reference_counts): Likewise.
8267 (dump_may_aliases_for): Likewise.
8268 * tree-ssa-operands.c (add_virtual_operand): Likewise.
8269 (add_call_clobber_ops): Likewise.
8270 (add_call_read_ops): Likewise.
8271 (get_asm_expr_operands): Likewise.
8272 * tree-into-ssa.c (dump_decl_set): Likewise.
8273 (update_ssa): Likewise.
8274 * tree-sra.c (scan_function): Likewise.
8275 (decide_instantiations): Likewise.
8276 (scalarize_parms): Likewise.
8277 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8278 (dsa_named_for): Likewise.
8279 * tree-ssa-structalias.c (update_alias_info): Likewise.
8280 (merge_smts_into): Likewise.
8281
16302daf
MLI
82822008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8283
8284 PR 34351
8285 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8286 * c-opts.c (c_common_handle_option): Wall enables
8287 Wvolatile-register-var.
8288 * common.opt: Move Wvolatile-register-var to...
8289 * c.opt: ...here.
8290
e8fc888d
MLI
82912008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8292
8293 * common.opt (Wlarger-than=): New.
8294 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8295 -Wlarger-than=.
8296 * opts.c (common_handle_option): Handle -Wlarger-than=.
8297 * optc-gen.awk: Likewise.
8298 * opth-gen.awk: Likewise.
8299 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8300 * tree-optimize.c (tree_rest_of_compilation): Likewise.
8301
683d6ff9
MLI
83022008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8303
8304 * c-common.c (match_case_to_enum_1): Add appropriate
8305 OPT_W* parameter to warning.
8306 (c_do_switch_warnings): Likewise.
8307 * c-typeck.c (warning_init): Add one more parameter following
8308 'warning' function.
8309 (push_init_level): Update call to warning_init.
8310 (pop_init_level): Likewise.
8311 (add_pending_init): Likewise.
8312 (output_init_element: Likewise.
8313
369dcbd9
MLI
83142008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8315
8316 PR 28322
8317 * toplev.c (toplev_main): If there are warnings or error, print
8318 errors for ignored options.
8319 * opts.c (ignored_options): New static variable.
8320 (postpone_unknown_option_error): New.
8321 (print_ignored_options): New.
8322 (handle_option): Postpone errors for unknown -Wno-* options.
8323 * opts.h (print_ignored_options): Declare.
8324
23dc794c
RS
83252008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
8326
8327 * config/mips/mips.md (loadgp_blockage, blockage): Change type
8328 to "ghost".
8329
381a258b
RG
83302008-02-25 Richard Guenther <rguenther@suse.de>
8331
8332 Revert:
8333 2008-02-25 Richard Guenther <rguenther@suse.de>
8334
8335 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8336 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8337 (lookup_decl_from_uid): Declare.
8338 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8339 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8340 (decl_for_uid_map): New global hashtable mapping DECL_UID
8341 to the decl tree.
8342 (init_ttree): Allocate it.
8343 (insert_decl_to_uid_decl_map): New helper function.
8344 (make_node_stat): Insert new decls into the map.
8345 (copy_node_stat): Likewise.
8346 (lookup_decl_from_uid): New function.
8347 (print_decl_for_uid_map_statistics): New helper.
8348 (dump_tree_statistics): Call it.
8349
8350 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8351 (referenced_var_iterator): Adjust.
8352 (FOR_EACH_REFERENCED_VAR): Adjust.
8353 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8354 (num_referenced_vars): Adjust.
8355 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8356 (first_referenced_var): Remove.
8357 (end_referenced_vars_p): Likewise.
8358 (next_referenced_var): Likewise.
8359 (referenced_var_iterator_set): New helper function.
8360 * tree-dfa.c (referenced_var_lookup): Adjust.
8361 (referenced_var_check_and_insert): Likewise.
8362 (remove_referenced_var): Likewise.
8363 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8364 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8365 (verify_call_clobbering): Likewise.
8366 (verify_memory_partitions): Likewise.
8367 (init_tree_ssa): Allocate bitmap instead of hashtable for
8368 referenced_vars.
8369 (delete_tree_ssa): Adjust.
8370 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8371 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8372 (compute_tag_properties): Likewise.
8373 (set_initial_properties): Likewise.
8374 (find_partition_for): Likewise.
8375 (update_reference_counts): Likewise.
8376 (dump_may_aliases_for): Likewise.
8377 * tree-ssa-operands.c (add_virtual_operand): Likewise.
8378 (add_call_clobber_ops): Likewise.
8379 (add_call_read_ops): Likewise.
8380 (get_asm_expr_operands): Likewise.
8381 * tree-into-ssa.c (dump_decl_set): Likewise.
8382 (update_ssa): Likewise.
8383 * tree-sra.c (scan_function): Likewise.
8384 (decide_instantiations): Likewise.
8385 (scalarize_parms): Likewise.
8386 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8387 (dsa_named_for): Likewise.
8388 * tree-ssa-structalias.c (update_alias_info): Likewise.
8389 (merge_smts_into): Likewise.
8390
89453ec7
JB
83912008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
8392
8393 PR fortran/29549
8394 * doc/invoke.texi (-fcx-limited-range): Document new option.
8395 * toplev.c (process_options): Handle -fcx-fortran-rules.
cd7e0bd4 8396 * common.opt: Add documentation for -fcx-fortran-rules.
89453ec7 8397
8cc6d3e0
JB
83982008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
8399
8400 PR c/35162
8401 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8402 actual behaviour and C99.
8403
cd679487
BE
84042008-02-26 Ben Elliston <bje@au.ibm.com>
8405
8406 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8407 (ASM_CPU_POWER6_SPEC): Likewise.
8408 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8409 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8410 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8411
7660c722
RG
84122008-02-25 Richard Guenther <rguenther@suse.de>
8413
8414 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8415 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8416 (lookup_decl_from_uid): Declare.
8417 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8418 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8419 (decl_for_uid_map): New global hashtable mapping DECL_UID
8420 to the decl tree.
8421 (init_ttree): Allocate it.
8422 (insert_decl_to_uid_decl_map): New helper function.
8423 (make_node_stat): Insert new decls into the map.
8424 (copy_node_stat): Likewise.
8425 (lookup_decl_from_uid): New function.
8426 (print_decl_for_uid_map_statistics): New helper.
8427 (dump_tree_statistics): Call it.
8428
8429 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8430 (referenced_var_iterator): Adjust.
8431 (FOR_EACH_REFERENCED_VAR): Adjust.
8432 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8433 (num_referenced_vars): Adjust.
8434 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8435 (first_referenced_var): Remove.
8436 (end_referenced_vars_p): Likewise.
8437 (next_referenced_var): Likewise.
8438 (referenced_var_iterator_set): New helper function.
8439 * tree-dfa.c (referenced_var_lookup): Adjust.
8440 (referenced_var_check_and_insert): Likewise.
8441 (remove_referenced_var): Likewise.
8442 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8443 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8444 (verify_call_clobbering): Likewise.
8445 (verify_memory_partitions): Likewise.
8446 (init_tree_ssa): Allocate bitmap instead of hashtable for
8447 referenced_vars.
8448 (delete_tree_ssa): Adjust.
8449 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8450 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8451 (compute_tag_properties): Likewise.
8452 (set_initial_properties): Likewise.
8453 (find_partition_for): Likewise.
8454 (update_reference_counts): Likewise.
8455 (dump_may_aliases_for): Likewise.
8456 * tree-ssa-operands.c (add_virtual_operand): Likewise.
8457 (add_call_clobber_ops): Likewise.
8458 (add_call_read_ops): Likewise.
8459 (get_asm_expr_operands): Likewise.
8460 * tree-into-ssa.c (dump_decl_set): Likewise.
8461 (update_ssa): Likewise.
8462 * tree-sra.c (scan_function): Likewise.
8463 (decide_instantiations): Likewise.
8464 (scalarize_parms): Likewise.
8465 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8466 (dsa_named_for): Likewise.
8467 * tree-ssa-structalias.c (update_alias_info): Likewise.
8468 (merge_smts_into): Likewise.
8469
2e4e39f6
AK
84702008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
8471
8472 PR target/35258
8473 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8474 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8475 * alias.h (nonoverlapping_memrefs_p): Likewise.
8476
891984af
JB
84772008-02-25 Jan Beulich <jbeulich@novell.com>
8478
c92712d1 8479 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
891984af
JB
8480 * config/i386/netware-libgcc.exp: Add __bswap?i2,
8481 __emultls_get_address, __emultls_register_common,
8482 __floatundi?f, and _Unwind_GetIPInfo.
8483 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8484 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8485 (gen_regparm_prefix): Likewise.
8486 (i386_nlm_encode_section_info): Sync with
8487 config/i386/winnt.c:i386_pe_encode_section_info().
8488 (i386_nlm_maybe_mangle_decl_assembler_name): New.
8489 i386_nlm_mangle_decl_assembler_name): New.
8490 (netware_override_options): New.
8491 * config/i386/netware.h (netware_override_options): Declare.
8492 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8493 (i386_nlm_mangle_decl_assembler_name): Declare.
8494 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8495
98266db0
BE
84962008-02-25 Ben Elliston <bje@au.ibm.com>
8497
8498 PR other/32948
8499 * c-decl.c (grokdeclarator): Remove unused local variables
8500 `typedef_type' and `type_as_written'.
8501 * bb-reorder.c
8502 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8503 unused local variable `has_hot_blocks'.
8504 (fix_crossing_conditional_branches): Remove unused local variable
8505 `prev_bb'.
8506
93e50125
UB
85072008-02-25 Uros Bizjak <ubizjak@gmail.com>
8508
8509 PR middle-end/19984
8510 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8511 using DEF_C99_BUILTIN.
8512 (BUILT_IN_NANF): Ditto.
8513 (BUILT_IN_NANL): Ditto.
8514
0de5a32f 85152008-02-25 Ayal Zaks <zaks@il.ibm.com>
433331d4 8516 Revital Eres <eres@il.ibm.com>
0de5a32f
AZ
8517
8518 * modulo-sched.c (calculate_must_precede_follow): Address TODO
8519 regarding the order of two dependent insns in the same row.
8520
d4cba6d4
EB
85212008-02-25 Eric Botcazou <ebotcazou@adacore.com>
8522
8523 * stor-layout.c (layout_decl): Do not bump the alignment of a
8524 bit-field to more than byte alignment if it is packed.
8525
642639ce
DE
85262008-02-24 David Edelsohn <edelsohn@gnu.org>
8527
8528 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8529 e300c2 and e300c3.
8530
faebccf9
DN
85312008-02-24 Diego Novillo <dnovillo@google.com>
8532
8533 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8534
8535 PR 33738
8536 * tree-vrp.c (vrp_evaluate_conditional): With
8537 -Wtype-limits, emit a warning when comparing against a
8538 constant outside the natural range of OP0's type.
8539 * c.opt (Wtype-limits): Move ...
8540 * common.opt (Wtype-limits): ... here.
8541
88c7f01b 85422008-02-24 Edmar Wienskoski <edmar@freescale.com>
fa41c305
EW
8543
8544 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8545 * config/rs6000/e300c2c3.md: New file.
8546 * config/rs6000/rs6000.c (processor_costs): Add new costs for
8547 e300c2 and e300c3.
8548 (rs6000_override_options): Add e300c2 and e300c3 cases to
8549 processor_target_table. Do not allow usage of Altivec or Spe
8550 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8551 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8552 * config/rs6000/rs6000.h (processor_type): Add
8553 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8554 (ASM_CPU_SPEC): Add e300c2 and e300c3.
8555 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8556 and ppce300c3. Include e300c2c3.md.
8557
153fbec8
DE
85582008-02-23 David Edelsohn <edelsohn@gnu.org>
8559
8560 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8561 instead of TARGET_STRICT_ALIGN.
8562
03d4f106
JM
85632008-02-23 Joseph Myers <joseph@codesourcery.com>
8564
8565 * explow.c (memory_address): Assert that the generated address is
8566 valid.
8567
fb220235
FXC
85682008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
8569
8570 PR target/25477
8571 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8572 * config/darwin-ppc-ldouble-patch.def: New file.
8573 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8574 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8575 SUBTARGET_INIT_BUILTINS if defined.
93e50125
UB
8576 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8577 New functions.
fb220235 8578
f79db4f6
AP
85792008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
8580
8581 PR rtl-opt/33512
8582 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8583 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8584
bb1f73c2
AP
85852008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
8586
8587 PR pch/35027
8588 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8589 file" warning condtional on -Winvalid-PCH.
8590
8ddcfde1
DJ
85912008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
8592
8593 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8594
84495fd9
UB
85952008-02-23 Uros Bizjak <ubizjak@gmail.com>
8596
8597 PR target/22076
8598 PR target/34256
8599 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8600 prevent reload from using MMX registers.
8601 (*mov<mode>_internal): Ditto.
8602 (*movv2sf_internal_rex64): Ditto.
8603 (*movv2sf_internal): Ditto.
8604
73c17ad2
RW
86052008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8606
8607 PR documentation/31569
8608 * doc/install.texi2html: Use makeinfo --no-number-sections.
8609
61dd226f
NF
86102008-02-22 Nathan Froyd <froydnj@codesourcery.com>
8611
8612 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8613 ensure that we can address an entire entity > 8 bytes. Don't
8614 generate reg+reg addressing for such data.
8615
2165fd38
NF
86162008-02-22 Nathan Froyd <froydnj@codesourcery.com>
8617
8618 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8619 strings when optimizing for size, unless the target cares about
8620 alignment.
8621
ad5ebb34
TT
86222008-02-22 Tom Tromey <tromey@redhat.com>
8623
8624 * regclass.c (current_pass): Remove declaration.
8625
34d02d17
AS
86262008-02-22 Anatoly Sokolov <aesok@post.ru>
8627
8628 * config/avr/libgcc.S (__RAMPZ__): Define.
8629 (__do_copy_data): Add for devices with 128KB code memory.
8630
a4899c01
NF
86312008-02-22 Nathan Froyd <froydnj@codesourcery.com>
8632
8633 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8634 Use spe_abi.
8635 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8636
fe82487e
HPN
86372008-02-22 Hans-Peter Nilsson <hp@axis.com>
8638
8639 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8640 GENNONACR_REGS.
8641
ae311566
RW
86422008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8643
8644 PR c/19999
8645 * c-typeck.c (build_binary_op): Warn about floating point
8646 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8647
a2db2771
JJ
86482008-02-21 Janis Johnson <janis187@us.ibm.com>
8649
8650 PR target/34526
8651 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8652 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8653 add vrsave.
8654 (rs6000_override_options): Set altivec_abi as default, not override,
8655 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8656 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8657 is used; use new member spe_abi.
8658 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8659 spe_abi and altivec_abi.
8660
89fd06fb
TB
86612008-02-22 Tomas Bily <tbily@suse.cz>
8662
8663 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8664
703fdf5a
RW
86652008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8666
8667 PR bootstrap/35273
8668 * config.build (build_file_translate): Set to `CMD //c' only if
8669 it works.
8670 * Makefile.in (build_file_translate): Improve comment.
8671
0ca16832
JH
86722008-02-21 Jan Hubicka <jh@suse.cz>
8673
8674 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8675 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8676 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8677
c754abbf
MM
86782008-02-21 Michael Matz <matz@suse.de>
8679
8680 PR target/35264
8681 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8682
85845bb9
UB
86832008-02-21 Uros Bizjak <ubizjak@gmail.com>
8684
8685 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8686 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8687 as insn constraint.
8688 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8689 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8690 SSE_VEC_FLOAT_MODE_P as insn constraint.
8691 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8692 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8693 sse4a_movntdf using MODEF mode iterator.
8694 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8695 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8696 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8697 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8698 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8699 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8700 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8701
dedd42d5
RG
87022008-02-21 Richard Guenther <rguenther@suse.de>
8703
8704 * tree.def (PAREN_EXPR): New tree code.
8705 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8706 and PAREN_EXPR.
8707 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8708 * expr.c (expand_expr_real_1): Likewise.
8709 * tree-inline.c (estimate_num_insns_1): Likewise.
8710 * tree-complex.c (expand_complex_move): Likewise.
8711 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8712 as plain x.
8713
7a3cb3ab
KK
87142008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
8715
8716 PR target/35225
8717 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8718
6d4d15b8
KK
87192008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
8720
8721 PR target/35190
8722 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8723
8724 * config/sh/sh.c (find_barrier): Don't go past
8725 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8726
6d4a8967
DD
87272008-02-20 DJ Delorie <dj@redhat.com>
8728
8729 * config/h8300/h8300.md (insv): Force source operand to be a register.
8730
8731 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8732 as a jump, not as a plain insn.
8733
a214518f
SP
87342008-02-20 Seongbae Park <seongbae.park@gmail.com>
8735
8736 * doc/invoke.texi (Warning Options): Add new option
8737 -Wframe-larger-than=.
8738 (-Wframe-larger-than): Document.
8739
8740 * flags.h (warn_frame_larger_than, frame_larger_than_size):
8741 Add declarations for new option variables.
8742
8743 * final.c (final_start_function): Check the frame size
8744 before emission and issue a Wframe-larger-than warning.
8745
8746 * opts.c (warn_frame_larger_than, frame_larger_than_size):
8747 Add definitions for new option variables.
8748 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8749
8750 * common.opt (Wframe-larger-than=): New option.
8751
993ac7c7
UB
87522008-02-20 Uros Bizjak <ubizjak@gmail.com>
8753
8754 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8755 (<sse>_div<mode>3): Ditto.
8756 (<sse>_vmdiv<mode>3): Ditto.
8757 (<sse>_vmsqrt<mode>2): Ditto.
8758 (*smax<mode>3): Ditto.
8759 (sse5_frcz<mode>2): Ditto.
8760 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
8761 as insn constraint.
8762
4cd8e76f
RG
87632008-02-20 Richard Guenther <rguenther@suse.de>
8764
8765 PR middle-end/35265
8766 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8767 be happy with INTEGRAL_TYPE_P.
8768
41bb1f06
RG
87692008-02-20 Richard Guenther <rguenther@suse.de>
8770
8771 * fold-const.c (split_tree): Associate floatig-point expressions
8772 if flag_associative_math is set.
8773
2dc0f633
RG
87742008-02-20 Richard Guenther <rguenther@suse.de>
8775
8776 * tree.h (fold_real_zero_addition_p): Declare.
8777 * fold-const.c (fold_real_zero_addition_p): Export.
8778 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8779 floating-point operations with zero and one.
8780
1c8bd6a3
PB
87812008-02-20 Paolo Bonzini <bonzini@gnu.org>
8782
4b40b2a5
UB
8783 * doc/install.texi: Correct references to CFLAGS, replacing them
8784 with BOOT_CFLAGS. Document flags used during bootstrap for
8785 target libraries.
1c8bd6a3 8786
d6023b50
UB
87872008-02-20 Uros Bizjak <ubizjak@gmail.com>
8788
8789 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8790 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8791 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8792 insn constraint.
8793 (smin<mode>3): Ditto from similar patterns.
8794 (smax<mode>3): Ditto.
8795 (*ieee_smin<mode>3): Ditto.
8796 (*ieee_smax<mode>3): Ditto.
8797 * config/i386/sse.md (sse): New mode attribute.
8798 (mov<mode>): Macroize expander from movv4sf and movv2df using
8799 SSEMODEF2P mode iterator.
8800 (<sse>_movnt<mode>): Ditto from similar patterns. Use
8801 SSE_VEC_FLOAT_MODE_P as insn constraint.
8802 (storent<mode>): Ditto.
8803 (storent<mode>): Macroize expander from storentsf and storentdf using
8804 MODEF mode iterator.
8805 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8806 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8807 (abs<mode>2): Ditto from similar patterns.
8808 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8809 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8810 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8811 (<sse>_vmsqrt<mode>2): Ditto.
8812 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8813 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8814 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8815 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8816 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8817 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8818 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8819 insn constraint.
8820 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8821 iterator and SSE_FLOAT_MODE_P as insn constraint.
8822 (<sse>_ucomi): Ditto from similar patterns.
8823 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8824 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8825 SSE_VEC_FLOAT_MODE_P as insn constraint.
8826 (vcond<mode>): Ditto from similar patterns.
8827 (and<mode>3, *and<mode>3): Ditto.
8828 (<sse>_nand<mode>3): Ditto.
8829 (ior<mode>3, *ior<mode>3): Ditto.
8830 (xor<mode>3, *xor<mode>3): Ditto.
8831 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8832 iterator and SSE_FLOAT_MODE_P as insn constraint.
8833 (*nand<mode>3): Ditto from similar patterns.
8834 (*ior<mode>3): Ditto.
8835 (*xor<mode>3): Ditto.
8836
76a893cf
IR
88372008-02-20 Ira Rosen <irar@il.ibm.com>
8838
8839 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8840 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8841 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8842
daac0317
JH
88432008-02-19 Jan Hubicka <jh@suse.cz>
8844
a8971bdb
UB
8845 * predict.c (tree_bb_level_predictions): Remove variable next
8846 mistakely introduced by previous commit.
daac0317 8847
3e4b9ad0
JH
88482008-02-19 Jan Hubicka <jh@suse.cz>
8849
8850 * predict.c (predict_paths_leading_to): Rewrite.
8851 (predict_paths_for_bb): New.
8852 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8853
a0e527e3
RW
88542008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8855
8856 PR bootstrap/35218
8857 * Makefile.in (build_file_translate): New.
8858 (gcc-vers.texi): Use it for translating $(abs_srcdir).
8859 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8860 * configure.ac (build_file_translate): Substitute it.
8861 * configure: Regenerate.
8862
9d5cee3d
JH
88632008-02-19 Jan Hubicka <jh@suse.cz>
8864
8865 PR rtl-optimization/34408
3e4b9ad0
JH
8866 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8867 invalid sharing.
9d5cee3d 8868
8723e2fe
JH
88692008-02-19 Jan Hubicka <jh@suse.cz>
8870
8871 PR middle-end/28779
3e4b9ad0
JH
8872 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8873 call_expr.
8723e2fe 8874
5ba5440f
L
88752008-02-19 H.J. Lu <hongjiu.lu@intel.com>
8876
8877 PR Ada/35186
8878 * config/i386/i386-modes.def: Revert the last DI alignment
8879 change until Ada people can look into it.
8880
c01c261d
NC
88812008-02-19 Nick Clifton <nickc@redhat.com>
8882
8883 * opts.c (print_specific_help): Fix typo in --help text.
8884
2e834acb
JJ
88852008-02-19 Jakub Jelinek <jakub@redhat.com>
8886
8887 PR target/35239
8888 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8889 32-bit inline asm without asm alternatives for host GCC < 3.0.
8890
9cadd7f7
RG
88912008-02-19 Richard Guenther <rguenther@suse.de>
8892
8893 PR tree-optimization/34989
8894 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8895 Allow propagation to INDIRECT_REF if we can simplify only.
8896
ffc30173
MLI
88972008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8898
8899 * c-common.c (warn_for_collisions_1): Use appropriate option when
8900 warning.
8901
b3eaaf1a
NC
89022008-02-19 Nick Clifton <nickc@redhat.com>
8903
8904 PR other/31349
a8971bdb 8905 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
b3eaaf1a
NC
8906 (handle_options): Fix indentation.
8907 (print_filtered_help): If no language-specific options were
8908 displayed tell the user how to list all the options supported by
8909 the language's front-end.
8910 (print_specific_help): Fix indentation and remove duplicate line.
8911 (common_handle_option): Handle the -v option.
8912 For --help enable the display of undocumented options if the -v
8913 switch has been included on the command line.
8914 For --help= check for overlaps in the arguments between the option
8915 classes and the language names and issue a warning when they
8916 cannot be disambiguated.
8917 * c.opt (v): Pass on to the common option handler.
8918
de82c453
RE
89192008-02-19 Revital Eres <eres@il.ibm.com>
8920
8921 * modulo-sched.c (sms_schedule): Change dump message when
8922 create_ddg function fails.
8923 (try_scheduling_node_in_cycle): Rename row to cycle.
8924 (print_partial_schedule): Rename CYCLE to ROW.
8925
32159434 89262008-02-19 Christian Bruel <christian.bruel@st.com>
a8971bdb
UB
8927 Zdenek Dvorak <ook@ucw.cz>
8928
8929 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8930
0e93e1b4
UB
89312008-02-19 Uros Bizjak <ubizjak@gmail.com>
8932
8933 PR target/33555
8934 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8935 (*x86_movdicc_0_m1_se): Ditto.
8936
02d353cf
UB
89372008-02-19 Uros Bizjak <ubizjak@gmail.com>
8938
8939 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8940 (CMPtype): Define as __gcc_CMPtype.
8941 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8942 (CMPtype): Define as __gcc_CMPtype.
8943
35dee980
HPN
89442008-02-19 Hans-Peter Nilsson <hp@axis.com>
8945
8946 Support valgrind 3.3 for --enable-checking=valgrind.
8947 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8948 here.
8949 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8950 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8951 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8952 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8953 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8954 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8955 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8956 respectively.
8957 * ggc-zone.c: Similar.
8958 * ggc-page.c: Similar.
8959
27e03cf1
PB
89602008-02-19 Paul Brook <paul@codesourcery.com>
8961
8962 PR target/35071
8963 * config/arm/ieee754-df.S: Fix do_it typo.
8964 * config/arm/ieee754-sf.S: Fix do_it typo.
8965
287a7d41
L
89662008-02-18 H.J. Lu <hongjiu.lu@intel.com>
8967
8968 PR target/35189
8969 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8970 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8971 (OPTION_MASK_ISA_SSE_SET): Likewise.
8972 (OPTION_MASK_ISA_SSE2_SET): Likewise.
8973 (OPTION_MASK_ISA_SSE3_SET): Likewise.
8974 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8975 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8976 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8977 (OPTION_MASK_ISA_SSE4_SET): Likewise.
8978 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8979 (OPTION_MASK_ISA_SSE5_SET): Likewise.
8980 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8981 (OPTION_MASK_ISA_MMX_UNSET): Updated.
8982 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8983 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8984 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8985 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8986 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8987 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8988 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8989 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8990 (OPTION_MASK_ISA_SSE4): Removed.
8991 (ix86_handle_option): Turn on bits in ix86_isa_flags and
3b509e33 8992 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
287a7d41
L
8993 (override_options): Don't turn on implied SSE/MMX bits in
8994 ix86_isa_flags.
8995
feaffcaa
L
89962008-02-18 H.J. Lu <hongjiu.lu@intel.com>
8997
8998 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8999 32bit host.
9000
b2ae828d
JY
90012008-02-18 Joey Ye <joey.ye@intel.com>
9002
9003 PR middle-end/34921
9004 * tree-nested.c (insert_field_into_struct): Set type alignment
9005 to field alignment if the former is less than the latter.
9006
8d855c3d
JJ
90072008-02-18 Jakub Jelinek <jakub@redhat.com>
9008
9009 * BASE-VER: Set to 4.4.0.
9010
923158be
RW
90112008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9012
9013 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
9014 * doc/cfg.texi: Likewise.
9015 * doc/extend.texi: Likewise.
9016 * doc/gty.texi: Likewise.
9017 * doc/invoke.texi: Likewise.
9018 * doc/loop.texi: Likewise.
9019 * doc/md.texi: Likewise.
9020 * doc/passes.texi: Likewise.
9021 * doc/rtl.texi: Likewise.
9022 * doc/sourcebuild.texi: Likewise.
9023 * doc/tm.texi: Likewise.
9024 * doc/tree-ssa.texi: Likewise.
9025
f0a77246
RG
90262008-02-17 Richard Guenther <rguenther@suse.de>
9027
9028 PR middle-end/35227
9029 * tree-complex.c (init_parameter_lattice_values): Handle parameters
9030 without default definition.
9031
e09deb14
RG
90322008-02-17 Richard Guenther <rguenther@suse.de>
9033
9034 PR tree-optimization/35231
9035 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
9036 if A | B != 1.
9037
e6528d32
UB
90382008-02-17 Uros Bizjak <ubizjak@gmail.com>
9039
9040 Revert:
e6528d32
UB
9041 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
9042 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9043 libgcc_cmp_return mode.
9044
93e052a8
MLI
90452008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9046
9047 PR c/28368
9048 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
9049
2a49e6f8
RC
90502008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
9051
9052 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
9053 multilibs.
9054
0ee2ea09
RW
90552008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9056
9057 * doc/c-tree.texi: Use `@.' where appropriate.
9058 * doc/extend.texi: Likewise.
9059 * doc/install.texi: Likewise.
9060 * doc/invoke.texi: Likewise.
9061 * doc/loop.texi: Likewise.
9062 * doc/makefile.texi: Likewise.
9063 * doc/md.texi: Likewise.
9064 * doc/passes.texi: Likewise.
9065 * doc/standards.texi: Likewise.
9066 * doc/tm.texi: Likewise.
9067
ac84c062
JJ
90682008-02-15 Jakub Jelinek <jakub@redhat.com>
9069
9070 PR middle-end/35196
9071 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
9072 in entry_bb.
9073 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
9074 rather than in entry_bb.
9075
6a9e8571
UB
90762008-02-15 Uros Bizjak <ubizjak@gmail.com>
9077
9078 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
9079 libgcc_cmp_return mode.
9080
6837b3b8
JJ
90812008-02-15 Jakub Jelinek <jakub@redhat.com>
9082
9083 PR middle-end/35130
9084 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
9085 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
9086
2e58df6e 90872008-02-15 Richard Guenther <rguenther@suse.de>
6a9e8571 9088 Zdenek Dvorak <ook@ucw.cz>
2e58df6e
RG
9089
9090 PR tree-optimization/35164
9091 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
9092 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
9093 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9094 Only propagate addresses which do not have abnormal SSA_NAMEs
9095 in their operands.
9096
206598fb
JM
90972008-02-15 Joseph Myers <joseph@codesourcery.com>
9098
9099 PR target/35088
9100 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
9101
18168b3f
JH
91022008-02-15 Jan Hubicka <jh@suse.cz>
9103
9104 PR middle-end/35149
9105 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
9106
6f6b8f81
UB
91072008-02-15 Uros Bizjak <ubizjak@gmail.com>
9108
9109 PR middle-end/34621
9110 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
9111 when calculating alignment_pad.
9112
979c67a5
UB
91132008-02-15 Uros Bizjak <ubizjak@gmail.com>
9114
9115 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
9116 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
9117 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
9118 and STACK_BOUNDARY define.
9119
101e174d
DS
91202008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
9121
9122 PR preprocessor/35061
9123 * c-pragma.c (handle_pragma_pop_macro): Check that
9124 pushed_macro_table has been allocated.
9125
928bc34f
EB
91262008-02-14 Eric Botcazou <ebotcazou@adacore.com>
9127
9128 PR middle-end/35136
9129 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
9130 (force_gimple_operand): Likewise.
9131 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
9132 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
9133 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
9134 (find_interesting_uses_address): Check addressability and alignment
9135 of the base expression only after substituting bases of IVs into it.
9136
a5bfb13a
MM
91372008-02-14 Michael Matz <matz@suse.de>
9138
9139 PR target/34930
9140 * function.c (instantiate_virtual_regs_in_insn): Reload address
9141 before falling back to reloading the whole operand.
9142
b49326f1
AK
91432008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
9144
9145 * config/s390/s390.c (s390_mainpool_start): Emit the pool
9146 before the first section switch note.
9147
021efafc
RW
91482008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9149
346341a4
RW
9150 * doc/bugreport.texi: Update copyright years.
9151 * doc/c-tree.texi: Likewise.
9152 * doc/cfg.texi: Likewise.
9153 * doc/cpp.texi: Likewise.
9154 * doc/cppinternals.texi: Likewise.
9155 * doc/fragments.texi: Likewise.
9156 * doc/frontends.texi: Likewise.
9157 * doc/gcc.texi: Likewise.
9158 * doc/gty.texi: Likewise.
9159 * doc/hostconfig.texi: Likewise.
9160 * doc/implement-c.texi: Likewise.
9161 * doc/libgcc.texi: Likewise.
9162 * doc/loop.texi: Likewise.
9163 * doc/makefile.texi: Likewise.
9164 * doc/options.texi: Likewise.
9165 * doc/passes.texi: Likewise.
9166 * doc/rtl.texi: Likewise.
9167 * doc/sourcebuild.texi: Likewise.
9168 * doc/standards.texi: Likewise.
9169 * doc/tree-ssa.texi: Likewise.
9170 * doc/trouble.texi: Likewise.
9171
021efafc
RW
9172 * doc/extend.texi: Use @: or add comma where appropriate.
9173 * doc/invoke.texi: Likewise.
9174 * doc/tm.texi: Likewise.
9175
583da60a
AM
91762008-02-14 Alan Modra <amodra@bigpond.net.au>
9177
9178 PR target/34393
9179 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
9180 to a reg.
9181
2a6627c2
JN
91822008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
9183
9184 * doc/md.texi (clz, ctz): Add reference.
9185 * doc/rtl.texi (clz, ctz): Likewise.
9186
1b0c753a
RW
91872008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9188
9189 PR other/35148
9190 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9191 srcdir.
9192
03870a04
AK
91932008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
9194
9195 * config/s390/s390.c (struct constant_pool): New field
9196 emit_pool_after added.
9197 (s390_mainpool_start): Set the emit_pool_after flag according
9198 to the section switch notes.
9199 (s390_mainpool_finish): Consider emit_pool_after when emitting
9200 the literal pool at the end of the function.
9201 (s390_chunkify_start): Force literal pool splits at section
9202 switch notes.
9203
be71b673
MM
92042008-02-13 Michael Matz <matz@suse.de>
9205
9206 PR debug/35065
9207 * var-tracking.c (clobber_variable_part): Correctly traverse the
9208 list.
9209
fed39e22
MLI
92102008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9211
9212 PR 29673
9213 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9214 Add -fdump-ipa-inline.
9215 * tree-dump.c (dump_files): Remove tree-inlined dump.
9216 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9217
8665227f
RG
92182008-02-12 Richard Guenther <rguenther@suse.de>
9219
9220 PR tree-optimization/35171
9221 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9222 default defs.
9223
8f768a5a
RG
92242008-02-12 Richard Guenther <rguenther@suse.de>
9225
9226 PR middle-end/35163
9227 * fold-const.c (fold_widened_comparison): Use get_unwidened in
9228 value-preserving mode. Disallow final truncation.
9229
81186f7b
EB
92302008-02-12 Eric Botcazou <ebotcazou@adacore.com>
9231
9232 PR middle-end/35136
9233 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9234 code from here to...
9235 (force_gimple_operand): ...here.
9236
d7b8033f
JJ
92372008-02-12 Jakub Jelinek <jakub@redhat.com>
9238
e4521d11
JJ
9239 PR c++/35144
9240 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9241 non-compatible pointers.
9242 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9243 different FIELD_DECLs, try harder by comparing field offsets, sizes
9244 and types.
9245
d7b8033f
JJ
9246 PR inline-asm/35160
9247 * function.c (match_asm_constraints_1): Don't replace the same input
9248 multiple times.
9249
d6f77715
AS
92502008-02-12 Anatoly Sokolov <aesok@post.ru>
9251
9252 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9253 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9254 (expand_epilogue): Restore RAMPZ register.
9255 * config/avr/avr.md (RAMPZ_ADDR): New constant.
9256
35b35fd0
KT
92572008-02-11 Kai Tietz <kai.tietz@onevision.com>
9258
40049ccc 9259 * config/i386/cygwin.asm: (__alloca): Correct calling
35b35fd0
KT
9260 convention and alignment.
9261 (__chkstk): Force 8 byte stack alignment.
9262
a6e2d112 92632008-02-11 Uros Bizjak <ubizjak@gmail.com>
f8c5cff4 9264 Richard Guenther <rguenther@suse.de>
a6e2d112
UB
9265
9266 PR tree-optimization/33992
9267 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9268 the zero we compare against.
9269
40049ccc
UB
92702008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
9271
9272 PR libfortran/35063
9273 * gthr-win32.h (__gthread_mutex_destroy_function): New function
9274 to CloseHandle after unlocking to prevent accumulation of handle
9275 count.
9276
4d811a05
JDA
92772008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9278
9279 PR middle_end/34150
9280 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9281 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
9282 and update LABEL_NUSES during and after reload.
9283
e37f6a49
SB
92842008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
9285
9286 PR middle-end/34627
a3395528 9287 * combine.c (simplify_if_then_else): Make sure the comparison is
e37f6a49
SB
9288 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9289
34917a10
RS
92902008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
9291
9292 PR bootstrap/35051
9293 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9294 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9295 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9296 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9297 * tree.h (get_type_static_bounds): Likewise.
9298
670b0231
RW
92992008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9300
9301 * doc/invoke.texi (Option Summary, C++ Dialect Options)
9302 (Objective-C and Objective-C++ Dialect Options, Warning Options):
9303 Make -Wfoo language annotations match what the compiler outputs.
9304
069c47ee
SL
93052008-02-08 Sa Liu <saliu@de.ibm.com>
9306
9307 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
9308 intrinsics spu_convts, spu_convtu, spu_convtf.
069c47ee 9309
ccd2a21e
HPN
93102008-02-08 Hans-Peter Nilsson <hp@axis.com>
9311
9312 * doc/extend.texi (Function Attributes) <noinline>: Mention
9313 asm ("") as method to keep calls.
9314
af47e6ac
MLI
93152008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9316
9317 PR other/32754
9318 * doc/options.texi (Options): Replace references to opts.sh with
9319 optc-gen.awk.
9320 * opts-common.c: Likewise.
9321 * optc-gen.awk: Likewise.
9322
96e2afa8
AK
93232008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
9324
9325 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9326
93272008-02-07 Richard Henderson <rth@redhat.com>
32891ff6
RH
9328
9329 PR rtl-opt/33410
9330 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9331 EXPR_LIST for the REG_EQUAL instead of a comparison with a
9332 funny mode.
9333
c4ae80d9
UB
93342008-02-07 Uros Bizjak <ubizjak@gmail.com>
9335
9336 PR tree-optimization/35085
9337 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9338 for operand entry oe2 in addition to operand entry oe3 in order to
9339 expose more opportunities for vectorizer sum reduction.
9340
72fb133f
KG
93412008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9342
9343 PR other/35107
9344 * Makefile.in (LIBS): Remove $(GMPLIBS).
9345 (cc1-dummy, cc1): Add $(GMPLIBS).
9346
20a415f8
JH
93472008-02-06 Jan Hubicka <jh@suse.cz>
9348
88b089d5 9349 PR target/23322
20a415f8
JH
9350 * i386.md (moddf_integer): Do not produce partial memory stalls for
9351 targets where it hurts.
9352
cc8d36a1
UB
93532008-02-06 Uros Bizjak <ubizjak@gmail.com>
9354
9355 PR target/35083
9356 * optabs.c (expand_float): Do not check for decimal modes when
9357 expanding unsigned integer through signed conversion.
9358
2ccd9cb2
NC
93592008-02-06 Nick Clifton <nickc@redhat.com>
9360
9361 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9362 inside the clobber with a match_operand and duplicated operand
9363 number in the constraint.
9364 (ineqbranchsi): Delete redundant comment.
9365
ecb2366e
RC
93662008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
9367
448b96d0
RC
9368 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
9369 builtin_define ("__USE_INIT_FINI__").
9370 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9371 -msx multilibs.
ecb2366e
RC
9372 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9373
ccd4e386
RW
93742008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9375
9376 PR documentation/30330
9377 * doc/invoke.texi (C++ Dialect Options)
9378 (Objective-C and Objective-C++ Dialect Options, Warning Options):
9379 For each warning option -Wfoo that allows -Wno-foo, ensure both
9380 -Wfoo and -Wno-foo are listed in the option index. Fix index
9381 entry of -Wswitch-default, index -Wnormalized= including the
9382 `=', and -Wlarger-than-@var{len} including @var{len}.
9383
def7425b
UB
93842008-02-05 Uros Bizjak <ubizjak@gmail.com>
9385
9386 * config/i386/i386.md (floatunssisf2): Use
9387 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9388 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9389 Macroize expander using MODEF mode iterator.
9390
c1e7d240
DN
93912008-02-05 Diego Novillo <dnovillo@google.com>
9392
9393 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9394
9395 PR 33738
def7425b 9396 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
c1e7d240 9397
3a204175
KG
93982008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9399
9400 PR other/35070
9401 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9402
7074bc2e
L
94032008-02-05 H.J. Lu <hongjiu.lu@intel.com>
9404
9405 PR target/35084
9406 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9407 to indicate if a message should be generated.
9408 (init_cumulative_args): Updated.
9409 (function_value_32): Likewise.
9410
0f5098ae
JM
94112008-02-05 Joseph Myers <joseph@codesourcery.com>
9412
9413 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9414
4a534152
UB
94152008-02-05 Uros Bizjak <ubizjak@gmail.com>
9416
9417 PR target/35083
9418 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9419 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9420
3467b230
DN
94212008-02-04 Diego Novillo <dnovillo@google.com>
9422
9423 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9424
9425 PR 33738
9426 * tree-vrp.c (vrp_evaluate_conditional): With
9427 -Wtype-limits, emit a warning when comparing against a
9428 constant outside the natural range of OP0's type.
9429
22199fd2
RG
94302008-02-04 Richard Guenther <rguenther@suse.de>
9431
9432 PR middle-end/33631
9433 * expr.c (count_type_elements): Give for unions instead of
9434 guessing.
9435
1a1640db
RG
94362008-02-04 Richard Guenther <rguenther@suse.de>
9437
9438 PR middle-end/35043
9439 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9440 to TYPE_DOMAINs base type instead of using bitsizetype here.
9441
0fcedd9c
JM
94422008-02-03 Jason Merrill <jason@redhat.com>
9443
9444 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9445
a31cfd58
RW
94462008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9447
9448 PR other/29972
9449 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9450 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9451 (RS/6000 and PowerPC Options): Fix typos and markup.
9452 * doc/passes.texi (Tree-SSA passes): Likewise.
9453
6994f254
MM
94542008-02-02 Michael Matz <matz@suse.de>
9455
9456 PR target/35045
9457 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9458 from record_last_reg_set_info.
9459 (record_last_reg_set_info): Take an RTX argument, iterate over all
9460 constituent hardregs.
9461 (record_last_set_info, record_opr_changes): Change calls to
9462 new signature or to record_last_reg_set_info_regno.
9463
27f56cb1
GP
94642008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
9465
9466 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9467
3e836a31
HPN
94682008-02-01 Hans-Peter Nilsson <hp@axis.com>
9469
9470 PR rtl-optimization/34773
9471 * reg-notes.def (EQUAL): Mention significance of combination of
9472 REG_EQUAL and REG_RETVAL.
9473 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9474 insn that has a REG_RETVAL.
9475
d5be1dd4
RS
94762008-02-01 Roger Sayle <roger@eyesopen.com>
9477
9478 PR bootstrap/33781
9479 * configure.ac (--enable-fixed-point): Disable unless explicitly
9480 requested on IRIX.
9481 * configure: Regenerate.
9482
7c9c2f2a
RG
94832008-02-01 Richard Guenther <rguenther@suse.de>
9484
9485 PR other/35042
9486 * invoke.texi (-finline-limit): Remove no longer true parts
9487 of the documentation. Note that there is no default value.
9488
a18c20ec
AP
94892008-02-01 Andrew Pinski <pinskia@gmail.com>
9490 Mark Mitchell <mark@codesourcery.com>
9491 Ben Elliston <bje@au.ibm.com>
9492
9493 PR c/29326
9494 * doc/extend.texi (Other Builtins): Document.
9495
dc9a511d
TB
94962008-01-31 Tom Browder <tom.browder@gmail.com>
9497
9498 * doc/c-tree.texi (Types): Fix grammar.
9499 (Expression trees): Ditto.
9500 * doc/passes.texi (Tree-SSA passes): Ditto.
9501
9502 * doc/configterms.texi (Configure Terms): Fix typo.
9503 * doc/cpp.texi (Common Predefined Macros): Ditto.
9504 * doc/md.texi (Machine Constraints): Ditto.
9505
9506 * doc/makefile.texi (Makefile): Add comma.
9507
5dc81ee9
TB
95082008-01-31 Tom Browder <tom.browder@gmail.com>
9509 Gerald Pfeifer <gerald@pfeifer.com>
9510
9511 * doc/sourcebuild.texi (Front End): Remove references to CVS
9512 and CVSROOT/modules.
9513 (Texinfo Manuals): Replace reference to CVS by one to SVN.
9514 (Back End): Remove reference to CVS.
9515
5ca3d30c
RS
95162008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
9517
9518 PR target/34900
9519 * config/mips/mips.c (gen_load_const_gp): New function, taking a
9520 comment from...
9521 (mips16_gp_pseudo_reg): ...here.
9522 * config/mips/mips.md (load_const_gp): Replace with...
9523 (load_const_gp_<mode>): ...this :P-based insn.
9524
89fe7f1b
MLI
95252008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9526
9527 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9528 options. Minor fixes.
9529 (-std): Move reference to standards closer to where language
9530 standards are first mentioned.
9531
1f7f6676
RS
95322008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
9533
9534 PR rtl-optimization/34995
9535 * reload.c (alternative_allows_const_pool_ref): Take an rtx
9536 parameter and return a bool. If the rtx parameter is nonnull,
9537 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9538 (find_reloads): Update call accordingly. Pass the new operand
9539 if it needed no address reloads, otherwise pass null.
9540
2ae7b972
RH
95412008-01-30 Richard Henderson <rth@redhat.com>
9542
9543 PR c/34993
9544 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9545 for unbounded arrays.
9546
493f36a7
SR
95472008-01-30 Silvius Rus <rus@google.com>
9548
9549 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9550
d6951cae
JH
95512008-01-30 Jan Hubicka <jh@suse.cz>
9552
9553 PR target/34982
9554 * i386.c (init_cumulative_args): Use real function declaration when
9555 calling locally.
9556
f36a5a88
RS
95572008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
9558
9559 PR rtl-optimization/34998
9560 * global.c (build_insn_chain): Treat non-subreg_lowpart
9561 SUBREGs of pseudos as clobbering all the words covered by the
9562 SUBREG, not just all the bytes.
9563 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
9564 original df_ref rather than an extract parameter.
9565 (global_conflicts): Update call accordingly.
9566
393c0058
AK
95672008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
9568
9569 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9570 the overflow check to make it easier to read.
9571 (__fixtfdi): Change the type of the ll member in union
9572 long_double to UDItype_x.
9573
1033ffa8
JJ
95742008-01-30 Jakub Jelinek <jakub@redhat.com>
9575
2bafad93
JJ
9576 PR middle-end/34969
9577 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9578 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9579 * tree-inline.c (fold_marked_statements): Call
9580 cgraph_update_edges_for_call_stmt if folding a call statement.
9581 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9582 debug_generic_stmt calls, reset it back afterwards.
9583
1033ffa8
JJ
9584 PR c/35017
9585 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9586 static decls.
9587 * c-typeck.c (build_external_ref): Don't pedwarn about
9588 static vars in current function's scope.
9589
ed32d842
JM
95902008-01-29 Joseph Myers <joseph@codesourcery.com>
9591
9592 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9593
ea429753
BF
95942008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
9595
9596 PR c/35002
9597 * ipa-struct-reorg.c: Fix spelling.
9598 * params.def: Ditto.
9599
4f5c64b8
RG
96002008-01-29 Richard Guenther <rguenther@suse.de>
9601
9602 PR middle-end/35006
9603 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9604 field.
9605 * tree-inline.c (remap_type): Increment remapping_type_depth
9606 around remapping types.
9607 (copy_body_r): Only add referenced variables if they are referenced
9608 from code, not types.
9609
7b3e2d46
DG
96102008-01-29 Douglas Gregor <doug.gregor@gmail.com>
9611
9612 PR c++/34055
9613 PR c++/34103
9614 PR c++/34219
9615 PR c++/34606
9616 PR c++/34753
9617 PR c++/34754
9618 PR c++/34755
9619 PR c++/34919
9620 PR c++/34961
9621 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9622 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9623
12720317
AH
96242008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
9625
9626 PR target/34412
9627 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
9628 pointer for tiny stack.
9629
b814cc0a
BF
96302008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
9631
9632 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9633
f46ff798
BF
96342008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
9635
9636 * config/vx-common.h: Fix typo in comment.
9637
e8b0eabc
ILT
96382008-01-28 Ian Lance Taylor <iant@google.com>
9639
9640 PR c++/34862
9641 PR c++/33407
9642 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9643 coalesce pointers if they have different DECL_NO_TBAA_P values.
9644 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9645 between variables with different DECL_NO_TBAA_P values.
9646
2aa42e6e
NF
96472008-01-28 Nathan Froyd <froydnj@codesourcery.com>
9648
9649 PR 31535
9650 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9651 are not legitimate small data references on SPE targets.
9652
4e2e9e9b
DD
96532008-01-28 David Daney <ddaney@avtrex.com>
9654
9655 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9656
a26c7632
DD
96572008-01-28 David Daney <ddaney@avtrex.com>
9658
9659 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
9660
4f605349
JM
96612008-01-27 Joseph Myers <joseph@codesourcery.com>
9662
9663 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9664 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9665 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9666 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9667 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9668 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9669 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9670 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9671
9e148d6a
BF
96722008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
9673
9674 * basic-block.h (condjump_equiv_p): Fix comment.
9675
f749d3c6
BF
96762008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
9677
9678 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9679 print_generic_stmt_indented): Fix comment.
9680
fed6d628
BF
96812008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
9682
9683 * configure.ac (__stack_chk_fail): Add detecion for availability
9684 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9685 * configure: Regenerate.
9686
c01e4479
MK
96872008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
9688
9689 PR middle-end/34688
9690 * final.c (output_addr_const): Handle TRUNCATE.
9691
6e8c65f6
ZD
96922008-01-26 Zdenek Dvorak <ook@ucw.cz>
9693
9694 PR target/34711
9695 * tree-ssa-loop-ivopts.c (comp_cost): New type.
9696 (zero_cost, infinite_cost): New constants.
9697 (struct cost_pair): Change type of cost to comp_cost.
9698 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9699 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9700 New functions.
9701 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9702 split_address_cost, ptr_difference_cost, difference_cost,
9703 get_computation_cost_at, get_computation_cost,
9704 determine_use_iv_cost_generic, determine_use_iv_cost_address,
9705 determine_use_iv_cost_condition, determine_use_iv_costs,
9706 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9707 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9708 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9709 Change type of cost to comp_cost.
9710 (determine_iv_cost): Increase cost of non-original ivs, instead
9711 of decreasing the cost of original ones.
9712 (get_address_cost): Indicate the complexity of the addressing mode
9713 in comp_cost.
9714 (try_add_cand_for): Prefer using ivs not specific to some object.
9715 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9716
c01e4479 97172008-01-26 Peter Bergner <bergner@vnet.ibm.com>
e41b2a33
PB
9718 Janis Johnson <janis187@us.ibm.com>
9719
9720 PR target/34814
9721 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9722 (TARGET_INSTANTIATE_DECLS): Likewise.
9723 * target.h (expand_to_rtl_hook): New target hook.
9724 (instantiate_decls): Likewise.
9725 * function.c (instantiate_decl): Make non-static. Rename to...
9726 (instantiate_decl_rtl): ... this.
9727 (instantiate_expr): Use instantiate_decl_rtl.
9728 (instantiate_decls_1): Likewise.
9729 (instantiate_decls): Likewise.
9730 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9731 * function.h (instantiate_decl_rtl): Add prototype.
9732 * cfgexpand.c (target.h): New include.
9733 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9734 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9735 (TARGET_INSTANTIATE_DECLS): Likewise.
9736 (TARGET_INITIALIZER): New target hooks added.
9737 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9738 New prototype.
9739 * config/rs6000/rs6000.c (tree-flow.h): New include.
9740 (machine_function): Add sdmode_stack_slot field.
9741 (rs6000_alloc_sdmode_stack_slot): New function.
9742 (rs6000_instantiate_decls): Likewise.
9743 (rs6000_secondary_memory_needed_rtx): Likewise.
9744 (rs6000_check_sdmode): Likewise.
9745 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9746 (TARGET_INSTANTIATE_DECLS): Likewise.
9747 (rs6000_hard_regno_mode_ok): Allow SDmode.
9748 (num_insns_constant): Likewise. Handle _Decimal32 constants.
9749 (rs6000_emit_move): Handle SDmode.
9750 (function_arg_advance): Likewise.
9751 (function_arg): Likewise.
9752 (rs6000_gimplify_va_arg): Likewise. Add special handling of
9753 SDmode var args for 32-bit compiles.
9754 (rs6000_secondary_reload_class): Handle SDmode.
9755 (rs6000_output_function_epilogue): Likewise.
9756 (rs6000_function_value): Simplify if statement.
9757 (rs6000_libcall_value): Likewise.
9758 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9759 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9760 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9761 (movsd_hardfloat): New define_insn.
9762 (movsd_softfloat): Likewise.
9763 (movsd_store): Likewise.
9764 (movsd_load): Likewise.
9765 (extendsddd2): Likewise.
9766 (extendsdtd2): Likewise.
9767 (truncddsd2): Likewise.
9768 (movdd_hardfloat64): Fixup comment.
9769 (UNSPEC_MOVSD_LOAD): New constant.
9770 (UNSPEC_MOVSD_STORE): Likewise.
9771
6f536f74
JJ
97722008-01-26 Jakub Jelinek <jakub@redhat.com>
9773
9774 PR c++/34965
9775 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9776 TRUTH_XOR_EXPR.
9777 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9778 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9779 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9780 and TRUTH_XOR_EXPR.
9781
ba6a1b78
DE
97822008-01-26 David Edelsohn <edelsohn@gnu.org>
9783
9784 PR target/34794
9785 * config.gcc: Separate AIX 5.3 from AIX 6.1.
9786 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9787 __LONGDOUBLE128 too.
9788 * config/rs6000/aix61.h: New file.
9789
1230d7f8
RS
97902008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
9791
9792 PR rtl-optimization/34959
9793 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9794 popcount and parity rtxes the same mode as their operand.
9795 Truncate or extend the result to the return value's mode
9796 if necessary.
9797
dbc90b65
RS
97982008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
9799
9800 PR target/34981
9801 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9802 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9803 to GOT_VERSION_REGNUM.
9804 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9805 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9806 * config/mips/mips.c (mips_emit_call_insn): New function.
9807 (mips_call_tls_get_addr): Call mips_expand_call directly.
9808 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9809 emit_call_insn.
9810 (mips16_build_call_stub): Likewise. Return the call insn or null.
9811 (mips_expand_call): Update the call to mips16_build_call_stub
9812 accordingly and a remove redundant condition. Assert that MIPS16
9813 stubs do not use lazy binding. Use mips_emit_call_insn and return
9814 the call insn.
9815 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9816 TARGET_USE_GOT.
9817 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9818 (mips_avoid_hazard): Remove hazard_set handling.
9819 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9820 (UNSPEC_RESTORE_GP): ...this.
9821 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9822 (FAKE_CALL_REGNO): Rename to...
9823 (GOT_VERSION_REGNUM): ...this.
9824 (type): Add "ghost" value. Add an associated insn reservation.
9825 (hazard_set): Remove.
9826 (exception_receiver): Rename to...
9827 (restore_gp): ...this and update the unspec identifier accordingly.
9828 (exception_receiver, nonlocal_got_receiver): New expanders.
9829 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
9830 FAKE_CALL_REGNO. Remove hazard_set attribute.
9831 (set_got_version, update_got_version): New patterns.
9832
763a27ee
DS
98332008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
9834
9835 PR target/34970
9836 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9837
3725c0ca
JM
98382008-01-25 Joseph Myers <joseph@codesourcery.com>
9839
9840 PR other/31955
9841 * doc/install.texi2html: Generate gcc-vers.texi.
9842
0288980f
DD
98432008-01-25 DJ Delorie <dj@redhat.com>
9844
9845 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9846
8d8da227
JM
98472008-01-25 Joseph Myers <joseph@codesourcery.com>
9848
9849 * config/c4x: Remove directory.
9850 * config.gcc (crx-*, mt-*): Mark obsolete.
9851 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9852 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9853 sh-*-rtemscoff*): Remove cases.
9854 * defaults.h (C4X_FLOAT_FORMAT): Remove.
9855 * real.c (encode_c4x_single, decode_c4x_single,
9856 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9857 c4x_extended_format): Remove.
9858 * real.h (c4x_single_format, c4x_extended_format): Remove.
9859 * doc/extend.texi (interrupt, naked): Remove mention of attributes
9860 on C4x.
9861 (Pragmas): Remove comment about c4x pragmas.
9862 * doc/install.texi (c4x): Remove target-specific instructions.
9863 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9864 * doc/md.texi (Machine Constraints): Remove C4x documentation.
9865 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9866 refer to C4x source files as examples.
9867 (C4X_FLOAT_FORMAT): Remove documentation.
9868
fb7c3b05
BS
98692008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
9870
9871 * config/bfin/bfin.c (override_options): Reorder tests so that
9872 flag_pic gets enabled for -msep-data.
9873
dd3b33d7
RG
98742008-01-25 Richard Guenther <rguenther@suse.de>
9875
9876 PR middle-end/32244
9877 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9878 to its bitfield precision if required.
9879
c256730c
JJ
98802008-01-25 Jakub Jelinek <jakub@redhat.com>
9881
9882 PR middle-end/33880
9883 * tree-nested.c (walk_omp_for): New function.
9884 (convert_nonlocal_reference, convert_local_reference): Call
9885 walk_omp_for on OMP_FOR.
9886 (convert_call_expr): Call walk_body on OMP_FOR's
9887 OMP_FOR_PRE_INIT_BODY.
9888
59805c3b
RG
98892008-01-25 Richard Guenther <rguenther@suse.de>
9890
9891 PR tree-optimization/34966
9892 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9893 default defs and PHI_NODEs we have to insert after the
9894 defining statement.
9895
f84fe9b6
NC
98962008-01-24 Nick Clifton <nickc@redhat.com>
9897
9898 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9899 Provide a default definition.
9900 (LIBGCC2_UNITS_PER_WORD): Likewise.
9901
9902 * config/stormy16/stormy16.c: Include df.h for the prototype
9903 for df_regs_ever_live_p.
9904 (xstormy16_expand_builtin_va_start): Convert the stack offset
9905 into a component_ref and then use POINTER_PLUS_EXPR to add it
9906 to the incoming_virtual_args_rtx.
9907 (xstormy16_gimplify_va_arg_expr): Rename to
9908 xstormy16_gimplify_va_arg_expr.
9909 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9910 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9911 xstormy16_gimplify_va_arg_expr.
9912 Fix up some formatting issues.
9913
9914 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9915 Move to predicates.md.
9916 (xs_hi_general_operand): Likewise.
9917 (xs_hi_nonmemory_operand): Likewise.
9918 * config/stormy16/predicates.md:
9919 (xstormy16_carry_plus_operand): New predicate.
9920 (xs_hi_general_operand): New predicate.
9921 (xs_hi_nonmemory_operand): New predicate.
9922 * config/stormy16/stormy16-protos.h:
9923 (xstormy16_carry_plus_operand): Delete prototype.
9924 (xs_hi_general_operand): Likewise.
9925 (xs_hi_nonmemory_operand): Likewise.
9926
9927 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9928 modifiers as they are no longer needed and they can trigger
9929 reload spill failures.
9930
9931 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9932 with a match_operand in order to help reload.
9933
9934 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9935 constraint with 'e' for the 8th alternative as this version of
9936 the mov.w instruction only accepts the lower 8 registers.
9937
d1f0728e
UB
99382008-01-25 Uros Bizjak <ubizjak@gmail.com>
9939
9940 PR target/34856
9941 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9942 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9943 vector elements.
9944
80e67011
JJ
99452008-01-25 Jakub Jelinek <jakub@redhat.com>
9946
9947 PR middle-end/33333
9948 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9949
1525f2c3
GO
99502008-01-25 Golovanevsky Olga <olga@il.ibm.com>
9951
9952 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9953 New functions.
9954 (remove_structure): Update allocations list before removing structure.
9955
bd91d743
OG
99562008-01-25 Golovanevsky Olga <olga@il.ibm.com>
9957
9958 * ipa-struct-reorg.c (is_safe_cond_expr,
9959 create_new_stmts_for_cond_expr): Use integer_zerop function,
9960 that recognize not only zero-pointer, but zero-integer too.
9961
ae7a8ebc
BE
99622008-01-25 Ben Elliston <bje@au.ibm.com>
9963
9964 PR other/22232
9965 * fixproto: Escape "." in sed expression that strips leading "./".
9966
3371362c
L
99672008-01-24 H.J. Lu <hongjiu.lu@intel.com>
9968
9969 PR driver/34904
9970 * gcc.c (SWITCH_OK): Removed.
9971 (SWITCH_LIVE): Changed to bit.
9972 (SWITCH_FALSE): Likewise.
9973 (SWITCH_IGNORE): Likewise.
9974 (switchstr): Change live_cond to unsigned int.
9975 (process_command): Replace SWITCH_OK with 0.
9976 (do_self_spec): Likewise.
9977 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9978 (give_switch): Likewise.
9979 (used_arg): Likewise.
9980 (do_spec_1): Set the SWITCH_IGNORE bit.
9981 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9982 bits. Set the SWITCH_LIVE bit.
9983
5f1b2ee6
AK
99842008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
9985
9986 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9987
986d97ed
RS
99882008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
9989
9990 PR tree-optimization/34472
9991 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9992 parameter to a "bool *" and set *DATA to false if there is
9993 an unsafe access. Do not delete the structure here.
9994 (check_cond_exprs): Delete it here instead.
9995 (check_cond_exprs, exclude_cold_structs): Do not increase
9996 I when removing a structure.
9997
fcc44808
UB
99982008-01-24 Uros Bizjak <ubizjak@gmail.com>
9999
10000 PR target/34856
10001 * config/i386/i386.c (ix86_expand_vector_init): Consider only
10002 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
10003
134c2de3
JJ
100042008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
10005
10006 PR middle-end/34934
10007 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
10008 a fixed vector for stack.
10009
89bf8683
BE
100102008-01-24 Ben Elliston <bje@au.ibm.com>
10011
10012 PR c++/25701
10013 * doc/gcc.texi (Software development): Add a direntry for g++.
10014
02a4bca9
HPN
100152008-01-23 Hans-Peter Nilsson <hp@axis.com>
10016
6c660aeb
HPN
10017 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
10018 stale and straggling -fforce-addr comments above.
10019
02a4bca9
HPN
10020 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
10021 define.
10022 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
10023 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
10024
b4da9f9d
MM
100252008-01-23 Michael Matz <matz@suse.de>
10026
10027 PR debug/34895
10028 * dwarf2out.c (force_type_die): Use modified_type_die instead of
10029 gen_type_die.
10030
1b7af7b0
AK
100312008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
10032
10033 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
10034 malloc result type.
10035
19298da4
AS
100362008-01-23 Anatoly Sokolov <aesok@post.ru>
10037
10038 * config/avr/avr.c (avr_current_arch): New variable.
10039 (avr_arch_types): Add 'avr31' and 'avr51' entries.
10040 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
10041 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
10042 (avr_override_options): Init 'avr_current_arch'.
10043 (base_arch_s): Move from here...
10044 * config/avr/avr.h (base_arch_s): ... here. Add new members
10045 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
10046 'mega' to 'have_jmp_call'.
10047 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
10048 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
10049 macros.
10050 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
10051 architectures.
10052 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10053 MULTILIB_MATCHES): (Ditto.).
10054
b86b3ea3
RG
100552008-01-23 Richard Guenther <rguenther@suse.de>
10056
10057 PR middle-end/31529
10058 * cgraphunit.c (cgraph_reset_node): Always mark the node
10059 not reachable if it is not queued already.
10060
fa8d4a0f
BS
100612008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
10062
10063 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
10064 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
10065 (cputype_selected): New static variable.
10066 (bfin_handle_option): Set it if -mcpu is used.
10067 (override_option): Select default set of workarounds if no cpu type
10068 selected on the command line.
10069 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
64882649
BS
10070
10071 From Michael Frysinger <michael.frysinger@analog.com>
10072 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
10073 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
10074
10075 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
10076 for bf547, bf523, bf524, and bf526.
10077 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
10078 bf526.
10079 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10080 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
10081 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
10082 __ADSPBF547__ and __ADSPBF54x__ for bf547.
10083 * doc/invoke.texi (Blackfin Options): Document that
10084 -mcpu now accept bf547, bf523, bf524, and bf526.
10085
df1a98ae
EB
100862008-01-22 Eric Botcazou <ebotcazou@adacore.com>
10087
10088 PR rtl-optimization/34628
10089 * combine.c (try_combine): Stop and undo after the first combination
10090 if an autoincrement side-effect on the first insn has effectively
10091 been lost.
10092
1a23970d
DE
100932008-01-22 David Edelsohn <edelsohn@gnu.org>
10094
10095 PR target/34529
10096 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10097 Offset addresses are not valid for Altivec or paired float modes.
10098
42a89d2d
JJ
100992008-01-22 Jakub Jelinek <jakub@redhat.com>
10100
61c3a446
JJ
10101 PR c++/34607
10102 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
10103 if DECL_INITIAL (decl) is error_mark_node.
10104
270e749d
JJ
10105 PR c++/34914
10106 * c-common.c (handle_vector_size_attribute): Only allow
10107 integral, scalar float and fixed point types. Handle OFFSET_TYPE
10108 the same way as pointer, array etc. types.
10109 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
10110
42a89d2d
JJ
10111 PR c++/34917
10112 * tree.c (build_type_attribute_qual_variant): Call
10113 build_qualified_type if attributes are equal, but quals are not.
10114
027b740e
MLI
101152008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10116
10117 PR 32102
10118 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
10119 * flags.h (warn_strict_aliasing): Remove.
10120 (warn_strict_overflow): Remove.
10121 * opts.c (warn_strict_aliasing): Remove.
10122 (warn_strict_overflow): Remove.
10123 * c-opts.c (c_common_handle_option): -Wall only sets
10124 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
10125 (c_common_post_options): Give default values to -Wstrict-aliasing
10126 and -Wstrict-overflow if they are uninitialized.
10127 * common.opt (Wstrict-aliasing): Specify Var and Init.
10128 (Wstrict-overflow): Likewise.
10129
4218dc2d 101302008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
963acd6f
KZ
10131
10132 PR rtl-optimization/26854
10133 PR rtl-optimization/34400
10134 PR rtl-optimization/34884
10135 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
10136 DF_RD->gen.
10137 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
10138 (df_rd_bb_info.expanded_lr_out): Deleted
10139 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
10140 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
10141 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10142 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10143 Removed code to allocate, initialize or free expanded_lr_out.
10144 (df_rd_bb_local_compute_process_def): Restructured to make more
10145 understandable.
10146 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
10147 sets if the sets are being trimmed.
10148
115e6e55
L
101492008-01-22 H.J. Lu <hongjiu.lu@intel.com>
10150
10151 PR bootstrap/32287
10152 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
10153 (as_vers): Likewise.
10154 * configure: Regenerated.
10155
f9d02384
MLI
101562008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10157
10158 PR middle-end/33092
10159 * tree-pass.h (pass_build_alias): New pass.
10160 * tree-ssa-alias.c (gate_build_alias): New.
10161 (pass_build_alias): New.
10162 * passes.c (init_optimization_passes): Add pass_build_alias after
10163 pass_create_structure_vars.
10164
0387c142
WG
101652008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
10166
10167 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
10168 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
10169 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
10170 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
10171 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
10172 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
10173 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
10174 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
10175 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
10176 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
10177 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
10178 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
10179 * config/s390/s390.md (FP_ALL): New mode iterator.
10180 (_d): New mode attribute.
10181 ("*signbit<mode>2>"): Changed mode of first operand.
10182 ("isinf<mode>2"): Changed mode of first operand.
10183 ("*TDC_insn"): Adaptation for DFP modes.
10184
1d4f5374
BE
101852008-01-22 Ben Elliston <bje@au.ibm.com>
10186
10187 * tree.c (check_qualified_type): Improve function description.
10188
33b45227
JM
101892008-01-21 Jason Merrill <jason@redhat.com>
10190
10191 PR c++/34196
10192 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10193 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10194 if it is set.
10195
79e168da
DD
101962008-01-21 DJ Delorie <dj@redhat.com>
10197
10198 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10199 return zero.
10200
bb0c55f6
RG
102012008-01-21 Richard Guenther <rguenther@suse.de>
10202
10203 PR middle-end/34856
10204 * tree-cfg.c (verify_expr): Allow all invariant expressions
10205 instead of just constant class ones as reference argument.
10206 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10207 like any other constant.
10208 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10209
94c54fea
L
102102008-01-21 H.J. Lu <hongjiu.lu@intel.com>
10211
10212 * regmove.c (fixup_match_1): Update call crossed frequencies.
10213
c54e3854
RG
102142008-01-21 Richard Guenther <rguenther@suse.de>
10215
10216 PR c/34885
10217 * tree-inline.c (setup_one_parameter): Deal with mismatched
10218 types using a VIEW_CONVERT_EXPR.
10219
b158b5c6
AD
102202008-01-21 Alon Dayan <alond@il.ibm.com>
10221 Olga Golovanevsky <olga@il.ibm.com>
10222
10223 PR tree-optimization/34701
10224 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10225 when the structure size is not a power of 2.
10226
4218dc2d 102272008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
604f825c
KZ
10228
10229 * doc/install.texi: Add doc for --enable-checking=df.
10230
539c54ba
KK
102312008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
10232
10233 PR rtl-optimization/34808
10234 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10235
ecff8c1c
RS
102362008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
10237
10238 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10239 input.
10240
4218dc2d 102412008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2b49e1a0
KZ
10242
10243 PR rtl-optimization/26854
10244 PR rtl-optimization/34400
10245 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10246 DF_RD->gen.
10247 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10248 (df_rd_bb_info.expanded_lr_out): New.
10249 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10250 * loop_iv.c (iv_analysis_loop_init): Ditto.
10251 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10252 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10253 Added code to allocate, initialize or free expanded_lr_out.
10254 (df_rd_bb_local_compute_process_def): Restructured to make
10255 more understandable.
10256 (df_rd_confluence_n): Add code to do nothing with fake edges and
10257 code to no apply invalidate_by_call sets if the sets are being trimmed.
10258 (df_lr_local_finalize): Renamed to df_lr_finalize.
10259 (df_live_local_finalize): Renamed to df_live_finalize.
10260
0decaff6
RS
102612008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
10262
10263 PR target/34831
10264 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10265 deciding whether to use reciprocal instructions.
10266
d0b9dbd5
UB
102672008-01-19 Uros Bizjak <ubizjak@gmail.com>
10268
10269 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10270 dwarf2out_note_section_used if cold_text_section is NULL.
10271
135a171d
JJ
102722008-01-19 Jakub Jelinek <jakub@redhat.com>
10273
10274 PR gcov-profile/34610
10275 * tree-cfg.c (make_edges): Mark both outgoing edges from
10276 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10277 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10278 from OMP_FOR and OMP_CONTINUE outgoing edges.
10279
10280 * tree-profile.c (tree_profiling): Return early if
10281 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
10282 at the end.
10283 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10284 from cfun to child_cfun.
10285 * function.h (struct function): Add after_tree_profile bit.
10286
0a84fec6
AS
102872008-01-19 Anatoly Sokolov <aesok@post.ru>
10288
10289 * config/avr/avr.S (_exit): Disable interrupt.
10290
5aa52064
KZ
102912008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
10292 Steven Bosscher <stevenb.gcc@gmail.com>
10293
10294 PR rtl-optimization/26854
10295 PR rtl-optimization/34400
10296 * df-problems.c (df_live_scratch): New scratch bitmap.
10297 (df_live_alloc): Allocate df_live_scratch when doing df_live.
10298 (df_live_reset): Clear the proper bitmaps.
10299 (df_live_bb_local_compute): Only process the artificial defs once
10300 since the order is not important.
10301 (df_live_init): Init the df_live sets only with the variables
10302 found live by df_lr.
10303 (df_live_transfer_function): Use the df_lr sets to prune the
10304 df_live sets as they are being computed.
10305 (df_live_free): Free df_live_scratch.
10306
28a08168
ILT
103072008-01-18 Ian Lance Taylor <iant@google.com>
10308
10309 * common.opt: Add fmerge-debug-strings.
10310 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10311 flag_merge_debug_strings rather than flag_merge_constants.
10312 * doc/invoke.texi (Option Summary): Mention
10313 -fmerge-debug-strings.
10314 (Debugging Options): Document -fmerge-debug-strings.
10315
1ea193c2
ILT
103162008-01-18 Ian Lance Taylor <iant@google.com>
10317
10318 PR c++/33407
10319 * tree.h (DECL_IS_OPERATOR_NEW): Define.
10320 (struct tree_function_decl): Add new field operator_new_flag.
10321 * tree-inline.c (expand_call_inline): When inlining a call to
10322 operator new, force the return value to go into a variable, and
10323 set DECL_NO_TBAA_P on that variable.
10324 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10325
74ab34d3
UB
103262008-01-18 Uros Bizjak <ubizjak@gmail.com>
10327
10328 PR debug/34484
10329 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10330 DWARF2_DEBUGGING_INFO.
10331 (dwarf2out_note_section_used): Ditto. Add prototype.
10332 (have_multiple_function_sections, text_section_used,
10333 cold_text_section_used, *cold_text_sections): Move declarations
10334 before their uses.
10335
9a75e92d 103362008-01-17 Bob Wilson <bob.wilson@acm.org>
6c633d45
BW
10337
10338 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10339 field and add signal_ra.
10340 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10341 assignments to frame state pc. Move end of stack check after
10342 MD_FALLBACK_FRAME_STATE_FOR.
10343 (uw_update_context_1): Use frame state signal_regs if set, instead
10344 of checking signal_frame flag.
10345 (uw_update_context): Use frame state signal_ra if set.
10346 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10347 * config/xtensa/linux-unwind.h: New file.
10348
9a75e92d 103492008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
4117d6f7
BF
10350
10351 * modulo-sched.c (get_sched_window): Fix comment typo.
10352
fae25b37
AM
103532008-01-17 Andrew MacLeod <amacleod@redhat.com>
10354
10355 PR tree-optimization/34648
10356 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10357
2e152e16
AS
103582008-01-17 Anatoly Sokolov <aesok@post.ru>
10359
10360 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10361 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10362
185082a7
SP
103632008-01-17 Seongbae Park <seongbae.park@gmail.com>
10364
10365 PR rtl-optimization/34400
10366 * df-core.c (df_worklist_dataflow_overeager,
10367 df_worklist_dataflow_doublequeue): New functions.
10368 (df_worklist_dataflow): Two different worklist solvers.
10369 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10370 New param.
10371
01a550c2
SP
103722008-01-16 Sebastian Pop <sebastian.pop@amd.com>
10373
10374 PR testsuite/34821
10375 * doc/invoke.texi: Document the dependence on pthread for fopenmp
10376 and ftree-parallelize-loops.
10377
80663107
MN
103782008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
10379
10380 PR rtl-optimization/34826
10381 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10382
599824d2
AK
103832008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
10384
10385 * global.c (find_reg): Mark the eh regs as used if necessary.
10386 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10387 * ra.h (struct allocno): no_eh_reg field added. Changed
10388 no_stack_reg type to bitfield.
10389
9328dd57
EB
103902008-01-17 Eric Botcazou <ebotcazou@adacore.com>
10391
10392 * tree.c (substitute_in_expr): Add missing 'break'.
10393
8a5b57cd
RG
103942008-01-17 Richard Guenther <rguenther@suse.de>
10395
10396 PR tree-optimization/34825
10397 * tree-ssa-math-opts.c (is_division_by): Do not recognize
10398 x / x as division to handle.
10399
e7ce29e7
JDA
104002008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10401
10402 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10403 "-pthread" is specified.
10404 * pa-hpux11.h (LIB_SPEC): Likewise.
10405
9a75e92d 104062008-01-16 Janis Johnson <janis187@us.ibm.com>
37b87a3a
JJ
10407 Peter Bergner <bergner@vnet.ibm.com>
10408
10409 PR rtl-optimization/33796
10410 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10411
6595ec51
JDA
104122008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10413
10414 PR libgfortran/34699
10415 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10416 static links.
10417 * pa-hpux10.h (LINK_SPEC): Likewise.
10418 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10419
bdb55eae
RG
104202008-01-16 Richard Guenther <rguenther@suse.de>
10421
10422 PR middle-end/32628
10423 * fold-const.c (fold_convert_const_int_from_int): Do not
10424 set overflow if that occured only because of a sign extension
10425 change when converting from/to a sizetype with the same
10426 precision and signedness.
10427
2e2c7ce2
UB
104282008-01-16 Uros Bizjak <ubizjak@gmail.com>
10429
10430 PR debug/34249
10431 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10432 location address to the correct place. Update copyright year.
10433
d49c149d
SP
104342008-01-16 Sebastian Pop <sebastian.pop@amd.com>
10435
10436 * lambda-code.c (lambda_transform_legal_p): Handle the case of
10437 no dependences in the dependence_relations vector.
10438
a03c6d64
JH
104392008-01-16 Jan Hubicka <jh@suse.cz>
10440
10441 PR rtl-optimization/31396
10442 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10443 * cfg.c (dump_reg_info): Print it.
10444 * regs.h (struct reg_info_t): add freq_calls_crossed.
10445 (REG_FREQ_CALLS_CROSSED): New macro.
10446 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10447 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10448 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10449 regmove_optimize): Update call crossed frequencies.
10450 * local-alloc.c (struct qty): Add freq_calls_crossed.
10451 (alloc_qty): Copute freq_calls_crossed.
10452 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10453 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10454 * ra.h (struct allocno): Add freq_calls_crossed.
10455
daf49354
SP
104562008-01-16 Sebastian Pop <sebastian.pop@amd.com>
10457
10458 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10459 libgomp when compiling with ftree-parallelize-loops.
10460 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10461
a1a5996d
RG
104622008-01-16 Richard Guenther <rguenther@suse.de>
10463
10464 PR tree-optimization/34769
10465 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10466 * tree.c (int_cst_value): Instead make this function more
10467 permissive in what it accepts as valid input. Document this
10468 function always sign-extends the value.
10469
de4af523 104702008-01-16 Jakub Jelinek <jakub@redhat.com>
d0b9dbd5 10471 Richard Guenther <rguenther@suse.de>
de4af523
JJ
10472
10473 PR c/34668
10474 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10475 (gimple_fold_indirect_ref_rhs): ... this.
10476 (gimple_fold_indirect_ref): New function with foldings
10477 that preserve lvalueness.
10478 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10479 * tree-flow.h (gimple_fold_indirect_ref): Declare.
10480 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10481 to fold an INDIRECT_REF, fall back to the old use of
10482 fold_indirect_ref_1.
10483
6935bae7
SP
104842008-01-16 Sebastian Pop <sebastian.pop@amd.com>
10485
10486 * tree-data-ref.c (subscript_dependence_tester_1): Call
10487 free_conflict_function.
10488 (compute_self_dependence): Same.
10489
a4b6974e
UB
104902008-01-16 Uros Bizjak <ubizjak@gmail.com>
10491
10492 PR debug/34249
10493 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10494 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
10495 function global.
10496 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10497 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10498 for DWARF2_UNWIND_INFO targets.
10499
eb1387a0
RG
105002008-01-16 Richard Guenther <rguenther@suse.de>
10501
10502 PR c/34768
10503 * c-typeck.c (common_pointer_type): Do not merge inconsistent
10504 type qualifiers for function types.
10505
9326236d
JD
105062008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
10507
10508 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10509 loop_iterator li from previous commit.
10510
105112008-01-15 Sebastian Pop <sebastian.pop@amd.com>
92a6bdbd
SP
10512
10513 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10514
1d4af1e8
SP
105152008-01-12 Sebastian Pop <sebastian.pop@amd.com>
10516
10517 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10518 (parallelize_loops): Don't parallelize irreducible components.
10519
8103eebf
MLI
105202008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10521
10522 PR c++/24924
10523 * c-opts (c_common_post_options): Do not enable CPP
10524 flag_pedantic_errors by default.
10525
d556d181
EB
105262008-01-14 Eric Botcazou <ebotcazou@adacore.com>
10527
10528 PR rtl-optimization/31944
10529 * cse.c (remove_pseudo_from_table): New function.
10530 (merge_equiv_classes): Use above function to remove pseudo-registers.
10531 (invalidate): Likewise.
10532
726612d2
RG
105332008-01-13 Richard Guenther <rguenther@suse.de>
10534
10535 PR middle-end/34601
10536 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10537 instead of TYPE_MODE to deal with calls from expand_one_error_var.
10538
51134e52
UB
105392008-01-13 Uros Bizjak <ubizjak@gmail.com>
10540
10541 * gcse.c (cprop_jump): Call validate_unshare_change instead of
10542 validate_change to unshare the source of the PC set.
10543
3097760b
JH
105442008-01-12 Jan Hubicka <jh@suse.cz>
10545
10546 PR middle-end/32135
10547 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10548 references above array bounds. This might trigger bounds checks for
10549 pointers to arrays.
10550
42b22da8
SP
105512008-01-12 Sebastian Pop <sebastian.pop@amd.com>
10552
10553 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10554 new_replaceable_dependencies.
10555
5db2e9ca
DK
105562008-01-12 Doug Kwan <dougkwan@google.com>
10557
10558 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10559 instead of OPT_Wreturn_type in warning due to ignored return type
10560 qualifiers.
10561 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10562 options included in -Wextra.
10563 * c.opt: New option -Wignored_qualifiers.
10564 * doc/invoke.texi (Warning Options, -Wextra): Add new option
10565 -Wignore_qualifiers.
10566 (-Wignored-qualifiers): Document.
10567 (-Wreturn-type): Remove description of functionality now handled
10568 by -Wignored-qualifiers.
10569
52ef2874
EB
105702008-01-12 Eric Botcazou <ebotcazou@adacore.com>
10571
10572 PR ada/33788
10573 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10574 NOP_EXPR if it is between integral types with the same precision.
10575
a60b56a4
JH
105762008-01-12 Jan Hubicka <jh@suse.cz>
10577
10578 PR other/28023
10579 * invoke.texi (max-inline-recursive-depth): Fix default value.
10580
29ac1d9a
ZD
105812008-01-12 Zdenek Dvorak <ook@ucw.cz>
10582
10583 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10584 correct type.
10585
166b25dc
BW
105862008-01-11 Bob Wilson <bob.wilson@acm.org>
10587
10588 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10589
ad8151b7
JW
105902008-01-11 James E. Wilson <wilson@specifix.com>
10591
10592 PR target/26015
10593 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10594
0d40cc60
AS
105952008-01-11 Anatoly Sokolov <aesok@post.ru>
10596
10597 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
10598 save/restore frame pointer register and don't use 'call-prologues'
10599 optimization in function with "OS_task" attribute.
10600
15af420d
EB
106012008-01-11 Eric Botcazou <ebotcazou@adacore.com>
10602
10603 PR middle-end/31309
10604 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10605 when copying to memory.
10606
c1e3e2d9
SB
106072008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
10608
10609 PR rtl-optimization/30905
10610 * cfgcleanup.c: Include dce.h
10611 (crossjumps_occured): New global variable.
10612 (try_crossjump_bb): Exit loop after finding a fallthru edge.
10613 If something changed, set crossjumps_occured to true.
10614 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10615 Don't add/remove fake edges to exit here...
10616 (cleanup_cfg): ...but do it here, when crossjumping.
10617 Run a fast DCE when successful crossjumps occured in the latest
10618 iteration of try_optimize_cfg.
10619
8d0eca24
RG
106202008-01-11 Richard Guenther <rguenther@suse.de>
10621
10622 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10623 (struct vn_unary_op_s): Likewise.
10624 (vn_reference_insert): Free old reference on hash collision.
10625
acfb3980
RA
106262008-01-10 Raksit Ashok <raksit@google.com>
10627
10628 PR rtl-optimization/27971
31bfe034
RA
10629 * combine.c (find_split_point): Split PLUS expressions which are
10630 inside a MEM rtx, and whose first operand is complex.
acfb3980 10631
b8a669d0
DD
106322008-01-10 DJ Delorie <dj@redhat.com>
10633
10634 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10635 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10636 (m32c_hard_regno_ok): Call the underlying function.
10637
d0f76c4b
RG
106382008-01-10 Richard Guenther <rguenther@suse.de>
10639
10640 PR middle-end/34683
10641 * tree-cfg.c (tree_merge_blocks): Do not go through the
10642 full-blown folding and stmt updating path if we just deal
10643 with virtual operands.
10644 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10645 test for abnormal SSA_NAMEs.
10646
90d12f1f
AK
106472008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
10648
10649 PR middle-end/34641
10650 * reload.c (push_reload): Add assertions. All constants from
10651 reg_equiv_constant should have been used for replacing the respective
10652 pseudo earlier.
10653 (find_reloads_address): Invoke find_reloads_address_part for
10654 constant taken from the reg_equiv_constant array.
10655
71ae8557
SB
106562008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
10657
10658 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10659 field (valnum) the first in the struct. Replace bools with
10660 unit bit fields.
10661
125e025e
RG
106622008-01-10 Richard Guenther <rguenther@suse.de>
10663
10664 PR tree-optimization/34651
10665 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
10666 types and ordering for masking and converting.
10667
64cbaace
SP
106682008-01-09 Sebastian Pop <sebastian.pop@amd.com>
10669
10670 PR tree-optimization/34017
10671 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10672 also for PHI_NODE expressions.
10673
88743d3a
JH
106742008-01-09 Jan Hubicka <jh@suse.cz>
10675
10676 PR tree-optimization/34708
10677 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10678 based on number of case labels.
10679 (init_inline_once): Remove switch_cost.
10680 * tree-inline.h (eni_weights_d): Remove switch_cost.
10681
c3e203cf
RG
106822008-01-09 Richard Guenther <rguenther@suse.de>
10683 Andrew Pinski <andrew_pinski@playstation.sony.com>
10684
10685 PR middle-end/30132
10686 * gimplify.c (gimplify_cond_expr): Do not create an addressable
10687 temporary if an rvalue is ok or an lvalue is not required.
10688
def49dd7
RG
106892008-01-09 Richard Guenther <rguenther@suse.de>
10690
10691 PR middle-end/34458
10692 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10693 adjust return type.
10694
cbad2e09
RG
106952008-01-09 Richard Guenther <rguenther@suse.de>
10696
10697 PR middle-end/34679
10698 * tree.c (host_integerp): Check for sizetype only if the
10699 type is an integer type.
10700
59e5c37d
SB
107012008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
10702
10703 PR debug/26364
10704 * opts.c (decode_options): Disable inlining of functions called
10705 once if not in unit-at-a-time mode.
10706
712db60e
AO
107072008-01-09 Alexandre Oliva <aoliva@redhat.com>
10708
10709 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10710
3fe2f42a
RG
107112008-01-08 Richard Guenther <rguenther@suse.de>
10712
10713 PR middle-end/31863
10714 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10715 out early if the result will be unused.
10716
4d869718
UB
107172008-01-08 Uros Bizjak <ubizjak@gmail.com>
10718
10719 PR target/34709
10720 Revert:
10721
10722 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
10723 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10724 for TARGET_RECIP.
10725
cedbd764
JS
107262008-01-08 Jan Sjodin <jan.sjodin@amd.com>
10727
4d869718
UB
10728 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10729 for vectorization tuned.
cedbd764 10730
a9990582
RG
107312008-01-08 Richard Guenther <rguenther@suse.de>
10732
10733 PR tree-optimization/34683
10734 * tree-ssa-operands.c (operand_build_cmp): Export.
10735 * tree-ssa-operands.h (operand_build_cmp): Declare.
10736 * tree-vn.c (vuses_compare): Remove.
10737 (sort_vuses): Use operand_build_cmp.
10738 (sort_vuses_heap): Likewise.
10739 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10740 to re-use old VEC if available. Do not sort already sorted VUSEs.
10741 (vdefs_to_vec): Do not sort already sorted VDEFs.
10742
c90eee44
JJ
107432008-01-08 Jakub Jelinek <jakub@redhat.com>
10744
10745 PR middle-end/34694
10746 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10747
8bce96f5
UB
107482008-01-08 Uros Bizjak <ubizjak@gmail.com>
10749
10750 PR target/34702
10751 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10752 limitations of reciprocal sequences on x86 targets.
10753
4eefcc98
RG
107542008-01-08 Richard Guenther <rguenther@suse.de>
10755
10756 PR tree-optimization/34683
10757 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10758
b69d564b
JJ
107592008-01-07 Jakub Jelinek <jakub@redhat.com>
10760
10761 PR target/34622
10762 * config/darwin.c (darwin_mergeable_string_section): Don't use
10763 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10764
6b761851
UB
107652008-01-07 Uros Bizjak <ubizjak@gmail.com>
10766
10767 PR target/34682
10768 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10769 negxf2. Macroize expander using X87MODEF mode iterator. Change
10770 predicates of op0 and op1 to register_operand.
8bce96f5
UB
10771 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
10772 expander using X87MODEF mode iterator. Change predicates of
10773 op0 and op1 to register_operand.
6b761851
UB
10774 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10775 corresponding patterns and macroize using MODEF macro. Change
10776 predicates of op0 and op1 to register_operand and remove
10777 "m" constraint. Disparage "r" alternative with "!".
10778 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10779 macroize using X87MODEF macro. Change predicates of op0 and op1
10780 to register_operand and remove "m" constraint. Disparage "r"
10781 alternative with "!".
10782 (absneg splitter with memory operands): Remove.
10783 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10784 patterns and macroize using X87MODEF mode iterator.
10785 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10786 Change predicate of op1 to register_operand.
10787 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8bce96f5 10788 for memory operands.
6b761851 10789
5ca0373f
NF
107902008-01-07 Nathan Froyd <froydnj@codesourcery.com>
10791
10792 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10793
2eac9a76
RG
107942008-01-07 Richard Guenther <rguenther@suse.de>
10795
10796 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10797 fields.
10798
b61ea03d
RG
107992008-01-07 Richard Guenther <rguenther@suse.de>
10800
10801 PR tree-optimization/34683
10802 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10803 VOPs of the needed size to save memory. Use VEC_quick_push
10804 to save compile-time.
10805 (vdefs_to_vec): Likewise.
10806
c4bd75cd 108072008-01-07 Sa Liu <saliu@de.ibm.com>
b61ea03d 10808
6b761851
UB
10809 * config/spu/spu.md (divdf3): Genetate inline code for double
10810 division. The implementation doesn't handle INF or NAN, therefore it
10811 only applies when -ffinite-math-only is given.
c4bd75cd 10812
ba551ec2
PC
108132008-01-06 Paolo Carlini <pcarlini@suse.de>
10814
10815 PR libstdc++/34680
10816 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10817 * doc/cpp.texi ([Common Predefined Macros]): Document.
10818
43db7979
UB
108192008-01-06 Uros Bizjak <ubizjak@gmail.com>
10820
10821 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10822 order to use commutative addition instead of subtraction.
10823
2c460d12
RE
108242008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
10825 Mircea Namolaru <namolaru@il.ibm.com>
10826 Vladimir Yanovsky <yanov@il.ibm.com>
10827 Revital Eres <eres@il.ibm.com>
10828
10829 PR tree-optimization/34263
10830 * tree-outof-ssa.c (process_single_block_loop_latch,
10831 contains_tree_r): New functions.
10832 (analyze_edges_for_bb): Call process_single_block_loop_latch
10833 function to empty single-basic-block latch block if possible.
10834
5a37a60c
UB
108352008-01-05 Uros Bizjak <ubizjak@gmail.com>
10836
10837 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10838 for TARGET_RECIP.
10839 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10840
1a8a3a5e
RS
108412008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
10842
10843 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10844
2a4430a6
RS
108452008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
10846
10847 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10848
58fcda21
JJ
108492008-01-05 Jakub Jelinek <jakub@redhat.com>
10850
10851 PR tree-optimization/34618
10852 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10853 flag from T.
10854
f1bf33ce
UB
108552008-01-05 Uros Bizjak <ubizjak@gmail.com>
10856
10857 PR target/34673
10858 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10859 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
10860 Update copyright year.
10861
10862 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10863 Update copyright year.
10864 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10865 using NR fixup.
10866
12a6309e
ZZ
108672008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
10868
10869 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10870 edge does not point to current bb before changing need_assert.
10871
bdb69bee
RG
108722008-01-04 Richard Guenther <rguenther@suse.de>
10873
10874 PR middle-end/34029
10875 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10876 for verifying purposes if they are is_gimple_min_invariant.
10877
ffed8a01
AH
108782008-01-04 Aldy Hernandez <aldyh@redhat.com>
10879
10880 PR tree-optimization/34448
10881 PR tree-optimization/34465
10882 * gimplify.c (gimplify_init_constructor): Add new parameter
10883 notify_temp_creation. Use it.
10884 (gimplify_modify_expr_rhs): Take volatiles into account when
10885 optimizing constructors.
10886 Do not optimize constructors if gimplify_init_constructor will dump to
10887 memory.
10888 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10889 * gcc.c-torture/compile/pr34448.c: New.
10890
b5ca517c
JJ
108912008-01-04 Jakub Jelinek <jakub@redhat.com>
10892
10893 PR gcov-profile/34609
10894 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10895 return_slot if result is TREE_ADDRESSABLE.
10896
6a3d1d49
RS
108972008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
10898
10899 * config/mips/mips.md (sqrt_condition): Tweak comment.
10900 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
10901
6fc3c3c0
TT
109022008-01-03 Tom Tromey <tromey@redhat.com>
10903
b5ca517c 10904 PR c/34457
6fc3c3c0
TT
10905 * c-common.c (c_type_hash): Handle VLAs.
10906
045685a9
JH
109072008-01-03 Jan Hubicka <jh@suse.cz>
10908
10909 PR tree-optimization/31081
10910 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10911 0 when inlining and not inlining to first basic block.
10912 (remap_decl): When var is initialized to 0, don't set default_def.
10913 (expand_call_inline): Set entry_bb.
10914 * tree-inline.h (copy_body_data): Add entry_bb.
10915
2092ee7d
JJ
109162008-01-03 Jakub Jelinek <jakub@redhat.com>
10917
cac67c08
JJ
10918 PR c++/34619
10919 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10920 before returning.
10921
2092ee7d
JJ
10922 PR tree-optimization/29484
10923 * tree-inline.c (inline_forbidden_p_2): New function.
10924 (inline_forbidden_p): Disallow inlining if some static var
10925 has an address of a local LABEL_DECL in its initializer.
10926 * doc/extend.texi (Labels as Values): Document &&foo behaviour
10927 vs. inlining.
10928
2726bafe 109292008-01-03 Sebastian Pop <sebastian.pop@amd.com>
097392de
SP
10930
10931 PR tree-optimization/34635
10932 * tree-data-ref.c (add_other_self_distances): Make sure that the
10933 evolution step is constant.
10934
99819c63
JJ
109352008-01-03 Jakub Jelinek <jakub@redhat.com>
10936
10937 PR middle-end/34608
12a6309e 10938 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
99819c63 10939
1463dfa4
RS
109402008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
10941
10942 * tree-sra.c (scalarize_init): Insert the generate_element_init
10943 statements after the generate_element_zero statements.
10944
ee6ec666
RG
109452008-01-02 Richard Guenther <rguenther@suse.de>
10946
10947 PR middle-end/34093
10948 PR middle-end/31976
10949 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10950 for very large number of operands instead of ICEing.
10951
6893e828
AN
109522008-01-02 Arthur Norman <acn1@cam.ac.uk>
10953
12a6309e 10954 PR target/34013
d0fb20be 10955 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6893e828
AN
10956 while stack probing.
10957
1a7817e4
DG
109582008-01-01 Douglas Gregor <doug.gregor@gmail.com>
10959
6893e828 10960 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12a6309e 10961 in C++0x mode.
1a7817e4 10962
882e337b
VR
109632008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
10964
10965 PR libmudflap/26442
10966 * tree-mudflap.c (mx_register_decls): Guard warning by
10967 !DECL_ARTIFICIAL check.
10968
f02ffa12
JJ
109692008-01-01 Jakub Jelinek <jakub@redhat.com>
10970
10971 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10972 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10973 sse5_perm<mode>): Fix constraints.