]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
libgomp.exp: Load torture-options.exp from gcc lib.
[gcc.git] / gcc / ChangeLog
CommitLineData
91a5b394
JJ
12008-05-15 Janis Johnson <janis187@us.ibm.com>
2
3 * doc/sourcebuild.texi: Document support for torture tests.
4
2819ae08
UB
52008-05-15 Uros Bizjak <ubizjak@gmail.com>
6
7 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
8 to alternative 4 of operand 2.
9
9fe0cb7d
RG
102008-05-15 Richard Guenther <rguenther@suse.de>
11
12 * tree-pass.h (current_pass): Declare.
13 (get_pass_for_id): Likewise.
14 * passes.c (passes_by_id, passes_by_id_size): New globals.
15 (set_pass_for_id): New function.
16 (get_pass_for_id): Likewise.
17 (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
18 (execute_function_todo): Flush per function statistics.
19 * toplev.c (compile_file): Init statistics.
20 (general_init): Do early statistics initialization.
21 (finalize): Finish statistics.
22 * statistics.h (statistics_early_init): Declare.
23 (statistics_init): Likewise.
24 (statistics_fini): Likewise.
25 (statistics_fini_pass): Likewise.
26 (statistics_counter_event): Likewise.
27 (statistics_histogram_event): Likewise.
28 * statistics.c: New file.
29 * Makefile.in (OBJS-common): Add statistics.o.
30 (statistics.o): Add dependencies.
31 * doc/invoke.texi (-fdump-statistics): Document.
32
33 * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
34 (insert): Likewise.
35 (execute_pre): Use statistics_counter_event.
36 * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
37 (substitute_and_fold): Increment it. Use statistics_counter_event.
38
77f377f7
DN
392008-05-15 Diego Novillo <dnovillo@google.com>
40
41 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
42
43 * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
44 * tree-ssa-alias.c (new_type_alias): Remove references to
45 sub-variables from comment.
46 * tree-ssa-operands.c (swap_tree_operands): Likewise.
47
89b7851e
L
482008-05-15 H.J. Lu <hongjiu.lu@intel.com>
49
50 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
51 attribute to 1 only for insertps alternative.
52
8fa477f7
BS
532008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
54
55 * config/bfin/bfin.md (loadbytes): New pattern.
56 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
57 (bfin_init_builtins): Initialize it.
58 (bdesc_1arg): Add it.
59
4e8c438f
SL
602008-05-15 Sa Liu <saliu@de.ibm.com>
61
62 * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
63 * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
64 * testsuite/lib/target-supports.exp: Add
65 check_effective_target_fortran_integer_16.
66
7ba20e60
BS
672008-05-15 Bernd Schmidt <bernd.schmidt@analog.com>
68
69 * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
70 * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
71 * config/bfin/bfin.c (bfin_return_in_memory): Now static. Return bool.
72 (TARGET_RETURN_IN_MEMORY): Define.
73
81d19c06
RG
742008-05-15 Richard Guenther <rguenther@suse.de>
75
76 PR middle-end/36244
77 * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
78 * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
79 represent unmodifiable vars.
80
9f59420d
RG
812008-05-15 Richard Guenther <rguenther@suse.de>
82
83 * tree-dfa.c (refs_may_alias_p): Allow all kinds of
84 INDIRECT_REF and TARGET_MEM_REF.
85 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
86 TARGET_MEM_REF.
87
6784c6e0
UB
882008-05-15 Uros Bizjak <ubizjak@gmail.com>
89 H.J. Lu <hongjiu.lu@intel.com>
90
91 * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
92 (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
93 for operand 2. Remove pinsr{q,d} with 0x0 immediate operand from
94 insn alternatives. Add missing alternatives.
95 (*vec_concatv2di_rex64_sse4_1): Likewise.
96 (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
97 (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
98 Require TARGET_SSE.
99
8ded35f9
RG
1002008-05-15 Richard Guenther <rguenther@suse.de>
101
102 PR tree-optimization/36009
103 PR tree-optimization/36204
104 * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
105 (determine_invariantness_stmt): Record the loop a store is
106 always executed in.
107 * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
108 dependency.
109
45ff5eda
RG
1102008-05-15 Richard Guenther <rguenther@suse.de>
111
112 PR tree-optimization/34330
113 * tree-ssa-alias.c (get_smt_for): Only assert that accesses
114 through the pointer will alias the SMT.
115
c5fcd670
AT
1162008-05-14 Andreas Tobler <a.tobler@schweiz.org>
117
118 * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
119
a3f63c28
L
1202008-05-14 H.J. Lu <hongjiu.lu@intel.com>
121
122 * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
123
71d46ca5
MM
1242008-05-14 Michael Meissner <michael.meissner@amd.com>
125 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
126
127 * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
128 OTI_vrotl, OTI_vrotr to support vector/vector shifts.
129 (vashl_optab): New optab for vector/vector shifts.
130 (vashr_optab): Ditto.
131 (vlshr_optab): Ditto.
132 (vrotl_optab): Ditto.
133 (vrotr_optab): Ditto.
134 (optab_subtype): New enum for optab_for_tree_code call.
135 (optab_for_tree_code): Add enum optab_subtype argument.
136
137 * optabs.c (optab_for_tree_code): Take an additional argument to
138 distinguish between a vector shift by a scalar and vector shift by
139 a vector. Make lshr/ashr/ashl/rotl/rotr optabs just vector
140 shifted by a scalar. Use vlshr/vashr/vashl/vrotl/vrotr for the
141 vector shift by a vector.
142 (expand_widen_pattern_expr): Pass additional argument to
143 optab_for_tree_code.
144
145 * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
146 vrotl_optab, vrotr_optab.
147
148 * expr.c (expand_expr_real_1): Update calls to
149 optab_for_tree_code to distinguish between vector shifted by a
150 scalar and vector shifted by a vector.
151 * tree-vectorizer.c (supportable_widening_operation): Ditto.
152 (supportable_narrowing_operation): Ditto.
153 * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
154 * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
155 * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
156 (vect_create_epilog_for_reduction): Ditto.
157 (vectorizable_reduction): Ditto.
158 (vectorizable_operation): Ditto.
159 (vect_strided_store_supported): Ditto.
160 (vect_strided_load_supported): Ditto.
161 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
162 * expmed.c (expand_shift): Ditto.
163
164 * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
165 scalar type.
166 (ashr@var{m}3): Ditto.
167 (vashl@var{m}3): Document new vector/vector shift standard name.
168 (vashr@var{m}3): Ditto.
169 (vlshr@var{m}3): Ditto.
170 (vrotl@var{m}3): Ditto.
171 (vrotr@var{m}3): Ditto.
172
6784c6e0 173 * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
71d46ca5
MM
174 (PPERM_INVERT): Ditto.
175 (PPERM_REVERSE): Ditto.
176 (PPERM_REV_INV): Ditto.
177 (PPERM_ZERO): Ditto.
178 (PPERM_ONES): Ditto.
179 (PPERM_SIGN): Ditto.
180 (PPERM_INV_SIGN): Ditto.
181 (PPERM_SRC1): Ditto.
182 (PPERM_SRC2): Ditto.
183
184 * config/i386/sse.md (mulv2di3): Add SSE5 support.
185 (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
186 allows a memory operand to be the value being added, and split it
187 to improve vectorization.
188 (sse5_pmacsdqh_mem): Ditto.
189 (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
190 (sse5_mulv2div2di3_high): Ditto.
191 (vec_pack_trunc_v8hi): Add SSE5 pperm support.
192 (vec_pack_trunc_v4si): Ditto.
193 (vec_pack_trunc_v2di): Ditto.
194 (sse5_pcmov_<mode>): Remove code that tried to use use
195 andps/andnps instead of pcmov.
196 (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
197 pmacsdqh instructions.
198 (vec_widen_smult_lo_v4si): Ditto.
199
200 * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
201 (PPERM_INVERT): Ditto.
202 (PPERM_REVERSE): Ditto.
203 (PPERM_REV_INV): Ditto.
204 (PPERM_ZERO): Ditto.
205 (PPERM_ONES): Ditto.
206 (PPERM_SIGN): Ditto.
207 (PPERM_INV_SIGN): Ditto.
208 (PPERM_SRC1): Ditto.
209 (PPERM_SRC2): Ditto.
210 (ix86_expand_sse_movcc): Move the SSE5 test after the if
211 true/false tests.
212 (ix86_expand_int_vcond): If SSE5 generate all possible integer
213 comparisons.
214 (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
215 says ignore whether the last reference is a memory operand.
216
2172008-05-14 Michael Meissner <michael.meissner@amd.com>
218 Paolo Bonzini <bonzini at gnu dot org>
219
220 * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
221 shift patterns.
222
6784c6e0 223 * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
71d46ca5
MM
224 (vlshr<mode>3): Rename from vlshr<mode>3.
225 (vashr<mode>3): Rename from vashr<mode>3.
226 (mulv4sf3): Change the names of vector shift patterns.
227 (mulv4si3): Ditto.
228 (negv4sf2): Ditt.
229
230 * config/spu/spu.c (spu_initialize_trampoline): Rename vector
231 shift insns.
232
6784c6e0 233 * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
71d46ca5
MM
234 (SI_SHLHI): Ditto.
235 (SI_SHL): Ditto.
236 (SI_SHLI): Ditto.
237 (SI_ROTH): Ditto.
238 (SI_ROTHI): Ditto.
239 (SI_ROT): Ditto.
240 (SI_ROTI): Ditto.
241 (SPU_RL_0): Ditto.
242 (SPU_RL_1): Ditto.
243 (SPU_RL_2): Ditto.
244 (SPU_RL_3): Ditto.
245 (SPU_RL_4): Ditto.
246 (SPU_RL_5): Ditto.
247 (SPU_RL_6): Ditto.
248 (SPU_RL_7): Ditto.
249 (SPU_SL_0): Ditto.
250 (SPU_SL_1): Ditto.
251 (SPU_SL_2): Ditto.
252 (SPU_SL_3): Ditto.
253 (SPU_SL_4): Ditto.
254 (SPU_SL_5): Ditto.
255 (SPU_SL_6): Ditto.
256 (SPU_SL_7): Ditto.
257
258 * config/spu/spu.md (v): New iterator macro to add v for vector types.
259 (floatunssidf2_internal): Change vector/vector shift names.
260 (floatunsdidf2_internal): Ditto.
261 (mulv8hi3): Ditto.
262 (ashrdi3): Ditto.
263 (ashrti3): Ditto.
264 (cgt_df): Ditto.
265 (cgt_v2df): Ditto.
266 (dftsv): Ditto.
267 (vashl<mode>3): Rename from ashl<mode>3.
268 (vashr<mode>3): Rename from ashr<mode>3.
269 (vlshr<mode>3): Rename from lshr<mode>3.
270 (vrotl<mode>3): Rename from rotl<mode>3.
271
550c9cf0
MM
2722008-05-14 Michael Meissner <michael.meissner@amd.com>
273
274 PR target/36224
6784c6e0
UB
275 * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
276 multiply gives the wrong value when doing widening multiplies.
550c9cf0
MM
277 (vec_widen_smult_lo_v4si): Ditto.
278
84b8030f
KZ
2792008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
280
281 * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
282 LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
283 emit_library_call_value.
284 * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
285 * tree.h (ECF_LIBCALL_BLOCK): Removed.
286 * calls.c (initialize_argument_information, precompute_arguments,
287 expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
288 (precompute_arguments): Removed flags parameter.
289 * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
290
f403a4a2
RG
2912008-05-14 Richard Guenther <rguenther@suse.de>
292
293 * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
294 Make sure to register the store if the use is a PHI_NODE.
295
da19297d
OH
2962008-05-14 Olivier Hainque <hainque@adacore.com>
297
298 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
299 memory if the component is to be referenced in BLKmode according
300 to get_inner_reference.
301
1fd03c70
AN
3022008-05-14 Adam Nemet <anemet@caviumnetworks.com>
303
304 * calls.c (emit_library_call_value_1): Restore code clearing
6784c6e0 305 ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1fd03c70 306
349c3166
OH
3072008-05-14 Olivier Hainque <hainque@adacore.com>
308 Nicolas Roche <roche@adacore.com>
309
310 * configure.ac: Add support for a "gcc_subdir" variable in
311 config-lang.in, to denote a subdirectory where the language/GCC
312 integration files are to be found.
313 * configure: Regenerate.
314
2b8775f3
IR
3152008-05-14 Ira Rosen <irar@il.ibm.com>
316
317 PR tree-optimization/36098
318 * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
319 value for the first load in the group in case of a gap.
320 (vect_build_slp_tree): Check that there are no gaps in loads.
321
d70dcf29
KZ
3222008-05-14 Kenneth Zadeck <zadeck@naturalbridge.com>
323
324 * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
325 * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
326 expand_copysign_bit, ): Change call to emit_no_conflict_block to
327 emit_insn and remove unneeded code to construct extra args.
328 (emit_no_conflict_block): Removed.
329 * optabls.h: (emit_no_conflict_block): Removed.
330 * cse.c (cse_extended_basic_block): Remove search for
6784c6e0 331 REG_NO_CONFLICT note.
d70dcf29
KZ
332 * global.c: Removed incorrect comment added in revision 117.
333 * expr.c (convert_move): Change call to emit_no_conflict_block to
334 emit_insn.
335 * recog.c: Change comments so that they do not mention
336 REG_NO_CONFLICT.
337 * local_alloc.c (combine_regs): Removed last parameter.
338 (no_conflict_p): Removed.
339 (block_alloc): Removed note, no_conflict_combined_regno and set
340 local vars. Removed all code to process REG_NO_CONFLICT blocks.
341 (combine_regs): Removed already_dead and code to look for
342 REG_NO_CONFLICT notes.
343 * lower_subreg (remove_retval_note): Removed code to look for
344 REG_NO_CONFLICT block.
345 (resolve_reg_notes): Removed REG_NO_CONFLICT case.
346 (resolve_clobber): Remove code to process libcalls that have
347 REG_NO_CONFLICT notes.
348 * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
349 case.
6784c6e0
UB
350 * combine.c (can_combine_p, distribute_notes): Removed
351 REG_NO_CONFLICT case.
352 * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
353 to emit_insns.
d70dcf29
KZ
354 * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
355 * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6784c6e0 356 Ditto.
d70dcf29 357 * reg-notes.def (NO_CONFLICT): Removed.
c5fcd670 358
cc44abe6
DM
3592008-05-14 David S. Miller <davem@davemloft.net>
360
361 * config/sparc/sparc.c (sparc_profile_hook): If
6784c6e0 362 NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
cc44abe6
DM
363 * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
364 * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
365
0beb3d66
AK
3662008-05-14 Andreas Krebbel <krebbel1@de.ibm.com>
367
368 * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
369
08e64088
UB
3702008-05-13 Uros Bizjak <ubizjak@gmail.com>
371
372 PR target/36222
373 * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
374 and op1 expansion before vector concat to have less live pseudos.
375
af7ae5d1
L
3762008-05-13 H.J. Lu <hongjiu.lu@intel.com>
377
378 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
379 ix86_expand_vector_set if supported.
380
5db9ba0c
DN
3812008-05-13 Diego Novillo <dnovillo@google.com>
382 Kenneth Zadeck <zadeck@naturalbridge.com>
383
384 http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
385
386 * tree.h (init_phinodes, fini_phinodes, release_phi_node,
387 phinodes_print_statistics, init_ssanames, fini_ssanames,
08e64088
UB
388 make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
389 release_ssa_name, release_defs, replace_ssa_name_symbol,
5db9ba0c
DN
390 ssanames_print_statistics): Move ...
391 * tree-flow.h: ... here.
08e64088
UB
392 * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
393 Use FN instead of cfun.
5db9ba0c 394 (make_ssa_name_fn): Rename from make_ssa_name.
08e64088 395 (pass_release_ssa_names): Add TODO_dump_func to finish flags.
5db9ba0c 396 * tree-flow-inline.h (make_ssa_name): Move from
08e64088 397 tree-ssanames.c. Convert to static inline. Call make_ssa_name_fn.
5db9ba0c
DN
398 * omp-low.c (expand_omp_parallel):
399 * tree-flow-inline.h (redirect_edge_var_map_result):
6784c6e0
UB
400 * tree-ssa.c (init_tree_ssa): Add argument FN.
401 Use it instead of cfun. Update all users.
5db9ba0c 402
899015a0
TT
4032008-05-13 Tom Tromey <tromey@redhat.com>
404
405 PR preprocessor/22168:
406 * doc/cpp.texi (Top): Update menu.
407 (Alternatives to Wrapper #ifndef): New node.
408 (Other Directives): Document deprecation.
409 (Obsolete Features): Remove menu.
410 (Assertions): Merge node into Obsolete Features.
411 (Obsolete once-only headers): Move earlier; rename to Alternatives
412 to Wrapper #ifndef.
413 * doc/cppopts.texi: Update.
414 * c.opt (Wdeprecated): Enable for C and ObjC.
415 * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
416 (C++ Dialect Options): Move -Wno-deprecated from here to...
417 (Warning Options): ... here.
418
8ebc39d8
RG
4192008-05-13 Richard Guenther <rguenther@suse.de>
420
421 PR middle-end/36227
422 * fold-const.c (fold_sign_changed_comparison): Do not allow
423 changes in pointer-ness.
424
ef0a7607
KK
4252008-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
426
427 PR target/24713
428 * config/sh/sh.c (sh_expand_prologue): Don't clear
429 RTX_FRAME_RELATED_P for push insns.
430
9c218cfc
AH
4312008-05-12 Andy Hutchinson <hutchinsonandy@aim.com>
432
433 * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
434
4c75f709
AS
4352008-05-12 Anatoly Sokolov <aesok@post.ru>
436
437 * config/avr/avr.h (machine_function): Add 'is_leaf' field.
438 * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
439 Use 'machine->is_leaf' instead of 'leaf_func_p'.
440
fcc9fe1e
L
4412008-05-12 H.J. Lu <hongjiu.lu@intel.com>
442
443 * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
444 (*vec_concatv4sf_sse): This.
445 (*sse2_concatv2si): Renamed to ...
446 (*vec_concatv2si_sse2): This.
447 (*sse1_concatv2si): Renamed to ...
448 (*vec_concatv2si_sse): This.
449 (*vec_concatv2di_rex): Renamed to ...
450 (*vec_concatv2di_rex64): This.
451 (*vec_concatv2si_sse4_1): New.
452 (*vec_concatv2di_rex64_sse4_1): Likewise.
453
162bfc7e
UB
4542008-05-12 Uros Bizjak <ubizjak@gmail.com>
455
456 PR rtl-optimization/36111
457 * recog.c (validate_replace_rtx_1): Unshare new RTL expression
458 that was created for swappable operands.
459
3d4e720a
ST
4602008-05-12 Samuel Tardieu <sam@rfc1149.net>
461
462 PR ada/36001
463 * Makefile.in: Substitute GNATMAKE and GNATBIND.
464 * configure.ac: Add call to ACX_PROG_GNAT.
465
fc54bc84
VR
4662008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
467
468 * optc-gen.awk: Fix comment typo.
469
2a157700
AL
4702008-05-11 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
471
472 * pretty-print.c (pp_integer_with_precision): Use
473 HOST_LONG_LONG_FORMAT.
474
4e00d960
KZ
4752008-05-10 Kenneth Zadeck <zadeck@naturalbridge.com>
476
477 * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
478
b282a8d3
L
4792008-05-10 H.J. Lu <hongjiu.lu@intel.com>
480
481 * config/i386/i386.c (bdesc_ptest): Removed.
482 (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
483 (bdesc_args): Add __builtin_ia32_ptestz128,
484 __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
485 (ix86_init_mmx_sse_builtins): Updated.
486 (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
487 (ix86_expand_builtin): Updated.
488
17d23165
RS
4892008-05-10 Richard Sandiford <rdsandiford@googlemail.com>
490
491 * tree-cfg.c (valid_fixed_convert_types_p): New function.
492 (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
493
d35910bf
UB
4942008-05-10 Uros Bizjak <ubizjak@gmail.com>
495
496 * value-prof.c (interesting_stringop_to_profile): Do not
497 return early for BUILT_IN_MEMPCPY.
498
17b29c0a
L
4992008-05-09 H.J. Lu <hongjiu.lu@intel.com>
500
501 * calls.c (expand_call): Don't use callgraph to increase
502 preferred_stack_boundary.
503
504 * cgraph.h (cgraph_rtl_info): Use unsigned on
505 preferred_incoming_stack_boundary.
506
507 * final.c (rest_of_clean_state): Use unsigned on
508 preferred_stack_boundary.
509
4822e563
TT
5102008-05-09 Tom Tromey <tromey@redhat.com>
511
512 PR preprocessor/22231:
513 * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
514 proceeding.
515
53a8f709
UB
5162008-05-09 Uros Bizjak <ubizjak@gmail.com>
517
518 PR tree-optimization/36129
162bfc7e 519 * tree-ssa-ccp.c: Include value-prof.h.
53a8f709
UB
520 (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
521 built-in function was folded to a constant.
162bfc7e 522 * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
53a8f709 523
3f227a8c
JS
5242008-05-09 Jan Sjodin <jan.sjodin@amd.com>
525 Sebastian Pop <sebastian.pop@amd.com>
526
527 * tree-scalar-evolution.c: Document instantiate_scev.
528 (instantiate_parameters_1): Renamed instantiate_scev_1.
529 Don't use the same loop for instantiation_loop and evolution_loop.
530 (instantiate_scev): New.
531 (instantiate_parameters): Moved...
532 (resolve_mixers): Update call to instantiate_scev_1 to pass the
533 same loop twice. Maintains the semantics for this function.
534 * tree-scalar-evolution.h (instantiate_scev): Declare.
535 (instantiate_parameters): ...here. Now static inline.
536 * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
537 instead of resolve_mixers.
538
a3e19be6
MK
5392008-05-09 Maxim Kuvyrkov <maxim@codesourcery.com>
540
541 * rtl-factoring.c (collect_pattern_seqs): Fix typo.
542
1043771b
TB
5432008-05-09 Tomas Bily <tbily@suse.cz>
544
545 * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
546 * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
547 * tree-ssa-structalias.c (get_constraint_for): Likewise.
548 * c-common.c (c_common_truthvalue_conversion): Likewise.
549 * tree-object-size.c (compute_object_offset): Likewise.
550 * tree-inline.c (estimate_num_insns_1): Likewise.
551 * varasm.c (const_hash_1, compare_constant, copy_constant)
552 (compute_reloc_for_constant, output_addressed_constants)
553 (initializer_constant_valid_p): Likewise.
554 * c-omp.c (check_omp_for_incr_expr): Likewise.
555 * gimplify.c (gimplify_expr): Likewise.
556 * c-typeck.c (c_finish_return): Likewise.
557 * tree-vectorizer.c (supportable_widening_operation)
558 (supportable_narrowing_operation): Likewise.
559 * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
560 * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
561 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
562 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
563 (descr_info_loc): Likewise.
564 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
565 * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
566 (fold_unary): Likewise.
567 * builtins.c (get_pointer_alignment): Likewise.
568 * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
569 (instantiate_parameters_1): Likewise.
570 * tree.c (expr_align, stabilize_reference): Likewise.
571 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
572 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
573 * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
574 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
575 * config/alpha/alpha.c (va_list_skip_additions): Likewise.
162bfc7e
UB
576 * c-common.c (c_alignof_expr, check_function_arguments_recurse):
577 Likewise.
1043771b
TB
578 * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
579 * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
580 * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
581 (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
582 (forward_propagate_comparison)
583 (tree_ssa_forward_propagate_single_use_vars): Likewise.
584 * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
585 * emit-rtl.c (component_ref_for_mem_expr)
586 (set_mem_attributes_minus_bitpos): Likewise.
587 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
162bfc7e
UB
588 * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
589 Likewise.
1043771b
TB
590 * c-typeck.c (default_function_array_conversion, build_indirect_ref)
591 (build_function_call, pointer_diff, build_compound_expr)
592 (c_finish_return): Likewise.
593 * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
162bfc7e
UB
594 * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
595 Likewise.
1043771b
TB
596 * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
597 * expr.c (is_aligning_offset): Likewise.
598 * tree-ssa-alias.c (is_escape_site): Likewise.
599 * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
600 (check_all_va_list_escapes): Likewise.
601 * tree-ssa-loop-ivopts.c (determine_base_object)
602 (determine_common_wider_type): Likewise.
603 * dojump.c (do_jump): Likewise.
604 * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
605 * tree-gimple.c (is_gimple_cast): Likewise.
606 * fold-const.c (decode_field_reference, )
607 (fold_sign_changed_comparison, fold_unary, fold_comparison)
608 (fold_binary): Likewise.
609 * tree-ssa-alias-warnings.c (find_alias_site_helper)
610 (already_warned_in_frontend_p): Likewise.
611 * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
612 * tree.c (really_constant_p, get_unwidened): Likewise.
613 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
614 * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
162bfc7e
UB
615 * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
616 Likewise.
617 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
618 CONVERT_EXPR_P.
1043771b
TB
619 (CONVERT_EXPR_P): Define.
620 (CASE_CONVERT): Define.
621
5ba5ab9b
KZ
6222008-05-08 Kenneth Zadeck <zadeck@naturalbridge.com>
623
624 PR middle-end/36117
162bfc7e
UB
625 * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
626 (delete_unmarked_insns): When deleting a call, call
5ba5ab9b
KZ
627 delete_unreachable_blocks.
628 * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
162bfc7e
UB
629 RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
630
1353232d
RG
6312008-05-08 Richard Guenther <rguenther@suse.de>
632
633 * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
634 (-ftree-salias): Likewise.
635 (salias-max-implicit-fields): Remove param documentation.
636 (salias-max-array-elements): Likewise.
637 * tree-pass.h (pass_create_structure_vars): Remove.
638 * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
639 (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
640 * tree-ssa-alias.c (create_structure_vars): Remove.
641 (gate_structure_vars): Likewise.
642 (pass_create_structure_vars): Likewise.
643 (gate_build_alias): Likewise.
644 (pass_build_alias): Adjust to run always and dump the function.
645 * common.opt (ftree-salias): Hide.
646 * passes.c (init_optimization_passes): Remove
647 pass_create_structure_vars, adjust comment.
648 * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
649 (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
650 * opts.c (decode_options): Do not set flag_tree_salias.
651 (common_handle_option): Add OPT_ftree_salias to the backward
652 compatibility section.
653
31de5b77
RG
6542008-05-08 Richard Guenther <rguenther@suse.de>
655
656 * tree-flow-inline.h (var_can_have_subvars): Move ...
657 * tree-ssa-structalias.c (var_can_have_subvars): ... here.
658 * tree-flow.h (var_can_have_subvars): Remove.
659 (push_fields_onto_fieldstack): Remove.
660 (sort_fieldstack): Likewise.
661 (struct fieldoff): Move ...
662 * tree-ssa-structalias.c (struct fieldoff): ... here. Remove
663 alias_set and base_for_components fields.
664 (sort_fieldstack): Make static.
665 (push_fields_onto_fieldstack): Likewise. Remove code that
666 handles anything but RECORD_TYPEs. Remove alias_set and
667 base_for_components handling.
668 (create_variable_info_for): Adjust.
669
c1a3620a 6702008-05-08 Seongbae Park <seongbae.park@gmail.com>
b70837af 671
c1a3620a
SP
672 * common.opt (Wframe-larger-than=): Shorten the help message
673 to one line.
674 * doc/invoke.texi (Wframe-larger-than=): Add more description.
675
04b03edb
RAE
6762008-05-08 Rafael Espindola <espindola@google.com>
677
678 * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
679 trap.
680 * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
681 trap and that both operands are gimple values.
682 (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
683 * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
684 is a fp operation.
685
96c92f47
RS
6862008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
687
688 * read-rtl.c (join_c_conditions): Return the first string if the
689 two strings are equal.
690
e663da80
RS
6912008-05-08 Richard Sandiford <rsandifo@nildram.co.uk>
692
693 * gensupport.h (pred_data): Add a "num_codes" field.
694 (add_predicate_code): Declare.
695 * gensupport.c (add_predicate_code): New function.
696 (std_pred_table): Add an "allows_const_p" field.
697 (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
698 Remove the (incomplete) list of such codes from the codes field.
699 (init_predicate_table): Use add_predicate_code. Add all
700 RTX_CONST_OBJs if allows_const_p is true.
701 * genrecog.c (process_define_predicate): Use add_predicate_code.
702
977502ff
DD
7032008-05-08 David Daney <ddaney@avtrex.com>
704 Richard Sandiford <rsandifo@nildram.co.uk>
705
706 * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
707 special case of constant zero operands.
708 * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
709 old and new values. Special case constant zero values.
710 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
711 fails.
712 (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
713 (MIPS_COMPARE_AND_SWAP_12_0): New macro.
714
627ab861
PB
7152008-05-08 Paolo Bonzini <bonzini@gnu.org>
716
717 PR target/36090
718 * simplify-rtx.c (simplify_plus_minus): Create CONST of
719 similar RTX_CONST_OBJ before CONST_INT.
720
41ccb5d1
SE
7212008-05-08 Steve Ellcey <sje@cup.hp.com>
722
723 * stmt.c (expand_stack_restore): Change sa mode if needed.
724
e8d6aaee
RG
7252008-05-08 Richard Guenther <rguenther@suse.de>
726
727 * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
728 return type to bool.
729 (ix86_sol10_return_in_memory): Likewise.
730 (ix86_i386elf_return_in_memory): Likewise.
731 (ix86_i386interix_return_in_memory): Likewise.
732 * config/i386/i386.c (ix86_return_in_memory): Likewise.
733 (ix86_sol10_return_in_memory): Likewise.
734 (ix86_i386elf_return_in_memory): Likewise.
735 (ix86_i386interix_return_in_memory): Likewise.
736
033df0b9
KT
7372008-05-08 Kai Tietz <kai.tietz@onevision.com>
738
d7822892 739 PR bootstrap/36180
033df0b9
KT
740 * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
741 fndecl argument.
d7822892
UB
742 (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
743 * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
744 declared in front.
033df0b9 745
5611cf0b
RG
7462008-05-08 Richard Guenther <rguenther@suse.de>
747
748 * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
749 * tree-data-ref.h (struct dr_alias): Remove subvars field.
750 (DR_SUBVARS): Remove.
751 * tree-dfa.c (dump_subvars_for): Remove.
752 (debug_subvars_for): Likewise.
753 (dump_variable): Do not dump subvars.
754 (remove_referenced_var): Do not remove subvars.
755 * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
756 (lookup_subvars_for_var): Remove.
757 (get_subvars_for_var): Likewise.
758 (get_subvars_at): Likewise.
759 (get_first_overlapping_subvar): Likewise.
760 (overlap_subvar): Likewise.
761 * tree-flow.h (subvar_t): Remove.
762 (struct var_ann_d): Remove subvars field.
763 * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
764 argument. Remove special handling of SFTs.
765 (compute_tag_properties): Likewise.
766 (set_initial_properties): Likewise.
767 (compute_call_clobbered): Likewise.
768 (count_mem_refs): Likewise.
769 (compute_memory_partitions): Likewise.
770 (compute_flow_insensitive_aliasing): Likewise.
771 (setup_pointers_and_addressables): Likewise.
772 (new_type_alias): Likewise.
773 (struct used_part): Remove.
774 (used_portions): Likewise.
775 (struct used_part_map): Likewise.
776 (used_part_map_eq): Likewise.
777 (used_part_map_hash): Likewise.
778 (free_used_part_map): Likewise.
779 (up_lookup): Likewise.
780 (up_insert): Likewise.
781 (get_or_create_used_part_for): Likewise.
782 (create_sft): Likewise.
783 (create_overlap_variables_for): Likewise.
784 (find_used_portions): Likewise.
785 (create_structure_vars): Likewise.
786 * tree.def (STRUCT_FIELD_TAG): Remove.
787 * tree.h (MTAG_P): Adjust.
788 (struct tree_memory_tag): Remove base_for_components and
789 unpartitionable flags.
790 (struct tree_struct_field_tag): Remove.
791 (SFT_PARENT_VAR): Likewise.
792 (SFT_OFFSET): Likewise.
793 (SFT_SIZE): Likewise.
794 (SFT_NONADDRESSABLE_P): Likewise.
795 (SFT_ALIAS_SET): Likewise.
796 (SFT_UNPARTITIONABLE_P): Likewise.
797 (SFT_BASE_FOR_COMPONENTS_P): Likewise.
798 (union tree_node): Remove sft field.
799 * alias.c (get_alias_set): Remove special handling of SFTs.
800 * print-tree.c (print_node): Remove handling of SFTs.
801 * tree-dump.c (dequeue_and_dump): Likewise.
802 * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
803 * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
804 * tree-predcom.c (set_alias_info): Do not set subvars.
805 * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
806 * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
807 * tree-ssa-operands.c (access_can_touch_variable): Likewise.
808 (add_vars_for_offset): Remove.
809 (add_virtual_operand): Remove special handling of SFTs.
810 (add_call_clobber_ops): Likewise.
811 (add_call_read_ops): Likewise.
812 (get_asm_expr_operands): Likewise.
813 (get_modify_stmt_operands): Likewise.
814 (get_expr_operands): Likewise.
815 (add_to_addressable_set): Likewise.
816 * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
817 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
162bfc7e 818 * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
5611cf0b
RG
819 * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
820 (tree_code_size): Remove STRUCT_FIELD_TAG handling.
821 (tree_node_structure): Likewise.
822 * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
823 handling of SFTs.
824 (find_what_p_points_to): Likewise.
825
fb4b5171
SL
8262008-05-08 Sa Liu <saliu@de.ibm.com>
827
828 * config/spu/spu.md: Fixed subti3 pattern.
fb4b5171 829
1b674de0
RG
8302008-05-08 Richard Guenther <rguenther@suse.de>
831
832 PR middle-end/36154
833 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
834 sure to create a representative for trailing arrays for PTA.
835
b13e7b6c
RG
8362008-05-08 Richard Guenther <rguenther@suse.de>
837
838 PR middle-end/36172
839 * fold-const.c (operand_equal_p): Two objects which types
840 differ in pointerness are not equal.
841
d7822892 8422008-05-08 Kai Tietz <kai.tietz@onevision.com>
81464b2c
KT
843
844 * calls.c (compute_argument_block_size): Add argument tree fndecl.
845 (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
846 (emit_library_call_value_1): Add new variable fndecl initialized by
847 NULL_TREE. It should be the decl type of orgfun, but this information
848 seems not to be available here, so it uses the default calling abi.
849 * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
850 * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
851 by TARGET_RETURN_IN_MEMORY.
852 * config/i386/i386-interix.h: Likewise.
853 * config/i386/i386.h: Likewise.
854 * config/i386/i386elf.h: Likewise.
855 * config/i386/ptx4-i.h: Likewise.
856 * config/i386/sol2-10.h: Likewise.
857 * config/i386/sysv4.h: Likewise.
858 * config/i386/vx-common.h: Likewise.
859 * config/cris/cris.h: Removed #if 0 clause.
d7822892 860 * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
81464b2c
KT
861 * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
862 argument.
863 (ix86_sol10_return_in_memory): Likewise.
864 (ix86_i386elf_return_in_memory): New.
865 (ix86_i386interix_return_in_memory): New.
866 * config/mt/mt-protos.h (mt_return_in_memory): New.
867 * config/mt/mt.c: Likewise.
868 * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
869 (RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
870 * config/bfin/bfin.h: Likewise.
871 * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
872 argument.
873 * config/bfin/bfin.c: Likewise.
874 * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
875 * config/alpha/unicosmk.h: Likewise.
876 * config/i386/cygming.h: Likewise.
877 * config/iq2000/iq2000.h: Likewise.
878 * config/mips/mips.h: Likewise.
879 * config/mn10300/mn10300.h: Likewise.
880 * config/rs6000/rs6000.h: Likewise.
881 * config/score/score.h: Likewise.
882 * config/spu/spu.h: Likewise.
883 * config/v850/v850.h: Likewise.
884 * defaults.h: Likewise.
885 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
d7822892
UB
886 * expr.c (emit_block_move): Adjust use of
887 OUTGOING_REG_PARM_STACK_SPACE.
81464b2c
KT
888 * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
889 OUTGOING_REG_PARM_STACK_SPACE.
890 * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
891
4218dc2d
JJ
8922008-05-08 Jakub Jelinek <jakub@redhat.com>
893
894 * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
895 on OMP_RETURN for OMP_FOR.
896
1f16b47c
JJ
897 PR debug/35896
898 * dwarf2out.c (dw_expand_expr, common_check): Removed.
899 (fortran_common): New function.
900 (gen_variable_die): Call fortran_common instead of common_check,
901 adjust for it returning tree instead of rtx. Formatting.
902
4218dc2d 9032008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
becfd6e5 904
d7822892
UB
905 PR rtl/7335
906 PR rtl/33826
907 * see.c (see_copy_insn): Copy new pure const attributes for new call.
908 * c-decl.c (merge_decls): Ditto.
909 * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
910 to RTL_CONST_OR_PURE_CALL_P.
911 * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
912 Initialized DECL_LOOPING_CONST_PURE.
913 (process_call_operands): Set tree_side_effects properly.
914 * tree.h (TREE_READONLY_DECL_P): Removed.
915 (DECL_IS_PURE): Renamed to DECL_PURE_P.
916 (DECL_LOOPING_OR_CONST_P): New macro.
917 (struct tree_function_decl): Added looping_const_or_pure_p.
918 (ECF_*) Renumbered.
919 (ECF_LOOPING_OR_CONST_P): New macro.
920 * rtlanal.c (pure_const_p): Removed.
921 * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
922 * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
923 to RTL_CONST_CALL_P.
924 * ipa-pure-const.c (pure_const_state_e): Added looping field.
925 (check_decl, check_tree, check_call, scan_function): Initialize
926 looping.
927 (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
928 (static_execute): Set looping true for recursive functions.
929 Undo setting state to IPA_NEITHER for recursive functions.
930 * cse.c (cse_insn):
931 * ifcvt.c (noce_can_store_speculate_p): Changed
932 CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
933 RTL_CONST_OR_PURE_CALL_P.
934 * dse.c (scan_insn): Ditto.
935 * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
936 * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
937 RTL_CONST_OR_PURE_CALL_P.
938 (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
939 pure_call_p to RTL_CONST_CALL_P.
940 * gimplify.c (gimplify_call_expr): Clear side effects for
941 non-looping pure and constant calls.
942 * calls.c (emit_call_1): Set rtl flags from ecf flags.
943 (flags_from_decl_or_type): Set ecf flags from decl flags.
944 (initialize_argument_information): Turn off
945 ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
946 Change const to pure if callee_copies is true rather than just
947 turning off const.
948 (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
949 way of marking pure calls.
950 (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
951 Remove hack that was supposed to fix pr7335 and remove old
952 way of marking pure calls.
953 * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
954 RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
955 * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
956 RTL_CONST_OR_PURE_CALL_P.
957 * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
958 * loop-invariant.c (find_exits, find_invariant_bb): Changed
959 CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
960 * sched-deps.c (schedule_analyze): Ditto.
961 * rtl.h (struct rtx_def): Use call field, unchanging field, and
962 return_val field of calls to represent pure and const function info.
963 (CONST_OR_PURE_CALL_P): Deleted macro.
964 (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
965 RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
966 * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
967 TREE_READONLY.
968 * tree-optimize.c (execute_fixup_cfg): Added test for
969 ECF_LOOPING_CONST_OR_PURE.
970 * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
971 DECL_PURE_P.
972 * tree-cfg.c (update_call_expr_flags): Do not clear tree side
973 effects for looping pure or const calls.
974 (verify_gimple_expr): Added verification code.
975 * config/alpha/alpha.c (alpha_legitimize_address,
976 alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
977 RTL_CONST_CALL_P.
978 * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
979 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
980 * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
981 * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
982 RTL_CONST_OR_PURE_CALL_P.
983 * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
984 and const calls to be deleted.
becfd6e5 985
d7822892 9862008-05-07 Uros Bizjak <ubizjak@gmail.com>
ffbaf337
UB
987
988 PR target/35714
989 * config/i386/mmx.md (mmx_subv2sf3): New expander.
990 (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
991 (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
992 (mmx_eqv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
993 to handle nonimmediate operands.
994 (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
995 (mmx_paddwd): New expander. Use ix86_fixup_binary_operands_no_copy
996 to handle nonimmediate operands.
997 (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
998 (mmx_pmulhrwv4hi3): New expander. Use
999 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1000 (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
1001 (sse2_umulv1siv1di3): New expander. Use
1002 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1003 (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
1004 (mmx_eq<mode>3): New expander. Use
1005 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1006 (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
1007 (mmx_uavgv8qi3): New expander. Use
1008 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1009 (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
1010 (mmx_uavgv4hi3): New expander. Use
1011 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1012
1013 * config/i386/sse.md
3a3f9d87 1014 (sse_movhlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 1015 to handle nonimmediate operands.
3a3f9d87 1016 (sse_movlhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 1017 to handle nonimmediate operands.
3a3f9d87 1018 (sse_loadhps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 1019 to handle nonimmediate operands.
3a3f9d87 1020 (sse_loadlps_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 1021 to handle nonimmediate operands.
3a3f9d87 1022 (sse2_unpckhpd_exp): New expander. Use
ffbaf337 1023 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 1024 (sse2_unpcklpd_exp): New expander. Use
ffbaf337 1025 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
3a3f9d87 1026 (sse_loadhpd_exp): New expander. Use ix86_fixup_binary_operands
ffbaf337 1027 to handle nonimmediate operands.
ffbaf337
UB
1028 (sse_loadlpd): New expander. Use ix86_fixup_binary_operands
1029 to handle nonimmediate operands.
1030 (*sse2_<plusminus_insn><mode>3): Rename from
1031 sse2_<plusminus_insn><mode>3 insn pattern.
1032 (sse2_<plusminus_insn><mode>3): New expander. Use
1033 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1034 (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
1035 (sse2_umulv2siv2di3): New expander. Use
1036 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1037 (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
1038 (sse4_1_mulv2siv2di3): New expander. Use
1039 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1040 (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
1041 (sse2_pmaddwd): New expander. Use
1042 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1043 (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
1044 (sse2_eq<mode>3): New expander. Use
1045 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1046 (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
1047 (sse4_1_eqv2di3): New expander. Use
1048 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1049 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1050 (sse2_uavgv16qi3): New expander. Use
1051 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1052 (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1053 (sse2_uavgv16qi3): New expander. Use
1054 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1055 (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
1056 (sse2_uavgv8hi3): New expander. Use
1057 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1058 (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
1059 (ssse3_pmulhrswv8hi3): New expander. Use
1060 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1061 (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
1062 (ssse3_pmulhrswv4hi3): New expander. Use
1063 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1064
1065 (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
1066 (<sse>_vmmul<mode>3): Ditto.
1067 (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
1068 (divv2df3): Ditto.
1069 (ssse3_pmaddubsw128): Use register_operand for operand 1.
1070 (ssse3_pmaddubsw): Ditto.
1071
3a3f9d87
UB
1072 * config/i386/i386.c (struct_builtin_description)
1073 [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
1074 [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
1075 [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
1076 [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
1077 [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
1078 [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
1079 [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
1080 [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
1081 (ix86_fixup_binary_operands): Assert that src1
ffbaf337
UB
1082 and src2 must have the same mode when swapped.
1083 (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
1084 and ix86_binary_operator_ok. Do not force operands in registers
1085 when optimizing.
1086
95622280
JH
10872008-05-07 Jan Hubicka <jh@suse.cz>
1088
1089 * cgraph.c (dump_cgraph_node): Update.
1090 * cgraph.h (cgraph_local_info): Break out inline summary.
1091 * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
1092 hook.
1093 * ipa-inline (inline_summary): New accestor function.
1094 (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
1095 cgraph_decide_inlining, compute_inline_parameters): Update.
1096 * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
1097
96fcacb7
MK
10982008-05-07 Maxim Kuvyrkov <maxim@codesourcery.com>
1099
1100 Cleanup ColdFire scheduling support and add V4 pipeline model.
1101
1102 * config/m68k/m68k.md (UNSPEC_TIE): New constant.
1103 (define_attr cpu): Add cfv4 value.
1104 (define_attr type, define_attr type1): Merge into a single 'type'
1105 attribute. Update all uses.
1106 (define_attr opx_type, define_attr opy_type, define_attr opx_access):
1107 Rearrange and update. Rename value 'reg' to 'Rn', add value 'FPn'.
1108 Update all uses.
1109 (define_attr opx_mem, define_attr opy_mem): Remove.
1110 (define_attr op_mem): Clean up, update comment.
1111 (define_attr size): Use specific values instead of general int.
1112 (define_attr guess, define_attr split): Remove. Update all uses.
1113 (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
1114 tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
1115 movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
1116 zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
1117 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
1118 floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
1119 fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
1120 adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
1121 add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
1122 add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
1123 sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
1124 sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
1125 mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
1126 umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
1127 mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
1128 div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
1129 one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
1130 bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
1131 beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
1132 bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
1133 symbolic_call_value_jsr, symbolic_call_value_bsr, link):
1134 Update or set attributes.
1135 (stack_tie): New fake instruction.
1136
1137 * config/m68k/m68k.h (TUNE_CFV4): New macro.
1138 (m68k_sched_attr_size): Update declaration.
1139 (m68k_sched_attr_type2): Remove.
1140 (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
1141 Declare new bypass predicates.
1142
1143 * config/m68k/m68k.c (m68k_sched_issue_rate,
1144 m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
1145 implementations.
1146 (TARGET_SCHED_ISSUE_RATE,
1147 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
1148 (override_options): Handle scheduling for ColdFire V4 core.
1149 (m68k_expand_prologue): Emit stack_tie.
1150 (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
1151 'OP_TYPE_FPN'. Update all uses.
1152 (sched_guess_p): Remove.
1153 (sched_address_type): Handle symbolic addresses.
1154 (sched_get_operand): New static function.
1155 (sched_operand_type): Merge into sched_attr_op_type.
1156 (sched_attr_op_type): Handle FP registers, handle quick constants,
1157 update.
1158 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
1159 (m68k_sched_attr_size): Update. Move logic to ...
1160 (sched_get_attr_size_int): New static function.
1161 (sched_get_opxy_mem_type): New static function.
1162 (m68k_sched_attr_op_mem): Update.
1163 (m68k_sched_attr_type2): Remove.
1164 (sched_cfv4_bypass_data): New static variable.
1165 (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
1166 (m68k_sched_issue_rate): Implement scheduler hook.
1167 (struct _sched_ib: enabled_p): New field.
1168 (m68k_sched_variable_issue): Update. Handle V4.
1169 (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
1170 sched_dump_class_func_t, sched_dump_split_class,
1171 sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
1172 sched_dump_dfa_class, m68k_sched_dump): Remove.
1173 (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
1174 hook.
1175 (m68k_sched_init_global): Remove statisctics dumping, introduce
1176 sanity check that all instructions have pipeline reservations. Handle
1177 ColdFire V4 core.
1178 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
1179 Handle ColdFire V4 core.
1180 (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
1181 New static functions.
1182 (m68k_sched_address_bypass_p): New bypass predicate.
1183 (sched_get_indexed_address_scale): New static function.
1184 (m68k_sched_indexed_address_bypass_p): New bypass predicate.
1185
1186 * cf.md: Update comments.
1187 (define_attr type2): Remove. Use 'type' attribute instead.
1188 Update all uses.
1189 (cf_ib): Rename to cfv123_ib. Update all uses.
1190 (cf_oep): Rename to cfv123_oep. Update all uses.
1191 (cf_chr): Rename to cfv123_chr. Update all uses.
1192 (cf_mem): Rename to cfv123_mem. Update all uses.
1193 (cf_mac): Move to more appropriate place.
1194 (cfv123_guess): New automaton and cpu_unit.
1195 (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
1196 Update uses of 'size' attribute. Handle before reload scheduling.
1197 (cfv123_guess): New dummy reservation for unhandled instructions.
1198 (cfv4_*): Pipeline description of ColdFire V4 core.
1199 (ignore): New reservation to handle 'ignore' type.
1200
2ee510b4
ILT
12012008-05-07 Ian Lance Taylor <iant@google.com>
1202
1203 PR middle-end/36013
1204 * gimplify.c (find_single_pointer_decl_1): Don't look through
1205 indirections.
1206 (find_single_pointer_decl): Adjust comments.
1207
c18c98c0
JJ
12082008-05-07 Jakub Jelinek <jakub@redhat.com>
1209
f61edbf6
JJ
1210 PR middle-end/36137
1211 * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
1212 STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
1213
c18c98c0
JJ
1214 PR middle-end/36106
1215 * omp-low.c (expand_omp_atomic_pipeline): Load value using the
1216 integral type rather than floating point, then VIEW_CONVERT_EXPR
1217 to the floating point type.
1218
c18c98c0 12192008-05-07 Uros Bizjak <ubizjak@gmail.com>
537d4fa6
UB
1220
1221 * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
1222 TFmode op0 to register.
1223
5f04ff80
AM
12242008-05-07 Alan Modra <amodra@bigpond.net.au>
1225
1226 * c-decl.c (grokdeclarator): Comment typo.
1227
c6c6b7aa
AH
12282008-05-06 Aldy Hernandez <aldyh@redhat.com>
1229
1230 * tree-flow.h: Remove prototype for computed_goto_p.
1231 * tree-cfg.c (computed_goto_p): Make static.
1232
4317a2fa
L
12332008-05-06 H.J. Lu <hongjiu.lu@intel.com>
1234
1235 PR target/35657
d0b48c67 1236 * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
4317a2fa
L
1237 (contains_aligned_value_p): This. Handle _Decimal128.
1238 (ix86_function_arg_boundary): Only align _Decimal128 to its
1239 natural boundary and handle it properly.
1240
c43f07af
MJ
12412008-05-06 Martin Jambor <mjambor@suse.cz>
1242
4317a2fa
L
1243 * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
1244 (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
1245 (ipcp_method_set_orig_node): Removed.
1246 (ipcp_cval_get_cvalue_type): Removed.
1247 (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
1248 (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
1249 (ipcp_cval_set_cvalue_type): Removed.
1250 (ipcp_cval_get_cvalue): Removed.
1251 (ipcp_cval_set_cvalue): Removed.
1252 (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
1253 (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
1254 (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
1255 (ipcp_cval_meet): Renamed to ipa_lattice_meet
1256 (ipcp_cval_changed): Changed to use ipcp_lat_is_const
1257 (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
1258 (ipcp_get_ith_lattice): Changed parameters.
1259 (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
1260 (ipcp_lattice_from_jfunc): Changed parameters.
c43f07af
MJ
1261 (ipcp_redirect): Local lattice pointer instead of lattice type variable.
1262 (ipcp_method_cval_print): Added temporary variable info.
1263 (ipcp_redirect): Removed already unused local variable caller.
1264 (ipcp_redirect): New temporary variable orig_callee_info
1265 (ipcp_redirect): Removed newly unused local variable callee.
1266 (ipcp_redirect): Removed (a bit confusing) local variable type.
1267 (ipcp_insert_stage): Added local variable info.
1268 (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
1269 renamed too
1270 (ipcp_formal_create): Removed.
1271 (ipcp_method_cval_set): Removed.
1272 (ipcp_propagate_stage): Renamed lattice variables.
1273 (ipcp_method_cval_set_cvalue_type): Removed.
1274 (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
1275 (ipcp_print_all_lattices): Changed printed strings to refer to
1276 lattices rather than cvals.
1277 (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
1278 (ipcp_propagate_const): Changed formal parameters.
1279 (build_const_val): Changed formal parameters.
1280 (ipcp_insert_stage): Removed useless variable cvalue
1281 (build_const_val): Changed formal parameters.
1282 (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
1283 (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
1284 (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
1285 (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
1286 (ipcp_print_func_profile_counts): Changed string from "method" to
1287 "function"
1288 (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
1289 (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
1290 (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
1291 (ipcp_structures_print): Renamed to ipcp_print_all_structures
1292 (ipcp_profile_print): Renamed to ipcp_print_profile_data
1293 (ipcp_lat_is_const): Changed parameters and made inline.
1294 (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
1295 (ipcp_redirect): Renamed to ipcp_need_redirect_p
1296 (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
1297 the predicate condition directly
1298 (ipcp_propagate_stage): Added local variable args. Removed local
1299 variable callee. (Both are mere code simplifications.)
1300 (ipcp_method_dont_insert_const): Renamed to
1301 ipcp_node_not_modifiable_p.
1302 (ipcp_node_not_modifiable_p): Made inline.
1303 (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
1304 (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
1305 (ipcp_print_all_lattices): Removed variable cvalue
1306 (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
1307 Updated comments.
1308
2b9d6cf3
OH
13092008-05-06 Olivier Hainque <hainque@adacore.com>
1310
1311 * tree-sra.c (try_instantiate_multiple_fields): Early return
1312 if field has POINTER_TYPE.
1313
18efb179
KT
13142008-05-06 Kai Tietz <kai.tietz@onevision.com>
1315
1316 * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
1317 by using 'q' specifier for instruction.
1318 (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
1319
38ce04d9
AS
13202008-05-06 Anatoly Sokolov <aesok@post.ru>
1321
1322 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1323 Change mode of zero_extract from QImode to HImode.
1324 (sign bit tests peepholes): (Ditto.).
1325
333d8f61
UB
13262008-05-06 Uros Bizjak <ubizjak@gmail.com>
1327
1328 * config/i386/mmx.md: Remove double backslashes from asm templates.
d0b48c67 1329 (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
333d8f61
UB
1330 (mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
1331 to handle nonimmediate operands.
d0b48c67 1332 (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
333d8f61
UB
1333 (mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
1334 to handle nonimmediate operands.
d0b48c67
UB
1335 (*mmx_<code>v2sf3_finite): New insn pattern.
1336 (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
333d8f61
UB
1337 (mmx_<code>v2sf3): New expander. Use
1338 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1339 (mmx_<plusminus_insn><mode>3): New expander. Use
1340 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 1341 (*mmx_<plusminus_insn><mode>3): New insn pattern.
333d8f61
UB
1342 (mmx_add<mode>3): Removed.
1343 (mmx_ssadd<mode>3): Ditto.
1344 (mmx_usadd<mode>3): Ditto.
1345 (mmx_sub<mode>3): Ditto.
1346 (mmx_sssub<mode>3): Ditto.
1347 (mmx_ussub<mode>3): Ditto.
d0b48c67 1348 (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
333d8f61
UB
1349 (mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
1350 to handle nonimmediate operands.
d0b48c67 1351 (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
333d8f61
UB
1352 insn pattern.
1353 (mmx_smulv4hi3_highpart): New expander. Use
1354 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 1355 (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
333d8f61
UB
1356 insn pattern.
1357 (mmx_umulv4hi3_highpart): New expander. Use
1358 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 1359 (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
333d8f61
UB
1360 (mmx_<code>v4hi3): New expander. Use
1361 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 1362 (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
333d8f61
UB
1363 (mmx_<code>v8qi3): New expander. Use
1364 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
d0b48c67 1365 (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
333d8f61
UB
1366 (mmx_<code><mode>3): New expander. Use
1367 ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1368
3716f233
JH
13692008-05-05 Jan Hubicka <jh@suse.cz>
1370
1371 PR tree-optimization/36118
1372 * passes.c (pass_init_dump_file): Fix dump header.
1373
1aee3ab6
AP
13742008-05-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
1375
1376 PR middle-end/36141
333d8f61
UB
1377 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
1378 VCE for function decls.
1aee3ab6 1379
0d07fcad
L
13802008-05-05 H.J. Lu <hongjiu.lu@intel.com>
1381
1382 * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
1383
d1c3b587
L
13842008-05-05 H.J. Lu <hongjiu.lu@intel.com>
1385
1386 * config/i386/i386.md (sat_plusminus): New.
1387 (plusminus_insn): Likewise.
1388 (plusminus_mnemonic): Likewise.
1389 (addsub): Removed.
1390 (comm): Add ss_plus, us_plus, ss_minus and us_minus.
1391 (*<addsub><mode>3_cc_overflow): Renamed to ...
1392 (*<plusminus_insn><mode>3_cc_overflow): This.
1393 (*<addsub>si3_zext_cc_overflow): Renamed to ...
1394 (*<plusminus_insn>si3_zext_cc_overflow): This.
1395
0d07fcad 1396 * config/i386/sse.md (<addsub><mode>3): Renamed to ...
d1c3b587
L
1397 (<plusminus_insn><mode>3): This.
1398 (*<addsub><mode>3): Renamed to ...
1399 (*<plusminus_insn><mode>3): This.
1400 (<sse>_vm<addsub><mode>3): Renamed to ...
1401 (<sse>_vm<plusminus_insn><mode>3): This.
1402 (sse3_h<addsub>v4sf3): Renamed to ...
1403 (sse3_h<plusminus_insn>v4sf3): This.
1404 (sse3_h<addsub>v2df3): Renamed to ...
1405 (sse3_h<plusminus_insn>v2df3): This.
1406 (<plusminus_insn><mode>3): New.
1407 (*<plusminus_insn><mode>3): Likewise.
1408 (sse2_<plusminus_insn><mode>3): Likewise.
1409 (add<mode>): Removed.
1410 (*add<mode>3): Likewise.
1411 (sse2_ssadd<mode>3): Likewise.
1412 (sse2_usadd<mode>3): Likewise.
1413 (sub<mode>3): Likewise.
1414 (*sub<mode>3): Likewise.
1415 (sse2_sssub<mode>3): Likewise.
1416 (sse2_ussub<mode>3): Likewise.
1417
23688481
BK
14182008-05-05 Benjamin Kosnik <bkoz@redhat.com>
1419
d1c3b587
L
1420 * gthr-single.h: Add in required interface elements as per gthr.h.
1421 Add stub types for __gthread_key_t, __gthread_once_t. Add defines
1422 for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
1423 Generalize UNUSED macro.
1424 (__gthread_once): Add.
1425 (__gthread_key_create): Add.
333d8f61 1426 (__gthread_key_delete): Add.
d1c3b587 1427 (__gthread_getspecific): Add.
333d8f61 1428 (__gthread_setspecific): Add.
23688481 1429
e06f0ff9
AP
14302008-05-05 Andrew Pinski <Andrew.Pinski@playstation.sony.com>
1431
23688481
BK
1432 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
1433 the same size types for the indirect reference on the rhs, then
1434 create a VCE.
e06f0ff9 1435
8c32cbc9
UB
14362008-05-05 Uros Bizjak <ubizjak@gmail.com>
1437
1438 * config/i386/i386.md
1439 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
1440 one insn template instead of template series.
1441 (*xordi_1_rex64): Ditto.
1442 (*xordi_2_rex64): Ditto.
1443
06d10aaf
IR
14442008-05-05 Ira Rosen <irar@il.ibm.com>
1445
8c32cbc9 1446 PR tree-optimization/36119
06d10aaf
IR
1447 * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
1448 in case of SLP.
1449
24c05141
JH
14502008-06-04 Jan Hubicka <jh@suse.cz>
1451
1452 tree-optimization/36100
1453 * tree-pass.h (pass_O0_always_inline): Declare.
1454 * ipa-inline.c (inline_transform): Remove dead code.
1455 (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
1456 pass_O0_always_inline): New.
1457 * passes.c (init_optimization_passes): Add pass_O0_always_inline.
1458
8fa8585d
KT
14592008-05-04 Kai Tietz <kai.tietz@onevision.com>
1460
1461 * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
1462 mnemonic in this_param move for TARGET_64BIT.
1463
62d2739a
UB
14642008-05-04 Uros Bizjak <ubizjak@gmail.com>
1465
1466 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
1467 (*strmovsi_rex_1): Ditto.
1468 (*strsetsi_1): Ditto.
1469 (*strsetsi_rex_1): Ditto.
1470
1471 (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
1472 adddicc expanders using SWI mode iterator.
1473
4d31c3e1
L
14742008-05-04 H.J. Lu <hongjiu.lu@intel.com>
1475
1476 PR target/36121
62d2739a
UB
1477 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
1478 argument handling.
4d31c3e1 1479
5f7ca34b
DM
14802008-05-04 David S. Miller <davem@davemloft.net>
1481
1482 * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
1483 (sparc*-*-linux*): Use linux.h in tm_file.
1484 (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
1485 compiler defaulting to 32-bit.
1486 (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
1487 no longer needed.
1488 * config/sparc/linux.h: Remove definitions now obtained
1489 properly from linux.h
1490 * config/sparc/linux64.h: Likewise.
1491 (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
1492 don't want this setting for 32-bit builds in a biarch compiler.
1493 * doc/install.texi: Add sparc-linux to list of targets
1494 supporting --enable-targets=all.
1495
5a3db6d5
AP
14962008-05-03 Andrew Pinski <pinskia@gmail.com>
1497
1498 * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
1499
3c7ae64a
L
15002008-05-03 H.J. Lu <hongjiu.lu@intel.com>
1501
1502 * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
1503 after V4SI_FTYPE_V8HI.
1504 (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
1505 case V4SI_FTYPE_V2DF.
1506
4218dc2d 15072008-05-03 Kenneth Zadeck <zadeck@naturalbridge.com>
75643ab1
KZ
1508
1509 * doc/invoke.texi (max-flow-memory-locations): Removed.
1510 * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
1511
621b5ed6
RG
15122008-05-03 Richard Guenther <rguenther@suse.de>
1513
1514 PR middle-end/34973
1515 * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
1516
11835124
DM
15172008-05-02 David S. Miller <davem@davemloft.net>
1518
1519 * config.gcc (need_64bit_hwint): Document libcpp dependency.
1520
e4d35515
SB
15212008-05-02 Simon Baldwin <simonb@google.com>
1522
1523 PR bootstrap/36108
1524 * c-common.h (warn_array_subscript_range): Removed.
1525 * c-common.c (warn_array_subscript_range): Ditto.
1526 * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
1527 * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
1528
bb1418c1
L
15292008-05-02 H.J. Lu <hongjiu.lu@intel.com>
1530
1531 * config/i386/i386.c (ix86_special_builtin_type): New.
1532 (bdesc_special_args): Likewise.
1533 (ix86_expand_special_args_builtin): Likewise.
1534 (ix86_init_mmx_sse_builtins): Updated.
1535 (ix86_expand_builtin): Updated.
1536 (ix86_expand_store_builtin): Removed.
1537 (ix86_expand_unop_builtin): Likewise.
1538
1539 * config/i386/mm3dnow.h (__v2sf): Moved to ...
1540 * config/i386/mmintrin.h (__v2sf): Here.
1541
1542 * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
1543 const __v2sf.
1544 (_mm_loadl_pi): Likewise.
1545 (_mm_storeh_pi): Replace __v2si with __v2sf.
1546 (_mm_storel_pi): Likewise.
1547
1548 * doc/extend.texi: Correct __builtin_ia32_loadhps,
1549 __builtin_ia32_loadlps, __builtin_ia32_storehps,
1550 __builtin_ia32_storelps, __builtin_ia32_loadhpd and
1551 __builtin_ia32_loadlpd.
1552
15532008-05-02 H.J. Lu <hongjiu.lu@intel.com>
1554
1555 * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
1556 V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
1557 (bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
1558 (ix86_init_mmx_sse_builtins): Updated.
1559 (ix86_expand_args_builtin): Likewise.
1560 (ix86_expand_builtin): Likewise.
1561 (ix86_expand_unop1_builtin): Renamed to ...
1562 (ix86_expand_unop_vec_merge_builtin): This.
1563
a12f79f5
JH
15642008-05-01 Jan Hubicka <jh@suse.cz>
1565
1566 PR bootstrap/36100
1567 * ipa-inline.c (inline_generate_summary): Make static.
1568 (inline_transform): Do not call inlining at -O0; make static.
1569 * passes.c (execute_todo): Add sanity check.
1570 (execute_one_ipa_transform_pass): Execute proper flags.
1571
b5487346
EB
15722008-05-01 Eric Botcazou <ebotcazou@adacore.com>
1573
1574 * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
1575 (DECL_NONADDRESSABLE_P): Likewise.
1576 * alias.c (record_component_aliases): Fix comment.
1577
ca873b0e
SB
15782008-05-01 Simon Baldwin <simonb@google.com>
1579
1580 * c-common.h (warn_array_subscript_range): New function.
1581 * c-common.c (warn_array_subscript_range): Ditto.
1582 * tree-vrp.c (check_array_ref): Corrected code to agree with
1583 comment, ignoring only arrays of size 0 or size 1.
1584 * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
1585
99c25ac1
L
15862008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1587
1588 * config/i386/i386.c (ix86_builtin_type): Replace
1589 DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
1590 (bdesc_args): Updated.
1591 (ix86_init_mmx_sse_builtins): Likewise.
1592 (ix86_expand_args_builtin): Likewise.
1593
1594 * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
1595 with __v1di.
1596
1597 * doc/extend.texi: Correct __builtin_ia32_palignr.
1598
a44acfb9
L
15992008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1600
1601 PR target/36095
1602 * config/i386/i386.c (bdesc_crc32): Removed.
1603 (ix86_expand_crc32): Likewise.
1604 (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
1605 V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
1606 V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
1607 UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
1608 UINT_FTYPE_UINT_UCHAR.
1609 (bdesc_args): Updated. Add crc32 builtins.
1610 (ix86_init_mmx_sse_builtins): Updated.
1611 (ix86_expand_args_builtin): Updated to support subreg.
1612
1613 * doc/extend.texi: Correct __builtin_ia32_crc32di.
1614
17653c00
JH
16152008-05-01 Jan Hubicka <jh@suse.cz>
1616
1617 * tree-pass.h (opt_pass): Add IPA_PASS.
1618 (varpool_node, cgraph_node): Forward declare.
1619 (ipa_opt_pass): Define.
1620 (pass_ipa_inline): Turn into ipa_opt_pass.
1621 (pass_apply_inline): Remove.
1622 * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
1623 (apply_inline): Turn into ....
1624 (inline_transform): ... this one.
1625 (inline_generate_summary): New function.
1626 (pass_apply_inline): Remove.
1627 * function.h (ipa_opt_pass): Forward declare structure; typedef;
1628 vector.
1629 (struct function): Add ipa_transforms_to_apply.
1630 * passes.c (register_one_dump_file): Work on IPA_PASS.
1631 (init_optimization_passes): Remove pass_inline_parameters and
1632 pass_apply_inline.
1633 (pass_init_dump_file, pass_fini_dump_file): Break out from ....
1634 (execute_one_pass) ... here; apply transforms when possible.
1635 (add_ipa_transform_pass, execute_ipa_summary_asses,
1636 execute_one_ipa_transform_pass): New.
1637 (execute_ipa_pass_list): Update for IPA_PASS type.
1638
bd9513ea
L
16392008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1640
1641 * config/i386/i386.c (ix86_builtin_type): Add
1642 V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
1643 V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
1644 (bdesc_args): Add SSE4a builtins.
1645 (ix86_init_mmx_sse_builtins): Updated.
1646 (ix86_expand_args_builtin): Likewise.
1647 (ix86_expand_builtin): Likewise.
1648
858e5e79
L
16492008-05-01 H.J. Lu <hongjiu.lu@intel.com>
1650
1651 * config/i386/i386.c (ix86_builtin_type): Add
1652 V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
1653 V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
1654 V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
1655 V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
1656 V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
1657 V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
1658 V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
1659 V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
1660 and DI_FTYPE_DI_DI_INT.
1661 (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
1662 (ix86_init_mmx_sse_builtins): Updated.
1663 (ix86_expand_args_builtin): Likewise.
1664 (ix86_expand_builtin): Likewise.
1665 (ix86_expand_binop_imm_builtin): Removed.
1666
1667 * doc/extend.texi: Correct __builtin_ia32_palignr128.
1668
a91ded4b
RG
16692008-04-30 Richard Guenther <rguenther@suse.de>
1670
1671 PR tree-optimization/32921
1672 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
1673
ad516a74
RS
16742008-04-30 Richard Sandiford <rsandifo@nildram.co.uk>
1675
1676 * config/arm/arm.c (arm_unwind_emit): Use
1677 crtl->all_throwers_are_sibcalls instead of
1678 cfun->all_throwers_are_sibcalls.
1679 (arm_output_fn_unwind): Likewise.
1680 * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
1681 instead of cfun->uses_pic_offset_table.
1682 (frv_expand_prologue): Likewise.
1683 (frv_frame_pointer_required): Likewise.
1684 (frv_expand_fdpic_call): Likewise.
1685 (frv_emit_movsi): Likewise.
1686 * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
1687 cfun->returns_pcc_struct instead of
1688 current_function_returns_pcc_struct.
1689 * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
1690 instead of cfun->calls_eh_return.
1691 (m32c_pushm_popm): Likewise.
1692 * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
1693 "extern" declaration.
1694
00d382a8
RG
16952008-04-30 Richard Guenther <rguenther@suse.de>
1696
1697 PR tree-optimization/21636
1698 * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
1699 constant address.
1700 (evaluate_stmt): Print the likely value.
1701 (ccp_visit_stmt): Avoid excessive vertical spacing.
1702
45e18420
RAE
17032008-04-30 Rafael Espindola <espindola@google.com>
1704
1705 * builtins.c (fold_call_expr): Return realret.
1706 * tree-ssa-threadedge.c
1707 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
1708 __builtin_object_size.
1709
fe7df9c4
SP
17102008-04-30 Seongbae Park <seongbae.park@gmail.com>
1711
1712 * gcc.c (wrapper_string): New variable.
1713 (insert_wrapper): New function.
1714 (execute): New option -wrapper.
1715 * doc/invoke.texi (Overall Options): New driver option -wrapper.
1716
18724e30
NF
17172008-04-30 Nathan Froyd <froydnj@codesourcery.com>
1718
62d2739a
UB
1719 * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
1720 config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
1721 config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
1722 from...
1723 * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
1724 * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
1725 config/rs6000/e500crtres64gprctr.asm,
1726 config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
1727 config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
1728 config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
1729 config/rs6000/e500crtsav64gprctr.asm,
1730 config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
1731 config/rs6000/e500crtsavg64gprctr.asm: New files.
1732 * config/rs6000/t-ppccomm: Add build rules for new files.
1733 (LIB2FUNCS_STATIC_EXTRA): Add new files.
1734 * config/rs6000/t-netbsd: Add build rules for new files.
1735 (LIB2FUNCS_STATIC_EXTRA): New variable.
1736 * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
1737 (CRTSAVRES_DEFAULT_SPEC): Likewise.
1738 * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
18724e30 1739
1b667c82
L
17402008-04-30 H.J. Lu <hongjiu.lu@intel.com>
1741
1742 * config/i386/i386.c (ix86_builtin_type): Add
1743 FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
1744 V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
1745 V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
1746 V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
1747 V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
1748 V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
1749 V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
1750 V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
1751 V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
1752 V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
1753 V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
1754 V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
1755 V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
1756 V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
1757 V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
1758 V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
1759 V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
1760 V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
1761 V1DI_FTYPE_V2SI_V2SI.
1762 (bdesc_2arg): Moved to ...
1763 (bdesc_args): Here.
1764 (ix86_init_mmx_sse_builtins): Updated.
1765 (ix86_expand_args_builtin): Updated. Take a pointer
1766 to const struct builtin_description. Handle comparison
1767 builtin functions.
62d2739a 1768 (ix86_expand_sse_compare): Take a new argument for swapping operands.
1b667c82
L
1769 (ix86_expand_builtin): Updated.
1770
1771 * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
1772 (ssse3_pmaddubsw128): This.
1773 (ssse3_pmaddubswv4hi3): Renamed to ...
1774 (ssse3_pmaddubsw): This.
1775
62d2739a 1776 * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
1b667c82 1777 (__builtin_ia32_packssdw128): Likewise.
62d2739a 1778 (__builtin_ia32_packuswb128): Likewise.
1b667c82
L
1779 (__builtin_ia32_pmaddubsw): Likewise.
1780 (__builtin_ia32_pmaddubsw128): Likewise.
1781
d7b339dd
RG
17822008-04-30 Richard Guenther <rguenther@suse.de>
1783
1784 PR tree-optimization/14847
1785 * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
1786 (recognize_bits_test): Use it.
1787 (recognize_single_bit_test): Likewise.
1788
6a3f3fea
MJ
17892008-04-30 Martin Jambor <mjambor@suse.cz>
1790
1791 * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
1792 instead of setting number of formal parameters to zero.
1793 (ipcp_init_stage): Do not set the number of actual parameters to zero
1794 either.
1795 (ipcp_propagate_stage): Explicitly skipping all calls to nodes
1796 which are called with variable number of arguments.
1797 (ipcp_insert_stage): Explicitely skipping all nodes which are
1798 called with variable number of arguments.
1799 (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
1800 number of parameters.
1801
1802 * ipa-prop.h (struct ipa_node_params): Added flag
1803 called_with_var_arguments
1804 (ipa_set_param_count): Added. Changed sole setter to use it.
1805 (ipa_get_param_count): Added. All readers of param_count
1806 converted to use it instead.
1807 (ipa_set_called_with_variable_arg): Added.
1808 (ipa_is_called_with_var_arguments): Added.
1809 (ipa_get_ith_param): Added. All readers of param_decls converted
1810 to use it instead.
1811 (ipa_set_cs_argument_count): Added, sole writer to argument_count
1812 changed to use it.
1813 (ipa_get_cs_argument_count): Added, all readers of argument_count
1814 changed to cal it.
1815 (ipa_get_ith_jump_func): Added. Accessors of jump values changed
1816 to use it.
1817
1818 * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
1819 (struct ipcp_lattice): Renamed cval_type to type
1820 (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
1821
1822 * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
1823 (ipcp_cval_set_cvalue): Changed type of parameter value to tree
1824 (ipcp_insert_stage): Changed the type of variable cvalue to tree
1825 (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
1826 (build_const_val): Changed the type of parameter cvalue to tree
1827 (ipcp_propagate_const): Changed the type of parameter cvalue to tree
1828 (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
1829
1830 * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
1831 constant
1832
1833 * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
1834 (ipa_methodlist_not_empty): Removed, the sole user now checks directly
1835 (ipa_add_method): Renamed to ipa_push_func_to_list
1836 (ipa_remove_method): Renamed to ipa_pop_func_from_list
1837 (ipa_callsite_param_count): Removed.
1838 (ipa_callsite_param_count_set): Removed.
1839 (ipa_callsite_param): Removed.
1840 (ipa_callsite_callee): Removed.
1841 (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
1842 (ipa_callsite_compute_count): Renamed to ipa_count_arguments
1843 (ipa_method_formal_count): Removed.
1844 (ipa_method_formal_count_set): Removed.
1845 (ipa_method_get_tree): Removed.
1846 (ipa_method_tree_map_create): Removed.
1847 (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
1848 (ipa_create_param_decls_array): Creates the array itself
1849 (ipa_create_param_decls_array): Temporary variable info instead of
1850 a few dereferences.
1851 (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
1852 (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
1853 (get_type): Removed.
1854 (ipa_jf_get_info_type): Removed.
1855 (ipa_node_create): Renamed to ipa_create_node_params
1856 (ipa_free): Renamed to ipa_free_all_node_params
1857 (ipa_nodes_create): Renamed to ipa_create_all_node_params
1858 (ipa_edges_create): Renamed to ipa_create_all_edge_args
1859 (ipa_edges_free): Renamed to ipa_free_all_edge_args
1860 (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
1861 (ipa_free_all_node_params): Deallocation to jump_functions moved to
1862 ipa_free_all_edge_args
1863 (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
1864 (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
1865 (ipa_create_methodlist_node): Removed.
1866 (ipa_methodlist_method): Removed.
1867 (ipa_methodlist_method_set): Removed.
1868 (ipa_methodlist_next_method): Removed.
1869 (ipa_methodlist_next_method_set): Removed.
1870 (ipa_method_is_modified): Removed.
1871 (ipa_method_modify_create): Removed.
1872 (ipa_method_modify_init): Temporary variable info instead of a few
1873 dereferences.
1874 (ipa_detect_param_modifications): Temporary variable info instead of
1875 a few dereferences.
1876 (ipa_compute_jump_functions): Temporary variable info instead of
1877 a few dereferences.
1878 (ipa_method_modify_set): Removed.
1879 (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
1880 (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
1881 than craph_node as the first parameter.
1882 (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
1883 (ipa_method_modify_init): Removed.
1884 (ipa_compute_jump_functions): Added a temp variable instead of
1885 repeatadly dereferencing the cgraph_edge.aux pointer
1886 (ipa_callsite_param_set_type): Removed.
1887 (ipa_compute_jump_functions): i renamed to index and moved to
1888 an inner block
1889 (ipa_callsite_param_set_info_type_formal): Removed.
1890 (ipa_callsite_param_set_info_type): Removed.
1891 (ipa_callsite_param_map_create): Removed.
1892 (ipa_callsite_tree): Removed.
1893 (ipa_callsite_caller): Removed.
1894 (ipa_pop_func_from_list): return_method removed to return_func
1895
1896 * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
1897 prefixed all values with IPA_. Changed all users.
1898 (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
1899 CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
1900 and FORMAL_IPATYPE IPA_PASS_THROUGH.
1901 (union parameter_info): Renamed to jump_func_value.
1902 (union jump_func_value): Renamed value to constant
1903 (struct ipa_jump_func): Renamed info_type to value
1904 (struct ipa_node): Renamed to ipa_node_params
1905 (struct ipa_node_params): Renamed ipa_arg_num to param_count
1906 (struct ipa_node_params): Renamed ipa_param_tree to param_decls
1907 (struct ipa_node_params): Renamed ipa_mod to modified_flags
1908 (struct ipa_edge): Renamed to ipa_edge_args
1909 (struct ipa_edge_args): Renamed ipa_param_num to argument_count
1910 (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
1911 (struct ipa_methodlist): Renamed to ipa_func_list
1912 (struct ipa_func_list): method_p renamed to node, next_method
1913 renamed to next
1914 (ipa_methodlist_p): Removed, switched all users to struct pointer
1915 (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
1916
1c9c5e43
AM
19172008-04-30 Alan Modra <amodra@bigpond.net.au>
1918
1919 * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
1920 (rs6000_emit_epilogue): Use backchain to restore only when we
1921 have a large frame. Make use of frame pointer to restore if we
1922 have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
1923
cf2758e3
PB
19242008-04-29 Paolo Bonzini <bonzini@gnu.org>
1925
1926 * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
1927 Add mode to zero_extract.
1928 (sign bit tests peepholes): (Ditto.).
1929
f318ff0a
L
19302008-04-29 H.J. Lu <hongjiu.lu@intel.com>
1931
1932 * config/i386/i386.c (ix86_builtins): Replace Prescott New
1933 Instructions in comments with SSE3.
1934 (ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
1935 INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
1936 INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
1937 V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
1938 V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
1939 V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
1940 V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
1941 V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
1942 V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
1943 V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
1944 V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
1945 V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
1946 (bdesc_sse_args): Renamed to ...
1947 (bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
1948 IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
1949 IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
1950 IX86_BUILTIN_FABSQ.
1951 (bdesc_1arg): Moved to ...
1952 (bdesc_args): Here.
1953 (ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
1954 Instructions in comments with SSE3.
1955 (ix86_expand_sse_operands_builtin): Renamed to ...
1956 (ix86_expand_args_builtin): This. Updated.
1957 (ix86_expand_unop1_builtin): Update comments.
1958 (ix86_expand_builtin): Updated.
1959
ace4eb90
RG
19602008-04-29 Richard Guenther <rguenther@suse.de>
1961
1962 PR tree-optimization/36078
1963 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
1964 Update virtual SSA form after cleaning up the CFG.
1965
1447bf05
RG
19662008-04-29 Richard Guenther <rguenther@suse.de>
1967
1968 PR middle-end/15255
1969 * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
1970
59e6913a
RG
19712008-04-29 Richard Guenther <rguenther@suse.de>
1972
1973 * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
1974 (compute_may_aliases): Do not call finalize_ref_all_pointers.
1975 (compute_flow_insensitive_aliasing): Do not treat
1976 PTR_IS_REF_ALL pointers special.
1977 (get_smt_for): Likewise.
1978 (may_alias_p): Re-structure.
1979 (is_escape_site): A ref-all pointer conversion is not an escape site.
1980 * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
1981 PTR_IS_REF_ALL pointers special.
1982 * tree-ssa-structalias.h (struct alias_info): Remove
1983 ref_all_symbol_mem_tag field.
1984 (PTR_IS_REF_ALL): Remove.
1985
81ad578e
RG
19862008-04-29 Richard Guenther <rguenther@suse.de>
1987
1988 PR middle-end/36077
1989 * fold-const.c (extract_muldiv_1): In combining division constants
1990 make sure to never overflow.
1991
4830ba1f
NC
19922008-04-29 Nick Clifton <nickc@redhat.com>
1993
1994 * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
1995
b1c61c7e
RW
19962008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1997
1998 PR bootstrap/35169
1999 * optc-gen.awk: Work around HP-UX/IA awk bug.
2000
d6b68fcc
DS
20012008-04-28 Danny Smith <dannysmith@users.sourceforge.net>
2002
2003 * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
2004 2008-04-25 commit.
2005
0d5fd2b8
UB
20062008-04-28 Uros Bizjak <ubizjak@gmail.com>
2007
2008 PR target/36073
2009 * config/i386/i386.md
2010 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
2011 Change operand 1 predicate to nonimmediate_operand.
2012
623f8e39
JJ
20132008-04-28 Jakub Jelinek <jakub@redhat.com>
2014
2015 PR debug/36060
2016 * dwarf2out.c (struct die_struct): Mark as chain_circular through
2017 die_sub field.
2018 * gengtype.c (walk_type, write_func_for_structure): Handle
2019 chain_circular.
2020 * doc/gty.texi: Document chain_circular.
2021
82893cba
RG
20222008-04-28 Richard Guenther <rguenther@suse.de>
2023
2024 PR tree-optimization/36066
2025 * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
2026 SCEV and loop.
2027
e356fac8
UB
20282008-04-28 Uros Bizjak <ubizjak@gmail.com>
2029
2030 PR target/36064
0d5fd2b8
UB
2031 * config/i386/i386.md
2032 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
e356fac8
UB
2033 Use match_scratch instead of match_operand for operands 3 and 4.
2034
d6e840ee
RG
20352008-04-27 Richard Guenther <rguenther@suse.de>
2036
2037 PR tree-optimization/18754
2038 PR tree-optimization/34223
2039 * tree-pass.h (pass_complete_unrolli): Declare.
2040 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
2041 loop size before and after unconditionally of UL_NO_GROWTH in effect.
2042 Rewrite loop into loop closed SSA form if it is not already.
2043 (tree_unroll_loops_completely): Re-structure to iterate over
2044 innermost loops with intermediate CFG cleanups.
2045 Unroll outermost loops only if requested or the code does not grow
2046 doing so.
2047 * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
2048 loops are available.
2049 (tree_vectorize): Instead do so here.
2050 (tree_complete_unroll): Also unroll outermost loops.
2051 (tree_complete_unroll_inner): New function.
2052 (gate_tree_complete_unroll_inner): Likewise.
2053 (pass_complete_unrolli): New pass.
2054 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
2055 uses outside of the loop.
2056 (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
2057 form if it is available.
2058 * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
2059 * passes.c (init_optimization_passes): Schedule complete inner
2060 loop unrolling pass before the first CCP pass after final inlining.
2061
feb60f03
NS
20622008-04-27 Nathan Sidwell <nathan@codesourcery.com>
2063
2064 * targhooks.h (default_emutls_var_fields,
2065 default_emutls_var_init): Declare.
2066 * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
2067 * target.h (struct gcc_target): Add struct emutls member.
2068 * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
2069 TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
2070 TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
2071 TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
2072 TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
2073 TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
2074 (TARGET_INITIALIZER): Add TARGET_EMUTLS.
2075 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
2076 BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
2077 * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
2078 emit debug information.
2079 * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
2080 * varasm.c: Include targhooks.h.
2081 (emutls_object_section, emutls_tmpl_section): New.
2082 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
2083 (EMUTLS_SEPARATOR): New.
2084 (prefix_name): New.
2085 (get_emutls_object_name): New.
2086 (default_emutls_var_fields): New, broken out of ...
2087 (get_emutls_object_type): ... here. Adjust to use target hooks.
2088 (get_emutls_init_templ_addr): Adjust to use target hooks.
2089 (emutls_decl): Adjust to use target hooks.
2090 (emutls_finish): Likewise.
2091 (default_emutls_var_init): New, broken out of ...
2092 (assemble_variable): ... here. Adjust to use target hooks.
2093 * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
2094 SECCAT_EMUTLS_TMPL.
2095 * c-common.c (handle_section_attribute): Prevent overriding
2096 sections for emulated tls with special sections.
2097 * config/i386/i386.c (x86_64_elf_select_section): Add
2098 SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
2099 (x86_64_elf_unique_section): Likewise.
2100 * config/vxworks.c: Include tree.h.
2101 (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
2102 (vxworks_override_options): Set TLS scheme.
623f8e39 2103 * doc/tm.texi (Emulated TLS): New node.
feb60f03 2104
6bfb7f10
SB
21052008-04-26 Simon Baldwin <simonb@google.com>
2106
2107 PR c/35652
2108 * builtins.c (c_strlen): Suppressed multiple warnings that can occur
2109 with propagated string constants.
2110
73e8165a
UB
21112008-04-26 Uros Bizjak <ubizjak@gmail.com>
2112
2113 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
2114 constraint for operand 2 when operand 0 is memory operand.
2115 (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
2116 operand 0 is memory operand.
2117 (fix_trunc<mode>_i387_with_temp): Ditto.
2118 (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
2119 operand 2 when operand 1 is memory operand.
2120 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
2121 (*floatsi<mode>2_vector_sse_with_temp): Ditto.
2122 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
2123 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2124 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
2125 operands 2,3 and 4 when operand 1 is memory operand.
2126 (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
2127 is memory operand.
2128 (fistdi2_floor_with_temp): Ditto.
2129 (fist<mode>2_floor_with_temp): Ditto.
2130 (fistdi2_ceil_with_temp): Ditto.
2131 (fist<mode>2_ceil_with_temp): Ditto.
2132 (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
2133
49bce30a
RS
21342008-04-26 David Daney <ddaney@avtrex.com>
2135
2136 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
2137 unspec_volitile.
2138 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
2139 UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2140 UNSPEC_UPDATE_GOT_VERSION): Renumber.
2141 (sync_compare_and_swap<mode>): New expand for QI and HI modes.
2142 (compare_and_swap_12): New insn.
2143 * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
2144 * config/mips/mips.c (mips_force_binary): New function.
2145 (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
2146 (mips_expand_compare_and_swap_12): New function.
2147 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
2148
e3b5732b
JH
21492008-04-25 Jan Hubicka <jh@suse.cz>
2150
2151 PR testsuite/35843
2152 * cfgexpand.c (pass_expand): Turn into RTL pass.
2153 * passes.c (execute_one_pass): Do pass typechecking after execution.
2154 * tree-pass.h (pass_expand): Turn into RTL pass.
2155
2156 * function.h (struct rtl_data): Move here fields
2157 accesses_prior_frames, calls_eh_return, saves_all_registers,
2158 has_nonlocal_goto, has_asm_statement, is_thunk,
2159 all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
2160 uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
2161 arg_pointer_save_area_init from struct function; turn into bool.
2162 (struct function): Move
2163 calls_eh_return, saves_all_registers, has_nonlocal_goto,
2164 has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
2165 profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
2166 tail_call_emit, arg_pointer_save_area_init
2167 into struct rtl_data. Remove recursive_call_emit and gimplified flags.
2168 (current_function_returns_struct, current_function_returns_pcc_struct,
2169 current_function_calls_setjmp, current_function_calls_alloca,
2170 current_function_accesses_prior_frames,
2171 current_function_calls_eh_return, current_function_is_thunk,
2172 current_function_stdarg, current_function_profile,
2173 current_function_limit_stack, current_function_uses_pic_offset_table,
2174 current_function_uses_const_pool, current_function_has_nonlocal_label,
2175 current_function_saves_all_registers,
2176 current_function_has_nonlocal_goto,
2177 current_function_has_asm_statement): Remove accesor macros.
2178 * ra-conflict.c (global_conflicts): Update.
2179 * tree-tailcall.c (suitable_for_tail_opt_p): Update.
2180 (suitable_for_tail_call_opt_p): Update.
2181 * builtins.c (expand_builtin_return_addr): Update.
2182 (expand_builtin_setjmp_setup): Update.
2183 (expand_builtin_nonlocal_goto): Update.
2184 * final.c (final_start_function): Update.
2185 (profile_function): Update.
2186 (leaf_function_p): Update.
2187 (only_leaf_regs_used): Update.
2188 * df-scan.c (df_get_exit_block_use_set): Update.
2189 * dojump.c (clear_pending_stack_adjust): Update.
2190 * tree-stdarg.c (gate_optimize_stdarg): Update.
2191 * gimple-low.c (lower_function_body): Update.
2192 * global.c (compute_regsets): Update.
2193 (global_alloc): Update.
2194 * dwarf2out.c (dwarf2out_begin_prologue): Update.
2195 * expr.c (expand_assignment): Update.
2196 * dse.c (dse_step0): Update.
2197 (dse_step1): Update.
2198 * c-decl.c (store_parm_decls): Update.
2199 * local-alloc.c (combine_regs): Update.
2200 (find_free_reg): Update.
2201 * function.c (assign_parms_augmented_arg_list): Update.
2202 (assign_parm_find_data_types): Update.
2203 (assign_parms): Update.
2204 (allocate_struct_function): Update.
2205 (expand_function_start): Update.
2206 (expand_function_end): Update.
2207 (get_arg_pointer_save_area): Update.
2208 (thread_prologue_and_epilogue_insns): Update.
2209 (rest_of_match_asm_constraints): Update.
2210 * stor-layout.c (variable_size): Update.
2211 * gcse.c (gcse_main): Update.
2212 (bypass_jumps): Update.
2213 * gimplify.c (gimplify_function_tree): Update.
2214 * calls.c (emit_call_1): Update.
2215 (expand_call): Update.
2216 * bt-load.c (compute_defs_uses_and_gen): Update.
2217 * except.c (sjlj_assign_call_site_values): Update.
2218 (sjlj_emit_function_enter): Update.
2219 (can_throw_external): Update.
2220 (set_nothrow_function_flags): Update.
2221 (expand_builtin_unwind_init): Update.
2222 (expand_eh_return): Update.
2223 (convert_to_eh_region_ranges): Update.
2224 (output_function_exception_table): Update.
2225 * emit-rtl.c (gen_tmp_stack_mem): Update.
2226 * cfgexpand.c (expand_used_vars): Update.
2227 (tree_expand_cfg): Update.
2228 * cfgcleanup.c (rest_of_handle_jump): Update.
2229 * explow.c (allocate_dynamic_stack_space): Update.
2230 * varasm.c (assemble_start_function): Update.
2231 (force_const_mem): Update.
2232 (mark_constant_pool): Update.
2233 * tree-optimize.c (tree_rest_of_compilation): Update.
2234 * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
2235 * tree-cfg.c (notice_special_calls): Update.
2236 (is_ctrl_altering_stmt): Update.
2237 (tree_can_make_abnormal_goto): Update.
2238 (tree_purge_dead_abnormal_call_edges): Update.
2239 * config/alpha/predicates.md: Update.
2240 * config/alpha/alpha.c (alpha_sa_mask): Update.
2241 (alpha_sa_size): Update.
2242 (alpha_does_function_need_gp): Update.
2243 (alpha_expand_prologue): Update.
2244 (alpha_start_function): Update.
2245 (alpha_output_function_end_prologue): Update.
2246 (alpha_expand_epilogue): Update.
2247 * config/frv/frv.c (frv_stack_info): Update.
2248 (frv_expand_epilogue): Update.
2249 * config/s390/s390.c (s390_regs_ever_clobbered): Update.
2250 (s390_register_info): Update.
2251 (s390_frame_info): Update.
2252 (s390_init_frame_layout): Update.
2253 (s390_can_eliminate): Update.
2254 (save_gprs): Update.
2255 * config/spu/spu.c (spu_split_immediate): Update.
2256 (need_to_save_reg): Update.
2257 (spu_expand_prologue): Update.
2258 (spu_expand_epilogue): Update.
2259 * config/sparc/sparc.md: Update.
2260 * config/sparc/sparc.c (eligible_for_return_delay): Update.
2261 (sparc_tls_got): Update.
2262 (legitimize_pic_address): Update.
2263 (sparc_emit_call_insn): Update.
2264 (sparc_expand_prologue): Update.
2265 (output_return): Update.
2266 (print_operand): Update.
2267 (sparc_function_ok_for_sibcall): Update.
2268 * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
2269 * config/m32r/m32r.md: Update.
2270 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
2271 (m32r_compute_frame_size): Update.
2272 (m32r_expand_prologue): Update.
2273 (m32r_expand_epilogue): Update.
2274 (m32r_legitimize_pic_address): Update.
2275 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
2276 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2277 * config/i386/i386.c (ix86_frame_pointer_required): Update.
2278 (gen_push): Update.
2279 (ix86_save_reg): Update.
2280 (ix86_compute_frame_layout): Update.
2281 (ix86_expand_prologue): Update.
2282 (ix86_expand_epilogue): Update.
2283 * config/sh/sh.c (output_stack_adjust): Update.
2284 (calc_live_regs): Update.
2285 (sh5_schedule_saves): Update.
2286 (sh_expand_prologue): Update.
2287 (sh_expand_epilogue): Update.
2288 (sh_setup_incoming_varargs): Update.
2289 (sh_allocate_initial_value): Update.
2290 (sh_get_pr_initial_val): Update.
2291 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
2292 * config/sh/sh.md (label:): Update.
2293 * config/avr/avr.c (out_movhi_mr_r): Update.
2294 * config/crx/crx.h (enum): Update.
2295 * config/xtensa/xtensa.h (along): Update.
2296 * config/stormy16/stormy16.c Update.
2297 (xstormy16_compute_stack_layout): Update.
2298 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
2299 (fr30_expand_prologue): Update.
2300 * config/cris/cris.c (cris_conditional_register_usage): Update.
2301 (cris_reg_saved_in_regsave_area): Update.
2302 (cris_initial_frame_pointer_offset): Update.
2303 (cris_simple_epilogue): Update.
2304 (cris_expand_prologue): Update.
2305 (cris_expand_epilogue): Update.
2306 (cris_expand_pic_call_address): Update.
2307 (cris_asm_output_symbol_ref): Update.
2308 (cris_asm_output_label_ref): Update.
2309 * config/cris/cris.md Update.
2310 * config/iq2000/iq2000.c (compute_frame_size): Update.
2311 (iq2000_expand_epilogue): Update.
2312 * config/mt/mt.h (save_direction): Update.
2313 * config/mn10300/mn10300.c (mn10300_function_value): Update.
2314 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
2315 (ia64_secondary_reload_class): Update.
2316 * config/m68k/m68k.c (m68k_save_reg): Update.
2317 (m68k_expand_prologue): Update.
2318 (m68k_expand_epilogue): Update.
2319 (legitimize_pic_address): Update.
2320 * config/rs6000/rs6000.c (rs6000_got_register): Update.
2321 (first_reg_to_save): Update.
2322 (first_altivec_reg_to_save): Update.
2323 (compute_vrsave_mask): Update.
2324 (compute_save_world_info): Update.
2325 (rs6000_stack_info): Update.
2326 (spe_func_has_64bit_regs_p): Update.
2327 (rs6000_ra_ever_killed): Update.
2328 (rs6000_emit_eh_reg_restore): Update.
2329 (rs6000_emit_allocate_stack): Update.
2330 (rs6000_emit_prologue): Update.
2331 (rs6000_emit_epilogue): Update.
2332 (rs6000_output_function_epilogue): Update.
2333 (output_profile_hook): Update.
2334 (rs6000_elf_declare_function_name): Update.
2335 * config/rs6000/rs6000.h (rs6000_args): Update.
2336 * config/rs6000/rs6000.md: Update.
2337 * config/mcore/mcore.c (mcore_expand_prolog): Update.
2338 * config/arc/arc.c (arc_output_function_epilogue): Update.
2339 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
2340 * config/darwin.c (machopic_function_base_name): Update.
2341 * config/score/score3.c (score3_compute_frame_size): Update.
2342 (rpush): Update.
2343 (rpop): Update.
2344 (score3_epilogue): Update.
2345 * config/score/score7.c (score7_compute_frame_size): Update.
2346 (score7_prologue): Update.
2347 (score7_epilogue): Update.
2348 * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
2349 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
2350 * config/arm/arm.c (use_return_insn): Update.
2351 (require_pic_register): Update.
2352 (arm_load_pic_register): Update.
2353 (arm_compute_save_reg0_reg12_mask): Update.
2354 (arm_compute_save_reg_mask): Update.
2355 (thumb1_compute_save_reg_mask): Update.
2356 (output_return_instruction): Update.
2357 (arm_output_function_prologue): Update.
2358 (arm_output_epilogue): Update.
2359 (arm_get_frame_offsets): Update.
2360 (arm_expand_prologue): Update.
2361 (thumb_pushpop): Update.
2362 (thumb_exit): Update.
2363 (thumb1_expand_prologue): Update.
2364 (thumb1_expand_epilogue): Update.
2365 (arm_unwind_emit): Update.
2366 (arm_output_fn_unwind): Update.
2367 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
2368 * config/arm/arm.md: Update.
2369 * config/pa/pa.md: Update.
2370 * config/pa/pa.c (legitimize_pic_address): Update.
2371 (compute_frame_size): Update.
2372 (hppa_expand_prologue): Update.
2373 (hppa_expand_epilogue): Update.
2374 (borx_reg_operand): Update.
2375 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
2376 (HARD_REGNO_RENAME_OK): Update.
2377 * config/mips/mips.c (mips_global_pointer): Update.
2378 (mips_save_reg_p): Update.
2379 (mips_compute_frame_info): Update.
2380 (mips_frame_pointer_required): Update.
2381 (mips_expand_prologue): Update.
2382 (mips_expand_epilogue): Update.
2383 (mips_can_use_return_insn): Update.
2384 (mips_reorg_process_insns): Update.
2385 * config/v850/v850.c (compute_register_save_size): Update.
2386 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
2387 * config/mmix/mmix.c (along): Update.
2388 (mmix_expand_epilogue): Update.
2389 * config/bfin/bfin.c (legitimize_pic_address): Update.
2390 (must_save_p): Update.
2391 (stack_frame_needed_p): Update.
2392 (add_to_reg): Update.
2393 (bfin_expand_prologue): Update.
2394 * stmt.c (expand_asm_operands): Update.
2395 * reload1.c (reload): Update.
2396 (init_elim_table): Update.
2397
d1163987
BW
23982008-04-25 Bob Wilson <bob.wilson@acm.org>
2399
2400 * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
2401
a5e11364
L
24022008-04-25 H.J. Lu <hongjiu.lu@intel.com>
2403
62d2739a 2404 * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
a5e11364
L
2405 (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
2406 (mov<mode>): Removed.
2407 (*movv4sf_internal): Likewise.
2408 (*movv2df_internal): Likewise.
2409
68d154b9
PG
24102008-04-25 Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
2411
2412 * config.gcc (crx-*-elf): Remove deprecation.
2413
e65e1476
DS
24142008-04-25 Danny Smith <dannysmith@users.sourceforge.net>
2415
2416 * config/i386/cygming-crtend.c (register_frame_ctor): Register
2417 __gcc_deregister_frame with atexit.
2418 (deregister_frame_dtor): Remove.
2419
9553940c 24202008-04-24 Nathan Froyd <froydnj@codesourcery.com>
94f4765c
NF
2421 Nathan Sidwell <nathan@codesourcery.com>
2422
e6d8b0c6 2423 * config/rs6000/rs6000.opt (mspe): Remove Var property.
94f4765c 2424 (misel): Likewise.
e6d8b0c6 2425 * config/rs6000/rs6000.h (rs6000_spe): Declare.
94f4765c 2426 (rs6000_isel): Likewise.
e6d8b0c6 2427 * config/rs6000/rs6000.c (rs6000_spe): New variable.
94f4765c 2428 (rs6000_isel): New variable.
e6d8b0c6 2429 (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
94f4765c 2430
5dc11954
JJ
24312008-04-24 Jakub Jelinek <jakub@redhat.com>
2432
2433 PR c++/35758
2434 * c-common.c (handle_vector_size_attribute): Call
2435 lang_hooks.types.reconstruct_complex_type instead of
2436 reconstruct_complex_type.
2437 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
2438 * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
2439 * langhooks.h (struct lang_hooks_for_types): Add
2440 reconstruct_complex_type hook.
2441 * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
2442 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
2443
83322951
RG
24442008-04-24 Richard Guenther <rguenther@suse.de>
2445
2446 * c-common.h (check_builtin_function_arguments): Declare.
2447 * c-common.c (validate_nargs): New function.
2448 (check_builtin_function_arguments): Likewise.
2449 * c-typeck.c (build_function_call): Call
2450 check_builtin_function_arguments.
2451 * builtins.c (fold_builtin_classify): Remove error reporting code.
2452 (fold_builtin_unordered_cmp): Likewise.
2453 (fold_builtin_1): Likewise.
2454 (fold_builtin_n): Likewise.
2455
194ac52a
JJ
24562008-04-24 Jakub Jelinek <jakub@redhat.com>
2457
2458 PR tree-optimization/36008
2459 * fold-const.c (try_move_mult_to_index): If s == NULL, divide
2460 the original op1, rather than delta by step.
2461
9f9f72aa 24622008-04-22 Antoniu Pop <antoniu.pop@gmail.com>
e6d8b0c6 2463 Sebastian Pop <sebastian.pop@amd.com>
9f9f72aa
AP
2464
2465 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
2466 eliminate_local_variables_stmt, eliminate_local_variables,
2467 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
2468 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
2469 of code delimited by two edges in the CFG.
2470 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
2471 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
2472 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
2473 the case of parallelisation of reductions.
2474 (expr_invariant_in_region_p): New.
2475
2476 * tree-flow.h (gather_blocks_in_sese_region): Declared.
2477 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
2478
2aa43509 24792008-04-24 Ira Rosen <irar@il.ibm.com>
e6d8b0c6 2480 Richard Guenther <rguenther@suse.de>
2aa43509
IR
2481
2482 PR tree-optimization/36034
2483 * tree-vect-analyze.c (vect_analyze_group_access): SLP is
2484 incapable of dealing with loads with gaps.
2485
e80d7580
RAE
24862008-04-24 Rafael Espindola <espindola@google.com>
2487
2488 * tree-flow.h (vrp_evaluate_conditional): Change signature.
2489 * tree-ssa-propagate.c (fold_predicate_in): Update call to
2490 vrp_evaluate_conditional.
2491 * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
e6d8b0c6
UB
2492 (vrp_evaluate_conditional): Split the cond argument.
2493 (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
2494 (simplify_stmt_for_jump_threading): Update call to
e80d7580
RAE
2495 vrp_evaluate_conditional.
2496
0e37a1c2
IR
24972008-04-24 Ira Rosen <irar@il.ibm.com>
2498
2499 PR tree-optimization/35982
2500 * tree-vect-analyze.c (vect_check_interleaving): Check that the
2501 interleaved data-refs are of the same type.
2502
f9f9640f
DS
25032008-04-24 Danny Smith <dannysmith@users.net>
2504
e6d8b0c6
UB
2505 * c-format.c (check_format_info_main): Use strncmp rather than a
2506 magic prefix to handle multichar length specs.
f9f9640f
DS
2507 * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
2508 Don't prefix "I64" and "I32" with '\0'.
2509
64ceac43
JJ
25102008-04-24 Jakub Jelinek <jakub@redhat.com>
2511
2512 PR target/36015
2513 * config/i386/i386.c (init_cumulative_args): Don't pass anything
2514 in registers for -m32 only if stdarg_p (fntype).
2515
4679504c
UB
25162008-04-24 Uros Bizjak <ubizjak@gmail.com>
2517
2518 PR rtl-optimization/36006
2519 * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
2520 temp to op0 in order to avoid invalid rtx sharing.
2521
51eed280
PB
25222008-04-23 Paolo Bonzini <bonzini@gnu.org>
2523
2524 * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
2525 check TREE_INVARIANT.
2526 * tree-gimple.c (is_gimple_address): New.
2527 (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
2528 * tree-gimple.h (is_gimple_address): New.
2529 * tree.h (decl_address_invariant_p): New.
2530 * tree.c (make_node_stat): Don't set TREE_INVARIANT.
2531 (build_string): Likewise.
2532 (decl_address_invariant_p): New, from is_gimple_invariant_address.
2533 (tree_invariant_p_1): Likewise.
2534 (save_expr): Use it.
2535 (tree_invariant_p): New.
2536 (skip_simple_arithmetic): Use it.
2537 (stabilize_reference_1): Use it.
2538 (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
2539 simplify.
2540 (build1_stat): Drop code to compute TREE_INVARIANT.
2541 (build2_stat): Drop code to compute TREE_INVARIANT.
2542 (build3_stat): Drop code to compute TREE_INVARIANT.
2543 (build4_stat): Drop code to compute TREE_INVARIANT.
2544 (build5_stat): Drop code to compute TREE_INVARIANT.
2545 (build7_stat): Drop code to compute TREE_INVARIANT.
2546 (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
2547 * tree.h (struct tree_base): Remove invariant_flag.
2548 (TREE_INVARIANT): Remove.
2549 * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
2550 (fold_builtin_expect): Check TREE_CONSTANT.
2551 * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
2552 * c-tree.h (c_expr_to_decl): Drop third parameter.
2553 * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
2554 (build_c_cast): Don't set TREE_INVARIANT.
2555 (pop_init_level): Don't set TREE_INVARIANT.
2556 (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
2557 * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
2558 TREE_CONSTANT.
2559 (gimplify_init_constructor): Don't set TREE_INVARIANT.
2560 (gimplify_addr_expr): Adjust comment.
2561 * tree-mudflap.c (mf_build_string):
2562 * print-tree.c (print_node): Don't print TREE_INVARIANT.
2563 * tree-nested.c (convert_nonlocal_reference): Adjust comment.
2564 * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
2565 * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
2566 * langhooks.c (lhd_expr_to_decl): Drop third parameter.
2567 * langhooks.h (struct lang_hooks): Drop third parameter from
2568 expr_to_decl.
2569
17d2c090
RG
25702008-04-23 Richard Guenther <rguenther@suse.de>
2571
2572 PR tree-optimization/27799
2573 PR tree-optimization/32921
2574 PR tree-optimization/32624
2575 * tree-ssa-structalias.c (merge_smts_into): Only merge the
2576 SMTs aliases and the tag itself into the solution.
2577 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
2578 merge the points-to solution back into the SMT aliases.
2579 (may_alias_p): Use alias_set_subset_of instead of
2580 aliases_conflict_p. A pointer which points to
2581 memory with alias set zero may access any variable.
2582
a7a512be
RG
25832008-04-23 Richard Guenther <rguenther@suse.de>
2584
2585 * alias.c (alias_set_subset_of): Correctly handle asking
2586 if zero is a subset of an alias set with zero child.
2587 * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
2588 (compute_flow_insensitive_aliasing): Correctly walk all
2589 pointers. Do not unnecessarily union sets.
2590
f3f75f69
RG
25912008-04-23 Richard Guenther <rguenther@suse.de>
2592
2593 PR middle-end/36021
2594 * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
2595
09725d5e
TB
25962008-04-22 Tomas Bily <tbily@suse.cz>
2597
4679504c
UB
2598 * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
2599 unreachable case.
2600 * tree-vrp.c (extract_range_from_unary_expr): Removed unused
2601 NON_LVALUE_EXPR.
2602 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2603 * tree-ssa-structalias.c (get_constraint_for): Likewise.
2604 * tree-inline.c (estimate_num_insns_1): Likewise.
2605 * varasm.c (const_hash_1, compare_constant, copy_constant)
2606 (compute_reloc_for_constant, output_addressed_constants): Likewise.
2607 * emit-rtl.c (component_ref_for_mem_expr)
2608 (set_mem_attributes_minus_bitpos): Likewise.
2609 * expr.c (highest_pow2_factor, expand_expr_real_1, )
2610 (is_aligning_offset): Likewise.
2611 * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
2612 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
2613 * dojump.c (do_jump): Likewise.
2614 * builtins.c (get_pointer_alignment, get_memory_rtx)
2615 (integer_valued_real_p, fold_builtin_next_arg): Likewise.
2616 * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
09725d5e 2617
63cb92c1
JJ
26182008-04-23 Jakub Jelinek <jakub@redhat.com>
2619
2620 PR rtl-optimization/36017
2621 * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
2622 expanding the library call.
2623
b2f06c39
ILT
26242008-04-22 Ian Lance Taylor <iant@google.com>
2625
2626 * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
2627 than size_in_bytes.
2628
aafc759a
PH
26292008-04-22 Pat Haugen <pthaugen@us.ibm.com>
2630
2631 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
2632 of LR/CTR moves for Power6.
2633
4218dc2d 26342008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com>
5b4603fa
KZ
2635
2636 PR middle-end/36003
2637 * passes.c (init_optimization_passes): Remove
2638 pass_fast_rtl_byte_dce.
2639
6126672e
UB
26402008-04-22 Uros Bizjak <ubizjak@gmail.com>
2641
2642 PR target/29096
2643 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
2644 builtin functions to generate faster code.
2645 (_mm_cvtpu16_ps): Ditto.
2646 (_mm_cvtpi32x2_ps): Ditto.
2647
f6d2671e
NC
26482008-04-22 Nick Clifton <nickc@redhat.com>
2649
53ed2f0e
NC
2650 * common.opt (ftree-loop-distribution): Add Optimization
2651 attribute.
2652
7dd68986
NC
2653 * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
2654 (frv_expand_builtin_va_start): Likewise.
2655
f6d2671e
NC
2656 * config/arm/arm.c (thumb_find_work_register): Fix location of
2657 argument register count.
2658
826fadba
MK
26592008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2660
2661 Support scheduling for ColdFire V1 and V3 microarchitecture.
2662 Improve scheduling of multiplication instructions.
2663
2664 * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
2665 (mac): New instruction attribute.
2666 * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
2667 (m68k_sched_mac): New variable.
2668 (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
2669 Handle cfv1 and cfv3.
2670 (max_insn_size): New static variable.
2671 (struct _sched_ib): New type.
2672 (sched_ib): New static variable.
2673 (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
2674 to fields of 'struct _sched_ib sched_ib'. Update all uses.
2675 (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
2676 Update.
2677 (m68k_sched_md_init_global, m68k_sched_md_finish_global,
2678 m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
2679 new variables. Update.
2680 (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2681 Add modeling of cfv3 instruction buffer. Update.
2682 * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
2683 * config/m68k/m68k.h (TUNE_CFV3): New macro.
2684 * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
2685 (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
2686 a particular reservation applies to.
2687 (type2): Reorganize attribute values. Rename alu to alu_reg,
2688 alu_l to alu, move_l to omove. Join move to alu. Split mul
2689 to mul_l and mul_w.
2690 (cf_ib_*): Simplify description of instruction buffer.
2691 (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
2692 (cf_mem): Split into cf_mem1 and cf_mem2.
2693 (cf_v2_move_??): Rename to cfv12_alu_??.
2694 (cf_v2_move_l_??): Rename to cfv12_omove_??.
2695 (cf_v2_mul_??): Remove reservations.
2696 (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
2697 cfv12_emac_??, cfv12_emac_w_i0): New reservations.
2698 (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
2699 appropriate place.
2700 (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
2701 cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
2702 cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
2703 cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
2704 cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
2705 cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
2706 (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
2707 expansions of the above reservations for instructions of sizes
2708 1, 2 and 3 words.
2709
c23da840
MK
27102008-04-22 Maxim Kuvyrkov <maxim@codesourcery.com>
2711
2712 * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
2713
27624b9e
AN
27142008-04-21 Adam Nemet <anemet@caviumnetworks.com>
2715
2716 * coverage.c: Include tree-pass.h.
2717 (coverage_counter_alloc): Print da_file_name to the dump file.
2718
4218dc2d 27192008-04-21 Kenneth Zadeck <zadeck@naturalbridge.com>
27624b9e 2720
b60db1ba
KZ
2721 * sbitmap.c (sbitmap_range_empty_p): New function.
2722 * sbitmap.h (sbitmap_range_empty_p): New function.
27624b9e 2723 * bitmap.h: Now includes obstack.h.
b60db1ba 2724
27624b9e 27252008-04-21 Richard Sandiford <rsandifo@nildram.co.uk>
4218dc2d 2726 Kenneth Zadeck <zadeck@naturalbridge.com>
cc806ac1
RS
2727
2728 * dbgcnt.def (ra_byte_scan): Added.
2729 * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
2730 when the last hit happens for a counter.
2731 * timevar.def (TV_DF_BYTE_LR): New variable.
2732 * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
2733 * passes.c (pass_fast_rtl_byte_dce): New pass.
2734 * fwprop.c (update_df): Added mode to call df_ref_create.
2735 Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2736 DF_REF_EXTRACT_OFFSET.
2737 * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
2738 DF_BYTE_LR_OUT, df_byte_lr): New macro.
2739 (df_mm): New enum.
2740 (df_ref_extract): Added mode field.
2741 (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
2742 DF_REF_EXTRACT_OFFSET.
2743 (DF_REF_EXTRACT_MODE): New macro.
2744 (df_byte_lr_bb_info): New structure.
2745 (df_print_byte_regset, df_compute_accessed_bytes,
2746 df_byte_lr_add_problem, df_byte_lr_get_regno_start,
2747 df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
2748 df_byte_lr_simulate_uses,
2749 df_byte_lr_simulate_artificial_refs_at_top,
2750 df_byte_lr_simulate_artificial_refs_at_end,
2751 df_compute_accessed_bytes): New function.
2752 (df_ref_create): Add parameter.
2753 (df_byte_lr_get_bb_info): New inline function.
2754 * df-scan.c (df_ref_record, df_uses_record,
2755 df_ref_create_structure): Added mode parameter.
2756 (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
2757 df_defs_record, df_uses_record, df_get_conditional_uses,
2758 df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
2759 df_entry_block_defs_collect, df_exit_block_uses_collect):
2760 Added mode parameter to calls to df_ref_record, df_uses_record,
2761 df_ref_create_structure.
4679504c 2762 (df_ref_equal_p, df_ref_compare): Added test for modes.
cc806ac1
RS
2763 (df_ref_create_structure): Added code to set mode. Renamed
2764 DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
2765 DF_REF_EXTRACT_OFFSET.
2766 * df-core.c (df_print_byte_regset): New function.
2767 * df-byte-scan.c: New file.
2768 * df-problems.c (df_rd_transfer_function): Removed unnecessary
2769 calls to BITMAP_FREE.
2770 (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
2771 (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
2772 df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
2773 df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
2774 df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
2775 df_byte_lr_local_compute, df_byte_lr_init,
2776 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
2777 df_byte_lr_transfer_function, df_byte_lr_free,
2778 df_byte_lr_top_dump, df_byte_lr_bottom_dump,
2779 df_byte_lr_add_problem, df_byte_lr_simulate_defs,
2780 df_byte_lr_simulate_uses,
2781 df_byte_lr_simulate_artificial_refs_at_top,
2782 df_byte_lr_simulate_artificial_refs_at_end): New function.
2783 * dce.c (byte_dce_process_block): New function.
2784 (dce_process_block): au is now passed in rather than computed
2785 locally. Changed loops that look at artificial defs to not look
2786 for conditional or partial ones, because there never are any.
2787 (fast_dce): Now is able to drive byte_dce_process_block or
2788 dce_process_block depending on the kind of dce being done.
2789 (rest_of_handle_fast_dce): Add parameter to fast_dce.
2790 (rest_of_handle_fast_byte_dce): New function.
2791 (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
2792 * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
2793
3d4cb550
DF
27942008-04-21 Daniel Franke <franke.daniel@gmail.com>
2795
2796 PR fortran/35019
2797 * gcc.h: Added fortran options that take arguments to
2798 DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
2799 macros.
2800
eea05d39
EB
28012008-04-20 Eric Botcazou <ebotcazou@adacore.com>
2802
2803 * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
2804 scalarization if on the LHS and not a full access.
2805
def9bf34
RW
28062008-04-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2807
eea05d39 2808 * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
def9bf34 2809
b7d8d447 28102008-04-18 Rafael Espindola <espindola@google.com>
eea05d39 2811
b7d8d447
RAE
2812 * tree-vrp.c (find_case_label_index): Fix the binary search.
2813 (find_case_label_range): New.
2814 (vrp_visit_switch_stmt): Use find_case_label_range.
2815 (simplify_switch_using_ranges): Use find_case_label_range.
2816
ed3444e9
EB
28172008-04-18 Eric Botcazou <ebotcazou@adacore.com>
2818
2819 * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
2820 using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
2821
893174fa
TT
28222008-04-18 Tom Tromey <tromey@redhat.com>
2823
2824 PR libcpp/15500:
2825 * doc/cpp.texi (Implementation-defined behavior): Mention
2826 -finput-charset.
2827
6e3c5c30
ILT
28282008-04-18 Ian Lance Taylor <iant@google.com>
2829
2830 * fold-const.c (pointer_may_wrap_p): New static function.
2831 (fold_comparison): Add another test for pointer overflow. Use
2832 pointer_may_wrap_p to disable some false positives.
2833
b6baa67d
KVH
28342008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
2835
2836 * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
2837 (fname_as_string): Match updated cpp_interpret_string prototype.
2838 (fix_string_type): Support char16_t* and char32_t*.
2839 (c_common_nodes_and_builtins): Add char16_t and char32_t (and
2840 derivative) nodes. Register as builtin if C++0x.
2841 (c_parse_error): Support CPP_CHAR{16,32}.
2842 * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
2843 (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
2844 CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
2845 CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
2846 CTI_CHAR32_ARRAY_TYPE>: New elements.
2847 (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
2848 char32_type_node, signed_char32_type_node, char16_array_type_node,
2849 char32_array_type_node): New defines.
2850 * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
2851 (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
2852 (lex_string): Support CPP_STRING{16,32}, match updated
2853 cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
2854 (lex_charconst): Support CPP_CHAR{16,32}.
2855 * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
2856 and CPP_STRING{16,32}.
2857
deb984e6
PB
28582008-04-18 Paolo Bonzini <bonzini@gnu.org>
2859
2860 PR bootstrap/35457
2861 * aclocal.m4: Regenerate.
2862 * configure: Regenerate.
2863
cb91fab0
JH
28642008-04-18 Jan Hubicka <jh@suse.cz>
2865
2866 * except.c (dw2_size_of_call_site_table,
2867 sjlj_size_of_call_site_table): Use vector API for call_site_record.
2868
2869 * cgraphbuild.c (build_cgraph_edges): Update.
2870 * tree-pass.h: Update comment.
2871 * final.c (leaf_function_p): Update.
2872 (leaf_renumber_regs): Update.
2873 (rest_of_clean_state): Update.
2874 * omp-low.c (expand_omp_parallel): Update.
2875 * ipa-reference.c (analyze_function): Update.
2876 * reorg.c (find_end_label): Update.
2877 (optimize_skip): Update.
2878 (fill_simple_delay_slots): Update.
2879 (fill_simple_delay_slots): Update.
2880 (make_return_insns): Update.
2881 (dbr_schedule): Update.
2882 * gimple-low.c (record_vars_into): Update.
2883 * cfgbuild.c (make_edges): Update.
2884 * function.c (assign_stack_local): Update.
2885 (assign_parm_adjust_stack_rtl): Update.
2886 (locate_and_pad_parm): Update.
2887 (allocate_struct_function): Do not initialize stack_alignment_needed
2888 and preferred_stack_boundary here.
2889 (stack_protect_prologue): Update.
2890 (stack_protect_epilogue): Update.
2891 (expand_function_start): Initialize stack_alignment_needed,
2892 preferred_stack_boundary and max_jumptable_ents.
2893 (expand_function_end): Update.
2894 (free_after_compilation): Do not NULLify epilogue_delay_list.
2895 * function.h (struct rtl_data): Add stack_protect_guard,
2896 stack_alignment_needed,
2897 preferred_stack_boundary, epilogue_delay_list.
2898 (struct function): Remove value_histograms, stack_alignment_needed,
2899 preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
2900 last_label_uid,
2901 unexpanded_var_list, stack_protect_guard.
2902 (current_function_epilogue_delay_list): Remove.
2903 * ipa-type-escape.c (analyze_function): Update.
2904 * gimplify.c (pop_gimplify_context): Update comment.
2905 * calls.c (expand_call): Update.
2906 (emit_library_call_value_1): Update.
2907 * except.c (set_nothrow_function_flags): Update.
2908 * cfgexpand.c (get_decl_align_unit): Update.
2909 (create_stack_guard): Update.
2910 (estimated_stack_frame_size): Update.
2911 (expand_used_vars): Update.
2912 (tree_expand_cfg): Free histogram earliers, init expansion variables.
2913 * explow.c (allocate_dynamic_stack_space): Update.
2914 * tree-ssa-live.c (remove_unused_locals): Update.
2915 * varasm.c (mark_constant_pool): Update.
2916 * tree-inline.c (remap_decls): Update.
2917 (initialize_cfun): Update.
2918 (declare_return_variable): Update.
2919 (inline_forbidden_p): Update.
2920 (expand_call_inline): Update.
2921 (declare_inline_vars): Update.
2922 (tree_function_versioning): Update.
2923 * tree-flow.h (value_histograms): New.
2924 (VALUE_HISTOGRAMS): New macro.
2925 * basic-block.h (control_flow_graph): Add max_jumptable_ents,
2926 last_label_uid.
2927 * tree-cfg.c (set_bb_for_stmt): Update.
2928 (replace_by_duplicate_decl): Update.
2929 (move_block_to_fn): Update.
2930 (new_label_mapper): Update.
2931 (dump_function_to_file): Update.
2932 * ipa-struct-reorg.c (build_data_structure): Update.
2933 * cfgrtl.c (print_rtl_with_bb): Update.
2934 * reload1.c (reload): Update.
2935 (reload): Update.
2936 * config/i386/i386.c (setup_incoming_varargs_64,
2937 ix86_compute_frame_layout): Update.
2938 * config/arc/arc.c (arc_output_function_epilogue): Update.
2939
799cff46
MS
29402008-04-18 Marius Strobl <marius@FreeBSD.org>
2941
2942 * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
2943 for FreeBSD as well.
2944 * gthr-posix95.h: Likewise.
2945
de907943
RS
29462008-04-17 Richard Sandiford <rsandifo@nildram.co.uk>
2947
2948 PR rtl-optimization/35838
2949 * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
2950 out the byte offset of the first subreg.
2951
c2b814b9
UB
29522008-04-17 Uros Bizjak <ubizjak@gmail.com>
2953
2954 * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
2955 to split_ti instead of three separate calls with single member arrays.
2956 (subti3 splitter): Ditto.
2957 (adddi3 splitter): Ditto with split_di.
2958 (subdi3 splitter): Ditto.
2959 (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
2960 two separate calls with single member arrays. Swap match_dup
2961 operands 1 and 2 to better fit into the array.
2962 (negdi2 splitter): Ditto with split_di.
2963 (movdfcc splitter): Pass arrays of 2 operands to split_di instead of
2964 two separate calls with single member arrays. Swap match_dup operands
2965 6 and 7 to better fit into the array.
2966
ec2e9a15
L
29672008-04-17 H.J. Lu <hongjiu.lu@intel.com>
2968
2969 * config/i386/i386.c (sse_builtin_type): New.
2970 (bdesc_sse_args): Likewise.
2971 (bdesc_sse_3arg): Removed.
2972 (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2973 (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
2974 IX86_BUILTIN_ROUNDPS.
2975 (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
2976 bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
2977 IX86_BUILTIN_ROUNDPS.
2978 (ix86_expand_sse_4_operands_builtin): Removed.
2979 (ix86_expand_sse_operands_builtin): New.
2980 (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
2981 and CODE_FOR_sse4_1_roundps.
2982 (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
2983 Handle bdesc_sse_args. Remove bdesc_sse_3arg.
2984
e6477eaa
AM
29852008-04-17 Alan Modra <amodra@bigpond.net.au>
2986
2987 PR target/35907
2988 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
2989 regs before frame pop when needed. If use_backchain_to_restore_sp
2990 then load backchain into a temp reg to restore vr and vrsave. Add
2991 code to restore vr after frame pop if possible.
2992
ba2e1892
RG
29932008-04-17 Richard Guenther <rguenther@suse.de>
2994
2995 * tree-vn.c (expressions_equal_p): Do not check type
2996 equality or compatibility before calling operand_equal_p.
2997 * fold-const.c (operand_equal_p): Check equivalence of
2998 integer constants before bailing out due to signedness or
2999 precision differences.
3000 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
3001 spurious differences in type qualification. Ignore types
3002 for COMPONENT_REFs at all.
3003
d60819f8
CB
30042008-04-17 Christian Bruel <christian.bruel@st.com>
3005
3006 * config/sh/sh.c (expand_cbranchdi4): Use original operands for
3007 msw_skip comparison.
3008
3d5e00a0
JJ
30092008-04-16 Jakub Jelinek <jakub@redhat.com>
3010
12e19e05
JJ
3011 PR c/35739
3012 * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
3013 reg type.
3014
3d5e00a0
JJ
3015 PR tree-optimization/35899
3016 * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
3017 rather than TREE_OPERAND.
3018
17c340e0
UB
30192008-04-16 Uros Bizjak <ubizjak@gmail.com>
3020
3021 PR target/35944
3022 * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
3023 temporary registers. Change operand predicate to general_operand.
3024 (remainderxf3): Ditto.
3025
e544c850
RG
30262008-04-16 Richard Guenther <rguenther@suse.de>
3027
3028 * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
3029 * tree-affine.c (aff_combination_expand): Look through some
3030 conversions.
3031
3d57d7ce
DK
30322008-04-15 Doug Kwan <dougkwan@google.com>
3033
3034 * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
3035 for hex printing.
3036 * tree-pretty-print.c (dump_generic_node): Ditto.
3037 * final.c (output_addr_const): Ditto.
3038 * dwarf2out.c (output_cfi): Ditto.
3039 * c-pretty-print.c (pp_c_integer_constant): Ditto.
3040 * print-rtl.c (print_rtx): Ditto.
3041 * print-tree.c (print_node_brief, print_node): Ditto.
3042 * c-common.c (match_case_to_enum_1): Ditto.
3043 * sched-vis.c (print_value): Ditto.
3044 * config/i386/i386.c (print_operand): Cast to long unsigned int
3045 for hex printing.
3046
d98c89de
DS
30472008-04-15 Danny Smith <dannysmith@users.sourceforge.net>
3048 * libgcc2.c [L_trampoline]: Remove unnecessary prototype for
3049 MS Windows VirtualProtect function.
3050
69c32ec8
JH
30512008-04-15 Jan Hubicka <jh@suse.cz>
3052
3053 * gengtype.c (write_root): Param_is argument is OK.
3054 * expr.c (expand_expr_real_1): Update call of get_exception_*.
3055 * function.h: Include varray.h
3056 (rtl_eh): New stucture based on except.c one.
3057 (call_site_record): New forward declaration and vector type.
3058 * calls.c (emit_call_1): Do not call
3059 note_current_region_may_contain_throw.
3060 * except.c (eh_status): Remove cur_region, try_region since they are
3061 unused.
3062 Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
3063 exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
3064 sjlj_fc, sjlj_exit_after to rth_eh in function.h.
3065 Remove call_site_data_used, call_site_data_size.
3066 Turn call_site_record into vector in function.h.
3067 (note_current_region_may_contain_throw): Remove.
3068 (get_exception_pointer, get_exception_filter): Do not take struct
3069 function argument; update.
3070 (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
3071 add_ttypes_entry, add_ehspec_entry, assign_filter_values,
3072 build_post_landing_pads, dw2_build_landing_pads,
3073 sjlj_assign_call_site_values, sjlj_mark_call_sites,
3074 sjlj_emit_function_enter, sjlj_emit_function_enter,
3075 sjlj_emit_function_exit, sjlj_emit_dispatch_table,
3076 sjlj_build_landing_pads, finish_eh_generation,
3077 remove_exception_handler_label, remove_eh_handler,
3078 maybe_remove_eh_handler, add_reachable_handler,
17c340e0
UB
3079 reachable_handlers, expand_builtin_eh_return, expand_eh_return,
3080 add_action_record, collect_one_action_chain, add_call_site,
3081 convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
69c32ec8
JH
3082 sjlj_output_call_site_table, output_function_exception_table,
3083 * except.h (note_current_region_may_contain_throw): Remove
3084 (get_exception_pointer, get_exception_filter): Do not take struct
3085 function argument.
3086 * Makefile.in (GTFILES): Put varargs before struct function.
3087
bd1f29d9
EB
30882008-04-15 Eric Botcazou <ebotcazou@adacore.com>
3089
3090 * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
3091 punt for STRING_CST.
3092 (get_constraint_for): Deal with STRING_CST here instead.
3093
3bb3bb2d
RG
30942008-04-15 Richard Guenther <rguenther@suse.de>
3095
3096 * tree-ssa-propagate.c (substitute_and_fold): Substitute
3097 statements in a basic-block with a backward walk. Do not
3098 substitute into dead statements but instead remove those.
3099
d9338cf0
RG
31002008-04-15 Richard Guenther <rguenther@suse.de>
3101
3102 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
3103 to zero, thus disable creation of SFTs.
3104
7e80c6bf
EB
31052008-04-15 Eric Botcazou <ebotcazou@adacore.com>
3106
3107 * tree-predcom.c (suitable_reference_p): Return false if the
3108 reference can throw.
3109
b97d8153
JJ
31102008-04-15 Jakub Jelinek <jakub@redhat.com>
3111
3112 PR c/35751
3113 * c-decl.c (finish_decl): If extern or static var has variable
3114 size, set TREE_TYPE (decl) to error_mark_node.
3115
d0599470
RAE
31162008-04-15 Rafael Espindola <espindola@google.com>
3117
b97d8153 3118 * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
d0599470
RAE
3119 variable arg1.
3120
649caaad
RG
31212008-04-15 Richard Guenther <rguenther@suse.de>
3122
3123 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
3124 * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
3125 (visit_reference_op_load): Do walk vuse-vdef chains on
3126 vn_reference_lookup.
3127 (visit_reference_op_store): But do not here.
3128 * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
3129 vn_reference_lookup.
3130 (vn_lookup_with_vuses): But do so here.
3131
55d7d0fa
ILT
31322008-04-14 Ian Lance Taylor <iant@google.com>
3133
3134 * fold-const.c (fold_overflow_warning): Remove assertion.
3135
2c4eec69
BE
31362008-04-15 Ben Elliston <bje@au.ibm.com>
3137
3138 * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
3139 temp1 local variables.
3140
31412008-04-15 Zuxy Meng <zuxy.meng@gmail.com>
40f39798
ZM
3142
3143 PR target/35661
3144 * config/i386/winnt.c (i386_pe_section_type_flags): Mark
3145 ".text.unlikely" section as executable.
3146
07acc7b3
JW
31472008-04-14 James E. Wilson <wilson@tuliptree.org>
3148
3149 * config/ia64/ia64.c (rtx_needs_barrier): Handle
3150 UNSPEC_FR_SQRT_RECIP_APPROX_RES.
3151 * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
3152 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
3153 divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
3154 divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
3155 divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
3156
4c9db6e0
ILT
31572008-04-14 Ian Lance Taylor <iant@google.com>
3158
3159 * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
3160 * fold-const.c (fold_comparison): If appropriate, test
3161 POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
3162 (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
3163 reassociating a pointer type.
3164 * doc/invoke.texi (Optimize Options): Document that
3165 -fstrict-overflow applies to pointer wraparound.
3166
305da3ec
JH
31672008-04-13 Jan Hubicka <jh@suse.cz>
3168
3169 * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
3170
298ac1dd
AP
31712008-04-12 Andrew Pinski <pinskia@gmail.com>
3172
3173 * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
3174 we are going to "save the world".
3175
70a7c7f1
HPN
31762008-04-13 Hans-Peter Nilsson <hp@axis.com>
3177
3178 * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
3179 ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
3180 operand 0 constraint, not "=".
3181
ad7aacba
JW
31822008-04-11 James E. Wilson <wilson@tuliptree.org>
3183
3184 * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
3185
9d6facc7
L
31862008-04-11 H.J. Lu <hongjiu.lu@intel.com>
3187
3188 * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
3189 of size of positions_needed * CHAR_BIT.
3190
4fe663b0
L
31912008-04-11 H.J. Lu <hongjiu.lu@intel.com>
3192
3193 PR middle-end/35897
3194 * dse.c (store_info): Change positions_needed to unsigned
3195 HOST_WIDE_INT.
3196 (lowpart_bitmask): New.
3197 (record_store): Cast to unsigned HOST_WIDE_INT for
3198 positions_needed. Assert width <= size of positions_needed *
3199 CHAR_BIT. Call lowpart_bitmask to initialize positions_needed.
3200 (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask. Call
3201 lowpart_bitmask to set mask.
3202
9fdd7520
BS
32032008-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
3204
3205 * config/bfin/constraints.md: New file.
3206 * config/bfin/bfin.md: Include it.
3207 (adddi3): Use satisfies_constraint functions instead of the old macros.
3208 * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
3209 CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
3210 CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
3211 CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
3212 CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
3213 CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
3214 EXTRA_CONSTRAINT): Delete.
3215 * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
3216 reg_or_neg7bit_operand): Use satisfies_constraint functions instead
3217 of the old macros.
3218 * config/bfin/bfin.c: Include "tm-constrs.h".
3219 (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
3220 Use satisfies_constraint functions instead of the old macros.
3221 * doc/md.texi (Blackfin Constraints): Update file name reference.
3222
0a4bf1d3
RG
32232008-04-11 Richard Guenther <rguenther@suse.de>
3224
3225 PR tree-optimization/35869
3226 * tree-vrp.c (execute_vrp): Move switch statement update after
3227 jump threading. Schedule another cfg cleanup run.
3228
21516d64
VR
32292008-04-11 Volker Reichelt <v.reichelt@netcologne.de>
3230
3231 PR c/35744
3232 * attribs.c (decl_attributes): Return early on errorneous node.
3233
0598f31b
OR
32342008-04-10 Oleg Ryjkov <olegr@google.com>
3235
3236 * tree.h (struct tree_base): Added a new flag default_def_flag.
3237 (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
3238
a1fcb9a1
KK
32392008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
3240
3241 * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
3242
6ef5fab0
JDA
32432008-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3244
3245 PR target/35768
3246 * pa.md: Define mode iterator P. Define mode attribute dwc.
3247 (dcacheflush): Update pattern to use iterator P and attribute dwc.
3248 (icacheflush): Likewise.
3249 * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
3250 !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
3251
e47f8bba
BE
32522008-04-11 Ben Elliston <bje@au.ibm.com>
3253
3254 * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
3255
2893f753
RAE
32562008-04-10 Rafael Espindola <espindola@google.com>
3257
b97d8153 3258 * tree-vrp.c (extract_range_from_binary_expr): Don't handle
2893f753
RAE
3259 TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
3260 (extract_range_from_expr): The same.
3261
5fb79e4c
AN
32622008-04-10 Adam Nemet <anemet@caviumnetworks.com>
3263
3264 * config/mips/mips.md (GPR2): New mode iterator.
3265 (seq): Add comment.
3266 (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
3267 *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
3268 *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
3269 Rewrite these to take two modes, the mode of comparison and the
3270 mode of the destination.
3271 * config/mips/mips.c (mips_expand_scc): Instead of having
3272 paradoxical subreg as destination, expand "narrowing" scc if mode
3273 of comparison is SI and target is requested in DI mode.
3274 (mips_emit_int_order_test): Update comment. Make mode of
3275 comparison match CMP0 rather than TARGET. When creating inverse
3276 target use mode of TARGET.
3277
63d628b2
AN
32782008-04-10 Adam Nemet <anemet@caviumnetworks.com>
3279
3280 * gcov-dump.c (tag_summary): Only print summaries for the first
3281 GCOV_COUNTERS_SUMMABLE counters.
3282
6dd18eb1
UB
32832008-04-10 Uros Bizjak <ubizjak@gmail.com>
3284
3285 * config/i386/i386.md (absneg): New code iterator.
3286 (absnegprefix): New code attribute.
3287 (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
3288 patterns using absneg code iterator.
3289 (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
3290 using absneg code iterator.
3291 (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
3292 *neg<mode>2 patterns using absneg code iterator.
3293 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3294 *negextendsfdf2 patterns using absneg code iterator.
3295 (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
3296 *negextendsfxf2 patterns using absneg code iterator.
3297 (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
3298 *negextendsfdf2 patterns using absneg code iterator.
3299 * config/i386/sse.md (<code><mode>2): Macroize expander from
3300 abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
3301
f40bee31
AK
33022008-04-10 Andreas Krebbel <krebbel1@de.ibm.com>
3303
3304 * config/s390/s390.h: Remove the remains of the recent search
3305 & replace action of current_function_outgoing_args_size.
3306
19aec6b0
IR
33072008-04-10 Ira Rosen <irar@il.ibm.com>
3308
3309 PR tree-optimization/35821
3310 * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
3311 NEW_STMT_LIST is not NULL.
3312
ee8f0bd7
DE
33132008-04-09 David Edelsohn <edelsohn@gnu.org>
3314
3315 PR libstdc++/35597
3316 * toplev.c (process_options): Remove -ffunction-sections debugging
3317 warning.
3318
3a3a1fe1
PB
33192008-04-09 Peter Bergner <bergner@vnet.ibm.com>
3320
3321 PR middle-end/PR28690
3322 * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
3323 than gen_rtx_fmt_ee to perform more canonicalizations.
3324
e0941605
JDA
33252008-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3326
3327 PR driver/35665
3328 * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
3329
2f9ea521
RG
33302008-04-09 Richard Guenther <rguenther@suse.de>
3331
3332 * tree-cfg.c (verify_stmt): Print complete bogus stmt.
3333 (dump_function_to_file): Dump function arguments with types.
3334
02765a37
RG
33352008-04-08 Richard Guenther <rguenther@suse.de>
3336
3337 * fold-const.c (fold_widened_comparison): Do not allow
3338 sign-changes that change the result.
3339
a0f39282
JJ
33402008-04-08 Janis Johnson <janis187@us.ibm.com>
3341
3342 PR target/35839
3343 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
3344 kinds of indirect references.
3345
7f62878c
DE
33462008-04-08 David Edelsohn <edelsohn@gnu.org>
3347
3348 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
3349 GNU Fortran language string.
3350
a1a6e271
RAE
33512008-04-08 Rafael Espindola <espindola@google.com>
3352
3353 * fold-canst.c (tree_call_nonnegative_warnv_p): New.
3354 (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
3355 * tree.h (tree_call_nonnegative_warnv_p): New.
3356
57b9e367
JH
33572008-04-08 Jan Hubicka <jh@suse.cz>
3358
3359 * function.c (free_after_compilation): Clear out regno_reg_rtx
3360 pointer.
3361
a95c8615
PB
33622008-04-08 Peter Bergner <bergner@vnet.ibm.com>
3363
3364 Revert
3365 2008-04-07 Peter Bergner <bergner@vnet.ibm.com>
3366
3367 PR middle-end/PR28690
3368 * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
3369 same precedence as REG_POINTER and MEM_POINTER operands.
3370
903b3003
RG
33712008-04-08 Richard Guenther <rguenther@suse.de>
3372
3373 PR middle-end/35834
3374 * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
3375 for adding index to base.
3376
0b03b302
KT
33772008-04-08 Kai Tietz <kai.tietz@onevision.com>
3378
3379 * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
3380 (MINGW_ENABLE_EXECUTE_STACK): New.
3381 (IN_LIBGCC2): For libgcc include windows.h file for
3382 function declarations.
3383
582be0a1
HPN
33842008-04-08 Hans-Peter Nilsson <hp@axis.com>
3385
3386 * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
3387 and tem2 if tem1 is not a REG or MULT.
3388
38173d38
JH
33892008-04-08 Jan Hubicka <jh@suse.cz>
3390
3391 * function.h (incomming_args): Break out of struct function.
3392 (function_subsections): Break out of struct function.
3393 (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
3394 return_rtx and hard_reg_initial_vals from struct function.
3395 Kill inl_max_label_num.
3396 (current_function_pops_args, current_function_args_info,
3397 current_function_args_size, current_function_args_size,
3398 current_function_pretend_args_size,
3399 current_function_outgoing_args_size,
3400 current_function_internal_arg_pointer, current_function_return_rtx):
3401 Kill compatibility accestor macros.
3402 * builtins.c (expand_builtin_apply_args_1): Update.
3403 (expand_builtin_next_arg): Update.
3404 * df-scan.c (df_get_call_refs): Update.
3405 * dbxout.c (dbxout_function_end): Update.
3406 * dwarf2out.c (dwarf2out_switch_text_section): Update.
3407 (output_line_info): Update.
3408 (secname_for_decl): Update.
3409 (dwarf2out_var_location): Update.
3410 * function.c (free_after_compilation): Update.
3411 (assign_parm_find_stack_rtl): Update.
3412 (assign_parms): Update.
3413 (expand_dummy_function_end): Update.
3414 (expand_function_end): Update.
3415 * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
3416 (expand_call): Update.
3417 (emit_library_call_value_1): Update.
3418 (store_one_arg): Update.
3419 * varasm.c (initialize_cold_section_name): Update.
3420 (unlikely_text_section): Update.
3421 (unlikely_text_section_p): Update.
3422 (assemble_start_function): Update.
3423 (assemble_end_function): Update.
3424 (default_section_type_flags): Update.
3425 (switch_to_section): Update.
3426 * integrate.c (set_decl_abstract_flags): Update.
3427 (get_hard_reg_initial_val): Update.
3428 (has_hard_reg_initial_val): Update.
3429 (allocate_initial_values): Update.
3430 * resource.c (init_resource_info): Update.
3431 * config/alpha/alpha.c (NUM_ARGS): Update.
3432 (direct_return): Update.
3433 (alpha_va_start): Update.
3434 (alpha_sa_size): Update.
3435 (alpha_initial_elimination_offset): Update.
3436 (alpha_expand_prologue): Update.
3437 (alpha_start_function): Update.
3438 (alpha_expand_epilogue): Update.
3439 (unicosmk_initial_elimination_offset):
3440 * config/alpha/alpha.md (call expander): Update.
3441 * config/s390/s390.c (s390_register_info): Update.
3442 (s390_register_info): Update.
3443 (s390_frame_info): Update.
3444 (s390_initial_elimination_offset): Update.
3445 (s390_build_builtin_va_list): Update.
3446 (s390_va_start): Update.
3447 * config/spu/spu.c (direct_return): Update.
3448 (spu_expand_prologue): Update.
3449 (spu_initial_elimination_offset): Update.
3450 (spu_build_builtin_va_list): Update.
3451 (spu_va_start): Update.
3452 * config/sparc/sparc.c (sparc_init_modes): Update.
3453 (sparc_compute_frame_size): Update.
3454 (function_value): Update.
3455 * config/m32r/m32r.c (m32r_compute_frame_size): Update.
3456 * config/i386/i386.md (return expander): Update.
3457 * config/i386/i386.c (ix86_va_start): Update.
3458 (ix86_can_use_return_insn_p): Update.
3459 (ix86_compute_frame_layout): Update.
3460 (ix86_expand_epilogue): Update.
3461 * config/sh/sh.c (output_stack_adjust): Update.
3462 (calc_live_regs): Update.
3463 (sh_expand_prologue): Update.
3464 (sh_builtin_saveregs): Update.
3465 (sh_va_start): Update.
3466 (initial_elimination_offset): Update.
3467 (sh_allocate_initial_value): Update.
3468 (sh_function_ok_for_sibcall): Update.
3469 (sh_get_pr_initial_val): Update.
3470 * config/sh/sh.md (return expander): Update.
3471 * config/avr/avr.c (frame_pointer_required_p): UPdate.
3472 * config/crx/crx.c (crx_compute_frame): UPdate.
3473 (crx_initial_elimination_offset): UPdate.
3474 * config/xtensa/xtensa.c (compute_frame_size): Update
3475 (xtensa_builtin_saveregs): Update.
3476 (xtensa_va_start): Update.
3477 (order_regs_for_local_alloc): Update.
3478 * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
3479 (xstormy16_expand_builtin_va_start): Update.
3480 * config/fr30/fr30.c (fr30_compute_frame_size): Update.
3481 * config/m68hc11/m68hc11.md (return expanders): Update.
3482 * config/m68hc11/m68hc11.c (expand_prologue): Update.
3483 (expand_epilogue): Update.
3484 * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
3485 (cris_simple_epilogue): Update.
3486 (cris_expand_prologue): Update.
3487 (cris_expand_epilogue): Update.
3488 * config/iq2000/iq2000.c (iq2000_va_start): Update.
3489 (compute_frame_size): Update.
3490 * config/mt/mt.c (mt_compute_frame_size): Update.
3491 * config/mn10300/mn10300.c (expand_prologue): Update.
3492 (expand_epilogue): Update.
3493 (initial_offset): Update.
3494 (mn10300_builtin_saveregs):
3495 * config/mn10300/mn10300.md (return expander): Update.
3496 * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3497 (ia64_initial_elimination_offset): Update.
3498 (ia64_initial_elimination_offset): Update.
3499 (ia64_expand_prologue): Update.
3500 * config/m68k/m68k.md (return expander): Update.
3501 * config/rs6000/rs6000.c (rs6000_va_start): Update.
3502 (rs6000_stack_info): Update.
3503 * config/mcore/mcore.c (layout_mcore_frame): Update.
3504 (mcore_expand_prolog): Update.
3505 * config/arc/arc.c (arc_compute_frame_size): Update.
3506 * config/score/score3.c (score3_compute_frame_size): Update.
3507 * config/score/score7.c (score7_compute_frame_size): Update.
3508 * config/arm/arm.c (use_return_insn): Update.
3509 (thumb_find_work_register): Update.
3510 (arm_compute_save_reg_mask): Update.
3511 (arm_output_function_prologue): Update.
3512 (arm_output_epilogue): Update.
3513 (arm_size_return_regs): Update.
3514 (arm_get_frame_offsets): Update.
3515 (arm_expand_prologue): Update.
3516 (thumb_exit): Update.
3517 (thumb_unexpanded_epilogue): Update.
3518 (thumb1_output_function_prologue): Update.
3519 * config/pa/pa.md (return expander): Update.
3520 * config/pa/pa.c (compute_frame_size): Update.
3521 (hppa_builtin_saveregs): Update.
3522 * config/mips/mips.c (mips_va_start): Update.
3523 (mips16_build_function_stub): Update.
3524 (mips_compute_frame_info): Update.
3525 (mips_restore_gp): Update.
3526 (mips_output_function_prologue): Update.
3527 (mips_expand_prologue): Update.
3528 * config/v850/v850.c (compute_frame_size): Update.
3529 (expand_prologue): * config/mmix/mmix.c (along): update.
3530 (mmix_initial_elimination_offset): update.
3531 (mmix_reorg): update.
3532 (mmix_use_simple_return): update.
3533 (mmix_expand_prologue): update.
3534 (mmix_expand_epilogue): Update.
3535 * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
3536 (emit_link_insn): Update.
3537
5d9b8bb4
AS
35382008-04-08 Anatoly Sokolov <aesok@post.ru>
3539
3540 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
3541 __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
3542 instructions.
3543 * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
3544 atmega103 device.
3545
3e029763
JH
35462008-04-07 Jan Hubicka <jh@suse.cz>
3547
3548 * function.h (rtl): Rename to x_rtl.
3549 (crtl): New define.
3550 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
3551 frame_offset, stack_check_probe_note, arg_pointer_save_area,
3552 used_temp_slots avail_temp_slots, temp_slot_level,
3553 nonlocal_goto_handler_labels): Update accesstors.
3554 (rtl): New global variable.
3555 (struct function): Move some fileds to rtl_data.
3556 (get_arg_pointer_save_area): Update prototype.
3557 * builtins.c (expand_builtin_setjmp_receiver): Update call of
3558 get_arg_pointer_save_area.
3559 * expr.c (init_expr): Update
3560 * function.c (get_frame_size): Update
3561 (assign_stack_local): Update
3562 (expand_function_end): Update.
3563 (get_art_pointer_save_area): Update
3564 * function.h
3565 * emit-rtl.c (rtl): Declare.
3566 (regno_reg_rtx): Declare.
3567 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
3568 Update.
3569 (gen_reg_rtx): Update.
3570 * varasm.c (n_deferred_constatns): Update accestor.
3571 (init_varasm_status): Do not allocate varasm_status.
3572 (force_const_mem, get_pool_size, output_constant_pool): Update.
3573 * stmt.c (force_label_rtx): Do not use x_ prefixes.
3574 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
3575 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
3576 * sparc/sparc.h (INIT_EXPANDERS): Update.
3577 * ia64/ia64.h (INIT_EXPANDERS): Update.
3578
c3be2598
JW
35792008-04-07 James E. Wilson <wilson@tuliptree.org>
3580
3581 * reload.c (push_secondary_reload): Add missing break to for loop.
3582
46b71b03
PB
35832008-04-07 Peter Bergner <bergner@vnet.ibm.com>
3584
3585 PR middle-end/PR28690
3586 * rtlanal.c: Update copyright years.
3587 (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
3588 as REG_POINTER and MEM_POINTER operands.
3589 * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
3590 (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
3591 * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
3592 * gcse.c: Update copyright years.
3593 (pre_delete): Call gen_reg_rtx_and_attrs.
3594 (hoist_code): Likewise.
3595 (build_store_vectors): Likewise.
3596 (delete_store): Likewise.
3597 * loop-invariant.c (move_invariant_reg): Likewise.
3598 Update copyright years.
3599
64ef8953
UB
36002008-04-07 Uros Bizjak <ubizjak@gmail.com>
3601
3602 * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
3603 control string instead of quoted.
3604
4218dc2d 36052008-04-07 Kenneth Zadeck <zadeck@naturalbridge.com>
84159bd8 3606
64ef8953
UB
3607 * doc/rtl.texi: Rewrite of subreg section.
3608
8502420b
KT
36092008-04-07 Kai Tietz <kai.tietz@onevision.com>
3610
64ef8953
UB
3611 PR/35842
3612 * config/i386/i386.c (legitimize_pic_address): Add treating
3613 of dllimport SYM_REF's.
3614 (legitimize_dllimport_symbol): Add prototype.
8502420b 3615
39fcde8f
EB
36162008-04-07 Eric Botcazou <ebotcazou@adacore.com>
3617
3618 * fold-const.c (fold) <ARRAY_REF>: New case. Try to fold constant
3619 reference in constructor with non self-referential type.
3620
9dd9bf80
EB
36212008-04-07 Eric Botcazou <ebotcazou@adacore.com>
3622
3623 Removal of Return with Depressed Stack Pointer support
3624 * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
3625 (ECF_SP_DEPRESSED): Likewise.
3626 (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
3627 * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
3628 (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3629 (expand_call): Do not test ECF_SP_DEPRESSED.
3630 * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3631 * function.c (keep_stack_depressed): Delete.
3632 (handle_epilogue_set): Likewise.
3633 (update_epilogue_consts): Likewise.
3634 (emit_equiv_load): Likewise.
3635 (thread_prologue_and_epilogue_insns): Remove support for Return with
3636 Depressed Stack Pointer.
3637 * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
3638
3633df5a
RG
36392008-04-06 Richard Guenther <rguenther@suse.de>
3640
3641 PR tree-optimization/35400
3642 * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
3643 information from SSA_NAMEs.
3644
5dc77808
AS
36452008-04-06 Anatoly Sokolov <aesok@post.ru>
3646
3647 * config/avr/avr.h (avr_mega_p): Remove declaration.
3648 (AVR_MEGA): Remove macro.
3649 * config/avr/avr.c (avr_mega_p): Remove variable.
3650 (avr_override_options): Remove inicializion of avr_mega_p.
3651 Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3652 (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
3653 (avr_jump_mode): (Ditto.).
3654 (avr_output_progmem_section_asm_op): (Ditto.).
3655 (avr_asm_init_sections): (Ditto.).
3656 (avr_asm_init_sections): (Ditto.).
3657 (avr_rtx_costs): (Ditto.).
3658 * config/avr/avr.md: (Ditto.).
3659 * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
3660 '__AVR_MEGA__'.
3661
8c51effa
RG
36622008-04-06 Richard Guenther <rguenther@suse.de>
3663
3664 PR tree-optimization/35842
3665 * tree-ssa-address.c (fixed_address_object_p): Adjust to match
3666 is_gimple_invariant_address.
3667
3135ce84
FXC
36682008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3669
3670 * gcc.c (default_compilers): Sync Fortran extensions list with
3671 that in fortran/lang-specs.h.
3672 * doc/invoke.texi: Likewise.
3673 * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
3674 * dwarf2out.c (gen_compile_unit_die): Likewise.
3675
d7d7db8b
TC
36762008-04-06 Tom G. Christensen <tgc@jupiterrise.com>
3677
3678 * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
3679
27183bba
UB
36802008-04-05 Uros Bizjak <ubizjak@gmail.com>
3681
3682 PR target/12329
3683 * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
3684 attribute is used for nested functions.
3685
9e016eba
JH
36862008-04-05 Jan Hubicka <jh@suse.cz>
3687
9fb7564e
JH
3688 * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
3689
9e016eba
JH
3690 * tree-dump.c (dump_enable_all): Remove prototype; do not accept
3691 letter argument.
3692 (dump_files): Update.
3693 (enable_rtl_dump_file): Do not accept letter argument.
3694 * tree-pass.h (dump_file_info): Remove letter argument.
3695 * toplev.c (decode_d_option): Update -da handling.
3696 * toplev.h (enable_rtl_dump_file): Update prototype.
3697 * passes.c (register_one_dump_file): Do not accept IPA argument; work
3698 it out based on pass type.
3699 (register_dump_files_1): Likewise.
3700 (init_optimization_passes): Update register_one_dump_file calls.
27183bba
UB
3701 (execute_one_pass): Sanity check that IPA passes are called at IPA
3702 level and RTL passes at RTL level.
9e016eba
JH
3703 (execute_pass_list): IPA pass can not be after or subpass of
3704 GIMPLE/RTL pass.
3705 (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
3706 disallov RTL subpasses of IPA subpasses.
3707
23ef6d21
BE
37082008-04-05 Ben Elliston <bje@au.ibm.com>
3709
3710 * tree-cfg.c (need_fake_edge_p): Return false for calls to
3711 builtins that return exactly once and do not throw. Cache call to
3712 call_expr_flags.
3713
3c2397cd
AH
37142008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
3715
3716 PR rtl-optimization/34916
3717 PR middle-end/35519
3718 * combine.c (create_log_links): Do not create duplicate LOG_LINKS
3719 between instruction pairs.
3720
9eb3a0dd
N
37212008-04-04 Naveen.H.S <naveen.hs@kpitcummins.com>
3722
3723 * doc/invoke.texi: Document -mbitops for SH.
3724 * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
3725 * config/sh/predicates.md (bitwise_memory_operand): New predicate.
3726 * config/sh/sh.c (print_operand): Add %t operand code.
3727 * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
3728 * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
3729 (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
3730 (extendqihi2): Likewise.
3731 (movqi_i): Likewise.
3732 (insv): Use bset, bclr and bst instructions for SH2A if possible.
3733 (extv): Use bld instruction for SH2A if possible.
3734 (extzv): Likewise.
3735 (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
3736 bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
3737 bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
3738 (bset.b, bclr.b): Define peepholes.
3739 * config/sh/sh.opt (mbitops): New option.
3740
fdf4f148
JJ
37412008-04-04 Janis Johnson <janis187@us.ibm.com>
3742
3743 PR target/35620
3744 * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
3745 and view convert expression.
3746
3088d404
JJ
37472008-04-04 Jakub Jelinek <jakub@redhat.com>
3748
3749 PR target/35364
3750 * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3751
8b96a312
L
37522008-04-04 H.J. Lu <hongjiu.lu@intel.com>
3753
3754 * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
3755
3756 * config/i386/cpuid.h (bit_AES): New.
3757 (bit_PCLMUL): Likewise.
3758
3759 * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
3760 (override_options): Handle PTA_AES and PTA_PCLMUL. Enable
3761 SSE2 if AES or PCLMUL is enabled.
3762 (ix86_builtins): Add IX86_BUILTIN_AESENC128,
3763 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3764 IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
3765 IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
3766 (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
3767 (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
3768 IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
3769 IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
3770 (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
3771 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
3772 __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
3773 __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
3774 __builtin_ia32_aeskeygenassist128 and
3775 __builtin_ia32_pclmulqdq128.
3776 * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
3777 (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
3778 IX86_BUILTIN_PSRLDQI128. Handle IX86_BUILTIN_AESKEYGENASSIST128.
3779
3780 * config/i386/i386.h (TARGET_AES): New.
3781 (TARGET_PCLMUL): Likewise.
3782 (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
3783
3784 * config/i386/i386.md (UNSPEC_AESENC): New.
3785 (UNSPEC_AESENCLAST): Likewise.
3786 (UNSPEC_AESDEC): Likewise.
3787 (UNSPEC_AESDECLAST): Likewise.
3788 (UNSPEC_AESIMC): Likewise.
3789 (UNSPEC_AESKEYGENASSIST): Likewise.
c9a22ea1 3790 (UNSPEC_PCLMUL): Likewise.
8b96a312
L
3791
3792 * config/i386/i386.opt (maes): New.
3793 (mpclmul): Likewise.
3794
3795 * config/i386/sse.md (aesenc): New pattern.
3796 (aesenclast): Likewise.
3797 (aesdec): Likewise.
3798 (aesdeclast): Likewise.
3799 (aesimc): Likewise.
3800 (aeskeygenassist): Likewise.
3801 (pclmulqdq): Likewise.
3802
3803 * config/i386/wmmintrin.h: New.
3804
3805 * doc/extend.texi: Document AES and PCLMUL built-in function.
3806
3807 * doc/invoke.texi: Document -maes and -mpclmul.
3808
e8924938
PB
38092008-04-04 Paolo Bonzini <bonzini@gnu.org>
3810
3811 * function.c (free_after_parsing): Replace with
3812 cxx_push_function_context from C++ front-end.
3813 (allocate_struct_function): Don't call langhook.
3814 * langhooks.h (struct lang_hooks_for_functions): Delete.
3815 (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
3816 member "function".
3817 * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
3818 (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
3819 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3820 LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
3821 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
3822 remove LANG_HOOKS_FUNCTION_INITIALIZER.
3823 * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
3824
3825 * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
3826 Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
3827
05008a0c
JJ
38282008-04-04 Jakub Jelinek <jakub@redhat.com>
3829
3830 PR c/35440
3831 * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
3832 for all types.
3833
c071e8bc
RG
38342008-04-04 Richard Guenther <rguenther@suse.de>
3835
3836 PR middle-end/35823
3837 * fold-const.c (optimize_minmax_comparison): Use the correct
3838 type for the constant in the simplified comparison.
3839
f4a1dd0d
ZM
38402008-04-04 Zuxy Meng <zuxy.meng@gmail.com>
3841
3842 * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
3843 Pass L2 size as "--param l2-cache-size" to the compiler.
3844 (decode_l2_cache): New function to decode L2 cache parameters using
3845 0x8000006 extended cpuid function.
3846 (detect_caches_amd): Determine parameters of L2 cache using
3847 decode_l2_caches function.
3848 (decode_caches_intel): Decode L2 cache parameters.
3849 (detect_caches_intel): Determine L2 cache parameters using
3850 decode_caches_intel and decode_l2_caches functions.
3851
3ee909cb
BW
38522008-04-03 Bob Wilson <bob.wilson@acm.org>
3853
3854 * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
3855 secondary input reload for subword loads from the constant pool.
3856
6db07dcb
JJ
38572008-04-03 Janis Johnson <janis187@us.ibm.com>
3858
383e91e4
JJ
3859 PR target/35713
3860 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
3861 constants of the appropriate size for runtime calculations.
3862
6db07dcb
JJ
3863 PR c/35712
3864 * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
3865 decimal-float literal constant zero.
3866
5da250fc
JJ
38672008-04-03 Jakub Jelinek <jakub@redhat.com>
3868
79addd1f
JJ
3869 PR c/35738
3870 * c-parser.c (c_parser_omp_atomic): Call
3871 default_function_array_conversion on the RHS.
3872
5da250fc
JJ
3873 PR middle-end/35818
3874 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
3875 call is_variable_sized if decl has incomplete type.
3876
940f3b52
L
38772008-04-03 H.J. Lu <hongjiu.lu@intel.com>
3878
3879 * config/i386/i386-protos.h (ix86_aligned_p): Removed.
3880
6ac935c1
AN
38812008-04-03 Adam Nemet <anemet@caviumnetworks.com>
3882
3883 * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
3884 iterators.
64ef8953 3885 (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
6ac935c1
AN
3886 (sgt<u>): Merge sgt and sgtu into new expander.
3887 (sgt, sgtu): Remove expanders.
64ef8953 3888 (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
6ac935c1
AN
3889 (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
3890 (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
3891 *sgtu_<mode>_mips16 into new pattern.
3892 (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
3893 (sge<u>): Merge sge and sgeu into new expander.
3894 (sge, sgeu): Remove expanders.
3895 (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
3896 new pattern.
3897 (*sge_<mode>, second *sge_<mode>): Remove patterns.
3898 (slt<u>): Merge slt and sltu into new expander.
3899 (slt, sltu): Remove expanders.
64ef8953 3900 (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
6ac935c1
AN
3901 (*slt_<mode>, *sltu_<mode>): Remove patterns.
3902 (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
3903 *sltu_<mode>_mips16 into new pattern.
3904 (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
3905 (sle<u>): Merge sle and sleu into new expander.
3906 (sle, sleu): Remove expanders.
64ef8953 3907 (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
6ac935c1
AN
3908 (*sle_<mode>, *sleu_<mode>): Remove patterns.
3909 (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
3910 *sleu_<mode>_mips16 into new pattern.
3911 (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
3912
6b0c2336
JH
39132008-04-03 Jan Hubicka <jh@suse.cz>
3914
3915 PR tree-optimization/35795
3916 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
3917 * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3918 * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3919 * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3920 * score/score3.c (score3_output_mi_thunk): Likewise.
3921 * score/score7.c (score7_output_mi_thunk): Likewise.
3922 * mips/mips.c (mips_output_mi_thunk): Likewise.
3923
b47ee386
RG
39242008-04-03 Richard Guenther <rguenther@suse.de>
3925
3926 * tree-vrp.c (extract_range_from_unary_expr): Handle all
3927 conversions. Simplify code.
3928
2a7428c0
KK
39292008-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
3930
3931 * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
3932
6cba282a
TT
39332008-04-03 Tom Tromey <tromey@redhat.com>
3934 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3935
3936 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
3937 * config/bfin/t-bfin-linux (generated_files): Add
3938 linux-sysroot-suffix.h.
3939 * doc/install.texi (Prerequisites): Require make 3.80.
3940 * doc/sourcebuild.texi (Front End Directory): Document new
3941 variable.
3942 * Makefile.in (generated_files): New variable.
3943 (ALL_HOST_OBJS): New variable.
3944 ($(ALL_HOST_OBJS)): New target.
3945
9ff420f1
PB
39462008-04-03 Paolo Bonzini <bonzini@gnu.org>
3947
6b0c2336
JH
3948 * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
3949 (remap_block): Call id->transform_lang_insert_block instead
3950 of langhook.
3951 (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
3952 Set id.transform_lang_insert_block to NULL.
3953 (clone_body): Move to cp/optimize.c
3954 * tree-inline.h (struct copy_body_data): Change
3955 transform_lang_insert_block to function pointer.
3956 (copy_generic_body, copy_decl_no_change): Export.
3957 * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
3958 * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
3959 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
3960
3961 * c-tree.h (insert_block): Kill.
3962 * c-decl.c (insert_block): Kill.
9ff420f1 3963
d2784db4
PB
39642008-04-03 Paolo Bonzini <bonzini@gnu.org>
3965
6b0c2336
JH
3966 * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3967 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3968 * c-tree.h (c_push_function_context, c_pop_function_context): Remove
3969 argument.
3970 * c-decl.c (c_push_function_context, c_pop_function_context): Remove
3971 argument, call {push,pop}_function_context from here.
3972 * c-parser.c: Use c_{push,pop}_function_context.
3973
3974 * function.c (push_function_context_to): Move meat ...
3975 (push_function_context): ... here. Simplify.
3976 * function.c (pop_function_context_from): Move meat ...
3977 (pop_function_context): ... here. Simplify.
3978 * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
3979 leave_nested).
3980 * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
3981 LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
3982 (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
3983 * tree.h (push_function_context_to, pop_function_context_from): Remove.
d2784db4 3984
9e0aebca
BE
39852008-04-03 Ben Elliston <bje@au.ibm.com>
3986
3987 * expmed.c (extract_force_align_mem_bit_field): Remove.
3988
55187c8a
RG
39892008-04-03 Richard Guenther <rguenther@suse.de>
3990
3991 PR middle-end/35800
3992 * expr.h (try_casesi): Adjust prototype.
3993 * expr.c (try_casesi): Take fallback label as extra parameter.
3994 Use that for gen_casesi if default_label is NULL.
3995 * stmt.c (expand_case): Pass fallback label to try_casesi,
3996 make sure to fill gaps with a fallback label if default_label
3997 is not present.
3998
d7087dd2
DH
39992008-04-03 Dominique d'Humieres <dominiq@lps.ens.fr>
4000
4001 PR target/35801
4002 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
4003
609023ff
BE
40042008-04-03 Ben Elliston <bje@au.ibm.com>
4005
4006 * expmed.c (extract_split_bit_field): Remove if (0) code.
4007 * tree-ssa-structalias.c (do_sd_constraint): Likewise.
4008 (do_ds_constraint): Likewise.
4009
93d45d9e
JM
40102008-04-02 Joseph Myers <joseph@codesourcery.com>
4011
4012 * doc/cppopts.texi (-dU): Document.
4013 * c-common.h (flag_dump_macros): Update comment.
4014 * c-opts.c (handle_OPT_d): Handle -dU.
4015 * c-ppoutput.c (macro_queue, define_queue, undef_queue,
4016 dump_queued_macros, cb_used_define, cb_used_undef): New.
4017 (init_pp_output): Handle -dU.
4018 (cb_line_change): Call dump_queued_macros.
4019 * toplev.c (decode_d_option): Accept -dU as preprocessor option.
4020
e6b69d0e
AS
40212008-04-02 Anatoly Sokolov <aesok@post.ru>
4022
4023 * config/avr/predicates.md (io_address_operand): New predicate.
4024 * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
4025 * config/avr/avr.c (avr_io_address_p): Remove function.
4026 (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
4027 'avr_io_address_p' function.
4028 (out_movhi_r_mr): (Ditto.).
4029 (out_movqi_mr_r): (Ditto.).
4030 (out_movhi_mr_r): (Ditto.).
4031 (avr_address_cost): (Ditto.).
4032
7b198002
UB
40332008-04-02 Uros Bizjak <ubizjak@gmail.com>
4034
4035 * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
4036 Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
4037 in 32bit mode when XMM registers are available to avoid store
4038 forwarding stalls.
4039 (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
4040 corresponding post-reload splitters.
4041
abe08645
L
40422008-04-02 H.J. Lu <hongjiu.lu@intel.com>
4043
4044 * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
4045 and __builtin_ia32_shufpd. Provide __builtin_ia32_roundsd and
4046 __builtin_ia32_roundss.
4047 (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
4048 __builtin_ia32_shufpd, __builtin_ia32_roundsd and
4049 __builtin_ia32_roundss.
4050 (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
4051 IX86_BUILTIN_SHUFPD here.
4052
94237c92
L
40532008-04-02 H.J. Lu <hongjiu.lu@intel.com>
4054
4055 * config/i386/i386.md (plogic): New.
4056 (plogicprefix): Likewise.
4057
4058 * config/i386/mmx.md (mmx_<code><mode>3): New.
4059 (mmx_and<mode>3): Removed.
4060 (mmx_ior<mode>3): Likewise.
4061 (mmx_xor<mode>3): Likewise.
4062
4063 * config/i386/sse.md (<code><mode>3): New.
4064 (*<code><mode>3): Likewise.
4065 (*<code><mode>3): Likewise.
4066 (<code><mode>3): Likewise.
4067 (*sse_<code><mode>3): Likewise.
4068 (*sse2_<code><mode>3): Likewise.
4069 (<code>tf3): Likewise.
4070 (*<code>tf3): Likewise.
4071 (and<mode>3): Likewise.
4072 (*and<mode>3): Likewise.
4073 (ior<mode>3): Removed.
4074 (*ior<mode>3): Likewise.
4075 (xor<mode>3): Likewise.
4076 (*xor<mode>3): Likewise.
4077 (*and<mode>3): Likewise.
4078 (*ior<mode>3): Likewise.
4079 (*xor<mode>3): Likewise.
4080 (and<mode>3): Likewise.
4081 (*sse_and<mode>3): Likewise.
4082 (*sse2_and<mode>3): Likewise.
4083 (andtf3): Likewise.
4084 (*andtf3): Likewise.
4085 (ior<mode>3): Likewise.
4086 (*sse_ior<mode>3): Likewise.
4087 (*sse2_ior<mode>3): Likewise.
4088 (iortf3): Likewise.
4089 (*iortf3): Likewise.
4090 (xor<mode>3): Likewise.
4091 (*sse_xor<mode>3): Likewise.
4092 (*sse2_xor<mode>3): Likewise.
4093 (xortf3): Likewise.
4094 (*xortf3): Likewise.
4095
b7814a18
RG
40962008-04-02 Richard Guenther <rguenther@suse.de>
4097
4098 PR tree-optimization/14495
4099 PR tree-optimization/34793
4100 * tree-vrp.c (struct switch_update): New structure.
4101 (to_remove_edges, to_update_switch_stmts): New VECs.
4102 (simplify_switch_using_ranges): New function. Remove not taken
4103 case labels and edges.
4104 (simplify_stmt_using_ranges): Call it.
4105 (identify_jump_threads): Mark edges we have queued for removal
4106 so we don't thread them.
4107 (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
4108 case label vector.
4109 * tree-cfg.c (group_case_labels): Deal with missing default label.
4110 (tree_verify_flow_info): Allow missing default label.
4111 * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
4112 (emit_case_nodes): Likewise.
4113 (expand_case): Do not rely on the default label to be present.
4114 * expr.c (try_casesi): Deal with NULL default_label.
4115 (do_tablejump): Likewise.
4116
8aea0bf0
RG
41172008-04-02 Richard Guenther <rguenther@suse.de>
4118
4119 PR tree-optimization/14495
4120 * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
4121 SWITCH_EXPR here ...
4122 (vrp_visit_switch_stmt): ... but here (new function).
4123 (find_case_label_index): New helper function.
4124 (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
4125
3f1c2278
PB
41262008-04-02 Paolo Bonzini <bonzini@gnu.org>
4127
4128 * fwprop.c: Fix ISO-C99ism.
4129
da0f6381
PB
41302008-04-02 Paolo Bonzini <bonzini@gnu.org>
4131
4132 PR bootstrap/35752
4133 * Makefile.in (objdir): Set it here.
4134 * configure.ac: Not here. Find dynamic linker characteristics.
4135 * exec-tool.in: Use them.
4136 * aclocal.m4: Regenerate.
4137 * configure: Regenerate.
4138
4846b435
PB
41392008-04-02 Paolo Bonzini <bonzini@gnu.org>
4140
4141 * expr.c (expand_var): Delete it.
4142 * expr.h (expand_var): Delete prototype.
4143 * function.c (expand_function_start): Use expand_decl instead.
4144 * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
4145 langhook.
4146
4fefbcdb
AH
41472008-04-02 Andy Hutchinson <hutchinsonamdy@aim.com>
4148
4149 PR rtl-optimization/35542
4150 * fwprop.c (forward_propagate_and_simplify): Replace
4151 loc_reg_mentioned_in_p with reg_mentioned_p.
4152
460d667d
PB
41532008-04-02 Paolo Bonzini <bonzini@gnu.org>
4154
4fefbcdb 4155 PR rtl-optimization/35281
460d667d
PB
4156 * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
4157 (propagate_rtx_1): Handle PR_HANDLE_MEM.
4158 (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
4159 (varying_mem_p): Move above propagate_rtx.
4160 (all_uses_available_at): Do not check MEMs.
4161
a26a02d7
RAE
41622008-04-02 Rafael Espindola <espindola@google.com>
4163
4164 * tree-vrp.c (extract_code_and_val_from_cond): Remove.
4165 (register_edge_assert_for_2): Split the cond argument.
4166 (register_edge_assert_for_1): Adjust for the change in
4167 register_edge_assert_for_2.
4168 (register_edge_assert_for): Split the cond argument.
4169 (find_switch_asserts): Adjust for the change in
4170 register_edge_assert_for.
4171
e8930cc1
KT
41722008-04-02 Kai Tietz <kai.tietz@onevision.com>
4173
4174 * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
b97d8153 4175 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
893125e0 4176 offsets for 64-bit mingw.
b97d8153 4177 * config/i386/i386.c (ix86_pass_by_reference): Correct calling
893125e0 4178 abi for x86_64-pc-mingw.
e8930cc1 4179
70b7b037
RG
41802008-04-02 Richard Guenther <rguenther@suse.de>
4181
4182 * tree-vrp.c (extract_range_from_assert): Make sure to not
4183 produce range min/max with TREE_OVERFOW set.
4184 If merging a anti-range and a range keep the anti-range if
4185 the range covers all values of the type.
4186 (register_edge_assert_for_2): Only allow sign-changing
4187 conversions in detecting canonical range checks. Also
4188 register an assert for the unsigned name if useful.
4189
4190 PR tree-optimization/35787
4191 * tree-vrp.c (vrp_val_max): New function.
4192 (vrp_val_min): Likewise.
4193 (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
4194 (vrp_val_is_min): Likewise.
4195 (supports_overflow_infinity): Use vrp_val_{min,max}.
4196 (negative_overflow_infinity): Likewise.
4197 (positive_overflow_infinity): Likewise.
4198 (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
4199 (is_positive_overflow_infinity): Likewise.
4200 (is_overflow_infinity): Likewise.
4201 (avoid_overflow_infinity): Use vrp_val_{min,max} and
4202 vrp_val_is_{min,max}.
4203 (set_and_canonicalize_value_range): Canonicalize anti-ranges
4204 to ranges if possible. Avoid empty ranges.
4205
10743280
JDA
42062008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4207
4208 PR middle-end/35705
4209 * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
4210 the expression is a function address.
4211
7151ffbe
GH
42122008-04-01 George Helffrich <george@gcc.gnu.org>
4213
623f8e39 4214 PR fortran/35154, fortran/23057
7151ffbe
GH
4215 * dbxout.c: Emit .stabs debug info for Fortran COMMON block
4216 variables as base symbol name + offset using N_BCOMM/N_ECOMM.
4217 (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
4218 (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
4219 in common.
4220 (dbxout_syms): Check for COMMON-based symbol and wrap in
4221 N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
4222 in bracket for efficiency.
4223
4224 * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
4225 using DW_TAG_common_block + member offset.
4226 (add_pubname_string): New function.
4227 (dw_expand_expr): New function to find block name and offset for
4228 COMMON var.
4229 (common_check): New function to check whether symbol in Fortran COMMON.
4230 (gen_variable_die): If COMMON, use DW_TAG_common_block.
4231
dc197ab9
VR
42322008-04-01 Volker Reichelt <v.reichelt@netcologne.de>
4233
4234 PR c/35436
4235 * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
4236
9e9b5341
BE
42372008-04-02 Ben Elliston <bje@au.ibm.com>
4238
4239 * config/v850/v850.md (casesi): Remove if (0) code.
4240 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4241 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
4242
380edc9f
UB
42432008-04-01 Uros Bizjak <ubizjak@gmail.com>
4244
4245 * config/i386/i386.md (rex64suffix): New mode attribute.
4246 (floathi<mode>2): Disable expander for SSE math.
4247 (*floathi<mode>2_1): New insn insn_and_split pattern.
4248 (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
4249 corresponding post-reload splitters.
4250 (*floathi<mode>2_i387): New macroized insn pattern.
4251 (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
4252 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
4253 insn_and_split pattern.
4254 (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
4255 New macroized instruction patterns and corresponding post-reload
4256 splitters.
4257 (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
4258 and corresponding post-reload splitters.
4259 (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
4260 New macroized instruction patterns.
4261 (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
4262 macroized instruction patterns and corresponding post-reload splitters.
4263 (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
4264 corresponding post-reload splitters.
4265 (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
4266 New macroized instruction patterns.
4267 (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
4268 corresponding post-reload splitters.
4269 (*floatsi<mode>2_i387): New macroized instruction patterns.
4270
78e8956b
L
42712008-04-01 H.J. Lu <hongjiu.lu@intel.com>
4272
4273 * config/i386/i386.md (smaxmin): New.
4274 (umaxmin): Likewise.
4275 (maxminiprefix): Likewise.
4276 (maxminfprefix): Likewise.
4277 (<code><mode>3): Likewise.
4278 (smin<mode>3): Removed.
4279 (smax<mode>3): Likewise.
4280
4281 * config/i386/mmx.md (mmx_<code>v2sf3): New.
4282 (mmx_<code>v4hi3): Likewise.
4283 (mmx_<code>v8qi3): Likewise.
4284 (mmx_smaxv2sf3): Removed.
4285 (mmx_sminv2sf3): Likewise.
4286 (mmx_umaxv8qi3): Likewise.
4287 (mmx_smaxv4hi3): Likewise.
4288 (mmx_uminv8qi3): Likewise.
4289 (mmx_sminv4hi3): Likewise.
4290
4291 * config/i386/sse.md (<addsub><mode>3): New.
4292 (*<addsub><mode>3): Likewise.
4293 (<sse>_vm<addsub><mode>3): Likewise.
4294 (<maxmin><mode>3): Likewise.
4295 (*<maxmin><mode>3_finite): Likewise.
4296 (*<maxmin><mode>3): Likewise.
4297 (<sse>_vm<maxmin><mode>3): Likewise.
4298 (sse3_h<addsub>v4sf3): Likewise.
4299 (sse3_h<addsub>v2df3): Likewise.
4300 (<maxmin>v16qi3): Likewise.
4301 (*<maxmin>v16qi3): Likewise.
4302 (<maxmin>v8hi3): Likewise.
4303 (*<maxmin>v8hi3): Likewise.
4304 (*sse4_1_<maxmin><mode>3): Likewise.
4305 (*sse4_1_<maxmin><mode>3): Likewise.
4306 (add<mode>3): Removed.
4307 (*add<mode>3): Likewise.
4308 (<sse>_vmadd<mode>3): Likewise.
4309 (sub<mode>3): Likewise.
4310 (*sub<mode>3): Likewise.
4311 (<sse>_vmsub<mode>3): Likewise.
4312 (smin<mode>3): Likewise.
4313 (*smin<mode>3_finite): Likewise.
4314 (*smin<mode>3): Likewise.
4315 (<sse>_vmsmin<mode>3): Likewise.
4316 (smax<mode>3): Likewise.
4317 (*smax<mode>3_finite): Likewise.
4318 (*smax<mode>3): Likewise.
4319 (<sse>_vmsmax<mode>3): Likewise.
4320 (sse3_haddv4sf3): Likewise.
4321 (sse3_haddv2df3): Likewise.
4322 (sse3_hsubv4sf3): Likewise.
4323 (sse3_hsubv2df3): Likewise.
4324 (umaxv16qi3): Likewise.
4325 (*umaxv16qi3): Likewise.
4326 (smaxv8hi3): Likewise.
4327 (*smaxv8hi3): Likewise.
4328 (*sse4_1_smax<mode>3): Likewise.
4329 (*sse4_1_umax<mode>3): Likewise.
4330 (uminv16qi3): Likewise.
4331 (*uminv16qi3): Likewise.
4332 (sminv8hi3): Likewise.
4333 (*sminv8hi3): Likewise.
4334 (*sse4_1_smin<mode>3): Likewise.
4335 (*sse4_1_umin<mode>3): Likewise.
4336
220f1c29
RAE
43372008-04-01 Rafael Espindola <espindola@google.com>
4338
4339 * tree-cfg.c (verify_expr): remove in_phi.
78e8956b 4340 (verify_stmt): Don't call walk_tree with verify_expr. Use
220f1c29
RAE
4341 is_gimple_min_invariant instead of is_gimple_val.
4342
7f9766e4
JM
43432008-04-01 Joseph Myers <joseph@codesourcery.com>
4344
4345 * doc/include/gpl_v3.texi: Update for manpage generation.
4346 * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
4347 gpl.texi.
4348 * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
4349 * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
4350 gpl_v3.texi instead of gpl.texi.
4351 (gpl.pod): New.
4352
d4c32e1d
JJ
43532008-04-01 Jakub Jelinek <jakub@redhat.com>
4354
4355 PR pch/13675
4356 * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
4357
764a79ed
RAE
43582008-04-01 Rafael Espindola <espindola@google.com>
4359
4360 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
4361 (extract_code_and_val_from_cond): Use
4362 extract_code_and_val_from_cond_with_ops.
4363
113c63b8
JH
43642008-04-01 Jan Hubicka <jh@suse.cz>
4365
4366 * function.c (free_after_compilation): Free epilogue_delay_list.
4367 (prepare_function_start): Assert that previous compilation was freed.
4368
ec24c3a3
JH
43692008-04-01 Jan Hubicka <jh@suse.cz>
4370 Jim Wilson <wilson@tuliptree.org>
4371 Andreas Tobler <andreast@gcc.gnu.org>
4372
4373 PR middle-end/35781
4374 * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
4375 rtl.emit instead cfun->emit.
4376 * sparc/sparc.h (INIT_EXPANDERS): Likewise.
4377 * ia64/ia64.h (INIT_EXPANDERS): Likewise.
4378
1b82c3aa
BE
43792008-04-01 Ben Elliston <bje@au.ibm.com>
4380
4381 * doc/c-tree.texi (Function Basics): Fix grammatical error.
4382
2f908293
SP
43832008-03-31 Seongbae Park <seongbae.park@gmail.com>
4384
4385 * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
4386 New options
4387 (fprofile-use): Add var flag_profile_use
380edc9f
UB
4388 * coverage.c (coverage_begin_output): Do not open a gcno file for
4389 output only if -ftest-coverage is set.
2f908293 4390 Do not add getpwd() to gcda file path.
380edc9f 4391 (build_gcov_info): Check the new flag
2f908293
SP
4392 flag_profile_datafile_relative_path.
4393 (coverage_init): Use profile_data_prefix.
4394 Read profile counter only if flag_profile_use is set.
4395 * opts.c (common_handle_option): New option fprofile-use=,
4396 fprofile-dir=, fprofile-generate=.
4397 * toplev.c (profile_data_prefix): New variable definition.
4398 * toplev.h (profile_data_prefix): New declaration.
4399 * doc/invoke.tex (Option Summary, Optimization Options):
4400 Add new options.
4401
1def9c3f
JW
44022008-03-31 James E. Wilson <wilson@tuliptree.org>
4403
380edc9f
UB
4404 * varasm.c (output_constant_pool_1): In LABEL_REF check,
4405 use tmp consistently.
048ffb8f 4406
1def9c3f
JW
4407 PR target/35695
4408 * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
4409 * config/ia64/ia64.c (rtx_needs_barrier): Handle
4410 UNSPEC_FR_RECIP_APPROX_RES.
4411 * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
4412
bb686a19
VR
44132008-03-31 Volker Reichelt <v.reichelt@netcologne.de>
4414
4415 PR c/35750
4416 * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
4417
a12bdb97
AP
44182008-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
4419
4420 PR middle-end/30186
4421 * fold-const.c (fold_indirect_ref_1): Support accessing non first
4422 element of the vector via a pointer.
4423
2d4bba80
ILT
44242008-03-31 Ian Lance Taylor <iant@google.com>
4425
380edc9f 4426 * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2d4bba80 4427
bd60bab2
JH
44282008-03-31 Jan Hubicka <jh@suse.cz>
4429
4430 * builtins.c (expand_builtin_setjmp_receiver): Update call of
4431 get_arg_pointer_save_area.
4432 * expr.c (init_expr): Just clear out rtl.expr.
4433 * function.c (free_after_compilation): Clear out whole RTL structure.
4434 (get_func_frame_size): Merge into ...
4435 (get_frame_size): ... this one.
4436 (assign_stack_local_1): Merge into ...
4437 (assign_stack_local): ... this one.
4438 (expand_function_end): Update call of get_arg_pointer_save_area.
4439 (get_art_pointer_save_area): Remove cfun argument.
4440 * function.h (emit_status): regno_pointer_align does not need length
4441 attribute. Move x_regno_reg_rtx to ...
4442 (regno_reg_rtx): ... new global array.
4443 (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
4444 (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
380edc9f
UB
4445 apply_args_value, forced_labels, stack_pointer_delta):
4446 Update accestors.
bd60bab2
JH
4447 (struct varasm_status): Move here from varasm.c
4448 (struct rtl_data): New. Move here some fields from struct function.
4449 (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4450 frame_offset, stack_check_probe_note, arg_pointer_save_area,
4451 used_temp_slots avail_temp_slots, temp_slot_level,
4452 nonlocal_goto_handler_labels): Update accesstors.
4453 (rtl): New global variable.
4454 (struct function): Move some fileds to rtl_data.
4455 (get_arg_pointer_save_area): Update prototype.
4456 * emit-rtl.c (rtl): Declare.
4457 (regno_reg_rtx): Declare.
380edc9f
UB
4458 (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4459 Update.
bd60bab2
JH
4460 (gen_reg_rtx): Update.
4461 (init_virtual_regs): Do not tate emit_status argument.
4462 (init_emit): Do not allocate emit.
4463 * varasm.c (varasm_statuc): Move to function.h.
4464 (n_deferred_constatns): Update accestor.
4465 (init_varasm_status): Do not allocate varasm_status.
4466 (force_const_mem, get_pool_size, output_constant_pool): Update.
4467 * stmt.c (force_label_rtx): Do not use x_ prefixes.
4468 (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4469
66f91b93
ZD
44702008-03-31 Zdenek Dvorak <ook@ucw.cz>
4471
4472 PR rtl-optimization/35729
4473 * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
4474 references.
4475
66e1ecfe
L
44762008-03-31 H.J. Lu <hongjiu.lu@intel.com>
4477
4478 PR target/32000
4479 * config/i386/i386.md (*movti_internal): Emit unaligned SSE
4480 load/store if memory is unaligned.
4481 (*movti_rex64): Likewise.
4482
4483 * config/i386/predicates.md (misaligned_operand): New.
4484
550386ad
AP
44852008-03-31 Andrew Pinski <pinskia@gmail.com>
4486
4487 PR tree-opt/35431
4488 * tree-ssa-phiopt.c (conditional_replacement): Return early for
4489 complex types.
4490
4e483a22
JB
44912008-03-31 Jan Beulich <jbeulich@novell.com>
4492
4493 * config/ia64/constraints.md: Add 'j' constraint.
4494 * config/ia64/ia64.md (movsi_internal): Add addp4 case.
4495 (movdi_internal): Likewise.
4496
39ffbac9
VR
44972008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
4498
4499 PR c/35748
4500 * c-typeck.c (build_c_cast): Skip invalid fields in unions.
4501
23594c97
L
45022008-03-30 H.J. Lu <hongjiu.lu@intel.com>
4503
4504 PR target/35757
4505 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
4506 proper error message for the third argument on blendpd and
4507 blendps.
4508
4509 * config/i386/sse.md (blendbits): New.
4510 (sse4_1_blendp<ssemodesuffixf2c>): Use it.
4511
8f0e2671
EB
45122008-03-30 Eric Botcazou <ebotcazou@adacore.com>
4513
4514 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
4515
96648603
RG
45162008-03-30 Richard Guenther <rguenther@suse.de>
4517
4518 PR middle-end/31023
4519 * fold-const.c (fold_sign_changed_comparison): Do leave
4520 conversions to base-types alone.
4521
3ac0963a
AP
45222008-03-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
4523
4524 * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
4525 the link register if one altivec register is be saved.
4526
744c6d6e
BE
45272008-03-30 Ben Elliston <bje@au.ibm.com>
4528
4529 * final.c (final_scan_insn): Remove if (0) code.
4530
dbc518f0
VR
45312008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
4532
4533 * c-parser.c (c_parser_next_token_is_keyword): Simplify.
4534
ad387dad
L
45352008-03-28 H.J. Lu <hongjiu.lu@intel.com>
4536
4537 * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
4538 of V4SFmode to ix86_binary_operator_ok.
4539
9aba5d22
UB
45402008-03-28 Uros Bizjak <ubizjak@gmail.com>
4541
4542 * config/i386/i386.c (override_options): Initialize
4543 ix86_veclib_handler to ix86_veclibabi_svml when
4544 -mveclibabi=svml is used.
4545 (ix86_veclibabi_svml): New function for SVML ABI style
4546 vectorization support.
4547 * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
4548
2d3cd5d5
RAE
45492008-03-28 Rafael Espindola <espindola@google.com>
4550
4551 * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
4552 (tree_binary_nonnegative_warnv_p): Make it public.
4553 (tree_single_nonnegative_warnv_p): Make it public.
4554 (tree_invalid_nonnegative_warnv_p): Make it public.
4555 (tree_unary_nonzero_warnv_p): Make it public.
4556 (tree_binary_nonzero_warnv_p): Make it public
4557 (tree_single_nonzero_warnv_p): Make it public.
4558 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
4559 (extract_range_from_binary_expr): Split the expr argument.
4560 (extract_range_from_unary_expr): Split the expr argument.
4561 (extract_range_from_comparison): Split the expr argument.
4562 (extract_range_from_expr): Use the new aux functions.
4563 (vrp_evaluate_conditional_warnv): Use
4564 vrp_evaluate_conditional_warnv_with_ops.
4565 * tree.h (tree_unary_nonzero_warnv_p): Declare.
4566 (tree_binary_nonzero_warnv_p): Declare.
4567 (tree_single_nonzero_warnv_p): Declare.
4568 (tree_expr_nonzero_warnv_p): Declare.
4569 (tree_unary_nonnegative_warnv_p): Declare.
4570 (tree_binary_nonnegative_warnv_p): Declare.
4571 (tree_single_nonnegative_warnv_p): Declare.
4572 (tree_invalid_nonnegative_warnv_p): Declare.
4573
2ab8dbf4
RG
45742008-03-28 Richard Guenther <rguenther@suse.de>
4575
4576 PR tree-optimization/30317
4577 PR tree-optimization/30911
4578 PR tree-optimization/34793
4579 * tree-vrp.c (set_and_canonicalize_value_range): New function.
4580 (struct assert_locus_d): New member EXPR.
4581 (register_new_assert_for): Add EXPR parameter to support
4582 ASSERT_EXPR <name, expr OP limit>.
4583 (register_edge_assert_for_1): Adjust callers.
4584 (find_assert_locations): Likewise.
9aba5d22 4585 (process_assert_insertions_for): Build condition from expression.
2ab8dbf4
RG
4586 (extract_range_from_assert): Handle ASSERT_EXPRs
4587 of the form ASSERT_EXPR <name, expr OP limit>.
4588 (register_edge_assert_for_2): New helper registering
4589 asserts for comparisons. Recognize range tests of the form
4590 (unsigned)i - CST1 OP CST2.
4591 (register_edge_assert_for_1): Use it.
4592 (register_edge_assert_for): Likewise.
4593 (needs_overflow_infinity): Integer sub-types
4594 do not need overflow infinities.
4595 (vrp_val_is_max): The extreme values of integer sub-types
4596 are those of the base type.
4597 (vrp_val_is_min): Likewise.
4598 * tree.def (ASSERT_EXPR): Document extra allowed conditional
4599 expressions.
4600
fc4f3261
NC
46012008-03-28 Nick Clifton <nickc@redhat.com>
4602
f6d2671e 4603 PR target/31110
fc4f3261 4604 * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
9aba5d22 4605 Return GENERAL_REGS for stack adjustment reloads.
fc4f3261 4606
501fb355
AP
46072008-03-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
4608
4609 PR target/31334
4610 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
4611 const_vector when all the vectors are constant.
4612
ff779f98
BW
46132008-03-27 Bob Wilson <bob.wilson@acm.org>
4614
4615 * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
4616 comparisons.
4617 * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
4618 (any_scc_sf): Add uneq, unlt, unle and unordered operators.
4619 (scc_sf): New.
4620 (s<code>_sf): Use new scc_sf attribute for opcode names.
4621
e980df8e
TT
46222008-03-27 Tom Tromey <tromey@redhat.com>
4623
4624 * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
4625 configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
4626 config/spu/t-spu-elf, config/i386/t-interix,
4627 config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
4628 config/i386/x-darwin, config/i386/x-mingw32,
4629 config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
4630 config/sh/t-sh, config/sh/t-symbian, config/x-linux,
4631 config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
4632 config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
4633 config/rs6000/x-rs6000, config/rs6000/x-darwin64,
4634 config/rs6000/x-darwin, config/rs6000/t-rs6000,
4635 config/score/t-score-elf, config/arm/t-strongarm-pe,
4636 config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
4637 config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
4638 Revert automatic dependency patch.
4639
c84555eb
L
46402008-03-27 H.J. Lu <hongjiu.lu@intel.com>
4641
4642 PR target/35657
4643 * config/i386/i386.c (ix86_function_arg_boundary): Align
4644 decimal floating point to its natural boundary.
4645
ffd837fe
RG
46462008-03-27 Richard Guenther <rguenther@suse.de>
4647
4648 PR middle-end/35716
4649 * fold-const.c (fold_comparison): Restrict distinct decl
4650 comparison folding to VAR_DECLs and PARM_DECLs. Do not
4651 solely rely on operand_equal_p.
4652
6b4e94bc
RG
46532008-03-27 Richard Guenther <rguenther@suse.de>
4654
4655 PR c/32511
4656 * c-common.c (handle_weak_attribute): Reject combination of
4657 weak and inline.
4658
62bc00e2
RG
46592008-03-27 Richard Guenther <rguenther@suse.de>
4660
4661 PR tree-optimization/32810
4662 * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
4663 conversions from DECL_INITIAL.
4664 (fold_const_aggregate_ref): Likewise from constructor elements.
4665
72425608
ZD
46662008-03-27 Zdenek Dvorak <ook@ucw.cz>
4667
4668 * tree-affine.h (aff_combination_expand): Declare.
4669 (get_inner_reference_aff): Likewise.
4670 * tree-affine.c (aff_combination_expand): Split out from
4671 tree_to_aff_combination_expand.
4672 (get_inner_reference_aff): New function.
4673 * tree-parloops.c (loop_parallel_p): Free vectorizer info.
9aba5d22
UB
4674 * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
4675 (struct lim_aux_data): sm_done field removed.
4676 (mem_ref_loc_p, mem_ref_locs_p): New types.
4677 (struct mem_ref): Added id, stored, accesses_in_loop,
4678 indep_loop, dep_loop, indep_ref, dep_ref fields.
4679 Removed is_stored, locs and next fields.
4680 (memory_accesses): New variable.
4681 (movement_possibility): Do not allow moving statements
4682 that store to memory.
4683 (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
4684 New functions.
4685 (determine_max_movement): For statements with memory references,
4686 find the outermost loop in that the reference is independent.
4687 (move_computations_stmt): Mark the virtual operands for renaming.
4688 (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
4689 gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
4690 vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
4691 add_vop_ref_mapping, create_vop_ref_mapping_loop,
4692 create_vop_ref_mapping, analyze_memory_references,
4693 cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
4694 get_all_locs_in_loop, ref_always_accessed_p,
4695 refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
4696 ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
4697 store_motion_loop, store_motion): New functions.
4698 (struct vop_to_refs_elt): New type.
4699 (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
4700 memref_hash, memref_eq, hoist_memory_references): Rewritten.
4701 (schedule_sm): Replaced by...
4702 (execute_sm): ... this.
4703 (determine_lsm_ref, hoist_memory_references,
4704 loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
4705 find_more_ref_vops, free_mem_ref, free_mem_refs,
4706 determine_lsm_loop, determine_lsm): Removed.
4707 (tree_ssa_lim_finalize): Free data structures used by store motion.
4708 (tree_ssa_lim): Call analyze_memory_references. Use
4709 store_motion instead of determine_lsm.
72425608 4710
a929bc28
PB
47112008-03-27 Paolo Bonzini <bonzini@gnu.org>
4712
4713 * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
4714 rename tmake_file to m68hc11/t-m68hc11.
4715 (mcore): Set inhibit_libc to true.
4716 * config.host (alpha*-dec-*vms*): Set extra_programs.
4717 (interix3*): Don't use host_xmake_file.
4718 * configure.ac: Let config.gcc override inhibit_libc.
4719 * configure: Regenerate.
4720
4721 * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
4722 * config/t-openbsd-thread: Remove commented out lines.
4723
4724 * config/x-interix: Remove.
4725
4726 * config/m68hc11/t-m68hc11-gas: Rename to...
4727 * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS.
4728
4729 * config/mcore/t-mcore: Remove T_CFLAGS.
4730 * config/mcore/t-mcore-pe: Likewise.
4731
60d26958
PB
47322008-03-27 Paolo Bonzini <bonzini@gnu.org>
4733
4734 * configure.ac: Replace custom __GNU_SOURCE test with
4735 AC_USE_SYSTEM_EXTENSIONS. Move it earlier.
4736 * aclocal.m4: Regenerate.
4737 * configure: Regenerate.
4738 * config.in: Regenerate.
4739
bd03c084
RG
47402008-03-27 Richard Guenther <rguenther@suse.de>
4741
4742 * fold-const.c (target.h): Include.
4743 (fold_comparison): Fold comparison of addresses of decls
4744 that bind locally or of constants. Consolidate address folding code.
4745 * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
4746 results from fold_binary_to_constant.
4747 (compare_values_warnv): Likewise.
4748
87a72aa8
AP
47492008-03-27 Andrew Pinski <pinskia@gmail.com>
4750
4751 PR middle-end/35429
4752 * fold-const.c (fold_truthop): Check for integeral types when folding
4753 a == 0 && b == 0 and a != 0 || b != 0 .
4754
6e1b3420
EB
47552008-03-26 Eric Botcazou <ebotcazou@adacore.com>
4756
4757 * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
4758
33558d94
AS
47592008-03-26 Andreas Schwab <schwab@suse.de>
4760
4761 * doc/invoke.texi: Fix use of @item vs. @itemx.
4762
f6a9a9af
TT
47632008-03-26 Tom Tromey <tromey@redhat.com>
4764
4765 * Makefile.in (build/gensupport.o, build/print-rtl.o,
4766 build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
4767 build/genattrtab.o, build/genautomata.o, build/gencheck.o,
4768 build/gencodes.o, build/genconditions.o, build/genconfig.o,
4769 build/genconstants.o, build/genemit.o, build/genextract.o,
4770 build/genflags.o, build/genmddeps.o, build/genopinit.o,
4771 build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
4772 options.h.
4773
2041e75c
RG
47742008-03-26 Richard Guenther <rguenther@suse.de>
4775
4776 Revert
4777 2008-03-26 Richard Guenther <rguenther@suse.de>
4778
4779 * fold-const.c (target.h): Include.
4780 (fold_comparison): Fold comparison of addresses of two decls
4781 that bind locally. Consolidate address folding code.
4782
aefa9d43
KG
47832008-03-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4784
4785 * builtins.c (expand_builtin_pow, fold_builtin_cabs,
4786 fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
4787 fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
4788 dconstsqrt2, dconstthird, dconste and/or dconst10.
4789 * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
4790 * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
4791 dconstsqrt2, dconste): Delete.
4792 (init_emit_once): Likewise. Simplify initializing dconstm1.
4793 Constify variable.
4794 * real.c (get_real_const): New.
4795 * real.h (dconst3, dconst10, dconstm2, dconstthird,
4796 dconstsqrt2, dconste): Delete.
4797 (real_value_const, get_real_const): New.
4798
35dd7cc3
L
47992008-03-26 H.J. Lu <hongjiu.lu@intel.com>
4800
4801 * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
4802
4803 * config/i386/i386.c (ix86_function_arg_boundary): Check
4804 BIGGEST_ALIGNMENT instead of 128.
4805 (setup_incoming_varargs_64): Likewise.
4806
f91ed78d
TT
48072008-03-26 Tom Tromey <tromey@redhat.com>
4808
4809 * Makefile.in (DEPFILES): Add missing '/'.
4810
4990038d
RG
48112008-03-26 Richard Guenther <rguenther@suse.de>
4812
4813 * fold-const.c (target.h): Include.
4814 (fold_comparison): Fold comparison of addresses of two decls
4815 that bind locally. Consolidate address folding code.
4816
813ab1d7
NC
48172008-03-26 Nick Clifton <nickc@redhat.com>
4818
4819 PR target/31232
4820 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
4821 not allow INT+INT as a legitimate addressing mode.
4822
cf3135aa
RG
48232008-03-26 Richard Guenther <rguenther@suse.de>
4824
4825 * tree-flow.h (widen_bitfield): Remove declaration.
4826 * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
4827 (widen_bitfield): Remove function.
4828 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
4829 code.
4830
fd88fd09
AP
48312008-03-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
4832
22ec849c 4833 PR target/31558
fd88fd09
AP
4834 * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
4835 error_mark_node's.
4836
fb959f72
RS
48372008-03-25 Richard Sandiford <rsandifo@nildram.co.uk>
4838
4839 PR rtl-optimization/35232
4840 * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
4841 (forget_old_reloads_1, forget_marked_reloads): Don't clear
4842 reg_reloaded_call_part_clobbered here.
4843 (reload_regs_reach_end_p): New function.
4844 (reload_reg_rtx_for_input): New variable.
4845 (reload_reg_rtx_for_output): Likewise.
4846 (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
4847 when reassigning a pseudo register. Load reloadreg from
4848 reload_reg_rtx_for_input, moving the mode and register
4849 calculation to...
4850 (do_input_reload): ...here. Use the mode-adjusted reg_rtx
4851 instead of the original when deciding whether an input reload
4852 would be a no-op or whether an output reload can be deleted.
4853 (emit_output_reload_insns): Use the mode-adjusted reg_rtx
4854 when setting up new_spill_reg_store. Load it from
4855 reload_reg_rtx_for_output, moving the mode and register
4856 calculation to...
4857 (do_output_reload): ...here. Use the mode-adjusted reg_rtx
4858 instead of the original when deciding whether an output reload
4859 would be a no-op. Do the same when modifying insn notes.
4860 Use rtx_equal_p instead of == to compare the registers.
4861 (inherit_piecemeal_p): Take a mode and two register numbers
4862 as argument.
4863 (emit_reload_insns): Clear new_spill_reg_store for every hard
4864 register in the reload register. Remove spill registers
4865 from reg_reloaded_valid before considering whether to record
4866 inheritance information for them. Use reload_reg_rtx_for_output
4867 instead of reg_rtx when recording output reloads. Use
4868 reload_reg_rtx_for_input instead of reg_rtx when recording
4869 input reloads. Set or clear reg_reloaded_call_part_clobbered
4870 at the same time as setting reg_reloaded_valid.
4871 (delete_output_reload): Add a new_reload_reg parameter and use it
4872 instead of rld[j].reg_rtx.
4873 (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
4874 calls accordingly.
4875
a8c86f3f
TT
48762008-03-25 Tom Tromey <tromey@redhat.com>
4877
4878 * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
4879 (build/genattr.o): Likewise.
4880 (build/genattrtab.o): Likewise.
4881 (build/gencodes.o): Likewise.
4882 (build/genconfig.o): Likewise.
4883 (build/genconstants.o): Likewise.
4884 (build/genemit.o): Likewise.
4885 (build/genextract.o): Likewise.
4886 (build/genflags.o): Likewise.
4887
f4d3e7fd
BW
48882008-03-25 Bob Wilson <bob.wilson@acm.org>
4889
4890 * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
4891 instead of size_int for integer types.
4892 (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype
4893 to match type of MINUS_EXPR.
4894
55d059d3
TT
48952008-03-25 Tom Tromey <tromey@redhat.com>
4896
4897 * configure: Rebuilt.
4898 * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
4899 Makefile.
4900
2fe3178b
TT
49012008-03-25 Tom Tromey <tromey@redhat.com>
4902
4903 * config/x-solaris (host-solaris.o): Update.
4904 * config/x-linux (host-linux.o): Update.
4905 * config/x-hpux (host-hpux.o): Update.
4906 * config/x-darwin (host-darwin.o): Update.
4907 * config/v850/t-v850e (v850-c.o): Update.
4908 * config/v850/t-v850 (v850-c.o): Update.
4909 * config/t-vxworks (vxworks.o): Update.
4910 * config/t-sol2 (sol2-c.o, sol2.o): Update.
4acc3f42 4911 * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2fe3178b
TT
4912 * config/spu/t-spu-elf (spu-c.o): Update.
4913 (spu.o): Remove.
4914 * config/sh/t-symbian (sh-c.o): Update.
4915 (symbian.o): Update.
4916 * config/sh/t-sh (sh-c.o): Update.
4917 * config/score/t-score-elf (score7.o, score3.o): Update.
4918 * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
4919 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
4920 * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
4921 * config/rs6000/t-rs6000 (rs6000-c.o): Update.
4922 (rs6000.o): Remove.
4923 * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4924 * config/m32c/t-m32c (m32c-pragma.o): Update.
4925 * config/ia64/t-ia64 (ia64-c.o): Update.
4926 * config/i386/x-mingw32 (host-mingw32.o): Update.
4927 * config/i386/x-i386 (driver-i386.o): Update.
4928 * config/i386/x-darwin (host-i386-darwin.o): Update.
4929 * config/i386/x-cygwin (host-cygwin.o): Update.
4930 * config/i386/t-nwld (nwld.o): Update.
4931 * config/i386/t-netware (netware.o): Update.
4932 * config/i386/t-interix (winnt.o): Update.
4933 * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
4934 * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
4935 msformat-c.o): Update.
4936 * config/bfin/t-bfin-linux (generated_files): Add
4937 linux-sysroot-suffix.h.
4938 * config/arm/t-wince-pe (pe.o): Update.
4939 * config/arm/t-strongarm-pe (pe.o): Update.
4940 * config/arm/t-pe (pe.o): Update.
4941 * config/arm/t-arm (arm-c.o): Update.
4942 * doc/install.texi (Prerequisites): Require make 3.80.
4943 * Makefile.in: Remove .o targets.
4944 (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
4945 (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
4946 (simple_generated_h, simple_generated_c): Move earlier.
4947 (generated_files): New variable.
4948 (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
4949 TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
4950 BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
4951 ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
4952 REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
4953 CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
4954 CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
4955 INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
4956 PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
4957 TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
4958 DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
4959 VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
4960 (.c.o): Remove.
4961 (COMPILE.base, COMPILE): New variables.
4962 (%.o): New pattern rule.
4963 (ALL_HOST_OBJS): New variable.
4964 (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
4965 (dummy-checksum.o, cc1-checksum.o): Remove.
4966 (DRIVER_SHLIB): New variable.
4967 (DRIVER_DEFINES): Use it.
4968 (gencondmd.c): Move out of build/.
4969 (s-conditions): Update.
4970 (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
4971 (ALL_BUILD_OBJS): Likewise.
4972 (build/%.o): Use BUILDCOMPILE.
4973 (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
4974 build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
4975 build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
4976 build/gencheck.o, build/gencodes.o, build/genconditions.o,
4977 build/genconfig.o, build/genconstants.o, build/genemit.o,
4978 build/genextract.o, build/genflags.o, build/genmddeps.o,
4979 build/genopinit.o, build/genoutput.o, build/genpeep.o,
4980 build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
4981 build/gen-protos.o, build/scan.o, build/fix-header.o,
4982 build/scan-decls.o): Simplify.
4983 (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
4984 cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
4985 prefix.o, toplev.o): Reduce to variable setting.
4acc3f42 4986 (libbackend.o): Use COMPILE. Remove most dependencies. Move later.
2fe3178b 4987 ($(out_object_file), gcc-options.o): New targets.
4acc3f42 4988 ($(ALL_HOST_OBJS)): New target. Include dependency files.
2fe3178b 4989 * configure: Rebuilt.
4acc3f42
UB
4990 * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
4991 * doc/sourcebuild.texi (Front End Directory): Document new variable.
2fe3178b 4992
5ade1ed2
DG
49932008-03-25 Douglas Gregor <doug.gregor@gmail.com>
4994
4acc3f42
UB
4995 * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
4996 complain when we hit an error, return ERROR_MARK_NODE.
5ade1ed2 4997
de6adfa2
N
49982008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
4999
5000 * config/sh/constraints.md (Pso, Psz): New constraints.
5001 * config/sh/sh.c (print_operand): Add %V and %W operand codes.
5002 * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
5003
f326a6cb
N
50042008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
5005
4acc3f42 5006 * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
f326a6cb
N
5007 * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
5008
b4b0018b
N
50092008-03-25 Naveen.H.S <naveen.hs@kpitcummins.com>
5010
5011 * config/sh/sh.md (prefetch): Add condition for SH2A target.
5012 (prefetch_sh2a): New.
5013
e990551a
JS
50142008-03-25 Jayant Sonar <Jayant.sonar@kpitcummins.com>
5015 Naveen.H.S <naveen.hs@kpitcummins.com>
5016
5017 * config/sh/constraints.md (I28): New constraint.
5018 * config/sh/sh.c (broken_move): Add support for movi20s.
4acc3f42 5019 * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
e990551a 5020
561642fa
AP
50212008-03-25 Anil Paranjape <anil.paranjape@kpitcummins.com>
5022 Jayant Sonar <Jayant.sonar@kpitcummins.com>
5023 Naveen.H.S <naveen.hs@kpitcummins.com>
5024
5025 * config/sh/sh.c (SH_ATTRIBUTES): Define.
5026 (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
5027 (print_operand): Handle resbank in %@ operand code.
5028 (sh_encode_section_info): New.
5029 (push_regs): Add conditions for resbank.
5030 (sh_expand_epilogue): Likewise.
5031 (sh_insert_attributes): Likewise.
5032 (sh_attribute_table): Likewise.
5033 (sh_handle_resbank_handler_attribute): New.
5034 (sh2a_handle_function_vector_handler_attribute): New.
5035 (sh2a_is_function_vector_call): New.
5036 (sh2a_get_function_vector_number): New.
5037 (sh2a_function_vector_p): New.
5038 (sh_cfun_resbank_handler_p): New.
5039 * config/sh/sh.md (calli): Emit jsr/n if possible.
5040 (calli_tbr_rel): New.
5041 (calli_pcrel): Emit jsr/n if possible.
5042 (return_i): Emit rts/n if possible.
5043 (call_valuei_tbr_rel): New.
5044 (call_valuei_pcrel): Add condition for SH2A target.
5045 (call_value): Likewise.
5046 * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
5047 (sh2a_get_function_vector_number): Likewise.
5048 (sh2a_is_function_vector_call): Likewise.
5049 * doc/extend.texi: Document TBR relative addressing of SH2A.
5050 (resbank): Add description for SH2A.
5051
1b24a790
RG
50522008-03-24 Richard Guenther <rguenther@suse.de>
5053
5054 PR c/22371
5055 * gimplify.c (gimplify_modify_expr): For frontend type-correct
5056 pointer assignments change conversions according to middle-end rules.
5057 (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
5058 * configure.ac: Include type checking in yes.
5059 * configure: Regenerate.
5060
52249a2e
MLI
50612008-03-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5062
5063 * diagnostic.c (diagnostic_count_diagnostic): Delete.
5064 (diagnostic_report_diagnostic): Update. Handle ICEs here.
5065
37ca4602
NS
50662008-03-24 Nathan Sidwell <nathan@codesourcery.com>
5067
5068 * gthr-vxworks.h (UNUSED): Define.
5069
2ff8644d
L
50702008-03-23 H.J. Lu <hongjiu.lu@intel.com>
5071
9aba5d22 5072 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2ff8644d 5073
1c42f5c6
ZM
50742008-03-23 Zuxy Meng <zuxy.meng@gmail.com>
5075
5076 * doc/extend.texi (Function Attributes): Add missing comma in the
5077 example of the "alloc_size" attribute.
5078
808e68bb
UB
50792008-03-23 Uros Bizjak <ubizjak@gmail.com>
5080
5081 Revert:
5082 2008-03-05 H.J. Lu <hongjiu.lu@intel.com>
5083
5084 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5085 32bit host.
5086
5087 2008-03-19 Uros Bizjak <ubizjak@gmail.com>
5088
5089 PR target/35496
5090 * stor-layout.c (update_alignment_for_field): Set minimum alignment
5091 of the underlying type of a MS bitfield layout to the natural
5092 alignment of the type.
5093
5094 2008-03-22 Uros Bizjak <ubizjak@gmail.com>
5095
5096 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
5097 to their natural alignment to avoid store forwarding stalls.
5098
1b738915
RG
50992008-03-22 Richard Guenther <rguenther@suse.de>
5100
5101 * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
5102 For PHI nodes verify the address is invariant.
5103 * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
5104 (get_symbol_constant_value): Use is_gimple_min_invariant.
5105 (maybe_fold_stmt_indirect): Likewise.
5106
18b526e8
RS
51072008-03-22 Richard Sandiford <rsandifo@nildram.co.uk>
5108
5109 PR rtl-optimization/33927
5110 * Makefile.in (dse.o): Depend on $(TM_P_H).
5111 * expr.h (extract_low_bits): Declare.
5112 * expmed.c (extract_low_bits): New function.
5113 * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
5114 * dse.c: Include tm_p.h.
5115 (find_shift_sequence): Remove the read_reg argument and return the
5116 read value. Emit the instructions instead of returning them.
5117 Iterate on new_mode rather than calculating it each time.
5118 Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the
5119 source to NEW_MODE and extract_low_bits to convert the shifted
5120 value to READ_MODE.
5121 (replace_read): Allow the load and store to have different mode
5122 classes. Use extract_low_bits when SHIFT == 0. Create the shift
5123 or extraction instructions before trying the replacement. Update
5124 dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
5125
48e55066
UB
51262008-03-22 Uros Bizjak <ubizjak@gmail.com>
5127
5128 * config/i386/i386.c (assign_386_stack_local): Align DImode slots
5129 to their natural alignment to avoid store forwarding stalls.
5130
94e98316
AP
51312008-03-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
5132
e8afc0cb 5133 PR target/27946
94e98316
AP
5134 * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
5135 encouraging but not allowing gprs for input;
5136 change the input constraint to !f#r.
5137 (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
5138 gprs for output;
5139 change the output constraint to !f#r.
5140
7fb1431b
UB
51412008-03-21 Uros Bizjak <ubizjak@gmail.com>
5142
5143 PR target/13958
5144 * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
5145 corresponding post-reload splitters.
5146 ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
5147 when x87 FP math is selected.
5148 * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
5149 New function prototype.
5150 * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
5151 unreachable function to ease macroization of insn patterns.
5152
ed2024ba
MJ
51532008-03-21 Martin Jambor <mjambor@suse.cz>
5154
5155 * tree-data-ref.c (dump_data_dependence_relation): Avoid data
5156 reference dumps if ddr is NULL or dependence is unknown.
5157
06644a07
KK
51582008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
5159
5160 * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
5161 unsigned extension into account.
5162 (ATOMIC_COMPARE_AND_SWAP): Likewise.
5163 (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
5164 Do computations on a scratch register.
5165
ad6003f2
RG
51662008-03-21 Richard Guenther <rguenther@suse.de>
5167
5168 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
5169 Use is_gimple_min_invariant instead of TREE_INVARIANT.
5170 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
5171 * tree-ssa-dom.c (record_equality): Likewise.
5172 * tree-inline.c (copy_body_r): Likewise.
5173 * tree-ssa-pre.c (make_values_for_stmt): Remove test for
5174 TREE_INVARIANT.
5175
2acdc1fb
KK
51762008-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
5177
5178 * config/sh/sh.c (split_branches): Pass zero to redirect_jump
5179 as 'delete_unused' argument.
5180
16ac8575
RG
51812008-03-20 Richard Guenther <rguenther@suse.de>
5182
5183 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
5184 special casing of constant qualifiers.
5185 * tree-ssa.c (useless_type_conversion_p_1): Instead do not
5186 care about them in general.
5187 * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
5188 regardless of their type.
5189 (fold_stmt_r): Forcefully fold *& if we end up with that.
5190
433d52fd
PB
51912008-03-20 Paul Brook <paul@codesourcery.com>
5192
5193 * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
5194 * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
5195 linker flags.
5196 * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
5197 definition.
5198 (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
5199 * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
5200
7621f5d5
VR
52012008-03-20 Volker Reichelt <v.reichelt@netcologne.de>
5202
5203 * common.opt (Wmudflap): New option.
5204 * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
5205 (mx_register_decls): Likewise.
5206 (mudflap_finish_file): Likewise.
5207 * doc/invoke.texi: Document -Wno-mudflap.
5208
52092008-03-20 Kai Tietz <kai.tietz@onevision.com>
6590fc9f
KT
5210
5211 * c-format.c (replace_format_name_to_system_name): New.
5212 (cmp_attribs): New.
5213 (convert_format_name_to_system_name): New.
5214 (decode_format_attr): Add use of convert_format_name_to_system_name.
5215 (format_types_orig): Add gnu_ prefix to names.
5216 (check_format_info_main): Special treating of \0 escaped names for
5217 supporting multi-character format specifiers as I32, I64.
5218 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
5219 (gnu_target_overrides_format_attributes): New.
5220 * c-format.h: Add structure target_ovr_attr to hold
5221 system specific formatter names.
5222 * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
5223 msformat-c.o file to c_target_objs and cxx_target_objs.
5224 * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
5225 (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
5226 (TARGET_N_FORMAT_TYPES): New.
5227 * config/i386/msformat-c.c: New.
5228 * config/i386/t-cygming: Add build rule for msformat-c.o.
5229 * doc/extend.texi: Add new format names gnu_* and ms_* and
5230 further details.
5231 * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
5232
4e359692
IR
52332008-03-20 Ira Rosen <irar@il.ibm.com>
5234
5235 * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
5236 optimizations turned on under -O3.
5237 (ftree-vectorize): Add that the flag is turned on with -O3.
5238
41129be2
BE
52392008-03-20 Ben Elliston <bje@au.ibm.com>
5240
5241 * regmove.c (try_auto_increment): Fix spelling error in comment.
5242 * final.c (final_scan_insn): Likewise.
5243
1b1d8f88
UB
52442008-03-20 Uros Bizjak <ubizjak@gmail.com>
5245
5246 PR target/14552
5247 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
5248 allocator preferences for "y" and "r" class registers.
5249 ("*mov<mode>_internal"): Ditto.
5250 ("*movv2sf_internal_rex64"): Ditto.
5251 ("*movv2sf_internal"): Ditto.
5252
05e6ee93
MM
52532008-03-19 Michael Matz <matz@suse.de>
5254
5255 PR middle-end/35616
5256 * calls.c (expand_call): Check overlap of arguments with call
5257 address for sibcalls.
5258
cd7e0bd4
UB
52592008-03-19 Uros Bizjak <ubizjak@gmail.com>
5260
5261 PR target/35496
5262 * stor-layout.c (update_alignment_for_field): Set minimum alignment
5263 of the underlying type of a MS bitfield layout to the natural
5264 alignment of the type.
5265
8ddbbcae
JH
52662008-03-19 Jan Hubicka <jh@suse.cz>
5267
5268 PR other/35094
5269 * toplev.c (decode_d_option): Handle all CPP flags.
5270 * tree-vrp.c: Update tree_pass descriptors.
5271 * regrename.c: Update tree_pass descriptors.
5272 * fwprop.c: Update tree_pass descriptors.
5273 * doc/invoke.texi: Remove documentation of dropped -d? flags.
5274 * tree-into-ssa.c: Update tree_pass descriptors.
5275 * tree-dump.c: Update tree_pass descriptors.
5276 * tree-complex.c: Update tree_pass descriptors.
5277 * tree-dump.h: Update tree_pass descriptors.
5278 * see.c: Update tree_pass descriptors.
5279 * cgraphbuild.c: Update tree_pass descriptors.
5280 * tracer.c: Update tree_pass descriptors.
5281 * tree-loop-distribution.c: Update tree_pass descriptors.
5282 * cgraph.c: Update tree_pass descriptors.
5283 * postreload-gcse.c: Update tree_pass descriptors.
5284 * postreload.c: Update tree_pass descriptors.
5285 * tree-ssa-loop-ch.c: Update tree_pass descriptors.
5286 * tree-tailcall.c: Update tree_pass descriptors.
5287 * tree-pass.h (tree_opt_pass): Rename to ...
5288 (opt_pass) ... this one; add "type" field and remove letter field.
5289 (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
5290 (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
5291 all_lowering_passes): Update declaration.
5292 * ipa-cp.c: Update tree_pass descriptors.
5293 * final.c: Update tree_pass descriptors.
5294 * omp-low.c: Update tree_pass descriptors.
5295 * tree-ssa-dse.c: Update tree_pass descriptors.
5296 * ipa-reference.c: Update tree_pass descriptors.
5297 * tree-ssa-uncprop.c: Update tree_pass descriptors.
5298 * auto-inc-dec.c: Update tree_pass descriptors.
5299 * reorg.c: Update tree_pass descriptors.
5300 * cgraphunit.c: Update tree_pass descriptors.
5301 * tree-ssa-copyrename.c: Update tree_pass descriptors.
5302 * tree-ssa-ccp.c: Update tree_pass descriptors.
5303 * df-core.c: Update tree_pass descriptors.
5304 * mode-switching.c: Update tree_pass descriptors.
5305 * tree-nomudflap.c: Update tree_pass descriptors.
5306 * modulo-sched.c: Update tree_pass descriptors.
5307 * ipa-pure-const.c: Update tree_pass descriptors.
5308 * cse.c: Update tree_pass descriptors.
5309 * web.c: Update tree_pass descriptors.
5310 * tree-stdarg.c: Update tree_pass descriptors.
5311 * tree-ssa-math-opts.c: Update tree_pass descriptors.
5312 * tree-ssa-dom.c: Update tree_pass descriptors.
5313 * tree-nrv.c: Update tree_pass descriptors.
5314 * tree-ssa-alias.c: Update tree_pass descriptors.
5315 * loop-init.c: Update tree_pass descriptors.
5316 * gimple-low.c: Update tree_pass descriptors.
5317 * ipa-inline.c: Update tree_pass descriptors.
5318 * tree-ssa-sink.c: Update tree_pass descriptors.
5319 * global.c: Update tree_pass descriptors.
5320 * ifcvt.c: Update tree_pass descriptors.
5321 * jump.c: Update tree_pass descriptors.
5322 * predict.c: Update tree_pass descriptors.
5323 * tree-ssa-loop.c: Update tree_pass descriptors.
5324 * recog.c: Update tree_pass descriptors.
5325 * dse.c: Update tree_pass descriptors.
5326 * tree-ssa-ifcombine.c: Update tree_pass descriptors.
5327 * tree-eh.c: Update tree_pass descriptors.
5328 * regmove.c: Update tree_pass descriptors.
5329 * local-alloc.c
5330 * function.c: Update tree_pass descriptors.
5331 * tree-vectorizer.c: Update tree_pass descriptors.
5332 * gcse.c: Update tree_pass descriptors.
5333 * ipa-type-escape.c: Update tree_pass descriptors.
5334 * tree-if-conv.c: Update tree_pass descriptors.
5335 * init-regs.c: Update tree_pass descriptors.
5336 * ipa.c: Update tree_pass descriptors.
5337 * tree-ssa-phiopt.c: Update tree_pass descriptors.
5338 * rtl-factoring.c: Update tree_pass descriptors.
5339 * lower-subreg.c: Update tree_pass descriptors.
5340 * bt-load.c: Update tree_pass descriptors.
5341 * tree-dfa.c: Update tree_pass descriptors.
5342 * except.c: Update tree_pass descriptors.
5343 * emit-rtl.c: Update tree_pass descriptors.
5344 * cfgexpand.c: Update tree_pass descriptors.
5345 * tree-cfgcleanup.c: Update tree_pass descriptors.
5346 * cfgcleanup.c: Update tree_pass descriptors.
5347 * tree-ssa-pre.c: Update tree_pass descriptors.
5348 * tree-sra.c: Update tree_pass descriptors.
5349 * tree-mudflap.c: Update tree_pass descriptors.
5350 * tree-ssa-copy.c: Update tree_pass descriptors.
5351 * cfglayout.c: Update tree_pass descriptors.
5352 * tree-ssa-forwprop.c: Update tree_pass descriptors.
5353 * tree-ssa-dce.c: Update tree_pass descriptors.
5354 * tree-ssa.c: Update tree_pass descriptors.
5355 * regclass.c: Update tree_pass descriptors.
5356 * integrate.c: Update tree_pass descriptors.
5357 * tree-optimize.c: Update tree_pass descriptors.
5358 * tree-ssa-phiprop.c: Update tree_pass descriptors.
5359 * tree-object-size.c: Update tree_pass descriptors.
5360 * combine.c: Update tree_pass descriptors.
5361 * tree-outof-ssa.c: Update tree_pass descriptors.
5362 * bb-reorder.c: Update tree_pass descriptors.
5363 * stack-ptr-mod.c: Update tree_pass descriptors.
5364 * var-tracking.c: Update tree_pass descriptors.
5365 * tree-profile.c: Update tree_pass descriptors.
5366 * tree-vect-generic.c: Update tree_pass descriptors.
5367 * reg-stack.c: Update tree_pass descriptors.
5368 * sched-rgn.c: Update tree_pass descriptors.
5369 * tree-ssa-structalias.c: Update tree_pass descriptors.
5370 * tree-cfg.c: Update tree_pass descriptors.
5371 * passes.c (current_pass): Update declaration.
5372 (finish_optimization_passes): Update.
5373 (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
5374 (register_one_dump_file, register_dump_files_1, next_pass_1):
5375 Update arguments.
5376 (init_optimization_passes): Update handling of new types.
5377 (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
5378 * ipa-struct-reorg.c: Update tree_pass descriptors.
5379 * tree-ssa-reassoc.c: Update tree_pass descriptors.
5380 * combine-stack-adj.c: Update tree_pass descriptors.
5381 * cfgrtl.c: Update tree_pass descriptors.
5382 * dce.c: Update tree_pass descriptors.
5383 * tree-ssanames.c: Update tree_pass descriptors.
5384
8cb3ee37
RG
53852008-03-19 Richard Guenther <rguenther@suse.de>
5386
5387 PR middle-end/35609
4990038d
RG
5388 * tree-ssa.c (walk_data): New structure.
5389 (warn_uninitialized_var): If not always_executed warn with "maybe"
8cb3ee37
RG
5390 instead of "is".
5391 (execute_early_warn_uninitialized): Compute post-dominators.
5392 Initialize always_executed before processing each basic block.
5393
34614fff
MP
53942008-03-18 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
5395
5396 PR target/35504
5397 * config/i386/i386.c (x86_this_parameter): Calculate correct location
5398 of "this" pointer when "regparm = N" or "fastcall" is in effect.
5399
c15477fb
RW
54002008-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5401
5402 * doc/include/texinfo.tex: Update to version 2008-03-17.10.
5403
ac5dc795
PB
54042008-03-18 Paolo Bonzini <bonzini@gnu.org>
5405
34614fff
MP
5406 * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
5407 is true.
5408 (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
5409 (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
5410 is true. Add "&& !ignore" condition to reduce_bit_field. Modify
5411 target after ignore has been set, and move there also the commputation
5412 of subtarget and original_target.
5413 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
5414 (LANG_HOOKS_INITIALIZER): Remove it.
5415 * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
ac5dc795 5416
b80280f2
RG
54172008-03-18 Richard Guenther <rguenther@suse.de>
5418
5419 * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
5420 found an expression with constants, note that in the VN for the lhs.
5421 * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
5422 fold them to constants if possible. Run cleanup_cfg if done so.
5423 (execute_pre): Return todo.
5424 (do_pre): Likewise.
5425 (execute_fre): Likewise.
5426 * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
5427 of constants.
5428 (get_prop_source_stmt): Look through pointer conversions.
5429
2e28e797
JH
54302008-03-18 Jan Hubicka <jh@suse.cz>
5431
5432 * tree-pretty-print.c: Include predict.h.
5433 (dump_generic_node): Dump predictor.
5434 * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
5435 * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
5436 * gimple-low.c (lower_stmt): Likewise.
5437 * expr.c (expand_expr_real): Likewise.
5438 * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
5439 them.
5440 (build_predict_expr, build_predict_expr): New.
5441 * predict.h (predictor_name, build_predict_expr): Update.
5442 * c-typeck.c (c_finish_bc_stmt): Add prediction.
5443 * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
5444 * predict.def (PRED_CONTINUE): Update hitrate.
5445 * tree.def (PREDICT_EXPR): Define.
5446 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
5447 do not handle BIND_EXPR.
5448 * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
5449 * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
5450 * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
5451 operands.
5452
52f1c7ed
MM
54532008-03-18 Michael Matz <matz@suse.de>
5454
5455 * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
5456
c8ae0bec
RG
54572008-03-18 Richard Guenther <rguenther@suse.de>
5458
5459 * tree-gimple.h (is_gimple_invariant_address): Declare.
5460 (is_gimple_constant): Likewise.
5461 * tree-gimple.c (is_gimple_constant): New function.
5462 (is_gimple_invariant_address): Likewise.
5463 (is_gimple_min_invariant): Implement in terms of is_gimple_constant
5464 and is_gimple_invariant_address.
5465 * tree-ssa-loop-niter.c (expand_simple_operations): Revert
5466 previous change.
5467 * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
5468 an addressable base.
5469
8119fc93
JJ
54702008-03-18 Jakub Jelinek <jakub@redhat.com>
5471
5472 PR middle-end/35611
5473 * gimplify.c (gimplify_expr): Gimplify second operand of
5474 OMP_ATOMIC_LOAD.
5475
c4e5b5a8
RG
54762008-03-17 Richard Guenther <rguenther@suse.de>
5477
5478 PR tree-optimization/19637
5479 * fold-const.c (fold_unary): Remove restrictions of removing
5480 intermediate pointer-conversions (P2)(P1)P0.
5481 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
5482 conversion to void pointer.
5483 (get_maxval_strlen): Handle addresses of the form &(*p)[0].
5484
fcb9237b
JW
54852008-03-16 James E. Wilson <wilson@tuliptree.org>
5486
5487 PR debug/31510
5488 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
5489 emulated thread local variables.
5490
461f8762
RG
54912008-03-16 Richard Guenther <rguenther@suse.de>
5492
5493 PR middle-end/35607
5494 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
5495 expand TREE_INVARIANT operations that are not gimple invariant.
5496
2a31c49c
HPN
54972008-03-16 Hans-Peter Nilsson <hp@axis.com>
5498
5499 * doc/extend.texi (Alignment): Say that the ABI controls
5500 the __alignof__ for non-strict-alignment targets rather
5501 than being a recommendation.
5502
80efdb6a
PB
55032008-03-15 Paul Brook <paul@codesourcery.com>
5504
5505 * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
5506 annotations.
5507 (arm_output_fn_unwind): Mark functions that can not be unwound.
5508
ff069900
PB
55092008-03-15 Paul Brook <paul@codesourcery.com>
5510
5511 * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
5512 extension instructions.
5513
87e1e42b
RG
55142008-03-15 Richard Guenther <rguenther@suse.de>
5515
5516 * tree-ssa-ccp.c (ccp_fold): Also read from constant values
5517 and fold constant aggregate refs.
5518 (fold_const_aggregate_ref): Handle string constants
5519 and constructors in ARRAY_REFs. Handle INDIRECT_REF.
5520 (evaluate_stmt): Simplify now that ccp_fold folds constant
5521 aggregate refs.
5522
ef87d898
PB
55232008-03-15 Paul Brook <paul@codesourcery.com>
5524
5525 * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
5526 (extzv): Use gen_extzv_t2.
5527 (insv_t2, insv_zero, extv, extzv_t2): New patterns.
5528
ed97ddc6
RG
55292008-03-15 Richard Guenther <rguenther@suse.de>
5530
5531 * tree-ssa-ccp.c (get_symbol_constant_value): Export.
5532 (fold_const_aggregate_ref): Likewise.
5533 (get_value): Return NULL if we don't have any values.
5534 (ccp_finalize): Set const_val to NULL after freeing it.
5535 * tree-flow.h (get_symbol_constant_value): Declare.
5536 (fold_const_aggregate_ref): Likewise.
5537 * tree-ssa-sccvn.c (try_to_simplify): Use them.
5538
1fd89060
RG
55392008-03-15 Richard Guenther <rguenther@suse.de>
5540
5541 PR middle-end/35593
5542 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
5543 to not produce negative array indices if not allowed. Add
5544 parameter to indicate that.
5545 (maybe_fold_offset_to_component_ref): Allow negative array
5546 indices only for the first member of a structure.
5547 (maybe_fold_offset_to_reference): Allow negative array indices.
5548 (maybe_fold_stmt_addition): Likewise.
5549
693092fb 55502008-03-15 Bjoern Haase <bjoern.m.haase@web.de>
cd7e0bd4 5551 Anatoly Sokolov <aesok@post.ru>
693092fb 5552
b97d8153 5553 * config/avr/avr.c (avr_arch_types): Add avr6 entry.
693092fb
BH
5554 (avr_arch): Add ARCH_AVR6.
5555 (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
5556 (initial_elimination_offset): Initialize and use 'avr_pc_size'
5557 instead of fixed value 2.
5558 (print_operand_address): Use gs() asm specifier instead of pm().
5559 (avr_assemble_integer): (Ditto.).
5560 (avr_output_addr_vec_elt): (Ditto.).
5561 (print_operand): Handle "!" code.
b97d8153 5562 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
693092fb
BH
5563 __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
5564 (AVR_HAVE_EIJMP_EICALL): Define.
5565 (AVR_3_BYTE_PC): Redefine.
5566 (AVR_2_BYTE_PC): (Ditto.).
5567 (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
5568 (LINK_SPEC): Add atmega2560 and atmega2561.
5569 (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
5570 (crtm2561.o).
b97d8153 5571 * config/avr/avr.md (call_insn): Use eicall instead of icall
693092fb
BH
5572 for 3 byte PC devices.
5573 (call_value_insn): (Ditto.).
5574 (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
5575 (indirect_jump): Use only for for 2 byte PC devices.
5576 (*tablejump): (Ditto.).
5577 (*indirect_jump_avr6): Add insn.
5578 (*tablejump_rjmp): Don't use for 3 byte PC devices.
b97d8153 5579 * config/avr/libgcc.S (__prologue_saves__): Use eijmp
693092fb
BH
5580 instead of ijmp for 3 byte PC devices.
5581 (__tablejump2__): (Ditto.).
b97d8153 5582 * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
693092fb
BH
5583 (MULITLIB_DIRNAMES): (Ditto.).
5584 (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
5585
ab555a5b
UB
55862008-03-15 Uros Bizjak <ubizjak@gmail.com>
5587
5588 * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
5589 "sse2_umulsidi3". Use V1DI mode for operand 0.
5590 ("mmx_psadbw"): Use V1DI mode for operand 0.
5591 * config/i386/i386-modes.def (V1SI): New vector mode.
5592 * config/i386/i386.c (struct builtin_description)
5593 [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
5594 (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
5595 (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
5596 (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
5597 v1di_ftype_v8qi_v8qi type.
5598 [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
5599
5600 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
5601 __builtin_ia32_pmuludq]: Fix the mode of return value.
5602
8f78ed0e
RG
56032008-03-15 Richard Guenther <rguenther@suse.de>
5604
5605 PR middle-end/35595
5606 * tree-ssa-pre.c (bitmap_find_leader): Handle expression
5607 being a PHI_NODE.
5608
66e58b33
BW
56092008-03-14 Bob Wilson <bob.wilson@acm.org>
5610
5611 * doc/invoke.texi (Option Summary, Xtensa Options): Document
5612 -mserialize-volatile and -mno-serialize-volatile Xtensa options.
5613 * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
5614 unless TARGET_SERIALIZE_VOLATILE is enabled.
5615 * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
5616 * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
5617 * config/xtensa/xtensa.opt (mserialize_volatile): New option.
5618
896c8b96
RG
56192008-03-14 Richard Guenther <rguenther@suse.de>
5620
5621 PR tree-optimization/34172
5622 * tree-flow.h (refs_may_alias_p): Declare.
5623 (get_single_def_stmt): Likewise.
5624 (get_single_def_stmt_from_phi): Likewise.
5625 (get_single_def_stmt_with_phi): Likewise.
5626 * tree-dfa.c (refs_may_alias_p): New function.
5627 (get_single_def_stmt): Likewise.
5628 (get_single_def_stmt_from_phi): Likewise.
5629 (get_single_def_stmt_with_phi): Likewise.
5630 * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
5631 (vn_reference_lookup_1): New helper function.
5632 (vn_reference_lookup): Walk the virtual use-def chain to
5633 continue searching for a match if the def does not alias the
5634 reference we are looking for.
5635
75dd1ae2
DE
56362008-03-14 David Edelsohn <edelsohn@gnu.org>
5637
5638 * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC
5639 archive and Perzl. Update The Written Word listing.
5640
3d45dd59
RG
56412008-03-14 Richard Guenther <rguenther@suse.de>
5642
5643 PR tree-optimization/34043
5644 PR tree-optimization/33989
5645 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
5646 when doing FRE.
5647 (bitmap_find_leader): Use extra argument to verify dominance
5648 relationship inside a basic-block.
5649 (can_PRE_operation): Add VIEW_CONVERT_EXPR.
5650 (find_leader_in_sets): Adjust.
5651 (create_component_ref_by_pieces): Take extra argument for
5652 dominance check, handle lookup failures.
5653 (find_or_generate_expression): Likewise.
5654 (create_expression_by_pieces): Likewise.
5655 (insert_into_preds_of_block): Adjust.
5656 (create_value_expr_from): If asked for, verify all operands
5657 are in the blocks AVAIL_OUT set.
5658 (make_values_for_stmt): Check for SSA_NAMEs that are life
5659 over an abnormal edge.
5660 (compute_avail): Remove such check.
5661 (do_SCCVN_insertion): New function.
5662 (eliminate): If we do not find a leader suitable for replacement
5663 insert a replacement expression from SCCVN if available.
5664 * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
5665 (struct vn_ssa_aux): Add needs_insertion flag.
5666 * tree-ssa-sccvn.c (may_insert): New global flag.
5667 (copy_reference_ops_from_ref): Value-number union member access
5668 based on its size, not type and member if insertion is allowed.
5669 (visit_reference_op_load): For a weak match from union type
5670 punning lookup a view-converted value and insert a SSA_NAME
5671 for that value if that is not found.
5672 (visit_use): Make dumps shorter. Do not disallow value numbering
5673 SSA_NAMEs that are life over an abnormal edge to constants.
5674 (free_scc_vn): Release inserted SSA_NAMEs.
5675 (run_scc_vn): New flag to specify whether insertion is allowed.
5676 Process SSA_NAMEs in forward order.
5677 * tree-ssa-loop-im.c (for_each_index): Handle invariant
5678 ADDR_EXPRs inside VIEW_CONVERT_EXPR.
5679 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
5680 pointer type to/from integral types that do not change the
5681 precision to regular conversions.
5682
52eaae97
UB
56832008-03-13 Uros Bizjak <ubizjak@gmail.com>
5684
5685 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
5686 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
5687 __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
5688 __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
75d8b30e
UB
5689 input arguments and the mode of return value. Built-in functions
5690 that operate on whole 64-bit MMX register now use V1DI mode.
52eaae97 5691
5f5f0635
AD
56922008-03-13 Alon Dayan <alond@il.ibm.com>
5693 Olga Golovanevsky <olga@il.ibm.com>
5694
5695 PR tree-optimization/35041
5696 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
5697 to locate the right position in a statement.
5698
1359ef39
UB
56992008-03-13 Uros Bizjak <ubizjak@gmail.com>
5700
5701 PR target/34000
5702 PR target/35553
5703 * config/i386/xmmintrin.h: Change all static inline functions to
5704 extern inline and add __gnu_inline__ attribute.
5705 * config/i386/bmintrin.h: Ditto.
5706 * config/i386/smmintrin.h: Ditto.
5707 * config/i386/tmmintrin.h: Ditto.
5708 * config/i386/mmintrin-common.h: Ditto.
5709 * config/i386/ammintrin.h: Ditto.
5710 * config/i386/emmintrin.h: Ditto.
5711 * config/i386/pmmintrin.h: Ditto.
5712 * config/i386/mmintrin.h: Ditto.
5713 * config/i386/mm3dnow.h: Ditto.
5714
d0fb20be
JJ
57152008-03-13 Jakub Jelinek <jakub@redhat.com>
5716
5717 PR middle-end/35185
5718 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
5719 (lower_omp_2): New function.
5720 (lower_omp_1, lower_omp): Rewritten.
5721
20cef83a
DS
57222008-03-13 Danny Smith <dannysmith@users.sourceforge.net>
5723
5724 PR 35054
5725 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
5726 with the phrase "Microsoft Windows compilers".
5727 (Push/Pop Macro Pragmas): New subsection. Document
5728 #pragma push_macro and pragma pop_macro.
5729
5dea0c19
PB
57302008-03-12 Paul Brook <paul@codesourcery.com>
5731
5732 * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
5733
d1b85efb
PB
57342008-03-12 Paul Brook <paul@codesourcery.com>
5735
5736 * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
5737 (thumb2_alusi3_short): Exclude PLUS and MINUS.
5738 (thumb2_addsi_shortim): Rename ...
5739 (thumb2_addsi_short): ... to this. Allow register operands.
5740 (thumb2_subsi_short): New pattern.
5741 (thumb2_one_cmplsi2_short,
5742 thumb2_negsi2_short): New patterns and peepholes.
5743
09754904
PB
57442008-03-12 Paul Brook <paul@codesourcery.com>
5745
09754904
PB
5746 * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
5747
a7438d6d
UB
57482008-03-12 Uros Bizjak <ubizjak@gmail.com>
5749
5750 * config/i386/i386.md (int_cond): New code iterator.
5751 (fp_cond): Ditto.
5752 ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
5753 sge, sgeu, sle and sleu expanders usign int_cond code iterator.
5754 ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
5755 sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
5756 ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
5757 bge, bgeu, ble and bleu expanders usign int_cond code iterator.
5758 ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
5759 bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
5760
954954d1
PB
57612008-03-12 Paul Brook <paul@codesourcery.com>
5762
5763 * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
5764 instead of {arm,thumb}_compute_save_reg_mask.
5765 (output_return_instruction): Ditto.
5766 (thumb_unexpanded_epilogue): Ditto.
5767 (thumb1_expand_prologue): Ditto.
5768 (thumb1_output_function_prologue): Ditto.
5769 (arm_set_return_address): Ditto.
5770 (thumb_set_return_address): Ditto.
5771 (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra
5772 regs to achieve stack alignment.
5773 (thumb1_compute_save_reg_mask): Fix compiler warning.
5774 (arm_output_epilogue): Use offsets->saved_regs_mask.
5775 Adjust stack pointer by poping call clobered registers.
5776 (arm_expand_prologue): Use offsets->saved_regs_mask.
5777 Adjust stack pointer by pushing extra registers.
d0fb20be 5778 * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
954954d1 5779
c83bd37c
PB
57802008-03-12 Paolo Bonzini <bonzini@gnu.org>
5781
5782 PR tree-opt/35422
5783 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
5784 conversion to the operands of a multiplication.
5785
67514449
RG
57862008-03-12 Richard Guenther <rguenther@suse.de>
5787
5788 * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
5789 (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
5790 * timevar.def (TV_TREE_PHIPROP): Add.
5791 * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
5792 pass description. Use TV_TREE_PHIPROP.
5793 * tree-ssa-forwprop.c: Remove phiprop code.
5794
7c8f7639
JJ
57952008-03-12 Jakub Jelinek <jakub@redhat.com>
5796
5797 PR middle-end/35549
5798 * omp-low.c (maybe_lookup_decl): Constify first argument.
5799 (use_pointer_for_field): Change last argument from bool to
5800 omp_context *. Disallow shared copy-in/out in nested
5801 parallel if decl is shared in outer parallel too.
5802 (build_outer_var_ref, scan_sharing_clauses,
5803 lower_rec_input_clauses, lower_copyprivate_clauses,
5804 lower_send_clauses, lower_send_shared_vars): Adjust callers.
5805
62878103
VK
58062008-03-12 Victor Kaplansky <victork@il.ibm.com>
5807 Ira Rosen <irar@il.ibm.com>
5808
5809 * tree-vectorizer.c (free_stmt_vec_info): New function.
5810 (destroy_loop_vec_info): Move code to free_stmt_vec_info().
5811 Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
5812 * tree-vectorizer.h (free_stmt_vec_info): Declare.
5813 * tree-vect-transform.c (vectorizable_conversion): Free
5814 vec_oprnds0 if it was allocated.
5815 (vect_permute_store_chain): Remove unused VECs.
5816 (vectorizable_store): Free VECs that are allocated in the..
5817 function.
5818 (vect_transform_strided_load, vectorizable_load): Likewise.
5819 (vect_remove_stores): Simplify the code.
5820 (vect_transform_loop): Move code to vect_remove_stores().
5821 Call vect_remove_stores() and free_stmt_vec_info().
5822
9dbd54be
JDA
58232008-03-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5824
5825 * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
5826 TARGET_HPUX. Revise comment.
5827 (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
5828 * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
5829 Use sr4 variant of `be' instruction when not generating PIC code.
5830 (attr_length_call): Adjust for above change.
5831
76a7d3ca
AP
58322008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5833
5834 * ipa-reference.c (static_execute): Remove module_statics_const and
5835 associated setting code.
5836
40cca4f9
UB
58372008-03-11 Uros Bizjak <ubizjak@gmail.com>
5838
5839 PR target/35540
5840 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1b1d8f88
UB
5841 predicate for operand 1.
5842 (paritysi2_cmp): Use register_operand predicate for operand 2.
40cca4f9
UB
5843 Use earlyclobber modifier for operand 1. Remove support for
5844 memory operands.
1b1d8f88 5845 (paritydi2_cmp): Use register_operand predicate for operand 3.
40cca4f9
UB
5846 Use earlyclobber modifier for operand 1. Remove support for
5847 memory operands.
5848
ec6237e4 58492008-03-11 Paul Brook <paul@codesourcery.com>
40cca4f9 5850 Vladimir Prus <vladimir@codesourcery.com>
ec6237e4
PB
5851
5852 * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
5853 (arm_compute_save_reg0_reg12_mask): Always
5854 check if register 11 must be saved. Always safe hard frame pointer
5855 when frame_pointer_needeed.
5856 (arm_compute_save_reg_mask): Save IP and PC
5857 only with apcs frames.
5858 (arm_output_epilogue): Adjust Thumb2 codepath to
5859 be also invoked and work for ARM non-apcs frames.
5860 (arm_expand_prologue): Don't bother saving IP
5861 for non-apcs frame, since it's not clobbered by
5862 prologue code. Implement non-apcs frame
5863 layout.
5864
2f6025a1
PB
58652008-03-11 Paolo Bonzini <bonzini@gnu.org>
5866
5867 PR rtl-optimization/35281
5868 * expr.c (convert_move): Use a new pseudo for the intermediate
5869 from_mode->word_mode result.
5870
30e257e5
PB
58712008-03-11 Paolo Bonzini <bonzini@gnu.org>
5872
ec6237e4
PB
5873 * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
5874 * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
5875 * toplev.c (compile_file): Don't call it.
30e257e5 5876
ab669042
UB
58772008-03-11 Uros Bizjak <ubizjak@gmail.com>
5878
5879 PR middle-end/35526
5880 * expr.c (store_expr): Call emit_block_move if the mode
5881 of "temp" RTX is BLKmode.
5882
1ffe34d9 58832008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
ab669042 5884 Richard Guenther <rguenther@suse.de>
1ffe34d9
AP
5885
5886 PR tree-optimization/31358
5887 * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
5888 the step with a NULL_TREE.
5889 * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
5890 to sizetype if type is a pointer type.
5891 (add_candidate_1): Don't convert the base and step to
5892 the generic type if the orginal type is a pointer type.
5893 (add_iv_value_candidates): Use sizetype for the step
5894 if type is a pointer type.
5895 (cand_value_at): Likewise.
5896 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
5897 for pointer types.
5898 * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
5899 Don't convert the tem affine to the type.
5900 (add_elt_to_tree): Use sizetype for the step if a pointer.
5901 Use POINTER_PLUS_EXPR for pointers.
5902 (aff_combination_to_tree): Use sizetype for the step if a
5903 pointer.
5904
dd6d5236
VM
59052008-03-10 Vladimir Makarov <vmakarov@redhat.com>
5906
5907 * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
5908 Remove commutativity hint.
5909
8b46837c
JJ
59102008-03-10 Jakub Jelinek <jakub@redhat.com>
5911
5df27e4a
JJ
5912 PR c/35438
5913 PR c/35439
5914 * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
5915 errorneous type. Check that v is a VAR_DECL.
5916
8b46837c
JJ
5917 PR middle-end/35099
5918 * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
5919
725c2d32
L
59202008-03-10 H.J. Lu <hongjiu.lu@intel.com>
5921
5922 PR tree-optimization/35494
5923 * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
5924 may be overriden at link and run time.
5925
3ba404df
RG
59262008-03-10 Richard Guenther <rguenther@suse.de>
5927
5928 PR tree-optimization/34677
5929 * tree-ssa-pre.c (modify_expr_node_pool): Remove.
5930 (poolify_tree): Likewise.
5931 (modify_expr_template): Likewise.
5932 (poolify_modify_stmt): Likewise.
5933 (insert_fake_stores): Handle all component-ref style stores
5934 in addition to INDIRECT_REF. Also handle complex types.
5935 Do not poolify the inserted load.
5936 (realify_fake_stores): Do not rebuild the tree but only
5937 make it a SSA_NAME copy.
5938 (init_pre): Remove initialzation of modify_expr_template.
5939 Do not allocate modify_expr_node_pool.
5940 (fini_pre): Do not free modify_expr_node_pool.
5941
97e38a92
PB
59422008-03-10 Paul Brook <paul@codesourcery.com>
5943
5944 * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
5945 to avoid conflicts.
5946
bd4dc3cd 59472008-03-10 Paul Brook <paul@codesourcery.com>
ab669042 5948 Mark Shinwell <shinwell@codesourcery.com>
bd4dc3cd 5949
bd4dc3cd
PB
5950 * config/arm/cortex-r4.md: New.
5951 * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
5952 insn attributes.
5953 * config/arm/arm.md: Include cortex-r4.md.
5954 (insn): Add smmls, sdiv and udiv values.
5955 (generic_sched): Don't use generic scheduling for Cortex-R4.
5956 (arm_issue_rate): New function.
5957 (TARGET_SCHED_ISSUE_RATE): Define.
5958
9886a872
SP
59592008-03-10 Sebastian Pop <sebastian.pop@amd.com>
5960
5961 * doc/invoke.texi (-ftree-loop-distribution): Add an example.
5962
e5eff6a3
RG
59632008-03-10 Richard Guenther <rguenther@suse.de>
5964
5965 * tree-ssa-pre.c (get_sccvn_value): Simplify.
5966 (compute_avail): Do not add stmt uses to AVAIL_OUT.
5967
0d4c700c
PB
59682008-03-10 Paolo Bonzini <bonzini@gnu.org>
5969
5970 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
5971 Set default to true.
5972
802e3f8c
RW
59732008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5974
5975 * c.opt (Wsynth): Deprecate.
5976 * doc/invoke.texi (Option Summary, Warning Options): Document
5977 -Wno-format-contains-nul.
5978
be3d4789
UB
59792008-03-09 Uros Bizjak <ubizjak@gmail.com>
5980
5981 PR target/35496
3b509e33 5982 * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
be3d4789
UB
5983 ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
5984
e83a75a7
IR
59852008-03-09 Ira Rosen <irar@il.ibm.com>
5986
5987 * config/rs6000/rs6000.c (builtin_description): Rename vector
5988 left shift operations.
5989 * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
5990 (altivec_vsl<VI_char>): Rename to ...
5991 (ashl<mode>3): ... new name.
5992 (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
5993 gen_ashlv4si3.
5994 (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
5995
fc9161c1
RG
59962008-03-08 Richard Guenther <rguenther@suse.de>
5997
5998 * coverage.h (tree_coverage_counter_addr): Declare.
5999 * coverage.c (tree_coverage_counter_addr): New function.
6000 * tree-profile.c (tree_gen_edge_profiler): Unshare counter
6001 before using again.
6002 (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
6003 (tree_gen_one_value_profiler): Likewise.
6004 (tree_gen_ic_profiler): Likewise.
6005 (tree_gen_average_profiler): Likewise.
6006 (tree_gen_ior_profiler): Likewise.
6007
49a1fb2d
RG
60082008-03-08 Richard Guenther <rguenther@suse.de>
6009
6010 * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
6011 (vn_binary_op_insert): Likewise.
6012 (vn_unary_op_lookup): Likewise.
6013 (vn_unary_op_insert): Likewise.
6014 (vn_nary_op_lookup): Declare.
6015 (vn_nary_op_insert): Likewise.
6016 * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
6017 and binary hashes, use a single obstack for unary_op_pool
6018 and binary_op_pool.
6019 (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
6020 a single struct vn_nary_op_s. Store tree code length and
6021 a variable number of operands.
6022 (struct vn_reference_op_struct): Remove unused op2.
6023 (vn_reference_op_eq): Do not compare op2.
6024 (vn_reference_op_compute_hash): Do not compute hash of op2.
6025 (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
6026 (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
6027 with vn_nary_op_compute_hash.
6028 (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
6029 (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
6030 vn_nary_op_lookup.
6031 (vn_unary_op_insert, vn_binary_op_insert): Replace with
6032 vn_nary_op_insert.
6033 (visit_unary_op): Call nary functions.
6034 (visit_binary_op): Likewise.
6035 (process_scc): Adjust for struct vn_tables_s changes.
6036 (allocate_vn_table): Likewise.
6037 (free_vn_table): Likewise.
6038 * tree-vn.c (vn_add): Call nary functions.
6039 (vn_lookup): Likewise.
6040
2725b75c
JJ
60412008-03-08 Jakub Jelinek <jakub@redhat.com>
6042
6043 PR target/35498
6044 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
6045 wdst back after sync_compare_and_swapqhi_internal.
6046
10a97ae6
UB
60472008-03-08 Uros Bizjak <ubizjak@gmail.com>
6048
6049 PR target/22152
6050 * config/i386/i386-modes.def (V1DI): New vector mode.
6051 * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
6052 * config/i386/mmx.md (MMXMODEI8): New mode iterator.
6053 (MMXMODE248): Ditto.
6054 (MMXMODE): Add V1DI mode.
6055 (mmxvecsize): Change DI mode to V1DI mode.
6056 ("mov<mode>): Use MMXMODEI8 mode iterator.
6057 ("*mov<mode>_internal_rex64"): Ditto.
6058 ("*mov<mode>_internal"): Ditto.
6059 ("mmx_add<mode>3"): Ditto. Handle V1DImode for TARGET_SSE2.
6060 ("mmx_sub<mode>3"): Ditto.
6061 ("mmx_adddi3"): Remove insn pattern.
6062 ("mmx_subdi3"): Ditto.
6063 ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
6064 ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
6065 ("mmx_ashl<mode>3"): Ditto.
6066 ("mmx_lshrdi3"): Remove insn pattern.
6067 ("mmx_ashldi3"): Ditto.
6068 * config/i386/i386.c (classify_argument): Handle V1DImode.
6069 (function_arg_advance_32): Ditto.
6070 (function_arg_32): Ditto.
6071 (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
6072 mmx_addv1di3 insn pattern.
6073 [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
6074 [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
6075 IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
6076 IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
6077 Remove definitions of built-in functions.
6078 (V1DI_type_node): New node.
6079 (v1di_ftype_v1di_int): Ditto.
6080 (v1di_ftype_v1di_v1di): Ditto.
6081 (v2si_ftype_v2si_si): Ditto.
6082 (v4hi_ftype_v4hi_di): Remove node.
6083 (v2si_ftype_v2si_di): Ditto.
6084 (ix86_init_mmx_sse_builtins): Handle V1DImode.
6085 (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
6086 Redefine builtins using def_builtin_const with *_ftype_*_int node.
6087 (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
6088 Add new builtins using def_builtin_const.
6089 (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
6090 IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
6091 IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
6092 * config/i386/mmintrin.h (__v1di): New typedef.
6093 (_mm_add_si64): Cast arguments to __v1di type.
6094 (_mm_sub_si64): Ditto.
6095 (_mm_sll_pi16): Cast __count to __v4hi type.
6096 (_mm_sll_pi32): Cast __count to __v2si type.
6097 (_mm_sll_si64): Cast arguments to __v1di type.
6098 (_mm_srl_pi16): Cast __count to __v4hi type.
6099 (_mm_srl_pi32): Cast __count to __v2si type.
6100 (_mm_srl_si64): Cast arguments to __v1di type.
6101 (_mm_sra_pi16): Cast __count to __v4hi type.
6102 (_mm_sra_pi32): Cast __count to __v2si type.
6103 (_mm_slli_pi16): Use __builtin_ia32_psllwi.
6104 (_mm_slli_pi32): Use __builtin_ia32_pslldi.
6105 (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
6106 (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
6107 (_mm_srli_pi32): Use __builtin_ia32_psrldi.
6108 (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
6109 (_mm_srai_pi16): Use __builtin_ia32_psrawi.
6110 (_mm_srai_pi32): Use __builtin_ia32_psradi.
6111 * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
6112 * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6113 __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6114 __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
6115
08c3b5b0
JM
61162008-03-07 Joseph Myers <joseph@codesourcery.com>
6117
6118 * doc/include/texinfo.tex: Update to version 2008-03-07.10.
6119
efc05e3c
PB
61202008-03-07 Peter Bergner <bergner@vnet.ibm.com>
6121
6122 PR target/35373
6123 * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
6124 reg+const addressing for Altivec modes. Don't generate reg+reg
6125 addressing for TFmode or TDmode quantities.
6126
cf7bc668
PB
61272008-03-07 Paolo Bonzini <bonzini@gnu.org>
6128
6129 * c-common.c (vector_types_convertible_p): Call langhook
6130 instead of comptypes.
6131
b0940154
AP
61322008-03-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
6133
6134 PR tree-opt/35402
6135 * tree-ssa-ccp.c (get_symbol_constant_value): Handle
6136 integral and scalar float variables which have a
6137 NULL DECL_INITIAL.
6138
48081aae
NF
61392008-03-06 Nathan Froyd <froydnj@codesourcery.com>
6140
6141 * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
6142 dwarf_register_span hook when emitting unwind information for
6143 register-to-memory saves.
6144 * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
6145 (rs6000_frame_related): Remove call to spe_synthesize_frame.
6146
251923f5
JJ
61472008-03-06 Jakub Jelinek <jakub@redhat.com>
6148
6149 * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
6150 for the same VAR_DECL.
6151
e8645a40
TT
61522008-03-06 Tom Tromey <tromey@redhat.com>
6153
6154 * treelang: Delete.
6155 * doc/standards.texi (Standards): Don't mention treelang.
6156 * doc/invoke.texi (Overall Options): Don't mention treelang.
6157 * doc/install.texi (Prerequisites): Don't mention bison or
6158 treelang.
6159 (Configuration): Don't mention treelang.
6160 (Building): Likewise.
6161 * doc/frontends.texi (G++ and GCC): Don't mention treelang.
6162
97efb03a
PB
61632008-03-06 Paolo Bonzini <bonzini@gnu.org>
6164
6165 * simplify-rtx.c (simplify_subreg): Remove useless shifts from
6166 word-extractions out of a multi-word object.
6167
fc0f49f3
RG
61682008-03-06 Richard Guenther <rguenther@suse.de>
6169
6170 * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
6171 * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
6172 result type and precision.
6173 * expr.c (get_inner_reference): Set unsignedp based on the result
6174 type of BIT_FIELD_REF.
6175 * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
6176 * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
6177 (try_instantiate_multiple_fields): Likewise. Use the correct type
6178 for BIT_FIELD_REF.
6179 (sra_build_assignment): Likewise.
6180 (sra_build_elt_assignment): Likewise.
6181 (sra_explode_bitfield_assignment): Likewise.
6182 * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
6183 * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
6184 set BIT_FIELD_REF_UNSIGNED.
6185 (vectorizable_load): Likewise.
6186
e186ff69
AK
61872008-03-06 Andreas Krebbel <krebbel1@de.ibm.com>
6188
6189 * cse.c (cse_extended_basic_block): Invalidate artificial defs
6190 at bb start.
6191
4c067742
RG
61922008-03-06 Richard Guenther <rguenther@suse.de>
6193
6194 * alias.c (struct alias_set_entry): Move has_zero_child field
6195 to pack with alias_set.
6196
23880b97
L
61972008-03-05 H.J. Lu <hongjiu.lu@intel.com>
6198
6199 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6200 32bit host.
6201
6ab81302
ILT
62022008-03-05 Ian Lance Taylor <iant@google.com>
6203
6204 * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
6205
4218dc2d 62062008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>
ca9052ce
KZ
6207
6208 * fwprop.c (update_df): Support width and offset parameters of
6209 df_ref_create.
6210 * ra-conflict.c (mark_reg_store, clear_reg_in_live,
6211 global_conflicts): Change DF_REF_EXTRACT to either
6212 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
6213 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6214 * df-scan.c (df_ref_record, df_defs_record,
6215 df_ref_create_structure, df_def_record_1, df_uses_record,
6216 df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
6217 df_bb_refs_collect, df_entry_block_defs_collect,
6218 df_exit_block_uses_collect): Support new width and offset fields.
6219 (ref_extract_pool): New storage pool.
6220 (df_free_ref): New function.
6221 (df_reg_chain_unlink, df_free_collection_rec,
6222 df_sort_and_compress_refs): Call df_free_ref.
6223 (df_ref_equal_p, df_ref_compare): Compare offset and width fields
6224 of df_ref_extract.
6225 (df_ref_create_structure): Allocate df_ref_extract if offset and
6226 width fields are used.
6227 (df_def_record_1): Get offset and width from ZERO_EXTRACT.
6228 (df_uses_record): Get offset and width from ZERO_EXTRACT
6229 and SIGN_EXTRACT.
6230 * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
6231 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
6232 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6233 * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
6234 DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT. Change
6235 DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
6236 (df_ref_extract): New structure.
6237 (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
6238 (df_ref_create): Add width and offset parameters.
6239
63d195d5
RG
62402008-03-05 Richard Guenther <rguenther@suse.de>
6241
6242 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6243 Use ranges_overlap_p.
6244 (offset_overlaps_with_access): Rename
6245 to ranges_overlap_p and move ...
6246 * tree-flow-inline.h (ranges_overlap_p): ... here.
6247
6248 * tree.h (get_inner_reference, handled_component_p): Update
6249 comments.
6250
6251 * tree.h (record_component_aliases, get_alias_set,
6252 alias_sets_conflict_p, alias_sets_must_conflict_p,
6253 objects_must_conflict_p): Move declarations ...
6254 * alias.h (record_component_aliases, get_alias_set,
6255 alias_sets_conflict_p, alias_sets_must_conflict_p,
6256 objects_must_conflict_p): ... here.
6257 Include coretypes.h.
6258 * Makefile.in (ALIAS_H): Add coretypes.h dependency.
6259
ea7e6d5a
AH
62602008-03-05 Aldy Hernandez <aldyh@redhat.com>
6261
6262 * cfg.c: Include tree-flow.h.
6263 (remove_edge_raw): Call redirect_edge_var_map_clear.
6264 (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
6265 * tree-flow-inline.h (redirect_edge_var_map_def): New.
6266 (redirect_edge_var_map_result): New.
6267 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
6268 PENDING_STMT use with redirect_edge_var_map_*.
6269 * tree-ssa.c (edge_var_maps): New definition.
6270 (redirect_edge_var_map_add): New.
6271 (redirect_edge_var_map_clear): New.
6272 (redirect_edge_var_map_dup): New.
6273 (redirect_edge_var_map_vector): New.
6274 (redirect_edge_var_map_destroy): New.
6275 (ssa_redirect_edge): Replace PENDING_STMT use with
6276 redirect_edge_var_map_*.
6277 (flush_pending_stmts): Same.
6278 (delete_tree_ssa): Destroy edge var map.
6279 * tree-flow.h (struct _edge_var_map): New.
6280 Define edge_var_map vector type.
6281 Declare redirect_edge_var_map_* prototypes.
6282 * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
6283 * tree-cfg.c (reinstall_phi_args): Replace
6284 PENDING_STMT use with redirect_edge_var_map_*.
6285
1bdcf037
RG
62862008-03-05 Richard Guenther <rguenther@suse.de>
6287
6288 PR tree-optimization/35472
6289 * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
6290 whose single use_stmt has a overlapping set of loaded and
6291 stored symbols as that use_stmt might be a noop assignment then.
6292
fec5fe47
JS
62932008-03-05 Joel Sherrill <joel.sherrill@oarcorp.com>
6294
6295 * gthr-rtems.h: Implement __gthread_mutex_destroy.
6296
e55f42fb
RG
62972008-03-05 Richard Guenther <rguenther@suse.de>
6298
6299 PR c++/35336
6300 * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
6301 should be constants.
6302 * tree-cfg.c (verify_expr): Verify it.
6303 * fold-const.c (fold_truthop): Remove code generating
6304 BIT_FIELD_REFs of structure bases.
6305 (fold_binary): Likewise.
6306 (fold_ternary): Position and size of BIT_FIELD_REFs are
6307 always host integers.
6308 (make_bit_field_ref): Remove.
6309 (optimize_bit_field_compare): Remove.
6310 (all_ones_mask_p): Remove.
6311
1da266fe
GL
63122008-03-05 Gabor Loki <loki@gcc.gnu.org>
6313
6314 PR gcc/33009
6315 * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
6316 (split_block_and_df_analyze): New. Split basic block and rebuild
6317 dataflow.
6318 (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
6319 SPLIT_BLOCK.
6320 (split_pattern_seq): Likewise.
6321 (erase_matching_seqs): Likewise.
6322 (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
6323
07c40d0b
GK
63242008-03-04 Geoff Keating <geoffk@apple.com>
6325
6326 * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
6327 declaration and code.
6328 (tree_invalid_nonnegative_warnv_p): Likewise.
6329
4c754988
SB
63302008-03-05 Serge Belyshev <belyshev@depni.sinp.msu.ru>
6331
6332 * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
6333 examples. Truncate option-names then causing overfull hbox.
6334
399fe3e1
JDA
63352008-03-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6336
6337 PR target/35222
6338 * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
6339 on hpux10.
6340 * configure: Rebuilt.
6341
e918a58a
RAE
63422008-03-04 Rafael Espindola <espindola@google.com>
6343
6344 * fold-const.c (tree_simple_nonnegative_warnv_p): New.
6345 (tree_unary_nonnegative_warnv_p): New.
6346 (tree_binary_nonnegative_warnv_p): New.
6347 (tree_single_nonnegative_warnv_p): New.
6348 (tree_invalid_nonnegative_warnv_p): New.
6349 (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
6350
ee8ea087
MLI
63512008-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6352
6353 PR 28322
6354 * opts.c (handle_option): Postpone 'unknown option' errors only for
6355 warning options.
6356
b5220972
L
63572008-03-04 H.J. Lu <hongjiu.lu@intel.com>
6358
6359 PR target/35453
6360 * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
6361 (_SIDD_XXX): This.
6362
74dd418c
RAE
63632008-03-04 Rafael Espindola <espindola@google.com>
6364
6365 * fold-const.c (tree_unary_nonzero_warnv_p): New.
6366 (tree_binary_nonzero_warnv_p): New.
6367 (tree_single_nonzero_warnv_p): New.
6368 (tree_expr_nonzero_warnv_p): Redefine using the new functions.
6369
5ce0e197
UB
63702008-03-04 Uros Bizjak <ubizjak@gmail.com>
6371
6372 PR middle-end/35456
6373 * fold-const.c (fold_cond_expr_with_comparison): Prevent
6374 transformations for modes that have signed zeros.
6375 * ifcvt.c (noce_try_abs): Ditto.
6376
2c7c6f54
JM
63772008-03-04 Joseph Myers <joseph@codesourcery.com>
6378
6379 * config/i386/i386.c (override_options): Force
6380 -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
6381
b7884852
JH
63822008-03-04 Jan Hubicka <jh@suse.cz>
6383
6384 PR c++/35262
6385 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
6386 in last commit.
6387
ab65b56b
DS
63882008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
6389
6390 * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk
cd7e0bd4 6391 label to probe the stack.
ab65b56b 6392
c262f705
DS
63932008-03-04 Danny Smith <dannysmith@users.sourceforge.net>
6394
6395 * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
6396 (__gthr_win32_mutex_destroy): Declare.
6397 [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
6398 __gthr_win32_mutex_destroy.
6399 * config/i386/gthr-win32.c (__gthr_win32_mutex_destroy): Define.
6400
44682fab
JH
64012008-03-03 Jan Hubicka <jh@suse.cz>
6402
6403 PR c++/35262
6404 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
6405 aggressive on inlining cold calls.
6406
9a327766
RG
64072008-03-03 Richard Guenther <rguenther@suse.de>
6408
6409 * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
6410 struct copies into the expression table.
6411 (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
6412 (try_to_simplify): Likewise.
6413 * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
6414 integral and pointer arguments which do not change the
6415 precision to NOP_EXPRs.
6416 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
6417 VIEW_CONVERT_EXPR case.
6418
6a732743
SP
64192008-03-02 Sebastian Pop <sebastian.pop@amd.com>
6420
6421 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
6422 defined in a loop at depth 0 is invariant.
6423 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
6424 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
6425 be called at loop depth 0.
6426
0e5997c0
JJ
64272008-03-02 Jakub Jelinek <jakub@redhat.com>
6428
6429 PR driver/35420
6430 * gcc.c (process_command): Update copyright notice dates.
6431 * gcov.c (print_version): Likewise.
6432 * gcov-dump.c (print_version): Likewise.
6433 * mips-tfile.c (main): Likewise.
6434 * mips-tdump.c (main): Likewise.
6435
393eda6a
MLI
64362008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6437
6438 PR 24924
6439 * c-common.c (flag_permissive): Delete.
6440 (constant_expression_warnings): Check flags first.
6441 (constant_expression_error): New.
6442 * c-common.h (flag_permissive): Delete.
6443 (constant_expression_error): Declare.
6444 * flags.h (flag_permissive): Declare. Update description.
6445 * diagnostic.c (pedwarn): Update.
6446 (permerror): New.
6447 * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
6448 (permissive_error_kind): New.
6449 * toplev.c (flag_permissive): Define. Update description.
6450 * toplev.h (permissive_error_kind): Declare.
6451 * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
6452 (pedwarn_c90): Use pedantic_warning_kind.
6453 * c-opts.c (c_common_post_options): flag_permissive does not affect
6454 flag_pedantic_errors.
6455
9677aa89
JM
64562008-03-02 Joseph Myers <joseph@codesourcery.com>
6457
6458 * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
6459 __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
6460 __absvsi2, __absvDI2): Use unsigned arithmetic.
6461
f3130d75 64622008-03-02 Andi Kleen <ak@suse.de>
ab669042 6463 Richard Guenther <rguenther@suse.de>
f3130d75
AK
6464
6465 * struct-equiv.c: Remove file.
6466 * cfg_cleanup.c (condjump_equiv_p): Remove.
6467 * Makefile.in (OBJS-common): Remove struct-equiv.o.
6468 (struct-equiv.o): Remove rule.
6469 * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
6470 insns_match_p, struct_equiv_block_eq, struct_equiv_init,
6471 rtx_equiv_p, condjump_equiv_p): Remove prototypes.
6472
89c3cbc6
AO
64732008-03-01 Alexandre Oliva <aoliva@redhat.com>
6474
6475 * ifcvt.c (noce_process_if_block): Try to handle only the then
6476 block if the else block exists but isn't suitable.
6477
5eb4a9af
JB
64782008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
6479
6480 PR gcc/35063
6481 * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
6482 * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
6483 regression from previous patch.
6484
4dabf736
JB
64852008-03-01 Janne Blomqvist <jb@gcc.gnu.org>
6486
6487 PR gcc/35063
6488 * gthr.h: Add __gthread_mutex_destroy as a function that must be
6489 implemented.
6490 * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
6491 * gthr-single.h (__gthread_mutex_destroy): Likewise.
6492 * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
6493 * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
6494 * gthr-nks.h (__gthread_mutex_destroy): Likewise.
6495 * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
6496 * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
6497 (__gthread_mutex_destroy_function): Rename to
6498 __gthread_mutex_destroy.
6499 * gthr-dce.h (__gthread_mutex_destroy): Call
6500 pthread_mutex_destroy.
6501 * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
6502 * gthr-posix.h (__gthread_mutex_destroy): Likewise.
6503 * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
6504
63642d5a
AO
65052008-03-01 Alexandre Oliva <aoliva@redhat.com>
6506
6507 * df-scan.c (df_ref_chain_change_bb): Simplify.
6508 (df_insn_change_bb): Add new_bb argument. Simplify. Call
6509 set_block_for_insn if there's any change.
6510 * df.h ((df_insn_change_bb): Fix prototype.
6511 * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
6512 df_insn_change_bb, don't call set_block_for_insn.
6513 * emit-rtl.c (reorder_insns): Likewise.
6514 * haifa-sched.c (move_insn): Likewise.
6515
e0651058
AO
65162008-03-01 Alexandre Oliva <aoliva@redhat.com>
6517
6518 * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
6519
d2b6be72
AO
65202008-03-01 Alexandre Oliva <aoliva@redhat.com>
6521
6522 * tree-flow-inline.h (next_readonly_imm_use): Return
6523 NULL_USE_OPERAND_P after the end.
6524
2fb5f2af
RG
65252008-03-01 Richard Guenther <rguenther@suse.de>
6526
6527 PR tree-optimization/35411
6528 * tree-sra.c (sra_build_assignment): Split conversion to
6529 final type to a separate statement if we are not assigning
6530 to a register.
6531
c17ee676
FXC
65322008-02-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
6533
6534 * fold-const.c (fold_convertible_p): Correct the logic to follow
6535 that in fold_convert().
6536
f31c9f09
DG
65372008-02-29 Douglas Gregor <doug.gregor@gmail.com>
6538
6539 PR c++/35315
6540 * tree-inline.c (build_duplicate_type): When we make a
6541 duplicate type, make it unique in the canonical types system.
6542
966e8f4d
TT
65432008-02-29 Tom Tromey <tromey@redhat.com>
6544
6545 * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
6546 input_file_stack_history, input_file_stack_restored): Remove.
6547 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6548 * input.h (struct file_stack): Remove.
6549 (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
6550 (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
6551 Likewise.
6552 * diagnostic.h (struct diagnostic_context) <last_module>: Change
6553 type.
6554 (diagnostic_last_module_changed): Add 'map' argument.
6555 (diagnostic_set_last_function): Likewise.
6556 * diagnostic.c (undiagnostic_report_current_module): Iterate using
6557 line map, not input_file_stack.
6558 * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
6559
3cbe0ba6
PB
65602008-02-29 Paul Brook <paul@codesourcery.com>
6561
6562 * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
6563
d96ae4d4
PB
65642008-02-29 Paul Brook <paul@codesourcery.com>
6565
6566 * config/arm/ieee754-df.S (muldf3): Use RET macros.
6567
5be891a4
RG
65682008-02-29 Richard Guenther <rguenther@suse.de>
6569
6570 * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
6571 vn_lookup_or_add.
6572 * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
6573 value for comparing for a store match.
6574 (simplify_unary_expression): Do nothing for SSA_NAMEs.
6575 (try_to_simplify): Do not do a full-blown reference lookup.
6576
b0fbea13
KK
65772008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
6578
6579 * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
6580 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
6581
6582 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
6583
0c96231b
SP
65842008-02-29 Sebastian Pop <sebastian.pop@amd.com>
6585
6586 * tree-loop-linear.c (try_interchange_loops): Compare memory access
6587 strides against cache sizes.
6588
d973ac5a
KK
65892008-02-29 Kaz Kojima <kkojima@gcc.gnu.org>
6590
6591 * config/sh/sh.c (sh_secondary_reload): Handle loading a float
6592 constant to fpul.
6593
4613543f
RS
65942008-02-28 Richard Sandiford <rsandifo@nildram.co.uk>
6595
6596 * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
6597 of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
6598 is smaller than the original promoted value.
6599 (simplify_subreg): If OP is a SUBREG, try to preserve its
6600 SUBREG_PROMOTED_VAR_P information.
6601
cbfb21c1
SB
66022008-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
6603
6604 * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
6605 (VN_INFO_GET): Allocate new objects on the obstack.
6606 (init_scc_vn): Initialize the obstack. Use XDELETE instead of free
6607 for rpo_numbers_temp, for consistency.
6608 (free_scc_vn): Free the obstack.
6609
dea61d92
SP
66102008-02-28 Sebastian Pop <sebastian.pop@amd.com>
6611
6612 * doc/invoke.texi: Document -ftree-loop-distribution.
6613 * tree-loop-distribution.c: New.
6614 * tree-pass.h (pass_loop_distribution): New.
6615 * graphds.h (struct graph): Add htab_t indices.
6616 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
6617 * tree-vectorizer.c (rename_variables_in_loop): Extern.
6618 (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
6619 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
6620 * tree-data-ref.c (debug_data_dependence_relations): New.
6621 (dump_data_dependence_relation): Also print data references.
6622 (free_data_ref): Extern.
6623 (same_access_functions): Moved...
6624 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
6625 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6626 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
6627 struct rdg_vertex_info, rdg_vertex_for_stmt): New.
6628 (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
6629 (stmts_from_loop): Skip LABEL_EXPR.
5ce0e197
UB
6630 (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
6631 New.
dea61d92
SP
6632 (build_rdg): Initialize rdg->indices htab.
6633 (free_rdg, stores_from_loop, ref_base_address,
6634 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
6635 have_similar_memory_accesses_1, ref_base_address_1,
6636 remove_similar_memory_refs): New.
6637 * tree-data-ref.h: Depend on tree-chrec.h.
6638 (debug_data_dependence_relations, free_data_ref): Declared.
6639 (same_access_functions): ... here.
5ce0e197
UB
6640 (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
6641 New.
dea61d92
SP
6642 (struct rdg_vertex): Add has_mem_write and has_mem_reads.
6643 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
6644 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
6645 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
6646 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
6647 rdg_vertex_for_stmt): Declared.
6648 (struct rdg_edge): Add level.
6649 (RDGE_LEVEL): New.
6650 (free_rdg, stores_from_loop, remove_similar_memory_refs,
5ce0e197
UB
6651 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
6652 Declared.
dea61d92
SP
6653 (rdg_has_similar_memory_accesses): New.
6654 * tree-vect-analyze.c: Remove unused static decls.
6655 * lambda.h (dependence_level): New.
6656 * common.opt (ftree-loop-distribution): New.
6657 * tree-flow.h (mark_virtual_ops_in_bb,
6658 slpeel_tree_duplicate_loop_to_edge_cfg,
6659 rename_variables_in_loop): Declared.
6660 * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
6661 (OBJS-common): Add tree-loop-distribution.o.
6662 (tree-loop-distribution.o): New rule.
6663 * tree-cfg.c (mark_virtual_ops_in_bb): New.
6664 (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
6665 * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
6666
dde75838
JM
66672008-02-28 Joseph Myers <joseph@codesourcery.com>
6668
6669 PR target/33963
6670 * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
6671 other than structures and unions.
6672
3b302421
RG
66732008-02-28 Richard Guenther <rguenther@suse.de>
6674
6675 Revert:
6676 2008-02-26 Richard Guenther <rguenther@suse.de>
6677
6678 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6679 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6680 (lookup_decl_from_uid): Declare.
6681 (remove_decl_from_map): Likewise.
6682 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6683 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6684 (decl_for_uid_map): New global hashtable mapping DECL_UID
6685 to the decl tree.
6686 (init_ttree): Allocate it.
6687 (insert_decl_to_uid_decl_map): New helper function.
6688 (make_node_stat): Insert new decls into the map.
6689 (copy_node_stat): Likewise.
6690 (lookup_decl_from_uid): New function.
6691 (remove_decl_from_map): Likewise.
6692 (print_decl_for_uid_map_statistics): New helper.
6693 (dump_tree_statistics): Call it.
6694
6695 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6696 (referenced_var_iterator): Adjust.
6697 (FOR_EACH_REFERENCED_VAR): Adjust.
6698 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6699 (num_referenced_vars): Adjust.
6700 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6701 (first_referenced_var): Remove.
6702 (end_referenced_vars_p): Likewise.
6703 (next_referenced_var): Likewise.
6704 (referenced_var_iterator_set): New helper function.
6705 * tree-dfa.c (referenced_var_lookup): Adjust.
6706 (referenced_var_check_and_insert): Likewise.
6707 (remove_referenced_var): Likewise.
6708 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6709 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6710 (verify_call_clobbering): Likewise.
6711 (verify_memory_partitions): Likewise.
6712 (init_tree_ssa): Allocate bitmap instead of hashtable for
6713 referenced_vars.
6714 (delete_tree_ssa): Adjust.
6715 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
6716 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6717 (compute_tag_properties): Likewise.
6718 (set_initial_properties): Likewise.
6719 (find_partition_for): Likewise.
6720 (update_reference_counts): Likewise.
6721 (dump_may_aliases_for): Likewise.
6722 * tree-ssa-operands.c (add_virtual_operand): Likewise.
6723 (add_call_clobber_ops): Likewise.
6724 (add_call_read_ops): Likewise.
6725 (get_asm_expr_operands): Likewise.
6726 * tree-into-ssa.c (dump_decl_set): Likewise.
6727 (update_ssa): Likewise.
6728 * tree-sra.c (scan_function): Likewise.
6729 (decide_instantiations): Likewise.
6730 (scalarize_parms): Likewise.
6731 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
6732 (dsa_named_for): Likewise.
6733 * tree-ssa-structalias.c (update_alias_info): Likewise.
6734 (merge_smts_into): Likewise.
6735
2a1ed4fc
DD
67362008-02-27 David Daney <ddaney@avtrex.com>
6737
6738 PR target/34409
6739 * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
6740 * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
6741 * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
6742 * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
6743 * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
6744
c92712d1
UB
67452008-02-27 Uros Bizjak <ubizjak@gmail.com>
6746
6747 PR target/25477
6748 * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
6749 (BUILT_IN_NEXTTOWARD): Remove.
6750 (BUILT_IN_NEXTTOWARDF): Ditto.
6751 * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
6752 alloca/strcpy/strcat. Remove commented-out code. Fix whitespace.
6753
a8bafc43
TT
67542008-02-27 Tom Tromey <tromey@redhat.com>
6755
6756 * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
6757 DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
6758
8220334a
JB
67592008-02-27 Jan Beulich <jbeulich@novell.com>
6760
6761 * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
6762 update the respective field on newdecl.
6763
8bf6e270
RE
67642008-02-27 Revital Eres <eres@il.ibm.com>
6765
6766 PR rtl-optimization/34999
6767 * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
6768 crossing edges that ends with a call insn.
6769 (fix_up_fall_thru_edges): Handle crossing edges that ends with a
6770 call insn and clear the EDGE_CROSSING flag of the crossing edge
6771 when fixing fallthru edges.
6772
7fb52af2
RG
67732008-02-27 Richard Guenther <rguenther@suse.de>
6774
3b302421 6775 PR middle-end/35390
7fb52af2
RG
6776 * fold-const.c (fold_unary): Return the correct argument,
6777 converted to the result type.
6778
70582b3a
RG
67792008-02-27 Richard Guenther <rguenther@suse.de>
6780
6781 PR middle-end/34971
6782 * expr.c (expand_expr_real_1): Assert on rotates that operate
6783 on partial modes.
6784 * fold-const.c (fold_binary): Use the types precision, not the
6785 bitsize of the mode if folding rotate expressions. Build rotates
6786 only for full modes.
6787
a25a8f3b
JJ
67882008-02-27 Jakub Jelinek <jakub@redhat.com>
6789
6790 * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
6791 and CPP_PRAGMA_EOL.
6792 * c-pragma.c (pragma_ns_name): New typedef.
6793 (registered_pp_pragmas): New variable.
6794 (c_pp_lookup_pragma): New function.
6795 (c_register_pragma_1): If flag_preprocess_only, do nothing
6796 for non-expanded pragmas, for expanded ones push pragma's
6797 namespace and name into registered_pp_pragmas vector.
6798 (c_invoke_pragma_handler): Register OpenMP pragmas even when
6799 flag_preprocess_only, don't register GCC pch_preprocess
6800 pragma if flag_preprocess_only.
6801 * c-opts.c (c_common_init): Call init_pragma even if
6802 flag_preprocess_only.
6803 * c-pragma.c (c_pp_lookup_pragma): New prototype.
6804 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
6805 cpp_register_pragma if flag_preprocess_only.
6806
369239ef
RW
68072008-02-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6808
6809 PR c/28800
6810 * c-parser.c (c_parser_translation_unit): Warn for empty
6811 translation unit, not empty source file.
6812
f5c630c3
PB
68132008-02-26 Paul Brook <paul@codesourcery.com>
6814
6815 * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
6816 operand for Thumb-2.
6817 * config/arm/arm.h (reg_class): Add CORE_REGS.
6818 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
6819 (BASE_REG_CLASS): Use CORE_REGS.
6820 (PREFERRED_RELOAD_CLASS): Add STACK_REG.
6821 (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
6822 (REGNO_OK_FOR_INDEX_P): Exclude SP.
6823 (ARM_REG_OK_FOR_INDEX_P): Always define. Use
6824 ARM_REGNO_OK_FOR_INDEX_P.
6825 (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
6826 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
6827 arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
6828 (ldm/stm peepholes): Ditto.
6829 * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
6830 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
6831 * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
6832 * config/arm/constraints.md: Enable "k" constraint on ARM.
6833
0d158b6e
BE
68342008-02-27 Ben Elliston <bje@au.ibm.com>
6835
6836 * config/rs6000/rs6000.c: Annotate cache line size field in all
6837 instances of struct processor_costs.
6838
7d817ebc
DE
68392008-02-26 David Edelsohn <edelsohn@gnu.org>
6840
6841 * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
6842 dse2, gcse, if_conversion, if_after_combine, if_after_reload,
6843 jump_bypass): New counters.
6844 * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
6845 * dce.c (gate_ud_dce): Same.
6846 (gate_fast_dce): Same.
6847 * dse.c (gate_dse1): New function.
6848 (gate_dse2): New function.
6849 (gate_dse): Merge results of new gate functions.
6850 * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
6851 (gate_handle_jump_bypass): Add dbg_cnt.
6852 (gate_handle_gcse): Add dbg_cnt.
6853 * ifcvt.c (gate_handle_if_conversion): Same.
6854 (gate_handle_if_after_combine): Same.
6855 (gate_handle_if_after_reload): Same.
6856 * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
6857
a19b7d46
EW
68582008-02-26 Edmar Wienskoski <edmar@freescale.com>
6859
6860 * config/rs6000/rs6000.c (processor_costs): Update e300 cache
6861 line sizes.
6862 * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
6863
317c435f
JM
68642008-02-26 Jason Merrill <jason@redhat.com>
6865
6866 PR c++/35315
6867 * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
6868 alone if it's the naming decl for the type's main variant.
6869
2d593c86
TT
68702008-02-26 Tom Tromey <tromey@redhat.com>
6871
6872 * system.h (USE_MAPPED_LOCATION): Poison.
6873 * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
6874 * tree-cfg.c (make_cond_expr_edges): Remove old location code.
6875 (make_goto_expr_edges): Likewise.
6876 (remove_bb): Likewise.
6877 (execute_warn_function_return): Likewise.
6878 * basic-block.h (struct edge_def) <goto_locus>: Change type to
6879 location_t.
6880 * c-common.c (fname_decl): Remove old location code.
6881 * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
6882 location code.
6883 * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
6884 variant.
6885 (ASM_INPUT_SOURCE_LOCATION): Likewise.
6886 (gen_rtx_ASM_INPUT): Likewise.
6887 (gen_rtx_ASM_INPUT_loc): Likewise.
6888 (get_rtx_asm_OPERANDS): Remove.
6889 * cfglayout.c (insn_locators_alloc): Remove old location code.
6890 (set_curr_insn_source_location): Likewise.
6891 (curr_insn_locator): Likewise.
6892 * print-tree.c (print_node): Remove old location code.
6893 * tree-mudflap.c (mf_varname_tree): Remove old location code.
6894 (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
6895 * cfgexpand.c (expand_gimple_cond_expr): Don't use
6896 location_from_locus.
6897 (construct_exit_block): Remove old location code.
6898 * emit-rtl.c (force_next_line_note): Remove old location code.
6899 * profile.c (branch_prob): Remove old location code.
6900 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
6901 LOC_LINE): Remove old-location variants.
6902 * langhooks.c (lhd_print_error_function): Remove old location
6903 code.
6904 * configure, config.in: Rebuilt.
6905 * configure.ac (--enable-mapped-location): Remove.
6906 * c-decl.c (c_init_decl_processing): Remove old location code.
6907 (finish_function): Likewise.
6908 * recog.c (decode_asm_operands): Remove old location code.
6909 * c-pch.c (c_common_read_pch): Remove old location code.
6910 * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
6911 variants.
6912 * gimple-low.c (lower_function_body): Remove old location code.
6913 * toplev.c (unknown_location): Remove.
6914 (push_srcloc): Remove old-location variant.
6915 (process_options): Remove old location code.
6916 (lang_dependent_init): Likewise.
6917 * input.h (UNKNOWN_LOCATION): Move definition.
6918 (location_t): Undeprecate.
6919 (source_locus): Remove.
6920 (location_from_locus): Remove.
6921 (struct location_s): Remove.
6922 Remove all old-location code.
6923 (input_line, input_filename): Remove.
6924 * final.c (final_scan_insn): Remove old location code.
6925 * diagnostic.c (diagnostic_build_prefix): Remove
6926 USE_MAPPED_LOCATION test.
6927 * tree.h (gimple_stmt) <locus>: Now a location_t.
6928 (tree_exp) <locus>: Likewise.
6929 (DECL_IS_BUILTIN): Remove old-location variant.
6930 (annotate_with_file_line, annotate_with_locus): Likewise.
6931 (expr_locus, set_expr_locus): Update.
6932 * tree.c (build1_stat): Remove old location code.
6933 (last_annotated_node): Remove.
6934 (annotate_with_file_line): Remove old-location variant.
6935 (annotate_with_locus): Likewise.
6936 (expr_location): Remove old location code.
6937 (set_expr_location): Likewise.
6938 (expr_has_location): Likewise.
6939 (expr_locus): Likewise.
6940 (set_expr_locus): Likewise.
6941 (expr_filename): Don't use location_from_locus.
6942 (expr_lineno): Likewise.
6943 * rtl-error.c (location_for_asm): Remove old location code.
6944 * c-lex.c (cb_line_change): Remove old location code.
6945 (fe_file_change): Likewise.
6946 (cb_def_pragma): Likewise.
6947 (c_lex_with_flags): Likewise.
6948 * gengtype.c (do_typedef): Don't special-case location types.
6949 (define_location_structures): Remove.
6950 (main): Don't call define_location_structures.
6951 * tree-pretty-print.c (dump_implicit_edges): Remove old location
6952 code.
6953
4f01eeb4
MLI
69542008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6955
cd7e0bd4 6956 PR 26264
4f01eeb4
MLI
6957 * builtins.def (BUILT_IN_STDARG_START): Remove.
6958 * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
6959 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6960 * tree-inline.c (inline_forbidden_p_1): Likewise.
6961
bbd59cf4
RG
69622008-02-26 Richard Guenther <rguenther@suse.de>
6963
6964 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
6965 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
6966 (lookup_decl_from_uid): Declare.
6967 (remove_decl_from_map): Likewise.
6968 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
6969 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
6970 (decl_for_uid_map): New global hashtable mapping DECL_UID
6971 to the decl tree.
6972 (init_ttree): Allocate it.
6973 (insert_decl_to_uid_decl_map): New helper function.
6974 (make_node_stat): Insert new decls into the map.
6975 (copy_node_stat): Likewise.
6976 (lookup_decl_from_uid): New function.
6977 (remove_decl_from_map): Likewise.
6978 (print_decl_for_uid_map_statistics): New helper.
6979 (dump_tree_statistics): Call it.
6980
6981 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
6982 (referenced_var_iterator): Adjust.
6983 (FOR_EACH_REFERENCED_VAR): Adjust.
6984 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
6985 (num_referenced_vars): Adjust.
6986 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
6987 (first_referenced_var): Remove.
6988 (end_referenced_vars_p): Likewise.
6989 (next_referenced_var): Likewise.
6990 (referenced_var_iterator_set): New helper function.
6991 * tree-dfa.c (referenced_var_lookup): Adjust.
6992 (referenced_var_check_and_insert): Likewise.
6993 (remove_referenced_var): Likewise.
6994 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
6995 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
6996 (verify_call_clobbering): Likewise.
6997 (verify_memory_partitions): Likewise.
6998 (init_tree_ssa): Allocate bitmap instead of hashtable for
6999 referenced_vars.
7000 (delete_tree_ssa): Adjust.
7001 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7002 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7003 (compute_tag_properties): Likewise.
7004 (set_initial_properties): Likewise.
7005 (find_partition_for): Likewise.
7006 (update_reference_counts): Likewise.
7007 (dump_may_aliases_for): Likewise.
7008 * tree-ssa-operands.c (add_virtual_operand): Likewise.
7009 (add_call_clobber_ops): Likewise.
7010 (add_call_read_ops): Likewise.
7011 (get_asm_expr_operands): Likewise.
7012 * tree-into-ssa.c (dump_decl_set): Likewise.
7013 (update_ssa): Likewise.
7014 * tree-sra.c (scan_function): Likewise.
7015 (decide_instantiations): Likewise.
7016 (scalarize_parms): Likewise.
7017 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7018 (dsa_named_for): Likewise.
7019 * tree-ssa-structalias.c (update_alias_info): Likewise.
7020 (merge_smts_into): Likewise.
7021
16302daf
MLI
70222008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7023
7024 PR 34351
7025 * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
7026 * c-opts.c (c_common_handle_option): Wall enables
7027 Wvolatile-register-var.
7028 * common.opt: Move Wvolatile-register-var to...
7029 * c.opt: ...here.
7030
e8fc888d
MLI
70312008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7032
7033 * common.opt (Wlarger-than=): New.
7034 * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
7035 -Wlarger-than=.
7036 * opts.c (common_handle_option): Handle -Wlarger-than=.
7037 * optc-gen.awk: Likewise.
7038 * opth-gen.awk: Likewise.
7039 * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
7040 * tree-optimize.c (tree_rest_of_compilation): Likewise.
7041
683d6ff9
MLI
70422008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7043
7044 * c-common.c (match_case_to_enum_1): Add appropriate
7045 OPT_W* parameter to warning.
7046 (c_do_switch_warnings): Likewise.
7047 * c-typeck.c (warning_init): Add one more parameter following
7048 'warning' function.
7049 (push_init_level): Update call to warning_init.
7050 (pop_init_level): Likewise.
7051 (add_pending_init): Likewise.
7052 (output_init_element: Likewise.
7053
369dcbd9
MLI
70542008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7055
7056 PR 28322
7057 * toplev.c (toplev_main): If there are warnings or error, print
7058 errors for ignored options.
7059 * opts.c (ignored_options): New static variable.
7060 (postpone_unknown_option_error): New.
7061 (print_ignored_options): New.
7062 (handle_option): Postpone errors for unknown -Wno-* options.
7063 * opts.h (print_ignored_options): Declare.
7064
23dc794c
RS
70652008-02-25 Richard Sandiford <rsandifo@nildram.co.uk>
7066
7067 * config/mips/mips.md (loadgp_blockage, blockage): Change type
7068 to "ghost".
7069
381a258b
RG
70702008-02-25 Richard Guenther <rguenther@suse.de>
7071
7072 Revert:
7073 2008-02-25 Richard Guenther <rguenther@suse.de>
7074
7075 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7076 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7077 (lookup_decl_from_uid): Declare.
7078 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7079 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7080 (decl_for_uid_map): New global hashtable mapping DECL_UID
7081 to the decl tree.
7082 (init_ttree): Allocate it.
7083 (insert_decl_to_uid_decl_map): New helper function.
7084 (make_node_stat): Insert new decls into the map.
7085 (copy_node_stat): Likewise.
7086 (lookup_decl_from_uid): New function.
7087 (print_decl_for_uid_map_statistics): New helper.
7088 (dump_tree_statistics): Call it.
7089
7090 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7091 (referenced_var_iterator): Adjust.
7092 (FOR_EACH_REFERENCED_VAR): Adjust.
7093 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7094 (num_referenced_vars): Adjust.
7095 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7096 (first_referenced_var): Remove.
7097 (end_referenced_vars_p): Likewise.
7098 (next_referenced_var): Likewise.
7099 (referenced_var_iterator_set): New helper function.
7100 * tree-dfa.c (referenced_var_lookup): Adjust.
7101 (referenced_var_check_and_insert): Likewise.
7102 (remove_referenced_var): Likewise.
7103 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7104 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7105 (verify_call_clobbering): Likewise.
7106 (verify_memory_partitions): Likewise.
7107 (init_tree_ssa): Allocate bitmap instead of hashtable for
7108 referenced_vars.
7109 (delete_tree_ssa): Adjust.
7110 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7111 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7112 (compute_tag_properties): Likewise.
7113 (set_initial_properties): Likewise.
7114 (find_partition_for): Likewise.
7115 (update_reference_counts): Likewise.
7116 (dump_may_aliases_for): Likewise.
7117 * tree-ssa-operands.c (add_virtual_operand): Likewise.
7118 (add_call_clobber_ops): Likewise.
7119 (add_call_read_ops): Likewise.
7120 (get_asm_expr_operands): Likewise.
7121 * tree-into-ssa.c (dump_decl_set): Likewise.
7122 (update_ssa): Likewise.
7123 * tree-sra.c (scan_function): Likewise.
7124 (decide_instantiations): Likewise.
7125 (scalarize_parms): Likewise.
7126 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7127 (dsa_named_for): Likewise.
7128 * tree-ssa-structalias.c (update_alias_info): Likewise.
7129 (merge_smts_into): Likewise.
7130
89453ec7
JB
71312008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
7132
7133 PR fortran/29549
7134 * doc/invoke.texi (-fcx-limited-range): Document new option.
7135 * toplev.c (process_options): Handle -fcx-fortran-rules.
cd7e0bd4 7136 * common.opt: Add documentation for -fcx-fortran-rules.
89453ec7 7137
8cc6d3e0
JB
71382008-02-25 Janne Blomqvist <jb@gcc.gnu.org>
7139
7140 PR c/35162
7141 * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
7142 actual behaviour and C99.
7143
cd679487
BE
71442008-02-26 Ben Elliston <bje@au.ibm.com>
7145
7146 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
7147 (ASM_CPU_POWER6_SPEC): Likewise.
7148 (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
7149 Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
7150 (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
7151
7660c722
RG
71522008-02-25 Richard Guenther <rguenther@suse.de>
7153
7154 * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7155 * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7156 (lookup_decl_from_uid): Declare.
7157 * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7158 * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7159 (decl_for_uid_map): New global hashtable mapping DECL_UID
7160 to the decl tree.
7161 (init_ttree): Allocate it.
7162 (insert_decl_to_uid_decl_map): New helper function.
7163 (make_node_stat): Insert new decls into the map.
7164 (copy_node_stat): Likewise.
7165 (lookup_decl_from_uid): New function.
7166 (print_decl_for_uid_map_statistics): New helper.
7167 (dump_tree_statistics): Call it.
7168
7169 * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7170 (referenced_var_iterator): Adjust.
7171 (FOR_EACH_REFERENCED_VAR): Adjust.
7172 (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7173 (num_referenced_vars): Adjust.
7174 * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7175 (first_referenced_var): Remove.
7176 (end_referenced_vars_p): Likewise.
7177 (next_referenced_var): Likewise.
7178 (referenced_var_iterator_set): New helper function.
7179 * tree-dfa.c (referenced_var_lookup): Adjust.
7180 (referenced_var_check_and_insert): Likewise.
7181 (remove_referenced_var): Likewise.
7182 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7183 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7184 (verify_call_clobbering): Likewise.
7185 (verify_memory_partitions): Likewise.
7186 (init_tree_ssa): Allocate bitmap instead of hashtable for
7187 referenced_vars.
7188 (delete_tree_ssa): Adjust.
7189 * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7190 FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7191 (compute_tag_properties): Likewise.
7192 (set_initial_properties): Likewise.
7193 (find_partition_for): Likewise.
7194 (update_reference_counts): Likewise.
7195 (dump_may_aliases_for): Likewise.
7196 * tree-ssa-operands.c (add_virtual_operand): Likewise.
7197 (add_call_clobber_ops): Likewise.
7198 (add_call_read_ops): Likewise.
7199 (get_asm_expr_operands): Likewise.
7200 * tree-into-ssa.c (dump_decl_set): Likewise.
7201 (update_ssa): Likewise.
7202 * tree-sra.c (scan_function): Likewise.
7203 (decide_instantiations): Likewise.
7204 (scalarize_parms): Likewise.
7205 * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7206 (dsa_named_for): Likewise.
7207 * tree-ssa-structalias.c (update_alias_info): Likewise.
7208 (merge_smts_into): Likewise.
7209
2e4e39f6
AK
72102008-02-25 Andreas Krebbel <krebbel1@de.ibm.com>
7211
7212 PR target/35258
7213 * cse.c (cse_insn): Avoid creation of overlapping MEMs.
7214 * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
7215 * alias.h (nonoverlapping_memrefs_p): Likewise.
7216
891984af
JB
72172008-02-25 Jan Beulich <jbeulich@novell.com>
7218
c92712d1 7219 * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
891984af
JB
7220 * config/i386/netware-libgcc.exp: Add __bswap?i2,
7221 __emultls_get_address, __emultls_register_common,
7222 __floatundi?f, and _Unwind_GetIPInfo.
7223 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
7224 Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
7225 (gen_regparm_prefix): Likewise.
7226 (i386_nlm_encode_section_info): Sync with
7227 config/i386/winnt.c:i386_pe_encode_section_info().
7228 (i386_nlm_maybe_mangle_decl_assembler_name): New.
7229 i386_nlm_mangle_decl_assembler_name): New.
7230 (netware_override_options): New.
7231 * config/i386/netware.h (netware_override_options): Declare.
7232 (OVERRIDE_OPTIONS): Re-define to netware_override_options.
7233 (i386_nlm_mangle_decl_assembler_name): Declare.
7234 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
7235
98266db0
BE
72362008-02-25 Ben Elliston <bje@au.ibm.com>
7237
7238 PR other/32948
7239 * c-decl.c (grokdeclarator): Remove unused local variables
7240 `typedef_type' and `type_as_written'.
7241 * bb-reorder.c
7242 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
7243 unused local variable `has_hot_blocks'.
7244 (fix_crossing_conditional_branches): Remove unused local variable
7245 `prev_bb'.
7246
93e50125
UB
72472008-02-25 Uros Bizjak <ubizjak@gmail.com>
7248
7249 PR middle-end/19984
7250 * builtins.def (BUILT_IN_NAN): Define as c99 builtin
7251 using DEF_C99_BUILTIN.
7252 (BUILT_IN_NANF): Ditto.
7253 (BUILT_IN_NANL): Ditto.
7254
0de5a32f 72552008-02-25 Ayal Zaks <zaks@il.ibm.com>
433331d4 7256 Revital Eres <eres@il.ibm.com>
0de5a32f
AZ
7257
7258 * modulo-sched.c (calculate_must_precede_follow): Address TODO
7259 regarding the order of two dependent insns in the same row.
7260
d4cba6d4
EB
72612008-02-25 Eric Botcazou <ebotcazou@adacore.com>
7262
7263 * stor-layout.c (layout_decl): Do not bump the alignment of a
7264 bit-field to more than byte alignment if it is packed.
7265
642639ce
DE
72662008-02-24 David Edelsohn <edelsohn@gnu.org>
7267
7268 * config/rs6000/rs6000.c (processor_costs): Add cache costs for
7269 e300c2 and e300c3.
7270
faebccf9
DN
72712008-02-24 Diego Novillo <dnovillo@google.com>
7272
7273 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
7274
7275 PR 33738
7276 * tree-vrp.c (vrp_evaluate_conditional): With
7277 -Wtype-limits, emit a warning when comparing against a
7278 constant outside the natural range of OP0's type.
7279 * c.opt (Wtype-limits): Move ...
7280 * common.opt (Wtype-limits): ... here.
7281
88c7f01b 72822008-02-24 Edmar Wienskoski <edmar@freescale.com>
fa41c305
EW
7283
7284 * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
7285 * config/rs6000/e300c2c3.md: New file.
7286 * config/rs6000/rs6000.c (processor_costs): Add new costs for
7287 e300c2 and e300c3.
7288 (rs6000_override_options): Add e300c2 and e300c3 cases to
7289 processor_target_table. Do not allow usage of Altivec or Spe
7290 with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
7291 (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
7292 * config/rs6000/rs6000.h (processor_type): Add
7293 PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
7294 (ASM_CPU_SPEC): Add e300c2 and e300c3.
7295 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
7296 and ppce300c3. Include e300c2c3.md.
7297
153fbec8
DE
72982008-02-23 David Edelsohn <edelsohn@gnu.org>
7299
7300 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
7301 instead of TARGET_STRICT_ALIGN.
7302
03d4f106
JM
73032008-02-23 Joseph Myers <joseph@codesourcery.com>
7304
7305 * explow.c (memory_address): Assert that the generated address is
7306 valid.
7307
fb220235
FXC
73082008-02-23 Francois-Xavier Coudert <coudert@clipper.ens.fr>
7309
7310 PR target/25477
7311 * config/darwin-protos.h: Add darwin_patch_builtins prototype.
7312 * config/darwin-ppc-ldouble-patch.def: New file.
7313 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
7314 * config/rs6000/rs6000.c (rs6000_init_builtins): Call
7315 SUBTARGET_INIT_BUILTINS if defined.
93e50125
UB
7316 * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
7317 New functions.
fb220235 7318
f79db4f6
AP
73192008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
7320
7321 PR rtl-opt/33512
7322 * simplify-rtx.c (simplify_binary_operation_1): Add simplification
7323 of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
7324
bb1f73c2
AP
73252008-02-23 Andrew Pinski <andrew_pinski@playstation.sony.com>
7326
7327 PR pch/35027
7328 * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
7329 file" warning condtional on -Winvalid-PCH.
7330
8ddcfde1
DJ
73312008-02-23 Daniel Jacobowitz <dan@codesourcery.com>
7332
7333 * expmed.c (extract_bit_field): Always use adjust_address for MEM.
7334
84495fd9
UB
73352008-02-23 Uros Bizjak <ubizjak@gmail.com>
7336
7337 PR target/22076
7338 PR target/34256
7339 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
7340 prevent reload from using MMX registers.
7341 (*mov<mode>_internal): Ditto.
7342 (*movv2sf_internal_rex64): Ditto.
7343 (*movv2sf_internal): Ditto.
7344
73c17ad2
RW
73452008-02-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7346
7347 PR documentation/31569
7348 * doc/install.texi2html: Use makeinfo --no-number-sections.
7349
61dd226f
NF
73502008-02-22 Nathan Froyd <froydnj@codesourcery.com>
7351
7352 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
7353 ensure that we can address an entire entity > 8 bytes. Don't
7354 generate reg+reg addressing for such data.
7355
2165fd38
NF
73562008-02-22 Nathan Froyd <froydnj@codesourcery.com>
7357
7358 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
7359 strings when optimizing for size, unless the target cares about
7360 alignment.
7361
ad5ebb34
TT
73622008-02-22 Tom Tromey <tromey@redhat.com>
7363
7364 * regclass.c (current_pass): Remove declaration.
7365
34d02d17
AS
73662008-02-22 Anatoly Sokolov <aesok@post.ru>
7367
7368 * config/avr/libgcc.S (__RAMPZ__): Define.
7369 (__do_copy_data): Add for devices with 128KB code memory.
7370
a4899c01
NF
73712008-02-22 Nathan Froyd <froydnj@codesourcery.com>
7372
7373 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
7374 Use spe_abi.
7375 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
7376
fe82487e
HPN
73772008-02-22 Hans-Peter Nilsson <hp@axis.com>
7378
7379 * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
7380 GENNONACR_REGS.
7381
ae311566
RW
73822008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7383
7384 PR c/19999
7385 * c-typeck.c (build_binary_op): Warn about floating point
7386 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
7387
a2db2771
JJ
73882008-02-21 Janis Johnson <janis187@us.ibm.com>
7389
7390 PR target/34526
7391 * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
7392 (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
7393 add vrsave.
7394 (rs6000_override_options): Set altivec_abi as default, not override,
7395 for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
7396 TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
7397 is used; use new member spe_abi.
7398 (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
7399 spe_abi and altivec_abi.
7400
89fd06fb
TB
74012008-02-22 Tomas Bily <tbily@suse.cz>
7402
7403 * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
7404
703fdf5a
RW
74052008-02-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7406
7407 PR bootstrap/35273
7408 * config.build (build_file_translate): Set to `CMD //c' only if
7409 it works.
7410 * Makefile.in (build_file_translate): Improve comment.
7411
0ca16832
JH
74122008-02-21 Jan Hubicka <jh@suse.cz>
7413
7414 * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
7415 PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
7416 PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
7417
c754abbf
MM
74182008-02-21 Michael Matz <matz@suse.de>
7419
7420 PR target/35264
7421 * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
7422
85845bb9
UB
74232008-02-21 Uros Bizjak <ubizjak@gmail.com>
7424
7425 * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
7426 movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
7427 as insn constraint.
7428 * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
7429 from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
7430 SSE_VEC_FLOAT_MODE_P as insn constraint.
7431 (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
7432 (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
7433 sse4a_movntdf using MODEF mode iterator.
7434 (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
7435 sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
7436 (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
7437 (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
7438 (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
7439 (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
7440 (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
7441
dedd42d5
RG
74422008-02-21 Richard Guenther <rguenther@suse.de>
7443
7444 * tree.def (PAREN_EXPR): New tree code.
7445 * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
7446 and PAREN_EXPR.
7447 * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
7448 * expr.c (expand_expr_real_1): Likewise.
7449 * tree-inline.c (estimate_num_insns_1): Likewise.
7450 * tree-complex.c (expand_complex_move): Likewise.
7451 * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
7452 as plain x.
7453
7a3cb3ab
KK
74542008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
7455
7456 PR target/35225
7457 * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
7458
6d4d15b8
KK
74592008-02-20 Kaz Kojima <kkojima@gcc.gnu.org>
7460
7461 PR target/35190
7462 * config/sh/sh.md (jump_compact): Disable for crossing jumps.
7463
7464 * config/sh/sh.c (find_barrier): Don't go past
7465 NOTE_INSN_SWITCH_TEXT_SECTIONS note.
7466
6d4a8967
DD
74672008-02-20 DJ Delorie <dj@redhat.com>
7468
7469 * config/h8300/h8300.md (insv): Force source operand to be a register.
7470
7471 * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
7472 as a jump, not as a plain insn.
7473
a214518f
SP
74742008-02-20 Seongbae Park <seongbae.park@gmail.com>
7475
7476 * doc/invoke.texi (Warning Options): Add new option
7477 -Wframe-larger-than=.
7478 (-Wframe-larger-than): Document.
7479
7480 * flags.h (warn_frame_larger_than, frame_larger_than_size):
7481 Add declarations for new option variables.
7482
7483 * final.c (final_start_function): Check the frame size
7484 before emission and issue a Wframe-larger-than warning.
7485
7486 * opts.c (warn_frame_larger_than, frame_larger_than_size):
7487 Add definitions for new option variables.
7488 (common_handle_option): Handle new option OPT_Wframe_larger_than_.
7489
7490 * common.opt (Wframe-larger-than=): New option.
7491
993ac7c7
UB
74922008-02-20 Uros Bizjak <ubizjak@gmail.com>
7493
7494 * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
7495 (<sse>_div<mode>3): Ditto.
7496 (<sse>_vmdiv<mode>3): Ditto.
7497 (<sse>_vmsqrt<mode>2): Ditto.
7498 (*smax<mode>3): Ditto.
7499 (sse5_frcz<mode>2): Ditto.
7500 (sse5_vmfrcz<mode>2): Ditto. Use TARGET_SSE5 instead of TARGET_ROUND
7501 as insn constraint.
7502
4cd8e76f
RG
75032008-02-20 Richard Guenther <rguenther@suse.de>
7504
7505 PR middle-end/35265
7506 * builtins.c (validate_arg): If we want an INTEGER_TYPE,
7507 be happy with INTEGRAL_TYPE_P.
7508
41bb1f06
RG
75092008-02-20 Richard Guenther <rguenther@suse.de>
7510
7511 * fold-const.c (split_tree): Associate floatig-point expressions
7512 if flag_associative_math is set.
7513
2dc0f633
RG
75142008-02-20 Richard Guenther <rguenther@suse.de>
7515
7516 * tree.h (fold_real_zero_addition_p): Declare.
7517 * fold-const.c (fold_real_zero_addition_p): Export.
7518 * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
7519 floating-point operations with zero and one.
7520
1c8bd6a3
PB
75212008-02-20 Paolo Bonzini <bonzini@gnu.org>
7522
4b40b2a5
UB
7523 * doc/install.texi: Correct references to CFLAGS, replacing them
7524 with BOOT_CFLAGS. Document flags used during bootstrap for
7525 target libraries.
1c8bd6a3 7526
d6023b50
UB
75272008-02-20 Uros Bizjak <ubizjak@gmail.com>
7528
7529 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
7530 * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
7531 and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
7532 insn constraint.
7533 (smin<mode>3): Ditto from similar patterns.
7534 (smax<mode>3): Ditto.
7535 (*ieee_smin<mode>3): Ditto.
7536 (*ieee_smax<mode>3): Ditto.
7537 * config/i386/sse.md (sse): New mode attribute.
7538 (mov<mode>): Macroize expander from movv4sf and movv2df using
7539 SSEMODEF2P mode iterator.
7540 (<sse>_movnt<mode>): Ditto from similar patterns. Use
7541 SSE_VEC_FLOAT_MODE_P as insn constraint.
7542 (storent<mode>): Ditto.
7543 (storent<mode>): Macroize expander from storentsf and storentdf using
7544 MODEF mode iterator.
7545 (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
7546 mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
7547 (abs<mode>2): Ditto from similar patterns.
7548 (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
7549 (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
7550 (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
7551 (<sse>_vmsqrt<mode>2): Ditto.
7552 (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
7553 (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
7554 (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
7555 (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
7556 (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
7557 sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
7558 mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
7559 insn constraint.
7560 (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
7561 iterator and SSE_FLOAT_MODE_P as insn constraint.
7562 (<sse>_ucomi): Ditto from similar patterns.
7563 (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
7564 sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
7565 SSE_VEC_FLOAT_MODE_P as insn constraint.
7566 (vcond<mode>): Ditto from similar patterns.
7567 (and<mode>3, *and<mode>3): Ditto.
7568 (<sse>_nand<mode>3): Ditto.
7569 (ior<mode>3, *ior<mode>3): Ditto.
7570 (xor<mode>3, *xor<mode>3): Ditto.
7571 (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
7572 iterator and SSE_FLOAT_MODE_P as insn constraint.
7573 (*nand<mode>3): Ditto from similar patterns.
7574 (*ior<mode>3): Ditto.
7575 (*xor<mode>3): Ditto.
7576
76a893cf
IR
75772008-02-20 Ira Rosen <irar@il.ibm.com>
7578
7579 * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
7580 vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
7581 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
7582
daac0317
JH
75832008-02-19 Jan Hubicka <jh@suse.cz>
7584
a8971bdb
UB
7585 * predict.c (tree_bb_level_predictions): Remove variable next
7586 mistakely introduced by previous commit.
daac0317 7587
3e4b9ad0
JH
75882008-02-19 Jan Hubicka <jh@suse.cz>
7589
7590 * predict.c (predict_paths_leading_to): Rewrite.
7591 (predict_paths_for_bb): New.
7592 (tree_bb_level_predictions): Update call of predict_paths_leading_to.
7593
a0e527e3
RW
75942008-02-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7595
7596 PR bootstrap/35218
7597 * Makefile.in (build_file_translate): New.
7598 (gcc-vers.texi): Use it for translating $(abs_srcdir).
7599 * config.build (build_file_translate): Set to `CMD //c' on MinGW.
7600 * configure.ac (build_file_translate): Substitute it.
7601 * configure: Regenerate.
7602
9d5cee3d
JH
76032008-02-19 Jan Hubicka <jh@suse.cz>
7604
7605 PR rtl-optimization/34408
3e4b9ad0
JH
7606 * see.c (see_def_extension_not_merged): Copy subreg so we don't have
7607 invalid sharing.
9d5cee3d 7608
8723e2fe
JH
76092008-02-19 Jan Hubicka <jh@suse.cz>
7610
7611 PR middle-end/28779
3e4b9ad0
JH
7612 * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
7613 call_expr.
8723e2fe 7614
5ba5440f
L
76152008-02-19 H.J. Lu <hongjiu.lu@intel.com>
7616
7617 PR Ada/35186
7618 * config/i386/i386-modes.def: Revert the last DI alignment
7619 change until Ada people can look into it.
7620
c01c261d
NC
76212008-02-19 Nick Clifton <nickc@redhat.com>
7622
7623 * opts.c (print_specific_help): Fix typo in --help text.
7624
2e834acb
JJ
76252008-02-19 Jakub Jelinek <jakub@redhat.com>
7626
7627 PR target/35239
7628 * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
7629 32-bit inline asm without asm alternatives for host GCC < 3.0.
7630
9cadd7f7
RG
76312008-02-19 Richard Guenther <rguenther@suse.de>
7632
7633 PR tree-optimization/34989
7634 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
7635 Allow propagation to INDIRECT_REF if we can simplify only.
7636
ffc30173
MLI
76372008-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7638
7639 * c-common.c (warn_for_collisions_1): Use appropriate option when
7640 warning.
7641
b3eaaf1a
NC
76422008-02-19 Nick Clifton <nickc@redhat.com>
7643
7644 PR other/31349
a8971bdb 7645 * opts.c (undocumented_msg): Leave blank unless checking is enabled.
b3eaaf1a
NC
7646 (handle_options): Fix indentation.
7647 (print_filtered_help): If no language-specific options were
7648 displayed tell the user how to list all the options supported by
7649 the language's front-end.
7650 (print_specific_help): Fix indentation and remove duplicate line.
7651 (common_handle_option): Handle the -v option.
7652 For --help enable the display of undocumented options if the -v
7653 switch has been included on the command line.
7654 For --help= check for overlaps in the arguments between the option
7655 classes and the language names and issue a warning when they
7656 cannot be disambiguated.
7657 * c.opt (v): Pass on to the common option handler.
7658
de82c453
RE
76592008-02-19 Revital Eres <eres@il.ibm.com>
7660
7661 * modulo-sched.c (sms_schedule): Change dump message when
7662 create_ddg function fails.
7663 (try_scheduling_node_in_cycle): Rename row to cycle.
7664 (print_partial_schedule): Rename CYCLE to ROW.
7665
32159434 76662008-02-19 Christian Bruel <christian.bruel@st.com>
a8971bdb
UB
7667 Zdenek Dvorak <ook@ucw.cz>
7668
7669 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
7670
0e93e1b4
UB
76712008-02-19 Uros Bizjak <ubizjak@gmail.com>
7672
7673 PR target/33555
7674 * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
7675 (*x86_movdicc_0_m1_se): Ditto.
7676
02d353cf
UB
76772008-02-19 Uros Bizjak <ubizjak@gmail.com>
7678
7679 * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
7680 (CMPtype): Define as __gcc_CMPtype.
7681 * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
7682 (CMPtype): Define as __gcc_CMPtype.
7683
35dee980
HPN
76842008-02-19 Hans-Peter Nilsson <hp@axis.com>
7685
7686 Support valgrind 3.3 for --enable-checking=valgrind.
7687 * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
7688 here.
7689 [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
7690 [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
7691 [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
7692 * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
7693 Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
7694 VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
7695 VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
7696 respectively.
7697 * ggc-zone.c: Similar.
7698 * ggc-page.c: Similar.
7699
27e03cf1
PB
77002008-02-19 Paul Brook <paul@codesourcery.com>
7701
7702 PR target/35071
7703 * config/arm/ieee754-df.S: Fix do_it typo.
7704 * config/arm/ieee754-sf.S: Fix do_it typo.
7705
287a7d41
L
77062008-02-18 H.J. Lu <hongjiu.lu@intel.com>
7707
7708 PR target/35189
7709 * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
7710 (OPTION_MASK_ISA_3DNOW_SET): Likewise.
7711 (OPTION_MASK_ISA_SSE_SET): Likewise.
7712 (OPTION_MASK_ISA_SSE2_SET): Likewise.
7713 (OPTION_MASK_ISA_SSE3_SET): Likewise.
7714 (OPTION_MASK_ISA_SSSE3_SET): Likewise.
7715 (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
7716 (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
7717 (OPTION_MASK_ISA_SSE4_SET): Likewise.
7718 (OPTION_MASK_ISA_SSE4A_SET): Likewise.
7719 (OPTION_MASK_ISA_SSE5_SET): Likewise.
7720 (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
7721 (OPTION_MASK_ISA_MMX_UNSET): Updated.
7722 (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
7723 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
7724 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
7725 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
7726 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
7727 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
7728 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
7729 (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
7730 (OPTION_MASK_ISA_SSE4): Removed.
7731 (ix86_handle_option): Turn on bits in ix86_isa_flags and
3b509e33 7732 ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
287a7d41
L
7733 (override_options): Don't turn on implied SSE/MMX bits in
7734 ix86_isa_flags.
7735
feaffcaa
L
77362008-02-18 H.J. Lu <hongjiu.lu@intel.com>
7737
7738 * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7739 32bit host.
7740
b2ae828d
JY
77412008-02-18 Joey Ye <joey.ye@intel.com>
7742
7743 PR middle-end/34921
7744 * tree-nested.c (insert_field_into_struct): Set type alignment
7745 to field alignment if the former is less than the latter.
7746
8d855c3d
JJ
77472008-02-18 Jakub Jelinek <jakub@redhat.com>
7748
7749 * BASE-VER: Set to 4.4.0.
7750
923158be
RW
77512008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7752
7753 * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
7754 * doc/cfg.texi: Likewise.
7755 * doc/extend.texi: Likewise.
7756 * doc/gty.texi: Likewise.
7757 * doc/invoke.texi: Likewise.
7758 * doc/loop.texi: Likewise.
7759 * doc/md.texi: Likewise.
7760 * doc/passes.texi: Likewise.
7761 * doc/rtl.texi: Likewise.
7762 * doc/sourcebuild.texi: Likewise.
7763 * doc/tm.texi: Likewise.
7764 * doc/tree-ssa.texi: Likewise.
7765
f0a77246
RG
77662008-02-17 Richard Guenther <rguenther@suse.de>
7767
7768 PR middle-end/35227
7769 * tree-complex.c (init_parameter_lattice_values): Handle parameters
7770 without default definition.
7771
e09deb14
RG
77722008-02-17 Richard Guenther <rguenther@suse.de>
7773
7774 PR tree-optimization/35231
7775 * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
7776 if A | B != 1.
7777
e6528d32
UB
77782008-02-17 Uros Bizjak <ubizjak@gmail.com>
7779
7780 Revert:
e6528d32
UB
7781 2008-02-15 Uros Bizjak <ubizjak@gmail.com>
7782 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7783 libgcc_cmp_return mode.
7784
93e052a8
MLI
77852008-02-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7786
7787 PR c/28368
7788 * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
7789
2a49e6f8
RC
77902008-02-16 Ralf Corsepius <ralf.corsepius@rtems.org>
7791
7792 * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
7793 multilibs.
7794
0ee2ea09
RW
77952008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7796
7797 * doc/c-tree.texi: Use `@.' where appropriate.
7798 * doc/extend.texi: Likewise.
7799 * doc/install.texi: Likewise.
7800 * doc/invoke.texi: Likewise.
7801 * doc/loop.texi: Likewise.
7802 * doc/makefile.texi: Likewise.
7803 * doc/md.texi: Likewise.
7804 * doc/passes.texi: Likewise.
7805 * doc/standards.texi: Likewise.
7806 * doc/tm.texi: Likewise.
7807
ac84c062
JJ
78082008-02-15 Jakub Jelinek <jakub@redhat.com>
7809
7810 PR middle-end/35196
7811 * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
7812 in entry_bb.
7813 (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
7814 rather than in entry_bb.
7815
6a9e8571
UB
78162008-02-15 Uros Bizjak <ubizjak@gmail.com>
7817
7818 * config/i386/sfp-machine.h (CMPtype): Define as typedef using
7819 libgcc_cmp_return mode.
7820
6837b3b8
JJ
78212008-02-15 Jakub Jelinek <jakub@redhat.com>
7822
7823 PR middle-end/35130
7824 * tree-nested.c (convert_call_expr): Put FRAME.* vars into
7825 OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
7826
2e58df6e 78272008-02-15 Richard Guenther <rguenther@suse.de>
6a9e8571 7828 Zdenek Dvorak <ook@ucw.cz>
2e58df6e
RG
7829
7830 PR tree-optimization/35164
7831 * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
7832 * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
7833 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7834 Only propagate addresses which do not have abnormal SSA_NAMEs
7835 in their operands.
7836
206598fb
JM
78372008-02-15 Joseph Myers <joseph@codesourcery.com>
7838
7839 PR target/35088
7840 * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
7841
18168b3f
JH
78422008-02-15 Jan Hubicka <jh@suse.cz>
7843
7844 PR middle-end/35149
7845 * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
7846
6f6b8f81
UB
78472008-02-15 Uros Bizjak <ubizjak@gmail.com>
7848
7849 PR middle-end/34621
7850 * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
7851 when calculating alignment_pad.
7852
979c67a5
UB
78532008-02-15 Uros Bizjak <ubizjak@gmail.com>
7854
7855 * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
7856 (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
7857 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
7858 and STACK_BOUNDARY define.
7859
101e174d
DS
78602008-02-14 Danny Smith <dannysmith@users.sourceforge.net>
7861
7862 PR preprocessor/35061
7863 * c-pragma.c (handle_pragma_pop_macro): Check that
7864 pushed_macro_table has been allocated.
7865
928bc34f
EB
78662008-02-14 Eric Botcazou <ebotcazou@adacore.com>
7867
7868 PR middle-end/35136
7869 * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
7870 (force_gimple_operand): Likewise.
7871 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
7872 for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
7873 Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
7874 (find_interesting_uses_address): Check addressability and alignment
7875 of the base expression only after substituting bases of IVs into it.
7876
a5bfb13a
MM
78772008-02-14 Michael Matz <matz@suse.de>
7878
7879 PR target/34930
7880 * function.c (instantiate_virtual_regs_in_insn): Reload address
7881 before falling back to reloading the whole operand.
7882
b49326f1
AK
78832008-02-14 Andreas Krebbel <krebbel1@de.ibm.com>
7884
7885 * config/s390/s390.c (s390_mainpool_start): Emit the pool
7886 before the first section switch note.
7887
021efafc
RW
78882008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7889
346341a4
RW
7890 * doc/bugreport.texi: Update copyright years.
7891 * doc/c-tree.texi: Likewise.
7892 * doc/cfg.texi: Likewise.
7893 * doc/cpp.texi: Likewise.
7894 * doc/cppinternals.texi: Likewise.
7895 * doc/fragments.texi: Likewise.
7896 * doc/frontends.texi: Likewise.
7897 * doc/gcc.texi: Likewise.
7898 * doc/gty.texi: Likewise.
7899 * doc/hostconfig.texi: Likewise.
7900 * doc/implement-c.texi: Likewise.
7901 * doc/libgcc.texi: Likewise.
7902 * doc/loop.texi: Likewise.
7903 * doc/makefile.texi: Likewise.
7904 * doc/options.texi: Likewise.
7905 * doc/passes.texi: Likewise.
7906 * doc/rtl.texi: Likewise.
7907 * doc/sourcebuild.texi: Likewise.
7908 * doc/standards.texi: Likewise.
7909 * doc/tree-ssa.texi: Likewise.
7910 * doc/trouble.texi: Likewise.
7911
021efafc
RW
7912 * doc/extend.texi: Use @: or add comma where appropriate.
7913 * doc/invoke.texi: Likewise.
7914 * doc/tm.texi: Likewise.
7915
583da60a
AM
79162008-02-14 Alan Modra <amodra@bigpond.net.au>
7917
7918 PR target/34393
7919 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
7920 to a reg.
7921
2a6627c2
JN
79222008-02-14 Jesper Nilsson <jesper.nilsson@axis.com>
7923
7924 * doc/md.texi (clz, ctz): Add reference.
7925 * doc/rtl.texi (clz, ctz): Likewise.
7926
1b0c753a
RW
79272008-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7928
7929 PR other/35148
7930 * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
7931 srcdir.
7932
03870a04
AK
79332008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
7934
7935 * config/s390/s390.c (struct constant_pool): New field
7936 emit_pool_after added.
7937 (s390_mainpool_start): Set the emit_pool_after flag according
7938 to the section switch notes.
7939 (s390_mainpool_finish): Consider emit_pool_after when emitting
7940 the literal pool at the end of the function.
7941 (s390_chunkify_start): Force literal pool splits at section
7942 switch notes.
7943
be71b673
MM
79442008-02-13 Michael Matz <matz@suse.de>
7945
7946 PR debug/35065
7947 * var-tracking.c (clobber_variable_part): Correctly traverse the
7948 list.
7949
fed39e22
MLI
79502008-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7951
7952 PR 29673
7953 * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
7954 Add -fdump-ipa-inline.
7955 * tree-dump.c (dump_files): Remove tree-inlined dump.
7956 * tree-pass.h (tree_dump_index): Remove TDI_inlined.
7957
8665227f
RG
79582008-02-12 Richard Guenther <rguenther@suse.de>
7959
7960 PR tree-optimization/35171
7961 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
7962 default defs.
7963
8f768a5a
RG
79642008-02-12 Richard Guenther <rguenther@suse.de>
7965
7966 PR middle-end/35163
7967 * fold-const.c (fold_widened_comparison): Use get_unwidened in
7968 value-preserving mode. Disallow final truncation.
7969
81186f7b
EB
79702008-02-12 Eric Botcazou <ebotcazou@adacore.com>
7971
7972 PR middle-end/35136
7973 * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
7974 code from here to...
7975 (force_gimple_operand): ...here.
7976
d7b8033f
JJ
79772008-02-12 Jakub Jelinek <jakub@redhat.com>
7978
e4521d11
JJ
7979 PR c++/35144
7980 * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
7981 non-compatible pointers.
7982 (generate_element_copy): If SRC and DST are RECORD_TYPEs with
7983 different FIELD_DECLs, try harder by comparing field offsets, sizes
7984 and types.
7985
d7b8033f
JJ
7986 PR inline-asm/35160
7987 * function.c (match_asm_constraints_1): Don't replace the same input
7988 multiple times.
7989
d6f77715
AS
79902008-02-12 Anatoly Sokolov <aesok@post.ru>
7991
7992 * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
7993 * config/avr/avr.c (expand_prologue): Save RAMPZ register.
7994 (expand_epilogue): Restore RAMPZ register.
7995 * config/avr/avr.md (RAMPZ_ADDR): New constant.
7996
35b35fd0
KT
79972008-02-11 Kai Tietz <kai.tietz@onevision.com>
7998
40049ccc 7999 * config/i386/cygwin.asm: (__alloca): Correct calling
35b35fd0
KT
8000 convention and alignment.
8001 (__chkstk): Force 8 byte stack alignment.
8002
a6e2d112 80032008-02-11 Uros Bizjak <ubizjak@gmail.com>
f8c5cff4 8004 Richard Guenther <rguenther@suse.de>
a6e2d112
UB
8005
8006 PR tree-optimization/33992
8007 * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
8008 the zero we compare against.
8009
40049ccc
UB
80102008-02-10 Danny Smith <dannysmith@users.sourceforge.net>
8011
8012 PR libfortran/35063
8013 * gthr-win32.h (__gthread_mutex_destroy_function): New function
8014 to CloseHandle after unlocking to prevent accumulation of handle
8015 count.
8016
4d811a05
JDA
80172008-02-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8018
8019 PR middle_end/34150
8020 * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
8021 pic_label_operand source. Similarly, add a REG_LABEL_OPERAND note
8022 and update LABEL_NUSES during and after reload.
8023
e37f6a49
SB
80242008-02-08 Steven Bosscher <stevenb.gcc@gmail.com>
8025
8026 PR middle-end/34627
a3395528 8027 * combine.c (simplify_if_then_else): Make sure the comparison is
e37f6a49
SB
8028 against const0_rtx when simplifying to (abs x) or (neg (abs X)).
8029
34917a10
RS
80302008-02-08 Richard Sandiford <rsandifo@nildram.co.uk>
8031
8032 PR bootstrap/35051
8033 * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
8034 (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
8035 * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
8036 (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
8037 * tree.h (get_type_static_bounds): Likewise.
8038
670b0231
RW
80392008-02-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8040
8041 * doc/invoke.texi (Option Summary, C++ Dialect Options)
8042 (Objective-C and Objective-C++ Dialect Options, Warning Options):
8043 Make -Wfoo language annotations match what the compiler outputs.
8044
069c47ee
SL
80452008-02-08 Sa Liu <saliu@de.ibm.com>
8046
8047 * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
8048 intrinsics spu_convts, spu_convtu, spu_convtf.
069c47ee 8049
ccd2a21e
HPN
80502008-02-08 Hans-Peter Nilsson <hp@axis.com>
8051
8052 * doc/extend.texi (Function Attributes) <noinline>: Mention
8053 asm ("") as method to keep calls.
8054
af47e6ac
MLI
80552008-02-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8056
8057 PR other/32754
8058 * doc/options.texi (Options): Replace references to opts.sh with
8059 optc-gen.awk.
8060 * opts-common.c: Likewise.
8061 * optc-gen.awk: Likewise.
8062
96e2afa8
AK
80632008-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
8064
8065 * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
8066
80672008-02-07 Richard Henderson <rth@redhat.com>
32891ff6
RH
8068
8069 PR rtl-opt/33410
8070 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
8071 EXPR_LIST for the REG_EQUAL instead of a comparison with a
8072 funny mode.
8073
c4ae80d9
UB
80742008-02-07 Uros Bizjak <ubizjak@gmail.com>
8075
8076 PR tree-optimization/35085
8077 * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
8078 for operand entry oe2 in addition to operand entry oe3 in order to
8079 expose more opportunities for vectorizer sum reduction.
8080
72fb133f
KG
80812008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8082
8083 PR other/35107
8084 * Makefile.in (LIBS): Remove $(GMPLIBS).
8085 (cc1-dummy, cc1): Add $(GMPLIBS).
8086
20a415f8
JH
80872008-02-06 Jan Hubicka <jh@suse.cz>
8088
88b089d5 8089 PR target/23322
20a415f8
JH
8090 * i386.md (moddf_integer): Do not produce partial memory stalls for
8091 targets where it hurts.
8092
cc8d36a1
UB
80932008-02-06 Uros Bizjak <ubizjak@gmail.com>
8094
8095 PR target/35083
8096 * optabs.c (expand_float): Do not check for decimal modes when
8097 expanding unsigned integer through signed conversion.
8098
2ccd9cb2
NC
80992008-02-06 Nick Clifton <nickc@redhat.com>
8100
8101 * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
8102 inside the clobber with a match_operand and duplicated operand
8103 number in the constraint.
8104 (ineqbranchsi): Delete redundant comment.
8105
ecb2366e
RC
81062008-02-06 Ralf Corsepius <ralf.corsepius@rtems.org>
8107
448b96d0
RC
8108 * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
8109 builtin_define ("__USE_INIT_FINI__").
8110 * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
8111 -msx multilibs.
ecb2366e
RC
8112 * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
8113
ccd4e386
RW
81142008-02-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8115
8116 PR documentation/30330
8117 * doc/invoke.texi (C++ Dialect Options)
8118 (Objective-C and Objective-C++ Dialect Options, Warning Options):
8119 For each warning option -Wfoo that allows -Wno-foo, ensure both
8120 -Wfoo and -Wno-foo are listed in the option index. Fix index
8121 entry of -Wswitch-default, index -Wnormalized= including the
8122 `=', and -Wlarger-than-@var{len} including @var{len}.
8123
def7425b
UB
81242008-02-05 Uros Bizjak <ubizjak@gmail.com>
8125
8126 * config/i386/i386.md (floatunssisf2): Use
8127 ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
8128 (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
8129 Macroize expander using MODEF mode iterator.
8130
c1e7d240
DN
81312008-02-05 Diego Novillo <dnovillo@google.com>
8132
8133 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
8134
8135 PR 33738
def7425b 8136 * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
c1e7d240 8137
3a204175
KG
81382008-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8139
8140 PR other/35070
8141 * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
8142
7074bc2e
L
81432008-02-05 H.J. Lu <hongjiu.lu@intel.com>
8144
8145 PR target/35084
8146 * config/i386/i386.c (ix86_function_sseregparm): Add an arg
8147 to indicate if a message should be generated.
8148 (init_cumulative_args): Updated.
8149 (function_value_32): Likewise.
8150
0f5098ae
JM
81512008-02-05 Joseph Myers <joseph@codesourcery.com>
8152
8153 * doc/include/texinfo.tex: Update to version 2008-02-04.16.
8154
4a534152
UB
81552008-02-05 Uros Bizjak <ubizjak@gmail.com>
8156
8157 PR target/35083
8158 * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
8159 Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
8160
3467b230
DN
81612008-02-04 Diego Novillo <dnovillo@google.com>
8162
8163 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
8164
8165 PR 33738
8166 * tree-vrp.c (vrp_evaluate_conditional): With
8167 -Wtype-limits, emit a warning when comparing against a
8168 constant outside the natural range of OP0's type.
8169
22199fd2
RG
81702008-02-04 Richard Guenther <rguenther@suse.de>
8171
8172 PR middle-end/33631
8173 * expr.c (count_type_elements): Give for unions instead of
8174 guessing.
8175
1a1640db
RG
81762008-02-04 Richard Guenther <rguenther@suse.de>
8177
8178 PR middle-end/35043
8179 * gimplify.c (gimplify_init_ctor_eval): Convert array indices
8180 to TYPE_DOMAINs base type instead of using bitsizetype here.
8181
0fcedd9c
JM
81822008-02-03 Jason Merrill <jason@redhat.com>
8183
8184 * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
8185
a31cfd58
RW
81862008-02-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8187
8188 PR other/29972
8189 * doc/invoke.texi (C++ Dialect Options, Optimize Options)
8190 (HPPA Options, i386 and x86-64 Options, IA-64 Options)
8191 (RS/6000 and PowerPC Options): Fix typos and markup.
8192 * doc/passes.texi (Tree-SSA passes): Likewise.
8193
6994f254
MM
81942008-02-02 Michael Matz <matz@suse.de>
8195
8196 PR target/35045
8197 * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
8198 from record_last_reg_set_info.
8199 (record_last_reg_set_info): Take an RTX argument, iterate over all
8200 constituent hardregs.
8201 (record_last_set_info, record_opr_changes): Change calls to
8202 new signature or to record_last_reg_set_info_regno.
8203
27f56cb1
GP
82042008-02-02 Gerald Pfeifer <gerald@pfeifer.com>
8205
8206 * doc/extend.texi (X86 Built-in Functions): Fix grammar.
8207
3e836a31
HPN
82082008-02-01 Hans-Peter Nilsson <hp@axis.com>
8209
8210 PR rtl-optimization/34773
8211 * reg-notes.def (EQUAL): Mention significance of combination of
8212 REG_EQUAL and REG_RETVAL.
8213 * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
8214 insn that has a REG_RETVAL.
8215
d5be1dd4
RS
82162008-02-01 Roger Sayle <roger@eyesopen.com>
8217
8218 PR bootstrap/33781
8219 * configure.ac (--enable-fixed-point): Disable unless explicitly
8220 requested on IRIX.
8221 * configure: Regenerate.
8222
7c9c2f2a
RG
82232008-02-01 Richard Guenther <rguenther@suse.de>
8224
8225 PR other/35042
8226 * invoke.texi (-finline-limit): Remove no longer true parts
8227 of the documentation. Note that there is no default value.
8228
a18c20ec
AP
82292008-02-01 Andrew Pinski <pinskia@gmail.com>
8230 Mark Mitchell <mark@codesourcery.com>
8231 Ben Elliston <bje@au.ibm.com>
8232
8233 PR c/29326
8234 * doc/extend.texi (Other Builtins): Document.
8235
dc9a511d
TB
82362008-01-31 Tom Browder <tom.browder@gmail.com>
8237
8238 * doc/c-tree.texi (Types): Fix grammar.
8239 (Expression trees): Ditto.
8240 * doc/passes.texi (Tree-SSA passes): Ditto.
8241
8242 * doc/configterms.texi (Configure Terms): Fix typo.
8243 * doc/cpp.texi (Common Predefined Macros): Ditto.
8244 * doc/md.texi (Machine Constraints): Ditto.
8245
8246 * doc/makefile.texi (Makefile): Add comma.
8247
5dc81ee9
TB
82482008-01-31 Tom Browder <tom.browder@gmail.com>
8249 Gerald Pfeifer <gerald@pfeifer.com>
8250
8251 * doc/sourcebuild.texi (Front End): Remove references to CVS
8252 and CVSROOT/modules.
8253 (Texinfo Manuals): Replace reference to CVS by one to SVN.
8254 (Back End): Remove reference to CVS.
8255
5ca3d30c
RS
82562008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
8257
8258 PR target/34900
8259 * config/mips/mips.c (gen_load_const_gp): New function, taking a
8260 comment from...
8261 (mips16_gp_pseudo_reg): ...here.
8262 * config/mips/mips.md (load_const_gp): Replace with...
8263 (load_const_gp_<mode>): ...this :P-based insn.
8264
89fe7f1b
MLI
82652008-01-31 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8266
8267 * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
8268 options. Minor fixes.
8269 (-std): Move reference to standards closer to where language
8270 standards are first mentioned.
8271
1f7f6676
RS
82722008-01-31 Richard Sandiford <rsandifo@nildram.co.uk>
8273
8274 PR rtl-optimization/34995
8275 * reload.c (alternative_allows_const_pool_ref): Take an rtx
8276 parameter and return a bool. If the rtx parameter is nonnull,
8277 check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
8278 (find_reloads): Update call accordingly. Pass the new operand
8279 if it needed no address reloads, otherwise pass null.
8280
2ae7b972
RH
82812008-01-30 Richard Henderson <rth@redhat.com>
8282
8283 PR c/34993
8284 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
8285 for unbounded arrays.
8286
493f36a7
SR
82872008-01-30 Silvius Rus <rus@google.com>
8288
8289 * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
8290
d6951cae
JH
82912008-01-30 Jan Hubicka <jh@suse.cz>
8292
8293 PR target/34982
8294 * i386.c (init_cumulative_args): Use real function declaration when
8295 calling locally.
8296
f36a5a88
RS
82972008-01-30 Richard Sandiford <rsandifo@nildram.co.uk>
8298
8299 PR rtl-optimization/34998
8300 * global.c (build_insn_chain): Treat non-subreg_lowpart
8301 SUBREGs of pseudos as clobbering all the words covered by the
8302 SUBREG, not just all the bytes.
8303 * ra-conflict.c (clear_reg_in_live): Likewise. Take the
8304 original df_ref rather than an extract parameter.
8305 (global_conflicts): Update call accordingly.
8306
393c0058
AK
83072008-01-30 Andreas Krebbel <krebbel1@de.ibm.com>
8308
8309 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
8310 the overflow check to make it easier to read.
8311 (__fixtfdi): Change the type of the ll member in union
8312 long_double to UDItype_x.
8313
1033ffa8
JJ
83142008-01-30 Jakub Jelinek <jakub@redhat.com>
8315
2bafad93
JJ
8316 PR middle-end/34969
8317 * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
8318 * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
8319 * tree-inline.c (fold_marked_statements): Call
8320 cgraph_update_edges_for_call_stmt if folding a call statement.
8321 * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
8322 debug_generic_stmt calls, reset it back afterwards.
8323
1033ffa8
JJ
8324 PR c/35017
8325 * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
8326 static decls.
8327 * c-typeck.c (build_external_ref): Don't pedwarn about
8328 static vars in current function's scope.
8329
ed32d842
JM
83302008-01-29 Joseph Myers <joseph@codesourcery.com>
8331
8332 * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
8333
ea429753
BF
83342008-01-29 Bernhard Fischer <aldot@gcc.gnu.org>
8335
8336 PR c/35002
8337 * ipa-struct-reorg.c: Fix spelling.
8338 * params.def: Ditto.
8339
4f5c64b8
RG
83402008-01-29 Richard Guenther <rguenther@suse.de>
8341
8342 PR middle-end/35006
8343 * tree-inline.h (struct copy_body_data): Add remapping_type_depth
8344 field.
8345 * tree-inline.c (remap_type): Increment remapping_type_depth
8346 around remapping types.
8347 (copy_body_r): Only add referenced variables if they are referenced
8348 from code, not types.
8349
7b3e2d46
DG
83502008-01-29 Douglas Gregor <doug.gregor@gmail.com>
8351
8352 PR c++/34055
8353 PR c++/34103
8354 PR c++/34219
8355 PR c++/34606
8356 PR c++/34753
8357 PR c++/34754
8358 PR c++/34755
8359 PR c++/34919
8360 PR c++/34961
8361 * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
8362 qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
8363
12720317
AH
83642008-01-28 Andy Hutchinson <hutchinsonandy@netscape.net>
8365
8366 PR target/34412
8367 * config/avr/avr.c (expand_prologue): Use correct QI mode frame
8368 pointer for tiny stack.
8369
b814cc0a
BF
83702008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
8371
8372 * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
8373
f46ff798
BF
83742008-01-28 Bernhard Fischer <aldot@gcc.gnu.org>
8375
8376 * config/vx-common.h: Fix typo in comment.
8377
e8b0eabc
ILT
83782008-01-28 Ian Lance Taylor <iant@google.com>
8379
8380 PR c++/34862
8381 PR c++/33407
8382 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
8383 coalesce pointers if they have different DECL_NO_TBAA_P values.
8384 * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
8385 between variables with different DECL_NO_TBAA_P values.
8386
2aa42e6e
NF
83872008-01-28 Nathan Froyd <froydnj@codesourcery.com>
8388
8389 PR 31535
8390 * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
8391 are not legitimate small data references on SPE targets.
8392
4e2e9e9b
DD
83932008-01-28 David Daney <ddaney@avtrex.com>
8394
8395 * doc/install.texi (mips-*-*): Recommend binutils 2.18.
8396
a26c7632
DD
83972008-01-28 David Daney <ddaney@avtrex.com>
8398
8399 * doc/install.texi (--disable-libgcj-bc): Reword documentation.
8400
4f605349
JM
84012008-01-27 Joseph Myers <joseph@codesourcery.com>
8402
8403 * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
8404 m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
8405 *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
8406 *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
8407 hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
8408 i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
8409 i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
8410 vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
8411
9e148d6a
BF
84122008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
8413
8414 * basic-block.h (condjump_equiv_p): Fix comment.
8415
f749d3c6
BF
84162008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
8417
8418 * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
8419 print_generic_stmt_indented): Fix comment.
8420
fed6d628
BF
84212008-01-27 Bernhard Fischer <aldot@gcc.gnu.org>
8422
8423 * configure.ac (__stack_chk_fail): Add detecion for availability
8424 of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
8425 * configure: Regenerate.
8426
c01e4479
MK
84272008-01-26 Maxim Kuvyrkov <maxim@codesourcery.com>
8428
8429 PR middle-end/34688
8430 * final.c (output_addr_const): Handle TRUNCATE.
8431
6e8c65f6
ZD
84322008-01-26 Zdenek Dvorak <ook@ucw.cz>
8433
8434 PR target/34711
8435 * tree-ssa-loop-ivopts.c (comp_cost): New type.
8436 (zero_cost, infinite_cost): New constants.
8437 (struct cost_pair): Change type of cost to comp_cost.
8438 (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
8439 (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
8440 New functions.
8441 (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
8442 split_address_cost, ptr_difference_cost, difference_cost,
8443 get_computation_cost_at, get_computation_cost,
8444 determine_use_iv_cost_generic, determine_use_iv_cost_address,
8445 determine_use_iv_cost_condition, determine_use_iv_costs,
8446 cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
8447 iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
8448 iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
8449 Change type of cost to comp_cost.
8450 (determine_iv_cost): Increase cost of non-original ivs, instead
8451 of decreasing the cost of original ones.
8452 (get_address_cost): Indicate the complexity of the addressing mode
8453 in comp_cost.
8454 (try_add_cand_for): Prefer using ivs not specific to some object.
8455 * tree-flow.h (force_expr_to_var_cost): Declaration removed.
8456
c01e4479 84572008-01-26 Peter Bergner <bergner@vnet.ibm.com>
e41b2a33
PB
8458 Janis Johnson <janis187@us.ibm.com>
8459
8460 PR target/34814
8461 * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
8462 (TARGET_INSTANTIATE_DECLS): Likewise.
8463 * target.h (expand_to_rtl_hook): New target hook.
8464 (instantiate_decls): Likewise.
8465 * function.c (instantiate_decl): Make non-static. Rename to...
8466 (instantiate_decl_rtl): ... this.
8467 (instantiate_expr): Use instantiate_decl_rtl.
8468 (instantiate_decls_1): Likewise.
8469 (instantiate_decls): Likewise.
8470 (instantiate_virtual_regs: Call new instantiate_decls taget hook.
8471 * function.h (instantiate_decl_rtl): Add prototype.
8472 * cfgexpand.c (target.h): New include.
8473 (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
8474 * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
8475 (TARGET_INSTANTIATE_DECLS): Likewise.
8476 (TARGET_INITIALIZER): New target hooks added.
8477 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
8478 New prototype.
8479 * config/rs6000/rs6000.c (tree-flow.h): New include.
8480 (machine_function): Add sdmode_stack_slot field.
8481 (rs6000_alloc_sdmode_stack_slot): New function.
8482 (rs6000_instantiate_decls): Likewise.
8483 (rs6000_secondary_memory_needed_rtx): Likewise.
8484 (rs6000_check_sdmode): Likewise.
8485 (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
8486 (TARGET_INSTANTIATE_DECLS): Likewise.
8487 (rs6000_hard_regno_mode_ok): Allow SDmode.
8488 (num_insns_constant): Likewise. Handle _Decimal32 constants.
8489 (rs6000_emit_move): Handle SDmode.
8490 (function_arg_advance): Likewise.
8491 (function_arg): Likewise.
8492 (rs6000_gimplify_va_arg): Likewise. Add special handling of
8493 SDmode var args for 32-bit compiles.
8494 (rs6000_secondary_reload_class): Handle SDmode.
8495 (rs6000_output_function_epilogue): Likewise.
8496 (rs6000_function_value): Simplify if statement.
8497 (rs6000_libcall_value): Likewise.
8498 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
8499 (SECONDARY_MEMORY_NEEDED_RTX): Add define.
8500 * config/rs6000/dfp.md (movsd): New define_expand and splitter.
8501 (movsd_hardfloat): New define_insn.
8502 (movsd_softfloat): Likewise.
8503 (movsd_store): Likewise.
8504 (movsd_load): Likewise.
8505 (extendsddd2): Likewise.
8506 (extendsdtd2): Likewise.
8507 (truncddsd2): Likewise.
8508 (movdd_hardfloat64): Fixup comment.
8509 (UNSPEC_MOVSD_LOAD): New constant.
8510 (UNSPEC_MOVSD_STORE): Likewise.
8511
6f536f74
JJ
85122008-01-26 Jakub Jelinek <jakub@redhat.com>
8513
8514 PR c++/34965
8515 * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
8516 TRUTH_XOR_EXPR.
8517 (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
8518 (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
8519 (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
8520 and TRUTH_XOR_EXPR.
8521
ba6a1b78
DE
85222008-01-26 David Edelsohn <edelsohn@gnu.org>
8523
8524 PR target/34794
8525 * config.gcc: Separate AIX 5.3 from AIX 6.1.
8526 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8527 __LONGDOUBLE128 too.
8528 * config/rs6000/aix61.h: New file.
8529
1230d7f8
RS
85302008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
8531
8532 PR rtl-optimization/34959
8533 * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
8534 popcount and parity rtxes the same mode as their operand.
8535 Truncate or extend the result to the return value's mode
8536 if necessary.
8537
dbc90b65
RS
85382008-01-26 Richard Sandiford <rsandifo@nildram.co.uk>
8539
8540 PR target/34981
8541 * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
8542 * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
8543 to GOT_VERSION_REGNUM.
8544 (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
8545 (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
8546 * config/mips/mips.c (mips_emit_call_insn): New function.
8547 (mips_call_tls_get_addr): Call mips_expand_call directly.
8548 (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
8549 emit_call_insn.
8550 (mips16_build_call_stub): Likewise. Return the call insn or null.
8551 (mips_expand_call): Update the call to mips16_build_call_stub
8552 accordingly and a remove redundant condition. Assert that MIPS16
8553 stubs do not use lazy binding. Use mips_emit_call_insn and return
8554 the call insn.
8555 (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
8556 TARGET_USE_GOT.
8557 (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
8558 (mips_avoid_hazard): Remove hazard_set handling.
8559 * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
8560 (UNSPEC_RESTORE_GP): ...this.
8561 (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
8562 (FAKE_CALL_REGNO): Rename to...
8563 (GOT_VERSION_REGNUM): ...this.
8564 (type): Add "ghost" value. Add an associated insn reservation.
8565 (hazard_set): Remove.
8566 (exception_receiver): Rename to...
8567 (restore_gp): ...this and update the unspec identifier accordingly.
8568 (exception_receiver, nonlocal_got_receiver): New expanders.
8569 (load_call<mode>): Use GOT_VERSION_REGNUM. Don't set
8570 FAKE_CALL_REGNO. Remove hazard_set attribute.
8571 (set_got_version, update_got_version): New patterns.
8572
763a27ee
DS
85732008-01-26 Danny Smith <dannysmith@users.sourceforge.net>
8574
8575 PR target/34970
8576 * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
8577
3725c0ca
JM
85782008-01-25 Joseph Myers <joseph@codesourcery.com>
8579
8580 PR other/31955
8581 * doc/install.texi2html: Generate gcc-vers.texi.
8582
0288980f
DD
85832008-01-25 DJ Delorie <dj@redhat.com>
8584
8585 * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
8586
8d8da227
JM
85872008-01-25 Joseph Myers <joseph@codesourcery.com>
8588
8589 * config/c4x: Remove directory.
8590 * config.gcc (crx-*, mt-*): Mark obsolete.
8591 (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
8592 h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
8593 sh-*-rtemscoff*): Remove cases.
8594 * defaults.h (C4X_FLOAT_FORMAT): Remove.
8595 * real.c (encode_c4x_single, decode_c4x_single,
8596 encode_c4x_extended, decode_c4x_extended, c4x_single_format,
8597 c4x_extended_format): Remove.
8598 * real.h (c4x_single_format, c4x_extended_format): Remove.
8599 * doc/extend.texi (interrupt, naked): Remove mention of attributes
8600 on C4x.
8601 (Pragmas): Remove comment about c4x pragmas.
8602 * doc/install.texi (c4x): Remove target-specific instructions.
8603 * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
8604 * doc/md.texi (Machine Constraints): Remove C4x documentation.
8605 * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
8606 refer to C4x source files as examples.
8607 (C4X_FLOAT_FORMAT): Remove documentation.
8608
fb7c3b05
BS
86092008-01-25 Bernd Schmidt <bernd.schmidt@analog.com>
8610
8611 * config/bfin/bfin.c (override_options): Reorder tests so that
8612 flag_pic gets enabled for -msep-data.
8613
dd3b33d7
RG
86142008-01-25 Richard Guenther <rguenther@suse.de>
8615
8616 PR middle-end/32244
8617 * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
8618 to its bitfield precision if required.
8619
c256730c
JJ
86202008-01-25 Jakub Jelinek <jakub@redhat.com>
8621
8622 PR middle-end/33880
8623 * tree-nested.c (walk_omp_for): New function.
8624 (convert_nonlocal_reference, convert_local_reference): Call
8625 walk_omp_for on OMP_FOR.
8626 (convert_call_expr): Call walk_body on OMP_FOR's
8627 OMP_FOR_PRE_INIT_BODY.
8628
59805c3b
RG
86292008-01-25 Richard Guenther <rguenther@suse.de>
8630
8631 PR tree-optimization/34966
8632 * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
8633 default defs and PHI_NODEs we have to insert after the
8634 defining statement.
8635
f84fe9b6
NC
86362008-01-24 Nick Clifton <nickc@redhat.com>
8637
8638 * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
8639 Provide a default definition.
8640 (LIBGCC2_UNITS_PER_WORD): Likewise.
8641
8642 * config/stormy16/stormy16.c: Include df.h for the prototype
8643 for df_regs_ever_live_p.
8644 (xstormy16_expand_builtin_va_start): Convert the stack offset
8645 into a component_ref and then use POINTER_PLUS_EXPR to add it
8646 to the incoming_virtual_args_rtx.
8647 (xstormy16_gimplify_va_arg_expr): Rename to
8648 xstormy16_gimplify_va_arg_expr.
8649 Use POINTER_PLUS_EXPR when performing pointer arithmetic.
8650 (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
8651 xstormy16_gimplify_va_arg_expr.
8652 Fix up some formatting issues.
8653
8654 * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
8655 Move to predicates.md.
8656 (xs_hi_general_operand): Likewise.
8657 (xs_hi_nonmemory_operand): Likewise.
8658 * config/stormy16/predicates.md:
8659 (xstormy16_carry_plus_operand): New predicate.
8660 (xs_hi_general_operand): New predicate.
8661 (xs_hi_nonmemory_operand): New predicate.
8662 * config/stormy16/stormy16-protos.h:
8663 (xstormy16_carry_plus_operand): Delete prototype.
8664 (xs_hi_general_operand): Likewise.
8665 (xs_hi_nonmemory_operand): Likewise.
8666
8667 * config/storm16/stormy16.md (addhi3): Remove earlyclobber
8668 modifiers as they are no longer needed and they can trigger
8669 reload spill failures.
8670
8671 * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
8672 with a match_operand in order to help reload.
8673
8674 * config/storm16/stormy16.md (movhi_internal): Replace 'r'
8675 constraint with 'e' for the 8th alternative as this version of
8676 the mov.w instruction only accepts the lower 8 registers.
8677
d1f0728e
UB
86782008-01-25 Uros Bizjak <ubizjak@gmail.com>
8679
8680 PR target/34856
8681 * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
8682 Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
8683 vector elements.
8684
80e67011
JJ
86852008-01-25 Jakub Jelinek <jakub@redhat.com>
8686
8687 PR middle-end/33333
8688 * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
8689
1525f2c3
GO
86902008-01-25 Golovanevsky Olga <olga@il.ibm.com>
8691
8692 * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
8693 New functions.
8694 (remove_structure): Update allocations list before removing structure.
8695
bd91d743
OG
86962008-01-25 Golovanevsky Olga <olga@il.ibm.com>
8697
8698 * ipa-struct-reorg.c (is_safe_cond_expr,
8699 create_new_stmts_for_cond_expr): Use integer_zerop function,
8700 that recognize not only zero-pointer, but zero-integer too.
8701
ae7a8ebc
BE
87022008-01-25 Ben Elliston <bje@au.ibm.com>
8703
8704 PR other/22232
8705 * fixproto: Escape "." in sed expression that strips leading "./".
8706
3371362c
L
87072008-01-24 H.J. Lu <hongjiu.lu@intel.com>
8708
8709 PR driver/34904
8710 * gcc.c (SWITCH_OK): Removed.
8711 (SWITCH_LIVE): Changed to bit.
8712 (SWITCH_FALSE): Likewise.
8713 (SWITCH_IGNORE): Likewise.
8714 (switchstr): Change live_cond to unsigned int.
8715 (process_command): Replace SWITCH_OK with 0.
8716 (do_self_spec): Likewise.
8717 (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
8718 (give_switch): Likewise.
8719 (used_arg): Likewise.
8720 (do_spec_1): Set the SWITCH_IGNORE bit.
8721 (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
8722 bits. Set the SWITCH_LIVE bit.
8723
5f1b2ee6
AK
87242008-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
8725
8726 * config/s390/s390.h (MOVE_RATIO): Define new target macro.
8727
986d97ed
RS
87282008-01-24 Richard Sandiford <rsandifo@nildram.co.uk>
8729
8730 PR tree-optimization/34472
8731 * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
8732 parameter to a "bool *" and set *DATA to false if there is
8733 an unsafe access. Do not delete the structure here.
8734 (check_cond_exprs): Delete it here instead.
8735 (check_cond_exprs, exclude_cold_structs): Do not increase
8736 I when removing a structure.
8737
fcc44808
UB
87382008-01-24 Uros Bizjak <ubizjak@gmail.com>
8739
8740 PR target/34856
8741 * config/i386/i386.c (ix86_expand_vector_init): Consider only
8742 CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
8743
134c2de3
JJ
87442008-01-24 Jakub Jakub Jelinek <jakub@redhat.com>
8745
8746 PR middle-end/34934
8747 * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
8748 a fixed vector for stack.
8749
89bf8683
BE
87502008-01-24 Ben Elliston <bje@au.ibm.com>
8751
8752 PR c++/25701
8753 * doc/gcc.texi (Software development): Add a direntry for g++.
8754
02a4bca9
HPN
87552008-01-23 Hans-Peter Nilsson <hp@axis.com>
8756
6c660aeb
HPN
8757 * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
8758 stale and straggling -fforce-addr comments above.
8759
02a4bca9
HPN
8760 * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
8761 define.
8762 * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
8763 * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
8764
b4da9f9d
MM
87652008-01-23 Michael Matz <matz@suse.de>
8766
8767 PR debug/34895
8768 * dwarf2out.c (force_type_die): Use modified_type_die instead of
8769 gen_type_die.
8770
1b7af7b0
AK
87712008-01-23 Andreas Krebbel <krebbel1@de.ibm.com>
8772
8773 * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
8774 malloc result type.
8775
19298da4
AS
87762008-01-23 Anatoly Sokolov <aesok@post.ru>
8777
8778 * config/avr/avr.c (avr_current_arch): New variable.
8779 (avr_arch_types): Add 'avr31' and 'avr51' entries.
8780 (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
8781 (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
8782 (avr_override_options): Init 'avr_current_arch'.
8783 (base_arch_s): Move from here...
8784 * config/avr/avr.h (base_arch_s): ... here. Add new members
8785 'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
8786 'mega' to 'have_jmp_call'.
8787 (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
8788 "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
8789 macros.
8790 (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
8791 architectures.
8792 * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8793 MULTILIB_MATCHES): (Ditto.).
8794
b86b3ea3
RG
87952008-01-23 Richard Guenther <rguenther@suse.de>
8796
8797 PR middle-end/31529
8798 * cgraphunit.c (cgraph_reset_node): Always mark the node
8799 not reachable if it is not queued already.
8800
fa8d4a0f
BS
88012008-01-23 Bernd Schmidt <bernd.schmidt@analog.com>
8802
8803 * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
8804 * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
8805 (cputype_selected): New static variable.
8806 (bfin_handle_option): Set it if -mcpu is used.
8807 (override_option): Select default set of workarounds if no cpu type
8808 selected on the command line.
8809 (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
64882649
BS
8810
8811 From Michael Frysinger <michael.frysinger@analog.com>
8812 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
8813 BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
8814
8815 * config/bfin/elf.h (LIB_SPEC): Use proper linker script
8816 for bf547, bf523, bf524, and bf526.
8817 * config/bfin/bfin.c (bfin_cpus[]): Add bf547, bf523, bf524, and
8818 bf526.
8819 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8820 __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
8821 __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
8822 __ADSPBF547__ and __ADSPBF54x__ for bf547.
8823 * doc/invoke.texi (Blackfin Options): Document that
8824 -mcpu now accept bf547, bf523, bf524, and bf526.
8825
df1a98ae
EB
88262008-01-22 Eric Botcazou <ebotcazou@adacore.com>
8827
8828 PR rtl-optimization/34628
8829 * combine.c (try_combine): Stop and undo after the first combination
8830 if an autoincrement side-effect on the first insn has effectively
8831 been lost.
8832
1a23970d
DE
88332008-01-22 David Edelsohn <edelsohn@gnu.org>
8834
8835 PR target/34529
8836 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
8837 Offset addresses are not valid for Altivec or paired float modes.
8838
42a89d2d
JJ
88392008-01-22 Jakub Jelinek <jakub@redhat.com>
8840
61c3a446
JJ
8841 PR c++/34607
8842 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
8843 if DECL_INITIAL (decl) is error_mark_node.
8844
270e749d
JJ
8845 PR c++/34914
8846 * c-common.c (handle_vector_size_attribute): Only allow
8847 integral, scalar float and fixed point types. Handle OFFSET_TYPE
8848 the same way as pointer, array etc. types.
8849 * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
8850
42a89d2d
JJ
8851 PR c++/34917
8852 * tree.c (build_type_attribute_qual_variant): Call
8853 build_qualified_type if attributes are equal, but quals are not.
8854
027b740e
MLI
88552008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8856
8857 PR 32102
8858 * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
8859 * flags.h (warn_strict_aliasing): Remove.
8860 (warn_strict_overflow): Remove.
8861 * opts.c (warn_strict_aliasing): Remove.
8862 (warn_strict_overflow): Remove.
8863 * c-opts.c (c_common_handle_option): -Wall only sets
8864 -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
8865 (c_common_post_options): Give default values to -Wstrict-aliasing
8866 and -Wstrict-overflow if they are uninitialized.
8867 * common.opt (Wstrict-aliasing): Specify Var and Init.
8868 (Wstrict-overflow): Likewise.
8869
4218dc2d 88702008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
963acd6f
KZ
8871
8872 PR rtl-optimization/26854
8873 PR rtl-optimization/34400
8874 PR rtl-optimization/34884
8875 * ddg.c (create_ddg_dep_from_intra_loop_link): Use
8876 DF_RD->gen.
8877 * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
8878 (df_rd_bb_info.expanded_lr_out): Deleted
8879 * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
8880 * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c
8881 (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8882 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8883 Removed code to allocate, initialize or free expanded_lr_out.
8884 (df_rd_bb_local_compute_process_def): Restructured to make more
8885 understandable.
8886 (df_rd_confluence_n): Removed code to no apply invalidate_by_call
8887 sets if the sets are being trimmed.
8888
115e6e55
L
88892008-01-22 H.J. Lu <hongjiu.lu@intel.com>
8890
8891 PR bootstrap/32287
8892 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
8893 (as_vers): Likewise.
8894 * configure: Regenerated.
8895
f9d02384
MLI
88962008-01-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8897
8898 PR middle-end/33092
8899 * tree-pass.h (pass_build_alias): New pass.
8900 * tree-ssa-alias.c (gate_build_alias): New.
8901 (pass_build_alias): New.
8902 * passes.c (init_optimization_passes): Add pass_build_alias after
8903 pass_create_structure_vars.
8904
0387c142
WG
89052008-01-22 Wolfgang Gellerich <gellerich@de.ibm.com>
8906
8907 * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
8908 Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
8909 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
8910 S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
8911 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
8912 S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
8913 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
8914 S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
8915 (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
8916 (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
8917 (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
8918 (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
8919 * config/s390/s390.md (FP_ALL): New mode iterator.
8920 (_d): New mode attribute.
8921 ("*signbit<mode>2>"): Changed mode of first operand.
8922 ("isinf<mode>2"): Changed mode of first operand.
8923 ("*TDC_insn"): Adaptation for DFP modes.
8924
1d4f5374
BE
89252008-01-22 Ben Elliston <bje@au.ibm.com>
8926
8927 * tree.c (check_qualified_type): Improve function description.
8928
33b45227
JM
89292008-01-21 Jason Merrill <jason@redhat.com>
8930
8931 PR c++/34196
8932 * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
8933 * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
8934 if it is set.
8935
79e168da
DD
89362008-01-21 DJ Delorie <dj@redhat.com>
8937
8938 * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
8939 return zero.
8940
bb0c55f6
RG
89412008-01-21 Richard Guenther <rguenther@suse.de>
8942
8943 PR middle-end/34856
8944 * tree-cfg.c (verify_expr): Allow all invariant expressions
8945 instead of just constant class ones as reference argument.
8946 * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
8947 like any other constant.
8948 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8949
94c54fea
L
89502008-01-21 H.J. Lu <hongjiu.lu@intel.com>
8951
8952 * regmove.c (fixup_match_1): Update call crossed frequencies.
8953
c54e3854
RG
89542008-01-21 Richard Guenther <rguenther@suse.de>
8955
8956 PR c/34885
8957 * tree-inline.c (setup_one_parameter): Deal with mismatched
8958 types using a VIEW_CONVERT_EXPR.
8959
b158b5c6
AD
89602008-01-21 Alon Dayan <alond@il.ibm.com>
8961 Olga Golovanevsky <olga@il.ibm.com>
8962
8963 PR tree-optimization/34701
8964 * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
8965 when the structure size is not a power of 2.
8966
4218dc2d 89672008-01-20 Kenneth Zadeck <zadeck@naturalbridge.com>
604f825c
KZ
8968
8969 * doc/install.texi: Add doc for --enable-checking=df.
8970
539c54ba
KK
89712008-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
8972
8973 PR rtl-optimization/34808
8974 * emit-rtl.c (try_split): Handle REG_RETVAL notes.
8975
ecff8c1c
RS
89762008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
8977
8978 * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
8979 input.
8980
4218dc2d 89812008-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
2b49e1a0
KZ
8982
8983 PR rtl-optimization/26854
8984 PR rtl-optimization/34400
8985 * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
8986 DF_RD->gen.
8987 * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
8988 (df_rd_bb_info.expanded_lr_out): New.
8989 * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
8990 * loop_iv.c (iv_analysis_loop_init): Ditto.
8991 * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
8992 df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
8993 Added code to allocate, initialize or free expanded_lr_out.
8994 (df_rd_bb_local_compute_process_def): Restructured to make
8995 more understandable.
8996 (df_rd_confluence_n): Add code to do nothing with fake edges and
8997 code to no apply invalidate_by_call sets if the sets are being trimmed.
8998 (df_lr_local_finalize): Renamed to df_lr_finalize.
8999 (df_live_local_finalize): Renamed to df_live_finalize.
9000
0decaff6
RS
90012008-01-20 Richard Sandiford <rsandifo@nildram.co.uk>
9002
9003 PR target/34831
9004 * config/mips/mips.md (div<mode>3): Use <recip_condition> when
9005 deciding whether to use reciprocal instructions.
9006
d0b9dbd5
UB
90072008-01-19 Uros Bizjak <ubizjak@gmail.com>
9008
9009 * dwarf2out.c (dwarf2out_switch_text_section): Do not call
9010 dwarf2out_note_section_used if cold_text_section is NULL.
9011
135a171d
JJ
90122008-01-19 Jakub Jelinek <jakub@redhat.com>
9013
9014 PR gcov-profile/34610
9015 * tree-cfg.c (make_edges): Mark both outgoing edges from
9016 OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
9017 * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
9018 from OMP_FOR and OMP_CONTINUE outgoing edges.
9019
9020 * tree-profile.c (tree_profiling): Return early if
9021 cfun->after_tree_profile != 0. Set cfun->after_tree_profile
9022 at the end.
9023 * omp-low.c (expand_omp_parallel): Copy after_tree_profile
9024 from cfun to child_cfun.
9025 * function.h (struct function): Add after_tree_profile bit.
9026
0a84fec6
AS
90272008-01-19 Anatoly Sokolov <aesok@post.ru>
9028
9029 * config/avr/avr.S (_exit): Disable interrupt.
9030
5aa52064
KZ
90312008-01-18 Kenneth Zadeck <zadeck@naturalbridge.com>
9032 Steven Bosscher <stevenb.gcc@gmail.com>
9033
9034 PR rtl-optimization/26854
9035 PR rtl-optimization/34400
9036 * df-problems.c (df_live_scratch): New scratch bitmap.
9037 (df_live_alloc): Allocate df_live_scratch when doing df_live.
9038 (df_live_reset): Clear the proper bitmaps.
9039 (df_live_bb_local_compute): Only process the artificial defs once
9040 since the order is not important.
9041 (df_live_init): Init the df_live sets only with the variables
9042 found live by df_lr.
9043 (df_live_transfer_function): Use the df_lr sets to prune the
9044 df_live sets as they are being computed.
9045 (df_live_free): Free df_live_scratch.
9046
28a08168
ILT
90472008-01-18 Ian Lance Taylor <iant@google.com>
9048
9049 * common.opt: Add fmerge-debug-strings.
9050 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
9051 flag_merge_debug_strings rather than flag_merge_constants.
9052 * doc/invoke.texi (Option Summary): Mention
9053 -fmerge-debug-strings.
9054 (Debugging Options): Document -fmerge-debug-strings.
9055
1ea193c2
ILT
90562008-01-18 Ian Lance Taylor <iant@google.com>
9057
9058 PR c++/33407
9059 * tree.h (DECL_IS_OPERATOR_NEW): Define.
9060 (struct tree_function_decl): Add new field operator_new_flag.
9061 * tree-inline.c (expand_call_inline): When inlining a call to
9062 operator new, force the return value to go into a variable, and
9063 set DECL_NO_TBAA_P on that variable.
9064 * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
9065
74ab34d3
UB
90662008-01-18 Uros Bizjak <ubizjak@gmail.com>
9067
9068 PR debug/34484
9069 * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
9070 DWARF2_DEBUGGING_INFO.
9071 (dwarf2out_note_section_used): Ditto. Add prototype.
9072 (have_multiple_function_sections, text_section_used,
9073 cold_text_section_used, *cold_text_sections): Move declarations
9074 before their uses.
9075
9a75e92d 90762008-01-17 Bob Wilson <bob.wilson@acm.org>
6c633d45
BW
9077
9078 * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
9079 field and add signal_ra.
9080 * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
9081 assignments to frame state pc. Move end of stack check after
9082 MD_FALLBACK_FRAME_STATE_FOR.
9083 (uw_update_context_1): Use frame state signal_regs if set, instead
9084 of checking signal_frame flag.
9085 (uw_update_context): Use frame state signal_ra if set.
9086 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
9087 * config/xtensa/linux-unwind.h: New file.
9088
9a75e92d 90892008-01-18 Bernhard Fischer <aldot@gcc.gnu.org>
4117d6f7
BF
9090
9091 * modulo-sched.c (get_sched_window): Fix comment typo.
9092
fae25b37
AM
90932008-01-17 Andrew MacLeod <amacleod@redhat.com>
9094
9095 PR tree-optimization/34648
9096 * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
9097
2e152e16
AS
90982008-01-17 Anatoly Sokolov <aesok@post.ru>
9099
9100 * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
9101 * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
9102
185082a7
SP
91032008-01-17 Seongbae Park <seongbae.park@gmail.com>
9104
9105 PR rtl-optimization/34400
9106 * df-core.c (df_worklist_dataflow_overeager,
9107 df_worklist_dataflow_doublequeue): New functions.
9108 (df_worklist_dataflow): Two different worklist solvers.
9109 * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
9110 New param.
9111
01a550c2
SP
91122008-01-16 Sebastian Pop <sebastian.pop@amd.com>
9113
9114 PR testsuite/34821
9115 * doc/invoke.texi: Document the dependence on pthread for fopenmp
9116 and ftree-parallelize-loops.
9117
80663107
MN
91182008-01-17 Mircea Namolaru <namolaru@il.ibm.com>
9119
9120 PR rtl-optimization/34826
9121 * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
9122
599824d2
AK
91232008-01-17 Andreas Krebbel <krebbel1@de.ibm.com>
9124
9125 * global.c (find_reg): Mark the eh regs as used if necessary.
9126 * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
9127 * ra.h (struct allocno): no_eh_reg field added. Changed
9128 no_stack_reg type to bitfield.
9129
9328dd57
EB
91302008-01-17 Eric Botcazou <ebotcazou@adacore.com>
9131
9132 * tree.c (substitute_in_expr): Add missing 'break'.
9133
8a5b57cd
RG
91342008-01-17 Richard Guenther <rguenther@suse.de>
9135
9136 PR tree-optimization/34825
9137 * tree-ssa-math-opts.c (is_division_by): Do not recognize
9138 x / x as division to handle.
9139
e7ce29e7
JDA
91402008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9141
9142 * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
9143 "-pthread" is specified.
9144 * pa-hpux11.h (LIB_SPEC): Likewise.
9145
9a75e92d 91462008-01-16 Janis Johnson <janis187@us.ibm.com>
37b87a3a
JJ
9147 Peter Bergner <bergner@vnet.ibm.com>
9148
9149 PR rtl-optimization/33796
9150 * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
9151
6595ec51
JDA
91522008-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9153
9154 PR libgfortran/34699
9155 * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
9156 static links.
9157 * pa-hpux10.h (LINK_SPEC): Likewise.
9158 * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
9159
bdb55eae
RG
91602008-01-16 Richard Guenther <rguenther@suse.de>
9161
9162 PR middle-end/32628
9163 * fold-const.c (fold_convert_const_int_from_int): Do not
9164 set overflow if that occured only because of a sign extension
9165 change when converting from/to a sizetype with the same
9166 precision and signedness.
9167
2e2c7ce2
UB
91682008-01-16 Uros Bizjak <ubizjak@gmail.com>
9169
9170 PR debug/34249
9171 * dwarf2out.c (output_call_frame_info): Move output of FDE initial
9172 location address to the correct place. Update copyright year.
9173
d49c149d
SP
91742008-01-16 Sebastian Pop <sebastian.pop@amd.com>
9175
9176 * lambda-code.c (lambda_transform_legal_p): Handle the case of
9177 no dependences in the dependence_relations vector.
9178
a03c6d64
JH
91792008-01-16 Jan Hubicka <jh@suse.cz>
9180
9181 PR rtl-optimization/31396
9182 * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
9183 * cfg.c (dump_reg_info): Print it.
9184 * regs.h (struct reg_info_t): add freq_calls_crossed.
9185 (REG_FREQ_CALLS_CROSSED): New macro.
9186 * global.c (global_alloc): Compute freq_calls_crossed for allocno.
9187 (find_reg): Update call of CALLER_SAVE_PROFITABLE.
9188 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
9189 regmove_optimize): Update call crossed frequencies.
9190 * local-alloc.c (struct qty): Add freq_calls_crossed.
9191 (alloc_qty): Copute freq_calls_crossed.
9192 (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
9193 (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
9194 * ra.h (struct allocno): Add freq_calls_crossed.
9195
daf49354
SP
91962008-01-16 Sebastian Pop <sebastian.pop@amd.com>
9197
9198 * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
9199 libgomp when compiling with ftree-parallelize-loops.
9200 (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
9201
a1a5996d
RG
92022008-01-16 Richard Guenther <rguenther@suse.de>
9203
9204 PR tree-optimization/34769
9205 * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
9206 * tree.c (int_cst_value): Instead make this function more
9207 permissive in what it accepts as valid input. Document this
9208 function always sign-extends the value.
9209
de4af523 92102008-01-16 Jakub Jelinek <jakub@redhat.com>
d0b9dbd5 9211 Richard Guenther <rguenther@suse.de>
de4af523
JJ
9212
9213 PR c/34668
9214 * gimplify.c (fold_indirect_ref_rhs): Rename to ...
9215 (gimple_fold_indirect_ref_rhs): ... this.
9216 (gimple_fold_indirect_ref): New function with foldings
9217 that preserve lvalueness.
9218 (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
9219 * tree-flow.h (gimple_fold_indirect_ref): Declare.
9220 * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
9221 to fold an INDIRECT_REF, fall back to the old use of
9222 fold_indirect_ref_1.
9223
6935bae7
SP
92242008-01-16 Sebastian Pop <sebastian.pop@amd.com>
9225
9226 * tree-data-ref.c (subscript_dependence_tester_1): Call
9227 free_conflict_function.
9228 (compute_self_dependence): Same.
9229
a4b6974e
UB
92302008-01-16 Uros Bizjak <ubizjak@gmail.com>
9231
9232 PR debug/34249
9233 * debug.h (dwarf2out_switch_text_section): Move declaration from ...
9234 * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make
9235 function global.
9236 * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
9237 Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
9238 for DWARF2_UNWIND_INFO targets.
9239
eb1387a0
RG
92402008-01-16 Richard Guenther <rguenther@suse.de>
9241
9242 PR c/34768
9243 * c-typeck.c (common_pointer_type): Do not merge inconsistent
9244 type qualifiers for function types.
9245
9326236d
JD
92462008-01-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
9247
9248 * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
9249 loop_iterator li from previous commit.
9250
92512008-01-15 Sebastian Pop <sebastian.pop@amd.com>
92a6bdbd
SP
9252
9253 * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
9254
1d4af1e8
SP
92552008-01-12 Sebastian Pop <sebastian.pop@amd.com>
9256
9257 * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
9258 (parallelize_loops): Don't parallelize irreducible components.
9259
8103eebf
MLI
92602008-01-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9261
9262 PR c++/24924
9263 * c-opts (c_common_post_options): Do not enable CPP
9264 flag_pedantic_errors by default.
9265
d556d181
EB
92662008-01-14 Eric Botcazou <ebotcazou@adacore.com>
9267
9268 PR rtl-optimization/31944
9269 * cse.c (remove_pseudo_from_table): New function.
9270 (merge_equiv_classes): Use above function to remove pseudo-registers.
9271 (invalidate): Likewise.
9272
726612d2
RG
92732008-01-13 Richard Guenther <rguenther@suse.de>
9274
9275 PR middle-end/34601
9276 * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
9277 instead of TYPE_MODE to deal with calls from expand_one_error_var.
9278
51134e52
UB
92792008-01-13 Uros Bizjak <ubizjak@gmail.com>
9280
9281 * gcse.c (cprop_jump): Call validate_unshare_change instead of
9282 validate_change to unshare the source of the PC set.
9283
3097760b
JH
92842008-01-12 Jan Hubicka <jh@suse.cz>
9285
9286 PR middle-end/32135
9287 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
9288 references above array bounds. This might trigger bounds checks for
9289 pointers to arrays.
9290
42b22da8
SP
92912008-01-12 Sebastian Pop <sebastian.pop@amd.com>
9292
9293 * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
9294 new_replaceable_dependencies.
9295
5db2e9ca
DK
92962008-01-12 Doug Kwan <dougkwan@google.com>
9297
9298 * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
9299 instead of OPT_Wreturn_type in warning due to ignored return type
9300 qualifiers.
9301 * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
9302 options included in -Wextra.
9303 * c.opt: New option -Wignored_qualifiers.
9304 * doc/invoke.texi (Warning Options, -Wextra): Add new option
9305 -Wignore_qualifiers.
9306 (-Wignored-qualifiers): Document.
9307 (-Wreturn-type): Remove description of functionality now handled
9308 by -Wignored-qualifiers.
9309
52ef2874
EB
93102008-01-12 Eric Botcazou <ebotcazou@adacore.com>
9311
9312 PR ada/33788
9313 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
9314 NOP_EXPR if it is between integral types with the same precision.
9315
a60b56a4
JH
93162008-01-12 Jan Hubicka <jh@suse.cz>
9317
9318 PR other/28023
9319 * invoke.texi (max-inline-recursive-depth): Fix default value.
9320
29ac1d9a
ZD
93212008-01-12 Zdenek Dvorak <ook@ucw.cz>
9322
9323 * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
9324 correct type.
9325
166b25dc
BW
93262008-01-11 Bob Wilson <bob.wilson@acm.org>
9327
9328 * config/xtensa/xtensa.c (override_options): Set flag_shlib.
9329
ad8151b7
JW
93302008-01-11 James E. Wilson <wilson@specifix.com>
9331
9332 PR target/26015
9333 * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
9334
0d40cc60
AS
93352008-01-11 Anatoly Sokolov <aesok@post.ru>
9336
9337 * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
9338 save/restore frame pointer register and don't use 'call-prologues'
9339 optimization in function with "OS_task" attribute.
9340
15af420d
EB
93412008-01-11 Eric Botcazou <ebotcazou@adacore.com>
9342
9343 PR middle-end/31309
9344 * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
9345 when copying to memory.
9346
c1e3e2d9
SB
93472008-01-11 Steven Bosscher <stevenb.gcc@gmail.com>
9348
9349 PR rtl-optimization/30905
9350 * cfgcleanup.c: Include dce.h
9351 (crossjumps_occured): New global variable.
9352 (try_crossjump_bb): Exit loop after finding a fallthru edge.
9353 If something changed, set crossjumps_occured to true.
9354 (try_optimize_cfg): Clear crossjumps_occured at the beginning.
9355 Don't add/remove fake edges to exit here...
9356 (cleanup_cfg): ...but do it here, when crossjumping.
9357 Run a fast DCE when successful crossjumps occured in the latest
9358 iteration of try_optimize_cfg.
9359
8d0eca24
RG
93602008-01-11 Richard Guenther <rguenther@suse.de>
9361
9362 * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
9363 (struct vn_unary_op_s): Likewise.
9364 (vn_reference_insert): Free old reference on hash collision.
9365
acfb3980
RA
93662008-01-10 Raksit Ashok <raksit@google.com>
9367
9368 PR rtl-optimization/27971
31bfe034
RA
9369 * combine.c (find_split_point): Split PLUS expressions which are
9370 inside a MEM rtx, and whose first operand is complex.
acfb3980 9371
b8a669d0
DD
93722008-01-10 DJ Delorie <dj@redhat.com>
9373
9374 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
9375 (m32c_hard_regno_nregs): ...this, which is now a wrapper.
9376 (m32c_hard_regno_ok): Call the underlying function.
9377
d0f76c4b
RG
93782008-01-10 Richard Guenther <rguenther@suse.de>
9379
9380 PR middle-end/34683
9381 * tree-cfg.c (tree_merge_blocks): Do not go through the
9382 full-blown folding and stmt updating path if we just deal
9383 with virtual operands.
9384 * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
9385 test for abnormal SSA_NAMEs.
9386
90d12f1f
AK
93872008-01-10 Andreas Krebbel <krebbel1@de.ibm.com>
9388
9389 PR middle-end/34641
9390 * reload.c (push_reload): Add assertions. All constants from
9391 reg_equiv_constant should have been used for replacing the respective
9392 pseudo earlier.
9393 (find_reloads_address): Invoke find_reloads_address_part for
9394 constant taken from the reg_equiv_constant array.
9395
71ae8557
SB
93962008-01-10 Steven Bosscher <stevenb.gcc@gmail.com>
9397
9398 * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
9399 field (valnum) the first in the struct. Replace bools with
9400 unit bit fields.
9401
125e025e
RG
94022008-01-10 Richard Guenther <rguenther@suse.de>
9403
9404 PR tree-optimization/34651
9405 * tree-sra.c (sra_build_assignment): Sanitize. Use the correct
9406 types and ordering for masking and converting.
9407
64cbaace
SP
94082008-01-09 Sebastian Pop <sebastian.pop@amd.com>
9409
9410 PR tree-optimization/34017
9411 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
9412 also for PHI_NODE expressions.
9413
88743d3a
JH
94142008-01-09 Jan Hubicka <jh@suse.cz>
9415
9416 PR tree-optimization/34708
9417 * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
9418 based on number of case labels.
9419 (init_inline_once): Remove switch_cost.
9420 * tree-inline.h (eni_weights_d): Remove switch_cost.
9421
c3e203cf
RG
94222008-01-09 Richard Guenther <rguenther@suse.de>
9423 Andrew Pinski <andrew_pinski@playstation.sony.com>
9424
9425 PR middle-end/30132
9426 * gimplify.c (gimplify_cond_expr): Do not create an addressable
9427 temporary if an rvalue is ok or an lvalue is not required.
9428
def49dd7
RG
94292008-01-09 Richard Guenther <rguenther@suse.de>
9430
9431 PR middle-end/34458
9432 * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
9433 adjust return type.
9434
cbad2e09
RG
94352008-01-09 Richard Guenther <rguenther@suse.de>
9436
9437 PR middle-end/34679
9438 * tree.c (host_integerp): Check for sizetype only if the
9439 type is an integer type.
9440
59e5c37d
SB
94412008-01-09 Steven Bosscher <stevenb.gcc@gmail.com>
9442
9443 PR debug/26364
9444 * opts.c (decode_options): Disable inlining of functions called
9445 once if not in unit-at-a-time mode.
9446
712db60e
AO
94472008-01-09 Alexandre Oliva <aoliva@redhat.com>
9448
9449 * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
9450
3fe2f42a
RG
94512008-01-08 Richard Guenther <rguenther@suse.de>
9452
9453 PR middle-end/31863
9454 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
9455 out early if the result will be unused.
9456
4d869718
UB
94572008-01-08 Uros Bizjak <ubizjak@gmail.com>
9458
9459 PR target/34709
9460 Revert:
9461
9462 2008-01-05 Uros Bizjak <ubizjak@gmail.com>
9463 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9464 for TARGET_RECIP.
9465
cedbd764
JS
94662008-01-08 Jan Sjodin <jan.sjodin@amd.com>
9467
4d869718
UB
9468 * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
9469 for vectorization tuned.
cedbd764 9470
a9990582
RG
94712008-01-08 Richard Guenther <rguenther@suse.de>
9472
9473 PR tree-optimization/34683
9474 * tree-ssa-operands.c (operand_build_cmp): Export.
9475 * tree-ssa-operands.h (operand_build_cmp): Declare.
9476 * tree-vn.c (vuses_compare): Remove.
9477 (sort_vuses): Use operand_build_cmp.
9478 (sort_vuses_heap): Likewise.
9479 * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
9480 to re-use old VEC if available. Do not sort already sorted VUSEs.
9481 (vdefs_to_vec): Do not sort already sorted VDEFs.
9482
c90eee44
JJ
94832008-01-08 Jakub Jelinek <jakub@redhat.com>
9484
9485 PR middle-end/34694
9486 * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
9487
8bce96f5
UB
94882008-01-08 Uros Bizjak <ubizjak@gmail.com>
9489
9490 PR target/34702
9491 * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
9492 limitations of reciprocal sequences on x86 targets.
9493
4eefcc98
RG
94942008-01-08 Richard Guenther <rguenther@suse.de>
9495
9496 PR tree-optimization/34683
9497 * tree-flow-inline.h (var_ann): Remove overzealous asserts.
9498
b69d564b
JJ
94992008-01-07 Jakub Jelinek <jakub@redhat.com>
9500
9501 PR target/34622
9502 * config/darwin.c (darwin_mergeable_string_section): Don't use
9503 .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
9504
6b761851
UB
95052008-01-07 Uros Bizjak <ubizjak@gmail.com>
9506
9507 PR target/34682
9508 * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
9509 negxf2. Macroize expander using X87MODEF mode iterator. Change
9510 predicates of op0 and op1 to register_operand.
8bce96f5
UB
9511 (abs<mode>2): Rename from abssf2, absdf2 and negxf2. Macroize
9512 expander using X87MODEF mode iterator. Change predicates of
9513 op0 and op1 to register_operand.
6b761851
UB
9514 ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
9515 corresponding patterns and macroize using MODEF macro. Change
9516 predicates of op0 and op1 to register_operand and remove
9517 "m" constraint. Disparage "r" alternative with "!".
9518 ("*absneg<mode>2_i387"): Rename from corresponding patterns and
9519 macroize using X87MODEF macro. Change predicates of op0 and op1
9520 to register_operand and remove "m" constraint. Disparage "r"
9521 alternative with "!".
9522 (absneg splitter with memory operands): Remove.
9523 ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
9524 patterns and macroize using X87MODEF mode iterator.
9525 * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
9526 Change predicate of op1 to register_operand.
9527 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
8bce96f5 9528 for memory operands.
6b761851 9529
5ca0373f
NF
95302008-01-07 Nathan Froyd <froydnj@codesourcery.com>
9531
9532 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
9533
2eac9a76
RG
95342008-01-07 Richard Guenther <rguenther@suse.de>
9535
9536 * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
9537 fields.
9538
b61ea03d
RG
95392008-01-07 Richard Guenther <rguenther@suse.de>
9540
9541 PR tree-optimization/34683
9542 * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
9543 VOPs of the needed size to save memory. Use VEC_quick_push
9544 to save compile-time.
9545 (vdefs_to_vec): Likewise.
9546
c4bd75cd 95472008-01-07 Sa Liu <saliu@de.ibm.com>
b61ea03d 9548
6b761851
UB
9549 * config/spu/spu.md (divdf3): Genetate inline code for double
9550 division. The implementation doesn't handle INF or NAN, therefore it
9551 only applies when -ffinite-math-only is given.
c4bd75cd 9552
ba551ec2
PC
95532008-01-06 Paolo Carlini <pcarlini@suse.de>
9554
9555 PR libstdc++/34680
9556 * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
9557 * doc/cpp.texi ([Common Predefined Macros]): Document.
9558
43db7979
UB
95592008-01-06 Uros Bizjak <ubizjak@gmail.com>
9560
9561 * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
9562 order to use commutative addition instead of subtraction.
9563
2c460d12
RE
95642008-01-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
9565 Mircea Namolaru <namolaru@il.ibm.com>
9566 Vladimir Yanovsky <yanov@il.ibm.com>
9567 Revital Eres <eres@il.ibm.com>
9568
9569 PR tree-optimization/34263
9570 * tree-outof-ssa.c (process_single_block_loop_latch,
9571 contains_tree_r): New functions.
9572 (analyze_edges_for_bb): Call process_single_block_loop_latch
9573 function to empty single-basic-block latch block if possible.
9574
5a37a60c
UB
95752008-01-05 Uros Bizjak <ubizjak@gmail.com>
9576
9577 * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
9578 for TARGET_RECIP.
9579 (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
9580
1a8a3a5e
RS
95812008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
9582
9583 * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
9584
2a4430a6
RS
95852008-01-05 Richard Sandiford <rsandifo@nildram.co.uk>
9586
9587 * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
9588
58fcda21
JJ
95892008-01-05 Jakub Jelinek <jakub@redhat.com>
9590
9591 PR tree-optimization/34618
9592 * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
9593 flag from T.
9594
f1bf33ce
UB
95952008-01-05 Uros Bizjak <ubizjak@gmail.com>
9596
9597 PR target/34673
9598 * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
9599 in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check.
9600 Update copyright year.
9601
9602 * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
9603 Update copyright year.
9604 * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
9605 using NR fixup.
9606
12a6309e
ZZ
96072008-01-05 Zhouyi Zhou <zhouzhouyi@FreeBSD.org>
9608
9609 * tree-vrp.c (find_conditional_asserts): Remove redundant check that
9610 edge does not point to current bb before changing need_assert.
9611
bdb69bee
RG
96122008-01-04 Richard Guenther <rguenther@suse.de>
9613
9614 PR middle-end/34029
9615 * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
9616 for verifying purposes if they are is_gimple_min_invariant.
9617
ffed8a01
AH
96182008-01-04 Aldy Hernandez <aldyh@redhat.com>
9619
9620 PR tree-optimization/34448
9621 PR tree-optimization/34465
9622 * gimplify.c (gimplify_init_constructor): Add new parameter
9623 notify_temp_creation. Use it.
9624 (gimplify_modify_expr_rhs): Take volatiles into account when
9625 optimizing constructors.
9626 Do not optimize constructors if gimplify_init_constructor will dump to
9627 memory.
9628 * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
9629 * gcc.c-torture/compile/pr34448.c: New.
9630
b5ca517c
JJ
96312008-01-04 Jakub Jelinek <jakub@redhat.com>
9632
9633 PR gcov-profile/34609
9634 * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
9635 return_slot if result is TREE_ADDRESSABLE.
9636
6a3d1d49
RS
96372008-01-04 Richard Sandiford <rsandifo@nildram.co.uk>
9638
9639 * config/mips/mips.md (sqrt_condition): Tweak comment.
9640 (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode.
9641
6fc3c3c0
TT
96422008-01-03 Tom Tromey <tromey@redhat.com>
9643
b5ca517c 9644 PR c/34457
6fc3c3c0
TT
9645 * c-common.c (c_type_hash): Handle VLAs.
9646
045685a9
JH
96472008-01-03 Jan Hubicka <jh@suse.cz>
9648
9649 PR tree-optimization/31081
9650 * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
9651 0 when inlining and not inlining to first basic block.
9652 (remap_decl): When var is initialized to 0, don't set default_def.
9653 (expand_call_inline): Set entry_bb.
9654 * tree-inline.h (copy_body_data): Add entry_bb.
9655
2092ee7d
JJ
96562008-01-03 Jakub Jelinek <jakub@redhat.com>
9657
cac67c08
JJ
9658 PR c++/34619
9659 * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
9660 before returning.
9661
2092ee7d
JJ
9662 PR tree-optimization/29484
9663 * tree-inline.c (inline_forbidden_p_2): New function.
9664 (inline_forbidden_p): Disallow inlining if some static var
9665 has an address of a local LABEL_DECL in its initializer.
9666 * doc/extend.texi (Labels as Values): Document &&foo behaviour
9667 vs. inlining.
9668
2726bafe 96692008-01-03 Sebastian Pop <sebastian.pop@amd.com>
097392de
SP
9670
9671 PR tree-optimization/34635
9672 * tree-data-ref.c (add_other_self_distances): Make sure that the
9673 evolution step is constant.
9674
99819c63
JJ
96752008-01-03 Jakub Jelinek <jakub@redhat.com>
9676
9677 PR middle-end/34608
12a6309e 9678 * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
99819c63 9679
1463dfa4
RS
96802008-01-02 Richard Sandiford <rsandifo@nildram.co.uk>
9681
9682 * tree-sra.c (scalarize_init): Insert the generate_element_init
9683 statements after the generate_element_zero statements.
9684
ee6ec666
RG
96852008-01-02 Richard Guenther <rguenther@suse.de>
9686
9687 PR middle-end/34093
9688 PR middle-end/31976
9689 * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
9690 for very large number of operands instead of ICEing.
9691
6893e828
AN
96922008-01-02 Arthur Norman <acn1@cam.ac.uk>
9693
12a6309e 9694 PR target/34013
d0fb20be 9695 * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6893e828
AN
9696 while stack probing.
9697
1a7817e4
DG
96982008-01-01 Douglas Gregor <doug.gregor@gmail.com>
9699
6893e828 9700 * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
12a6309e 9701 in C++0x mode.
1a7817e4 9702
882e337b
VR
97032008-01-01 Volker Reichelt <v.reichelt@netcologne.de>
9704
9705 PR libmudflap/26442
9706 * tree-mudflap.c (mx_register_decls): Guard warning by
9707 !DECL_ARTIFICIAL check.
9708
f02ffa12
JJ
97092008-01-01 Jakub Jelinek <jakub@redhat.com>
9710
9711 * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
9712 sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
9713 sse5_perm<mode>): Fix constraints.
This page took 1.406617 seconds and 5 git commands to generate.