]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
2008-05-16 Doug Kwan <dougkwan@google.com>
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
af6cf582 12008-05-16 Doug Kwan <dougkwan@google.com>
2
3 * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
4 QNaN & SNaN.
5 (real_from_string): Handle NaNs and Inf as approriate.
6
76ee6ef2 72008-05-16 Nathan Froyd <froydnj@codesourcery.com>
8
9 * doc/gty.texi (Source Files Containing Type Information): Note
10 that headers should appear first in the gtfiles list.
11
122008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
13
14 * tree.def (COND_EXEC): Properly documented this code.
15
162008-05-16 Diego Novillo <dnovillo@google.com>
17
18 * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
19 * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
20 the new field.
21
ec415c45 222008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
23
24 * tree-ssa-dse (max_stmt_uid): Removed.
25 (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
26 tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
27 * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
28 * function.h (cfun.last_stmt_uid): New field.
29 * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
30 gimple_stmt_max_uid, set_gimple_stmt_max_uid,
31 inc_gimple_stmt_max_uid): New functions.
32 * tree-dfa.c (renumber_gimple_stmt_uids): New function.
33 (create_stmt_ann): Initialize the ann->uid field.
34 * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
35 with new calls.
36 * tree-flow.h (renumber_gimple_stmt_uids): New function.
37
c27baad4 382008-05-16 Nathan Froyd <froydnj@codesourcery.com>
39
40 * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
41 * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
42 (init_empty_tree_cfg): Call it.
43
442008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
45
46 * cfg.c (init_flow): Add argument THE_FUN. Use it
47 instead of cfun. Update all users.
48
46412a37 492008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
50
51 * doc/invoke.text (-fdump-tree-*-verbose): New option.
52 * tree-dump.c (dump_options): New verbose option.
53 * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
54 Add verbose dump.
55 * tree-pass.h (TDF_VERBOSE): New dump flag.
56 * print-tree.c (print_node): Added code to be able to print
57 PHI_NODES.
58 (tree-flow.h): Added include.
59 Makefile.in (print-tree.o): Added TREE_FLOW_H.
60
cfef164f 612008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
62
d4cae31e 63 * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
64
cfef164f 65 From Jie Zhang <jie.zhang@analog.com>
ec415c45 66 * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
cfef164f 67 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
68 mcpu=bf561-none and mcpu=bf561-0.2.
69 * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
70 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
71 * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
72 MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
73 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
74 BFIN_CPU_UNKNOWN.
75 * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for
76 BF561.
77 (LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
78 option.
79 * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
80 (cputype_selected): Remove.
81 (bfin_handle_option): Don't use cputype_selected.
82 (override_options): When no mcpu option, enable all workarounds.
83 Don't use bfin_workarounds.
84 * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
85 processor type.
86 (DEFAULT_CPU_TYPE): Don't define.
87
ae8f99a0 882008-05-16 Richard Guenther <rguenther@suse.de>
89
90 * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
91 on deletion of the last stmt.
92
3bcc6ec5 932008-05-15 H.J. Lu <hongjiu.lu@intel.com>
94
95 * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
96 V8HImode for SSE2 and V16QImode for SSE4.1.
97
9c1bff7a 982008-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
99
100 * cgraph.h (compute_inline_parameters): Made public.
101 * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
102 variable_generate_summary, function_write_summary,
103 variable_write_summary, variable_read_summary. Added
104 generate_summary, write_summary, read_summary.
105 * cgraphunit.c (cgraph_process_new_functions): Changed call from
106 pass_ipa_inline.function_generate_summary, to
107 compute_inline_parameters.
108 * ipa-inline.c (compute_inline_parameters): Made public and added
109 node parameter.
110 (compute_inline_parameters_for_current): New function.
111 (pass_inline_param): Now calls
112 compute_inline_parameters_for_current.
113 (inline_generate_summary): Removed parameter and made to loop over
114 all cgraph nodes.
115 (pass_ipa_inline): Updated for new IPA_PASS structure.
116 * passes.c (execute_ipa_summary_passes): Now is called once per
117 pass rather than once per node*pass.
118
b2afd900 1192008-05-15 Anatoly Sokolov <aesok@post.ru>
120
121 * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
122 avr_have_mul_p, avr_asm_only_p): Remove variables.
123 (avr_override_options): Remove initialization of removed variables.
124 (avr_file_start): Convert removed variables to fields of
125 'struct base_arch_s *avr_current_arch'.
126 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
127 (AVR_HAVE_MUL): (Ditto.).
128 (AVR_HAVE_MOVW): (Ditto.).
129 (AVR_HAVE_LPMX): (Ditto.).
130 (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
131 avr_asm_only_p): Remove declaration.
132
2fbcc8e9 1332008-05-15 Diego Novillo <dnovillo@google.com>
134
135 * config/arm/arm.c (arm_return_in_memory): Fix return
136 type.
137 * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
138
d9a71d72 1392008-05-15 Adam Nemet <anemet@caviumnetworks.com>
140
141 PR middle-end/36194
2fbcc8e9 142 * combine.c (check_conversion): Rename back to check_promoted_subreg.
143 Don't call record_truncated_value from here.
144 (record_truncated_value): Turn it into a for_each_rtx callback.
145 (record_truncated_values): New function.
146 (combine_instructions): Call note_uses with
147 record_truncated_values. Change name of check_conversion to
148 check_promoted_subreg.
d9a71d72 149
07e23beb 1502008-05-15 Janis Johnson <janis187@us.ibm.com>
151
152 * doc/sourcebuild.texi: Document support for torture tests.
153
e66b310f 1542008-05-15 Uros Bizjak <ubizjak@gmail.com>
155
156 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
157 to alternative 4 of operand 2.
158
9659d177 1592008-05-15 Richard Guenther <rguenther@suse.de>
160
161 * tree-pass.h (current_pass): Declare.
162 (get_pass_for_id): Likewise.
163 * passes.c (passes_by_id, passes_by_id_size): New globals.
164 (set_pass_for_id): New function.
165 (get_pass_for_id): Likewise.
166 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
167 (execute_function_todo): Flush per function statistics.
168 * toplev.c (compile_file): Init statistics.
169 (general_init): Do early statistics initialization.
170 (finalize): Finish statistics.
171 * statistics.h (statistics_early_init): Declare.
172 (statistics_init): Likewise.
173 (statistics_fini): Likewise.
174 (statistics_fini_pass): Likewise.
175 (statistics_counter_event): Likewise.
176 (statistics_histogram_event): Likewise.
177 * statistics.c: New file.
178 * Makefile.in (OBJS-common): Add statistics.o.
179 (statistics.o): Add dependencies.
180 * doc/invoke.texi (-fdump-statistics): Document.
181
182 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
183 (insert): Likewise.
184 (execute_pre): Use statistics_counter_event.
185 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
186 (substitute_and_fold): Increment it. Use statistics_counter_event.
187
79d869d0 1882008-05-15 Diego Novillo <dnovillo@google.com>
189
190 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
191
192 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
193 * tree-ssa-alias.c (new_type_alias): Remove references to
194 sub-variables from comment.
195 * tree-ssa-operands.c (swap_tree_operands): Likewise.
196
374ba45c 1972008-05-15 H.J. Lu <hongjiu.lu@intel.com>
198
199 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
200 attribute to 1 only for insertps alternative.
201
16f1c0ab 2022008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
203
204 * config/bfin/bfin.md (loadbytes): New pattern.
205 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
206 (bfin_init_builtins): Initialize it.
207 (bdesc_1arg): Add it.
208
c8357361 2092008-05-15 Sa Liu <saliu@de.ibm.com>
210
211 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
212 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
213 * testsuite/lib/target-supports.exp: Add
214 check_effective_target_fortran_integer_16.
215
0a619688 2162008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
217
218 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
219 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
220 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
221 (TARGET_RETURN_IN_MEMORY): Define.
222
58e1c141 2232008-05-15 Richard Guenther <rguenther@suse.de>
224
225 PR middle-end/36244
226 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
227 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
228 represent unmodifiable vars.
229
43a3cf90 2302008-05-15 Richard Guenther <rguenther@suse.de>
231
232 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
233 INDIRECT_REF and TARGET_MEM_REF.
234 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
235 TARGET_MEM_REF.
236
d3d9aac1 2372008-05-15 Uros Bizjak <ubizjak@gmail.com>
238 H.J. Lu <hongjiu.lu@intel.com>
239
240 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
241 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
242 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
243 insn alternatives. Add missing alternatives.
244 (*vec_concatv2di_rex64_sse4_1): Likewise.
245 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
246 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
247 Require TARGET_SSE.
248
a973ed42 2492008-05-15 Richard Guenther <rguenther@suse.de>
250
251 PR tree-optimization/36009
252 PR tree-optimization/36204
253 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
254 (determine_invariantness_stmt): Record the loop a store is
255 always executed in.
256 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
257 dependency.
258
9f41aa1d 2592008-05-15 Richard Guenther <rguenther@suse.de>
260
261 PR tree-optimization/34330
262 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
263 through the pointer will alias the SMT.
264
ea6b825e 2652008-05-14 Andreas Tobler <a.tobler@schweiz.org>
266
267 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
268
4f8380cf 2692008-05-14 H.J. Lu <hongjiu.lu@intel.com>
270
271 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
272
4d54df85 2732008-05-14 Michael Meissner <michael.meissner@amd.com>
274 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
275
276 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
277 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
278 (vashl_optab): New optab for vector/vector shifts.
279 (vashr_optab): Ditto.
280 (vlshr_optab): Ditto.
281 (vrotl_optab): Ditto.
282 (vrotr_optab): Ditto.
283 (optab_subtype): New enum for optab_for_tree_code call.
284 (optab_for_tree_code): Add enum optab_subtype argument.
285
286 * optabs.c (optab_for_tree_code): Take an additional argument to
287 distinguish between a vector shift by a scalar and vector shift by
288 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
289 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
290 vector shift by a vector.
291 (expand_widen_pattern_expr): Pass additional argument to
292 optab_for_tree_code.
293
294 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
295 vrotl_optab, vrotr_optab.
296
297 * expr.c (expand_expr_real_1): Update calls to
298 optab_for_tree_code to distinguish between vector shifted by a
299 scalar and vector shifted by a vector.
300 * tree-vectorizer.c (supportable_widening_operation): Ditto.
301 (supportable_narrowing_operation): Ditto.
302 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
303 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
304 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
305 (vect_create_epilog_for_reduction): Ditto.
306 (vectorizable_reduction): Ditto.
307 (vectorizable_operation): Ditto.
308 (vect_strided_store_supported): Ditto.
309 (vect_strided_load_supported): Ditto.
310 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
311 * expmed.c (expand_shift): Ditto.
312
313 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
314 scalar type.
315 (ashr@var{m}3): Ditto.
316 (vashl@var{m}3): Document new vector/vector shift standard name.
317 (vashr@var{m}3): Ditto.
318 (vlshr@var{m}3): Ditto.
319 (vrotl@var{m}3): Ditto.
320 (vrotr@var{m}3): Ditto.
321
d3d9aac1 322 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
4d54df85 323 (PPERM_INVERT): Ditto.
324 (PPERM_REVERSE): Ditto.
325 (PPERM_REV_INV): Ditto.
326 (PPERM_ZERO): Ditto.
327 (PPERM_ONES): Ditto.
328 (PPERM_SIGN): Ditto.
329 (PPERM_INV_SIGN): Ditto.
330 (PPERM_SRC1): Ditto.
331 (PPERM_SRC2): Ditto.
332
333 * config/i386/sse.md (mulv2di3): Add SSE5 support.
334 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
335 allows a memory operand to be the value being added, and split it
336 to improve vectorization.
337 (sse5_pmacsdqh_mem): Ditto.
338 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
339 (sse5_mulv2div2di3_high): Ditto.
340 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
341 (vec_pack_trunc_v4si): Ditto.
342 (vec_pack_trunc_v2di): Ditto.
343 (sse5_pcmov_<mode>): Remove code that tried to use use
344 andps/andnps instead of pcmov.
345 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
346 pmacsdqh instructions.
347 (vec_widen_smult_lo_v4si): Ditto.
348
349 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
350 (PPERM_INVERT): Ditto.
351 (PPERM_REVERSE): Ditto.
352 (PPERM_REV_INV): Ditto.
353 (PPERM_ZERO): Ditto.
354 (PPERM_ONES): Ditto.
355 (PPERM_SIGN): Ditto.
356 (PPERM_INV_SIGN): Ditto.
357 (PPERM_SRC1): Ditto.
358 (PPERM_SRC2): Ditto.
359 (ix86_expand_sse_movcc): Move the SSE5 test after the if
360 true/false tests.
361 (ix86_expand_int_vcond): If SSE5 generate all possible integer
362 comparisons.
363 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
364 says ignore whether the last reference is a memory operand.
365
3662008-05-14 Michael Meissner <michael.meissner@amd.com>
367 Paolo Bonzini <bonzini at gnu dot org>
368
369 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
370 shift patterns.
371
d3d9aac1 372 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
4d54df85 373 (vlshr<mode>3): Rename from vlshr<mode>3.
374 (vashr<mode>3): Rename from vashr<mode>3.
375 (mulv4sf3): Change the names of vector shift patterns.
376 (mulv4si3): Ditto.
377 (negv4sf2): Ditt.
378
379 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
380 shift insns.
381
d3d9aac1 382 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
4d54df85 383 (SI_SHLHI): Ditto.
384 (SI_SHL): Ditto.
385 (SI_SHLI): Ditto.
386 (SI_ROTH): Ditto.
387 (SI_ROTHI): Ditto.
388 (SI_ROT): Ditto.
389 (SI_ROTI): Ditto.
390 (SPU_RL_0): Ditto.
391 (SPU_RL_1): Ditto.
392 (SPU_RL_2): Ditto.
393 (SPU_RL_3): Ditto.
394 (SPU_RL_4): Ditto.
395 (SPU_RL_5): Ditto.
396 (SPU_RL_6): Ditto.
397 (SPU_RL_7): Ditto.
398 (SPU_SL_0): Ditto.
399 (SPU_SL_1): Ditto.
400 (SPU_SL_2): Ditto.
401 (SPU_SL_3): Ditto.
402 (SPU_SL_4): Ditto.
403 (SPU_SL_5): Ditto.
404 (SPU_SL_6): Ditto.
405 (SPU_SL_7): Ditto.
406
407 * config/spu/spu.md (v): New iterator macro to add v for vector types.
408 (floatunssidf2_internal): Change vector/vector shift names.
409 (floatunsdidf2_internal): Ditto.
410 (mulv8hi3): Ditto.
411 (ashrdi3): Ditto.
412 (ashrti3): Ditto.
413 (cgt_df): Ditto.
414 (cgt_v2df): Ditto.
415 (dftsv): Ditto.
416 (vashl<mode>3): Rename from ashl<mode>3.
417 (vashr<mode>3): Rename from ashr<mode>3.
418 (vlshr<mode>3): Rename from lshr<mode>3.
419 (vrotl<mode>3): Rename from rotl<mode>3.
420
5c1def65 4212008-05-14 Michael Meissner <michael.meissner@amd.com>
422
423 PR target/36224
d3d9aac1 424 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
425 multiply gives the wrong value when doing widening multiplies.
5c1def65 426 (vec_widen_smult_lo_v4si): Ditto.
427
2dd6f9ed 4282008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
429
430 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
431 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
432 emit_library_call_value.
433 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
434 * tree.h (ECF_LIBCALL_BLOCK): Removed.
435 * calls.c (initialize_argument_information, precompute_arguments,
436 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
437 (precompute_arguments): Removed flags parameter.
438 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
439
77ad2905 4402008-05-14 Richard Guenther <rguenther@suse.de>
441
442 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
443 Make sure to register the store if the use is a PHI_NODE.
444
220144ca 4452008-05-14 Olivier Hainque <hainque@adacore.com>
446
447 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
448 memory if the component is to be referenced in BLKmode according
449 to get_inner_reference.
450
34a0af10 4512008-05-14 Adam Nemet <anemet@caviumnetworks.com>
452
453 * calls.c (emit_library_call_value_1): Restore code clearing
d3d9aac1 454 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
34a0af10 455
de4e1ab6 4562008-05-14 Olivier Hainque <hainque@adacore.com>
457 Nicolas Roche <roche@adacore.com>
458
459 * configure.ac: Add support for a "gcc_subdir" variable in
460 config-lang.in, to denote a subdirectory where the language/GCC
461 integration files are to be found.
462 * configure: Regenerate.
463
a53e5ca3 4642008-05-14 Ira Rosen <irar@il.ibm.com>
465
466 PR tree-optimization/36098
467 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
468 value for the first load in the group in case of a gap.
469 (vect_build_slp_tree): Check that there are no gaps in loads.
470
e29831db 4712008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
472
473 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
474 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
475 expand_copysign_bit, ): Change call to emit_no_conflict_block to
476 emit_insn and remove unneeded code to construct extra args.
477 (emit_no_conflict_block): Removed.
478 * optabls.h: (emit_no_conflict_block): Removed.
479 * cse.c (cse_extended_basic_block): Remove search for
d3d9aac1 480 REG_NO_CONFLICT note.
e29831db 481 * global.c: Removed incorrect comment added in revision 117.
482 * expr.c (convert_move): Change call to emit_no_conflict_block to
483 emit_insn.
484 * recog.c: Change comments so that they do not mention
485 REG_NO_CONFLICT.
486 * local_alloc.c (combine_regs): Removed last parameter.
487 (no_conflict_p): Removed.
488 (block_alloc): Removed note, no_conflict_combined_regno and set
489 local vars. Removed all code to process REG_NO_CONFLICT blocks.
490 (combine_regs): Removed already_dead and code to look for
491 REG_NO_CONFLICT notes.
492 * lower_subreg (remove_retval_note): Removed code to look for
493 REG_NO_CONFLICT block.
494 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
495 (resolve_clobber): Remove code to process libcalls that have
496 REG_NO_CONFLICT notes.
497 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
498 case.
d3d9aac1 499 * combine.c (can_combine_p, distribute_notes): Removed
500 REG_NO_CONFLICT case.
501 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
502 to emit_insns.
e29831db 503 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
504 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
d3d9aac1 505 Ditto.
e29831db 506 * reg-notes.def (NO_CONFLICT): Removed.
ea6b825e 507
b5264126 5082008-05-14 David S. Miller <davem@davemloft.net>
509
510 * config/sparc/sparc.c (sparc_profile_hook): If
d3d9aac1 511 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
b5264126 512 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
513 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
514
8ecc497a 5152008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
516
517 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
518
b5606623 5192008-05-13 Uros Bizjak <ubizjak@gmail.com>
520
521 PR target/36222
522 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
523 and op1 expansion before vector concat to have less live pseudos.
524
0f4d0c21 5252008-05-13 H.J. Lu <hongjiu.lu@intel.com>
526
527 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
528 ix86_expand_vector_set if supported.
529
bcaa2770 5302008-05-13 Diego Novillo <dnovillo@google.com>
531 Kenneth Zadeck <zadeck@naturalbridge.com>
532
533 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
534
535 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
536 phinodes_print_statistics, init_ssanames, fini_ssanames,
b5606623 537 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
538 release_ssa_name, release_defs, replace_ssa_name_symbol,
bcaa2770 539 ssanames_print_statistics): Move ...
540 * tree-flow.h: ... here.
b5606623 541 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
542 Use FN instead of cfun.
bcaa2770 543 (make_ssa_name_fn): Rename from make_ssa_name.
b5606623 544 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
bcaa2770 545 * tree-flow-inline.h (make_ssa_name): Move from
b5606623 546 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
bcaa2770 547 * omp-low.c (expand_omp_parallel):
548 * tree-flow-inline.h (redirect_edge_var_map_result):
d3d9aac1 549 * tree-ssa.c (init_tree_ssa): Add argument FN.
550 Use it instead of cfun. Update all users.
bcaa2770 551
fb9753dc 5522008-05-13 Tom Tromey <tromey@redhat.com>
553
554 PR preprocessor/22168:
555 * doc/cpp.texi (Top): Update menu.
556 (Alternatives to Wrapper #ifndef): New node.
557 (Other Directives): Document deprecation.
558 (Obsolete Features): Remove menu.
559 (Assertions): Merge node into Obsolete Features.
560 (Obsolete once-only headers): Move earlier; rename to Alternatives
561 to Wrapper #ifndef.
562 * doc/cppopts.texi: Update.
563 * c.opt (Wdeprecated): Enable for C and ObjC.
564 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
565 (C++ Dialect Options): Move -Wno-deprecated from here to...
566 (Warning Options): ... here.
567
4b475af8 5682008-05-13 Richard Guenther <rguenther@suse.de>
569
570 PR middle-end/36227
571 * fold-const.c (fold_sign_changed_comparison): Do not allow
572 changes in pointer-ness.
573
5bfdcfc8 5742008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
575
576 PR target/24713
577 * config/sh/sh.c (sh_expand_prologue): Don't clear
578 RTX_FRAME_RELATED_P for push insns.
579
012da5f6 5802008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
581
582 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
583
f2323747 5842008-05-12 Anatoly Sokolov <aesok@post.ru>
585
586 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
587 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
588 Use 'machine->is_leaf' instead of 'leaf_func_p'.
589
b4a46c88 5902008-05-12 H.J. Lu <hongjiu.lu@intel.com>
591
592 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
593 (*vec_concatv4sf_sse): This.
594 (*sse2_concatv2si): Renamed to ...
595 (*vec_concatv2si_sse2): This.
596 (*sse1_concatv2si): Renamed to ...
597 (*vec_concatv2si_sse): This.
598 (*vec_concatv2di_rex): Renamed to ...
599 (*vec_concatv2di_rex64): This.
600 (*vec_concatv2si_sse4_1): New.
601 (*vec_concatv2di_rex64_sse4_1): Likewise.
602
5612e2f1 6032008-05-12 Uros Bizjak <ubizjak@gmail.com>
604
605 PR rtl-optimization/36111
606 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
607 that was created for swappable operands.
608
f1984c57 6092008-05-12 Samuel Tardieu <sam@rfc1149.net>
610
611 PR ada/36001
612 * Makefile.in: Substitute GNATMAKE and GNATBIND.
613 * configure.ac: Add call to ACX_PROG_GNAT.
614
63433b97 6152008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
616
617 * optc-gen.awk: Fix comment typo.
618
715b4b24 6192008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
620
621 * pretty-print.c (pp_integer_with_precision): Use
622 HOST_LONG_LONG_FORMAT.
623
16aa7503 6242008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
625
626 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
627
54f3117f 6282008-05-10 H.J. Lu <hongjiu.lu@intel.com>
629
630 * config/i386/i386.c (bdesc_ptest): Removed.
631 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
632 (bdesc_args): Add __builtin_ia32_ptestz128,
633 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
634 (ix86_init_mmx_sse_builtins): Updated.
635 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
636 (ix86_expand_builtin): Updated.
637
9ac19c3a 6382008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
639
640 * tree-cfg.c (valid_fixed_convert_types_p): New function.
641 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
642
058d05d5 6432008-05-10 Uros Bizjak <ubizjak@gmail.com>
644
645 * value-prof.c (interesting_stringop_to_profile): Do not
646 return early for BUILT_IN_MEMPCPY.
647
9a27561f 6482008-05-09 H.J. Lu <hongjiu.lu@intel.com>
649
650 * calls.c (expand_call): Don't use callgraph to increase
651 preferred_stack_boundary.
652
653 * cgraph.h (cgraph_rtl_info): Use unsigned on
654 preferred_incoming_stack_boundary.
655
656 * final.c (rest_of_clean_state): Use unsigned on
657 preferred_stack_boundary.
658
14984eca 6592008-05-09 Tom Tromey <tromey@redhat.com>
660
661 PR preprocessor/22231:
662 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
663 proceeding.
664
5a4b7e1e 6652008-05-09 Uros Bizjak <ubizjak@gmail.com>
666
667 PR tree-optimization/36129
5612e2f1 668 * tree-ssa-ccp.c: Include value-prof.h.
5a4b7e1e 669 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
670 built-in function was folded to a constant.
5612e2f1 671 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
5a4b7e1e 672
afd80ffb 6732008-05-09 Jan Sjodin <jan.sjodin@amd.com>
674 Sebastian Pop <sebastian.pop@amd.com>
675
676 * tree-scalar-evolution.c: Document instantiate_scev.
677 (instantiate_parameters_1): Renamed instantiate_scev_1.
678 Don't use the same loop for instantiation_loop and evolution_loop.
679 (instantiate_scev): New.
680 (instantiate_parameters): Moved...
681 (resolve_mixers): Update call to instantiate_scev_1 to pass the
682 same loop twice. Maintains the semantics for this function.
683 * tree-scalar-evolution.h (instantiate_scev): Declare.
684 (instantiate_parameters): ...here. Now static inline.
685 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
686 instead of resolve_mixers.
687
5da71d4f 6882008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
689
690 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
691
72dd6141 6922008-05-09 Tomas Bily <tbily@suse.cz>
693
694 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
695 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
696 * tree-ssa-structalias.c (get_constraint_for): Likewise.
697 * c-common.c (c_common_truthvalue_conversion): Likewise.
698 * tree-object-size.c (compute_object_offset): Likewise.
699 * tree-inline.c (estimate_num_insns_1): Likewise.
700 * varasm.c (const_hash_1, compare_constant, copy_constant)
701 (compute_reloc_for_constant, output_addressed_constants)
702 (initializer_constant_valid_p): Likewise.
703 * c-omp.c (check_omp_for_incr_expr): Likewise.
704 * gimplify.c (gimplify_expr): Likewise.
705 * c-typeck.c (c_finish_return): Likewise.
706 * tree-vectorizer.c (supportable_widening_operation)
707 (supportable_narrowing_operation): Likewise.
708 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
709 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
710 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
711 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
712 (descr_info_loc): Likewise.
713 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
714 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
715 (fold_unary): Likewise.
716 * builtins.c (get_pointer_alignment): Likewise.
717 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
718 (instantiate_parameters_1): Likewise.
719 * tree.c (expr_align, stabilize_reference): Likewise.
720 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
721 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
722 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
723 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
724 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
5612e2f1 725 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
726 Likewise.
72dd6141 727 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
728 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
729 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
730 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
731 (forward_propagate_comparison)
732 (tree_ssa_forward_propagate_single_use_vars): Likewise.
733 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
734 * emit-rtl.c (component_ref_for_mem_expr)
735 (set_mem_attributes_minus_bitpos): Likewise.
736 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
5612e2f1 737 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
738 Likewise.
72dd6141 739 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
740 (build_function_call, pointer_diff, build_compound_expr)
741 (c_finish_return): Likewise.
742 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
5612e2f1 743 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
744 Likewise.
72dd6141 745 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
746 * expr.c (is_aligning_offset): Likewise.
747 * tree-ssa-alias.c (is_escape_site): Likewise.
748 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
749 (check_all_va_list_escapes): Likewise.
750 * tree-ssa-loop-ivopts.c (determine_base_object)
751 (determine_common_wider_type): Likewise.
752 * dojump.c (do_jump): Likewise.
753 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
754 * tree-gimple.c (is_gimple_cast): Likewise.
755 * fold-const.c (decode_field_reference, )
756 (fold_sign_changed_comparison, fold_unary, fold_comparison)
757 (fold_binary): Likewise.
758 * tree-ssa-alias-warnings.c (find_alias_site_helper)
759 (already_warned_in_frontend_p): Likewise.
760 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
761 * tree.c (really_constant_p, get_unwidened): Likewise.
762 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
763 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
5612e2f1 764 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
765 Likewise.
766 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
767 CONVERT_EXPR_P.
72dd6141 768 (CONVERT_EXPR_P): Define.
769 (CASE_CONVERT): Define.
770
0b7b55ea 7712008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
772
773 PR middle-end/36117
5612e2f1 774 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
775 (delete_unmarked_insns): When deleting a call, call
0b7b55ea 776 delete_unreachable_blocks.
777 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
5612e2f1 778 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
779
70393469 7802008-05-08 Richard Guenther <rguenther@suse.de>
781
782 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
783 (-ftree-salias): Likewise.
784 (salias-max-implicit-fields): Remove param documentation.
785 (salias-max-array-elements): Likewise.
786 * tree-pass.h (pass_create_structure_vars): Remove.
787 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
788 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
789 * tree-ssa-alias.c (create_structure_vars): Remove.
790 (gate_structure_vars): Likewise.
791 (pass_create_structure_vars): Likewise.
792 (gate_build_alias): Likewise.
793 (pass_build_alias): Adjust to run always and dump the function.
794 * common.opt (ftree-salias): Hide.
795 * passes.c (init_optimization_passes): Remove
796 pass_create_structure_vars, adjust comment.
797 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
798 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
799 * opts.c (decode_options): Do not set flag_tree_salias.
800 (common_handle_option): Add OPT_ftree_salias to the backward
801 compatibility section.
802
3423d8f7 8032008-05-08 Richard Guenther <rguenther@suse.de>
804
805 * tree-flow-inline.h (var_can_have_subvars): Move ...
806 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
807 * tree-flow.h (var_can_have_subvars): Remove.
808 (push_fields_onto_fieldstack): Remove.
809 (sort_fieldstack): Likewise.
810 (struct fieldoff): Move ...
811 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
812 alias_set and base_for_components fields.
813 (sort_fieldstack): Make static.
814 (push_fields_onto_fieldstack): Likewise. Remove code that
815 handles anything but RECORD_TYPEs. Remove alias_set and
816 base_for_components handling.
817 (create_variable_info_for): Adjust.
818
15e88abc 8192008-05-08 Seongbae Park <seongbae.park@gmail.com>
2953c811 820
15e88abc 821 * common.opt (Wframe-larger-than=): Shorten the help message
822 to one line.
823 * doc/invoke.texi (Wframe-larger-than=): Add more description.
824
7076cb5d 8252008-05-08 Rafael Espindola <espindola@google.com>
826
827 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
828 trap.
829 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
830 trap and that both operands are gimple values.
831 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
832 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
833 is a fp operation.
834
25a52e22 8352008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
836
837 * read-rtl.c (join_c_conditions): Return the first string if the
838 two strings are equal.
839
c7a4c804 8402008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
841
842 * gensupport.h (pred_data): Add a "num_codes" field.
843 (add_predicate_code): Declare.
844 * gensupport.c (add_predicate_code): New function.
845 (std_pred_table): Add an "allows_const_p" field.
846 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
847 Remove the (incomplete) list of such codes from the codes field.
848 (init_predicate_table): Use add_predicate_code. Add all
849 RTX_CONST_OBJs if allows_const_p is true.
850 * genrecog.c (process_define_predicate): Use add_predicate_code.
851
40efb338 8522008-05-08 David Daney <ddaney@avtrex.com>
853 Richard Sandiford <rsandifo@nildram.co.uk>
854
855 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
856 special case of constant zero operands.
857 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
858 old and new values. Special case constant zero values.
859 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
860 fails.
861 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
862 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
863
f35ba9d1 8642008-05-08 Paolo Bonzini <bonzini@gnu.org>
865
866 PR target/36090
867 * simplify-rtx.c (simplify_plus_minus): Create CONST of
868 similar RTX_CONST_OBJ before CONST_INT.
869
fbf51400 8702008-05-08 Steve Ellcey <sje@cup.hp.com>
871
872 * stmt.c (expand_stack_restore): Change sa mode if needed.
873
df2a16e5 8742008-05-08 Richard Guenther <rguenther@suse.de>
875
876 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
877 return type to bool.
878 (ix86_sol10_return_in_memory): Likewise.
879 (ix86_i386elf_return_in_memory): Likewise.
880 (ix86_i386interix_return_in_memory): Likewise.
881 * config/i386/i386.c (ix86_return_in_memory): Likewise.
882 (ix86_sol10_return_in_memory): Likewise.
883 (ix86_i386elf_return_in_memory): Likewise.
884 (ix86_i386interix_return_in_memory): Likewise.
885
60e2260d 8862008-05-08 Kai Tietz <kai.tietz@onevision.com>
887
19d05520 888 PR bootstrap/36180
60e2260d 889 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
890 fndecl argument.
19d05520 891 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
892 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
893 declared in front.
60e2260d 894
2afb4be3 8952008-05-08 Richard Guenther <rguenther@suse.de>
896
897 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
898 * tree-data-ref.h (struct dr_alias): Remove subvars field.
899 (DR_SUBVARS): Remove.
900 * tree-dfa.c (dump_subvars_for): Remove.
901 (debug_subvars_for): Likewise.
902 (dump_variable): Do not dump subvars.
903 (remove_referenced_var): Do not remove subvars.
904 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
905 (lookup_subvars_for_var): Remove.
906 (get_subvars_for_var): Likewise.
907 (get_subvars_at): Likewise.
908 (get_first_overlapping_subvar): Likewise.
909 (overlap_subvar): Likewise.
910 * tree-flow.h (subvar_t): Remove.
911 (struct var_ann_d): Remove subvars field.
912 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
913 argument. Remove special handling of SFTs.
914 (compute_tag_properties): Likewise.
915 (set_initial_properties): Likewise.
916 (compute_call_clobbered): Likewise.
917 (count_mem_refs): Likewise.
918 (compute_memory_partitions): Likewise.
919 (compute_flow_insensitive_aliasing): Likewise.
920 (setup_pointers_and_addressables): Likewise.
921 (new_type_alias): Likewise.
922 (struct used_part): Remove.
923 (used_portions): Likewise.
924 (struct used_part_map): Likewise.
925 (used_part_map_eq): Likewise.
926 (used_part_map_hash): Likewise.
927 (free_used_part_map): Likewise.
928 (up_lookup): Likewise.
929 (up_insert): Likewise.
930 (get_or_create_used_part_for): Likewise.
931 (create_sft): Likewise.
932 (create_overlap_variables_for): Likewise.
933 (find_used_portions): Likewise.
934 (create_structure_vars): Likewise.
935 * tree.def (STRUCT_FIELD_TAG): Remove.
936 * tree.h (MTAG_P): Adjust.
937 (struct tree_memory_tag): Remove base_for_components and
938 unpartitionable flags.
939 (struct tree_struct_field_tag): Remove.
940 (SFT_PARENT_VAR): Likewise.
941 (SFT_OFFSET): Likewise.
942 (SFT_SIZE): Likewise.
943 (SFT_NONADDRESSABLE_P): Likewise.
944 (SFT_ALIAS_SET): Likewise.
945 (SFT_UNPARTITIONABLE_P): Likewise.
946 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
947 (union tree_node): Remove sft field.
948 * alias.c (get_alias_set): Remove special handling of SFTs.
949 * print-tree.c (print_node): Remove handling of SFTs.
950 * tree-dump.c (dequeue_and_dump): Likewise.
951 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
952 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
953 * tree-predcom.c (set_alias_info): Do not set subvars.
954 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
955 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
956 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
957 (add_vars_for_offset): Remove.
958 (add_virtual_operand): Remove special handling of SFTs.
959 (add_call_clobber_ops): Likewise.
960 (add_call_read_ops): Likewise.
961 (get_asm_expr_operands): Likewise.
962 (get_modify_stmt_operands): Likewise.
963 (get_expr_operands): Likewise.
964 (add_to_addressable_set): Likewise.
965 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
966 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
5612e2f1 967 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
2afb4be3 968 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
969 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
970 (tree_node_structure): Likewise.
971 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
972 handling of SFTs.
973 (find_what_p_points_to): Likewise.
974
8d44e5fa 9752008-05-08 Sa Liu <saliu@de.ibm.com>
976
977 * config/spu/spu.md: Fixed subti3 pattern.
8d44e5fa 978
5949e049 9792008-05-08 Richard Guenther <rguenther@suse.de>
980
981 PR middle-end/36154
982 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
983 sure to create a representative for trailing arrays for PTA.
984
07018da0 9852008-05-08 Richard Guenther <rguenther@suse.de>
986
987 PR middle-end/36172
988 * fold-const.c (operand_equal_p): Two objects which types
989 differ in pointerness are not equal.
990
19d05520 9912008-05-08 Kai Tietz <kai.tietz@onevision.com>
22c61100 992
993 * calls.c (compute_argument_block_size): Add argument tree fndecl.
994 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
995 (emit_library_call_value_1): Add new variable fndecl initialized by
996 NULL_TREE. It should be the decl type of orgfun, but this information
997 seems not to be available here, so it uses the default calling abi.
998 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
999 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
1000 by TARGET_RETURN_IN_MEMORY.
1001 * config/i386/i386-interix.h: Likewise.
1002 * config/i386/i386.h: Likewise.
1003 * config/i386/i386elf.h: Likewise.
1004 * config/i386/ptx4-i.h: Likewise.
1005 * config/i386/sol2-10.h: Likewise.
1006 * config/i386/sysv4.h: Likewise.
1007 * config/i386/vx-common.h: Likewise.
1008 * config/cris/cris.h: Removed #if 0 clause.
19d05520 1009 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
22c61100 1010 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
1011 argument.
1012 (ix86_sol10_return_in_memory): Likewise.
1013 (ix86_i386elf_return_in_memory): New.
1014 (ix86_i386interix_return_in_memory): New.
1015 * config/mt/mt-protos.h (mt_return_in_memory): New.
1016 * config/mt/mt.c: Likewise.
1017 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1018 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
1019 * config/bfin/bfin.h: Likewise.
1020 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
1021 argument.
1022 * config/bfin/bfin.c: Likewise.
1023 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1024 * config/alpha/unicosmk.h: Likewise.
1025 * config/i386/cygming.h: Likewise.
1026 * config/iq2000/iq2000.h: Likewise.
1027 * config/mips/mips.h: Likewise.
1028 * config/mn10300/mn10300.h: Likewise.
1029 * config/rs6000/rs6000.h: Likewise.
1030 * config/score/score.h: Likewise.
1031 * config/spu/spu.h: Likewise.
1032 * config/v850/v850.h: Likewise.
1033 * defaults.h: Likewise.
1034 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
19d05520 1035 * expr.c (emit_block_move): Adjust use of
1036 OUTGOING_REG_PARM_STACK_SPACE.
22c61100 1037 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
1038 OUTGOING_REG_PARM_STACK_SPACE.
1039 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
1040
957f873e 10412008-05-08 Jakub Jelinek <jakub@redhat.com>
1042
1043 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
1044 on OMP_RETURN for OMP_FOR.
1045
845c3089 1046 PR debug/35896
1047 * dwarf2out.c (dw_expand_expr, common_check): Removed.
1048 (fortran_common): New function.
1049 (gen_variable_die): Call fortran_common instead of common_check,
1050 adjust for it returning tree instead of rtx. Formatting.
1051
957f873e 10522008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
9c2a0c05 1053
19d05520 1054 PR rtl/7335
1055 PR rtl/33826
1056 * see.c (see_copy_insn): Copy new pure const attributes for new call.
1057 * c-decl.c (merge_decls): Ditto.
1058 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
1059 to RTL_CONST_OR_PURE_CALL_P.
1060 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
1061 Initialized DECL_LOOPING_CONST_PURE.
1062 (process_call_operands): Set tree_side_effects properly.
1063 * tree.h (TREE_READONLY_DECL_P): Removed.
1064 (DECL_IS_PURE): Renamed to DECL_PURE_P.
1065 (DECL_LOOPING_OR_CONST_P): New macro.
1066 (struct tree_function_decl): Added looping_const_or_pure_p.
1067 (ECF_*) Renumbered.
1068 (ECF_LOOPING_OR_CONST_P): New macro.
1069 * rtlanal.c (pure_const_p): Removed.
1070 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
1071 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
1072 to RTL_CONST_CALL_P.
1073 * ipa-pure-const.c (pure_const_state_e): Added looping field.
1074 (check_decl, check_tree, check_call, scan_function): Initialize
1075 looping.
1076 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
1077 (static_execute): Set looping true for recursive functions.
1078 Undo setting state to IPA_NEITHER for recursive functions.
1079 * cse.c (cse_insn):
1080 * ifcvt.c (noce_can_store_speculate_p): Changed
1081 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
1082 RTL_CONST_OR_PURE_CALL_P.
1083 * dse.c (scan_insn): Ditto.
1084 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
1085 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
1086 RTL_CONST_OR_PURE_CALL_P.
1087 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
1088 pure_call_p to RTL_CONST_CALL_P.
1089 * gimplify.c (gimplify_call_expr): Clear side effects for
1090 non-looping pure and constant calls.
1091 * calls.c (emit_call_1): Set rtl flags from ecf flags.
1092 (flags_from_decl_or_type): Set ecf flags from decl flags.
1093 (initialize_argument_information): Turn off
1094 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
1095 Change const to pure if callee_copies is true rather than just
1096 turning off const.
1097 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
1098 way of marking pure calls.
1099 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
1100 Remove hack that was supposed to fix pr7335 and remove old
1101 way of marking pure calls.
1102 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
1103 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
1104 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
1105 RTL_CONST_OR_PURE_CALL_P.
1106 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
1107 * loop-invariant.c (find_exits, find_invariant_bb): Changed
1108 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
1109 * sched-deps.c (schedule_analyze): Ditto.
1110 * rtl.h (struct rtx_def): Use call field, unchanging field, and
1111 return_val field of calls to represent pure and const function info.
1112 (CONST_OR_PURE_CALL_P): Deleted macro.
1113 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1114 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
1115 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
1116 TREE_READONLY.
1117 * tree-optimize.c (execute_fixup_cfg): Added test for
1118 ECF_LOOPING_CONST_OR_PURE.
1119 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
1120 DECL_PURE_P.
1121 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
1122 effects for looping pure or const calls.
1123 (verify_gimple_expr): Added verification code.
1124 * config/alpha/alpha.c (alpha_legitimize_address,
1125 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
1126 RTL_CONST_CALL_P.
1127 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
1128 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
1129 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
1130 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
1131 RTL_CONST_OR_PURE_CALL_P.
1132 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
1133 and const calls to be deleted.
9c2a0c05 1134
19d05520 11352008-05-07 Uros Bizjak <ubizjak@gmail.com>
7c839b3f 1136
1137 PR target/35714
1138 * config/i386/mmx.md (mmx_subv2sf3): New expander.
1139 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
1140 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
1141 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
1142 to handle nonimmediate operands.
1143 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
1144 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
1145 to handle nonimmediate operands.
1146 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
1147 (mmx_pmulhrwv4hi3): New expander. Use
1148 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1149 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
1150 (sse2_umulv1siv1di3): New expander. Use
1151 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1152 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
1153 (mmx_eq<mode>3): New expander. Use
1154 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1155 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
1156 (mmx_uavgv8qi3): New expander. Use
1157 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1158 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
1159 (mmx_uavgv4hi3): New expander. Use
1160 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1161
1162 * config/i386/sse.md
2485795e 1163 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 1164 to handle nonimmediate operands.
2485795e 1165 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 1166 to handle nonimmediate operands.
2485795e 1167 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 1168 to handle nonimmediate operands.
2485795e 1169 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 1170 to handle nonimmediate operands.
2485795e 1171 (sse2_unpckhpd_exp): New expander. Use
7c839b3f 1172 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2485795e 1173 (sse2_unpcklpd_exp): New expander. Use
7c839b3f 1174 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2485795e 1175 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
7c839b3f 1176 to handle nonimmediate operands.
7c839b3f 1177 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
1178 to handle nonimmediate operands.
1179 (*sse2_<plusminus_insn><mode>3): Rename from
1180 sse2_<plusminus_insn><mode>3 insn pattern.
1181 (sse2_<plusminus_insn><mode>3): New expander. Use
1182 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1183 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
1184 (sse2_umulv2siv2di3): New expander. Use
1185 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1186 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
1187 (sse4_1_mulv2siv2di3): New expander. Use
1188 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1189 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
1190 (sse2_pmaddwd): New expander. Use
1191 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1192 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
1193 (sse2_eq<mode>3): New expander. Use
1194 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1195 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
1196 (sse4_1_eqv2di3): New expander. Use
1197 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1198 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1199 (sse2_uavgv16qi3): New expander. Use
1200 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1201 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1202 (sse2_uavgv16qi3): New expander. Use
1203 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1204 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
1205 (sse2_uavgv8hi3): New expander. Use
1206 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1207 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
1208 (ssse3_pmulhrswv8hi3): New expander. Use
1209 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1210 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
1211 (ssse3_pmulhrswv4hi3): New expander. Use
1212 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1213
1214 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
1215 (<sse>_vmmul<mode>3): Ditto.
1216 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
1217 (divv2df3): Ditto.
1218 (ssse3_pmaddubsw128): Use register_operand for operand 1.
1219 (ssse3_pmaddubsw): Ditto.
1220
2485795e 1221 * config/i386/i386.c (struct_builtin_description)
1222 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
1223 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
1224 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
1225 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
1226 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
1227 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
1228 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
1229 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
1230 (ix86_fixup_binary_operands): Assert that src1
7c839b3f 1231 and src2 must have the same mode when swapped.
1232 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
1233 and ix86_binary_operator_ok. Do not force operands in registers
1234 when optimizing.
1235
c4d6511c 12362008-05-07 Jan Hubicka <jh@suse.cz>
1237
1238 * cgraph.c (dump_cgraph_node): Update.
1239 * cgraph.h (cgraph_local_info): Break out inline summary.
1240 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
1241 hook.
1242 * ipa-inline (inline_summary): New accestor function.
1243 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
1244 cgraph_decide_inlining, compute_inline_parameters): Update.
1245 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
1246
3c904dda 12472008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
1248
1249 Cleanup ColdFire scheduling support and add V4 pipeline model.
1250
1251 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
1252 (define_attr cpu): Add cfv4 value.
1253 (define_attr type, define_attr type1): Merge into a single 'type'
1254 attribute. Update all uses.
1255 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
1256 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
1257 Update all uses.
1258 (define_attr opx_mem, define_attr opy_mem): Remove.
1259 (define_attr op_mem): Clean up, update comment.
1260 (define_attr size): Use specific values instead of general int.
1261 (define_attr guess, define_attr split): Remove. Update all uses.
1262 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
1263 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
1264 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
1265 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
1266 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
1267 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
1268 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
1269 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
1270 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
1271 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
1272 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
1273 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
1274 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
1275 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
1276 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
1277 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
1278 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
1279 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
1280 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
1281 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
1282 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
1283 Update or set attributes.
1284 (stack_tie): New fake instruction.
1285
1286 * config/m68k/m68k.h (TUNE_CFV4): New macro.
1287 (m68k_sched_attr_size): Update declaration.
1288 (m68k_sched_attr_type2): Remove.
1289 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
1290 Declare new bypass predicates.
1291
1292 * config/m68k/m68k.c (m68k_sched_issue_rate,
1293 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
1294 implementations.
1295 (TARGET_SCHED_ISSUE_RATE,
1296 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
1297 (override_options): Handle scheduling for ColdFire V4 core.
1298 (m68k_expand_prologue): Emit stack_tie.
1299 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
1300 'OP_TYPE_FPN'. Update all uses.
1301 (sched_guess_p): Remove.
1302 (sched_address_type): Handle symbolic addresses.
1303 (sched_get_operand): New static function.
1304 (sched_operand_type): Merge into sched_attr_op_type.
1305 (sched_attr_op_type): Handle FP registers, handle quick constants,
1306 update.
1307 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
1308 (m68k_sched_attr_size): Update. Move logic to ...
1309 (sched_get_attr_size_int): New static function.
1310 (sched_get_opxy_mem_type): New static function.
1311 (m68k_sched_attr_op_mem): Update.
1312 (m68k_sched_attr_type2): Remove.
1313 (sched_cfv4_bypass_data): New static variable.
1314 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
1315 (m68k_sched_issue_rate): Implement scheduler hook.
1316 (struct _sched_ib: enabled_p): New field.
1317 (m68k_sched_variable_issue): Update. Handle V4.
1318 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
1319 sched_dump_class_func_t, sched_dump_split_class,
1320 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
1321 sched_dump_dfa_class, m68k_sched_dump): Remove.
1322 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
1323 hook.
1324 (m68k_sched_init_global): Remove statisctics dumping, introduce
1325 sanity check that all instructions have pipeline reservations. Handle
1326 ColdFire V4 core.
1327 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1328 Handle ColdFire V4 core.
1329 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
1330 New static functions.
1331 (m68k_sched_address_bypass_p): New bypass predicate.
1332 (sched_get_indexed_address_scale): New static function.
1333 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
1334
1335 * cf.md: Update comments.
1336 (define_attr type2): Remove. Use 'type' attribute instead.
1337 Update all uses.
1338 (cf_ib): Rename to cfv123_ib. Update all uses.
1339 (cf_oep): Rename to cfv123_oep. Update all uses.
1340 (cf_chr): Rename to cfv123_chr. Update all uses.
1341 (cf_mem): Rename to cfv123_mem. Update all uses.
1342 (cf_mac): Move to more appropriate place.
1343 (cfv123_guess): New automaton and cpu_unit.
1344 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
1345 Update uses of 'size' attribute. Handle before reload scheduling.
1346 (cfv123_guess): New dummy reservation for unhandled instructions.
1347 (cfv4_*): Pipeline description of ColdFire V4 core.
1348 (ignore): New reservation to handle 'ignore' type.
1349
7de2c0c8 13502008-05-07 Ian Lance Taylor <iant@google.com>
1351
1352 PR middle-end/36013
1353 * gimplify.c (find_single_pointer_decl_1): Don't look through
1354 indirections.
1355 (find_single_pointer_decl): Adjust comments.
1356
790368c5 13572008-05-07 Jakub Jelinek <jakub@redhat.com>
1358
7db628eb 1359 PR middle-end/36137
1360 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
1361 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
1362
790368c5 1363 PR middle-end/36106
1364 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
1365 integral type rather than floating point, then VIEW_CONVERT_EXPR
1366 to the floating point type.
1367
790368c5 13682008-05-07 Uros Bizjak <ubizjak@gmail.com>
c08d707d 1369
1370 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
1371 TFmode op0 to register.
1372
333adf28 13732008-05-07 Alan Modra <amodra@bigpond.net.au>
1374
1375 * c-decl.c (grokdeclarator): Comment typo.
1376
7231cbf7 13772008-05-06 Aldy Hernandez <aldyh@redhat.com>
1378
1379 * tree-flow.h: Remove prototype for computed_goto_p.
1380 * tree-cfg.c (computed_goto_p): Make static.
1381
1b57040b 13822008-05-06 H.J. Lu <hongjiu.lu@intel.com>
1383
1384 PR target/35657
4e82296c 1385 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
1b57040b 1386 (contains_aligned_value_p): This. Handle _Decimal128.
1387 (ix86_function_arg_boundary): Only align _Decimal128 to its
1388 natural boundary and handle it properly.
1389
d60eadfa 13902008-05-06 Martin Jambor <mjambor@suse.cz>
1391
1b57040b 1392 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
1393 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
1394 (ipcp_method_set_orig_node): Removed.
1395 (ipcp_cval_get_cvalue_type): Removed.
1396 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
1397 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
1398 (ipcp_cval_set_cvalue_type): Removed.
1399 (ipcp_cval_get_cvalue): Removed.
1400 (ipcp_cval_set_cvalue): Removed.
1401 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
1402 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
1403 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
1404 (ipcp_cval_meet): Renamed to ipa_lattice_meet
1405 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
1406 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
1407 (ipcp_get_ith_lattice): Changed parameters.
1408 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
1409 (ipcp_lattice_from_jfunc): Changed parameters.
d60eadfa 1410 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
1411 (ipcp_method_cval_print): Added temporary variable info.
1412 (ipcp_redirect): Removed already unused local variable caller.
1413 (ipcp_redirect): New temporary variable orig_callee_info
1414 (ipcp_redirect): Removed newly unused local variable callee.
1415 (ipcp_redirect): Removed (a bit confusing) local variable type.
1416 (ipcp_insert_stage): Added local variable info.
1417 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
1418 renamed too
1419 (ipcp_formal_create): Removed.
1420 (ipcp_method_cval_set): Removed.
1421 (ipcp_propagate_stage): Renamed lattice variables.
1422 (ipcp_method_cval_set_cvalue_type): Removed.
1423 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
1424 (ipcp_print_all_lattices): Changed printed strings to refer to
1425 lattices rather than cvals.
1426 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
1427 (ipcp_propagate_const): Changed formal parameters.
1428 (build_const_val): Changed formal parameters.
1429 (ipcp_insert_stage): Removed useless variable cvalue
1430 (build_const_val): Changed formal parameters.
1431 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
1432 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
1433 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
1434 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
1435 (ipcp_print_func_profile_counts): Changed string from "method" to
1436 "function"
1437 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
1438 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
1439 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
1440 (ipcp_structures_print): Renamed to ipcp_print_all_structures
1441 (ipcp_profile_print): Renamed to ipcp_print_profile_data
1442 (ipcp_lat_is_const): Changed parameters and made inline.
1443 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
1444 (ipcp_redirect): Renamed to ipcp_need_redirect_p
1445 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
1446 the predicate condition directly
1447 (ipcp_propagate_stage): Added local variable args. Removed local
1448 variable callee. (Both are mere code simplifications.)
1449 (ipcp_method_dont_insert_const): Renamed to
1450 ipcp_node_not_modifiable_p.
1451 (ipcp_node_not_modifiable_p): Made inline.
1452 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
1453 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
1454 (ipcp_print_all_lattices): Removed variable cvalue
1455 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
1456 Updated comments.
1457
b257ce27 14582008-05-06 Olivier Hainque <hainque@adacore.com>
1459
1460 * tree-sra.c (try_instantiate_multiple_fields): Early return
1461 if field has POINTER_TYPE.
1462
f3d1e86a 14632008-05-06 Kai Tietz <kai.tietz@onevision.com>
1464
1465 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
1466 by using 'q' specifier for instruction.
1467 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
1468
6c87a432 14692008-05-06 Anatoly Sokolov <aesok@post.ru>
1470
1471 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1472 Change mode of zero_extract from QImode to HImode.
1473 (sign bit tests peepholes): (Ditto.).
1474
2886ab73 14752008-05-06 Uros Bizjak <ubizjak@gmail.com>
1476
1477 * config/i386/mmx.md: Remove double backslashes from asm templates.
4e82296c 1478 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2886ab73 1479 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
1480 to handle nonimmediate operands.
4e82296c 1481 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2886ab73 1482 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
1483 to handle nonimmediate operands.
4e82296c 1484 (*mmx_<code>v2sf3_finite): New insn pattern.
1485 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2886ab73 1486 (mmx_<code>v2sf3): New expander. Use
1487 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1488 (mmx_<plusminus_insn><mode>3): New expander. Use
1489 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1490 (*mmx_<plusminus_insn><mode>3): New insn pattern.
2886ab73 1491 (mmx_add<mode>3): Removed.
1492 (mmx_ssadd<mode>3): Ditto.
1493 (mmx_usadd<mode>3): Ditto.
1494 (mmx_sub<mode>3): Ditto.
1495 (mmx_sssub<mode>3): Ditto.
1496 (mmx_ussub<mode>3): Ditto.
4e82296c 1497 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2886ab73 1498 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
1499 to handle nonimmediate operands.
4e82296c 1500 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2886ab73 1501 insn pattern.
1502 (mmx_smulv4hi3_highpart): New expander. Use
1503 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1504 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2886ab73 1505 insn pattern.
1506 (mmx_umulv4hi3_highpart): New expander. Use
1507 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1508 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2886ab73 1509 (mmx_<code>v4hi3): New expander. Use
1510 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1511 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2886ab73 1512 (mmx_<code>v8qi3): New expander. Use
1513 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
4e82296c 1514 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2886ab73 1515 (mmx_<code><mode>3): New expander. Use
1516 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1517
0300832e 15182008-05-05 Jan Hubicka <jh@suse.cz>
1519
1520 PR tree-optimization/36118
1521 * passes.c (pass_init_dump_file): Fix dump header.
1522
6ec63422 15232008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
1524
1525 PR middle-end/36141
2886ab73 1526 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
1527 VCE for function decls.
6ec63422 1528
e0b803aa 15292008-05-05 H.J. Lu <hongjiu.lu@intel.com>
1530
1531 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
1532
801ff5b2 15332008-05-05 H.J. Lu <hongjiu.lu@intel.com>
1534
1535 * config/i386/i386.md (sat_plusminus): New.
1536 (plusminus_insn): Likewise.
1537 (plusminus_mnemonic): Likewise.
1538 (addsub): Removed.
1539 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
1540 (*<addsub><mode>3_cc_overflow): Renamed to ...
1541 (*<plusminus_insn><mode>3_cc_overflow): This.
1542 (*<addsub>si3_zext_cc_overflow): Renamed to ...
1543 (*<plusminus_insn>si3_zext_cc_overflow): This.
1544
e0b803aa 1545 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
801ff5b2 1546 (<plusminus_insn><mode>3): This.
1547 (*<addsub><mode>3): Renamed to ...
1548 (*<plusminus_insn><mode>3): This.
1549 (<sse>_vm<addsub><mode>3): Renamed to ...
1550 (<sse>_vm<plusminus_insn><mode>3): This.
1551 (sse3_h<addsub>v4sf3): Renamed to ...
1552 (sse3_h<plusminus_insn>v4sf3): This.
1553 (sse3_h<addsub>v2df3): Renamed to ...
1554 (sse3_h<plusminus_insn>v2df3): This.
1555 (<plusminus_insn><mode>3): New.
1556 (*<plusminus_insn><mode>3): Likewise.
1557 (sse2_<plusminus_insn><mode>3): Likewise.
1558 (add<mode>): Removed.
1559 (*add<mode>3): Likewise.
1560 (sse2_ssadd<mode>3): Likewise.
1561 (sse2_usadd<mode>3): Likewise.
1562 (sub<mode>3): Likewise.
1563 (*sub<mode>3): Likewise.
1564 (sse2_sssub<mode>3): Likewise.
1565 (sse2_ussub<mode>3): Likewise.
1566
2915f97e 15672008-05-05 Benjamin Kosnik <bkoz@redhat.com>
1568
801ff5b2 1569 * gthr-single.h: Add in required interface elements as per gthr.h.
1570 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
1571 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
1572 Generalize UNUSED macro.
1573 (__gthread_once): Add.
1574 (__gthread_key_create): Add.
2886ab73 1575 (__gthread_key_delete): Add.
801ff5b2 1576 (__gthread_getspecific): Add.
2886ab73 1577 (__gthread_setspecific): Add.
2915f97e 1578
50f39ec6 15792008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
1580
2915f97e 1581 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
1582 the same size types for the indirect reference on the rhs, then
1583 create a VCE.
50f39ec6 1584
56dffa8c 15852008-05-05 Uros Bizjak <ubizjak@gmail.com>
1586
1587 * config/i386/i386.md
1588 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
1589 one insn template instead of template series.
1590 (*xordi_1_rex64): Ditto.
1591 (*xordi_2_rex64): Ditto.
1592
960a79c4 15932008-05-05 Ira Rosen <irar@il.ibm.com>
1594
56dffa8c 1595 PR tree-optimization/36119
960a79c4 1596 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
1597 in case of SLP.
1598
7309a3bb 15992008-06-04 Jan Hubicka <jh@suse.cz>
1600
1601 tree-optimization/36100
1602 * tree-pass.h (pass_O0_always_inline): Declare.
1603 * ipa-inline.c (inline_transform): Remove dead code.
1604 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
1605 pass_O0_always_inline): New.
1606 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
1607
a3d42209 16082008-05-04 Kai Tietz <kai.tietz@onevision.com>
1609
1610 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
1611 mnemonic in this_param move for TARGET_64BIT.
1612
501ec29a 16132008-05-04 Uros Bizjak <ubizjak@gmail.com>
1614
1615 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
1616 (*strmovsi_rex_1): Ditto.
1617 (*strsetsi_1): Ditto.
1618 (*strsetsi_rex_1): Ditto.
1619
1620 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
1621 adddicc expanders using SWI mode iterator.
1622
bb157d27 16232008-05-04 H.J. Lu <hongjiu.lu@intel.com>
1624
1625 PR target/36121
501ec29a 1626 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
1627 argument handling.
bb157d27 1628
1168681b 16292008-05-04 David S. Miller <davem@davemloft.net>
1630
1631 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
1632 (sparc*-*-linux*): Use linux.h in tm_file.
1633 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
1634 compiler defaulting to 32-bit.
1635 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
1636 no longer needed.
1637 * config/sparc/linux.h: Remove definitions now obtained
1638 properly from linux.h
1639 * config/sparc/linux64.h: Likewise.
1640 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
1641 don't want this setting for 32-bit builds in a biarch compiler.
1642 * doc/install.texi: Add sparc-linux to list of targets
1643 supporting --enable-targets=all.
1644
94f4bf58 16452008-05-03 Andrew Pinski <pinskia@gmail.com>
1646
1647 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
1648
31f7fbf0 16492008-05-03 H.J. Lu <hongjiu.lu@intel.com>
1650
1651 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
1652 after V4SI_FTYPE_V8HI.
1653 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
1654 case V4SI_FTYPE_V2DF.
1655
957f873e 16562008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
1449dbde 1657
1658 * doc/invoke.texi (max-flow-memory-locations): Removed.
1659 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
1660
e629070d 16612008-05-03 Richard Guenther <rguenther@suse.de>
1662
1663 PR middle-end/34973
1664 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
1665
bbb5db40 16662008-05-02 David S. Miller <davem@davemloft.net>
1667
1668 * config.gcc (need_64bit_hwint): Document libcpp dependency.
1669
8e31b4b2 16702008-05-02 Simon Baldwin <simonb@google.com>
1671
1672 PR bootstrap/36108
1673 * c-common.h (warn_array_subscript_range): Removed.
1674 * c-common.c (warn_array_subscript_range): Ditto.
1675 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
1676 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
1677
875a66b2 16782008-05-02 H.J. Lu <hongjiu.lu@intel.com>
1679
1680 * config/i386/i386.c (ix86_special_builtin_type): New.
1681 (bdesc_special_args): Likewise.
1682 (ix86_expand_special_args_builtin): Likewise.
1683 (ix86_init_mmx_sse_builtins): Updated.
1684 (ix86_expand_builtin): Updated.
1685 (ix86_expand_store_builtin): Removed.
1686 (ix86_expand_unop_builtin): Likewise.
1687
1688 * config/i386/mm3dnow.h (__v2sf): Moved to ...
1689 * config/i386/mmintrin.h (__v2sf): Here.
1690
1691 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
1692 const __v2sf.
1693 (_mm_loadl_pi): Likewise.
1694 (_mm_storeh_pi): Replace __v2si with __v2sf.
1695 (_mm_storel_pi): Likewise.
1696
1697 * doc/extend.texi: Correct __builtin_ia32_loadhps,
1698 __builtin_ia32_loadlps, __builtin_ia32_storehps,
1699 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
1700 __builtin_ia32_loadlpd.
1701
17022008-05-02 H.J. Lu <hongjiu.lu@intel.com>
1703
1704 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
1705 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
1706 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
1707 (ix86_init_mmx_sse_builtins): Updated.
1708 (ix86_expand_args_builtin): Likewise.
1709 (ix86_expand_builtin): Likewise.
1710 (ix86_expand_unop1_builtin): Renamed to ...
1711 (ix86_expand_unop_vec_merge_builtin): This.
1712
fba7ae09 17132008-05-01 Jan Hubicka <jh@suse.cz>
1714
1715 PR bootstrap/36100
1716 * ipa-inline.c (inline_generate_summary): Make static.
1717 (inline_transform): Do not call inlining at -O0; make static.
1718 * passes.c (execute_todo): Add sanity check.
1719 (execute_one_ipa_transform_pass): Execute proper flags.
1720
c67bf066 17212008-05-01 Eric Botcazou <ebotcazou@adacore.com>
1722
1723 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
1724 (DECL_NONADDRESSABLE_P): Likewise.
1725 * alias.c (record_component_aliases): Fix comment.
1726
98cb064a 17272008-05-01 Simon Baldwin <simonb@google.com>
1728
1729 * c-common.h (warn_array_subscript_range): New function.
1730 * c-common.c (warn_array_subscript_range): Ditto.
1731 * tree-vrp.c (check_array_ref): Corrected code to agree with
1732 comment, ignoring only arrays of size 0 or size 1.
1733 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
1734
49698f18 17352008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1736
1737 * config/i386/i386.c (ix86_builtin_type): Replace
1738 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
1739 (bdesc_args): Updated.
1740 (ix86_init_mmx_sse_builtins): Likewise.
1741 (ix86_expand_args_builtin): Likewise.
1742
1743 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
1744 with __v1di.
1745
1746 * doc/extend.texi: Correct __builtin_ia32_palignr.
1747
2424d00f 17482008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1749
1750 PR target/36095
1751 * config/i386/i386.c (bdesc_crc32): Removed.
1752 (ix86_expand_crc32): Likewise.
1753 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
1754 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
1755 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
1756 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
1757 UINT_FTYPE_UINT_UCHAR.
1758 (bdesc_args): Updated. Add crc32 builtins.
1759 (ix86_init_mmx_sse_builtins): Updated.
1760 (ix86_expand_args_builtin): Updated to support subreg.
1761
1762 * doc/extend.texi: Correct __builtin_ia32_crc32di.
1763
68e3904e 17642008-05-01 Jan Hubicka <jh@suse.cz>
1765
1766 * tree-pass.h (opt_pass): Add IPA_PASS.
1767 (varpool_node, cgraph_node): Forward declare.
1768 (ipa_opt_pass): Define.
1769 (pass_ipa_inline): Turn into ipa_opt_pass.
1770 (pass_apply_inline): Remove.
1771 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
1772 (apply_inline): Turn into ....
1773 (inline_transform): ... this one.
1774 (inline_generate_summary): New function.
1775 (pass_apply_inline): Remove.
1776 * function.h (ipa_opt_pass): Forward declare structure; typedef;
1777 vector.
1778 (struct function): Add ipa_transforms_to_apply.
1779 * passes.c (register_one_dump_file): Work on IPA_PASS.
1780 (init_optimization_passes): Remove pass_inline_parameters and
1781 pass_apply_inline.
1782 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
1783 (execute_one_pass) ... here; apply transforms when possible.
1784 (add_ipa_transform_pass, execute_ipa_summary_asses,
1785 execute_one_ipa_transform_pass): New.
1786 (execute_ipa_pass_list): Update for IPA_PASS type.
1787
95a18f4e 17882008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1789
1790 * config/i386/i386.c (ix86_builtin_type): Add
1791 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
1792 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
1793 (bdesc_args): Add SSE4a builtins.
1794 (ix86_init_mmx_sse_builtins): Updated.
1795 (ix86_expand_args_builtin): Likewise.
1796 (ix86_expand_builtin): Likewise.
1797
30063220 17982008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1799
1800 * config/i386/i386.c (ix86_builtin_type): Add
1801 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
1802 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
1803 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
1804 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
1805 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
1806 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
1807 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
1808 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
1809 and DI_FTYPE_DI_DI_INT.
1810 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
1811 (ix86_init_mmx_sse_builtins): Updated.
1812 (ix86_expand_args_builtin): Likewise.
1813 (ix86_expand_builtin): Likewise.
1814 (ix86_expand_binop_imm_builtin): Removed.
1815
1816 * doc/extend.texi: Correct __builtin_ia32_palignr128.
1817
acc0a673 18182008-04-30 Richard Guenther <rguenther@suse.de>
1819
1820 PR tree-optimization/32921
1821 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
1822
6025a5e6 18232008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
1824
1825 * config/arm/arm.c (arm_unwind_emit): Use
1826 crtl->all_throwers_are_sibcalls instead of
1827 cfun->all_throwers_are_sibcalls.
1828 (arm_output_fn_unwind): Likewise.
1829 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
1830 instead of cfun->uses_pic_offset_table.
1831 (frv_expand_prologue): Likewise.
1832 (frv_frame_pointer_required): Likewise.
1833 (frv_expand_fdpic_call): Likewise.
1834 (frv_emit_movsi): Likewise.
1835 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
1836 cfun->returns_pcc_struct instead of
1837 current_function_returns_pcc_struct.
1838 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
1839 instead of cfun->calls_eh_return.
1840 (m32c_pushm_popm): Likewise.
1841 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
1842 "extern" declaration.
1843
912f109f 18442008-04-30 Richard Guenther <rguenther@suse.de>
1845
1846 PR tree-optimization/21636
1847 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
1848 constant address.
1849 (evaluate_stmt): Print the likely value.
1850 (ccp_visit_stmt): Avoid excessive vertical spacing.
1851
55c10931 18522008-04-30 Rafael Espindola <espindola@google.com>
1853
1854 * builtins.c (fold_call_expr): Return realret.
1855 * tree-ssa-threadedge.c
1856 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1857 __builtin_object_size.
1858
0bfd146e 18592008-04-30 Seongbae Park <seongbae.park@gmail.com>
1860
1861 * gcc.c (wrapper_string): New variable.
1862 (insert_wrapper): New function.
1863 (execute): New option -wrapper.
1864 * doc/invoke.texi (Overall Options): New driver option -wrapper.
1865
19872d0b 18662008-04-30 Nathan Froyd <froydnj@codesourcery.com>
1867
501ec29a 1868 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
1869 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
1870 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
1871 from...
1872 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
1873 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
1874 config/rs6000/e500crtres64gprctr.asm,
1875 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
1876 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
1877 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
1878 config/rs6000/e500crtsav64gprctr.asm,
1879 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
1880 config/rs6000/e500crtsavg64gprctr.asm: New files.
1881 * config/rs6000/t-ppccomm: Add build rules for new files.
1882 (LIB2FUNCS_STATIC_EXTRA): Add new files.
1883 * config/rs6000/t-netbsd: Add build rules for new files.
1884 (LIB2FUNCS_STATIC_EXTRA): New variable.
1885 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
1886 (CRTSAVRES_DEFAULT_SPEC): Likewise.
1887 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
19872d0b 1888
6f50184d 18892008-04-30 H.J. Lu <hongjiu.lu@intel.com>
1890
1891 * config/i386/i386.c (ix86_builtin_type): Add
1892 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
1893 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
1894 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
1895 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
1896 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
1897 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
1898 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
1899 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
1900 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
1901 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
1902 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
1903 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
1904 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
1905 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
1906 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
1907 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
1908 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
1909 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
1910 V1DI_FTYPE_V2SI_V2SI.
1911 (bdesc_2arg): Moved to ...
1912 (bdesc_args): Here.
1913 (ix86_init_mmx_sse_builtins): Updated.
1914 (ix86_expand_args_builtin): Updated. Take a pointer
1915 to const struct builtin_description. Handle comparison
1916 builtin functions.
501ec29a 1917 (ix86_expand_sse_compare): Take a new argument for swapping operands.
6f50184d 1918 (ix86_expand_builtin): Updated.
1919
1920 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
1921 (ssse3_pmaddubsw128): This.
1922 (ssse3_pmaddubswv4hi3): Renamed to ...
1923 (ssse3_pmaddubsw): This.
1924
501ec29a 1925 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
6f50184d 1926 (__builtin_ia32_packssdw128): Likewise.
501ec29a 1927 (__builtin_ia32_packuswb128): Likewise.
6f50184d 1928 (__builtin_ia32_pmaddubsw): Likewise.
1929 (__builtin_ia32_pmaddubsw128): Likewise.
1930
c9686d06 19312008-04-30 Richard Guenther <rguenther@suse.de>
1932
1933 PR tree-optimization/14847
1934 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
1935 (recognize_bits_test): Use it.
1936 (recognize_single_bit_test): Likewise.
1937
1fc19b80 19382008-04-30 Martin Jambor <mjambor@suse.cz>
1939
1940 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
1941 instead of setting number of formal parameters to zero.
1942 (ipcp_init_stage): Do not set the number of actual parameters to zero
1943 either.
1944 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
1945 which are called with variable number of arguments.
1946 (ipcp_insert_stage): Explicitely skipping all nodes which are
1947 called with variable number of arguments.
1948 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
1949 number of parameters.
1950
1951 * ipa-prop.h (struct ipa_node_params): Added flag
1952 called_with_var_arguments
1953 (ipa_set_param_count): Added. Changed sole setter to use it.
1954 (ipa_get_param_count): Added. All readers of param_count
1955 converted to use it instead.
1956 (ipa_set_called_with_variable_arg): Added.
1957 (ipa_is_called_with_var_arguments): Added.
1958 (ipa_get_ith_param): Added. All readers of param_decls converted
1959 to use it instead.
1960 (ipa_set_cs_argument_count): Added, sole writer to argument_count
1961 changed to use it.
1962 (ipa_get_cs_argument_count): Added, all readers of argument_count
1963 changed to cal it.
1964 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
1965 to use it.
1966
1967 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
1968 (struct ipcp_lattice): Renamed cval_type to type
1969 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
1970
1971 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
1972 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
1973 (ipcp_insert_stage): Changed the type of variable cvalue to tree
1974 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
1975 (build_const_val): Changed the type of parameter cvalue to tree
1976 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
1977 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
1978
1979 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
1980 constant
1981
1982 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
1983 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
1984 (ipa_add_method): Renamed to ipa_push_func_to_list
1985 (ipa_remove_method): Renamed to ipa_pop_func_from_list
1986 (ipa_callsite_param_count): Removed.
1987 (ipa_callsite_param_count_set): Removed.
1988 (ipa_callsite_param): Removed.
1989 (ipa_callsite_callee): Removed.
1990 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
1991 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
1992 (ipa_method_formal_count): Removed.
1993 (ipa_method_formal_count_set): Removed.
1994 (ipa_method_get_tree): Removed.
1995 (ipa_method_tree_map_create): Removed.
1996 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
1997 (ipa_create_param_decls_array): Creates the array itself
1998 (ipa_create_param_decls_array): Temporary variable info instead of
1999 a few dereferences.
2000 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
2001 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
2002 (get_type): Removed.
2003 (ipa_jf_get_info_type): Removed.
2004 (ipa_node_create): Renamed to ipa_create_node_params
2005 (ipa_free): Renamed to ipa_free_all_node_params
2006 (ipa_nodes_create): Renamed to ipa_create_all_node_params
2007 (ipa_edges_create): Renamed to ipa_create_all_edge_args
2008 (ipa_edges_free): Renamed to ipa_free_all_edge_args
2009 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
2010 (ipa_free_all_node_params): Deallocation to jump_functions moved to
2011 ipa_free_all_edge_args
2012 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
2013 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
2014 (ipa_create_methodlist_node): Removed.
2015 (ipa_methodlist_method): Removed.
2016 (ipa_methodlist_method_set): Removed.
2017 (ipa_methodlist_next_method): Removed.
2018 (ipa_methodlist_next_method_set): Removed.
2019 (ipa_method_is_modified): Removed.
2020 (ipa_method_modify_create): Removed.
2021 (ipa_method_modify_init): Temporary variable info instead of a few
2022 dereferences.
2023 (ipa_detect_param_modifications): Temporary variable info instead of
2024 a few dereferences.
2025 (ipa_compute_jump_functions): Temporary variable info instead of
2026 a few dereferences.
2027 (ipa_method_modify_set): Removed.
2028 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
2029 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
2030 than craph_node as the first parameter.
2031 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
2032 (ipa_method_modify_init): Removed.
2033 (ipa_compute_jump_functions): Added a temp variable instead of
2034 repeatadly dereferencing the cgraph_edge.aux pointer
2035 (ipa_callsite_param_set_type): Removed.
2036 (ipa_compute_jump_functions): i renamed to index and moved to
2037 an inner block
2038 (ipa_callsite_param_set_info_type_formal): Removed.
2039 (ipa_callsite_param_set_info_type): Removed.
2040 (ipa_callsite_param_map_create): Removed.
2041 (ipa_callsite_tree): Removed.
2042 (ipa_callsite_caller): Removed.
2043 (ipa_pop_func_from_list): return_method removed to return_func
2044
2045 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
2046 prefixed all values with IPA_. Changed all users.
2047 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
2048 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
2049 and FORMAL_IPATYPE IPA_PASS_THROUGH.
2050 (union parameter_info): Renamed to jump_func_value.
2051 (union jump_func_value): Renamed value to constant
2052 (struct ipa_jump_func): Renamed info_type to value
2053 (struct ipa_node): Renamed to ipa_node_params
2054 (struct ipa_node_params): Renamed ipa_arg_num to param_count
2055 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
2056 (struct ipa_node_params): Renamed ipa_mod to modified_flags
2057 (struct ipa_edge): Renamed to ipa_edge_args
2058 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
2059 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
2060 (struct ipa_methodlist): Renamed to ipa_func_list
2061 (struct ipa_func_list): method_p renamed to node, next_method
2062 renamed to next
2063 (ipa_methodlist_p): Removed, switched all users to struct pointer
2064 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
2065
cd30e128 20662008-04-30 Alan Modra <amodra@bigpond.net.au>
2067
2068 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
2069 (rs6000_emit_epilogue): Use backchain to restore only when we
2070 have a large frame. Make use of frame pointer to restore if we
2071 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
2072
f005400e 20732008-04-29 Paolo Bonzini <bonzini@gnu.org>
2074
2075 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2076 Add mode to zero_extract.
2077 (sign bit tests peepholes): (Ditto.).
2078
ea4dd78d 20792008-04-29 H.J. Lu <hongjiu.lu@intel.com>
2080
2081 * config/i386/i386.c (ix86_builtins): Replace Prescott New
2082 Instructions in comments with SSE3.
2083 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
2084 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
2085 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
2086 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
2087 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
2088 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
2089 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
2090 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
2091 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
2092 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
2093 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
2094 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
2095 (bdesc_sse_args): Renamed to ...
2096 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
2097 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
2098 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
2099 IX86_BUILTIN_FABSQ.
2100 (bdesc_1arg): Moved to ...
2101 (bdesc_args): Here.
2102 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
2103 Instructions in comments with SSE3.
2104 (ix86_expand_sse_operands_builtin): Renamed to ...
2105 (ix86_expand_args_builtin): This. Updated.
2106 (ix86_expand_unop1_builtin): Update comments.
2107 (ix86_expand_builtin): Updated.
2108
b2a225ba 21092008-04-29 Richard Guenther <rguenther@suse.de>
2110
2111 PR tree-optimization/36078
2112 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
2113 Update virtual SSA form after cleaning up the CFG.
2114
f4cd9b29 21152008-04-29 Richard Guenther <rguenther@suse.de>
2116
2117 PR middle-end/15255
2118 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
2119
d0cfbbf2 21202008-04-29 Richard Guenther <rguenther@suse.de>
2121
2122 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
2123 (compute_may_aliases): Do not call finalize_ref_all_pointers.
2124 (compute_flow_insensitive_aliasing): Do not treat
2125 PTR_IS_REF_ALL pointers special.
2126 (get_smt_for): Likewise.
2127 (may_alias_p): Re-structure.
2128 (is_escape_site): A ref-all pointer conversion is not an escape site.
2129 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
2130 PTR_IS_REF_ALL pointers special.
2131 * tree-ssa-structalias.h (struct alias_info): Remove
2132 ref_all_symbol_mem_tag field.
2133 (PTR_IS_REF_ALL): Remove.
2134
c79abec2 21352008-04-29 Richard Guenther <rguenther@suse.de>
2136
2137 PR middle-end/36077
2138 * fold-const.c (extract_muldiv_1): In combining division constants
2139 make sure to never overflow.
2140
d458baea 21412008-04-29 Nick Clifton <nickc@redhat.com>
2142
2143 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
2144
13c2c394 21452008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2146
2147 PR bootstrap/35169
2148 * optc-gen.awk: Work around HP-UX/IA awk bug.
2149
f6ecd416 21502008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
2151
2152 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
2153 2008-04-25 commit.
2154
e263da54 21552008-04-28 Uros Bizjak <ubizjak@gmail.com>
2156
2157 PR target/36073
2158 * config/i386/i386.md
2159 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
2160 Change operand 1 predicate to nonimmediate_operand.
2161
ae093573 21622008-04-28 Jakub Jelinek <jakub@redhat.com>
2163
2164 PR debug/36060
2165 * dwarf2out.c (struct die_struct): Mark as chain_circular through
2166 die_sub field.
2167 * gengtype.c (walk_type, write_func_for_structure): Handle
2168 chain_circular.
2169 * doc/gty.texi: Document chain_circular.
2170
b06d96b5 21712008-04-28 Richard Guenther <rguenther@suse.de>
2172
2173 PR tree-optimization/36066
2174 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
2175 SCEV and loop.
2176
a369a55c 21772008-04-28 Uros Bizjak <ubizjak@gmail.com>
2178
2179 PR target/36064
e263da54 2180 * config/i386/i386.md
2181 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
a369a55c 2182 Use match_scratch instead of match_operand for operands 3 and 4.
2183
d88fd237 21842008-04-27 Richard Guenther <rguenther@suse.de>
2185
2186 PR tree-optimization/18754
2187 PR tree-optimization/34223
2188 * tree-pass.h (pass_complete_unrolli): Declare.
2189 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
2190 loop size before and after unconditionally of UL_NO_GROWTH in effect.
2191 Rewrite loop into loop closed SSA form if it is not already.
2192 (tree_unroll_loops_completely): Re-structure to iterate over
2193 innermost loops with intermediate CFG cleanups.
2194 Unroll outermost loops only if requested or the code does not grow
2195 doing so.
2196 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
2197 loops are available.
2198 (tree_vectorize): Instead do so here.
2199 (tree_complete_unroll): Also unroll outermost loops.
2200 (tree_complete_unroll_inner): New function.
2201 (gate_tree_complete_unroll_inner): Likewise.
2202 (pass_complete_unrolli): New pass.
2203 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
2204 uses outside of the loop.
2205 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
2206 form if it is available.
2207 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
2208 * passes.c (init_optimization_passes): Schedule complete inner
2209 loop unrolling pass before the first CCP pass after final inlining.
2210
38475469 22112008-04-27 Nathan Sidwell <nathan@codesourcery.com>
2212
2213 * targhooks.h (default_emutls_var_fields,
2214 default_emutls_var_init): Declare.
2215 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
2216 * target.h (struct gcc_target): Add struct emutls member.
2217 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
2218 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
2219 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
2220 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
2221 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
2222 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
2223 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
2224 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
2225 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
2226 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
2227 emit debug information.
2228 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
2229 * varasm.c: Include targhooks.h.
2230 (emutls_object_section, emutls_tmpl_section): New.
2231 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
2232 (EMUTLS_SEPARATOR): New.
2233 (prefix_name): New.
2234 (get_emutls_object_name): New.
2235 (default_emutls_var_fields): New, broken out of ...
2236 (get_emutls_object_type): ... here. Adjust to use target hooks.
2237 (get_emutls_init_templ_addr): Adjust to use target hooks.
2238 (emutls_decl): Adjust to use target hooks.
2239 (emutls_finish): Likewise.
2240 (default_emutls_var_init): New, broken out of ...
2241 (assemble_variable): ... here. Adjust to use target hooks.
2242 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
2243 SECCAT_EMUTLS_TMPL.
2244 * c-common.c (handle_section_attribute): Prevent overriding
2245 sections for emulated tls with special sections.
2246 * config/i386/i386.c (x86_64_elf_select_section): Add
2247 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
2248 (x86_64_elf_unique_section): Likewise.
2249 * config/vxworks.c: Include tree.h.
2250 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
2251 (vxworks_override_options): Set TLS scheme.
ae093573 2252 * doc/tm.texi (Emulated TLS): New node.
38475469 2253
7e3b64b4 22542008-04-26 Simon Baldwin <simonb@google.com>
2255
2256 PR c/35652
2257 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
2258 with propagated string constants.
2259
500d8ed2 22602008-04-26 Uros Bizjak <ubizjak@gmail.com>
2261
2262 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
2263 constraint for operand 2 when operand 0 is memory operand.
2264 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
2265 operand 0 is memory operand.
2266 (fix_trunc<mode>_i387_with_temp): Ditto.
2267 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
2268 operand 2 when operand 1 is memory operand.
2269 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
2270 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
2271 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
2272 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2273 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
2274 operands 2,3 and 4 when operand 1 is memory operand.
2275 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
2276 is memory operand.
2277 (fistdi2_floor_with_temp): Ditto.
2278 (fist<mode>2_floor_with_temp): Ditto.
2279 (fistdi2_ceil_with_temp): Ditto.
2280 (fist<mode>2_ceil_with_temp): Ditto.
2281 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
2282
346c9aaf 22832008-04-26 David Daney <ddaney@avtrex.com>
2284
2285 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
2286 unspec_volitile.
2287 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
2288 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2289 UNSPEC_UPDATE_GOT_VERSION): Renumber.
2290 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
2291 (compare_and_swap_12): New insn.
2292 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
2293 * config/mips/mips.c (mips_force_binary): New function.
2294 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
2295 (mips_expand_compare_and_swap_12): New function.
2296 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
2297
18d50ae6 22982008-04-25 Jan Hubicka <jh@suse.cz>
2299
2300 PR testsuite/35843
2301 * cfgexpand.c (pass_expand): Turn into RTL pass.
2302 * passes.c (execute_one_pass): Do pass typechecking after execution.
2303 * tree-pass.h (pass_expand): Turn into RTL pass.
2304
2305 * function.h (struct rtl_data): Move here fields
2306 accesses_prior_frames, calls_eh_return, saves_all_registers,
2307 has_nonlocal_goto, has_asm_statement, is_thunk,
2308 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
2309 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
2310 arg_pointer_save_area_init from struct function; turn into bool.
2311 (struct function): Move
2312 calls_eh_return, saves_all_registers, has_nonlocal_goto,
2313 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
2314 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
2315 tail_call_emit, arg_pointer_save_area_init
2316 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
2317 (current_function_returns_struct, current_function_returns_pcc_struct,
2318 current_function_calls_setjmp, current_function_calls_alloca,
2319 current_function_accesses_prior_frames,
2320 current_function_calls_eh_return, current_function_is_thunk,
2321 current_function_stdarg, current_function_profile,
2322 current_function_limit_stack, current_function_uses_pic_offset_table,
2323 current_function_uses_const_pool, current_function_has_nonlocal_label,
2324 current_function_saves_all_registers,
2325 current_function_has_nonlocal_goto,
2326 current_function_has_asm_statement): Remove accesor macros.
2327 * ra-conflict.c (global_conflicts): Update.
2328 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
2329 (suitable_for_tail_call_opt_p): Update.
2330 * builtins.c (expand_builtin_return_addr): Update.
2331 (expand_builtin_setjmp_setup): Update.
2332 (expand_builtin_nonlocal_goto): Update.
2333 * final.c (final_start_function): Update.
2334 (profile_function): Update.
2335 (leaf_function_p): Update.
2336 (only_leaf_regs_used): Update.
2337 * df-scan.c (df_get_exit_block_use_set): Update.
2338 * dojump.c (clear_pending_stack_adjust): Update.
2339 * tree-stdarg.c (gate_optimize_stdarg): Update.
2340 * gimple-low.c (lower_function_body): Update.
2341 * global.c (compute_regsets): Update.
2342 (global_alloc): Update.
2343 * dwarf2out.c (dwarf2out_begin_prologue): Update.
2344 * expr.c (expand_assignment): Update.
2345 * dse.c (dse_step0): Update.
2346 (dse_step1): Update.
2347 * c-decl.c (store_parm_decls): Update.
2348 * local-alloc.c (combine_regs): Update.
2349 (find_free_reg): Update.
2350 * function.c (assign_parms_augmented_arg_list): Update.
2351 (assign_parm_find_data_types): Update.
2352 (assign_parms): Update.
2353 (allocate_struct_function): Update.
2354 (expand_function_start): Update.
2355 (expand_function_end): Update.
2356 (get_arg_pointer_save_area): Update.
2357 (thread_prologue_and_epilogue_insns): Update.
2358 (rest_of_match_asm_constraints): Update.
2359 * stor-layout.c (variable_size): Update.
2360 * gcse.c (gcse_main): Update.
2361 (bypass_jumps): Update.
2362 * gimplify.c (gimplify_function_tree): Update.
2363 * calls.c (emit_call_1): Update.
2364 (expand_call): Update.
2365 * bt-load.c (compute_defs_uses_and_gen): Update.
2366 * except.c (sjlj_assign_call_site_values): Update.
2367 (sjlj_emit_function_enter): Update.
2368 (can_throw_external): Update.
2369 (set_nothrow_function_flags): Update.
2370 (expand_builtin_unwind_init): Update.
2371 (expand_eh_return): Update.
2372 (convert_to_eh_region_ranges): Update.
2373 (output_function_exception_table): Update.
2374 * emit-rtl.c (gen_tmp_stack_mem): Update.
2375 * cfgexpand.c (expand_used_vars): Update.
2376 (tree_expand_cfg): Update.
2377 * cfgcleanup.c (rest_of_handle_jump): Update.
2378 * explow.c (allocate_dynamic_stack_space): Update.
2379 * varasm.c (assemble_start_function): Update.
2380 (force_const_mem): Update.
2381 (mark_constant_pool): Update.
2382 * tree-optimize.c (tree_rest_of_compilation): Update.
2383 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
2384 * tree-cfg.c (notice_special_calls): Update.
2385 (is_ctrl_altering_stmt): Update.
2386 (tree_can_make_abnormal_goto): Update.
2387 (tree_purge_dead_abnormal_call_edges): Update.
2388 * config/alpha/predicates.md: Update.
2389 * config/alpha/alpha.c (alpha_sa_mask): Update.
2390 (alpha_sa_size): Update.
2391 (alpha_does_function_need_gp): Update.
2392 (alpha_expand_prologue): Update.
2393 (alpha_start_function): Update.
2394 (alpha_output_function_end_prologue): Update.
2395 (alpha_expand_epilogue): Update.
2396 * config/frv/frv.c (frv_stack_info): Update.
2397 (frv_expand_epilogue): Update.
2398 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
2399 (s390_register_info): Update.
2400 (s390_frame_info): Update.
2401 (s390_init_frame_layout): Update.
2402 (s390_can_eliminate): Update.
2403 (save_gprs): Update.
2404 * config/spu/spu.c (spu_split_immediate): Update.
2405 (need_to_save_reg): Update.
2406 (spu_expand_prologue): Update.
2407 (spu_expand_epilogue): Update.
2408 * config/sparc/sparc.md: Update.
2409 * config/sparc/sparc.c (eligible_for_return_delay): Update.
2410 (sparc_tls_got): Update.
2411 (legitimize_pic_address): Update.
2412 (sparc_emit_call_insn): Update.
2413 (sparc_expand_prologue): Update.
2414 (output_return): Update.
2415 (print_operand): Update.
2416 (sparc_function_ok_for_sibcall): Update.
2417 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
2418 * config/m32r/m32r.md: Update.
2419 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
2420 (m32r_compute_frame_size): Update.
2421 (m32r_expand_prologue): Update.
2422 (m32r_expand_epilogue): Update.
2423 (m32r_legitimize_pic_address): Update.
2424 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
2425 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2426 * config/i386/i386.c (ix86_frame_pointer_required): Update.
2427 (gen_push): Update.
2428 (ix86_save_reg): Update.
2429 (ix86_compute_frame_layout): Update.
2430 (ix86_expand_prologue): Update.
2431 (ix86_expand_epilogue): Update.
2432 * config/sh/sh.c (output_stack_adjust): Update.
2433 (calc_live_regs): Update.
2434 (sh5_schedule_saves): Update.
2435 (sh_expand_prologue): Update.
2436 (sh_expand_epilogue): Update.
2437 (sh_setup_incoming_varargs): Update.
2438 (sh_allocate_initial_value): Update.
2439 (sh_get_pr_initial_val): Update.
2440 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
2441 * config/sh/sh.md (label:): Update.
2442 * config/avr/avr.c (out_movhi_mr_r): Update.
2443 * config/crx/crx.h (enum): Update.
2444 * config/xtensa/xtensa.h (along): Update.
2445 * config/stormy16/stormy16.c Update.
2446 (xstormy16_compute_stack_layout): Update.
2447 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
2448 (fr30_expand_prologue): Update.
2449 * config/cris/cris.c (cris_conditional_register_usage): Update.
2450 (cris_reg_saved_in_regsave_area): Update.
2451 (cris_initial_frame_pointer_offset): Update.
2452 (cris_simple_epilogue): Update.
2453 (cris_expand_prologue): Update.
2454 (cris_expand_epilogue): Update.
2455 (cris_expand_pic_call_address): Update.
2456 (cris_asm_output_symbol_ref): Update.
2457 (cris_asm_output_label_ref): Update.
2458 * config/cris/cris.md Update.
2459 * config/iq2000/iq2000.c (compute_frame_size): Update.
2460 (iq2000_expand_epilogue): Update.
2461 * config/mt/mt.h (save_direction): Update.
2462 * config/mn10300/mn10300.c (mn10300_function_value): Update.
2463 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
2464 (ia64_secondary_reload_class): Update.
2465 * config/m68k/m68k.c (m68k_save_reg): Update.
2466 (m68k_expand_prologue): Update.
2467 (m68k_expand_epilogue): Update.
2468 (legitimize_pic_address): Update.
2469 * config/rs6000/rs6000.c (rs6000_got_register): Update.
2470 (first_reg_to_save): Update.
2471 (first_altivec_reg_to_save): Update.
2472 (compute_vrsave_mask): Update.
2473 (compute_save_world_info): Update.
2474 (rs6000_stack_info): Update.
2475 (spe_func_has_64bit_regs_p): Update.
2476 (rs6000_ra_ever_killed): Update.
2477 (rs6000_emit_eh_reg_restore): Update.
2478 (rs6000_emit_allocate_stack): Update.
2479 (rs6000_emit_prologue): Update.
2480 (rs6000_emit_epilogue): Update.
2481 (rs6000_output_function_epilogue): Update.
2482 (output_profile_hook): Update.
2483 (rs6000_elf_declare_function_name): Update.
2484 * config/rs6000/rs6000.h (rs6000_args): Update.
2485 * config/rs6000/rs6000.md: Update.
2486 * config/mcore/mcore.c (mcore_expand_prolog): Update.
2487 * config/arc/arc.c (arc_output_function_epilogue): Update.
2488 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
2489 * config/darwin.c (machopic_function_base_name): Update.
2490 * config/score/score3.c (score3_compute_frame_size): Update.
2491 (rpush): Update.
2492 (rpop): Update.
2493 (score3_epilogue): Update.
2494 * config/score/score7.c (score7_compute_frame_size): Update.
2495 (score7_prologue): Update.
2496 (score7_epilogue): Update.
2497 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
2498 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2499 * config/arm/arm.c (use_return_insn): Update.
2500 (require_pic_register): Update.
2501 (arm_load_pic_register): Update.
2502 (arm_compute_save_reg0_reg12_mask): Update.
2503 (arm_compute_save_reg_mask): Update.
2504 (thumb1_compute_save_reg_mask): Update.
2505 (output_return_instruction): Update.
2506 (arm_output_function_prologue): Update.
2507 (arm_output_epilogue): Update.
2508 (arm_get_frame_offsets): Update.
2509 (arm_expand_prologue): Update.
2510 (thumb_pushpop): Update.
2511 (thumb_exit): Update.
2512 (thumb1_expand_prologue): Update.
2513 (thumb1_expand_epilogue): Update.
2514 (arm_unwind_emit): Update.
2515 (arm_output_fn_unwind): Update.
2516 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
2517 * config/arm/arm.md: Update.
2518 * config/pa/pa.md: Update.
2519 * config/pa/pa.c (legitimize_pic_address): Update.
2520 (compute_frame_size): Update.
2521 (hppa_expand_prologue): Update.
2522 (hppa_expand_epilogue): Update.
2523 (borx_reg_operand): Update.
2524 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
2525 (HARD_REGNO_RENAME_OK): Update.
2526 * config/mips/mips.c (mips_global_pointer): Update.
2527 (mips_save_reg_p): Update.
2528 (mips_compute_frame_info): Update.
2529 (mips_frame_pointer_required): Update.
2530 (mips_expand_prologue): Update.
2531 (mips_expand_epilogue): Update.
2532 (mips_can_use_return_insn): Update.
2533 (mips_reorg_process_insns): Update.
2534 * config/v850/v850.c (compute_register_save_size): Update.
2535 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
2536 * config/mmix/mmix.c (along): Update.
2537 (mmix_expand_epilogue): Update.
2538 * config/bfin/bfin.c (legitimize_pic_address): Update.
2539 (must_save_p): Update.
2540 (stack_frame_needed_p): Update.
2541 (add_to_reg): Update.
2542 (bfin_expand_prologue): Update.
2543 * stmt.c (expand_asm_operands): Update.
2544 * reload1.c (reload): Update.
2545 (init_elim_table): Update.
2546
9407e9ac 25472008-04-25 Bob Wilson <bob.wilson@acm.org>
2548
2549 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
2550
f96e219b 25512008-04-25 H.J. Lu <hongjiu.lu@intel.com>
2552
501ec29a 2553 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
f96e219b 2554 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
2555 (mov<mode>): Removed.
2556 (*movv4sf_internal): Likewise.
2557 (*movv2df_internal): Likewise.
2558
29ed6076 25592008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
2560
2561 * config.gcc (crx-*-elf): Remove deprecation.
2562
a64de0e6 25632008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
2564
2565 * config/i386/cygming-crtend.c (register_frame_ctor): Register
2566 __gcc_deregister_frame with atexit.
2567 (deregister_frame_dtor): Remove.
2568
d636296f 25692008-04-24 Nathan Froyd <froydnj@codesourcery.com>
ff84f6db 2570 Nathan Sidwell <nathan@codesourcery.com>
2571
48d0a424 2572 * config/rs6000/rs6000.opt (mspe): Remove Var property.
ff84f6db 2573 (misel): Likewise.
48d0a424 2574 * config/rs6000/rs6000.h (rs6000_spe): Declare.
ff84f6db 2575 (rs6000_isel): Likewise.
48d0a424 2576 * config/rs6000/rs6000.c (rs6000_spe): New variable.
ff84f6db 2577 (rs6000_isel): New variable.
48d0a424 2578 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
ff84f6db 2579
d991e6e8 25802008-04-24 Jakub Jelinek <jakub@redhat.com>
2581
2582 PR c++/35758
2583 * c-common.c (handle_vector_size_attribute): Call
2584 lang_hooks.types.reconstruct_complex_type instead of
2585 reconstruct_complex_type.
2586 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
2587 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
2588 * langhooks.h (struct lang_hooks_for_types): Add
2589 reconstruct_complex_type hook.
2590 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
2591 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2592
d43cee80 25932008-04-24 Richard Guenther <rguenther@suse.de>
2594
2595 * c-common.h (check_builtin_function_arguments): Declare.
2596 * c-common.c (validate_nargs): New function.
2597 (check_builtin_function_arguments): Likewise.
2598 * c-typeck.c (build_function_call): Call
2599 check_builtin_function_arguments.
2600 * builtins.c (fold_builtin_classify): Remove error reporting code.
2601 (fold_builtin_unordered_cmp): Likewise.
2602 (fold_builtin_1): Likewise.
2603 (fold_builtin_n): Likewise.
2604
5791999f 26052008-04-24 Jakub Jelinek <jakub@redhat.com>
2606
2607 PR tree-optimization/36008
2608 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
2609 the original op1, rather than delta by step.
2610
e06f9c34 26112008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
48d0a424 2612 Sebastian Pop <sebastian.pop@amd.com>
e06f9c34 2613
2614 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
2615 eliminate_local_variables_stmt, eliminate_local_variables,
2616 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
2617 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
2618 of code delimited by two edges in the CFG.
2619 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
2620 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
2621 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
2622 the case of parallelisation of reductions.
2623 (expr_invariant_in_region_p): New.
2624
2625 * tree-flow.h (gather_blocks_in_sese_region): Declared.
2626 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
2627
664af971 26282008-04-24 Ira Rosen <irar@il.ibm.com>
48d0a424 2629 Richard Guenther <rguenther@suse.de>
664af971 2630
2631 PR tree-optimization/36034
2632 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
2633 incapable of dealing with loads with gaps.
2634
ced5bc56 26352008-04-24 Rafael Espindola <espindola@google.com>
2636
2637 * tree-flow.h (vrp_evaluate_conditional): Change signature.
2638 * tree-ssa-propagate.c (fold_predicate_in): Update call to
2639 vrp_evaluate_conditional.
2640 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
48d0a424 2641 (vrp_evaluate_conditional): Split the cond argument.
2642 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
2643 (simplify_stmt_for_jump_threading): Update call to
ced5bc56 2644 vrp_evaluate_conditional.
2645
06d44c00 26462008-04-24 Ira Rosen <irar@il.ibm.com>
2647
2648 PR tree-optimization/35982
2649 * tree-vect-analyze.c (vect_check_interleaving): Check that the
2650 interleaved data-refs are of the same type.
2651
d351f137 26522008-04-24 Danny Smith <dannysmith@users.net>
2653
48d0a424 2654 * c-format.c (check_format_info_main): Use strncmp rather than a
2655 magic prefix to handle multichar length specs.
d351f137 2656 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
2657 Don't prefix "I64" and "I32" with '\0'.
2658
85637477 26592008-04-24 Jakub Jelinek <jakub@redhat.com>
2660
2661 PR target/36015
2662 * config/i386/i386.c (init_cumulative_args): Don't pass anything
2663 in registers for -m32 only if stdarg_p (fntype).
2664
39925406 26652008-04-24 Uros Bizjak <ubizjak@gmail.com>
2666
2667 PR rtl-optimization/36006
2668 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
2669 temp to op0 in order to avoid invalid rtx sharing.
2670
c7d4e749 26712008-04-23 Paolo Bonzini <bonzini@gnu.org>
2672
2673 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
2674 check TREE_INVARIANT.
2675 * tree-gimple.c (is_gimple_address): New.
2676 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
2677 * tree-gimple.h (is_gimple_address): New.
2678 * tree.h (decl_address_invariant_p): New.
2679 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
2680 (build_string): Likewise.
2681 (decl_address_invariant_p): New, from is_gimple_invariant_address.
2682 (tree_invariant_p_1): Likewise.
2683 (save_expr): Use it.
2684 (tree_invariant_p): New.
2685 (skip_simple_arithmetic): Use it.
2686 (stabilize_reference_1): Use it.
2687 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
2688 simplify.
2689 (build1_stat): Drop code to compute TREE_INVARIANT.
2690 (build2_stat): Drop code to compute TREE_INVARIANT.
2691 (build3_stat): Drop code to compute TREE_INVARIANT.
2692 (build4_stat): Drop code to compute TREE_INVARIANT.
2693 (build5_stat): Drop code to compute TREE_INVARIANT.
2694 (build7_stat): Drop code to compute TREE_INVARIANT.
2695 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
2696 * tree.h (struct tree_base): Remove invariant_flag.
2697 (TREE_INVARIANT): Remove.
2698 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
2699 (fold_builtin_expect): Check TREE_CONSTANT.
2700 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
2701 * c-tree.h (c_expr_to_decl): Drop third parameter.
2702 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
2703 (build_c_cast): Don't set TREE_INVARIANT.
2704 (pop_init_level): Don't set TREE_INVARIANT.
2705 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
2706 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
2707 TREE_CONSTANT.
2708 (gimplify_init_constructor): Don't set TREE_INVARIANT.
2709 (gimplify_addr_expr): Adjust comment.
2710 * tree-mudflap.c (mf_build_string):
2711 * print-tree.c (print_node): Don't print TREE_INVARIANT.
2712 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
2713 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
2714 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
2715 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
2716 * langhooks.h (struct lang_hooks): Drop third parameter from
2717 expr_to_decl.
2718
4f8f2f76 27192008-04-23 Richard Guenther <rguenther@suse.de>
2720
2721 PR tree-optimization/27799
2722 PR tree-optimization/32921
2723 PR tree-optimization/32624
2724 * tree-ssa-structalias.c (merge_smts_into): Only merge the
2725 SMTs aliases and the tag itself into the solution.
2726 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
2727 merge the points-to solution back into the SMT aliases.
2728 (may_alias_p): Use alias_set_subset_of instead of
2729 aliases_conflict_p. A pointer which points to
2730 memory with alias set zero may access any variable.
2731
6c711ccf 27322008-04-23 Richard Guenther <rguenther@suse.de>
2733
2734 * alias.c (alias_set_subset_of): Correctly handle asking
2735 if zero is a subset of an alias set with zero child.
2736 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
2737 (compute_flow_insensitive_aliasing): Correctly walk all
2738 pointers. Do not unnecessarily union sets.
2739
2802826e 27402008-04-23 Richard Guenther <rguenther@suse.de>
2741
2742 PR middle-end/36021
2743 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
2744
1aa0d4ff 27452008-04-22 Tomas Bily <tbily@suse.cz>
2746
39925406 2747 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
2748 unreachable case.
2749 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
2750 NON_LVALUE_EXPR.
2751 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2752 * tree-ssa-structalias.c (get_constraint_for): Likewise.
2753 * tree-inline.c (estimate_num_insns_1): Likewise.
2754 * varasm.c (const_hash_1, compare_constant, copy_constant)
2755 (compute_reloc_for_constant, output_addressed_constants): Likewise.
2756 * emit-rtl.c (component_ref_for_mem_expr)
2757 (set_mem_attributes_minus_bitpos): Likewise.
2758 * expr.c (highest_pow2_factor, expand_expr_real_1, )
2759 (is_aligning_offset): Likewise.
2760 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
2761 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2762 * dojump.c (do_jump): Likewise.
2763 * builtins.c (get_pointer_alignment, get_memory_rtx)
2764 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
2765 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
1aa0d4ff 2766
08491912 27672008-04-23 Jakub Jelinek <jakub@redhat.com>
2768
2769 PR rtl-optimization/36017
2770 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
2771 expanding the library call.
2772
7ded8d6e 27732008-04-22 Ian Lance Taylor <iant@google.com>
2774
2775 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
2776 than size_in_bytes.
2777
dd7bfdc0 27782008-04-22 Pat Haugen <pthaugen@us.ibm.com>
2779
2780 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
2781 of LR/CTR moves for Power6.
2782
957f873e 27832008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
023c2d03 2784
2785 PR middle-end/36003
2786 * passes.c (init_optimization_passes): Remove
2787 pass_fast_rtl_byte_dce.
2788
6e22f3c7 27892008-04-22 Uros Bizjak <ubizjak@gmail.com>
2790
2791 PR target/29096
2792 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
2793 builtin functions to generate faster code.
2794 (_mm_cvtpu16_ps): Ditto.
2795 (_mm_cvtpi32x2_ps): Ditto.
2796
12f2d5e9 27972008-04-22 Nick Clifton <nickc@redhat.com>
2798
2b945500 2799 * common.opt (ftree-loop-distribution): Add Optimization
2800 attribute.
2801
ca852515 2802 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
2803 (frv_expand_builtin_va_start): Likewise.
2804
12f2d5e9 2805 * config/arm/arm.c (thumb_find_work_register): Fix location of
2806 argument register count.
2807
2ccdedfd 28082008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2809
2810 Support scheduling for ColdFire V1 and V3 microarchitecture.
2811 Improve scheduling of multiplication instructions.
2812
2813 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
2814 (mac): New instruction attribute.
2815 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
2816 (m68k_sched_mac): New variable.
2817 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
2818 Handle cfv1 and cfv3.
2819 (max_insn_size): New static variable.
2820 (struct _sched_ib): New type.
2821 (sched_ib): New static variable.
2822 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
2823 to fields of 'struct _sched_ib sched_ib'. Update all uses.
2824 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
2825 Update.
2826 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2827 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
2828 new variables. Update.
2829 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2830 Add modeling of cfv3 instruction buffer. Update.
2831 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
2832 * config/m68k/m68k.h (TUNE_CFV3): New macro.
2833 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
2834 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
2835 a particular reservation applies to.
2836 (type2): Reorganize attribute values. Rename alu to alu_reg,
2837 alu_l to alu, move_l to omove. Join move to alu. Split mul
2838 to mul_l and mul_w.
2839 (cf_ib_*): Simplify description of instruction buffer.
2840 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
2841 (cf_mem): Split into cf_mem1 and cf_mem2.
2842 (cf_v2_move_??): Rename to cfv12_alu_??.
2843 (cf_v2_move_l_??): Rename to cfv12_omove_??.
2844 (cf_v2_mul_??): Remove reservations.
2845 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
2846 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
2847 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
2848 appropriate place.
2849 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
2850 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
2851 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
2852 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
2853 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
2854 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
2855 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
2856 expansions of the above reservations for instructions of sizes
2857 1, 2 and 3 words.
2858
a86fc23b 28592008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2860
2861 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
2862
fe66e922 28632008-04-21 Adam Nemet <anemet@caviumnetworks.com>
2864
2865 * coverage.c: Include tree-pass.h.
2866 (coverage_counter_alloc): Print da_file_name to the dump file.
2867
957f873e 28682008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
fe66e922 2869
349621f0 2870 * sbitmap.c (sbitmap_range_empty_p): New function.
2871 * sbitmap.h (sbitmap_range_empty_p): New function.
fe66e922 2872 * bitmap.h: Now includes obstack.h.
349621f0 2873
fe66e922 28742008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
957f873e 2875 Kenneth Zadeck <zadeck@naturalbridge.com>
bf1f8fbc 2876
2877 * dbgcnt.def (ra_byte_scan): Added.
2878 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
2879 when the last hit happens for a counter.
2880 * timevar.def (TV_DF_BYTE_LR): New variable.
2881 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
2882 * passes.c (pass_fast_rtl_byte_dce): New pass.
2883 * fwprop.c (update_df): Added mode to call df_ref_create.
2884 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2885 DF_REF_EXTRACT_OFFSET.
2886 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
2887 DF_BYTE_LR_OUT, df_byte_lr): New macro.
2888 (df_mm): New enum.
2889 (df_ref_extract): Added mode field.
2890 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
2891 DF_REF_EXTRACT_OFFSET.
2892 (DF_REF_EXTRACT_MODE): New macro.
2893 (df_byte_lr_bb_info): New structure.
2894 (df_print_byte_regset, df_compute_accessed_bytes,
2895 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
2896 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
2897 df_byte_lr_simulate_uses,
2898 df_byte_lr_simulate_artificial_refs_at_top,
2899 df_byte_lr_simulate_artificial_refs_at_end,
2900 df_compute_accessed_bytes): New function.
2901 (df_ref_create): Add parameter.
2902 (df_byte_lr_get_bb_info): New inline function.
2903 * df-scan.c (df_ref_record, df_uses_record,
2904 df_ref_create_structure): Added mode parameter.
2905 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
2906 df_defs_record, df_uses_record, df_get_conditional_uses,
2907 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
2908 df_entry_block_defs_collect, df_exit_block_uses_collect):
2909 Added mode parameter to calls to df_ref_record, df_uses_record,
2910 df_ref_create_structure.
39925406 2911 (df_ref_equal_p, df_ref_compare): Added test for modes.
bf1f8fbc 2912 (df_ref_create_structure): Added code to set mode. Renamed
2913 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2914 DF_REF_EXTRACT_OFFSET.
2915 * df-core.c (df_print_byte_regset): New function.
2916 * df-byte-scan.c: New file.
2917 * df-problems.c (df_rd_transfer_function): Removed unnecessary
2918 calls to BITMAP_FREE.
2919 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
2920 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
2921 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
2922 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
2923 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
2924 df_byte_lr_local_compute, df_byte_lr_init,
2925 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
2926 df_byte_lr_transfer_function, df_byte_lr_free,
2927 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
2928 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
2929 df_byte_lr_simulate_uses,
2930 df_byte_lr_simulate_artificial_refs_at_top,
2931 df_byte_lr_simulate_artificial_refs_at_end): New function.
2932 * dce.c (byte_dce_process_block): New function.
2933 (dce_process_block): au is now passed in rather than computed
2934 locally. Changed loops that look at artificial defs to not look
2935 for conditional or partial ones, because there never are any.
2936 (fast_dce): Now is able to drive byte_dce_process_block or
2937 dce_process_block depending on the kind of dce being done.
2938 (rest_of_handle_fast_dce): Add parameter to fast_dce.
2939 (rest_of_handle_fast_byte_dce): New function.
2940 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
2941 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
2942
798b415d 29432008-04-21 Daniel Franke <franke.daniel@gmail.com>
2944
2945 PR fortran/35019
2946 * gcc.h: Added fortran options that take arguments to
2947 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
2948 macros.
2949
5749b7fb 29502008-04-20 Eric Botcazou <ebotcazou@adacore.com>
2951
2952 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
2953 scalarization if on the LHS and not a full access.
2954
0c8e56a8 29552008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2956
5749b7fb 2957 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
0c8e56a8 2958
d31e54f1 29592008-04-18 Rafael Espindola <espindola@google.com>
5749b7fb 2960
d31e54f1 2961 * tree-vrp.c (find_case_label_index): Fix the binary search.
2962 (find_case_label_range): New.
2963 (vrp_visit_switch_stmt): Use find_case_label_range.
2964 (simplify_switch_using_ranges): Use find_case_label_range.
2965
65903740 29662008-04-18 Eric Botcazou <ebotcazou@adacore.com>
2967
2968 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
2969 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
2970
662dbd74 29712008-04-18 Tom Tromey <tromey@redhat.com>
2972
2973 PR libcpp/15500:
2974 * doc/cpp.texi (Implementation-defined behavior): Mention
2975 -finput-charset.
2976
9fa14f44 29772008-04-18 Ian Lance Taylor <iant@google.com>
2978
2979 * fold-const.c (pointer_may_wrap_p): New static function.
2980 (fold_comparison): Add another test for pointer overflow. Use
2981 pointer_may_wrap_p to disable some false positives.
2982
924bbf02 29832008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
2984
2985 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
2986 (fname_as_string): Match updated cpp_interpret_string prototype.
2987 (fix_string_type): Support char16_t* and char32_t*.
2988 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
2989 derivative) nodes. Register as builtin if C++0x.
2990 (c_parse_error): Support CPP_CHAR{16,32}.
2991 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
2992 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
2993 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
2994 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
2995 CTI_CHAR32_ARRAY_TYPE>: New elements.
2996 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
2997 char32_type_node, signed_char32_type_node, char16_array_type_node,
2998 char32_array_type_node): New defines.
2999 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
3000 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
3001 (lex_string): Support CPP_STRING{16,32}, match updated
3002 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
3003 (lex_charconst): Support CPP_CHAR{16,32}.
3004 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
3005 and CPP_STRING{16,32}.
3006
6a88da51 30072008-04-18 Paolo Bonzini <bonzini@gnu.org>
3008
3009 PR bootstrap/35457
3010 * aclocal.m4: Regenerate.
3011 * configure: Regenerate.
3012
edb7afe8 30132008-04-18 Jan Hubicka <jh@suse.cz>
3014
3015 * except.c (dw2_size_of_call_site_table,
3016 sjlj_size_of_call_site_table): Use vector API for call_site_record.
3017
3018 * cgraphbuild.c (build_cgraph_edges): Update.
3019 * tree-pass.h: Update comment.
3020 * final.c (leaf_function_p): Update.
3021 (leaf_renumber_regs): Update.
3022 (rest_of_clean_state): Update.
3023 * omp-low.c (expand_omp_parallel): Update.
3024 * ipa-reference.c (analyze_function): Update.
3025 * reorg.c (find_end_label): Update.
3026 (optimize_skip): Update.
3027 (fill_simple_delay_slots): Update.
3028 (fill_simple_delay_slots): Update.
3029 (make_return_insns): Update.
3030 (dbr_schedule): Update.
3031 * gimple-low.c (record_vars_into): Update.
3032 * cfgbuild.c (make_edges): Update.
3033 * function.c (assign_stack_local): Update.
3034 (assign_parm_adjust_stack_rtl): Update.
3035 (locate_and_pad_parm): Update.
3036 (allocate_struct_function): Do not initialize stack_alignment_needed
3037 and preferred_stack_boundary here.
3038 (stack_protect_prologue): Update.
3039 (stack_protect_epilogue): Update.
3040 (expand_function_start): Initialize stack_alignment_needed,
3041 preferred_stack_boundary and max_jumptable_ents.
3042 (expand_function_end): Update.
3043 (free_after_compilation): Do not NULLify epilogue_delay_list.
3044 * function.h (struct rtl_data): Add stack_protect_guard,
3045 stack_alignment_needed,
3046 preferred_stack_boundary, epilogue_delay_list.
3047 (struct function): Remove value_histograms, stack_alignment_needed,
3048 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
3049 last_label_uid,
3050 unexpanded_var_list, stack_protect_guard.
3051 (current_function_epilogue_delay_list): Remove.
3052 * ipa-type-escape.c (analyze_function): Update.
3053 * gimplify.c (pop_gimplify_context): Update comment.
3054 * calls.c (expand_call): Update.
3055 (emit_library_call_value_1): Update.
3056 * except.c (set_nothrow_function_flags): Update.
3057 * cfgexpand.c (get_decl_align_unit): Update.
3058 (create_stack_guard): Update.
3059 (estimated_stack_frame_size): Update.
3060 (expand_used_vars): Update.
3061 (tree_expand_cfg): Free histogram earliers, init expansion variables.
3062 * explow.c (allocate_dynamic_stack_space): Update.
3063 * tree-ssa-live.c (remove_unused_locals): Update.
3064 * varasm.c (mark_constant_pool): Update.
3065 * tree-inline.c (remap_decls): Update.
3066 (initialize_cfun): Update.
3067 (declare_return_variable): Update.
3068 (inline_forbidden_p): Update.
3069 (expand_call_inline): Update.
3070 (declare_inline_vars): Update.
3071 (tree_function_versioning): Update.
3072 * tree-flow.h (value_histograms): New.
3073 (VALUE_HISTOGRAMS): New macro.
3074 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
3075 last_label_uid.
3076 * tree-cfg.c (set_bb_for_stmt): Update.
3077 (replace_by_duplicate_decl): Update.
3078 (move_block_to_fn): Update.
3079 (new_label_mapper): Update.
3080 (dump_function_to_file): Update.
3081 * ipa-struct-reorg.c (build_data_structure): Update.
3082 * cfgrtl.c (print_rtl_with_bb): Update.
3083 * reload1.c (reload): Update.
3084 (reload): Update.
3085 * config/i386/i386.c (setup_incoming_varargs_64,
3086 ix86_compute_frame_layout): Update.
3087 * config/arc/arc.c (arc_output_function_epilogue): Update.
3088
4f364038 30892008-04-18 Marius Strobl <marius@FreeBSD.org>
3090
3091 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
3092 for FreeBSD as well.
3093 * gthr-posix95.h: Likewise.
3094
a6c18cd6 30952008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
3096
3097 PR rtl-optimization/35838
3098 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
3099 out the byte offset of the first subreg.
3100
cdb04b84 31012008-04-17 Uros Bizjak <ubizjak@gmail.com>
3102
3103 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
3104 to split_ti instead of three separate calls with single member arrays.
3105 (subti3 splitter): Ditto.
3106 (adddi3 splitter): Ditto with split_di.
3107 (subdi3 splitter): Ditto.
3108 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
3109 two separate calls with single member arrays. Swap match_dup
3110 operands 1 and 2 to better fit into the array.
3111 (negdi2 splitter): Ditto with split_di.
3112 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
3113 two separate calls with single member arrays. Swap match_dup operands
3114 6 and 7 to better fit into the array.
3115
382e3eba 31162008-04-17 H.J. Lu <hongjiu.lu@intel.com>
3117
3118 * config/i386/i386.c (sse_builtin_type): New.
3119 (bdesc_sse_args): Likewise.
3120 (bdesc_sse_3arg): Removed.
3121 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
3122 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
3123 IX86_BUILTIN_ROUNDPS.
3124 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
3125 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
3126 IX86_BUILTIN_ROUNDPS.
3127 (ix86_expand_sse_4_operands_builtin): Removed.
3128 (ix86_expand_sse_operands_builtin): New.
3129 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
3130 and CODE_FOR_sse4_1_roundps.
3131 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
3132 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
3133
0dd5aca6 31342008-04-17 Alan Modra <amodra@bigpond.net.au>
3135
3136 PR target/35907
3137 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
3138 regs before frame pop when needed. If use_backchain_to_restore_sp
3139 then load backchain into a temp reg to restore vr and vrsave. Add
3140 code to restore vr after frame pop if possible.
3141
659ce413 31422008-04-17 Richard Guenther <rguenther@suse.de>
3143
3144 * tree-vn.c (expressions_equal_p): Do not check type
3145 equality or compatibility before calling operand_equal_p.
3146 * fold-const.c (operand_equal_p): Check equivalence of
3147 integer constants before bailing out due to signedness or
3148 precision differences.
3149 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
3150 spurious differences in type qualification. Ignore types
3151 for COMPONENT_REFs at all.
3152
9037a84c 31532008-04-17 Christian Bruel <christian.bruel@st.com>
3154
3155 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
3156 msw_skip comparison.
3157
520c4c09 31582008-04-16 Jakub Jelinek <jakub@redhat.com>
3159
e264d515 3160 PR c/35739
3161 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
3162 reg type.
3163
520c4c09 3164 PR tree-optimization/35899
3165 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
3166 rather than TREE_OPERAND.
3167
5628aad4 31682008-04-16 Uros Bizjak <ubizjak@gmail.com>
3169
3170 PR target/35944
3171 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
3172 temporary registers. Change operand predicate to general_operand.
3173 (remainderxf3): Ditto.
3174
00ae4124 31752008-04-16 Richard Guenther <rguenther@suse.de>
3176
3177 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
3178 * tree-affine.c (aff_combination_expand): Look through some
3179 conversions.
3180
7df7561b 31812008-04-15 Doug Kwan <dougkwan@google.com>
3182
3183 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
3184 for hex printing.
3185 * tree-pretty-print.c (dump_generic_node): Ditto.
3186 * final.c (output_addr_const): Ditto.
3187 * dwarf2out.c (output_cfi): Ditto.
3188 * c-pretty-print.c (pp_c_integer_constant): Ditto.
3189 * print-rtl.c (print_rtx): Ditto.
3190 * print-tree.c (print_node_brief, print_node): Ditto.
3191 * c-common.c (match_case_to_enum_1): Ditto.
3192 * sched-vis.c (print_value): Ditto.
3193 * config/i386/i386.c (print_operand): Cast to long unsigned int
3194 for hex printing.
3195
c5aaf380 31962008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
3197 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
3198 MS Windows VirtualProtect function.
3199
4dd3de56 32002008-04-15 Jan Hubicka <jh@suse.cz>
3201
3202 * gengtype.c (write_root): Param_is argument is OK.
3203 * expr.c (expand_expr_real_1): Update call of get_exception_*.
3204 * function.h: Include varray.h
3205 (rtl_eh): New stucture based on except.c one.
3206 (call_site_record): New forward declaration and vector type.
3207 * calls.c (emit_call_1): Do not call
3208 note_current_region_may_contain_throw.
3209 * except.c (eh_status): Remove cur_region, try_region since they are
3210 unused.
3211 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
3212 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
3213 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
3214 Remove call_site_data_used, call_site_data_size.
3215 Turn call_site_record into vector in function.h.
3216 (note_current_region_may_contain_throw): Remove.
3217 (get_exception_pointer, get_exception_filter): Do not take struct
3218 function argument; update.
3219 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
3220 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
3221 build_post_landing_pads, dw2_build_landing_pads,
3222 sjlj_assign_call_site_values, sjlj_mark_call_sites,
3223 sjlj_emit_function_enter, sjlj_emit_function_enter,
3224 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
3225 sjlj_build_landing_pads, finish_eh_generation,
3226 remove_exception_handler_label, remove_eh_handler,
3227 maybe_remove_eh_handler, add_reachable_handler,
5628aad4 3228 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
3229 add_action_record, collect_one_action_chain, add_call_site,
3230 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4dd3de56 3231 sjlj_output_call_site_table, output_function_exception_table,
3232 * except.h (note_current_region_may_contain_throw): Remove
3233 (get_exception_pointer, get_exception_filter): Do not take struct
3234 function argument.
3235 * Makefile.in (GTFILES): Put varargs before struct function.
3236
220322c1 32372008-04-15 Eric Botcazou <ebotcazou@adacore.com>
3238
3239 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
3240 punt for STRING_CST.
3241 (get_constraint_for): Deal with STRING_CST here instead.
3242
fc50275a 32432008-04-15 Richard Guenther <rguenther@suse.de>
3244
3245 * tree-ssa-propagate.c (substitute_and_fold): Substitute
3246 statements in a basic-block with a backward walk. Do not
3247 substitute into dead statements but instead remove those.
3248
77975172 32492008-04-15 Richard Guenther <rguenther@suse.de>
3250
3251 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
3252 to zero, thus disable creation of SFTs.
3253
154edec0 32542008-04-15 Eric Botcazou <ebotcazou@adacore.com>
3255
3256 * tree-predcom.c (suitable_reference_p): Return false if the
3257 reference can throw.
3258
1f93c018 32592008-04-15 Jakub Jelinek <jakub@redhat.com>
3260
3261 PR c/35751
3262 * c-decl.c (finish_decl): If extern or static var has variable
3263 size, set TREE_TYPE (decl) to error_mark_node.
3264
d14c123b 32652008-04-15 Rafael Espindola <espindola@google.com>
3266
1f93c018 3267 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d14c123b 3268 variable arg1.
3269
fb05ee87 32702008-04-15 Richard Guenther <rguenther@suse.de>
3271
3272 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
3273 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
3274 (visit_reference_op_load): Do walk vuse-vdef chains on
3275 vn_reference_lookup.
3276 (visit_reference_op_store): But do not here.
3277 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
3278 vn_reference_lookup.
3279 (vn_lookup_with_vuses): But do so here.
3280
d0fe3bd7 32812008-04-14 Ian Lance Taylor <iant@google.com>
3282
3283 * fold-const.c (fold_overflow_warning): Remove assertion.
3284
b71600b1 32852008-04-15 Ben Elliston <bje@au.ibm.com>
3286
3287 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
3288 temp1 local variables.
3289
32902008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
3c3b31c6 3291
3292 PR target/35661
3293 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
3294 ".text.unlikely" section as executable.
3295
aaff414b 32962008-04-14 James E. Wilson <wilson@tuliptree.org>
3297
3298 * config/ia64/ia64.c (rtx_needs_barrier): Handle
3299 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
3300 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
3301 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
3302 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
3303 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
3304 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
3305
e867fa7f 33062008-04-14 Ian Lance Taylor <iant@google.com>
3307
3308 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
3309 * fold-const.c (fold_comparison): If appropriate, test
3310 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
3311 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
3312 reassociating a pointer type.
3313 * doc/invoke.texi (Optimize Options): Document that
3314 -fstrict-overflow applies to pointer wraparound.
3315
393edb51 33162008-04-13 Jan Hubicka <jh@suse.cz>
3317
3318 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
3319
415d43a4 33202008-04-12 Andrew Pinski <pinskia@gmail.com>
3321
3322 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
3323 we are going to "save the world".
3324
8c6db08a 33252008-04-13 Hans-Peter Nilsson <hp@axis.com>
3326
3327 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
3328 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
3329 operand 0 constraint, not "=".
3330
1f6c309f 33312008-04-11 James E. Wilson <wilson@tuliptree.org>
3332
3333 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
3334
07509ef3 33352008-04-11 H.J. Lu <hongjiu.lu@intel.com>
3336
3337 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
3338 of size of positions_needed * CHAR_BIT.
3339
4e43e20a 33402008-04-11 H.J. Lu <hongjiu.lu@intel.com>
3341
3342 PR middle-end/35897
3343 * dse.c (store_info): Change positions_needed to unsigned
3344 HOST_WIDE_INT.
3345 (lowpart_bitmask): New.
3346 (record_store): Cast to unsigned HOST_WIDE_INT for
3347 positions_needed. Assert width <= size of positions_needed *
3348 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
3349 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
3350 lowpart_bitmask to set mask.
3351
87943377 33522008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
3353
3354 * config/bfin/constraints.md: New file.
3355 * config/bfin/bfin.md: Include it.
3356 (adddi3): Use satisfies_constraint functions instead of the old macros.
3357 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
3358 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
3359 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
3360 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
3361 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
3362 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
3363 EXTRA_CONSTRAINT): Delete.
3364 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
3365 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
3366 of the old macros.
3367 * config/bfin/bfin.c: Include "tm-constrs.h".
3368 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
3369 Use satisfies_constraint functions instead of the old macros.
3370 * doc/md.texi (Blackfin Constraints): Update file name reference.
3371
ffeeba75 33722008-04-11 Richard Guenther <rguenther@suse.de>
3373
3374 PR tree-optimization/35869
3375 * tree-vrp.c (execute_vrp): Move switch statement update after
3376 jump threading. Schedule another cfg cleanup run.
3377
1ccba7b7 33782008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
3379
3380 PR c/35744
3381 * attribs.c (decl_attributes): Return early on errorneous node.
3382
83901169 33832008-04-10 Oleg Ryjkov <olegr@google.com>
3384
3385 * tree.h (struct tree_base): Added a new flag default_def_flag.
3386 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
3387
fc7383ad 33882008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
3389
3390 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
3391
4f0b6f04 33922008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3393
3394 PR target/35768
3395 * pa.md: Define mode iterator P. Define mode attribute dwc.
3396 (dcacheflush): Update pattern to use iterator P and attribute dwc.
3397 (icacheflush): Likewise.
3398 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
3399 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
3400
5dfbd18f 34012008-04-11 Ben Elliston <bje@au.ibm.com>
3402
3403 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
3404
984bd637 34052008-04-10 Rafael Espindola <espindola@google.com>
3406
1f93c018 3407 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
984bd637 3408 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
3409 (extract_range_from_expr): The same.
3410
40e4a59d 34112008-04-10 Adam Nemet <anemet@caviumnetworks.com>
3412
3413 * config/mips/mips.md (GPR2): New mode iterator.
3414 (seq): Add comment.
3415 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
3416 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
3417 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
3418 Rewrite these to take two modes, the mode of comparison and the
3419 mode of the destination.
3420 * config/mips/mips.c (mips_expand_scc): Instead of having
3421 paradoxical subreg as destination, expand "narrowing" scc if mode
3422 of comparison is SI and target is requested in DI mode.
3423 (mips_emit_int_order_test): Update comment. Make mode of
3424 comparison match CMP0 rather than TARGET. When creating inverse
3425 target use mode of TARGET.
3426
44d32dba 34272008-04-10 Adam Nemet <anemet@caviumnetworks.com>
3428
3429 * gcov-dump.c (tag_summary): Only print summaries for the first
3430 GCOV_COUNTERS_SUMMABLE counters.
3431
f9162d6c 34322008-04-10 Uros Bizjak <ubizjak@gmail.com>
3433
3434 * config/i386/i386.md (absneg): New code iterator.
3435 (absnegprefix): New code attribute.
3436 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
3437 patterns using absneg code iterator.
3438 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
3439 using absneg code iterator.
3440 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
3441 *neg<mode>2 patterns using absneg code iterator.
3442 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3443 *negextendsfdf2 patterns using absneg code iterator.
3444 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
3445 *negextendsfxf2 patterns using absneg code iterator.
3446 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3447 *negextendsfdf2 patterns using absneg code iterator.
3448 * config/i386/sse.md (<code><mode>2): Macroize expander from
3449 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
3450
175ddbd8 34512008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
3452
3453 * config/s390/s390.h: Remove the remains of the recent search
3454 & replace action of current_function_outgoing_args_size.
3455
5c919262 34562008-04-10 Ira Rosen <irar@il.ibm.com>
3457
3458 PR tree-optimization/35821
3459 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
3460 NEW_STMT_LIST is not NULL.
3461
f3b662a5 34622008-04-09 David Edelsohn <edelsohn@gnu.org>
3463
3464 PR libstdc++/35597
3465 * toplev.c (process_options): Remove -ffunction-sections debugging
3466 warning.
3467
eeadedeb 34682008-04-09 Peter Bergner <bergner@vnet.ibm.com>
3469
3470 PR middle-end/PR28690
3471 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
3472 than gen_rtx_fmt_ee to perform more canonicalizations.
3473
c4c94b80 34742008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3475
3476 PR driver/35665
3477 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
3478
04ba083d 34792008-04-09 Richard Guenther <rguenther@suse.de>
3480
3481 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
3482 (dump_function_to_file): Dump function arguments with types.
3483
ff5dd140 34842008-04-08 Richard Guenther <rguenther@suse.de>
3485
3486 * fold-const.c (fold_widened_comparison): Do not allow
3487 sign-changes that change the result.
3488
d44615ce 34892008-04-08 Janis Johnson <janis187@us.ibm.com>
3490
3491 PR target/35839
3492 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
3493 kinds of indirect references.
3494
b3b9cde3 34952008-04-08 David Edelsohn <edelsohn@gnu.org>
3496
3497 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
3498 GNU Fortran language string.
3499
18f22ec3 35002008-04-08 Rafael Espindola <espindola@google.com>
3501
3502 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
3503 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
3504 * tree.h (tree_call_nonnegative_warnv_p): New.
3505
a9f6414b 35062008-04-08 Jan Hubicka <jh@suse.cz>
3507
3508 * function.c (free_after_compilation): Clear out regno_reg_rtx
3509 pointer.
3510
d7cbf087 35112008-04-08 Peter Bergner <bergner@vnet.ibm.com>
3512
3513 Revert
3514 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
3515
3516 PR middle-end/PR28690
3517 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
3518 same precedence as REG_POINTER and MEM_POINTER operands.
3519
63a29e85 35202008-04-08 Richard Guenther <rguenther@suse.de>
3521
3522 PR middle-end/35834
3523 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
3524 for adding index to base.
3525
11d6399c 35262008-04-08 Kai Tietz <kai.tietz@onevision.com>
3527
3528 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
3529 (MINGW_ENABLE_EXECUTE_STACK): New.
3530 (IN_LIBGCC2): For libgcc include windows.h file for
3531 function declarations.
3532
fbedf334 35332008-04-08 Hans-Peter Nilsson <hp@axis.com>
3534
3535 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
3536 and tem2 if tem1 is not a REG or MULT.
3537
abe32cce 35382008-04-08 Jan Hubicka <jh@suse.cz>
3539
3540 * function.h (incomming_args): Break out of struct function.
3541 (function_subsections): Break out of struct function.
3542 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
3543 return_rtx and hard_reg_initial_vals from struct function.
3544 Kill inl_max_label_num.
3545 (current_function_pops_args, current_function_args_info,
3546 current_function_args_size, current_function_args_size,
3547 current_function_pretend_args_size,
3548 current_function_outgoing_args_size,
3549 current_function_internal_arg_pointer, current_function_return_rtx):
3550 Kill compatibility accestor macros.
3551 * builtins.c (expand_builtin_apply_args_1): Update.
3552 (expand_builtin_next_arg): Update.
3553 * df-scan.c (df_get_call_refs): Update.
3554 * dbxout.c (dbxout_function_end): Update.
3555 * dwarf2out.c (dwarf2out_switch_text_section): Update.
3556 (output_line_info): Update.
3557 (secname_for_decl): Update.
3558 (dwarf2out_var_location): Update.
3559 * function.c (free_after_compilation): Update.
3560 (assign_parm_find_stack_rtl): Update.
3561 (assign_parms): Update.
3562 (expand_dummy_function_end): Update.
3563 (expand_function_end): Update.
3564 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
3565 (expand_call): Update.
3566 (emit_library_call_value_1): Update.
3567 (store_one_arg): Update.
3568 * varasm.c (initialize_cold_section_name): Update.
3569 (unlikely_text_section): Update.
3570 (unlikely_text_section_p): Update.
3571 (assemble_start_function): Update.
3572 (assemble_end_function): Update.
3573 (default_section_type_flags): Update.
3574 (switch_to_section): Update.
3575 * integrate.c (set_decl_abstract_flags): Update.
3576 (get_hard_reg_initial_val): Update.
3577 (has_hard_reg_initial_val): Update.
3578 (allocate_initial_values): Update.
3579 * resource.c (init_resource_info): Update.
3580 * config/alpha/alpha.c (NUM_ARGS): Update.
3581 (direct_return): Update.
3582 (alpha_va_start): Update.
3583 (alpha_sa_size): Update.
3584 (alpha_initial_elimination_offset): Update.
3585 (alpha_expand_prologue): Update.
3586 (alpha_start_function): Update.
3587 (alpha_expand_epilogue): Update.
3588 (unicosmk_initial_elimination_offset):
3589 * config/alpha/alpha.md (call expander): Update.
3590 * config/s390/s390.c (s390_register_info): Update.
3591 (s390_register_info): Update.
3592 (s390_frame_info): Update.
3593 (s390_initial_elimination_offset): Update.
3594 (s390_build_builtin_va_list): Update.
3595 (s390_va_start): Update.
3596 * config/spu/spu.c (direct_return): Update.
3597 (spu_expand_prologue): Update.
3598 (spu_initial_elimination_offset): Update.
3599 (spu_build_builtin_va_list): Update.
3600 (spu_va_start): Update.
3601 * config/sparc/sparc.c (sparc_init_modes): Update.
3602 (sparc_compute_frame_size): Update.
3603 (function_value): Update.
3604 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
3605 * config/i386/i386.md (return expander): Update.
3606 * config/i386/i386.c (ix86_va_start): Update.
3607 (ix86_can_use_return_insn_p): Update.
3608 (ix86_compute_frame_layout): Update.
3609 (ix86_expand_epilogue): Update.
3610 * config/sh/sh.c (output_stack_adjust): Update.
3611 (calc_live_regs): Update.
3612 (sh_expand_prologue): Update.
3613 (sh_builtin_saveregs): Update.
3614 (sh_va_start): Update.
3615 (initial_elimination_offset): Update.
3616 (sh_allocate_initial_value): Update.
3617 (sh_function_ok_for_sibcall): Update.
3618 (sh_get_pr_initial_val): Update.
3619 * config/sh/sh.md (return expander): Update.
3620 * config/avr/avr.c (frame_pointer_required_p): UPdate.
3621 * config/crx/crx.c (crx_compute_frame): UPdate.
3622 (crx_initial_elimination_offset): UPdate.
3623 * config/xtensa/xtensa.c (compute_frame_size): Update
3624 (xtensa_builtin_saveregs): Update.
3625 (xtensa_va_start): Update.
3626 (order_regs_for_local_alloc): Update.
3627 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
3628 (xstormy16_expand_builtin_va_start): Update.
3629 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
3630 * config/m68hc11/m68hc11.md (return expanders): Update.
3631 * config/m68hc11/m68hc11.c (expand_prologue): Update.
3632 (expand_epilogue): Update.
3633 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
3634 (cris_simple_epilogue): Update.
3635 (cris_expand_prologue): Update.
3636 (cris_expand_epilogue): Update.
3637 * config/iq2000/iq2000.c (iq2000_va_start): Update.
3638 (compute_frame_size): Update.
3639 * config/mt/mt.c (mt_compute_frame_size): Update.
3640 * config/mn10300/mn10300.c (expand_prologue): Update.
3641 (expand_epilogue): Update.
3642 (initial_offset): Update.
3643 (mn10300_builtin_saveregs):
3644 * config/mn10300/mn10300.md (return expander): Update.
3645 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3646 (ia64_initial_elimination_offset): Update.
3647 (ia64_initial_elimination_offset): Update.
3648 (ia64_expand_prologue): Update.
3649 * config/m68k/m68k.md (return expander): Update.
3650 * config/rs6000/rs6000.c (rs6000_va_start): Update.
3651 (rs6000_stack_info): Update.
3652 * config/mcore/mcore.c (layout_mcore_frame): Update.
3653 (mcore_expand_prolog): Update.
3654 * config/arc/arc.c (arc_compute_frame_size): Update.
3655 * config/score/score3.c (score3_compute_frame_size): Update.
3656 * config/score/score7.c (score7_compute_frame_size): Update.
3657 * config/arm/arm.c (use_return_insn): Update.
3658 (thumb_find_work_register): Update.
3659 (arm_compute_save_reg_mask): Update.
3660 (arm_output_function_prologue): Update.
3661 (arm_output_epilogue): Update.
3662 (arm_size_return_regs): Update.
3663 (arm_get_frame_offsets): Update.
3664 (arm_expand_prologue): Update.
3665 (thumb_exit): Update.
3666 (thumb_unexpanded_epilogue): Update.
3667 (thumb1_output_function_prologue): Update.
3668 * config/pa/pa.md (return expander): Update.
3669 * config/pa/pa.c (compute_frame_size): Update.
3670 (hppa_builtin_saveregs): Update.
3671 * config/mips/mips.c (mips_va_start): Update.
3672 (mips16_build_function_stub): Update.
3673 (mips_compute_frame_info): Update.
3674 (mips_restore_gp): Update.
3675 (mips_output_function_prologue): Update.
3676 (mips_expand_prologue): Update.
3677 * config/v850/v850.c (compute_frame_size): Update.
3678 (expand_prologue): * config/mmix/mmix.c (along): update.
3679 (mmix_initial_elimination_offset): update.
3680 (mmix_reorg): update.
3681 (mmix_use_simple_return): update.
3682 (mmix_expand_prologue): update.
3683 (mmix_expand_epilogue): Update.
3684 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
3685 (emit_link_insn): Update.
3686
cb373d8c 36872008-04-08 Anatoly Sokolov <aesok@post.ru>
3688
3689 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
3690 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
3691 instructions.
3692 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
3693 atmega103 device.
3694
fd6ffb7c 36952008-04-07 Jan Hubicka <jh@suse.cz>
3696
3697 * function.h (rtl): Rename to x_rtl.
3698 (crtl): New define.
3699 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3700 frame_offset, stack_check_probe_note, arg_pointer_save_area,
3701 used_temp_slots avail_temp_slots, temp_slot_level,
3702 nonlocal_goto_handler_labels): Update accesstors.
3703 (rtl): New global variable.
3704 (struct function): Move some fileds to rtl_data.
3705 (get_arg_pointer_save_area): Update prototype.
3706 * builtins.c (expand_builtin_setjmp_receiver): Update call of
3707 get_arg_pointer_save_area.
3708 * expr.c (init_expr): Update
3709 * function.c (get_frame_size): Update
3710 (assign_stack_local): Update
3711 (expand_function_end): Update.
3712 (get_art_pointer_save_area): Update
3713 * function.h
3714 * emit-rtl.c (rtl): Declare.
3715 (regno_reg_rtx): Declare.
3716 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3717 Update.
3718 (gen_reg_rtx): Update.
3719 * varasm.c (n_deferred_constatns): Update accestor.
3720 (init_varasm_status): Do not allocate varasm_status.
3721 (force_const_mem, get_pool_size, output_constant_pool): Update.
3722 * stmt.c (force_label_rtx): Do not use x_ prefixes.
3723 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
3724 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
3725 * sparc/sparc.h (INIT_EXPANDERS): Update.
3726 * ia64/ia64.h (INIT_EXPANDERS): Update.
3727
92d21e32 37282008-04-07 James E. Wilson <wilson@tuliptree.org>
3729
3730 * reload.c (push_secondary_reload): Add missing break to for loop.
3731
ae12ddda 37322008-04-07 Peter Bergner <bergner@vnet.ibm.com>
3733
3734 PR middle-end/PR28690
3735 * rtlanal.c: Update copyright years.
3736 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
3737 as REG_POINTER and MEM_POINTER operands.
3738 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
3739 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
3740 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
3741 * gcse.c: Update copyright years.
3742 (pre_delete): Call gen_reg_rtx_and_attrs.
3743 (hoist_code): Likewise.
3744 (build_store_vectors): Likewise.
3745 (delete_store): Likewise.
3746 * loop-invariant.c (move_invariant_reg): Likewise.
3747 Update copyright years.
3748
ae3049cd 37492008-04-07 Uros Bizjak <ubizjak@gmail.com>
3750
3751 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
3752 control string instead of quoted.
3753
957f873e 37542008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
6cbc0aeb 3755
ae3049cd 3756 * doc/rtl.texi: Rewrite of subreg section.
3757
814cfa37 37582008-04-07 Kai Tietz <kai.tietz@onevision.com>
3759
ae3049cd 3760 PR/35842
3761 * config/i386/i386.c (legitimize_pic_address): Add treating
3762 of dllimport SYM_REF's.
3763 (legitimize_dllimport_symbol): Add prototype.
814cfa37 3764
27e9f331 37652008-04-07 Eric Botcazou <ebotcazou@adacore.com>
3766
3767 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
3768 reference in constructor with non self-referential type.
3769
ff3ae375 37702008-04-07 Eric Botcazou <ebotcazou@adacore.com>
3771
3772 Removal of Return with Depressed Stack Pointer support
3773 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
3774 (ECF_SP_DEPRESSED): Likewise.
3775 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
3776 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
3777 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3778 (expand_call): Do not test ECF_SP_DEPRESSED.
3779 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3780 * function.c (keep_stack_depressed): Delete.
3781 (handle_epilogue_set): Likewise.
3782 (update_epilogue_consts): Likewise.
3783 (emit_equiv_load): Likewise.
3784 (thread_prologue_and_epilogue_insns): Remove support for Return with
3785 Depressed Stack Pointer.
3786 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3787
48674266 37882008-04-06 Richard Guenther <rguenther@suse.de>
3789
3790 PR tree-optimization/35400
3791 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
3792 information from SSA_NAMEs.
3793
4f0e2214 37942008-04-06 Anatoly Sokolov <aesok@post.ru>
3795
3796 * config/avr/avr.h (avr_mega_p): Remove declaration.
3797 (AVR_MEGA): Remove macro.
3798 * config/avr/avr.c (avr_mega_p): Remove variable.
3799 (avr_override_options): Remove inicializion of avr_mega_p.
3800 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3801 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3802 (avr_jump_mode): (Ditto.).
3803 (avr_output_progmem_section_asm_op): (Ditto.).
3804 (avr_asm_init_sections): (Ditto.).
3805 (avr_asm_init_sections): (Ditto.).
3806 (avr_rtx_costs): (Ditto.).
3807 * config/avr/avr.md: (Ditto.).
3808 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
3809 '__AVR_MEGA__'.
3810
d8b498d3 38112008-04-06 Richard Guenther <rguenther@suse.de>
3812
3813 PR tree-optimization/35842
3814 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
3815 is_gimple_invariant_address.
3816
00c6e780 38172008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3818
3819 * gcc.c (default_compilers): Sync Fortran extensions list with
3820 that in fortran/lang-specs.h.
3821 * doc/invoke.texi: Likewise.
3822 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
3823 * dwarf2out.c (gen_compile_unit_die): Likewise.
3824
58f96ec3 38252008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
3826
3827 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
3828
e1dbffbf 38292008-04-05 Uros Bizjak <ubizjak@gmail.com>
3830
3831 PR target/12329
3832 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
3833 attribute is used for nested functions.
3834
5d48fdb4 38352008-04-05 Jan Hubicka <jh@suse.cz>
3836
3eedda05 3837 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
3838
5d48fdb4 3839 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
3840 letter argument.
3841 (dump_files): Update.
3842 (enable_rtl_dump_file): Do not accept letter argument.
3843 * tree-pass.h (dump_file_info): Remove letter argument.
3844 * toplev.c (decode_d_option): Update -da handling.
3845 * toplev.h (enable_rtl_dump_file): Update prototype.
3846 * passes.c (register_one_dump_file): Do not accept IPA argument; work
3847 it out based on pass type.
3848 (register_dump_files_1): Likewise.
3849 (init_optimization_passes): Update register_one_dump_file calls.
e1dbffbf 3850 (execute_one_pass): Sanity check that IPA passes are called at IPA
3851 level and RTL passes at RTL level.
5d48fdb4 3852 (execute_pass_list): IPA pass can not be after or subpass of
3853 GIMPLE/RTL pass.
3854 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
3855 disallov RTL subpasses of IPA subpasses.
3856
eb5bb63e 38572008-04-05 Ben Elliston <bje@au.ibm.com>
3858
3859 * tree-cfg.c (need_fake_edge_p): Return false for calls to
3860 builtins that return exactly once and do not throw. Cache call to
3861 call_expr_flags.
3862
67f57040 38632008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
3864
3865 PR rtl-optimization/34916
3866 PR middle-end/35519
3867 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
3868 between instruction pairs.
3869
96a7f216 38702008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
3871
3872 * doc/invoke.texi: Document -mbitops for SH.
3873 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
3874 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
3875 * config/sh/sh.c (print_operand): Add %t operand code.
3876 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
3877 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
3878 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
3879 (extendqihi2): Likewise.
3880 (movqi_i): Likewise.
3881 (insv): Use bset, bclr and bst instructions for SH2A if possible.
3882 (extv): Use bld instruction for SH2A if possible.
3883 (extzv): Likewise.
3884 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
3885 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
3886 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
3887 (bset.b, bclr.b): Define peepholes.
3888 * config/sh/sh.opt (mbitops): New option.
3889
d35d5b75 38902008-04-04 Janis Johnson <janis187@us.ibm.com>
3891
3892 PR target/35620
3893 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
3894 and view convert expression.
3895
5018e7cd 38962008-04-04 Jakub Jelinek <jakub@redhat.com>
3897
3898 PR target/35364
3899 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3900
1d9ef704 39012008-04-04 H.J. Lu <hongjiu.lu@intel.com>
3902
3903 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
3904
3905 * config/i386/cpuid.h (bit_AES): New.
3906 (bit_PCLMUL): Likewise.
3907
3908 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
3909 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
3910 SSE2 if AES or PCLMUL is enabled.
3911 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
3912 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3913 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
3914 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
3915 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
3916 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
3917 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3918 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
3919 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
3920 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
3921 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
3922 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
3923 __builtin_ia32_aeskeygenassist128 and
3924 __builtin_ia32_pclmulqdq128.
3925 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
3926 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
3927 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
3928
3929 * config/i386/i386.h (TARGET_AES): New.
3930 (TARGET_PCLMUL): Likewise.
3931 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
3932
3933 * config/i386/i386.md (UNSPEC_AESENC): New.
3934 (UNSPEC_AESENCLAST): Likewise.
3935 (UNSPEC_AESDEC): Likewise.
3936 (UNSPEC_AESDECLAST): Likewise.
3937 (UNSPEC_AESIMC): Likewise.
3938 (UNSPEC_AESKEYGENASSIST): Likewise.
413347ff 3939 (UNSPEC_PCLMUL): Likewise.
1d9ef704 3940
3941 * config/i386/i386.opt (maes): New.
3942 (mpclmul): Likewise.
3943
3944 * config/i386/sse.md (aesenc): New pattern.
3945 (aesenclast): Likewise.
3946 (aesdec): Likewise.
3947 (aesdeclast): Likewise.
3948 (aesimc): Likewise.
3949 (aeskeygenassist): Likewise.
3950 (pclmulqdq): Likewise.
3951
3952 * config/i386/wmmintrin.h: New.
3953
3954 * doc/extend.texi: Document AES and PCLMUL built-in function.
3955
3956 * doc/invoke.texi: Document -maes and -mpclmul.
3957
b75409ba 39582008-04-04 Paolo Bonzini <bonzini@gnu.org>
3959
3960 * function.c (free_after_parsing): Replace with
3961 cxx_push_function_context from C++ front-end.
3962 (allocate_struct_function): Don't call langhook.
3963 * langhooks.h (struct lang_hooks_for_functions): Delete.
3964 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
3965 member "function".
3966 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
3967 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
3968 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3969 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
3970 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
3971 remove LANG_HOOKS_FUNCTION_INITIALIZER.
3972 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
3973
3974 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
3975 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
3976
87d31deb 39772008-04-04 Jakub Jelinek <jakub@redhat.com>
3978
3979 PR c/35440
3980 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
3981 for all types.
3982
226c5ce4 39832008-04-04 Richard Guenther <rguenther@suse.de>
3984
3985 PR middle-end/35823
3986 * fold-const.c (optimize_minmax_comparison): Use the correct
3987 type for the constant in the simplified comparison.
3988
4c8b808d 39892008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
3990
3991 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
3992 Pass L2 size as "--param l2-cache-size" to the compiler.
3993 (decode_l2_cache): New function to decode L2 cache parameters using
3994 0x8000006 extended cpuid function.
3995 (detect_caches_amd): Determine parameters of L2 cache using
3996 decode_l2_caches function.
3997 (decode_caches_intel): Decode L2 cache parameters.
3998 (detect_caches_intel): Determine L2 cache parameters using
3999 decode_caches_intel and decode_l2_caches functions.
4000
da19f93f 40012008-04-03 Bob Wilson <bob.wilson@acm.org>
4002
4003 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
4004 secondary input reload for subword loads from the constant pool.
4005
3a58582a 40062008-04-03 Janis Johnson <janis187@us.ibm.com>
4007
2bedfb20 4008 PR target/35713
4009 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
4010 constants of the appropriate size for runtime calculations.
4011
3a58582a 4012 PR c/35712
4013 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
4014 decimal-float literal constant zero.
4015
e7327393 40162008-04-03 Jakub Jelinek <jakub@redhat.com>
4017
3cc31756 4018 PR c/35738
4019 * c-parser.c (c_parser_omp_atomic): Call
4020 default_function_array_conversion on the RHS.
4021
e7327393 4022 PR middle-end/35818
4023 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
4024 call is_variable_sized if decl has incomplete type.
4025
e0d72b88 40262008-04-03 H.J. Lu <hongjiu.lu@intel.com>
4027
4028 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
4029
21d7f1af 40302008-04-03 Adam Nemet <anemet@caviumnetworks.com>
4031
4032 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
4033 iterators.
ae3049cd 4034 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
21d7f1af 4035 (sgt<u>): Merge sgt and sgtu into new expander.
4036 (sgt, sgtu): Remove expanders.
ae3049cd 4037 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
21d7f1af 4038 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
4039 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
4040 *sgtu_<mode>_mips16 into new pattern.
4041 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
4042 (sge<u>): Merge sge and sgeu into new expander.
4043 (sge, sgeu): Remove expanders.
4044 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
4045 new pattern.
4046 (*sge_<mode>, second *sge_<mode>): Remove patterns.
4047 (slt<u>): Merge slt and sltu into new expander.
4048 (slt, sltu): Remove expanders.
ae3049cd 4049 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
21d7f1af 4050 (*slt_<mode>, *sltu_<mode>): Remove patterns.
4051 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
4052 *sltu_<mode>_mips16 into new pattern.
4053 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
4054 (sle<u>): Merge sle and sleu into new expander.
4055 (sle, sleu): Remove expanders.
ae3049cd 4056 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
21d7f1af 4057 (*sle_<mode>, *sleu_<mode>): Remove patterns.
4058 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
4059 *sleu_<mode>_mips16 into new pattern.
4060 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
4061
d5b52ebc 40622008-04-03 Jan Hubicka <jh@suse.cz>
4063
4064 PR tree-optimization/35795
4065 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
4066 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
4067 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
4068 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
4069 * score/score3.c (score3_output_mi_thunk): Likewise.
4070 * score/score7.c (score7_output_mi_thunk): Likewise.
4071 * mips/mips.c (mips_output_mi_thunk): Likewise.
4072
0d27ac1e 40732008-04-03 Richard Guenther <rguenther@suse.de>
4074
4075 * tree-vrp.c (extract_range_from_unary_expr): Handle all
4076 conversions. Simplify code.
4077
6c5df66e 40782008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
4079
4080 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
4081
6fb2153a 40822008-04-03 Tom Tromey <tromey@redhat.com>
4083 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4084
4085 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4086 * config/bfin/t-bfin-linux (generated_files): Add
4087 linux-sysroot-suffix.h.
4088 * doc/install.texi (Prerequisites): Require make 3.80.
4089 * doc/sourcebuild.texi (Front End Directory): Document new
4090 variable.
4091 * Makefile.in (generated_files): New variable.
4092 (ALL_HOST_OBJS): New variable.
4093 ($(ALL_HOST_OBJS)): New target.
4094
32020b10 40952008-04-03 Paolo Bonzini <bonzini@gnu.org>
4096
d5b52ebc 4097 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
4098 (remap_block): Call id->transform_lang_insert_block instead
4099 of langhook.
4100 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
4101 Set id.transform_lang_insert_block to NULL.
4102 (clone_body): Move to cp/optimize.c
4103 * tree-inline.h (struct copy_body_data): Change
4104 transform_lang_insert_block to function pointer.
4105 (copy_generic_body, copy_decl_no_change): Export.
4106 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
4107 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
4108 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
4109
4110 * c-tree.h (insert_block): Kill.
4111 * c-decl.c (insert_block): Kill.
32020b10 4112
d2764e2d 41132008-04-03 Paolo Bonzini <bonzini@gnu.org>
4114
d5b52ebc 4115 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4116 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
4117 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
4118 argument.
4119 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
4120 argument, call {push,pop}_function_context from here.
4121 * c-parser.c: Use c_{push,pop}_function_context.
4122
4123 * function.c (push_function_context_to): Move meat ...
4124 (push_function_context): ... here. Simplify.
4125 * function.c (pop_function_context_from): Move meat ...
4126 (pop_function_context): ... here. Simplify.
4127 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
4128 leave_nested).
4129 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4130 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
4131 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
4132 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2764e2d 4133
3fc499d6 41342008-04-03 Ben Elliston <bje@au.ibm.com>
4135
4136 * expmed.c (extract_force_align_mem_bit_field): Remove.
4137
469b75f7 41382008-04-03 Richard Guenther <rguenther@suse.de>
4139
4140 PR middle-end/35800
4141 * expr.h (try_casesi): Adjust prototype.
4142 * expr.c (try_casesi): Take fallback label as extra parameter.
4143 Use that for gen_casesi if default_label is NULL.
4144 * stmt.c (expand_case): Pass fallback label to try_casesi,
4145 make sure to fill gaps with a fallback label if default_label
4146 is not present.
4147
bdc98a90 41482008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
4149
4150 PR target/35801
4151 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
4152
6b2813fb 41532008-04-03 Ben Elliston <bje@au.ibm.com>
4154
4155 * expmed.c (extract_split_bit_field): Remove if (0) code.
4156 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
4157 (do_ds_constraint): Likewise.
4158
34c3de48 41592008-04-02 Joseph Myers <joseph@codesourcery.com>
4160
4161 * doc/cppopts.texi (-dU): Document.
4162 * c-common.h (flag_dump_macros): Update comment.
4163 * c-opts.c (handle_OPT_d): Handle -dU.
4164 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
4165 dump_queued_macros, cb_used_define, cb_used_undef): New.
4166 (init_pp_output): Handle -dU.
4167 (cb_line_change): Call dump_queued_macros.
4168 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
4169
48310879 41702008-04-02 Anatoly Sokolov <aesok@post.ru>
4171
4172 * config/avr/predicates.md (io_address_operand): New predicate.
4173 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
4174 * config/avr/avr.c (avr_io_address_p): Remove function.
4175 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
4176 'avr_io_address_p' function.
4177 (out_movhi_r_mr): (Ditto.).
4178 (out_movqi_mr_r): (Ditto.).
4179 (out_movhi_mr_r): (Ditto.).
4180 (avr_address_cost): (Ditto.).
4181
470d0bc8 41822008-04-02 Uros Bizjak <ubizjak@gmail.com>
4183
4184 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
4185 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
4186 in 32bit mode when XMM registers are available to avoid store
4187 forwarding stalls.
4188 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
4189 corresponding post-reload splitters.
4190
b1417d7e 41912008-04-02 H.J. Lu <hongjiu.lu@intel.com>
4192
4193 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
4194 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
4195 __builtin_ia32_roundss.
4196 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
4197 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
4198 __builtin_ia32_roundss.
4199 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
4200 IX86_BUILTIN_SHUFPD here.
4201
b6bc2701 42022008-04-02 H.J. Lu <hongjiu.lu@intel.com>
4203
4204 * config/i386/i386.md (plogic): New.
4205 (plogicprefix): Likewise.
4206
4207 * config/i386/mmx.md (mmx_<code><mode>3): New.
4208 (mmx_and<mode>3): Removed.
4209 (mmx_ior<mode>3): Likewise.
4210 (mmx_xor<mode>3): Likewise.
4211
4212 * config/i386/sse.md (<code><mode>3): New.
4213 (*<code><mode>3): Likewise.
4214 (*<code><mode>3): Likewise.
4215 (<code><mode>3): Likewise.
4216 (*sse_<code><mode>3): Likewise.
4217 (*sse2_<code><mode>3): Likewise.
4218 (<code>tf3): Likewise.
4219 (*<code>tf3): Likewise.
4220 (and<mode>3): Likewise.
4221 (*and<mode>3): Likewise.
4222 (ior<mode>3): Removed.
4223 (*ior<mode>3): Likewise.
4224 (xor<mode>3): Likewise.
4225 (*xor<mode>3): Likewise.
4226 (*and<mode>3): Likewise.
4227 (*ior<mode>3): Likewise.
4228 (*xor<mode>3): Likewise.
4229 (and<mode>3): Likewise.
4230 (*sse_and<mode>3): Likewise.
4231 (*sse2_and<mode>3): Likewise.
4232 (andtf3): Likewise.
4233 (*andtf3): Likewise.
4234 (ior<mode>3): Likewise.
4235 (*sse_ior<mode>3): Likewise.
4236 (*sse2_ior<mode>3): Likewise.
4237 (iortf3): Likewise.
4238 (*iortf3): Likewise.
4239 (xor<mode>3): Likewise.
4240 (*sse_xor<mode>3): Likewise.
4241 (*sse2_xor<mode>3): Likewise.
4242 (xortf3): Likewise.
4243 (*xortf3): Likewise.
4244
72c30859 42452008-04-02 Richard Guenther <rguenther@suse.de>
4246
4247 PR tree-optimization/14495
4248 PR tree-optimization/34793
4249 * tree-vrp.c (struct switch_update): New structure.
4250 (to_remove_edges, to_update_switch_stmts): New VECs.
4251 (simplify_switch_using_ranges): New function. Remove not taken
4252 case labels and edges.
4253 (simplify_stmt_using_ranges): Call it.
4254 (identify_jump_threads): Mark edges we have queued for removal
4255 so we don't thread them.
4256 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
4257 case label vector.
4258 * tree-cfg.c (group_case_labels): Deal with missing default label.
4259 (tree_verify_flow_info): Allow missing default label.
4260 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
4261 (emit_case_nodes): Likewise.
4262 (expand_case): Do not rely on the default label to be present.
4263 * expr.c (try_casesi): Deal with NULL default_label.
4264 (do_tablejump): Likewise.
4265
b6d7b6c5 42662008-04-02 Richard Guenther <rguenther@suse.de>
4267
4268 PR tree-optimization/14495
4269 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
4270 SWITCH_EXPR here ...
4271 (vrp_visit_switch_stmt): ... but here (new function).
4272 (find_case_label_index): New helper function.
4273 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
4274
217c0c86 42752008-04-02 Paolo Bonzini <bonzini@gnu.org>
4276
4277 * fwprop.c: Fix ISO-C99ism.
4278
794723c1 42792008-04-02 Paolo Bonzini <bonzini@gnu.org>
4280
4281 PR bootstrap/35752
4282 * Makefile.in (objdir): Set it here.
4283 * configure.ac: Not here. Find dynamic linker characteristics.
4284 * exec-tool.in: Use them.
4285 * aclocal.m4: Regenerate.
4286 * configure: Regenerate.
4287
1a105fae 42882008-04-02 Paolo Bonzini <bonzini@gnu.org>
4289
4290 * expr.c (expand_var): Delete it.
4291 * expr.h (expand_var): Delete prototype.
4292 * function.c (expand_function_start): Use expand_decl instead.
4293 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
4294 langhook.
4295
f533acbe 42962008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
4297
4298 PR rtl-optimization/35542
4299 * fwprop.c (forward_propagate_and_simplify): Replace
4300 loc_reg_mentioned_in_p with reg_mentioned_p.
4301
f8f13645 43022008-04-02 Paolo Bonzini <bonzini@gnu.org>
4303
f533acbe 4304 PR rtl-optimization/35281
f8f13645 4305 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
4306 (propagate_rtx_1): Handle PR_HANDLE_MEM.
4307 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
4308 (varying_mem_p): Move above propagate_rtx.
4309 (all_uses_available_at): Do not check MEMs.
4310
a00913c7 43112008-04-02 Rafael Espindola <espindola@google.com>
4312
4313 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
4314 (register_edge_assert_for_2): Split the cond argument.
4315 (register_edge_assert_for_1): Adjust for the change in
4316 register_edge_assert_for_2.
4317 (register_edge_assert_for): Split the cond argument.
4318 (find_switch_asserts): Adjust for the change in
4319 register_edge_assert_for.
4320
c8c521bb 43212008-04-02 Kai Tietz <kai.tietz@onevision.com>
4322
4323 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
1f93c018 4324 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
c61eb773 4325 offsets for 64-bit mingw.
1f93c018 4326 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
c61eb773 4327 abi for x86_64-pc-mingw.
c8c521bb 4328
22cdb855 43292008-04-02 Richard Guenther <rguenther@suse.de>
4330
4331 * tree-vrp.c (extract_range_from_assert): Make sure to not
4332 produce range min/max with TREE_OVERFOW set.
4333 If merging a anti-range and a range keep the anti-range if
4334 the range covers all values of the type.
4335 (register_edge_assert_for_2): Only allow sign-changing
4336 conversions in detecting canonical range checks. Also
4337 register an assert for the unsigned name if useful.
4338
4339 PR tree-optimization/35787
4340 * tree-vrp.c (vrp_val_max): New function.
4341 (vrp_val_min): Likewise.
4342 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
4343 (vrp_val_is_min): Likewise.
4344 (supports_overflow_infinity): Use vrp_val_{min,max}.
4345 (negative_overflow_infinity): Likewise.
4346 (positive_overflow_infinity): Likewise.
4347 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
4348 (is_positive_overflow_infinity): Likewise.
4349 (is_overflow_infinity): Likewise.
4350 (avoid_overflow_infinity): Use vrp_val_{min,max} and
4351 vrp_val_is_{min,max}.
4352 (set_and_canonicalize_value_range): Canonicalize anti-ranges
4353 to ranges if possible. Avoid empty ranges.
4354
10494d65 43552008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4356
4357 PR middle-end/35705
4358 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
4359 the expression is a function address.
4360
a12691f0 43612008-04-01 George Helffrich <george@gcc.gnu.org>
4362
ae093573 4363 PR fortran/35154, fortran/23057
a12691f0 4364 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
4365 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
4366 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
4367 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
4368 in common.
4369 (dbxout_syms): Check for COMMON-based symbol and wrap in
4370 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
4371 in bracket for efficiency.
4372
4373 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
4374 using DW_TAG_common_block + member offset.
4375 (add_pubname_string): New function.
4376 (dw_expand_expr): New function to find block name and offset for
4377 COMMON var.
4378 (common_check): New function to check whether symbol in Fortran COMMON.
4379 (gen_variable_die): If COMMON, use DW_TAG_common_block.
4380
fa3b771a 43812008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
4382
4383 PR c/35436
4384 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
4385
dbec73a5 43862008-04-02 Ben Elliston <bje@au.ibm.com>
4387
4388 * config/v850/v850.md (casesi): Remove if (0) code.
4389 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4390 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
4391
3a8f2ab9 43922008-04-01 Uros Bizjak <ubizjak@gmail.com>
4393
4394 * config/i386/i386.md (rex64suffix): New mode attribute.
4395 (floathi<mode>2): Disable expander for SSE math.
4396 (*floathi<mode>2_1): New insn insn_and_split pattern.
4397 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
4398 corresponding post-reload splitters.
4399 (*floathi<mode>2_i387): New macroized insn pattern.
4400 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
4401 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
4402 insn_and_split pattern.
4403 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
4404 New macroized instruction patterns and corresponding post-reload
4405 splitters.
4406 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
4407 and corresponding post-reload splitters.
4408 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
4409 New macroized instruction patterns.
4410 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
4411 macroized instruction patterns and corresponding post-reload splitters.
4412 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
4413 corresponding post-reload splitters.
4414 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
4415 New macroized instruction patterns.
4416 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
4417 corresponding post-reload splitters.
4418 (*floatsi<mode>2_i387): New macroized instruction patterns.
4419
9409fce7 44202008-04-01 H.J. Lu <hongjiu.lu@intel.com>
4421
4422 * config/i386/i386.md (smaxmin): New.
4423 (umaxmin): Likewise.
4424 (maxminiprefix): Likewise.
4425 (maxminfprefix): Likewise.
4426 (<code><mode>3): Likewise.
4427 (smin<mode>3): Removed.
4428 (smax<mode>3): Likewise.
4429
4430 * config/i386/mmx.md (mmx_<code>v2sf3): New.
4431 (mmx_<code>v4hi3): Likewise.
4432 (mmx_<code>v8qi3): Likewise.
4433 (mmx_smaxv2sf3): Removed.
4434 (mmx_sminv2sf3): Likewise.
4435 (mmx_umaxv8qi3): Likewise.
4436 (mmx_smaxv4hi3): Likewise.
4437 (mmx_uminv8qi3): Likewise.
4438 (mmx_sminv4hi3): Likewise.
4439
4440 * config/i386/sse.md (<addsub><mode>3): New.
4441 (*<addsub><mode>3): Likewise.
4442 (<sse>_vm<addsub><mode>3): Likewise.
4443 (<maxmin><mode>3): Likewise.
4444 (*<maxmin><mode>3_finite): Likewise.
4445 (*<maxmin><mode>3): Likewise.
4446 (<sse>_vm<maxmin><mode>3): Likewise.
4447 (sse3_h<addsub>v4sf3): Likewise.
4448 (sse3_h<addsub>v2df3): Likewise.
4449 (<maxmin>v16qi3): Likewise.
4450 (*<maxmin>v16qi3): Likewise.
4451 (<maxmin>v8hi3): Likewise.
4452 (*<maxmin>v8hi3): Likewise.
4453 (*sse4_1_<maxmin><mode>3): Likewise.
4454 (*sse4_1_<maxmin><mode>3): Likewise.
4455 (add<mode>3): Removed.
4456 (*add<mode>3): Likewise.
4457 (<sse>_vmadd<mode>3): Likewise.
4458 (sub<mode>3): Likewise.
4459 (*sub<mode>3): Likewise.
4460 (<sse>_vmsub<mode>3): Likewise.
4461 (smin<mode>3): Likewise.
4462 (*smin<mode>3_finite): Likewise.
4463 (*smin<mode>3): Likewise.
4464 (<sse>_vmsmin<mode>3): Likewise.
4465 (smax<mode>3): Likewise.
4466 (*smax<mode>3_finite): Likewise.
4467 (*smax<mode>3): Likewise.
4468 (<sse>_vmsmax<mode>3): Likewise.
4469 (sse3_haddv4sf3): Likewise.
4470 (sse3_haddv2df3): Likewise.
4471 (sse3_hsubv4sf3): Likewise.
4472 (sse3_hsubv2df3): Likewise.
4473 (umaxv16qi3): Likewise.
4474 (*umaxv16qi3): Likewise.
4475 (smaxv8hi3): Likewise.
4476 (*smaxv8hi3): Likewise.
4477 (*sse4_1_smax<mode>3): Likewise.
4478 (*sse4_1_umax<mode>3): Likewise.
4479 (uminv16qi3): Likewise.
4480 (*uminv16qi3): Likewise.
4481 (sminv8hi3): Likewise.
4482 (*sminv8hi3): Likewise.
4483 (*sse4_1_smin<mode>3): Likewise.
4484 (*sse4_1_umin<mode>3): Likewise.
4485
d3ec693f 44862008-04-01 Rafael Espindola <espindola@google.com>
4487
4488 * tree-cfg.c (verify_expr): remove in_phi.
9409fce7 4489 (verify_stmt): Don't call walk_tree with verify_expr. Use
d3ec693f 4490 is_gimple_min_invariant instead of is_gimple_val.
4491
eae7da65 44922008-04-01 Joseph Myers <joseph@codesourcery.com>
4493
4494 * doc/include/gpl_v3.texi: Update for manpage generation.
4495 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
4496 gpl.texi.
4497 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
4498 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
4499 gpl_v3.texi instead of gpl.texi.
4500 (gpl.pod): New.
4501
f2225b1a 45022008-04-01 Jakub Jelinek <jakub@redhat.com>
4503
4504 PR pch/13675
4505 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
4506
7433d1d6 45072008-04-01 Rafael Espindola <espindola@google.com>
4508
4509 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
4510 (extract_code_and_val_from_cond): Use
4511 extract_code_and_val_from_cond_with_ops.
4512
1321f22c 45132008-04-01 Jan Hubicka <jh@suse.cz>
4514
4515 * function.c (free_after_compilation): Free epilogue_delay_list.
4516 (prepare_function_start): Assert that previous compilation was freed.
4517
08d2afb4 45182008-04-01 Jan Hubicka <jh@suse.cz>
4519 Jim Wilson <wilson@tuliptree.org>
4520 Andreas Tobler <andreast@gcc.gnu.org>
4521
4522 PR middle-end/35781
4523 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
4524 rtl.emit instead cfun->emit.
4525 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
4526 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
4527
21b45faa 45282008-04-01 Ben Elliston <bje@au.ibm.com>
4529
4530 * doc/c-tree.texi (Function Basics): Fix grammatical error.
4531
3e3a0e9c 45322008-03-31 Seongbae Park <seongbae.park@gmail.com>
4533
4534 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
4535 New options
4536 (fprofile-use): Add var flag_profile_use
3a8f2ab9 4537 * coverage.c (coverage_begin_output): Do not open a gcno file for
4538 output only if -ftest-coverage is set.
3e3a0e9c 4539 Do not add getpwd() to gcda file path.
3a8f2ab9 4540 (build_gcov_info): Check the new flag
3e3a0e9c 4541 flag_profile_datafile_relative_path.
4542 (coverage_init): Use profile_data_prefix.
4543 Read profile counter only if flag_profile_use is set.
4544 * opts.c (common_handle_option): New option fprofile-use=,
4545 fprofile-dir=, fprofile-generate=.
4546 * toplev.c (profile_data_prefix): New variable definition.
4547 * toplev.h (profile_data_prefix): New declaration.
4548 * doc/invoke.tex (Option Summary, Optimization Options):
4549 Add new options.
4550
4e508025 45512008-03-31 James E. Wilson <wilson@tuliptree.org>
4552
3a8f2ab9 4553 * varasm.c (output_constant_pool_1): In LABEL_REF check,
4554 use tmp consistently.
4bd8d9a1 4555
4e508025 4556 PR target/35695
4557 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
4558 * config/ia64/ia64.c (rtx_needs_barrier): Handle
4559 UNSPEC_FR_RECIP_APPROX_RES.
4560 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
4561
e911c0fe 45622008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
4563
4564 PR c/35750
4565 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
4566
70a866cf 45672008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
4568
4569 PR middle-end/30186
4570 * fold-const.c (fold_indirect_ref_1): Support accessing non first
4571 element of the vector via a pointer.
4572
168de4c5 45732008-03-31 Ian Lance Taylor <iant@google.com>
4574
3a8f2ab9 4575 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
168de4c5 4576
b079a207 45772008-03-31 Jan Hubicka <jh@suse.cz>
4578
4579 * builtins.c (expand_builtin_setjmp_receiver): Update call of
4580 get_arg_pointer_save_area.
4581 * expr.c (init_expr): Just clear out rtl.expr.
4582 * function.c (free_after_compilation): Clear out whole RTL structure.
4583 (get_func_frame_size): Merge into ...
4584 (get_frame_size): ... this one.
4585 (assign_stack_local_1): Merge into ...
4586 (assign_stack_local): ... this one.
4587 (expand_function_end): Update call of get_arg_pointer_save_area.
4588 (get_art_pointer_save_area): Remove cfun argument.
4589 * function.h (emit_status): regno_pointer_align does not need length
4590 attribute. Move x_regno_reg_rtx to ...
4591 (regno_reg_rtx): ... new global array.
4592 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
4593 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
3a8f2ab9 4594 apply_args_value, forced_labels, stack_pointer_delta):
4595 Update accestors.
b079a207 4596 (struct varasm_status): Move here from varasm.c
4597 (struct rtl_data): New. Move here some fields from struct function.
4598 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4599 frame_offset, stack_check_probe_note, arg_pointer_save_area,
4600 used_temp_slots avail_temp_slots, temp_slot_level,
4601 nonlocal_goto_handler_labels): Update accesstors.
4602 (rtl): New global variable.
4603 (struct function): Move some fileds to rtl_data.
4604 (get_arg_pointer_save_area): Update prototype.
4605 * emit-rtl.c (rtl): Declare.
4606 (regno_reg_rtx): Declare.
3a8f2ab9 4607 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4608 Update.
b079a207 4609 (gen_reg_rtx): Update.
4610 (init_virtual_regs): Do not tate emit_status argument.
4611 (init_emit): Do not allocate emit.
4612 * varasm.c (varasm_statuc): Move to function.h.
4613 (n_deferred_constatns): Update accestor.
4614 (init_varasm_status): Do not allocate varasm_status.
4615 (force_const_mem, get_pool_size, output_constant_pool): Update.
4616 * stmt.c (force_label_rtx): Do not use x_ prefixes.
4617 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4618
13ecee21 46192008-03-31 Zdenek Dvorak <ook@ucw.cz>
4620
4621 PR rtl-optimization/35729
4622 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
4623 references.
4624
0010688c 46252008-03-31 H.J. Lu <hongjiu.lu@intel.com>
4626
4627 PR target/32000
4628 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
4629 load/store if memory is unaligned.
4630 (*movti_rex64): Likewise.
4631
4632 * config/i386/predicates.md (misaligned_operand): New.
4633
435e1a75 46342008-03-31 Andrew Pinski <pinskia@gmail.com>
4635
4636 PR tree-opt/35431
4637 * tree-ssa-phiopt.c (conditional_replacement): Return early for
4638 complex types.
4639
80538812 46402008-03-31 Jan Beulich <jbeulich@novell.com>
4641
4642 * config/ia64/constraints.md: Add 'j' constraint.
4643 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
4644 (movdi_internal): Likewise.
4645
ae4400fc 46462008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
4647
4648 PR c/35748
4649 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
4650
7b18adb1 46512008-03-30 H.J. Lu <hongjiu.lu@intel.com>
4652
4653 PR target/35757
4654 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
4655 proper error message for the third argument on blendpd and
4656 blendps.
4657
4658 * config/i386/sse.md (blendbits): New.
4659 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
4660
54bd17de 46612008-03-30 Eric Botcazou <ebotcazou@adacore.com>
4662
4663 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
4664
8db0c0ff 46652008-03-30 Richard Guenther <rguenther@suse.de>
4666
4667 PR middle-end/31023
4668 * fold-const.c (fold_sign_changed_comparison): Do leave
4669 conversions to base-types alone.
4670
29c144d1 46712008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
4672
4673 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
4674 the link register if one altivec register is be saved.
4675
55007e96 46762008-03-30 Ben Elliston <bje@au.ibm.com>
4677
4678 * final.c (final_scan_insn): Remove if (0) code.
4679
b3cafa91 46802008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
4681
4682 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
4683
18861bde 46842008-03-28 H.J. Lu <hongjiu.lu@intel.com>
4685
4686 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
4687 of V4SFmode to ix86_binary_operator_ok.
4688
d173d680 46892008-03-28 Uros Bizjak <ubizjak@gmail.com>
4690
4691 * config/i386/i386.c (override_options): Initialize
4692 ix86_veclib_handler to ix86_veclibabi_svml when
4693 -mveclibabi=svml is used.
4694 (ix86_veclibabi_svml): New function for SVML ABI style
4695 vectorization support.
4696 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
4697
93116081 46982008-03-28 Rafael Espindola <espindola@google.com>
4699
4700 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
4701 (tree_binary_nonnegative_warnv_p): Make it public.
4702 (tree_single_nonnegative_warnv_p): Make it public.
4703 (tree_invalid_nonnegative_warnv_p): Make it public.
4704 (tree_unary_nonzero_warnv_p): Make it public.
4705 (tree_binary_nonzero_warnv_p): Make it public
4706 (tree_single_nonzero_warnv_p): Make it public.
4707 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
4708 (extract_range_from_binary_expr): Split the expr argument.
4709 (extract_range_from_unary_expr): Split the expr argument.
4710 (extract_range_from_comparison): Split the expr argument.
4711 (extract_range_from_expr): Use the new aux functions.
4712 (vrp_evaluate_conditional_warnv): Use
4713 vrp_evaluate_conditional_warnv_with_ops.
4714 * tree.h (tree_unary_nonzero_warnv_p): Declare.
4715 (tree_binary_nonzero_warnv_p): Declare.
4716 (tree_single_nonzero_warnv_p): Declare.
4717 (tree_expr_nonzero_warnv_p): Declare.
4718 (tree_unary_nonnegative_warnv_p): Declare.
4719 (tree_binary_nonnegative_warnv_p): Declare.
4720 (tree_single_nonnegative_warnv_p): Declare.
4721 (tree_invalid_nonnegative_warnv_p): Declare.
4722
bed8bec4 47232008-03-28 Richard Guenther <rguenther@suse.de>
4724
4725 PR tree-optimization/30317
4726 PR tree-optimization/30911
4727 PR tree-optimization/34793
4728 * tree-vrp.c (set_and_canonicalize_value_range): New function.
4729 (struct assert_locus_d): New member EXPR.
4730 (register_new_assert_for): Add EXPR parameter to support
4731 ASSERT_EXPR <name, expr OP limit>.
4732 (register_edge_assert_for_1): Adjust callers.
4733 (find_assert_locations): Likewise.
d173d680 4734 (process_assert_insertions_for): Build condition from expression.
bed8bec4 4735 (extract_range_from_assert): Handle ASSERT_EXPRs
4736 of the form ASSERT_EXPR <name, expr OP limit>.
4737 (register_edge_assert_for_2): New helper registering
4738 asserts for comparisons. Recognize range tests of the form
4739 (unsigned)i - CST1 OP CST2.
4740 (register_edge_assert_for_1): Use it.
4741 (register_edge_assert_for): Likewise.
4742 (needs_overflow_infinity): Integer sub-types
4743 do not need overflow infinities.
4744 (vrp_val_is_max): The extreme values of integer sub-types
4745 are those of the base type.
4746 (vrp_val_is_min): Likewise.
4747 * tree.def (ASSERT_EXPR): Document extra allowed conditional
4748 expressions.
4749
55f3f40f 47502008-03-28 Nick Clifton <nickc@redhat.com>
4751
12f2d5e9 4752 PR target/31110
55f3f40f 4753 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
d173d680 4754 Return GENERAL_REGS for stack adjustment reloads.
55f3f40f 4755
cb47bce8 47562008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4757
4758 PR target/31334
4759 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
4760 const_vector when all the vectors are constant.
4761
a22be2c5 47622008-03-27 Bob Wilson <bob.wilson@acm.org>
4763
4764 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
4765 comparisons.
4766 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
4767 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
4768 (scc_sf): New.
4769 (s<code>_sf): Use new scc_sf attribute for opcode names.
4770
21886706 47712008-03-27 Tom Tromey <tromey@redhat.com>
4772
4773 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
4774 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
4775 config/spu/t-spu-elf, config/i386/t-interix,
4776 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
4777 config/i386/x-darwin, config/i386/x-mingw32,
4778 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
4779 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
4780 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
4781 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
4782 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
4783 config/rs6000/x-darwin, config/rs6000/t-rs6000,
4784 config/score/t-score-elf, config/arm/t-strongarm-pe,
4785 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
4786 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
4787 Revert automatic dependency patch.
4788
4f0ebb16 47892008-03-27 H.J. Lu <hongjiu.lu@intel.com>
4790
4791 PR target/35657
4792 * config/i386/i386.c (ix86_function_arg_boundary): Align
4793 decimal floating point to its natural boundary.
4794
dd691fd8 47952008-03-27 Richard Guenther <rguenther@suse.de>
4796
4797 PR middle-end/35716
4798 * fold-const.c (fold_comparison): Restrict distinct decl
4799 comparison folding to VAR_DECLs and PARM_DECLs. Do not
4800 solely rely on operand_equal_p.
4801
059a60f3 48022008-03-27 Richard Guenther <rguenther@suse.de>
4803
4804 PR c/32511
4805 * c-common.c (handle_weak_attribute): Reject combination of
4806 weak and inline.
4807
590d65aa 48082008-03-27 Richard Guenther <rguenther@suse.de>
4809
4810 PR tree-optimization/32810
4811 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
4812 conversions from DECL_INITIAL.
4813 (fold_const_aggregate_ref): Likewise from constructor elements.
4814
063a8bce 48152008-03-27 Zdenek Dvorak <ook@ucw.cz>
4816
4817 * tree-affine.h (aff_combination_expand): Declare.
4818 (get_inner_reference_aff): Likewise.
4819 * tree-affine.c (aff_combination_expand): Split out from
4820 tree_to_aff_combination_expand.
4821 (get_inner_reference_aff): New function.
4822 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
d173d680 4823 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
4824 (struct lim_aux_data): sm_done field removed.
4825 (mem_ref_loc_p, mem_ref_locs_p): New types.
4826 (struct mem_ref): Added id, stored, accesses_in_loop,
4827 indep_loop, dep_loop, indep_ref, dep_ref fields.
4828 Removed is_stored, locs and next fields.
4829 (memory_accesses): New variable.
4830 (movement_possibility): Do not allow moving statements
4831 that store to memory.
4832 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
4833 New functions.
4834 (determine_max_movement): For statements with memory references,
4835 find the outermost loop in that the reference is independent.
4836 (move_computations_stmt): Mark the virtual operands for renaming.
4837 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
4838 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
4839 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
4840 add_vop_ref_mapping, create_vop_ref_mapping_loop,
4841 create_vop_ref_mapping, analyze_memory_references,
4842 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
4843 get_all_locs_in_loop, ref_always_accessed_p,
4844 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
4845 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
4846 store_motion_loop, store_motion): New functions.
4847 (struct vop_to_refs_elt): New type.
4848 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
4849 memref_hash, memref_eq, hoist_memory_references): Rewritten.
4850 (schedule_sm): Replaced by...
4851 (execute_sm): ... this.
4852 (determine_lsm_ref, hoist_memory_references,
4853 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
4854 find_more_ref_vops, free_mem_ref, free_mem_refs,
4855 determine_lsm_loop, determine_lsm): Removed.
4856 (tree_ssa_lim_finalize): Free data structures used by store motion.
4857 (tree_ssa_lim): Call analyze_memory_references. Use
4858 store_motion instead of determine_lsm.
063a8bce 4859
58a8c75f 48602008-03-27 Paolo Bonzini <bonzini@gnu.org>
4861
4862 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
4863 rename tmake_file to m68hc11/t-m68hc11.
4864 (mcore): Set inhibit_libc to true.
4865 * config.host (alpha*-dec-*vms*): Set extra_programs.
4866 (interix3*): Don't use host_xmake_file.
4867 * configure.ac: Let config.gcc override inhibit_libc.
4868 * configure: Regenerate.
4869
4870 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
4871 * config/t-openbsd-thread: Remove commented out lines.
4872
4873 * config/x-interix: Remove.
4874
4875 * config/m68hc11/t-m68hc11-gas: Rename to...
4876 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
4877
4878 * config/mcore/t-mcore: Remove T_CFLAGS.
4879 * config/mcore/t-mcore-pe: Likewise.
4880
b9146087 48812008-03-27 Paolo Bonzini <bonzini@gnu.org>
4882
4883 * configure.ac: Replace custom __GNU_SOURCE test with
4884 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
4885 * aclocal.m4: Regenerate.
4886 * configure: Regenerate.
4887 * config.in: Regenerate.
4888
ffdf1c47 48892008-03-27 Richard Guenther <rguenther@suse.de>
4890
4891 * fold-const.c (target.h): Include.
4892 (fold_comparison): Fold comparison of addresses of decls
4893 that bind locally or of constants. Consolidate address folding code.
4894 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
4895 results from fold_binary_to_constant.
4896 (compare_values_warnv): Likewise.
4897
d159b72d 48982008-03-27 Andrew Pinski <pinskia@gmail.com>
4899
4900 PR middle-end/35429
4901 * fold-const.c (fold_truthop): Check for integeral types when folding
4902 a == 0 && b == 0 and a != 0 || b != 0 .
4903
bed74a71 49042008-03-26 Eric Botcazou <ebotcazou@adacore.com>
4905
4906 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
4907
7e8061cf 49082008-03-26 Andreas Schwab <schwab@suse.de>
4909
4910 * doc/invoke.texi: Fix use of @item vs. @itemx.
4911
f731500e 49122008-03-26 Tom Tromey <tromey@redhat.com>
4913
4914 * Makefile.in (build/gensupport.o, build/print-rtl.o,
4915 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
4916 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
4917 build/gencodes.o, build/genconditions.o, build/genconfig.o,
4918 build/genconstants.o, build/genemit.o, build/genextract.o,
4919 build/genflags.o, build/genmddeps.o, build/genopinit.o,
4920 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
4921 options.h.
4922
e7d6ed86 49232008-03-26 Richard Guenther <rguenther@suse.de>
4924
4925 Revert
4926 2008-03-26 Richard Guenther <rguenther@suse.de>
4927
4928 * fold-const.c (target.h): Include.
4929 (fold_comparison): Fold comparison of addresses of two decls
4930 that bind locally. Consolidate address folding code.
4931
3fa759a9 49322008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4933
4934 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
4935 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
4936 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
4937 dconstsqrt2, dconstthird, dconste and/or dconst10.
4938 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
4939 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
4940 dconstsqrt2, dconste): Delete.
4941 (init_emit_once): Likewise. Simplify initializing dconstm1.
4942 Constify variable.
4943 * real.c (get_real_const): New.
4944 * real.h (dconst3, dconst10, dconstm2, dconstthird,
4945 dconstsqrt2, dconste): Delete.
4946 (real_value_const, get_real_const): New.
4947
3a8a26d5 49482008-03-26 H.J. Lu <hongjiu.lu@intel.com>
4949
4950 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
4951
4952 * config/i386/i386.c (ix86_function_arg_boundary): Check
4953 BIGGEST_ALIGNMENT instead of 128.
4954 (setup_incoming_varargs_64): Likewise.
4955
ae69189e 49562008-03-26 Tom Tromey <tromey@redhat.com>
4957
4958 * Makefile.in (DEPFILES): Add missing '/'.
4959
60f42188 49602008-03-26 Richard Guenther <rguenther@suse.de>
4961
4962 * fold-const.c (target.h): Include.
4963 (fold_comparison): Fold comparison of addresses of two decls
4964 that bind locally. Consolidate address folding code.
4965
a0ebe2ee 49662008-03-26 Nick Clifton <nickc@redhat.com>
4967
4968 PR target/31232
4969 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
4970 not allow INT+INT as a legitimate addressing mode.
4971
e607210a 49722008-03-26 Richard Guenther <rguenther@suse.de>
4973
4974 * tree-flow.h (widen_bitfield): Remove declaration.
4975 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
4976 (widen_bitfield): Remove function.
4977 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
4978 code.
4979
f082efb4 49802008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
4981
5c00ef9c 4982 PR target/31558
f082efb4 4983 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
4984 error_mark_node's.
4985
1e32b0c4 49862008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
4987
4988 PR rtl-optimization/35232
4989 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
4990 (forget_old_reloads_1, forget_marked_reloads): Don't clear
4991 reg_reloaded_call_part_clobbered here.
4992 (reload_regs_reach_end_p): New function.
4993 (reload_reg_rtx_for_input): New variable.
4994 (reload_reg_rtx_for_output): Likewise.
4995 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
4996 when reassigning a pseudo register. Load reloadreg from
4997 reload_reg_rtx_for_input, moving the mode and register
4998 calculation to...
4999 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
5000 instead of the original when deciding whether an input reload
5001 would be a no-op or whether an output reload can be deleted.
5002 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
5003 when setting up new_spill_reg_store. Load it from
5004 reload_reg_rtx_for_output, moving the mode and register
5005 calculation to...
5006 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
5007 instead of the original when deciding whether an output reload
5008 would be a no-op. Do the same when modifying insn notes.
5009 Use rtx_equal_p instead of == to compare the registers.
5010 (inherit_piecemeal_p): Take a mode and two register numbers
5011 as argument.
5012 (emit_reload_insns): Clear new_spill_reg_store for every hard
5013 register in the reload register. Remove spill registers
5014 from reg_reloaded_valid before considering whether to record
5015 inheritance information for them. Use reload_reg_rtx_for_output
5016 instead of reg_rtx when recording output reloads. Use
5017 reload_reg_rtx_for_input instead of reg_rtx when recording
5018 input reloads. Set or clear reg_reloaded_call_part_clobbered
5019 at the same time as setting reg_reloaded_valid.
5020 (delete_output_reload): Add a new_reload_reg parameter and use it
5021 instead of rld[j].reg_rtx.
5022 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
5023 calls accordingly.
5024
72490eb6 50252008-03-25 Tom Tromey <tromey@redhat.com>
5026
5027 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
5028 (build/genattr.o): Likewise.
5029 (build/genattrtab.o): Likewise.
5030 (build/gencodes.o): Likewise.
5031 (build/genconfig.o): Likewise.
5032 (build/genconstants.o): Likewise.
5033 (build/genemit.o): Likewise.
5034 (build/genextract.o): Likewise.
5035 (build/genflags.o): Likewise.
5036
1bdc4996 50372008-03-25 Bob Wilson <bob.wilson@acm.org>
5038
5039 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
5040 instead of size_int for integer types.
5041 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
5042 to match type of MINUS_EXPR.
5043
ac26af35 50442008-03-25 Tom Tromey <tromey@redhat.com>
5045
5046 * configure: Rebuilt.
5047 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
5048 Makefile.
5049
277b05bb 50502008-03-25 Tom Tromey <tromey@redhat.com>
5051
5052 * config/x-solaris (host-solaris.o): Update.
5053 * config/x-linux (host-linux.o): Update.
5054 * config/x-hpux (host-hpux.o): Update.
5055 * config/x-darwin (host-darwin.o): Update.
5056 * config/v850/t-v850e (v850-c.o): Update.
5057 * config/v850/t-v850 (v850-c.o): Update.
5058 * config/t-vxworks (vxworks.o): Update.
5059 * config/t-sol2 (sol2-c.o, sol2.o): Update.
a4be8081 5060 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
277b05bb 5061 * config/spu/t-spu-elf (spu-c.o): Update.
5062 (spu.o): Remove.
5063 * config/sh/t-symbian (sh-c.o): Update.
5064 (symbian.o): Update.
5065 * config/sh/t-sh (sh-c.o): Update.
5066 * config/score/t-score-elf (score7.o, score3.o): Update.
5067 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
5068 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
5069 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
5070 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
5071 (rs6000.o): Remove.
5072 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5073 * config/m32c/t-m32c (m32c-pragma.o): Update.
5074 * config/ia64/t-ia64 (ia64-c.o): Update.
5075 * config/i386/x-mingw32 (host-mingw32.o): Update.
5076 * config/i386/x-i386 (driver-i386.o): Update.
5077 * config/i386/x-darwin (host-i386-darwin.o): Update.
5078 * config/i386/x-cygwin (host-cygwin.o): Update.
5079 * config/i386/t-nwld (nwld.o): Update.
5080 * config/i386/t-netware (netware.o): Update.
5081 * config/i386/t-interix (winnt.o): Update.
5082 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
5083 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
5084 msformat-c.o): Update.
5085 * config/bfin/t-bfin-linux (generated_files): Add
5086 linux-sysroot-suffix.h.
5087 * config/arm/t-wince-pe (pe.o): Update.
5088 * config/arm/t-strongarm-pe (pe.o): Update.
5089 * config/arm/t-pe (pe.o): Update.
5090 * config/arm/t-arm (arm-c.o): Update.
5091 * doc/install.texi (Prerequisites): Require make 3.80.
5092 * Makefile.in: Remove .o targets.
5093 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
5094 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
5095 (simple_generated_h, simple_generated_c): Move earlier.
5096 (generated_files): New variable.
5097 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
5098 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
5099 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
5100 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
5101 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
5102 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
5103 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
5104 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
5105 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
5106 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
5107 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
5108 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
5109 (.c.o): Remove.
5110 (COMPILE.base, COMPILE): New variables.
5111 (%.o): New pattern rule.
5112 (ALL_HOST_OBJS): New variable.
5113 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
5114 (dummy-checksum.o, cc1-checksum.o): Remove.
5115 (DRIVER_SHLIB): New variable.
5116 (DRIVER_DEFINES): Use it.
5117 (gencondmd.c): Move out of build/.
5118 (s-conditions): Update.
5119 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
5120 (ALL_BUILD_OBJS): Likewise.
5121 (build/%.o): Use BUILDCOMPILE.
5122 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
5123 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
5124 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
5125 build/gencheck.o, build/gencodes.o, build/genconditions.o,
5126 build/genconfig.o, build/genconstants.o, build/genemit.o,
5127 build/genextract.o, build/genflags.o, build/genmddeps.o,
5128 build/genopinit.o, build/genoutput.o, build/genpeep.o,
5129 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
5130 build/gen-protos.o, build/scan.o, build/fix-header.o,
5131 build/scan-decls.o): Simplify.
5132 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
5133 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
5134 prefix.o, toplev.o): Reduce to variable setting.
a4be8081 5135 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
277b05bb 5136 ($(out_object_file), gcc-options.o): New targets.
a4be8081 5137 ($(ALL_HOST_OBJS)): New target. Include dependency files.
277b05bb 5138 * configure: Rebuilt.
a4be8081 5139 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
5140 * doc/sourcebuild.texi (Front End Directory): Document new variable.
277b05bb 5141
ebd21de4 51422008-03-25 Douglas Gregor <doug.gregor@gmail.com>
5143
a4be8081 5144 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
5145 complain when we hit an error, return ERROR_MARK_NODE.
ebd21de4 5146
bc1c5420 51472008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
5148
5149 * config/sh/constraints.md (Pso, Psz): New constraints.
5150 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
5151 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
5152
5897d9f3 51532008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
5154
a4be8081 5155 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
5897d9f3 5156 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
5157
5f3ca2f6 51582008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
5159
5160 * config/sh/sh.md (prefetch): Add condition for SH2A target.
5161 (prefetch_sh2a): New.
5162
419b390c 51632008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
5164 Naveen.H.S <naveen.hs@kpitcummins.com>
5165
5166 * config/sh/constraints.md (I28): New constraint.
5167 * config/sh/sh.c (broken_move): Add support for movi20s.
a4be8081 5168 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
419b390c 5169
5241f4ad 51702008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
5171 Jayant Sonar <Jayant.sonar@kpitcummins.com>
5172 Naveen.H.S <naveen.hs@kpitcummins.com>
5173
5174 * config/sh/sh.c (SH_ATTRIBUTES): Define.
5175 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
5176 (print_operand): Handle resbank in %@ operand code.
5177 (sh_encode_section_info): New.
5178 (push_regs): Add conditions for resbank.
5179 (sh_expand_epilogue): Likewise.
5180 (sh_insert_attributes): Likewise.
5181 (sh_attribute_table): Likewise.
5182 (sh_handle_resbank_handler_attribute): New.
5183 (sh2a_handle_function_vector_handler_attribute): New.
5184 (sh2a_is_function_vector_call): New.
5185 (sh2a_get_function_vector_number): New.
5186 (sh2a_function_vector_p): New.
5187 (sh_cfun_resbank_handler_p): New.
5188 * config/sh/sh.md (calli): Emit jsr/n if possible.
5189 (calli_tbr_rel): New.
5190 (calli_pcrel): Emit jsr/n if possible.
5191 (return_i): Emit rts/n if possible.
5192 (call_valuei_tbr_rel): New.
5193 (call_valuei_pcrel): Add condition for SH2A target.
5194 (call_value): Likewise.
5195 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
5196 (sh2a_get_function_vector_number): Likewise.
5197 (sh2a_is_function_vector_call): Likewise.
5198 * doc/extend.texi: Document TBR relative addressing of SH2A.
5199 (resbank): Add description for SH2A.
5200
80296012 52012008-03-24 Richard Guenther <rguenther@suse.de>
5202
5203 PR c/22371
5204 * gimplify.c (gimplify_modify_expr): For frontend type-correct
5205 pointer assignments change conversions according to middle-end rules.
5206 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
5207 * configure.ac: Include type checking in yes.
5208 * configure: Regenerate.
5209
43404f28 52102008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5211
5212 * diagnostic.c (diagnostic_count_diagnostic): Delete.
5213 (diagnostic_report_diagnostic): Update. Handle ICEs here.
5214
0a824f63 52152008-03-24 Nathan Sidwell <nathan@codesourcery.com>
5216
5217 * gthr-vxworks.h (UNUSED): Define.
5218
ffc0b1ed 52192008-03-23 H.J. Lu <hongjiu.lu@intel.com>
5220
d173d680 5221 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
ffc0b1ed 5222
9d5b78d0 52232008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
5224
5225 * doc/extend.texi (Function Attributes): Add missing comma in the
5226 example of the "alloc_size" attribute.
5227
933a719e 52282008-03-23 Uros Bizjak <ubizjak@gmail.com>
5229
5230 Revert:
5231 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
5232
5233 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5234 32bit host.
5235
5236 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
5237
5238 PR target/35496
5239 * stor-layout.c (update_alignment_for_field): Set minimum alignment
5240 of the underlying type of a MS bitfield layout to the natural
5241 alignment of the type.
5242
5243 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
5244
5245 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
5246 to their natural alignment to avoid store forwarding stalls.
5247
0a685b29 52482008-03-22 Richard Guenther <rguenther@suse.de>
5249
5250 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
5251 For PHI nodes verify the address is invariant.
5252 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
5253 (get_symbol_constant_value): Use is_gimple_min_invariant.
5254 (maybe_fold_stmt_indirect): Likewise.
5255
10d4de0e 52562008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
5257
5258 PR rtl-optimization/33927
5259 * Makefile.in (dse.o): Depend on $(TM_P_H).
5260 * expr.h (extract_low_bits): Declare.
5261 * expmed.c (extract_low_bits): New function.
5262 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
5263 * dse.c: Include tm_p.h.
5264 (find_shift_sequence): Remove the read_reg argument and return the
5265 read value. Emit the instructions instead of returning them.
5266 Iterate on new_mode rather than calculating it each time.
5267 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
5268 source to NEW_MODE and extract_low_bits to convert the shifted
5269 value to READ_MODE.
5270 (replace_read): Allow the load and store to have different mode
5271 classes. Use extract_low_bits when SHIFT == 0. Create the shift
5272 or extraction instructions before trying the replacement. Update
5273 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
5274
941c7853 52752008-03-22 Uros Bizjak <ubizjak@gmail.com>
5276
5277 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
5278 to their natural alignment to avoid store forwarding stalls.
5279
3a1e8d7a 52802008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
5281
3a30a2a9 5282 PR target/27946
3a1e8d7a 5283 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
5284 encouraging but not allowing gprs for input;
5285 change the input constraint to !f#r.
5286 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
5287 gprs for output;
5288 change the output constraint to !f#r.
5289
89ba852b 52902008-03-21 Uros Bizjak <ubizjak@gmail.com>
5291
5292 PR target/13958
5293 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
5294 corresponding post-reload splitters.
5295 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
5296 when x87 FP math is selected.
5297 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
5298 New function prototype.
5299 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
5300 unreachable function to ease macroization of insn patterns.
5301
4cc34f6b 53022008-03-21 Martin Jambor <mjambor@suse.cz>
5303
5304 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
5305 reference dumps if ddr is NULL or dependence is unknown.
5306
d9f903b8 53072008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
5308
5309 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
5310 unsigned extension into account.
5311 (ATOMIC_COMPARE_AND_SWAP): Likewise.
5312 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
5313 Do computations on a scratch register.
5314
71d9af81 53152008-03-21 Richard Guenther <rguenther@suse.de>
5316
5317 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
5318 Use is_gimple_min_invariant instead of TREE_INVARIANT.
5319 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
5320 * tree-ssa-dom.c (record_equality): Likewise.
5321 * tree-inline.c (copy_body_r): Likewise.
5322 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
5323 TREE_INVARIANT.
5324
5b54eabf 53252008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
5326
5327 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
5328 as 'delete_unused' argument.
5329
8ac2d49b 53302008-03-20 Richard Guenther <rguenther@suse.de>
5331
5332 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
5333 special casing of constant qualifiers.
5334 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
5335 care about them in general.
5336 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
5337 regardless of their type.
5338 (fold_stmt_r): Forcefully fold *& if we end up with that.
5339
9d6f81ac 53402008-03-20 Paul Brook <paul@codesourcery.com>
5341
5342 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
5343 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
5344 linker flags.
5345 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
5346 definition.
5347 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
5348 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
5349
f63eb5d3 53502008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
5351
5352 * common.opt (Wmudflap): New option.
5353 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
5354 (mx_register_decls): Likewise.
5355 (mudflap_finish_file): Likewise.
5356 * doc/invoke.texi: Document -Wno-mudflap.
5357
53582008-03-20 Kai Tietz <kai.tietz@onevision.com>
635c5a98 5359
5360 * c-format.c (replace_format_name_to_system_name): New.
5361 (cmp_attribs): New.
5362 (convert_format_name_to_system_name): New.
5363 (decode_format_attr): Add use of convert_format_name_to_system_name.
5364 (format_types_orig): Add gnu_ prefix to names.
5365 (check_format_info_main): Special treating of \0 escaped names for
5366 supporting multi-character format specifiers as I32, I64.
5367 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
5368 (gnu_target_overrides_format_attributes): New.
5369 * c-format.h: Add structure target_ovr_attr to hold
5370 system specific formatter names.
5371 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
5372 msformat-c.o file to c_target_objs and cxx_target_objs.
5373 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
5374 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
5375 (TARGET_N_FORMAT_TYPES): New.
5376 * config/i386/msformat-c.c: New.
5377 * config/i386/t-cygming: Add build rule for msformat-c.o.
5378 * doc/extend.texi: Add new format names gnu_* and ms_* and
5379 further details.
5380 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
5381
877e1093 53822008-03-20 Ira Rosen <irar@il.ibm.com>
5383
5384 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
5385 optimizations turned on under -O3.
5386 (ftree-vectorize): Add that the flag is turned on with -O3.
5387
73b5bf07 53882008-03-20 Ben Elliston <bje@au.ibm.com>
5389
5390 * regmove.c (try_auto_increment): Fix spelling error in comment.
5391 * final.c (final_scan_insn): Likewise.
5392
59047d58 53932008-03-20 Uros Bizjak <ubizjak@gmail.com>
5394
5395 PR target/14552
5396 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
5397 allocator preferences for "y" and "r" class registers.
5398 ("*mov<mode>_internal"): Ditto.
5399 ("*movv2sf_internal_rex64"): Ditto.
5400 ("*movv2sf_internal"): Ditto.
5401
c0e7e9f7 54022008-03-19 Michael Matz <matz@suse.de>
5403
5404 PR middle-end/35616
5405 * calls.c (expand_call): Check overlap of arguments with call
5406 address for sibcalls.
5407
bb51041c 54082008-03-19 Uros Bizjak <ubizjak@gmail.com>
5409
5410 PR target/35496
5411 * stor-layout.c (update_alignment_for_field): Set minimum alignment
5412 of the underlying type of a MS bitfield layout to the natural
5413 alignment of the type.
5414
20099e35 54152008-03-19 Jan Hubicka <jh@suse.cz>
5416
5417 PR other/35094
5418 * toplev.c (decode_d_option): Handle all CPP flags.
5419 * tree-vrp.c: Update tree_pass descriptors.
5420 * regrename.c: Update tree_pass descriptors.
5421 * fwprop.c: Update tree_pass descriptors.
5422 * doc/invoke.texi: Remove documentation of dropped -d? flags.
5423 * tree-into-ssa.c: Update tree_pass descriptors.
5424 * tree-dump.c: Update tree_pass descriptors.
5425 * tree-complex.c: Update tree_pass descriptors.
5426 * tree-dump.h: Update tree_pass descriptors.
5427 * see.c: Update tree_pass descriptors.
5428 * cgraphbuild.c: Update tree_pass descriptors.
5429 * tracer.c: Update tree_pass descriptors.
5430 * tree-loop-distribution.c: Update tree_pass descriptors.
5431 * cgraph.c: Update tree_pass descriptors.
5432 * postreload-gcse.c: Update tree_pass descriptors.
5433 * postreload.c: Update tree_pass descriptors.
5434 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
5435 * tree-tailcall.c: Update tree_pass descriptors.
5436 * tree-pass.h (tree_opt_pass): Rename to ...
5437 (opt_pass) ... this one; add "type" field and remove letter field.
5438 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
5439 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
5440 all_lowering_passes): Update declaration.
5441 * ipa-cp.c: Update tree_pass descriptors.
5442 * final.c: Update tree_pass descriptors.
5443 * omp-low.c: Update tree_pass descriptors.
5444 * tree-ssa-dse.c: Update tree_pass descriptors.
5445 * ipa-reference.c: Update tree_pass descriptors.
5446 * tree-ssa-uncprop.c: Update tree_pass descriptors.
5447 * auto-inc-dec.c: Update tree_pass descriptors.
5448 * reorg.c: Update tree_pass descriptors.
5449 * cgraphunit.c: Update tree_pass descriptors.
5450 * tree-ssa-copyrename.c: Update tree_pass descriptors.
5451 * tree-ssa-ccp.c: Update tree_pass descriptors.
5452 * df-core.c: Update tree_pass descriptors.
5453 * mode-switching.c: Update tree_pass descriptors.
5454 * tree-nomudflap.c: Update tree_pass descriptors.
5455 * modulo-sched.c: Update tree_pass descriptors.
5456 * ipa-pure-const.c: Update tree_pass descriptors.
5457 * cse.c: Update tree_pass descriptors.
5458 * web.c: Update tree_pass descriptors.
5459 * tree-stdarg.c: Update tree_pass descriptors.
5460 * tree-ssa-math-opts.c: Update tree_pass descriptors.
5461 * tree-ssa-dom.c: Update tree_pass descriptors.
5462 * tree-nrv.c: Update tree_pass descriptors.
5463 * tree-ssa-alias.c: Update tree_pass descriptors.
5464 * loop-init.c: Update tree_pass descriptors.
5465 * gimple-low.c: Update tree_pass descriptors.
5466 * ipa-inline.c: Update tree_pass descriptors.
5467 * tree-ssa-sink.c: Update tree_pass descriptors.
5468 * global.c: Update tree_pass descriptors.
5469 * ifcvt.c: Update tree_pass descriptors.
5470 * jump.c: Update tree_pass descriptors.
5471 * predict.c: Update tree_pass descriptors.
5472 * tree-ssa-loop.c: Update tree_pass descriptors.
5473 * recog.c: Update tree_pass descriptors.
5474 * dse.c: Update tree_pass descriptors.
5475 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
5476 * tree-eh.c: Update tree_pass descriptors.
5477 * regmove.c: Update tree_pass descriptors.
5478 * local-alloc.c
5479 * function.c: Update tree_pass descriptors.
5480 * tree-vectorizer.c: Update tree_pass descriptors.
5481 * gcse.c: Update tree_pass descriptors.
5482 * ipa-type-escape.c: Update tree_pass descriptors.
5483 * tree-if-conv.c: Update tree_pass descriptors.
5484 * init-regs.c: Update tree_pass descriptors.
5485 * ipa.c: Update tree_pass descriptors.
5486 * tree-ssa-phiopt.c: Update tree_pass descriptors.
5487 * rtl-factoring.c: Update tree_pass descriptors.
5488 * lower-subreg.c: Update tree_pass descriptors.
5489 * bt-load.c: Update tree_pass descriptors.
5490 * tree-dfa.c: Update tree_pass descriptors.
5491 * except.c: Update tree_pass descriptors.
5492 * emit-rtl.c: Update tree_pass descriptors.
5493 * cfgexpand.c: Update tree_pass descriptors.
5494 * tree-cfgcleanup.c: Update tree_pass descriptors.
5495 * cfgcleanup.c: Update tree_pass descriptors.
5496 * tree-ssa-pre.c: Update tree_pass descriptors.
5497 * tree-sra.c: Update tree_pass descriptors.
5498 * tree-mudflap.c: Update tree_pass descriptors.
5499 * tree-ssa-copy.c: Update tree_pass descriptors.
5500 * cfglayout.c: Update tree_pass descriptors.
5501 * tree-ssa-forwprop.c: Update tree_pass descriptors.
5502 * tree-ssa-dce.c: Update tree_pass descriptors.
5503 * tree-ssa.c: Update tree_pass descriptors.
5504 * regclass.c: Update tree_pass descriptors.
5505 * integrate.c: Update tree_pass descriptors.
5506 * tree-optimize.c: Update tree_pass descriptors.
5507 * tree-ssa-phiprop.c: Update tree_pass descriptors.
5508 * tree-object-size.c: Update tree_pass descriptors.
5509 * combine.c: Update tree_pass descriptors.
5510 * tree-outof-ssa.c: Update tree_pass descriptors.
5511 * bb-reorder.c: Update tree_pass descriptors.
5512 * stack-ptr-mod.c: Update tree_pass descriptors.
5513 * var-tracking.c: Update tree_pass descriptors.
5514 * tree-profile.c: Update tree_pass descriptors.
5515 * tree-vect-generic.c: Update tree_pass descriptors.
5516 * reg-stack.c: Update tree_pass descriptors.
5517 * sched-rgn.c: Update tree_pass descriptors.
5518 * tree-ssa-structalias.c: Update tree_pass descriptors.
5519 * tree-cfg.c: Update tree_pass descriptors.
5520 * passes.c (current_pass): Update declaration.
5521 (finish_optimization_passes): Update.
5522 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
5523 (register_one_dump_file, register_dump_files_1, next_pass_1):
5524 Update arguments.
5525 (init_optimization_passes): Update handling of new types.
5526 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
5527 * ipa-struct-reorg.c: Update tree_pass descriptors.
5528 * tree-ssa-reassoc.c: Update tree_pass descriptors.
5529 * combine-stack-adj.c: Update tree_pass descriptors.
5530 * cfgrtl.c: Update tree_pass descriptors.
5531 * dce.c: Update tree_pass descriptors.
5532 * tree-ssanames.c: Update tree_pass descriptors.
5533
25084579 55342008-03-19 Richard Guenther <rguenther@suse.de>
5535
5536 PR middle-end/35609
60f42188 5537 * tree-ssa.c (walk_data): New structure.
5538 (warn_uninitialized_var): If not always_executed warn with "maybe"
25084579 5539 instead of "is".
5540 (execute_early_warn_uninitialized): Compute post-dominators.
5541 Initialize always_executed before processing each basic block.
5542
671cfe26 55432008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
5544
5545 PR target/35504
5546 * config/i386/i386.c (x86_this_parameter): Calculate correct location
5547 of "this" pointer when "regparm = N" or "fastcall" is in effect.
5548
dd518ada 55492008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5550
5551 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
5552
dcfc697f 55532008-03-18 Paolo Bonzini <bonzini@gnu.org>
5554
671cfe26 5555 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
5556 is true.
5557 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
5558 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
5559 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
5560 target after ignore has been set, and move there also the commputation
5561 of subtarget and original_target.
5562 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
5563 (LANG_HOOKS_INITIALIZER): Remove it.
5564 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
dcfc697f 5565
b9e98b8a 55662008-03-18 Richard Guenther <rguenther@suse.de>
5567
5568 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
5569 found an expression with constants, note that in the VN for the lhs.
5570 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
5571 fold them to constants if possible. Run cleanup_cfg if done so.
5572 (execute_pre): Return todo.
5573 (do_pre): Likewise.
5574 (execute_fre): Likewise.
5575 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
5576 of constants.
5577 (get_prop_source_stmt): Look through pointer conversions.
5578
4a1849e3 55792008-03-18 Jan Hubicka <jh@suse.cz>
5580
5581 * tree-pretty-print.c: Include predict.h.
5582 (dump_generic_node): Dump predictor.
5583 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
5584 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
5585 * gimple-low.c (lower_stmt): Likewise.
5586 * expr.c (expand_expr_real): Likewise.
5587 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
5588 them.
5589 (build_predict_expr, build_predict_expr): New.
5590 * predict.h (predictor_name, build_predict_expr): Update.
5591 * c-typeck.c (c_finish_bc_stmt): Add prediction.
5592 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
5593 * predict.def (PRED_CONTINUE): Update hitrate.
5594 * tree.def (PREDICT_EXPR): Define.
5595 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
5596 do not handle BIND_EXPR.
5597 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
5598 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
5599 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
5600 operands.
5601
a6eaabef 56022008-03-18 Michael Matz <matz@suse.de>
5603
5604 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
5605
ffb04365 56062008-03-18 Richard Guenther <rguenther@suse.de>
5607
5608 * tree-gimple.h (is_gimple_invariant_address): Declare.
5609 (is_gimple_constant): Likewise.
5610 * tree-gimple.c (is_gimple_constant): New function.
5611 (is_gimple_invariant_address): Likewise.
5612 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
5613 and is_gimple_invariant_address.
5614 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
5615 previous change.
5616 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
5617 an addressable base.
5618
0c378ed9 56192008-03-18 Jakub Jelinek <jakub@redhat.com>
5620
5621 PR middle-end/35611
5622 * gimplify.c (gimplify_expr): Gimplify second operand of
5623 OMP_ATOMIC_LOAD.
5624
0b4a6afc 56252008-03-17 Richard Guenther <rguenther@suse.de>
5626
5627 PR tree-optimization/19637
5628 * fold-const.c (fold_unary): Remove restrictions of removing
5629 intermediate pointer-conversions (P2)(P1)P0.
5630 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
5631 conversion to void pointer.
5632 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
5633
e845094d 56342008-03-16 James E. Wilson <wilson@tuliptree.org>
5635
5636 PR debug/31510
5637 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
5638 emulated thread local variables.
5639
25080779 56402008-03-16 Richard Guenther <rguenther@suse.de>
5641
5642 PR middle-end/35607
5643 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5644 expand TREE_INVARIANT operations that are not gimple invariant.
5645
7290f090 56462008-03-16 Hans-Peter Nilsson <hp@axis.com>
5647
5648 * doc/extend.texi (Alignment): Say that the ABI controls
5649 the __alignof__ for non-strict-alignment targets rather
5650 than being a recommendation.
5651
49a83a87 56522008-03-15 Paul Brook <paul@codesourcery.com>
5653
5654 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
5655 annotations.
5656 (arm_output_fn_unwind): Mark functions that can not be unwound.
5657
72e333b2 56582008-03-15 Paul Brook <paul@codesourcery.com>
5659
5660 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
5661 extension instructions.
5662
04236c3a 56632008-03-15 Richard Guenther <rguenther@suse.de>
5664
5665 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
5666 and fold constant aggregate refs.
5667 (fold_const_aggregate_ref): Handle string constants
5668 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
5669 (evaluate_stmt): Simplify now that ccp_fold folds constant
5670 aggregate refs.
5671
8b054d5a 56722008-03-15 Paul Brook <paul@codesourcery.com>
5673
5674 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
5675 (extzv): Use gen_extzv_t2.
5676 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
5677
e004838d 56782008-03-15 Richard Guenther <rguenther@suse.de>
5679
5680 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
5681 (fold_const_aggregate_ref): Likewise.
5682 (get_value): Return NULL if we don't have any values.
5683 (ccp_finalize): Set const_val to NULL after freeing it.
5684 * tree-flow.h (get_symbol_constant_value): Declare.
5685 (fold_const_aggregate_ref): Likewise.
5686 * tree-ssa-sccvn.c (try_to_simplify): Use them.
5687
b7488229 56882008-03-15 Richard Guenther <rguenther@suse.de>
5689
5690 PR middle-end/35593
5691 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
5692 to not produce negative array indices if not allowed. Add
5693 parameter to indicate that.
5694 (maybe_fold_offset_to_component_ref): Allow negative array
5695 indices only for the first member of a structure.
5696 (maybe_fold_offset_to_reference): Allow negative array indices.
5697 (maybe_fold_stmt_addition): Likewise.
5698
90ef7269 56992008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
bb51041c 5700 Anatoly Sokolov <aesok@post.ru>
90ef7269 5701
1f93c018 5702 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
90ef7269 5703 (avr_arch): Add ARCH_AVR6.
5704 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5705 (initial_elimination_offset): Initialize and use 'avr_pc_size'
5706 instead of fixed value 2.
5707 (print_operand_address): Use gs() asm specifier instead of pm().
5708 (avr_assemble_integer): (Ditto.).
5709 (avr_output_addr_vec_elt): (Ditto.).
5710 (print_operand): Handle "!" code.
1f93c018 5711 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
90ef7269 5712 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
5713 (AVR_HAVE_EIJMP_EICALL): Define.
5714 (AVR_3_BYTE_PC): Redefine.
5715 (AVR_2_BYTE_PC): (Ditto.).
5716 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
5717 (LINK_SPEC): Add atmega2560 and atmega2561.
5718 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
5719 (crtm2561.o).
1f93c018 5720 * config/avr/avr.md (call_insn): Use eicall instead of icall
90ef7269 5721 for 3 byte PC devices.
5722 (call_value_insn): (Ditto.).
5723 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
5724 (indirect_jump): Use only for for 2 byte PC devices.
5725 (*tablejump): (Ditto.).
5726 (*indirect_jump_avr6): Add insn.
5727 (*tablejump_rjmp): Don't use for 3 byte PC devices.
1f93c018 5728 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
90ef7269 5729 instead of ijmp for 3 byte PC devices.
5730 (__tablejump2__): (Ditto.).
1f93c018 5731 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
90ef7269 5732 (MULITLIB_DIRNAMES): (Ditto.).
5733 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
5734
28a2ab9f 57352008-03-15 Uros Bizjak <ubizjak@gmail.com>
5736
5737 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
5738 "sse2_umulsidi3". Use V1DI mode for operand 0.
5739 ("mmx_psadbw"): Use V1DI mode for operand 0.
5740 * config/i386/i386-modes.def (V1SI): New vector mode.
5741 * config/i386/i386.c (struct builtin_description)
5742 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
5743 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
5744 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
5745 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
5746 v1di_ftype_v8qi_v8qi type.
5747 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
5748
5749 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
5750 __builtin_ia32_pmuludq]: Fix the mode of return value.
5751
a77a3698 57522008-03-15 Richard Guenther <rguenther@suse.de>
5753
5754 PR middle-end/35595
5755 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
5756 being a PHI_NODE.
5757
2c613040 57582008-03-14 Bob Wilson <bob.wilson@acm.org>
5759
5760 * doc/invoke.texi (Option Summary, Xtensa Options): Document
5761 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
5762 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
5763 unless TARGET_SERIALIZE_VOLATILE is enabled.
5764 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
5765 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
5766 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
5767
404d6be4 57682008-03-14 Richard Guenther <rguenther@suse.de>
5769
5770 PR tree-optimization/34172
5771 * tree-flow.h (refs_may_alias_p): Declare.
5772 (get_single_def_stmt): Likewise.
5773 (get_single_def_stmt_from_phi): Likewise.
5774 (get_single_def_stmt_with_phi): Likewise.
5775 * tree-dfa.c (refs_may_alias_p): New function.
5776 (get_single_def_stmt): Likewise.
5777 (get_single_def_stmt_from_phi): Likewise.
5778 (get_single_def_stmt_with_phi): Likewise.
5779 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
5780 (vn_reference_lookup_1): New helper function.
5781 (vn_reference_lookup): Walk the virtual use-def chain to
5782 continue searching for a match if the def does not alias the
5783 reference we are looking for.
5784
a7af6b24 57852008-03-14 David Edelsohn <edelsohn@gnu.org>
5786
5787 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
5788 archive and Perzl. Update The Written Word listing.
5789
1d9353f3 57902008-03-14 Richard Guenther <rguenther@suse.de>
5791
5792 PR tree-optimization/34043
5793 PR tree-optimization/33989
5794 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
5795 when doing FRE.
5796 (bitmap_find_leader): Use extra argument to verify dominance
5797 relationship inside a basic-block.
5798 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
5799 (find_leader_in_sets): Adjust.
5800 (create_component_ref_by_pieces): Take extra argument for
5801 dominance check, handle lookup failures.
5802 (find_or_generate_expression): Likewise.
5803 (create_expression_by_pieces): Likewise.
5804 (insert_into_preds_of_block): Adjust.
5805 (create_value_expr_from): If asked for, verify all operands
5806 are in the blocks AVAIL_OUT set.
5807 (make_values_for_stmt): Check for SSA_NAMEs that are life
5808 over an abnormal edge.
5809 (compute_avail): Remove such check.
5810 (do_SCCVN_insertion): New function.
5811 (eliminate): If we do not find a leader suitable for replacement
5812 insert a replacement expression from SCCVN if available.
5813 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
5814 (struct vn_ssa_aux): Add needs_insertion flag.
5815 * tree-ssa-sccvn.c (may_insert): New global flag.
5816 (copy_reference_ops_from_ref): Value-number union member access
5817 based on its size, not type and member if insertion is allowed.
5818 (visit_reference_op_load): For a weak match from union type
5819 punning lookup a view-converted value and insert a SSA_NAME
5820 for that value if that is not found.
5821 (visit_use): Make dumps shorter. Do not disallow value numbering
5822 SSA_NAMEs that are life over an abnormal edge to constants.
5823 (free_scc_vn): Release inserted SSA_NAMEs.
5824 (run_scc_vn): New flag to specify whether insertion is allowed.
5825 Process SSA_NAMEs in forward order.
5826 * tree-ssa-loop-im.c (for_each_index): Handle invariant
5827 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
5828 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
5829 pointer type to/from integral types that do not change the
5830 precision to regular conversions.
5831
c9f96750 58322008-03-13 Uros Bizjak <ubizjak@gmail.com>
5833
5834 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5835 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5836 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
5837 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
5b2ddfe1 5838 input arguments and the mode of return value. Built-in functions
5839 that operate on whole 64-bit MMX register now use V1DI mode.
c9f96750 5840
3992c686 58412008-03-13 Alon Dayan <alond@il.ibm.com>
5842 Olga Golovanevsky <olga@il.ibm.com>
5843
5844 PR tree-optimization/35041
5845 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
5846 to locate the right position in a statement.
5847
517b0286 58482008-03-13 Uros Bizjak <ubizjak@gmail.com>
5849
5850 PR target/34000
5851 PR target/35553
5852 * config/i386/xmmintrin.h: Change all static inline functions to
5853 extern inline and add __gnu_inline__ attribute.
5854 * config/i386/bmintrin.h: Ditto.
5855 * config/i386/smmintrin.h: Ditto.
5856 * config/i386/tmmintrin.h: Ditto.
5857 * config/i386/mmintrin-common.h: Ditto.
5858 * config/i386/ammintrin.h: Ditto.
5859 * config/i386/emmintrin.h: Ditto.
5860 * config/i386/pmmintrin.h: Ditto.
5861 * config/i386/mmintrin.h: Ditto.
5862 * config/i386/mm3dnow.h: Ditto.
5863
a4890dc9 58642008-03-13 Jakub Jelinek <jakub@redhat.com>
5865
5866 PR middle-end/35185
5867 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
5868 (lower_omp_2): New function.
5869 (lower_omp_1, lower_omp): Rewritten.
5870
ebba2dc7 58712008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
5872
5873 PR 35054
5874 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
5875 with the phrase "Microsoft Windows compilers".
5876 (Push/Pop Macro Pragmas): New subsection. Document
5877 #pragma push_macro and pragma pop_macro.
5878
1c4adc7a 58792008-03-12 Paul Brook <paul@codesourcery.com>
5880
5881 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
5882
1d9e8561 58832008-03-12 Paul Brook <paul@codesourcery.com>
5884
5885 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
5886 (thumb2_alusi3_short): Exclude PLUS and MINUS.
5887 (thumb2_addsi_shortim): Rename ...
5888 (thumb2_addsi_short): ... to this. Allow register operands.
5889 (thumb2_subsi_short): New pattern.
5890 (thumb2_one_cmplsi2_short,
5891 thumb2_negsi2_short): New patterns and peepholes.
5892
e077db18 58932008-03-12 Paul Brook <paul@codesourcery.com>
5894
e077db18 5895 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
5896
96b39775 58972008-03-12 Uros Bizjak <ubizjak@gmail.com>
5898
5899 * config/i386/i386.md (int_cond): New code iterator.
5900 (fp_cond): Ditto.
5901 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
5902 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
5903 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
5904 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
5905 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
5906 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
5907 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
5908 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
5909
bb21ed29 59102008-03-12 Paul Brook <paul@codesourcery.com>
5911
5912 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
5913 instead of {arm,thumb}_compute_save_reg_mask.
5914 (output_return_instruction): Ditto.
5915 (thumb_unexpanded_epilogue): Ditto.
5916 (thumb1_expand_prologue): Ditto.
5917 (thumb1_output_function_prologue): Ditto.
5918 (arm_set_return_address): Ditto.
5919 (thumb_set_return_address): Ditto.
5920 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
5921 regs to achieve stack alignment.
5922 (thumb1_compute_save_reg_mask): Fix compiler warning.
5923 (arm_output_epilogue): Use offsets->saved_regs_mask.
5924 Adjust stack pointer by poping call clobered registers.
5925 (arm_expand_prologue): Use offsets->saved_regs_mask.
5926 Adjust stack pointer by pushing extra registers.
a4890dc9 5927 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
bb21ed29 5928
92b2f241 59292008-03-12 Paolo Bonzini <bonzini@gnu.org>
5930
5931 PR tree-opt/35422
5932 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
5933 conversion to the operands of a multiplication.
5934
a2fd87ad 59352008-03-12 Richard Guenther <rguenther@suse.de>
5936
5937 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
5938 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
5939 * timevar.def (TV_TREE_PHIPROP): Add.
5940 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
5941 pass description. Use TV_TREE_PHIPROP.
5942 * tree-ssa-forwprop.c: Remove phiprop code.
5943
e8a588af 59442008-03-12 Jakub Jelinek <jakub@redhat.com>
5945
5946 PR middle-end/35549
5947 * omp-low.c (maybe_lookup_decl): Constify first argument.
5948 (use_pointer_for_field): Change last argument from bool to
5949 omp_context *. Disallow shared copy-in/out in nested
5950 parallel if decl is shared in outer parallel too.
5951 (build_outer_var_ref, scan_sharing_clauses,
5952 lower_rec_input_clauses, lower_copyprivate_clauses,
5953 lower_send_clauses, lower_send_shared_vars): Adjust callers.
5954
c6ba58f9 59552008-03-12 Victor Kaplansky <victork@il.ibm.com>
5956 Ira Rosen <irar@il.ibm.com>
5957
5958 * tree-vectorizer.c (free_stmt_vec_info): New function.
5959 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
5960 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
5961 * tree-vectorizer.h (free_stmt_vec_info): Declare.
5962 * tree-vect-transform.c (vectorizable_conversion): Free
5963 vec_oprnds0 if it was allocated.
5964 (vect_permute_store_chain): Remove unused VECs.
5965 (vectorizable_store): Free VECs that are allocated in the..
5966 function.
5967 (vect_transform_strided_load, vectorizable_load): Likewise.
5968 (vect_remove_stores): Simplify the code.
5969 (vect_transform_loop): Move code to vect_remove_stores().
5970 Call vect_remove_stores() and free_stmt_vec_info().
5971
feb01ed5 59722008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5973
5974 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
5975 TARGET_HPUX. Revise comment.
5976 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
5977 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
5978 Use sr4 variant of `be' instruction when not generating PIC code.
5979 (attr_length_call): Adjust for above change.
5980
6219f064 59812008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5982
5983 * ipa-reference.c (static_execute): Remove module_statics_const and
5984 associated setting code.
5985
47b5db9d 59862008-03-11 Uros Bizjak <ubizjak@gmail.com>
5987
5988 PR target/35540
5989 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
59047d58 5990 predicate for operand 1.
5991 (paritysi2_cmp): Use register_operand predicate for operand 2.
47b5db9d 5992 Use earlyclobber modifier for operand 1. Remove support for
5993 memory operands.
59047d58 5994 (paritydi2_cmp): Use register_operand predicate for operand 3.
47b5db9d 5995 Use earlyclobber modifier for operand 1. Remove support for
5996 memory operands.
5997
6640ca58 59982008-03-11 Paul Brook <paul@codesourcery.com>
47b5db9d 5999 Vladimir Prus <vladimir@codesourcery.com>
6640ca58 6000
6001 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
6002 (arm_compute_save_reg0_reg12_mask): Always
6003 check if register 11 must be saved. Always safe hard frame pointer
6004 when frame_pointer_needeed.
6005 (arm_compute_save_reg_mask): Save IP and PC
6006 only with apcs frames.
6007 (arm_output_epilogue): Adjust Thumb2 codepath to
6008 be also invoked and work for ARM non-apcs frames.
6009 (arm_expand_prologue): Don't bother saving IP
6010 for non-apcs frame, since it's not clobbered by
6011 prologue code. Implement non-apcs frame
6012 layout.
6013
8ae2fa3b 60142008-03-11 Paolo Bonzini <bonzini@gnu.org>
6015
6016 PR rtl-optimization/35281
6017 * expr.c (convert_move): Use a new pseudo for the intermediate
6018 from_mode->word_mode result.
6019
c616456b 60202008-03-11 Paolo Bonzini <bonzini@gnu.org>
6021
6640ca58 6022 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
6023 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
6024 * toplev.c (compile_file): Don't call it.
c616456b 6025
e06aee53 60262008-03-11 Uros Bizjak <ubizjak@gmail.com>
6027
6028 PR middle-end/35526
6029 * expr.c (store_expr): Call emit_block_move if the mode
6030 of "temp" RTX is BLKmode.
6031
06240723 60322008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
e06aee53 6033 Richard Guenther <rguenther@suse.de>
06240723 6034
6035 PR tree-optimization/31358
6036 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
6037 the step with a NULL_TREE.
6038 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
6039 to sizetype if type is a pointer type.
6040 (add_candidate_1): Don't convert the base and step to
6041 the generic type if the orginal type is a pointer type.
6042 (add_iv_value_candidates): Use sizetype for the step
6043 if type is a pointer type.
6044 (cand_value_at): Likewise.
6045 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
6046 for pointer types.
6047 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
6048 Don't convert the tem affine to the type.
6049 (add_elt_to_tree): Use sizetype for the step if a pointer.
6050 Use POINTER_PLUS_EXPR for pointers.
6051 (aff_combination_to_tree): Use sizetype for the step if a
6052 pointer.
6053
267858a7 60542008-03-10 Vladimir Makarov <vmakarov@redhat.com>
6055
6056 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
6057 Remove commutativity hint.
6058
b821e790 60592008-03-10 Jakub Jelinek <jakub@redhat.com>
6060
50389d5d 6061 PR c/35438
6062 PR c/35439
6063 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
6064 errorneous type. Check that v is a VAR_DECL.
6065
b821e790 6066 PR middle-end/35099
6067 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
6068
ff949d47 60692008-03-10 H.J. Lu <hongjiu.lu@intel.com>
6070
6071 PR tree-optimization/35494
6072 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
6073 may be overriden at link and run time.
6074
466e11c3 60752008-03-10 Richard Guenther <rguenther@suse.de>
6076
6077 PR tree-optimization/34677
6078 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
6079 (poolify_tree): Likewise.
6080 (modify_expr_template): Likewise.
6081 (poolify_modify_stmt): Likewise.
6082 (insert_fake_stores): Handle all component-ref style stores
6083 in addition to INDIRECT_REF. Also handle complex types.
6084 Do not poolify the inserted load.
6085 (realify_fake_stores): Do not rebuild the tree but only
6086 make it a SSA_NAME copy.
6087 (init_pre): Remove initialzation of modify_expr_template.
6088 Do not allocate modify_expr_node_pool.
6089 (fini_pre): Do not free modify_expr_node_pool.
6090
2c2d2f40 60912008-03-10 Paul Brook <paul@codesourcery.com>
6092
6093 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
6094 to avoid conflicts.
6095
934a1e72 60962008-03-10 Paul Brook <paul@codesourcery.com>
e06aee53 6097 Mark Shinwell <shinwell@codesourcery.com>
934a1e72 6098
934a1e72 6099 * config/arm/cortex-r4.md: New.
6100 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
6101 insn attributes.
6102 * config/arm/arm.md: Include cortex-r4.md.
6103 (insn): Add smmls, sdiv and udiv values.
6104 (generic_sched): Don't use generic scheduling for Cortex-R4.
6105 (arm_issue_rate): New function.
6106 (TARGET_SCHED_ISSUE_RATE): Define.
6107
767297d1 61082008-03-10 Sebastian Pop <sebastian.pop@amd.com>
6109
6110 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
6111
10bf6100 61122008-03-10 Richard Guenther <rguenther@suse.de>
6113
6114 * tree-ssa-pre.c (get_sccvn_value): Simplify.
6115 (compute_avail): Do not add stmt uses to AVAIL_OUT.
6116
550a64af 61172008-03-10 Paolo Bonzini <bonzini@gnu.org>
6118
6119 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
6120 Set default to true.
6121
2c3b9819 61222008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6123
6124 * c.opt (Wsynth): Deprecate.
6125 * doc/invoke.texi (Option Summary, Warning Options): Document
6126 -Wno-format-contains-nul.
6127
e2cb4221 61282008-03-09 Uros Bizjak <ubizjak@gmail.com>
6129
6130 PR target/35496
2f6e3388 6131 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
e2cb4221 6132 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
6133
5c93936e 61342008-03-09 Ira Rosen <irar@il.ibm.com>
6135
6136 * config/rs6000/rs6000.c (builtin_description): Rename vector
6137 left shift operations.
6138 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
6139 (altivec_vsl<VI_char>): Rename to ...
6140 (ashl<mode>3): ... new name.
6141 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
6142 gen_ashlv4si3.
6143 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
6144
a961cdc2 61452008-03-08 Richard Guenther <rguenther@suse.de>
6146
6147 * coverage.h (tree_coverage_counter_addr): Declare.
6148 * coverage.c (tree_coverage_counter_addr): New function.
6149 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
6150 before using again.
6151 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
6152 (tree_gen_one_value_profiler): Likewise.
6153 (tree_gen_ic_profiler): Likewise.
6154 (tree_gen_average_profiler): Likewise.
6155 (tree_gen_ior_profiler): Likewise.
6156
51a23cfc 61572008-03-08 Richard Guenther <rguenther@suse.de>
6158
6159 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
6160 (vn_binary_op_insert): Likewise.
6161 (vn_unary_op_lookup): Likewise.
6162 (vn_unary_op_insert): Likewise.
6163 (vn_nary_op_lookup): Declare.
6164 (vn_nary_op_insert): Likewise.
6165 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
6166 and binary hashes, use a single obstack for unary_op_pool
6167 and binary_op_pool.
6168 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
6169 a single struct vn_nary_op_s. Store tree code length and
6170 a variable number of operands.
6171 (struct vn_reference_op_struct): Remove unused op2.
6172 (vn_reference_op_eq): Do not compare op2.
6173 (vn_reference_op_compute_hash): Do not compute hash of op2.
6174 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
6175 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
6176 with vn_nary_op_compute_hash.
6177 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
6178 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
6179 vn_nary_op_lookup.
6180 (vn_unary_op_insert, vn_binary_op_insert): Replace with
6181 vn_nary_op_insert.
6182 (visit_unary_op): Call nary functions.
6183 (visit_binary_op): Likewise.
6184 (process_scc): Adjust for struct vn_tables_s changes.
6185 (allocate_vn_table): Likewise.
6186 (free_vn_table): Likewise.
6187 * tree-vn.c (vn_add): Call nary functions.
6188 (vn_lookup): Likewise.
6189
ce096d07 61902008-03-08 Jakub Jelinek <jakub@redhat.com>
6191
6192 PR target/35498
6193 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
6194 wdst back after sync_compare_and_swapqhi_internal.
6195
7916ca8a 61962008-03-08 Uros Bizjak <ubizjak@gmail.com>
6197
6198 PR target/22152
6199 * config/i386/i386-modes.def (V1DI): New vector mode.
6200 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
6201 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
6202 (MMXMODE248): Ditto.
6203 (MMXMODE): Add V1DI mode.
6204 (mmxvecsize): Change DI mode to V1DI mode.
6205 ("mov<mode>): Use MMXMODEI8 mode iterator.
6206 ("*mov<mode>_internal_rex64"): Ditto.
6207 ("*mov<mode>_internal"): Ditto.
6208 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
6209 ("mmx_sub<mode>3"): Ditto.
6210 ("mmx_adddi3"): Remove insn pattern.
6211 ("mmx_subdi3"): Ditto.
6212 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
6213 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
6214 ("mmx_ashl<mode>3"): Ditto.
6215 ("mmx_lshrdi3"): Remove insn pattern.
6216 ("mmx_ashldi3"): Ditto.
6217 * config/i386/i386.c (classify_argument): Handle V1DImode.
6218 (function_arg_advance_32): Ditto.
6219 (function_arg_32): Ditto.
6220 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
6221 mmx_addv1di3 insn pattern.
6222 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
6223 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
6224 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
6225 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
6226 Remove definitions of built-in functions.
6227 (V1DI_type_node): New node.
6228 (v1di_ftype_v1di_int): Ditto.
6229 (v1di_ftype_v1di_v1di): Ditto.
6230 (v2si_ftype_v2si_si): Ditto.
6231 (v4hi_ftype_v4hi_di): Remove node.
6232 (v2si_ftype_v2si_di): Ditto.
6233 (ix86_init_mmx_sse_builtins): Handle V1DImode.
6234 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
6235 Redefine builtins using def_builtin_const with *_ftype_*_int node.
6236 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
6237 Add new builtins using def_builtin_const.
6238 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
6239 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
6240 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
6241 * config/i386/mmintrin.h (__v1di): New typedef.
6242 (_mm_add_si64): Cast arguments to __v1di type.
6243 (_mm_sub_si64): Ditto.
6244 (_mm_sll_pi16): Cast __count to __v4hi type.
6245 (_mm_sll_pi32): Cast __count to __v2si type.
6246 (_mm_sll_si64): Cast arguments to __v1di type.
6247 (_mm_srl_pi16): Cast __count to __v4hi type.
6248 (_mm_srl_pi32): Cast __count to __v2si type.
6249 (_mm_srl_si64): Cast arguments to __v1di type.
6250 (_mm_sra_pi16): Cast __count to __v4hi type.
6251 (_mm_sra_pi32): Cast __count to __v2si type.
6252 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
6253 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
6254 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
6255 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
6256 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
6257 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
6258 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
6259 (_mm_srai_pi32): Use __builtin_ia32_psradi.
6260 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
6261 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6262 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6263 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
6264
4d170403 62652008-03-07 Joseph Myers <joseph@codesourcery.com>
6266
6267 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
6268
55100279 62692008-03-07 Peter Bergner <bergner@vnet.ibm.com>
6270
6271 PR target/35373
6272 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
6273 reg+const addressing for Altivec modes. Don't generate reg+reg
6274 addressing for TFmode or TDmode quantities.
6275
29f51994 62762008-03-07 Paolo Bonzini <bonzini@gnu.org>
6277
6278 * c-common.c (vector_types_convertible_p): Call langhook
6279 instead of comptypes.
6280
6e6e51e5 62812008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
6282
6283 PR tree-opt/35402
6284 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
6285 integral and scalar float variables which have a
6286 NULL DECL_INITIAL.
6287
bf2e2aa9 62882008-03-06 Nathan Froyd <froydnj@codesourcery.com>
6289
6290 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
6291 dwarf_register_span hook when emitting unwind information for
6292 register-to-memory saves.
6293 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
6294 (rs6000_frame_related): Remove call to spe_synthesize_frame.
6295
83c5f690 62962008-03-06 Jakub Jelinek <jakub@redhat.com>
6297
6298 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
6299 for the same VAR_DECL.
6300
167057eb 63012008-03-06 Tom Tromey <tromey@redhat.com>
6302
6303 * treelang: Delete.
6304 * doc/standards.texi (Standards): Don't mention treelang.
6305 * doc/invoke.texi (Overall Options): Don't mention treelang.
6306 * doc/install.texi (Prerequisites): Don't mention bison or
6307 treelang.
6308 (Configuration): Don't mention treelang.
6309 (Building): Likewise.
6310 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
6311
8178351b 63122008-03-06 Paolo Bonzini <bonzini@gnu.org>
6313
6314 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
6315 word-extractions out of a multi-word object.
6316
70337474 63172008-03-06 Richard Guenther <rguenther@suse.de>
6318
6319 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
6320 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
6321 result type and precision.
6322 * expr.c (get_inner_reference): Set unsignedp based on the result
6323 type of BIT_FIELD_REF.
6324 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
6325 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
6326 (try_instantiate_multiple_fields): Likewise. Use the correct type
6327 for BIT_FIELD_REF.
6328 (sra_build_assignment): Likewise.
6329 (sra_build_elt_assignment): Likewise.
6330 (sra_explode_bitfield_assignment): Likewise.
6331 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
6332 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
6333 set BIT_FIELD_REF_UNSIGNED.
6334 (vectorizable_load): Likewise.
6335
b357aba8 63362008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
6337
6338 * cse.c (cse_extended_basic_block): Invalidate artificial defs
6339 at bb start.
6340
1e020227 63412008-03-06 Richard Guenther <rguenther@suse.de>
6342
6343 * alias.c (struct alias_set_entry): Move has_zero_child field
6344 to pack with alias_set.
6345
4a8f8ebf 63462008-03-05 H.J. Lu <hongjiu.lu@intel.com>
6347
6348 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6349 32bit host.
6350
f701cb4d 63512008-03-05 Ian Lance Taylor <iant@google.com>
6352
6353 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
6354
957f873e 63552008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
30de5b55 6356
6357 * fwprop.c (update_df): Support width and offset parameters of
6358 df_ref_create.
6359 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
6360 global_conflicts): Change DF_REF_EXTRACT to either
6361 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
6362 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6363 * df-scan.c (df_ref_record, df_defs_record,
6364 df_ref_create_structure, df_def_record_1, df_uses_record,
6365 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
6366 df_bb_refs_collect, df_entry_block_defs_collect,
6367 df_exit_block_uses_collect): Support new width and offset fields.
6368 (ref_extract_pool): New storage pool.
6369 (df_free_ref): New function.
6370 (df_reg_chain_unlink, df_free_collection_rec,
6371 df_sort_and_compress_refs): Call df_free_ref.
6372 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
6373 of df_ref_extract.
6374 (df_ref_create_structure): Allocate df_ref_extract if offset and
6375 width fields are used.
6376 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
6377 (df_uses_record): Get offset and width from ZERO_EXTRACT
6378 and SIGN_EXTRACT.
6379 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
6380 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
6381 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6382 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
6383 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
6384 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6385 (df_ref_extract): New structure.
6386 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
6387 (df_ref_create): Add width and offset parameters.
6388
a306ee43 63892008-03-05 Richard Guenther <rguenther@suse.de>
6390
6391 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6392 Use ranges_overlap_p.
6393 (offset_overlaps_with_access): Rename
6394 to ranges_overlap_p and move ...
6395 * tree-flow-inline.h (ranges_overlap_p): ... here.
6396
6397 * tree.h (get_inner_reference, handled_component_p): Update
6398 comments.
6399
6400 * tree.h (record_component_aliases, get_alias_set,
6401 alias_sets_conflict_p, alias_sets_must_conflict_p,
6402 objects_must_conflict_p): Move declarations ...
6403 * alias.h (record_component_aliases, get_alias_set,
6404 alias_sets_conflict_p, alias_sets_must_conflict_p,
6405 objects_must_conflict_p): ... here.
6406 Include coretypes.h.
6407 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
6408
d03ba86f 64092008-03-05 Aldy Hernandez <aldyh@redhat.com>
6410
6411 * cfg.c: Include tree-flow.h.
6412 (remove_edge_raw): Call redirect_edge_var_map_clear.
6413 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
6414 * tree-flow-inline.h (redirect_edge_var_map_def): New.
6415 (redirect_edge_var_map_result): New.
6416 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
6417 PENDING_STMT use with redirect_edge_var_map_*.
6418 * tree-ssa.c (edge_var_maps): New definition.
6419 (redirect_edge_var_map_add): New.
6420 (redirect_edge_var_map_clear): New.
6421 (redirect_edge_var_map_dup): New.
6422 (redirect_edge_var_map_vector): New.
6423 (redirect_edge_var_map_destroy): New.
6424 (ssa_redirect_edge): Replace PENDING_STMT use with
6425 redirect_edge_var_map_*.
6426 (flush_pending_stmts): Same.
6427 (delete_tree_ssa): Destroy edge var map.
6428 * tree-flow.h (struct _edge_var_map): New.
6429 Define edge_var_map vector type.
6430 Declare redirect_edge_var_map_* prototypes.
6431 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
6432 * tree-cfg.c (reinstall_phi_args): Replace
6433 PENDING_STMT use with redirect_edge_var_map_*.
6434
7cf3d282 64352008-03-05 Richard Guenther <rguenther@suse.de>
6436
6437 PR tree-optimization/35472
6438 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
6439 whose single use_stmt has a overlapping set of loaded and
6440 stored symbols as that use_stmt might be a noop assignment then.
6441
2349cd3e 64422008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
6443
6444 * gthr-rtems.h: Implement __gthread_mutex_destroy.
6445
70d2daf7 64462008-03-05 Richard Guenther <rguenther@suse.de>
6447
6448 PR c++/35336
6449 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
6450 should be constants.
6451 * tree-cfg.c (verify_expr): Verify it.
6452 * fold-const.c (fold_truthop): Remove code generating
6453 BIT_FIELD_REFs of structure bases.
6454 (fold_binary): Likewise.
6455 (fold_ternary): Position and size of BIT_FIELD_REFs are
6456 always host integers.
6457 (make_bit_field_ref): Remove.
6458 (optimize_bit_field_compare): Remove.
6459 (all_ones_mask_p): Remove.
6460
a08778a2 64612008-03-05 Gabor Loki <loki@gcc.gnu.org>
6462
6463 PR gcc/33009
6464 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
6465 (split_block_and_df_analyze): New. Split basic block and rebuild
6466 dataflow.
6467 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
6468 SPLIT_BLOCK.
6469 (split_pattern_seq): Likewise.
6470 (erase_matching_seqs): Likewise.
6471 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
6472
ad7c187a 64732008-03-04 Geoff Keating <geoffk@apple.com>
6474
6475 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
6476 declaration and code.
6477 (tree_invalid_nonnegative_warnv_p): Likewise.
6478
57c56476 64792008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
6480
6481 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
6482 examples. Truncate option-names then causing overfull hbox.
6483
d4f869a6 64842008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6485
6486 PR target/35222
6487 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
6488 on hpux10.
6489 * configure: Rebuilt.
6490
ea1a85df 64912008-03-04 Rafael Espindola <espindola@google.com>
6492
6493 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
6494 (tree_unary_nonnegative_warnv_p): New.
6495 (tree_binary_nonnegative_warnv_p): New.
6496 (tree_single_nonnegative_warnv_p): New.
6497 (tree_invalid_nonnegative_warnv_p): New.
6498 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
6499
88d4fcc4 65002008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6501
6502 PR 28322
6503 * opts.c (handle_option): Postpone 'unknown option' errors only for
6504 warning options.
6505
f98d7ce9 65062008-03-04 H.J. Lu <hongjiu.lu@intel.com>
6507
6508 PR target/35453
6509 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
6510 (_SIDD_XXX): This.
6511
937bceaf 65122008-03-04 Rafael Espindola <espindola@google.com>
6513
6514 * fold-const.c (tree_unary_nonzero_warnv_p): New.
6515 (tree_binary_nonzero_warnv_p): New.
6516 (tree_single_nonzero_warnv_p): New.
6517 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
6518
01e93ec4 65192008-03-04 Uros Bizjak <ubizjak@gmail.com>
6520
6521 PR middle-end/35456
6522 * fold-const.c (fold_cond_expr_with_comparison): Prevent
6523 transformations for modes that have signed zeros.
6524 * ifcvt.c (noce_try_abs): Ditto.
6525
cfb92464 65262008-03-04 Joseph Myers <joseph@codesourcery.com>
6527
6528 * config/i386/i386.c (override_options): Force
6529 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
6530
fb1b7d77 65312008-03-04 Jan Hubicka <jh@suse.cz>
6532
6533 PR c++/35262
6534 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
6535 in last commit.
6536
9b980db1 65372008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
6538
6539 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
bb51041c 6540 label to probe the stack.
9b980db1 6541
abefb712 65422008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
6543
6544 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
6545 (__gthr_win32_mutex_destroy): Declare.
6546 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
6547 __gthr_win32_mutex_destroy.
6548 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
6549
99e909be 65502008-03-03 Jan Hubicka <jh@suse.cz>
6551
6552 PR c++/35262
6553 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
6554 aggressive on inlining cold calls.
6555
802d9f2f 65562008-03-03 Richard Guenther <rguenther@suse.de>
6557
6558 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
6559 struct copies into the expression table.
6560 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
6561 (try_to_simplify): Likewise.
6562 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
6563 integral and pointer arguments which do not change the
6564 precision to NOP_EXPRs.
6565 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
6566 VIEW_CONVERT_EXPR case.
6567
663608f5 65682008-03-02 Sebastian Pop <sebastian.pop@amd.com>
6569
6570 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
6571 defined in a loop at depth 0 is invariant.
6572 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
6573 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
6574 be called at loop depth 0.
6575
e46a4556 65762008-03-02 Jakub Jelinek <jakub@redhat.com>
6577
6578 PR driver/35420
6579 * gcc.c (process_command): Update copyright notice dates.
6580 * gcov.c (print_version): Likewise.
6581 * gcov-dump.c (print_version): Likewise.
6582 * mips-tfile.c (main): Likewise.
6583 * mips-tdump.c (main): Likewise.
6584
07317e69 65852008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6586
6587 PR 24924
6588 * c-common.c (flag_permissive): Delete.
6589 (constant_expression_warnings): Check flags first.
6590 (constant_expression_error): New.
6591 * c-common.h (flag_permissive): Delete.
6592 (constant_expression_error): Declare.
6593 * flags.h (flag_permissive): Declare. Update description.
6594 * diagnostic.c (pedwarn): Update.
6595 (permerror): New.
6596 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
6597 (permissive_error_kind): New.
6598 * toplev.c (flag_permissive): Define. Update description.
6599 * toplev.h (permissive_error_kind): Declare.
6600 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
6601 (pedwarn_c90): Use pedantic_warning_kind.
6602 * c-opts.c (c_common_post_options): flag_permissive does not affect
6603 flag_pedantic_errors.
6604
462a0c31 66052008-03-02 Joseph Myers <joseph@codesourcery.com>
6606
6607 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
6608 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
6609 __absvsi2, __absvDI2): Use unsigned arithmetic.
6610
64cf91f5 66112008-03-02 Andi Kleen <ak@suse.de>
e06aee53 6612 Richard Guenther <rguenther@suse.de>
64cf91f5 6613
6614 * struct-equiv.c: Remove file.
6615 * cfg_cleanup.c (condjump_equiv_p): Remove.
6616 * Makefile.in (OBJS-common): Remove struct-equiv.o.
6617 (struct-equiv.o): Remove rule.
6618 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
6619 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
6620 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
6621
ba0b5cfc 66222008-03-01 Alexandre Oliva <aoliva@redhat.com>
6623
6624 * ifcvt.c (noce_process_if_block): Try to handle only the then
6625 block if the else block exists but isn't suitable.
6626
71239661 66272008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
6628
6629 PR gcc/35063
6630 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
6631 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
6632 regression from previous patch.
6633
1cd3a344 66342008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
6635
6636 PR gcc/35063
6637 * gthr.h: Add __gthread_mutex_destroy as a function that must be
6638 implemented.
6639 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
6640 * gthr-single.h (__gthread_mutex_destroy): Likewise.
6641 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
6642 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
6643 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
6644 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
6645 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
6646 (__gthread_mutex_destroy_function): Rename to
6647 __gthread_mutex_destroy.
6648 * gthr-dce.h (__gthread_mutex_destroy): Call
6649 pthread_mutex_destroy.
6650 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
6651 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
6652 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
6653
a2bdd643 66542008-03-01 Alexandre Oliva <aoliva@redhat.com>
6655
6656 * df-scan.c (df_ref_chain_change_bb): Simplify.
6657 (df_insn_change_bb): Add new_bb argument. Simplify. Call
6658 set_block_for_insn if there's any change.
6659 * df.h ((df_insn_change_bb): Fix prototype.
6660 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
6661 df_insn_change_bb, don't call set_block_for_insn.
6662 * emit-rtl.c (reorder_insns): Likewise.
6663 * haifa-sched.c (move_insn): Likewise.
6664
c8707f08 66652008-03-01 Alexandre Oliva <aoliva@redhat.com>
6666
6667 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
6668
200ad982 66692008-03-01 Alexandre Oliva <aoliva@redhat.com>
6670
6671 * tree-flow-inline.h (next_readonly_imm_use): Return
6672 NULL_USE_OPERAND_P after the end.
6673
0045e505 66742008-03-01 Richard Guenther <rguenther@suse.de>
6675
6676 PR tree-optimization/35411
6677 * tree-sra.c (sra_build_assignment): Split conversion to
6678 final type to a separate statement if we are not assigning
6679 to a register.
6680
4a2f7014 66812008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
6682
6683 * fold-const.c (fold_convertible_p): Correct the logic to follow
6684 that in fold_convert().
6685
e8e0078c 66862008-02-29 Douglas Gregor <doug.gregor@gmail.com>
6687
6688 PR c++/35315
6689 * tree-inline.c (build_duplicate_type): When we make a
6690 duplicate type, make it unique in the canonical types system.
6691
26cb3d1c 66922008-02-29 Tom Tromey <tromey@redhat.com>
6693
6694 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
6695 input_file_stack_history, input_file_stack_restored): Remove.
6696 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6697 * input.h (struct file_stack): Remove.
6698 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6699 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
6700 Likewise.
6701 * diagnostic.h (struct diagnostic_context) <last_module>: Change
6702 type.
6703 (diagnostic_last_module_changed): Add 'map' argument.
6704 (diagnostic_set_last_function): Likewise.
6705 * diagnostic.c (undiagnostic_report_current_module): Iterate using
6706 line map, not input_file_stack.
6707 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
6708
a09d6770 67092008-02-29 Paul Brook <paul@codesourcery.com>
6710
6711 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
6712
a7aa526d 67132008-02-29 Paul Brook <paul@codesourcery.com>
6714
6715 * config/arm/ieee754-df.S (muldf3): Use RET macros.
6716
d4cdfd27 67172008-02-29 Richard Guenther <rguenther@suse.de>
6718
6719 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
6720 vn_lookup_or_add.
6721 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
6722 value for comparing for a store match.
6723 (simplify_unary_expression): Do nothing for SSA_NAMEs.
6724 (try_to_simplify): Do not do a full-blown reference lookup.
6725
607ac910 67262008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
6727
6728 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
6729 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
6730
6731 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
6732
2fcf1fbb 67332008-02-29 Sebastian Pop <sebastian.pop@amd.com>
6734
6735 * tree-loop-linear.c (try_interchange_loops): Compare memory access
6736 strides against cache sizes.
6737
583c0935 67382008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
6739
6740 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
6741 constant to fpul.
6742
ad76ccf5 67432008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
6744
6745 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
6746 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
6747 is smaller than the original promoted value.
6748 (simplify_subreg): If OP is a SUBREG, try to preserve its
6749 SUBREG_PROMOTED_VAR_P information.
6750
b9584939 67512008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
6752
6753 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
6754 (VN_INFO_GET): Allocate new objects on the obstack.
6755 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
6756 for rpo_numbers_temp, for consistency.
6757 (free_scc_vn): Free the obstack.
6758
801c5610 67592008-02-28 Sebastian Pop <sebastian.pop@amd.com>
6760
6761 * doc/invoke.texi: Document -ftree-loop-distribution.
6762 * tree-loop-distribution.c: New.
6763 * tree-pass.h (pass_loop_distribution): New.
6764 * graphds.h (struct graph): Add htab_t indices.
6765 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
6766 * tree-vectorizer.c (rename_variables_in_loop): Extern.
6767 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
6768 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
6769 * tree-data-ref.c (debug_data_dependence_relations): New.
6770 (dump_data_dependence_relation): Also print data references.
6771 (free_data_ref): Extern.
6772 (same_access_functions): Moved...
6773 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
6774 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6775 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
6776 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
6777 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
6778 (stmts_from_loop): Skip LABEL_EXPR.
01e93ec4 6779 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
6780 New.
801c5610 6781 (build_rdg): Initialize rdg->indices htab.
6782 (free_rdg, stores_from_loop, ref_base_address,
6783 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
6784 have_similar_memory_accesses_1, ref_base_address_1,
6785 remove_similar_memory_refs): New.
6786 * tree-data-ref.h: Depend on tree-chrec.h.
6787 (debug_data_dependence_relations, free_data_ref): Declared.
6788 (same_access_functions): ... here.
01e93ec4 6789 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
6790 New.
801c5610 6791 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
6792 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
6793 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
6794 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6795 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
6796 rdg_vertex_for_stmt): Declared.
6797 (struct rdg_edge): Add level.
6798 (RDGE_LEVEL): New.
6799 (free_rdg, stores_from_loop, remove_similar_memory_refs,
01e93ec4 6800 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
6801 Declared.
801c5610 6802 (rdg_has_similar_memory_accesses): New.
6803 * tree-vect-analyze.c: Remove unused static decls.
6804 * lambda.h (dependence_level): New.
6805 * common.opt (ftree-loop-distribution): New.
6806 * tree-flow.h (mark_virtual_ops_in_bb,
6807 slpeel_tree_duplicate_loop_to_edge_cfg,
6808 rename_variables_in_loop): Declared.
6809 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
6810 (OBJS-common): Add tree-loop-distribution.o.
6811 (tree-loop-distribution.o): New rule.
6812 * tree-cfg.c (mark_virtual_ops_in_bb): New.
6813 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
6814 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
6815
9c467f13 68162008-02-28 Joseph Myers <joseph@codesourcery.com>
6817
6818 PR target/33963
6819 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
6820 other than structures and unions.
6821
c0ff55b3 68222008-02-28 Richard Guenther <rguenther@suse.de>
6823
6824 Revert:
6825 2008-02-26 Richard Guenther <rguenther@suse.de>
6826
6827 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6828 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6829 (lookup_decl_from_uid): Declare.
6830 (remove_decl_from_map): Likewise.
6831 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6832 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6833 (decl_for_uid_map): New global hashtable mapping DECL_UID
6834 to the decl tree.
6835 (init_ttree): Allocate it.
6836 (insert_decl_to_uid_decl_map): New helper function.
6837 (make_node_stat): Insert new decls into the map.
6838 (copy_node_stat): Likewise.
6839 (lookup_decl_from_uid): New function.
6840 (remove_decl_from_map): Likewise.
6841 (print_decl_for_uid_map_statistics): New helper.
6842 (dump_tree_statistics): Call it.
6843
6844 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6845 (referenced_var_iterator): Adjust.
6846 (FOR_EACH_REFERENCED_VAR): Adjust.
6847 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6848 (num_referenced_vars): Adjust.
6849 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6850 (first_referenced_var): Remove.
6851 (end_referenced_vars_p): Likewise.
6852 (next_referenced_var): Likewise.
6853 (referenced_var_iterator_set): New helper function.
6854 * tree-dfa.c (referenced_var_lookup): Adjust.
6855 (referenced_var_check_and_insert): Likewise.
6856 (remove_referenced_var): Likewise.
6857 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6858 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6859 (verify_call_clobbering): Likewise.
6860 (verify_memory_partitions): Likewise.
6861 (init_tree_ssa): Allocate bitmap instead of hashtable for
6862 referenced_vars.
6863 (delete_tree_ssa): Adjust.
6864 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6865 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6866 (compute_tag_properties): Likewise.
6867 (set_initial_properties): Likewise.
6868 (find_partition_for): Likewise.
6869 (update_reference_counts): Likewise.
6870 (dump_may_aliases_for): Likewise.
6871 * tree-ssa-operands.c (add_virtual_operand): Likewise.
6872 (add_call_clobber_ops): Likewise.
6873 (add_call_read_ops): Likewise.
6874 (get_asm_expr_operands): Likewise.
6875 * tree-into-ssa.c (dump_decl_set): Likewise.
6876 (update_ssa): Likewise.
6877 * tree-sra.c (scan_function): Likewise.
6878 (decide_instantiations): Likewise.
6879 (scalarize_parms): Likewise.
6880 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6881 (dsa_named_for): Likewise.
6882 * tree-ssa-structalias.c (update_alias_info): Likewise.
6883 (merge_smts_into): Likewise.
6884
16b35285 68852008-02-27 David Daney <ddaney@avtrex.com>
6886
6887 PR target/34409
6888 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
6889 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
6890 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
6891 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
6892 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
6893
d243d9c9 68942008-02-27 Uros Bizjak <ubizjak@gmail.com>
6895
6896 PR target/25477
6897 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
6898 (BUILT_IN_NEXTTOWARD): Remove.
6899 (BUILT_IN_NEXTTOWARDF): Ditto.
6900 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
6901 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
6902
de9ebaea 69032008-02-27 Tom Tromey <tromey@redhat.com>
6904
6905 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
6906 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
6907
5f398d1f 69082008-02-27 Jan Beulich <jbeulich@novell.com>
6909
6910 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
6911 update the respective field on newdecl.
6912
9cc5df33 69132008-02-27 Revital Eres <eres@il.ibm.com>
6914
6915 PR rtl-optimization/34999
6916 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
6917 crossing edges that ends with a call insn.
6918 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
6919 call insn and clear the EDGE_CROSSING flag of the crossing edge
6920 when fixing fallthru edges.
6921
c2f5179d 69222008-02-27 Richard Guenther <rguenther@suse.de>
6923
c0ff55b3 6924 PR middle-end/35390
c2f5179d 6925 * fold-const.c (fold_unary): Return the correct argument,
6926 converted to the result type.
6927
6295ca72 69282008-02-27 Richard Guenther <rguenther@suse.de>
6929
6930 PR middle-end/34971
6931 * expr.c (expand_expr_real_1): Assert on rotates that operate
6932 on partial modes.
6933 * fold-const.c (fold_binary): Use the types precision, not the
6934 bitsize of the mode if folding rotate expressions. Build rotates
6935 only for full modes.
6936
146a4308 69372008-02-27 Jakub Jelinek <jakub@redhat.com>
6938
6939 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
6940 and CPP_PRAGMA_EOL.
6941 * c-pragma.c (pragma_ns_name): New typedef.
6942 (registered_pp_pragmas): New variable.
6943 (c_pp_lookup_pragma): New function.
6944 (c_register_pragma_1): If flag_preprocess_only, do nothing
6945 for non-expanded pragmas, for expanded ones push pragma's
6946 namespace and name into registered_pp_pragmas vector.
6947 (c_invoke_pragma_handler): Register OpenMP pragmas even when
6948 flag_preprocess_only, don't register GCC pch_preprocess
6949 pragma if flag_preprocess_only.
6950 * c-opts.c (c_common_init): Call init_pragma even if
6951 flag_preprocess_only.
6952 * c-pragma.c (c_pp_lookup_pragma): New prototype.
6953 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
6954 cpp_register_pragma if flag_preprocess_only.
6955
784c0df4 69562008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6957
6958 PR c/28800
6959 * c-parser.c (c_parser_translation_unit): Warn for empty
6960 translation unit, not empty source file.
6961
aaa37ad6 69622008-02-26 Paul Brook <paul@codesourcery.com>
6963
6964 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
6965 operand for Thumb-2.
6966 * config/arm/arm.h (reg_class): Add CORE_REGS.
6967 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
6968 (BASE_REG_CLASS): Use CORE_REGS.
6969 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
6970 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
6971 (REGNO_OK_FOR_INDEX_P): Exclude SP.
6972 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
6973 ARM_REGNO_OK_FOR_INDEX_P.
6974 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
6975 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
6976 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
6977 (ldm/stm peepholes): Ditto.
6978 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
6979 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
6980 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
6981 * config/arm/constraints.md: Enable "k" constraint on ARM.
6982
7effebe0 69832008-02-27 Ben Elliston <bje@au.ibm.com>
6984
6985 * config/rs6000/rs6000.c: Annotate cache line size field in all
6986 instances of struct processor_costs.
6987
4ff06051 69882008-02-26 David Edelsohn <edelsohn@gnu.org>
6989
6990 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
6991 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
6992 jump_bypass): New counters.
6993 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
6994 * dce.c (gate_ud_dce): Same.
6995 (gate_fast_dce): Same.
6996 * dse.c (gate_dse1): New function.
6997 (gate_dse2): New function.
6998 (gate_dse): Merge results of new gate functions.
6999 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
7000 (gate_handle_jump_bypass): Add dbg_cnt.
7001 (gate_handle_gcse): Add dbg_cnt.
7002 * ifcvt.c (gate_handle_if_conversion): Same.
7003 (gate_handle_if_after_combine): Same.
7004 (gate_handle_if_after_reload): Same.
7005 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
7006
0fc88469 70072008-02-26 Edmar Wienskoski <edmar@freescale.com>
7008
7009 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
7010 line sizes.
7011 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
7012
3ef0a05e 70132008-02-26 Jason Merrill <jason@redhat.com>
7014
7015 PR c++/35315
7016 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
7017 alone if it's the naming decl for the type's main variant.
7018
9c85a98a 70192008-02-26 Tom Tromey <tromey@redhat.com>
7020
7021 * system.h (USE_MAPPED_LOCATION): Poison.
7022 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
7023 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
7024 (make_goto_expr_edges): Likewise.
7025 (remove_bb): Likewise.
7026 (execute_warn_function_return): Likewise.
7027 * basic-block.h (struct edge_def) <goto_locus>: Change type to
7028 location_t.
7029 * c-common.c (fname_decl): Remove old location code.
7030 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
7031 location code.
7032 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
7033 variant.
7034 (ASM_INPUT_SOURCE_LOCATION): Likewise.
7035 (gen_rtx_ASM_INPUT): Likewise.
7036 (gen_rtx_ASM_INPUT_loc): Likewise.
7037 (get_rtx_asm_OPERANDS): Remove.
7038 * cfglayout.c (insn_locators_alloc): Remove old location code.
7039 (set_curr_insn_source_location): Likewise.
7040 (curr_insn_locator): Likewise.
7041 * print-tree.c (print_node): Remove old location code.
7042 * tree-mudflap.c (mf_varname_tree): Remove old location code.
7043 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
7044 * cfgexpand.c (expand_gimple_cond_expr): Don't use
7045 location_from_locus.
7046 (construct_exit_block): Remove old location code.
7047 * emit-rtl.c (force_next_line_note): Remove old location code.
7048 * profile.c (branch_prob): Remove old location code.
7049 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
7050 LOC_LINE): Remove old-location variants.
7051 * langhooks.c (lhd_print_error_function): Remove old location
7052 code.
7053 * configure, config.in: Rebuilt.
7054 * configure.ac (--enable-mapped-location): Remove.
7055 * c-decl.c (c_init_decl_processing): Remove old location code.
7056 (finish_function): Likewise.
7057 * recog.c (decode_asm_operands): Remove old location code.
7058 * c-pch.c (c_common_read_pch): Remove old location code.
7059 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
7060 variants.
7061 * gimple-low.c (lower_function_body): Remove old location code.
7062 * toplev.c (unknown_location): Remove.
7063 (push_srcloc): Remove old-location variant.
7064 (process_options): Remove old location code.
7065 (lang_dependent_init): Likewise.
7066 * input.h (UNKNOWN_LOCATION): Move definition.
7067 (location_t): Undeprecate.
7068 (source_locus): Remove.
7069 (location_from_locus): Remove.
7070 (struct location_s): Remove.
7071 Remove all old-location code.
7072 (input_line, input_filename): Remove.
7073 * final.c (final_scan_insn): Remove old location code.
7074 * diagnostic.c (diagnostic_build_prefix): Remove
7075 USE_MAPPED_LOCATION test.
7076 * tree.h (gimple_stmt) <locus>: Now a location_t.
7077 (tree_exp) <locus>: Likewise.
7078 (DECL_IS_BUILTIN): Remove old-location variant.
7079 (annotate_with_file_line, annotate_with_locus): Likewise.
7080 (expr_locus, set_expr_locus): Update.
7081 * tree.c (build1_stat): Remove old location code.
7082 (last_annotated_node): Remove.
7083 (annotate_with_file_line): Remove old-location variant.
7084 (annotate_with_locus): Likewise.
7085 (expr_location): Remove old location code.
7086 (set_expr_location): Likewise.
7087 (expr_has_location): Likewise.
7088 (expr_locus): Likewise.
7089 (set_expr_locus): Likewise.
7090 (expr_filename): Don't use location_from_locus.
7091 (expr_lineno): Likewise.
7092 * rtl-error.c (location_for_asm): Remove old location code.
7093 * c-lex.c (cb_line_change): Remove old location code.
7094 (fe_file_change): Likewise.
7095 (cb_def_pragma): Likewise.
7096 (c_lex_with_flags): Likewise.
7097 * gengtype.c (do_typedef): Don't special-case location types.
7098 (define_location_structures): Remove.
7099 (main): Don't call define_location_structures.
7100 * tree-pretty-print.c (dump_implicit_edges): Remove old location
7101 code.
7102
c0394294 71032008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7104
bb51041c 7105 PR 26264
c0394294 7106 * builtins.def (BUILT_IN_STDARG_START): Remove.
7107 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
7108 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
7109 * tree-inline.c (inline_forbidden_p_1): Likewise.
7110
20308404 71112008-02-26 Richard Guenther <rguenther@suse.de>
7112
7113 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7114 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7115 (lookup_decl_from_uid): Declare.
7116 (remove_decl_from_map): Likewise.
7117 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7118 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7119 (decl_for_uid_map): New global hashtable mapping DECL_UID
7120 to the decl tree.
7121 (init_ttree): Allocate it.
7122 (insert_decl_to_uid_decl_map): New helper function.
7123 (make_node_stat): Insert new decls into the map.
7124 (copy_node_stat): Likewise.
7125 (lookup_decl_from_uid): New function.
7126 (remove_decl_from_map): Likewise.
7127 (print_decl_for_uid_map_statistics): New helper.
7128 (dump_tree_statistics): Call it.
7129
7130 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7131 (referenced_var_iterator): Adjust.
7132 (FOR_EACH_REFERENCED_VAR): Adjust.
7133 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7134 (num_referenced_vars): Adjust.
7135 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7136 (first_referenced_var): Remove.
7137 (end_referenced_vars_p): Likewise.
7138 (next_referenced_var): Likewise.
7139 (referenced_var_iterator_set): New helper function.
7140 * tree-dfa.c (referenced_var_lookup): Adjust.
7141 (referenced_var_check_and_insert): Likewise.
7142 (remove_referenced_var): Likewise.
7143 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7144 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7145 (verify_call_clobbering): Likewise.
7146 (verify_memory_partitions): Likewise.
7147 (init_tree_ssa): Allocate bitmap instead of hashtable for
7148 referenced_vars.
7149 (delete_tree_ssa): Adjust.
7150 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7151 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7152 (compute_tag_properties): Likewise.
7153 (set_initial_properties): Likewise.
7154 (find_partition_for): Likewise.
7155 (update_reference_counts): Likewise.
7156 (dump_may_aliases_for): Likewise.
7157 * tree-ssa-operands.c (add_virtual_operand): Likewise.
7158 (add_call_clobber_ops): Likewise.
7159 (add_call_read_ops): Likewise.
7160 (get_asm_expr_operands): Likewise.
7161 * tree-into-ssa.c (dump_decl_set): Likewise.
7162 (update_ssa): Likewise.
7163 * tree-sra.c (scan_function): Likewise.
7164 (decide_instantiations): Likewise.
7165 (scalarize_parms): Likewise.
7166 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7167 (dsa_named_for): Likewise.
7168 * tree-ssa-structalias.c (update_alias_info): Likewise.
7169 (merge_smts_into): Likewise.
7170
75130fc7 71712008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7172
7173 PR 34351
7174 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
7175 * c-opts.c (c_common_handle_option): Wall enables
7176 Wvolatile-register-var.
7177 * common.opt: Move Wvolatile-register-var to...
7178 * c.opt: ...here.
7179
17c66687 71802008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7181
7182 * common.opt (Wlarger-than=): New.
7183 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
7184 -Wlarger-than=.
7185 * opts.c (common_handle_option): Handle -Wlarger-than=.
7186 * optc-gen.awk: Likewise.
7187 * opth-gen.awk: Likewise.
7188 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
7189 * tree-optimize.c (tree_rest_of_compilation): Likewise.
7190
6cbbbc89 71912008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7192
7193 * c-common.c (match_case_to_enum_1): Add appropriate
7194 OPT_W* parameter to warning.
7195 (c_do_switch_warnings): Likewise.
7196 * c-typeck.c (warning_init): Add one more parameter following
7197 'warning' function.
7198 (push_init_level): Update call to warning_init.
7199 (pop_init_level): Likewise.
7200 (add_pending_init): Likewise.
7201 (output_init_element: Likewise.
7202
ddb48b82 72032008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7204
7205 PR 28322
7206 * toplev.c (toplev_main): If there are warnings or error, print
7207 errors for ignored options.
7208 * opts.c (ignored_options): New static variable.
7209 (postpone_unknown_option_error): New.
7210 (print_ignored_options): New.
7211 (handle_option): Postpone errors for unknown -Wno-* options.
7212 * opts.h (print_ignored_options): Declare.
7213
7ecd9299 72142008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
7215
7216 * config/mips/mips.md (loadgp_blockage, blockage): Change type
7217 to "ghost".
7218
3a0e28bd 72192008-02-25 Richard Guenther <rguenther@suse.de>
7220
7221 Revert:
7222 2008-02-25 Richard Guenther <rguenther@suse.de>
7223
7224 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7225 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7226 (lookup_decl_from_uid): Declare.
7227 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7228 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7229 (decl_for_uid_map): New global hashtable mapping DECL_UID
7230 to the decl tree.
7231 (init_ttree): Allocate it.
7232 (insert_decl_to_uid_decl_map): New helper function.
7233 (make_node_stat): Insert new decls into the map.
7234 (copy_node_stat): Likewise.
7235 (lookup_decl_from_uid): New function.
7236 (print_decl_for_uid_map_statistics): New helper.
7237 (dump_tree_statistics): Call it.
7238
7239 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7240 (referenced_var_iterator): Adjust.
7241 (FOR_EACH_REFERENCED_VAR): Adjust.
7242 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7243 (num_referenced_vars): Adjust.
7244 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7245 (first_referenced_var): Remove.
7246 (end_referenced_vars_p): Likewise.
7247 (next_referenced_var): Likewise.
7248 (referenced_var_iterator_set): New helper function.
7249 * tree-dfa.c (referenced_var_lookup): Adjust.
7250 (referenced_var_check_and_insert): Likewise.
7251 (remove_referenced_var): Likewise.
7252 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7253 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7254 (verify_call_clobbering): Likewise.
7255 (verify_memory_partitions): Likewise.
7256 (init_tree_ssa): Allocate bitmap instead of hashtable for
7257 referenced_vars.
7258 (delete_tree_ssa): Adjust.
7259 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7260 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7261 (compute_tag_properties): Likewise.
7262 (set_initial_properties): Likewise.
7263 (find_partition_for): Likewise.
7264 (update_reference_counts): Likewise.
7265 (dump_may_aliases_for): Likewise.
7266 * tree-ssa-operands.c (add_virtual_operand): Likewise.
7267 (add_call_clobber_ops): Likewise.
7268 (add_call_read_ops): Likewise.
7269 (get_asm_expr_operands): Likewise.
7270 * tree-into-ssa.c (dump_decl_set): Likewise.
7271 (update_ssa): Likewise.
7272 * tree-sra.c (scan_function): Likewise.
7273 (decide_instantiations): Likewise.
7274 (scalarize_parms): Likewise.
7275 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7276 (dsa_named_for): Likewise.
7277 * tree-ssa-structalias.c (update_alias_info): Likewise.
7278 (merge_smts_into): Likewise.
7279
7e959c84 72802008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
7281
7282 PR fortran/29549
7283 * doc/invoke.texi (-fcx-limited-range): Document new option.
7284 * toplev.c (process_options): Handle -fcx-fortran-rules.
bb51041c 7285 * common.opt: Add documentation for -fcx-fortran-rules.
7e959c84 7286
a8806066 72872008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
7288
7289 PR c/35162
7290 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
7291 actual behaviour and C99.
7292
b30c4a87 72932008-02-26 Ben Elliston <bje@au.ibm.com>
7294
7295 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
7296 (ASM_CPU_POWER6_SPEC): Likewise.
7297 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
7298 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
7299 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
7300
8ca26bdd 73012008-02-25 Richard Guenther <rguenther@suse.de>
7302
7303 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7304 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7305 (lookup_decl_from_uid): Declare.
7306 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7307 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7308 (decl_for_uid_map): New global hashtable mapping DECL_UID
7309 to the decl tree.
7310 (init_ttree): Allocate it.
7311 (insert_decl_to_uid_decl_map): New helper function.
7312 (make_node_stat): Insert new decls into the map.
7313 (copy_node_stat): Likewise.
7314 (lookup_decl_from_uid): New function.
7315 (print_decl_for_uid_map_statistics): New helper.
7316 (dump_tree_statistics): Call it.
7317
7318 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7319 (referenced_var_iterator): Adjust.
7320 (FOR_EACH_REFERENCED_VAR): Adjust.
7321 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7322 (num_referenced_vars): Adjust.
7323 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7324 (first_referenced_var): Remove.
7325 (end_referenced_vars_p): Likewise.
7326 (next_referenced_var): Likewise.
7327 (referenced_var_iterator_set): New helper function.
7328 * tree-dfa.c (referenced_var_lookup): Adjust.
7329 (referenced_var_check_and_insert): Likewise.
7330 (remove_referenced_var): Likewise.
7331 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7332 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7333 (verify_call_clobbering): Likewise.
7334 (verify_memory_partitions): Likewise.
7335 (init_tree_ssa): Allocate bitmap instead of hashtable for
7336 referenced_vars.
7337 (delete_tree_ssa): Adjust.
7338 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7339 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7340 (compute_tag_properties): Likewise.
7341 (set_initial_properties): Likewise.
7342 (find_partition_for): Likewise.
7343 (update_reference_counts): Likewise.
7344 (dump_may_aliases_for): Likewise.
7345 * tree-ssa-operands.c (add_virtual_operand): Likewise.
7346 (add_call_clobber_ops): Likewise.
7347 (add_call_read_ops): Likewise.
7348 (get_asm_expr_operands): Likewise.
7349 * tree-into-ssa.c (dump_decl_set): Likewise.
7350 (update_ssa): Likewise.
7351 * tree-sra.c (scan_function): Likewise.
7352 (decide_instantiations): Likewise.
7353 (scalarize_parms): Likewise.
7354 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7355 (dsa_named_for): Likewise.
7356 * tree-ssa-structalias.c (update_alias_info): Likewise.
7357 (merge_smts_into): Likewise.
7358
5fe61d21 73592008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
7360
7361 PR target/35258
7362 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
7363 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
7364 * alias.h (nonoverlapping_memrefs_p): Likewise.
7365
cab0c612 73662008-02-25 Jan Beulich <jbeulich@novell.com>
7367
d243d9c9 7368 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
cab0c612 7369 * config/i386/netware-libgcc.exp: Add __bswap?i2,
7370 __emultls_get_address, __emultls_register_common,
7371 __floatundi?f, and _Unwind_GetIPInfo.
7372 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
7373 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
7374 (gen_regparm_prefix): Likewise.
7375 (i386_nlm_encode_section_info): Sync with
7376 config/i386/winnt.c:i386_pe_encode_section_info().
7377 (i386_nlm_maybe_mangle_decl_assembler_name): New.
7378 i386_nlm_mangle_decl_assembler_name): New.
7379 (netware_override_options): New.
7380 * config/i386/netware.h (netware_override_options): Declare.
7381 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
7382 (i386_nlm_mangle_decl_assembler_name): Declare.
7383 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
7384
5243b29d 73852008-02-25 Ben Elliston <bje@au.ibm.com>
7386
7387 PR other/32948
7388 * c-decl.c (grokdeclarator): Remove unused local variables
7389 `typedef_type' and `type_as_written'.
7390 * bb-reorder.c
7391 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
7392 unused local variable `has_hot_blocks'.
7393 (fix_crossing_conditional_branches): Remove unused local variable
7394 `prev_bb'.
7395
620d0bf8 73962008-02-25 Uros Bizjak <ubizjak@gmail.com>
7397
7398 PR middle-end/19984
7399 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
7400 using DEF_C99_BUILTIN.
7401 (BUILT_IN_NANF): Ditto.
7402 (BUILT_IN_NANL): Ditto.
7403
84004523 74042008-02-25 Ayal Zaks <zaks@il.ibm.com>
34d8410f 7405 Revital Eres <eres@il.ibm.com>
84004523 7406
7407 * modulo-sched.c (calculate_must_precede_follow): Address TODO
7408 regarding the order of two dependent insns in the same row.
7409
23f65835 74102008-02-25 Eric Botcazou <ebotcazou@adacore.com>
7411
7412 * stor-layout.c (layout_decl): Do not bump the alignment of a
7413 bit-field to more than byte alignment if it is packed.
7414
b18d68e3 74152008-02-24 David Edelsohn <edelsohn@gnu.org>
7416
7417 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
7418 e300c2 and e300c3.
7419
100b67da 74202008-02-24 Diego Novillo <dnovillo@google.com>
7421
7422 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
7423
7424 PR 33738
7425 * tree-vrp.c (vrp_evaluate_conditional): With
7426 -Wtype-limits, emit a warning when comparing against a
7427 constant outside the natural range of OP0's type.
7428 * c.opt (Wtype-limits): Move ...
7429 * common.opt (Wtype-limits): ... here.
7430
2aeab935 74312008-02-24 Edmar Wienskoski <edmar@freescale.com>
73edc44b 7432
7433 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
7434 * config/rs6000/e300c2c3.md: New file.
7435 * config/rs6000/rs6000.c (processor_costs): Add new costs for
7436 e300c2 and e300c3.
7437 (rs6000_override_options): Add e300c2 and e300c3 cases to
7438 processor_target_table. Do not allow usage of Altivec or Spe
7439 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
7440 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
7441 * config/rs6000/rs6000.h (processor_type): Add
7442 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
7443 (ASM_CPU_SPEC): Add e300c2 and e300c3.
7444 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
7445 and ppce300c3. Include e300c2c3.md.
7446
070270ea 74472008-02-23 David Edelsohn <edelsohn@gnu.org>
7448
7449 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
7450 instead of TARGET_STRICT_ALIGN.
7451
64ec1b61 74522008-02-23 Joseph Myers <joseph@codesourcery.com>
7453
7454 * explow.c (memory_address): Assert that the generated address is
7455 valid.
7456
6aee6ac8 74572008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
7458
7459 PR target/25477
7460 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
7461 * config/darwin-ppc-ldouble-patch.def: New file.
7462 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
7463 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
7464 SUBTARGET_INIT_BUILTINS if defined.
620d0bf8 7465 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
7466 New functions.
6aee6ac8 7467
3d72a1b5 74682008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
7469
7470 PR rtl-opt/33512
7471 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
7472 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
7473
c12ee0c6 74742008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
7475
7476 PR pch/35027
7477 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
7478 file" warning condtional on -Winvalid-PCH.
7479
05b481df 74802008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
7481
7482 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
7483
78624f54 74842008-02-23 Uros Bizjak <ubizjak@gmail.com>
7485
7486 PR target/22076
7487 PR target/34256
7488 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
7489 prevent reload from using MMX registers.
7490 (*mov<mode>_internal): Ditto.
7491 (*movv2sf_internal_rex64): Ditto.
7492 (*movv2sf_internal): Ditto.
7493
ed3f349a 74942008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7495
7496 PR documentation/31569
7497 * doc/install.texi2html: Use makeinfo --no-number-sections.
7498
e720c3f0 74992008-02-22 Nathan Froyd <froydnj@codesourcery.com>
7500
7501 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
7502 ensure that we can address an entire entity > 8 bytes. Don't
7503 generate reg+reg addressing for such data.
7504
dc3be372 75052008-02-22 Nathan Froyd <froydnj@codesourcery.com>
7506
7507 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
7508 strings when optimizing for size, unless the target cares about
7509 alignment.
7510
af3f5a19 75112008-02-22 Tom Tromey <tromey@redhat.com>
7512
7513 * regclass.c (current_pass): Remove declaration.
7514
9e926232 75152008-02-22 Anatoly Sokolov <aesok@post.ru>
7516
7517 * config/avr/libgcc.S (__RAMPZ__): Define.
7518 (__do_copy_data): Add for devices with 128KB code memory.
7519
b9cd27b3 75202008-02-22 Nathan Froyd <froydnj@codesourcery.com>
7521
7522 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
7523 Use spe_abi.
7524 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
7525
e8cb528f 75262008-02-22 Hans-Peter Nilsson <hp@axis.com>
7527
7528 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
7529 GENNONACR_REGS.
7530
067d82a2 75312008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7532
7533 PR c/19999
7534 * c-typeck.c (build_binary_op): Warn about floating point
7535 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
7536
f9c1a520 75372008-02-21 Janis Johnson <janis187@us.ibm.com>
7538
7539 PR target/34526
7540 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
7541 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
7542 add vrsave.
7543 (rs6000_override_options): Set altivec_abi as default, not override,
7544 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
7545 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
7546 is used; use new member spe_abi.
7547 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
7548 spe_abi and altivec_abi.
7549
c7dcbde4 75502008-02-22 Tomas Bily <tbily@suse.cz>
7551
7552 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
7553
d45cdac2 75542008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7555
7556 PR bootstrap/35273
7557 * config.build (build_file_translate): Set to `CMD //c' only if
7558 it works.
7559 * Makefile.in (build_file_translate): Improve comment.
7560
f3cb8b1d 75612008-02-21 Jan Hubicka <jh@suse.cz>
7562
7563 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
7564 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
7565 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
7566
6ef19463 75672008-02-21 Michael Matz <matz@suse.de>
7568
7569 PR target/35264
7570 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
7571
3da2a73c 75722008-02-21 Uros Bizjak <ubizjak@gmail.com>
7573
7574 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
7575 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
7576 as insn constraint.
7577 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
7578 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
7579 SSE_VEC_FLOAT_MODE_P as insn constraint.
7580 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
7581 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
7582 sse4a_movntdf using MODEF mode iterator.
7583 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
7584 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
7585 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
7586 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
7587 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
7588 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
7589 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
7590
751ff693 75912008-02-21 Richard Guenther <rguenther@suse.de>
7592
7593 * tree.def (PAREN_EXPR): New tree code.
7594 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
7595 and PAREN_EXPR.
7596 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
7597 * expr.c (expand_expr_real_1): Likewise.
7598 * tree-inline.c (estimate_num_insns_1): Likewise.
7599 * tree-complex.c (expand_complex_move): Likewise.
7600 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
7601 as plain x.
7602
64c985e4 76032008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
7604
7605 PR target/35225
7606 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
7607
af122d60 76082008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
7609
7610 PR target/35190
7611 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
7612
7613 * config/sh/sh.c (find_barrier): Don't go past
7614 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
7615
610e569b 76162008-02-20 DJ Delorie <dj@redhat.com>
7617
7618 * config/h8300/h8300.md (insv): Force source operand to be a register.
7619
7620 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
7621 as a jump, not as a plain insn.
7622
6fdade09 76232008-02-20 Seongbae Park <seongbae.park@gmail.com>
7624
7625 * doc/invoke.texi (Warning Options): Add new option
7626 -Wframe-larger-than=.
7627 (-Wframe-larger-than): Document.
7628
7629 * flags.h (warn_frame_larger_than, frame_larger_than_size):
7630 Add declarations for new option variables.
7631
7632 * final.c (final_start_function): Check the frame size
7633 before emission and issue a Wframe-larger-than warning.
7634
7635 * opts.c (warn_frame_larger_than, frame_larger_than_size):
7636 Add definitions for new option variables.
7637 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
7638
7639 * common.opt (Wframe-larger-than=): New option.
7640
82cc8ae1 76412008-02-20 Uros Bizjak <ubizjak@gmail.com>
7642
7643 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
7644 (<sse>_div<mode>3): Ditto.
7645 (<sse>_vmdiv<mode>3): Ditto.
7646 (<sse>_vmsqrt<mode>2): Ditto.
7647 (*smax<mode>3): Ditto.
7648 (sse5_frcz<mode>2): Ditto.
7649 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
7650 as insn constraint.
7651
c7f617c2 76522008-02-20 Richard Guenther <rguenther@suse.de>
7653
7654 PR middle-end/35265
7655 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
7656 be happy with INTEGRAL_TYPE_P.
7657
a145256a 76582008-02-20 Richard Guenther <rguenther@suse.de>
7659
7660 * fold-const.c (split_tree): Associate floatig-point expressions
7661 if flag_associative_math is set.
7662
46ef5347 76632008-02-20 Richard Guenther <rguenther@suse.de>
7664
7665 * tree.h (fold_real_zero_addition_p): Declare.
7666 * fold-const.c (fold_real_zero_addition_p): Export.
7667 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
7668 floating-point operations with zero and one.
7669
c898f165 76702008-02-20 Paolo Bonzini <bonzini@gnu.org>
7671
a55f1b4b 7672 * doc/install.texi: Correct references to CFLAGS, replacing them
7673 with BOOT_CFLAGS. Document flags used during bootstrap for
7674 target libraries.
c898f165 7675
2a466fea 76762008-02-20 Uros Bizjak <ubizjak@gmail.com>
7677
7678 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
7679 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
7680 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
7681 insn constraint.
7682 (smin<mode>3): Ditto from similar patterns.
7683 (smax<mode>3): Ditto.
7684 (*ieee_smin<mode>3): Ditto.
7685 (*ieee_smax<mode>3): Ditto.
7686 * config/i386/sse.md (sse): New mode attribute.
7687 (mov<mode>): Macroize expander from movv4sf and movv2df using
7688 SSEMODEF2P mode iterator.
7689 (<sse>_movnt<mode>): Ditto from similar patterns. Use
7690 SSE_VEC_FLOAT_MODE_P as insn constraint.
7691 (storent<mode>): Ditto.
7692 (storent<mode>): Macroize expander from storentsf and storentdf using
7693 MODEF mode iterator.
7694 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
7695 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
7696 (abs<mode>2): Ditto from similar patterns.
7697 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
7698 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
7699 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
7700 (<sse>_vmsqrt<mode>2): Ditto.
7701 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
7702 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
7703 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
7704 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
7705 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
7706 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
7707 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
7708 insn constraint.
7709 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
7710 iterator and SSE_FLOAT_MODE_P as insn constraint.
7711 (<sse>_ucomi): Ditto from similar patterns.
7712 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
7713 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
7714 SSE_VEC_FLOAT_MODE_P as insn constraint.
7715 (vcond<mode>): Ditto from similar patterns.
7716 (and<mode>3, *and<mode>3): Ditto.
7717 (<sse>_nand<mode>3): Ditto.
7718 (ior<mode>3, *ior<mode>3): Ditto.
7719 (xor<mode>3, *xor<mode>3): Ditto.
7720 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
7721 iterator and SSE_FLOAT_MODE_P as insn constraint.
7722 (*nand<mode>3): Ditto from similar patterns.
7723 (*ior<mode>3): Ditto.
7724 (*xor<mode>3): Ditto.
7725
8c85798c 77262008-02-20 Ira Rosen <irar@il.ibm.com>
7727
7728 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
7729 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
7730 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
7731
3ed4a4a1 77322008-02-19 Jan Hubicka <jh@suse.cz>
7733
2d5652e4 7734 * predict.c (tree_bb_level_predictions): Remove variable next
7735 mistakely introduced by previous commit.
3ed4a4a1 7736
d704ea82 77372008-02-19 Jan Hubicka <jh@suse.cz>
7738
7739 * predict.c (predict_paths_leading_to): Rewrite.
7740 (predict_paths_for_bb): New.
7741 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
7742
fbf9447e 77432008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7744
7745 PR bootstrap/35218
7746 * Makefile.in (build_file_translate): New.
7747 (gcc-vers.texi): Use it for translating $(abs_srcdir).
7748 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
7749 * configure.ac (build_file_translate): Substitute it.
7750 * configure: Regenerate.
7751
f82220c2 77522008-02-19 Jan Hubicka <jh@suse.cz>
7753
7754 PR rtl-optimization/34408
d704ea82 7755 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
7756 invalid sharing.
f82220c2 7757
d4c3b5cd 77582008-02-19 Jan Hubicka <jh@suse.cz>
7759
7760 PR middle-end/28779
d704ea82 7761 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
7762 call_expr.
d4c3b5cd 7763
1158320c 77642008-02-19 H.J. Lu <hongjiu.lu@intel.com>
7765
7766 PR Ada/35186
7767 * config/i386/i386-modes.def: Revert the last DI alignment
7768 change until Ada people can look into it.
7769
d06cb02d 77702008-02-19 Nick Clifton <nickc@redhat.com>
7771
7772 * opts.c (print_specific_help): Fix typo in --help text.
7773
beb96ec8 77742008-02-19 Jakub Jelinek <jakub@redhat.com>
7775
7776 PR target/35239
7777 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
7778 32-bit inline asm without asm alternatives for host GCC < 3.0.
7779
971c637a 77802008-02-19 Richard Guenther <rguenther@suse.de>
7781
7782 PR tree-optimization/34989
7783 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
7784 Allow propagation to INDIRECT_REF if we can simplify only.
7785
23ce1cf6 77862008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7787
7788 * c-common.c (warn_for_collisions_1): Use appropriate option when
7789 warning.
7790
86895a67 77912008-02-19 Nick Clifton <nickc@redhat.com>
7792
7793 PR other/31349
2d5652e4 7794 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
86895a67 7795 (handle_options): Fix indentation.
7796 (print_filtered_help): If no language-specific options were
7797 displayed tell the user how to list all the options supported by
7798 the language's front-end.
7799 (print_specific_help): Fix indentation and remove duplicate line.
7800 (common_handle_option): Handle the -v option.
7801 For --help enable the display of undocumented options if the -v
7802 switch has been included on the command line.
7803 For --help= check for overlaps in the arguments between the option
7804 classes and the language names and issue a warning when they
7805 cannot be disambiguated.
7806 * c.opt (v): Pass on to the common option handler.
7807
34c7f568 78082008-02-19 Revital Eres <eres@il.ibm.com>
7809
7810 * modulo-sched.c (sms_schedule): Change dump message when
7811 create_ddg function fails.
7812 (try_scheduling_node_in_cycle): Rename row to cycle.
7813 (print_partial_schedule): Rename CYCLE to ROW.
7814
90bd1b58 78152008-02-19 Christian Bruel <christian.bruel@st.com>
2d5652e4 7816 Zdenek Dvorak <ook@ucw.cz>
7817
7818 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
7819
bd416d70 78202008-02-19 Uros Bizjak <ubizjak@gmail.com>
7821
7822 PR target/33555
7823 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
7824 (*x86_movdicc_0_m1_se): Ditto.
7825
2a5abea1 78262008-02-19 Uros Bizjak <ubizjak@gmail.com>
7827
7828 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
7829 (CMPtype): Define as __gcc_CMPtype.
7830 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
7831 (CMPtype): Define as __gcc_CMPtype.
7832
a7779e75 78332008-02-19 Hans-Peter Nilsson <hp@axis.com>
7834
7835 Support valgrind 3.3 for --enable-checking=valgrind.
7836 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
7837 here.
7838 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
7839 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
7840 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
7841 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
7842 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
7843 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
7844 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
7845 respectively.
7846 * ggc-zone.c: Similar.
7847 * ggc-page.c: Similar.
7848
7addba43 78492008-02-19 Paul Brook <paul@codesourcery.com>
7850
7851 PR target/35071
7852 * config/arm/ieee754-df.S: Fix do_it typo.
7853 * config/arm/ieee754-sf.S: Fix do_it typo.
7854
4e06f6f8 78552008-02-18 H.J. Lu <hongjiu.lu@intel.com>
7856
7857 PR target/35189
7858 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
7859 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
7860 (OPTION_MASK_ISA_SSE_SET): Likewise.
7861 (OPTION_MASK_ISA_SSE2_SET): Likewise.
7862 (OPTION_MASK_ISA_SSE3_SET): Likewise.
7863 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
7864 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
7865 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
7866 (OPTION_MASK_ISA_SSE4_SET): Likewise.
7867 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
7868 (OPTION_MASK_ISA_SSE5_SET): Likewise.
7869 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
7870 (OPTION_MASK_ISA_MMX_UNSET): Updated.
7871 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
7872 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
7873 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
7874 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
7875 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
7876 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
7877 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
7878 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
7879 (OPTION_MASK_ISA_SSE4): Removed.
7880 (ix86_handle_option): Turn on bits in ix86_isa_flags and
2f6e3388 7881 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
4e06f6f8 7882 (override_options): Don't turn on implied SSE/MMX bits in
7883 ix86_isa_flags.
7884
dbbcdcd5 78852008-02-18 H.J. Lu <hongjiu.lu@intel.com>
7886
7887 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7888 32bit host.
7889
beebc64a 78902008-02-18 Joey Ye <joey.ye@intel.com>
7891
7892 PR middle-end/34921
7893 * tree-nested.c (insert_field_into_struct): Set type alignment
7894 to field alignment if the former is less than the latter.
7895
8d705311 78962008-02-18 Jakub Jelinek <jakub@redhat.com>
7897
7898 * BASE-VER: Set to 4.4.0.
7899
7a5a9c54 79002008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7901
7902 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
7903 * doc/cfg.texi: Likewise.
7904 * doc/extend.texi: Likewise.
7905 * doc/gty.texi: Likewise.
7906 * doc/invoke.texi: Likewise.
7907 * doc/loop.texi: Likewise.
7908 * doc/md.texi: Likewise.
7909 * doc/passes.texi: Likewise.
7910 * doc/rtl.texi: Likewise.
7911 * doc/sourcebuild.texi: Likewise.
7912 * doc/tm.texi: Likewise.
7913 * doc/tree-ssa.texi: Likewise.
7914
89cd38e0 79152008-02-17 Richard Guenther <rguenther@suse.de>
7916
7917 PR middle-end/35227
7918 * tree-complex.c (init_parameter_lattice_values): Handle parameters
7919 without default definition.
7920
d149d356 79212008-02-17 Richard Guenther <rguenther@suse.de>
7922
7923 PR tree-optimization/35231
7924 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
7925 if A | B != 1.
7926
a3c40304 79272008-02-17 Uros Bizjak <ubizjak@gmail.com>
7928
7929 Revert:
a3c40304 7930 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
7931 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7932 libgcc_cmp_return mode.
7933
a2e4e045 79342008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7935
7936 PR c/28368
7937 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
7938
8e2e6800 79392008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
7940
7941 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
7942 multilibs.
7943
a81d4cba 79442008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7945
7946 * doc/c-tree.texi: Use `@.' where appropriate.
7947 * doc/extend.texi: Likewise.
7948 * doc/install.texi: Likewise.
7949 * doc/invoke.texi: Likewise.
7950 * doc/loop.texi: Likewise.
7951 * doc/makefile.texi: Likewise.
7952 * doc/md.texi: Likewise.
7953 * doc/passes.texi: Likewise.
7954 * doc/standards.texi: Likewise.
7955 * doc/tm.texi: Likewise.
7956
d74e6897 79572008-02-15 Jakub Jelinek <jakub@redhat.com>
7958
7959 PR middle-end/35196
7960 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
7961 in entry_bb.
7962 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
7963 rather than in entry_bb.
7964
c12b3bc6 79652008-02-15 Uros Bizjak <ubizjak@gmail.com>
7966
7967 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7968 libgcc_cmp_return mode.
7969
a5268989 79702008-02-15 Jakub Jelinek <jakub@redhat.com>
7971
7972 PR middle-end/35130
7973 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
7974 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
7975
b75537fb 79762008-02-15 Richard Guenther <rguenther@suse.de>
c12b3bc6 7977 Zdenek Dvorak <ook@ucw.cz>
b75537fb 7978
7979 PR tree-optimization/35164
7980 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
7981 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
7982 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7983 Only propagate addresses which do not have abnormal SSA_NAMEs
7984 in their operands.
7985
86891459 79862008-02-15 Joseph Myers <joseph@codesourcery.com>
7987
7988 PR target/35088
7989 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
7990
a4cb010f 79912008-02-15 Jan Hubicka <jh@suse.cz>
7992
7993 PR middle-end/35149
7994 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
7995
b3f75873 79962008-02-15 Uros Bizjak <ubizjak@gmail.com>
7997
7998 PR middle-end/34621
7999 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
8000 when calculating alignment_pad.
8001
46de89e7 80022008-02-15 Uros Bizjak <ubizjak@gmail.com>
8003
8004 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
8005 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
8006 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
8007 and STACK_BOUNDARY define.
8008
b8989bc3 80092008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
8010
8011 PR preprocessor/35061
8012 * c-pragma.c (handle_pragma_pop_macro): Check that
8013 pushed_macro_table has been allocated.
8014
0e41e637 80152008-02-14 Eric Botcazou <ebotcazou@adacore.com>
8016
8017 PR middle-end/35136
8018 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
8019 (force_gimple_operand): Likewise.
8020 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
8021 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
8022 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
8023 (find_interesting_uses_address): Check addressability and alignment
8024 of the base expression only after substituting bases of IVs into it.
8025
7e507322 80262008-02-14 Michael Matz <matz@suse.de>
8027
8028 PR target/34930
8029 * function.c (instantiate_virtual_regs_in_insn): Reload address
8030 before falling back to reloading the whole operand.
8031
7338c728 80322008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
8033
8034 * config/s390/s390.c (s390_mainpool_start): Emit the pool
8035 before the first section switch note.
8036
83d10720 80372008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8038
49a55c95 8039 * doc/bugreport.texi: Update copyright years.
8040 * doc/c-tree.texi: Likewise.
8041 * doc/cfg.texi: Likewise.
8042 * doc/cpp.texi: Likewise.
8043 * doc/cppinternals.texi: Likewise.
8044 * doc/fragments.texi: Likewise.
8045 * doc/frontends.texi: Likewise.
8046 * doc/gcc.texi: Likewise.
8047 * doc/gty.texi: Likewise.
8048 * doc/hostconfig.texi: Likewise.
8049 * doc/implement-c.texi: Likewise.
8050 * doc/libgcc.texi: Likewise.
8051 * doc/loop.texi: Likewise.
8052 * doc/makefile.texi: Likewise.
8053 * doc/options.texi: Likewise.
8054 * doc/passes.texi: Likewise.
8055 * doc/rtl.texi: Likewise.
8056 * doc/sourcebuild.texi: Likewise.
8057 * doc/standards.texi: Likewise.
8058 * doc/tree-ssa.texi: Likewise.
8059 * doc/trouble.texi: Likewise.
8060
83d10720 8061 * doc/extend.texi: Use @: or add comma where appropriate.
8062 * doc/invoke.texi: Likewise.
8063 * doc/tm.texi: Likewise.
8064
2a4fe7b7 80652008-02-14 Alan Modra <amodra@bigpond.net.au>
8066
8067 PR target/34393
8068 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
8069 to a reg.
8070
4ebee9e4 80712008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
8072
8073 * doc/md.texi (clz, ctz): Add reference.
8074 * doc/rtl.texi (clz, ctz): Likewise.
8075
a1a0674f 80762008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8077
8078 PR other/35148
8079 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
8080 srcdir.
8081
86428198 80822008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
8083
8084 * config/s390/s390.c (struct constant_pool): New field
8085 emit_pool_after added.
8086 (s390_mainpool_start): Set the emit_pool_after flag according
8087 to the section switch notes.
8088 (s390_mainpool_finish): Consider emit_pool_after when emitting
8089 the literal pool at the end of the function.
8090 (s390_chunkify_start): Force literal pool splits at section
8091 switch notes.
8092
86079287 80932008-02-13 Michael Matz <matz@suse.de>
8094
8095 PR debug/35065
8096 * var-tracking.c (clobber_variable_part): Correctly traverse the
8097 list.
8098
bfce1236 80992008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8100
8101 PR 29673
8102 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
8103 Add -fdump-ipa-inline.
8104 * tree-dump.c (dump_files): Remove tree-inlined dump.
8105 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
8106
e3e3ee4b 81072008-02-12 Richard Guenther <rguenther@suse.de>
8108
8109 PR tree-optimization/35171
8110 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
8111 default defs.
8112
d06ed0b1 81132008-02-12 Richard Guenther <rguenther@suse.de>
8114
8115 PR middle-end/35163
8116 * fold-const.c (fold_widened_comparison): Use get_unwidened in
8117 value-preserving mode. Disallow final truncation.
8118
06b0fbf1 81192008-02-12 Eric Botcazou <ebotcazou@adacore.com>
8120
8121 PR middle-end/35136
8122 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
8123 code from here to...
8124 (force_gimple_operand): ...here.
8125
3f982e5a 81262008-02-12 Jakub Jelinek <jakub@redhat.com>
8127
194bd83c 8128 PR c++/35144
8129 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
8130 non-compatible pointers.
8131 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
8132 different FIELD_DECLs, try harder by comparing field offsets, sizes
8133 and types.
8134
3f982e5a 8135 PR inline-asm/35160
8136 * function.c (match_asm_constraints_1): Don't replace the same input
8137 multiple times.
8138
637dc5b6 81392008-02-12 Anatoly Sokolov <aesok@post.ru>
8140
8141 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
8142 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
8143 (expand_epilogue): Restore RAMPZ register.
8144 * config/avr/avr.md (RAMPZ_ADDR): New constant.
8145
41992f82 81462008-02-11 Kai Tietz <kai.tietz@onevision.com>
8147
6144731c 8148 * config/i386/cygwin.asm: (__alloca): Correct calling
41992f82 8149 convention and alignment.
8150 (__chkstk): Force 8 byte stack alignment.
8151
3de988b5 81522008-02-11 Uros Bizjak <ubizjak@gmail.com>
efd43187 8153 Richard Guenther <rguenther@suse.de>
3de988b5 8154
8155 PR tree-optimization/33992
8156 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
8157 the zero we compare against.
8158
6144731c 81592008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
8160
8161 PR libfortran/35063
8162 * gthr-win32.h (__gthread_mutex_destroy_function): New function
8163 to CloseHandle after unlocking to prevent accumulation of handle
8164 count.
8165
3e478718 81662008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8167
8168 PR middle_end/34150
8169 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
8170 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
8171 and update LABEL_NUSES during and after reload.
8172
76d5115a 81732008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
8174
8175 PR middle-end/34627
ae731b4f 8176 * combine.c (simplify_if_then_else): Make sure the comparison is
76d5115a 8177 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
8178
e506f1d4 81792008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
8180
8181 PR bootstrap/35051
8182 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
8183 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
8184 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
8185 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
8186 * tree.h (get_type_static_bounds): Likewise.
8187
bfbab40c 81882008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8189
8190 * doc/invoke.texi (Option Summary, C++ Dialect Options)
8191 (Objective-C and Objective-C++ Dialect Options, Warning Options):
8192 Make -Wfoo language annotations match what the compiler outputs.
8193
c7386c28 81942008-02-08 Sa Liu <saliu@de.ibm.com>
8195
8196 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
8197 intrinsics spu_convts, spu_convtu, spu_convtf.
c7386c28 8198
9bc2537d 81992008-02-08 Hans-Peter Nilsson <hp@axis.com>
8200
8201 * doc/extend.texi (Function Attributes) <noinline>: Mention
8202 asm ("") as method to keep calls.
8203
30b0f428 82042008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8205
8206 PR other/32754
8207 * doc/options.texi (Options): Replace references to opts.sh with
8208 optc-gen.awk.
8209 * opts-common.c: Likewise.
8210 * optc-gen.awk: Likewise.
8211
8364148d 82122008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
8213
8214 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
8215
82162008-02-07 Richard Henderson <rth@redhat.com>
e8e27646 8217
8218 PR rtl-opt/33410
8219 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
8220 EXPR_LIST for the REG_EQUAL instead of a comparison with a
8221 funny mode.
8222
4251ed76 82232008-02-07 Uros Bizjak <ubizjak@gmail.com>
8224
8225 PR tree-optimization/35085
8226 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
8227 for operand entry oe2 in addition to operand entry oe3 in order to
8228 expose more opportunities for vectorizer sum reduction.
8229
6ca01c3b 82302008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8231
8232 PR other/35107
8233 * Makefile.in (LIBS): Remove $(GMPLIBS).
8234 (cc1-dummy, cc1): Add $(GMPLIBS).
8235
1dbb4355 82362008-02-06 Jan Hubicka <jh@suse.cz>
8237
5f704018 8238 PR target/23322
1dbb4355 8239 * i386.md (moddf_integer): Do not produce partial memory stalls for
8240 targets where it hurts.
8241
4c8054f4 82422008-02-06 Uros Bizjak <ubizjak@gmail.com>
8243
8244 PR target/35083
8245 * optabs.c (expand_float): Do not check for decimal modes when
8246 expanding unsigned integer through signed conversion.
8247
48f4cf85 82482008-02-06 Nick Clifton <nickc@redhat.com>
8249
8250 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
8251 inside the clobber with a match_operand and duplicated operand
8252 number in the constraint.
8253 (ineqbranchsi): Delete redundant comment.
8254
3b7a17d9 82552008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
8256
f04beaef 8257 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
8258 builtin_define ("__USE_INIT_FINI__").
8259 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
8260 -msx multilibs.
3b7a17d9 8261 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
8262
b518f2ae 82632008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8264
8265 PR documentation/30330
8266 * doc/invoke.texi (C++ Dialect Options)
8267 (Objective-C and Objective-C++ Dialect Options, Warning Options):
8268 For each warning option -Wfoo that allows -Wno-foo, ensure both
8269 -Wfoo and -Wno-foo are listed in the option index. Fix index
8270 entry of -Wswitch-default, index -Wnormalized= including the
8271 `=', and -Wlarger-than-@var{len} including @var{len}.
8272
840638ec 82732008-02-05 Uros Bizjak <ubizjak@gmail.com>
8274
8275 * config/i386/i386.md (floatunssisf2): Use
8276 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
8277 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
8278 Macroize expander using MODEF mode iterator.
8279
09885372 82802008-02-05 Diego Novillo <dnovillo@google.com>
8281
8282 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
8283
8284 PR 33738
840638ec 8285 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
09885372 8286
ceb21d85 82872008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8288
8289 PR other/35070
8290 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
8291
df3ba0fe 82922008-02-05 H.J. Lu <hongjiu.lu@intel.com>
8293
8294 PR target/35084
8295 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
8296 to indicate if a message should be generated.
8297 (init_cumulative_args): Updated.
8298 (function_value_32): Likewise.
8299
79f7a0b8 83002008-02-05 Joseph Myers <joseph@codesourcery.com>
8301
8302 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
8303
470195a4 83042008-02-05 Uros Bizjak <ubizjak@gmail.com>
8305
8306 PR target/35083
8307 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
8308 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
8309
82ec0d8f 83102008-02-04 Diego Novillo <dnovillo@google.com>
8311
8312 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
8313
8314 PR 33738
8315 * tree-vrp.c (vrp_evaluate_conditional): With
8316 -Wtype-limits, emit a warning when comparing against a
8317 constant outside the natural range of OP0's type.
8318
bbf511cd 83192008-02-04 Richard Guenther <rguenther@suse.de>
8320
8321 PR middle-end/33631
8322 * expr.c (count_type_elements): Give for unions instead of
8323 guessing.
8324
5bad702f 83252008-02-04 Richard Guenther <rguenther@suse.de>
8326
8327 PR middle-end/35043
8328 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
8329 to TYPE_DOMAINs base type instead of using bitsizetype here.
8330
930e8175 83312008-02-03 Jason Merrill <jason@redhat.com>
8332
8333 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
8334
c55906eb 83352008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8336
8337 PR other/29972
8338 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
8339 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
8340 (RS/6000 and PowerPC Options): Fix typos and markup.
8341 * doc/passes.texi (Tree-SSA passes): Likewise.
8342
ce53880e 83432008-02-02 Michael Matz <matz@suse.de>
8344
8345 PR target/35045
8346 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
8347 from record_last_reg_set_info.
8348 (record_last_reg_set_info): Take an RTX argument, iterate over all
8349 constituent hardregs.
8350 (record_last_set_info, record_opr_changes): Change calls to
8351 new signature or to record_last_reg_set_info_regno.
8352
957fb083 83532008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
8354
8355 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
8356
dec9a6b8 83572008-02-01 Hans-Peter Nilsson <hp@axis.com>
8358
8359 PR rtl-optimization/34773
8360 * reg-notes.def (EQUAL): Mention significance of combination of
8361 REG_EQUAL and REG_RETVAL.
8362 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
8363 insn that has a REG_RETVAL.
8364
6ccd4361 83652008-02-01 Roger Sayle <roger@eyesopen.com>
8366
8367 PR bootstrap/33781
8368 * configure.ac (--enable-fixed-point): Disable unless explicitly
8369 requested on IRIX.
8370 * configure: Regenerate.
8371
39e88a5d 83722008-02-01 Richard Guenther <rguenther@suse.de>
8373
8374 PR other/35042
8375 * invoke.texi (-finline-limit): Remove no longer true parts
8376 of the documentation. Note that there is no default value.
8377
2f5beddc 83782008-02-01 Andrew Pinski <pinskia@gmail.com>
8379 Mark Mitchell <mark@codesourcery.com>
8380 Ben Elliston <bje@au.ibm.com>
8381
8382 PR c/29326
8383 * doc/extend.texi (Other Builtins): Document.
8384
d40533b6 83852008-01-31 Tom Browder <tom.browder@gmail.com>
8386
8387 * doc/c-tree.texi (Types): Fix grammar.
8388 (Expression trees): Ditto.
8389 * doc/passes.texi (Tree-SSA passes): Ditto.
8390
8391 * doc/configterms.texi (Configure Terms): Fix typo.
8392 * doc/cpp.texi (Common Predefined Macros): Ditto.
8393 * doc/md.texi (Machine Constraints): Ditto.
8394
8395 * doc/makefile.texi (Makefile): Add comma.
8396
38cd7009 83972008-01-31 Tom Browder <tom.browder@gmail.com>
8398 Gerald Pfeifer <gerald@pfeifer.com>
8399
8400 * doc/sourcebuild.texi (Front End): Remove references to CVS
8401 and CVSROOT/modules.
8402 (Texinfo Manuals): Replace reference to CVS by one to SVN.
8403 (Back End): Remove reference to CVS.
8404
0d399d52 84052008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
8406
8407 PR target/34900
8408 * config/mips/mips.c (gen_load_const_gp): New function, taking a
8409 comment from...
8410 (mips16_gp_pseudo_reg): ...here.
8411 * config/mips/mips.md (load_const_gp): Replace with...
8412 (load_const_gp_<mode>): ...this :P-based insn.
8413
c75a5ac5 84142008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8415
8416 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
8417 options. Minor fixes.
8418 (-std): Move reference to standards closer to where language
8419 standards are first mentioned.
8420
53716799 84212008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
8422
8423 PR rtl-optimization/34995
8424 * reload.c (alternative_allows_const_pool_ref): Take an rtx
8425 parameter and return a bool. If the rtx parameter is nonnull,
8426 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
8427 (find_reloads): Update call accordingly. Pass the new operand
8428 if it needed no address reloads, otherwise pass null.
8429
e14d689c 84302008-01-30 Richard Henderson <rth@redhat.com>
8431
8432 PR c/34993
8433 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
8434 for unbounded arrays.
8435
9424a8b9 84362008-01-30 Silvius Rus <rus@google.com>
8437
8438 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
8439
89beb200 84402008-01-30 Jan Hubicka <jh@suse.cz>
8441
8442 PR target/34982
8443 * i386.c (init_cumulative_args): Use real function declaration when
8444 calling locally.
8445
9a9cbcd2 84462008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
8447
8448 PR rtl-optimization/34998
8449 * global.c (build_insn_chain): Treat non-subreg_lowpart
8450 SUBREGs of pseudos as clobbering all the words covered by the
8451 SUBREG, not just all the bytes.
8452 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
8453 original df_ref rather than an extract parameter.
8454 (global_conflicts): Update call accordingly.
8455
365b8932 84562008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
8457
8458 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
8459 the overflow check to make it easier to read.
8460 (__fixtfdi): Change the type of the ll member in union
8461 long_double to UDItype_x.
8462
c55e2943 84632008-01-30 Jakub Jelinek <jakub@redhat.com>
8464
117ef3d7 8465 PR middle-end/34969
8466 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
8467 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
8468 * tree-inline.c (fold_marked_statements): Call
8469 cgraph_update_edges_for_call_stmt if folding a call statement.
8470 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
8471 debug_generic_stmt calls, reset it back afterwards.
8472
c55e2943 8473 PR c/35017
8474 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
8475 static decls.
8476 * c-typeck.c (build_external_ref): Don't pedwarn about
8477 static vars in current function's scope.
8478
5bcb8578 84792008-01-29 Joseph Myers <joseph@codesourcery.com>
8480
8481 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
8482
94023798 84832008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
8484
8485 PR c/35002
8486 * ipa-struct-reorg.c: Fix spelling.
8487 * params.def: Ditto.
8488
ed6049c8 84892008-01-29 Richard Guenther <rguenther@suse.de>
8490
8491 PR middle-end/35006
8492 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
8493 field.
8494 * tree-inline.c (remap_type): Increment remapping_type_depth
8495 around remapping types.
8496 (copy_body_r): Only add referenced variables if they are referenced
8497 from code, not types.
8498
830a6615 84992008-01-29 Douglas Gregor <doug.gregor@gmail.com>
8500
8501 PR c++/34055
8502 PR c++/34103
8503 PR c++/34219
8504 PR c++/34606
8505 PR c++/34753
8506 PR c++/34754
8507 PR c++/34755
8508 PR c++/34919
8509 PR c++/34961
8510 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
8511 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
8512
48bffadc 85132008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
8514
8515 PR target/34412
8516 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
8517 pointer for tiny stack.
8518
260cf6df 85192008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
8520
8521 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
8522
345ff830 85232008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
8524
8525 * config/vx-common.h: Fix typo in comment.
8526
c5f257af 85272008-01-28 Ian Lance Taylor <iant@google.com>
8528
8529 PR c++/34862
8530 PR c++/33407
8531 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8532 coalesce pointers if they have different DECL_NO_TBAA_P values.
8533 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
8534 between variables with different DECL_NO_TBAA_P values.
8535
c64b5439 85362008-01-28 Nathan Froyd <froydnj@codesourcery.com>
8537
8538 PR 31535
8539 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
8540 are not legitimate small data references on SPE targets.
8541
bcedfa23 85422008-01-28 David Daney <ddaney@avtrex.com>
8543
8544 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
8545
fe30b803 85462008-01-28 David Daney <ddaney@avtrex.com>
8547
8548 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
8549
453829c7 85502008-01-27 Joseph Myers <joseph@codesourcery.com>
8551
8552 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
8553 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
8554 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
8555 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
8556 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8557 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
8558 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
8559 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
8560
511934f9 85612008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
8562
8563 * basic-block.h (condjump_equiv_p): Fix comment.
8564
ba810638 85652008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
8566
8567 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
8568 print_generic_stmt_indented): Fix comment.
8569
e214b635 85702008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
8571
8572 * configure.ac (__stack_chk_fail): Add detecion for availability
8573 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
8574 * configure: Regenerate.
8575
b32b308d 85762008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
8577
8578 PR middle-end/34688
8579 * final.c (output_addr_const): Handle TRUNCATE.
8580
3c2818b0 85812008-01-26 Zdenek Dvorak <ook@ucw.cz>
8582
8583 PR target/34711
8584 * tree-ssa-loop-ivopts.c (comp_cost): New type.
8585 (zero_cost, infinite_cost): New constants.
8586 (struct cost_pair): Change type of cost to comp_cost.
8587 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
8588 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
8589 New functions.
8590 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
8591 split_address_cost, ptr_difference_cost, difference_cost,
8592 get_computation_cost_at, get_computation_cost,
8593 determine_use_iv_cost_generic, determine_use_iv_cost_address,
8594 determine_use_iv_cost_condition, determine_use_iv_costs,
8595 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
8596 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
8597 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
8598 Change type of cost to comp_cost.
8599 (determine_iv_cost): Increase cost of non-original ivs, instead
8600 of decreasing the cost of original ones.
8601 (get_address_cost): Indicate the complexity of the addressing mode
8602 in comp_cost.
8603 (try_add_cand_for): Prefer using ivs not specific to some object.
8604 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
8605
b32b308d 86062008-01-26 Peter Bergner <bergner@vnet.ibm.com>
bc5e6ea1 8607 Janis Johnson <janis187@us.ibm.com>
8608
8609 PR target/34814
8610 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
8611 (TARGET_INSTANTIATE_DECLS): Likewise.
8612 * target.h (expand_to_rtl_hook): New target hook.
8613 (instantiate_decls): Likewise.
8614 * function.c (instantiate_decl): Make non-static. Rename to...
8615 (instantiate_decl_rtl): ... this.
8616 (instantiate_expr): Use instantiate_decl_rtl.
8617 (instantiate_decls_1): Likewise.
8618 (instantiate_decls): Likewise.
8619 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
8620 * function.h (instantiate_decl_rtl): Add prototype.
8621 * cfgexpand.c (target.h): New include.
8622 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
8623 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
8624 (TARGET_INSTANTIATE_DECLS): Likewise.
8625 (TARGET_INITIALIZER): New target hooks added.
8626 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
8627 New prototype.
8628 * config/rs6000/rs6000.c (tree-flow.h): New include.
8629 (machine_function): Add sdmode_stack_slot field.
8630 (rs6000_alloc_sdmode_stack_slot): New function.
8631 (rs6000_instantiate_decls): Likewise.
8632 (rs6000_secondary_memory_needed_rtx): Likewise.
8633 (rs6000_check_sdmode): Likewise.
8634 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
8635 (TARGET_INSTANTIATE_DECLS): Likewise.
8636 (rs6000_hard_regno_mode_ok): Allow SDmode.
8637 (num_insns_constant): Likewise. Handle _Decimal32 constants.
8638 (rs6000_emit_move): Handle SDmode.
8639 (function_arg_advance): Likewise.
8640 (function_arg): Likewise.
8641 (rs6000_gimplify_va_arg): Likewise. Add special handling of
8642 SDmode var args for 32-bit compiles.
8643 (rs6000_secondary_reload_class): Handle SDmode.
8644 (rs6000_output_function_epilogue): Likewise.
8645 (rs6000_function_value): Simplify if statement.
8646 (rs6000_libcall_value): Likewise.
8647 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
8648 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
8649 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
8650 (movsd_hardfloat): New define_insn.
8651 (movsd_softfloat): Likewise.
8652 (movsd_store): Likewise.
8653 (movsd_load): Likewise.
8654 (extendsddd2): Likewise.
8655 (extendsdtd2): Likewise.
8656 (truncddsd2): Likewise.
8657 (movdd_hardfloat64): Fixup comment.
8658 (UNSPEC_MOVSD_LOAD): New constant.
8659 (UNSPEC_MOVSD_STORE): Likewise.
8660
37aea014 86612008-01-26 Jakub Jelinek <jakub@redhat.com>
8662
8663 PR c++/34965
8664 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
8665 TRUTH_XOR_EXPR.
8666 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
8667 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
8668 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
8669 and TRUTH_XOR_EXPR.
8670
0cc77516 86712008-01-26 David Edelsohn <edelsohn@gnu.org>
8672
8673 PR target/34794
8674 * config.gcc: Separate AIX 5.3 from AIX 6.1.
8675 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8676 __LONGDOUBLE128 too.
8677 * config/rs6000/aix61.h: New file.
8678
e03d813f 86792008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
8680
8681 PR rtl-optimization/34959
8682 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
8683 popcount and parity rtxes the same mode as their operand.
8684 Truncate or extend the result to the return value's mode
8685 if necessary.
8686
5eec32fe 86872008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
8688
8689 PR target/34981
8690 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
8691 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
8692 to GOT_VERSION_REGNUM.
8693 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
8694 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
8695 * config/mips/mips.c (mips_emit_call_insn): New function.
8696 (mips_call_tls_get_addr): Call mips_expand_call directly.
8697 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
8698 emit_call_insn.
8699 (mips16_build_call_stub): Likewise. Return the call insn or null.
8700 (mips_expand_call): Update the call to mips16_build_call_stub
8701 accordingly and a remove redundant condition. Assert that MIPS16
8702 stubs do not use lazy binding. Use mips_emit_call_insn and return
8703 the call insn.
8704 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
8705 TARGET_USE_GOT.
8706 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
8707 (mips_avoid_hazard): Remove hazard_set handling.
8708 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
8709 (UNSPEC_RESTORE_GP): ...this.
8710 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
8711 (FAKE_CALL_REGNO): Rename to...
8712 (GOT_VERSION_REGNUM): ...this.
8713 (type): Add "ghost" value. Add an associated insn reservation.
8714 (hazard_set): Remove.
8715 (exception_receiver): Rename to...
8716 (restore_gp): ...this and update the unspec identifier accordingly.
8717 (exception_receiver, nonlocal_got_receiver): New expanders.
8718 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
8719 FAKE_CALL_REGNO. Remove hazard_set attribute.
8720 (set_got_version, update_got_version): New patterns.
8721
26b142a4 87222008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
8723
8724 PR target/34970
8725 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
8726
74a4b47f 87272008-01-25 Joseph Myers <joseph@codesourcery.com>
8728
8729 PR other/31955
8730 * doc/install.texi2html: Generate gcc-vers.texi.
8731
2cc20bba 87322008-01-25 DJ Delorie <dj@redhat.com>
8733
8734 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
8735
99c77e32 87362008-01-25 Joseph Myers <joseph@codesourcery.com>
8737
8738 * config/c4x: Remove directory.
8739 * config.gcc (crx-*, mt-*): Mark obsolete.
8740 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
8741 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
8742 sh-*-rtemscoff*): Remove cases.
8743 * defaults.h (C4X_FLOAT_FORMAT): Remove.
8744 * real.c (encode_c4x_single, decode_c4x_single,
8745 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
8746 c4x_extended_format): Remove.
8747 * real.h (c4x_single_format, c4x_extended_format): Remove.
8748 * doc/extend.texi (interrupt, naked): Remove mention of attributes
8749 on C4x.
8750 (Pragmas): Remove comment about c4x pragmas.
8751 * doc/install.texi (c4x): Remove target-specific instructions.
8752 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
8753 * doc/md.texi (Machine Constraints): Remove C4x documentation.
8754 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
8755 refer to C4x source files as examples.
8756 (C4X_FLOAT_FORMAT): Remove documentation.
8757
ced0033c 87582008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
8759
8760 * config/bfin/bfin.c (override_options): Reorder tests so that
8761 flag_pic gets enabled for -msep-data.
8762
5c9c131f 87632008-01-25 Richard Guenther <rguenther@suse.de>
8764
8765 PR middle-end/32244
8766 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
8767 to its bitfield precision if required.
8768
b43fc0dc 87692008-01-25 Jakub Jelinek <jakub@redhat.com>
8770
8771 PR middle-end/33880
8772 * tree-nested.c (walk_omp_for): New function.
8773 (convert_nonlocal_reference, convert_local_reference): Call
8774 walk_omp_for on OMP_FOR.
8775 (convert_call_expr): Call walk_body on OMP_FOR's
8776 OMP_FOR_PRE_INIT_BODY.
8777
8090c12d 87782008-01-25 Richard Guenther <rguenther@suse.de>
8779
8780 PR tree-optimization/34966
8781 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
8782 default defs and PHI_NODEs we have to insert after the
8783 defining statement.
8784
bcf954af 87852008-01-24 Nick Clifton <nickc@redhat.com>
8786
8787 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
8788 Provide a default definition.
8789 (LIBGCC2_UNITS_PER_WORD): Likewise.
8790
8791 * config/stormy16/stormy16.c: Include df.h for the prototype
8792 for df_regs_ever_live_p.
8793 (xstormy16_expand_builtin_va_start): Convert the stack offset
8794 into a component_ref and then use POINTER_PLUS_EXPR to add it
8795 to the incoming_virtual_args_rtx.
8796 (xstormy16_gimplify_va_arg_expr): Rename to
8797 xstormy16_gimplify_va_arg_expr.
8798 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
8799 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
8800 xstormy16_gimplify_va_arg_expr.
8801 Fix up some formatting issues.
8802
8803 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
8804 Move to predicates.md.
8805 (xs_hi_general_operand): Likewise.
8806 (xs_hi_nonmemory_operand): Likewise.
8807 * config/stormy16/predicates.md:
8808 (xstormy16_carry_plus_operand): New predicate.
8809 (xs_hi_general_operand): New predicate.
8810 (xs_hi_nonmemory_operand): New predicate.
8811 * config/stormy16/stormy16-protos.h:
8812 (xstormy16_carry_plus_operand): Delete prototype.
8813 (xs_hi_general_operand): Likewise.
8814 (xs_hi_nonmemory_operand): Likewise.
8815
8816 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
8817 modifiers as they are no longer needed and they can trigger
8818 reload spill failures.
8819
8820 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
8821 with a match_operand in order to help reload.
8822
8823 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
8824 constraint with 'e' for the 8th alternative as this version of
8825 the mov.w instruction only accepts the lower 8 registers.
8826
72412d4b 88272008-01-25 Uros Bizjak <ubizjak@gmail.com>
8828
8829 PR target/34856
8830 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
8831 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
8832 vector elements.
8833
b22f2ff4 88342008-01-25 Jakub Jelinek <jakub@redhat.com>
8835
8836 PR middle-end/33333
8837 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
8838
009b0c6d 88392008-01-25 Golovanevsky Olga <olga@il.ibm.com>
8840
8841 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
8842 New functions.
8843 (remove_structure): Update allocations list before removing structure.
8844
864a494e 88452008-01-25 Golovanevsky Olga <olga@il.ibm.com>
8846
8847 * ipa-struct-reorg.c (is_safe_cond_expr,
8848 create_new_stmts_for_cond_expr): Use integer_zerop function,
8849 that recognize not only zero-pointer, but zero-integer too.
8850
98bdcbcf 88512008-01-25 Ben Elliston <bje@au.ibm.com>
8852
8853 PR other/22232
8854 * fixproto: Escape "." in sed expression that strips leading "./".
8855
79d52444 88562008-01-24 H.J. Lu <hongjiu.lu@intel.com>
8857
8858 PR driver/34904
8859 * gcc.c (SWITCH_OK): Removed.
8860 (SWITCH_LIVE): Changed to bit.
8861 (SWITCH_FALSE): Likewise.
8862 (SWITCH_IGNORE): Likewise.
8863 (switchstr): Change live_cond to unsigned int.
8864 (process_command): Replace SWITCH_OK with 0.
8865 (do_self_spec): Likewise.
8866 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
8867 (give_switch): Likewise.
8868 (used_arg): Likewise.
8869 (do_spec_1): Set the SWITCH_IGNORE bit.
8870 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
8871 bits. Set the SWITCH_LIVE bit.
8872
6cb659b1 88732008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
8874
8875 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
8876
66bc4f2f 88772008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
8878
8879 PR tree-optimization/34472
8880 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
8881 parameter to a "bool *" and set *DATA to false if there is
8882 an unsafe access. Do not delete the structure here.
8883 (check_cond_exprs): Delete it here instead.
8884 (check_cond_exprs, exclude_cold_structs): Do not increase
8885 I when removing a structure.
8886
098e8492 88872008-01-24 Uros Bizjak <ubizjak@gmail.com>
8888
8889 PR target/34856
8890 * config/i386/i386.c (ix86_expand_vector_init): Consider only
8891 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
8892
4b53147e 88932008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
8894
8895 PR middle-end/34934
8896 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
8897 a fixed vector for stack.
8898
0af13ed4 88992008-01-24 Ben Elliston <bje@au.ibm.com>
8900
8901 PR c++/25701
8902 * doc/gcc.texi (Software development): Add a direntry for g++.
8903
631d7bf1 89042008-01-23 Hans-Peter Nilsson <hp@axis.com>
8905
248c1389 8906 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
8907 stale and straggling -fforce-addr comments above.
8908
631d7bf1 8909 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
8910 define.
8911 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
8912 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
8913
f4aea3f4 89142008-01-23 Michael Matz <matz@suse.de>
8915
8916 PR debug/34895
8917 * dwarf2out.c (force_type_die): Use modified_type_die instead of
8918 gen_type_die.
8919
c7108d79 89202008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
8921
8922 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
8923 malloc result type.
8924
b1eb5c83 89252008-01-23 Anatoly Sokolov <aesok@post.ru>
8926
8927 * config/avr/avr.c (avr_current_arch): New variable.
8928 (avr_arch_types): Add 'avr31' and 'avr51' entries.
8929 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
8930 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
8931 (avr_override_options): Init 'avr_current_arch'.
8932 (base_arch_s): Move from here...
8933 * config/avr/avr.h (base_arch_s): ... here. Add new members
8934 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
8935 'mega' to 'have_jmp_call'.
8936 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
8937 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
8938 macros.
8939 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
8940 architectures.
8941 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8942 MULTILIB_MATCHES): (Ditto.).
8943
46beef9a 89442008-01-23 Richard Guenther <rguenther@suse.de>
8945
8946 PR middle-end/31529
8947 * cgraphunit.c (cgraph_reset_node): Always mark the node
8948 not reachable if it is not queued already.
8949
f5c2bcb7 89502008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
8951
8952 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
8953 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
8954 (cputype_selected): New static variable.
8955 (bfin_handle_option): Set it if -mcpu is used.
8956 (override_option): Select default set of workarounds if no cpu type
8957 selected on the command line.
8958 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
27bedcb4 8959
8960 From Michael Frysinger <michael.frysinger@analog.com>
8961 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
8962 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
8963
8964 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
8965 for bf547, bf523, bf524, and bf526.
8966 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
8967 bf526.
8968 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8969 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
8970 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
8971 __ADSPBF547__ and __ADSPBF54x__ for bf547.
8972 * doc/invoke.texi (Blackfin Options): Document that
8973 -mcpu now accept bf547, bf523, bf524, and bf526.
8974
3888eedd 89752008-01-22 Eric Botcazou <ebotcazou@adacore.com>
8976
8977 PR rtl-optimization/34628
8978 * combine.c (try_combine): Stop and undo after the first combination
8979 if an autoincrement side-effect on the first insn has effectively
8980 been lost.
8981
e74b57b1 89822008-01-22 David Edelsohn <edelsohn@gnu.org>
8983
8984 PR target/34529
8985 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
8986 Offset addresses are not valid for Altivec or paired float modes.
8987
06faa2fe 89882008-01-22 Jakub Jelinek <jakub@redhat.com>
8989
bb436d4e 8990 PR c++/34607
8991 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
8992 if DECL_INITIAL (decl) is error_mark_node.
8993
2cb0e5d9 8994 PR c++/34914
8995 * c-common.c (handle_vector_size_attribute): Only allow
8996 integral, scalar float and fixed point types. Handle OFFSET_TYPE
8997 the same way as pointer, array etc. types.
8998 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
8999
06faa2fe 9000 PR c++/34917
9001 * tree.c (build_type_attribute_qual_variant): Call
9002 build_qualified_type if attributes are equal, but quals are not.
9003
a54ab330 90042008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9005
9006 PR 32102
9007 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
9008 * flags.h (warn_strict_aliasing): Remove.
9009 (warn_strict_overflow): Remove.
9010 * opts.c (warn_strict_aliasing): Remove.
9011 (warn_strict_overflow): Remove.
9012 * c-opts.c (c_common_handle_option): -Wall only sets
9013 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
9014 (c_common_post_options): Give default values to -Wstrict-aliasing
9015 and -Wstrict-overflow if they are uninitialized.
9016 * common.opt (Wstrict-aliasing): Specify Var and Init.
9017 (Wstrict-overflow): Likewise.
9018
957f873e 90192008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
f437e46d 9020
9021 PR rtl-optimization/26854
9022 PR rtl-optimization/34400
9023 PR rtl-optimization/34884
9024 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
9025 DF_RD->gen.
9026 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
9027 (df_rd_bb_info.expanded_lr_out): Deleted
9028 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
9029 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
9030 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
9031 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
9032 Removed code to allocate, initialize or free expanded_lr_out.
9033 (df_rd_bb_local_compute_process_def): Restructured to make more
9034 understandable.
9035 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
9036 sets if the sets are being trimmed.
9037
c7871c82 90382008-01-22 H.J. Lu <hongjiu.lu@intel.com>
9039
9040 PR bootstrap/32287
9041 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
9042 (as_vers): Likewise.
9043 * configure: Regenerated.
9044
df3f0669 90452008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9046
9047 PR middle-end/33092
9048 * tree-pass.h (pass_build_alias): New pass.
9049 * tree-ssa-alias.c (gate_build_alias): New.
9050 (pass_build_alias): New.
9051 * passes.c (init_optimization_passes): Add pass_build_alias after
9052 pass_create_structure_vars.
9053
d1191819 90542008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
9055
9056 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
9057 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
9058 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
9059 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
9060 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
9061 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
9062 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
9063 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
9064 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
9065 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
9066 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
9067 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
9068 * config/s390/s390.md (FP_ALL): New mode iterator.
9069 (_d): New mode attribute.
9070 ("*signbit<mode>2>"): Changed mode of first operand.
9071 ("isinf<mode>2"): Changed mode of first operand.
9072 ("*TDC_insn"): Adaptation for DFP modes.
9073
f47ba5b1 90742008-01-22 Ben Elliston <bje@au.ibm.com>
9075
9076 * tree.c (check_qualified_type): Improve function description.
9077
0bc060a4 90782008-01-21 Jason Merrill <jason@redhat.com>
9079
9080 PR c++/34196
9081 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
9082 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
9083 if it is set.
9084
1c64e82e 90852008-01-21 DJ Delorie <dj@redhat.com>
9086
9087 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
9088 return zero.
9089
2a2aef73 90902008-01-21 Richard Guenther <rguenther@suse.de>
9091
9092 PR middle-end/34856
9093 * tree-cfg.c (verify_expr): Allow all invariant expressions
9094 instead of just constant class ones as reference argument.
9095 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
9096 like any other constant.
9097 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9098
d8d756b9 90992008-01-21 H.J. Lu <hongjiu.lu@intel.com>
9100
9101 * regmove.c (fixup_match_1): Update call crossed frequencies.
9102
62437c86 91032008-01-21 Richard Guenther <rguenther@suse.de>
9104
9105 PR c/34885
9106 * tree-inline.c (setup_one_parameter): Deal with mismatched
9107 types using a VIEW_CONVERT_EXPR.
9108
f25ba2cf 91092008-01-21 Alon Dayan <alond@il.ibm.com>
9110 Olga Golovanevsky <olga@il.ibm.com>
9111
9112 PR tree-optimization/34701
9113 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
9114 when the structure size is not a power of 2.
9115
957f873e 91162008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
dbc72697 9117
9118 * doc/install.texi: Add doc for --enable-checking=df.
9119
c556495e 91202008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
9121
9122 PR rtl-optimization/34808
9123 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
9124
d8f69cf6 91252008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
9126
9127 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
9128 input.
9129
957f873e 91302008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2e49e3bc 9131
9132 PR rtl-optimization/26854
9133 PR rtl-optimization/34400
9134 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
9135 DF_RD->gen.
9136 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
9137 (df_rd_bb_info.expanded_lr_out): New.
9138 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
9139 * loop_iv.c (iv_analysis_loop_init): Ditto.
9140 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
9141 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
9142 Added code to allocate, initialize or free expanded_lr_out.
9143 (df_rd_bb_local_compute_process_def): Restructured to make
9144 more understandable.
9145 (df_rd_confluence_n): Add code to do nothing with fake edges and
9146 code to no apply invalidate_by_call sets if the sets are being trimmed.
9147 (df_lr_local_finalize): Renamed to df_lr_finalize.
9148 (df_live_local_finalize): Renamed to df_live_finalize.
9149
d2f3e075 91502008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
9151
9152 PR target/34831
9153 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
9154 deciding whether to use reciprocal instructions.
9155
4e971a07 91562008-01-19 Uros Bizjak <ubizjak@gmail.com>
9157
9158 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
9159 dwarf2out_note_section_used if cold_text_section is NULL.
9160
b3a3ddec 91612008-01-19 Jakub Jelinek <jakub@redhat.com>
9162
9163 PR gcov-profile/34610
9164 * tree-cfg.c (make_edges): Mark both outgoing edges from
9165 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
9166 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
9167 from OMP_FOR and OMP_CONTINUE outgoing edges.
9168
9169 * tree-profile.c (tree_profiling): Return early if
9170 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
9171 at the end.
9172 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
9173 from cfun to child_cfun.
9174 * function.h (struct function): Add after_tree_profile bit.
9175
cb20fbcc 91762008-01-19 Anatoly Sokolov <aesok@post.ru>
9177
9178 * config/avr/avr.S (_exit): Disable interrupt.
9179
a7bc23c0 91802008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
9181 Steven Bosscher <stevenb.gcc@gmail.com>
9182
9183 PR rtl-optimization/26854
9184 PR rtl-optimization/34400
9185 * df-problems.c (df_live_scratch): New scratch bitmap.
9186 (df_live_alloc): Allocate df_live_scratch when doing df_live.
9187 (df_live_reset): Clear the proper bitmaps.
9188 (df_live_bb_local_compute): Only process the artificial defs once
9189 since the order is not important.
9190 (df_live_init): Init the df_live sets only with the variables
9191 found live by df_lr.
9192 (df_live_transfer_function): Use the df_lr sets to prune the
9193 df_live sets as they are being computed.
9194 (df_live_free): Free df_live_scratch.
9195
7765591b 91962008-01-18 Ian Lance Taylor <iant@google.com>
9197
9198 * common.opt: Add fmerge-debug-strings.
9199 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
9200 flag_merge_debug_strings rather than flag_merge_constants.
9201 * doc/invoke.texi (Option Summary): Mention
9202 -fmerge-debug-strings.
9203 (Debugging Options): Document -fmerge-debug-strings.
9204
68d6de5b 92052008-01-18 Ian Lance Taylor <iant@google.com>
9206
9207 PR c++/33407
9208 * tree.h (DECL_IS_OPERATOR_NEW): Define.
9209 (struct tree_function_decl): Add new field operator_new_flag.
9210 * tree-inline.c (expand_call_inline): When inlining a call to
9211 operator new, force the return value to go into a variable, and
9212 set DECL_NO_TBAA_P on that variable.
9213 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
9214
af30c139 92152008-01-18 Uros Bizjak <ubizjak@gmail.com>
9216
9217 PR debug/34484
9218 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
9219 DWARF2_DEBUGGING_INFO.
9220 (dwarf2out_note_section_used): Ditto. Add prototype.
9221 (have_multiple_function_sections, text_section_used,
9222 cold_text_section_used, *cold_text_sections): Move declarations
9223 before their uses.
9224
1650f4d3 92252008-01-17 Bob Wilson <bob.wilson@acm.org>
92f6e056 9226
9227 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
9228 field and add signal_ra.
9229 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
9230 assignments to frame state pc. Move end of stack check after
9231 MD_FALLBACK_FRAME_STATE_FOR.
9232 (uw_update_context_1): Use frame state signal_regs if set, instead
9233 of checking signal_frame flag.
9234 (uw_update_context): Use frame state signal_ra if set.
9235 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
9236 * config/xtensa/linux-unwind.h: New file.
9237
1650f4d3 92382008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
c15d54d8 9239
9240 * modulo-sched.c (get_sched_window): Fix comment typo.
9241
ea5876d9 92422008-01-17 Andrew MacLeod <amacleod@redhat.com>
9243
9244 PR tree-optimization/34648
9245 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
9246
d5f9ff99 92472008-01-17 Anatoly Sokolov <aesok@post.ru>
9248
9249 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
9250 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
9251
a9e21c4c 92522008-01-17 Seongbae Park <seongbae.park@gmail.com>
9253
9254 PR rtl-optimization/34400
9255 * df-core.c (df_worklist_dataflow_overeager,
9256 df_worklist_dataflow_doublequeue): New functions.
9257 (df_worklist_dataflow): Two different worklist solvers.
9258 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
9259 New param.
9260
9d6f50ba 92612008-01-16 Sebastian Pop <sebastian.pop@amd.com>
9262
9263 PR testsuite/34821
9264 * doc/invoke.texi: Document the dependence on pthread for fopenmp
9265 and ftree-parallelize-loops.
9266
fa7f4c0c 92672008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
9268
9269 PR rtl-optimization/34826
9270 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
9271
74748e47 92722008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
9273
9274 * global.c (find_reg): Mark the eh regs as used if necessary.
9275 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
9276 * ra.h (struct allocno): no_eh_reg field added. Changed
9277 no_stack_reg type to bitfield.
9278
a13ff590 92792008-01-17 Eric Botcazou <ebotcazou@adacore.com>
9280
9281 * tree.c (substitute_in_expr): Add missing 'break'.
9282
119368d7 92832008-01-17 Richard Guenther <rguenther@suse.de>
9284
9285 PR tree-optimization/34825
9286 * tree-ssa-math-opts.c (is_division_by): Do not recognize
9287 x / x as division to handle.
9288
9f4dc59e 92892008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9290
9291 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
9292 "-pthread" is specified.
9293 * pa-hpux11.h (LIB_SPEC): Likewise.
9294
1650f4d3 92952008-01-16 Janis Johnson <janis187@us.ibm.com>
2379ccd9 9296 Peter Bergner <bergner@vnet.ibm.com>
9297
9298 PR rtl-optimization/33796
9299 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
9300
a2060dc3 93012008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9302
9303 PR libgfortran/34699
9304 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
9305 static links.
9306 * pa-hpux10.h (LINK_SPEC): Likewise.
9307 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
9308
0cfec3e9 93092008-01-16 Richard Guenther <rguenther@suse.de>
9310
9311 PR middle-end/32628
9312 * fold-const.c (fold_convert_const_int_from_int): Do not
9313 set overflow if that occured only because of a sign extension
9314 change when converting from/to a sizetype with the same
9315 precision and signedness.
9316
d848c04f 93172008-01-16 Uros Bizjak <ubizjak@gmail.com>
9318
9319 PR debug/34249
9320 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
9321 location address to the correct place. Update copyright year.
9322
b44df49a 93232008-01-16 Sebastian Pop <sebastian.pop@amd.com>
9324
9325 * lambda-code.c (lambda_transform_legal_p): Handle the case of
9326 no dependences in the dependence_relations vector.
9327
a8587796 93282008-01-16 Jan Hubicka <jh@suse.cz>
9329
9330 PR rtl-optimization/31396
9331 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
9332 * cfg.c (dump_reg_info): Print it.
9333 * regs.h (struct reg_info_t): add freq_calls_crossed.
9334 (REG_FREQ_CALLS_CROSSED): New macro.
9335 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
9336 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
9337 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
9338 regmove_optimize): Update call crossed frequencies.
9339 * local-alloc.c (struct qty): Add freq_calls_crossed.
9340 (alloc_qty): Copute freq_calls_crossed.
9341 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
9342 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
9343 * ra.h (struct allocno): Add freq_calls_crossed.
9344
061202f8 93452008-01-16 Sebastian Pop <sebastian.pop@amd.com>
9346
9347 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
9348 libgomp when compiling with ftree-parallelize-loops.
9349 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
9350
c782188f 93512008-01-16 Richard Guenther <rguenther@suse.de>
9352
9353 PR tree-optimization/34769
9354 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
9355 * tree.c (int_cst_value): Instead make this function more
9356 permissive in what it accepts as valid input. Document this
9357 function always sign-extends the value.
9358
db812c94 93592008-01-16 Jakub Jelinek <jakub@redhat.com>
4e971a07 9360 Richard Guenther <rguenther@suse.de>
db812c94 9361
9362 PR c/34668
9363 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
9364 (gimple_fold_indirect_ref_rhs): ... this.
9365 (gimple_fold_indirect_ref): New function with foldings
9366 that preserve lvalueness.
9367 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
9368 * tree-flow.h (gimple_fold_indirect_ref): Declare.
9369 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
9370 to fold an INDIRECT_REF, fall back to the old use of
9371 fold_indirect_ref_1.
9372
e34df749 93732008-01-16 Sebastian Pop <sebastian.pop@amd.com>
9374
9375 * tree-data-ref.c (subscript_dependence_tester_1): Call
9376 free_conflict_function.
9377 (compute_self_dependence): Same.
9378
9bf03e06 93792008-01-16 Uros Bizjak <ubizjak@gmail.com>
9380
9381 PR debug/34249
9382 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
9383 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
9384 function global.
9385 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
9386 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
9387 for DWARF2_UNWIND_INFO targets.
9388
36d43c4a 93892008-01-16 Richard Guenther <rguenther@suse.de>
9390
9391 PR c/34768
9392 * c-typeck.c (common_pointer_type): Do not merge inconsistent
9393 type qualifiers for function types.
9394
6f22df65 93952008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
9396
9397 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
9398 loop_iterator li from previous commit.
9399
94002008-01-15 Sebastian Pop <sebastian.pop@amd.com>
d46d3c1c 9401
9402 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
9403
d4fcfd16 94042008-01-12 Sebastian Pop <sebastian.pop@amd.com>
9405
9406 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
9407 (parallelize_loops): Don't parallelize irreducible components.
9408
c9d90c25 94092008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9410
9411 PR c++/24924
9412 * c-opts (c_common_post_options): Do not enable CPP
9413 flag_pedantic_errors by default.
9414
d2c970fe 94152008-01-14 Eric Botcazou <ebotcazou@adacore.com>
9416
9417 PR rtl-optimization/31944
9418 * cse.c (remove_pseudo_from_table): New function.
9419 (merge_equiv_classes): Use above function to remove pseudo-registers.
9420 (invalidate): Likewise.
9421
3ff99faa 94222008-01-13 Richard Guenther <rguenther@suse.de>
9423
9424 PR middle-end/34601
9425 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
9426 instead of TYPE_MODE to deal with calls from expand_one_error_var.
9427
3e179c53 94282008-01-13 Uros Bizjak <ubizjak@gmail.com>
9429
9430 * gcse.c (cprop_jump): Call validate_unshare_change instead of
9431 validate_change to unshare the source of the PC set.
9432
b513c084 94332008-01-12 Jan Hubicka <jh@suse.cz>
9434
9435 PR middle-end/32135
9436 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
9437 references above array bounds. This might trigger bounds checks for
9438 pointers to arrays.
9439
c2df357d 94402008-01-12 Sebastian Pop <sebastian.pop@amd.com>
9441
9442 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
9443 new_replaceable_dependencies.
9444
36e37a87 94452008-01-12 Doug Kwan <dougkwan@google.com>
9446
9447 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
9448 instead of OPT_Wreturn_type in warning due to ignored return type
9449 qualifiers.
9450 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
9451 options included in -Wextra.
9452 * c.opt: New option -Wignored_qualifiers.
9453 * doc/invoke.texi (Warning Options, -Wextra): Add new option
9454 -Wignore_qualifiers.
9455 (-Wignored-qualifiers): Document.
9456 (-Wreturn-type): Remove description of functionality now handled
9457 by -Wignored-qualifiers.
9458
134ae613 94592008-01-12 Eric Botcazou <ebotcazou@adacore.com>
9460
9461 PR ada/33788
9462 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
9463 NOP_EXPR if it is between integral types with the same precision.
9464
f9f517cc 94652008-01-12 Jan Hubicka <jh@suse.cz>
9466
9467 PR other/28023
9468 * invoke.texi (max-inline-recursive-depth): Fix default value.
9469
33f263f5 94702008-01-12 Zdenek Dvorak <ook@ucw.cz>
9471
9472 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
9473 correct type.
9474
0d1c6644 94752008-01-11 Bob Wilson <bob.wilson@acm.org>
9476
9477 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
9478
6090393c 94792008-01-11 James E. Wilson <wilson@specifix.com>
9480
9481 PR target/26015
9482 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
9483
a0a028c2 94842008-01-11 Anatoly Sokolov <aesok@post.ru>
9485
9486 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
9487 save/restore frame pointer register and don't use 'call-prologues'
9488 optimization in function with "OS_task" attribute.
9489
13a68d5b 94902008-01-11 Eric Botcazou <ebotcazou@adacore.com>
9491
9492 PR middle-end/31309
9493 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
9494 when copying to memory.
9495
1ae2ffa7 94962008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
9497
9498 PR rtl-optimization/30905
9499 * cfgcleanup.c: Include dce.h
9500 (crossjumps_occured): New global variable.
9501 (try_crossjump_bb): Exit loop after finding a fallthru edge.
9502 If something changed, set crossjumps_occured to true.
9503 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
9504 Don't add/remove fake edges to exit here...
9505 (cleanup_cfg): ...but do it here, when crossjumping.
9506 Run a fast DCE when successful crossjumps occured in the latest
9507 iteration of try_optimize_cfg.
9508
12661815 95092008-01-11 Richard Guenther <rguenther@suse.de>
9510
9511 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
9512 (struct vn_unary_op_s): Likewise.
9513 (vn_reference_insert): Free old reference on hash collision.
9514
5bed1dca 95152008-01-10 Raksit Ashok <raksit@google.com>
9516
9517 PR rtl-optimization/27971
7650360f 9518 * combine.c (find_split_point): Split PLUS expressions which are
9519 inside a MEM rtx, and whose first operand is complex.
5bed1dca 9520
4a6a8336 95212008-01-10 DJ Delorie <dj@redhat.com>
9522
9523 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
9524 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
9525 (m32c_hard_regno_ok): Call the underlying function.
9526
5c6e4974 95272008-01-10 Richard Guenther <rguenther@suse.de>
9528
9529 PR middle-end/34683
9530 * tree-cfg.c (tree_merge_blocks): Do not go through the
9531 full-blown folding and stmt updating path if we just deal
9532 with virtual operands.
9533 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
9534 test for abnormal SSA_NAMEs.
9535
cd6659e3 95362008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
9537
9538 PR middle-end/34641
9539 * reload.c (push_reload): Add assertions. All constants from
9540 reg_equiv_constant should have been used for replacing the respective
9541 pseudo earlier.
9542 (find_reloads_address): Invoke find_reloads_address_part for
9543 constant taken from the reg_equiv_constant array.
9544
6d6adc82 95452008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
9546
9547 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
9548 field (valnum) the first in the struct. Replace bools with
9549 unit bit fields.
9550
b050ae3e 95512008-01-10 Richard Guenther <rguenther@suse.de>
9552
9553 PR tree-optimization/34651
9554 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
9555 types and ordering for masking and converting.
9556
77727654 95572008-01-09 Sebastian Pop <sebastian.pop@amd.com>
9558
9559 PR tree-optimization/34017
9560 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
9561 also for PHI_NODE expressions.
9562
cc9c1c51 95632008-01-09 Jan Hubicka <jh@suse.cz>
9564
9565 PR tree-optimization/34708
9566 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
9567 based on number of case labels.
9568 (init_inline_once): Remove switch_cost.
9569 * tree-inline.h (eni_weights_d): Remove switch_cost.
9570
e8b8bad7 95712008-01-09 Richard Guenther <rguenther@suse.de>
9572 Andrew Pinski <andrew_pinski@playstation.sony.com>
9573
9574 PR middle-end/30132
9575 * gimplify.c (gimplify_cond_expr): Do not create an addressable
9576 temporary if an rvalue is ok or an lvalue is not required.
9577
8b58aec5 95782008-01-09 Richard Guenther <rguenther@suse.de>
9579
9580 PR middle-end/34458
9581 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
9582 adjust return type.
9583
b2ee3594 95842008-01-09 Richard Guenther <rguenther@suse.de>
9585
9586 PR middle-end/34679
9587 * tree.c (host_integerp): Check for sizetype only if the
9588 type is an integer type.
9589
3e6bab0c 95902008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
9591
9592 PR debug/26364
9593 * opts.c (decode_options): Disable inlining of functions called
9594 once if not in unit-at-a-time mode.
9595
f72a5ea4 95962008-01-09 Alexandre Oliva <aoliva@redhat.com>
9597
9598 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
9599
454a1307 96002008-01-08 Richard Guenther <rguenther@suse.de>
9601
9602 PR middle-end/31863
9603 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
9604 out early if the result will be unused.
9605
1615433d 96062008-01-08 Uros Bizjak <ubizjak@gmail.com>
9607
9608 PR target/34709
9609 Revert:
9610
9611 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
9612 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9613 for TARGET_RECIP.
9614
e96df6c2 96152008-01-08 Jan Sjodin <jan.sjodin@amd.com>
9616
1615433d 9617 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
9618 for vectorization tuned.
e96df6c2 9619
911908dc 96202008-01-08 Richard Guenther <rguenther@suse.de>
9621
9622 PR tree-optimization/34683
9623 * tree-ssa-operands.c (operand_build_cmp): Export.
9624 * tree-ssa-operands.h (operand_build_cmp): Declare.
9625 * tree-vn.c (vuses_compare): Remove.
9626 (sort_vuses): Use operand_build_cmp.
9627 (sort_vuses_heap): Likewise.
9628 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
9629 to re-use old VEC if available. Do not sort already sorted VUSEs.
9630 (vdefs_to_vec): Do not sort already sorted VDEFs.
9631
d7c85fac 96322008-01-08 Jakub Jelinek <jakub@redhat.com>
9633
9634 PR middle-end/34694
9635 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
9636
c7f0e882 96372008-01-08 Uros Bizjak <ubizjak@gmail.com>
9638
9639 PR target/34702
9640 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
9641 limitations of reciprocal sequences on x86 targets.
9642
b5ea3701 96432008-01-08 Richard Guenther <rguenther@suse.de>
9644
9645 PR tree-optimization/34683
9646 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
9647
a7df40d7 96482008-01-07 Jakub Jelinek <jakub@redhat.com>
9649
9650 PR target/34622
9651 * config/darwin.c (darwin_mergeable_string_section): Don't use
9652 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
9653
5921cbdf 96542008-01-07 Uros Bizjak <ubizjak@gmail.com>
9655
9656 PR target/34682
9657 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
9658 negxf2. Macroize expander using X87MODEF mode iterator. Change
9659 predicates of op0 and op1 to register_operand.
c7f0e882 9660 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
9661 expander using X87MODEF mode iterator. Change predicates of
9662 op0 and op1 to register_operand.
5921cbdf 9663 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
9664 corresponding patterns and macroize using MODEF macro. Change
9665 predicates of op0 and op1 to register_operand and remove
9666 "m" constraint. Disparage "r" alternative with "!".
9667 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
9668 macroize using X87MODEF macro. Change predicates of op0 and op1
9669 to register_operand and remove "m" constraint. Disparage "r"
9670 alternative with "!".
9671 (absneg splitter with memory operands): Remove.
9672 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
9673 patterns and macroize using X87MODEF mode iterator.
9674 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
9675 Change predicate of op1 to register_operand.
9676 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
c7f0e882 9677 for memory operands.
5921cbdf 9678
1dd6dd88 96792008-01-07 Nathan Froyd <froydnj@codesourcery.com>
9680
9681 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
9682
b041d147 96832008-01-07 Richard Guenther <rguenther@suse.de>
9684
9685 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
9686 fields.
9687
3ee3dfa4 96882008-01-07 Richard Guenther <rguenther@suse.de>
9689
9690 PR tree-optimization/34683
9691 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
9692 VOPs of the needed size to save memory. Use VEC_quick_push
9693 to save compile-time.
9694 (vdefs_to_vec): Likewise.
9695
ca03fed0 96962008-01-07 Sa Liu <saliu@de.ibm.com>
3ee3dfa4 9697
5921cbdf 9698 * config/spu/spu.md (divdf3): Genetate inline code for double
9699 division. The implementation doesn't handle INF or NAN, therefore it
9700 only applies when -ffinite-math-only is given.
ca03fed0 9701
be46c846 97022008-01-06 Paolo Carlini <pcarlini@suse.de>
9703
9704 PR libstdc++/34680
9705 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
9706 * doc/cpp.texi ([Common Predefined Macros]): Document.
9707
9edaf48c 97082008-01-06 Uros Bizjak <ubizjak@gmail.com>
9709
9710 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
9711 order to use commutative addition instead of subtraction.
9712
aa620173 97132008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
9714 Mircea Namolaru <namolaru@il.ibm.com>
9715 Vladimir Yanovsky <yanov@il.ibm.com>
9716 Revital Eres <eres@il.ibm.com>
9717
9718 PR tree-optimization/34263
9719 * tree-outof-ssa.c (process_single_block_loop_latch,
9720 contains_tree_r): New functions.
9721 (analyze_edges_for_bb): Call process_single_block_loop_latch
9722 function to empty single-basic-block latch block if possible.
9723
459609ab 97242008-01-05 Uros Bizjak <ubizjak@gmail.com>
9725
9726 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9727 for TARGET_RECIP.
9728 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
9729
35160457 97302008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
9731
9732 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
9733
5f98e2aa 97342008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
9735
9736 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
9737
640fba6f 97382008-01-05 Jakub Jelinek <jakub@redhat.com>
9739
9740 PR tree-optimization/34618
9741 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
9742 flag from T.
9743
1a086819 97442008-01-05 Uros Bizjak <ubizjak@gmail.com>
9745
9746 PR target/34673
9747 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
9748 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
9749 Update copyright year.
9750
9751 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
9752 Update copyright year.
9753 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
9754 using NR fixup.
9755
f831baaf 97562008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
9757
9758 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
9759 edge does not point to current bb before changing need_assert.
9760
cd3f90e2 97612008-01-04 Richard Guenther <rguenther@suse.de>
9762
9763 PR middle-end/34029
9764 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
9765 for verifying purposes if they are is_gimple_min_invariant.
9766
5b56c905 97672008-01-04 Aldy Hernandez <aldyh@redhat.com>
9768
9769 PR tree-optimization/34448
9770 PR tree-optimization/34465
9771 * gimplify.c (gimplify_init_constructor): Add new parameter
9772 notify_temp_creation. Use it.
9773 (gimplify_modify_expr_rhs): Take volatiles into account when
9774 optimizing constructors.
9775 Do not optimize constructors if gimplify_init_constructor will dump to
9776 memory.
9777 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
9778 * gcc.c-torture/compile/pr34448.c: New.
9779
dfbb5324 97802008-01-04 Jakub Jelinek <jakub@redhat.com>
9781
9782 PR gcov-profile/34609
9783 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
9784 return_slot if result is TREE_ADDRESSABLE.
9785
1bbc673e 97862008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
9787
9788 * config/mips/mips.md (sqrt_condition): Tweak comment.
9789 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
9790
78c2e180 97912008-01-03 Tom Tromey <tromey@redhat.com>
9792
dfbb5324 9793 PR c/34457
78c2e180 9794 * c-common.c (c_type_hash): Handle VLAs.
9795
186f5fff 97962008-01-03 Jan Hubicka <jh@suse.cz>
9797
9798 PR tree-optimization/31081
9799 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
9800 0 when inlining and not inlining to first basic block.
9801 (remap_decl): When var is initialized to 0, don't set default_def.
9802 (expand_call_inline): Set entry_bb.
9803 * tree-inline.h (copy_body_data): Add entry_bb.
9804
361c9aad 98052008-01-03 Jakub Jelinek <jakub@redhat.com>
9806
e3a37aef 9807 PR c++/34619
9808 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
9809 before returning.
9810
361c9aad 9811 PR tree-optimization/29484
9812 * tree-inline.c (inline_forbidden_p_2): New function.
9813 (inline_forbidden_p): Disallow inlining if some static var
9814 has an address of a local LABEL_DECL in its initializer.
9815 * doc/extend.texi (Labels as Values): Document &&foo behaviour
9816 vs. inlining.
9817
e1feff4f 98182008-01-03 Sebastian Pop <sebastian.pop@amd.com>
bfe20447 9819
9820 PR tree-optimization/34635
9821 * tree-data-ref.c (add_other_self_distances): Make sure that the
9822 evolution step is constant.
9823
fbe86b1b 98242008-01-03 Jakub Jelinek <jakub@redhat.com>
9825
9826 PR middle-end/34608
f831baaf 9827 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
fbe86b1b 9828
99f35fae 98292008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
9830
9831 * tree-sra.c (scalarize_init): Insert the generate_element_init
9832 statements after the generate_element_zero statements.
9833
20e67c9a 98342008-01-02 Richard Guenther <rguenther@suse.de>
9835
9836 PR middle-end/34093
9837 PR middle-end/31976
9838 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
9839 for very large number of operands instead of ICEing.
9840
02be515c 98412008-01-02 Arthur Norman <acn1@cam.ac.uk>
9842
f831baaf 9843 PR target/34013
a4890dc9 9844 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
02be515c 9845 while stack probing.
9846
799bdf64 98472008-01-01 Douglas Gregor <doug.gregor@gmail.com>
9848
02be515c 9849 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
f831baaf 9850 in C++0x mode.
799bdf64 9851
65e47be2 98522008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
9853
9854 PR libmudflap/26442
9855 * tree-mudflap.c (mx_register_decls): Guard warning by
9856 !DECL_ARTIFICIAL check.
9857
25a3b4c5 98582008-01-01 Jakub Jelinek <jakub@redhat.com>
9859
9860 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
9861 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
9862 sse5_perm<mode>): Fix constraints.