linux-unwind.h (ppc_fallback_frame_state): Point saved CR2 offset to low 32 bits...
[gcc.git] / gcc / ChangeLog
1 2007-10-20 Jakub Jelinek <jakub@redhat.com>
2
3 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point
4 saved CR2 offset to low 32 bits of regs->ccr rather than the whole
5 64-bit register in 64-bit libgcc.
6
7 2007-10-20 Eric B. Weddington <eweddington@cso.atmel.com>
8
9 * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b.
10 * config/avr/avr.h (LINK_SPEC): Likewise.
11 (CRT_BINUTILS_SPECS): Likewsie.
12 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
13
14 2007-10-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
15
16 * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror=
17 and -Wfatal-errors together.
18
19 2007-10-20 Alan Modra <amodra@bigpond.net.au>
20
21 PR target/33812
22 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16
23 change for vrsave, ie restore after frame pop.
24
25 2007-10-19 David S. Miller <davem@davemloft.net>
26
27 * config/sparc/niagara2.md: Fix copyright notice.
28
29 2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
30
31 PR tree-optimization/23820
32 PR tree-optimization/24309
33 PR tree-optimization/33766
34 * testsuite/gcc.dg/tree-ssa/pr23820.c: New.
35 * testsuite/gcc.dg/tree-ssa/pr24309.c: New.
36 * testsuite/gcc.dg/tree-ssa/pr33766.c: New.
37 * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed.
38 * tree-loop-linear.c (perfect_loop_nest_depth): New.
39 (linear_transform_loops): Use perfect_loop_nest_depth.
40 * lambda-code.c (perfect_nest_p): Outer loops in perfect nests
41 should have a single condition: their exit.
42
43 2007-10-19 Richard Guenther <rguenther@suse.de>
44
45 PR middle-end/33816
46 PR middle-end/32921
47 * stor-layout.c (layout_type): Assert that aggregates do not
48 have their alias sets set.
49 * alias.c (get_alias_set): Return alias set zero for incomplete
50 types, return the alias set of the element for incomplete array
51 types, but do not remember these.
52
53 2007-10-19 Richard Guenther <rguenther@suse.de>
54
55 Revert
56 2007-10-19 Richard Guenther <rguenther@suse.de>
57
58 PR middle-end/32921
59 * tree.c (build_array_type): Do not re-layout unbound array
60 types.
61
62 2007-10-19 Richard Guenther <rguenther@suse.de>
63
64 PR middle-end/32921
65 * tree.c (build_array_type): Do not re-layout unbound array
66 types.
67
68 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
69
70 * config/mips/mips.c (mips_canonicalize_comparison): Check
71 mips_relational_operand_ok_p before trying to rewrite the test.
72 Only calculate PLUS_ONE if needed.
73 (mips_emit_int_relational): Don't call mips_relational_operand_ok_p
74 here.
75
76 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
77
78 * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
79 calculation.
80
81 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
82
83 * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that
84 the call uses the incoming value of $2.
85
86 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
87
88 * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem
89 rather then gen_rtx_MEM.
90 (mips_setup_incoming_varargs): Use gen_frame_mem rather than
91 gen_rtx_MEM.
92 (mips_set_return_address): Likewise.
93 (mips_restore_gp): Likewise.
94
95 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
96
97 * config/mips/mips.c (gpr_mode): Delete.
98 (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD
99 instead of gpr_mode.
100 (mips_for_each_saved_reg): Likewise.
101 (mips_expand_prologue, mips_expand_epilogue): Likewise.
102 (override_options): Don't initialize gpr_mode.
103 * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode.
104
105 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
106
107 * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD
108 case last.
109 (mips_class_max_nregs): Calculate the smallest consituent register
110 size and use that to determine an upper bound on the number of
111 registers.
112
113 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
114
115 * config/mips/mips.c (mips16_copy_fpr_return_value): New function,
116 split out from...
117 (mips_expand_epilogue): ...here.
118 (mips_mdebug_abi_name): New function, split out from...
119 (mips_file_start): ...here.
120 (mips_hard_regno_mode_ok_p): New function, split out from...
121 (override_options): ...here.
122 (mips_expand_builtin_1): New function, split out from...
123 (mips_expand_buitin): ...here. Abort if we don't recognize
124 the function.
125
126 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
127
128 * config/mips/mips.c (build_mips16_function_stub): Load the
129 target address into $1 before transfering the arguments.
130 Don't use ".set noreorder".
131 (build_mips16_call_stub): Likewise.
132
133 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
134
135 * config/mips/mips.c (mips_output_32bit_xfer): New function.
136 (mips_output_64bit_xfer): Likewise.
137 (mips16_fp_args): Rename to...
138 (mips_output_args_xfer): ...this and replace the FROM_FP_P argument
139 with a DIRECTION argument. Use mips_output_32bit_xfer and
140 mips_output_64bit_xfer.
141 (build_mips16_function_stub): Update accordingly.
142 (mips16_fpret_double): Delete.
143 (build_mips16_call_stub): Update after above changes.
144 Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead
145 of mips16_fpret_double. Use GP_REG_RETURN.
146
147 2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
148
149 * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and
150 use asm_out_file instead.
151 (build_mips16_function_stub): Likewise.
152 (build_mips16_call_stub, mips_output_function_prologue): Update
153 accordingly.
154
155 2007-10-18 David S. Miller <davem@davemloft.net>
156
157 Add Niagara-2 support.
158 * doc/invoke.texi: Document -m{cpu,tune}=niagara2.
159 * config.gcc: Add niagara2 to cpu and tune lists for sparc.
160 * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2.
161 (include): Add inclusion of niagara2.md
162 * config/sparc/sparc.c (niagara2_costs): New.
163 (sparc_override_options): Add niagara2 entry to cpu_default[]
164 and cpu_table[]. Set align_functions to 32 on Niagara2. Use
165 niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for
166 PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE.
167 (sparc_initialize_trampoline): Handle niagara2 like niagara.
168 (sparc64_initialize_trampoline): Likewise.
169 (sparc_use_sched_lookahead): Likewise.
170 (sparc_issue_rate): Likewise.
171 * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and
172 mcpu=niagara2
173 * config/sparc/sparc.h (TARGET_CPU_niagara2): Define.
174 ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for
175 TARGET_CPU_niagara2.
176 (PROCESSOR_NIAGARA2): New.
177 (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2.
178 (BRANCH_COST): Likewise.
179 * config/sparc/linux64.h: Handle TARGET_CPU_niagara2.
180 * config/sparc/sol2.h: Likewise.
181 * config/sparc/niagara2.md: New file.
182
183 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
184
185 * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and
186 and fp_reg_size.
187 (mips_compute_frame_info): Remove associated code.
188 (mips16e_build_save_restore): Check num_fp instead of fp_reg_size.
189
190 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
191
192 * config/mips/mips-protos.h (compute_frame_size): Delete.
193 * config/mips/mips.h: Update comments.
194 * config/mips/mips.c (mips_frame_info): Remove initialized.
195 (compute_frame_size): Rename to...
196 (mips_compute_frame_info): ...this and make static. Remove the
197 SIZE argument and return no value. Remove the setting of initialized.
198 Update rest of file accordingly.
199 (mips_set_return_address): Don't call compute_frame_size.
200 (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31).
201 Don't call compute_frame_size.
202
203 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
204
205 * config/mips/mips-protos.h (mips_frame_pointer_required): Declare.
206 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use
207 mips_hard_frame_pointer_required.
208 (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for
209 large MIPS16 frames.
210 * config/mips/mips.c (mips_frame_pointer_required): New function.
211
212 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
213
214 * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset
215 and hard_frame_pointer_offset.
216 (mips_debugger_offset): Use hard_frame_pointer_offset.
217 (mips16e_collect_argument_save_p): Likewise.
218 (compute_frame_size): Initialize arg_pointer_offset and
219 hard_frame_pointer_offset.
220 (mips_initial_elimination_offset): Use them.
221 (mips_output_function_prologue): Use hard_frame_pointer_offset.
222 (mips_expand_prologue, mips_expand_epilogue): Likewise.
223
224 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
225
226 * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl
227 profiling code.
228 * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type
229 "unsigned int" rather than "int" and put them with the other
230 register-related fields. Put expanded comments above fields
231 rather than to their right.
232 (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument
233 with a NUM_REGS_PTR argument.
234 (mips16e_save_restore_pattern_p): Update accordingly.
235 (compute_frame_size): Clarify frame diagram. Rewrite.
236
237 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
238
239 * config/mips/mips-ftypes.def: New file.
240 * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2)
241 (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros.
242 (mips_function_type): Redefine using mips-ftypes.def.
243 (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names.
244 (mips_builtin_vector_type): New function.
245 (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI)
246 (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF)
247 (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1)
248 (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New
249 macros.
250 (mips_build_function_type): New function.
251 (mips_init_builtins): Use it to create types lazily.
252
253 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
254
255 * config/mips/mips.h (set_volatile): Delete.
256 * config/mips/mips.c (set_volatile): Delete.
257 (mips_print_operand_punctuation): New function, split out from
258 print_operand. Remove '%{', '%}', '%~', '%&' and '%!'.
259 Use the same character ordering in the code and the comments.
260 Use a recursive call to handle '*'. Abort on unknown characters.
261 (mips_init_print_operand_punct): New function, split out from
262 override_options.
263 (mips_print_int_branch_condition): New function, split out from
264 print_operand. Use GET_RTX_NAME. Use output_operand_lossage
265 to report unexpected codes.
266 (mips_print_float_branch_condition): New function, split out from
267 print_operand. Use output_operand_lossage to report unexpected codes.
268 (print_operand): Rework to use a case statement. Use the
269 same letter ordering in the code and the comments. Use
270 output_operand_lossage to report unexpected codes and
271 reverse_condition to handle inverted branch conditions.
272 (override_options): Use mips_init_print_operand_punct.
273
274 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
275
276 * config/mips/mips.h: Move variable declarations to end of file and
277 enclose them all in #ifndef USED_FOR_TARGET.
278 * config/mips/mips.c: Reorder functions into more logical groups,
279 and so that callees appear before callers. Put the targetm
280 initializer at the end of the file. Remove forward static
281 declarations where possible.
282 (mips_init_builtins): Add "static" to definition.
283 (mips_expand_builtin, mips_mode_rep_extended): Likewise.
284
285 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
286
287 * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete.
288 (TARGET_MAX_ANCHOR_OFFSET): Delete.
289 (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS.
290 (mips_set_mips16_mode): Initialize min_anchor_offset and
291 max_anchor_offset directly to constants.
292
293 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
294
295 * config/mips/mips.c: Delete trailing whitespace.
296
297 2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
298
299 * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO.
300 (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY,
301 and pick the first.
302 * config/mips/mips.md (load_call<mode>): Don't make the unspec
303 depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO.
304
305 2007-10-18 David Daney <ddaney@avtrex.com>
306
307 * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
308 reg_offset variable to calculate register locations.
309
310 2007-10-18 Richard Guenther <rguenther@suse.de>
311
312 * tree-ssa.c (uid_ssaname_map_eq): New function.
313 (uid_ssaname_map_has): Likewise.
314 (init_tree_ssa): Allocate default_defs as uid_ssaname map.
315 * tree-flow.h (struct gimple_df): Make default_defs a
316 uid_ssaname map.
317 * tree-dfa.c (gimple_default_def): Deal with it.
318 (set_default_def): Likewise.
319
320 2007-10-18 Richard Guenther <rguenther@suse.de>
321
322 * tree-flow.h (struct gimple_df): Make referenced_vars
323 a uid_decl_map.
324 (uid_decl_map_eq): Declare.
325 (uid_decl_map_hash): Likewise.
326 * tree-ssa.c (uid_decl_map_eq): New function.
327 (uid_decl_map_hash): Likewise.
328 (init_tree_ssa): Make referenced_vars a uid_decl_map.
329 * tree-flow-inline.h (first_referenced_var): Deal with
330 the referenced_vars representation change.
331 (next_referenced_var): Likewise.
332 * tree-dfa.c (referenced_var_lookup): Likewise.
333 (referenced_var_check_and_insert): Likewise.
334 (remove_referenced_var): Likewise.
335
336 2007-10-18 Daniel Jacobowitz <dan@codesourcery.com>
337
338 * config/mips/mips.c (mips_dwarf_register_span): New.
339 (TARGET_DWARF_REGISTER_SPAN): Define.
340
341 2007-10-18 Chen Liqin <liqin@sunnorth.com.cn>
342
343 * config.gcc : update score-*-elf(extra_objs).
344 * config/score/mac.md : Remove.
345 * config/score/misc.md : Remove.
346 * config/score/score7.md : Remove.
347 * config/score/score-mdaux.h : Remove.
348 * config/score/score-mdaux.c : Remove.
349 * config/score/score-version.h : Remove.
350 * config/score/score-generic.md : New.
351 * config/score/score3.h : New.
352 * config/score/score3.c : New.
353 * config/score/score7.h : New.
354 * config/score/score7.c : New.
355 * config/score/mul-div.S : add flush_cache score3 support.
356 * config/score/elf.h : Fix some typos.
357 * config/score/score.md : merge score3 and score7 pattern.
358 * config/score/score.c : use to seperate which target it used.
359 * config/score/score.h : use to seperate the target macro.
360 * config/score/score.opt : remove -mmac option , add -mscore3,
361 -mscore3d and -march OPTION support.
362
363 2007-10-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
364
365 * cfgexpand.c (expand_stack_vars): Add checking to make sure
366 that the offset of a variable is not greater than the size
367 of the paritition.
368
369 2007-10-17 Anatoly Sokolov <aesok@post.ru>
370
371 * config/avr/avr.c (avr_mcu_types): Add support for atmega48p,
372 atmega88p, atmega168p and atmega328p devices.
373 * config/avr/avr.h (LINK_SPEC): (Ditto.).
374 (CRT_BINUTILS_SPECS): (Ditto.).
375 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
376
377 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
378
379 * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'.
380 * ddg.c: Ditto.
381 * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING.
382 * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'.
383 (print_insn): Move declaration to ...
384 * rtl.h (print_insn): ... here.
385
386 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
387
388 * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type,
389 m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem,
390 m68k_sched_branch_type): Move declarations to ...
391 * config/m68/m68k-protos.h: ... here.
392
393 2007-10-17 Maxim Kuvyrkov <maxim@codesourcery.com>
394
395 * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
396
397 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
398
399 * config/avr/avr.c (avr_mcu_types): Add attiny48.
400 * config/avr/avr.h (LINK_SPEC): Likewise.
401 (CRT_BINUTILS_SPECS): Likewsie.
402 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
403
404 2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
405
406 * config/avr/avr.c (avr_mcu_types): Add attiny43u.
407 * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie.
408 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
409
410 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
411
412 PR middle-end/33794
413 * reg-stack.c (move_for_stack_reg): Swap input argument of
414 UNSPEC_TAN insn to the top of the stack.
415
416 2007-10-17 Uros Bizjak <ubizjak@gmail.com>
417
418 PR target/32961
419 * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128,
420 IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128,
421 IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128,
422 IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require
423 immediate shift value.
424 config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32,
425 _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16,
426 _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument.
427 Remove macros for !__OPTIMIZE__ case.
428
429 2007-10-17 Daniel Berlin <dberlin@dberlin.org>
430
431 * tree-ssa-structalias.c (rewrite_constraints): Don't test for
432 directness anymore.
433 (perform_var_substitution): Only DFS from real nodes. Don't test
434 for directness.
435 (unite_pointer_equivalences): Fix broken test.
436
437 2007-10-17 Alan Modra <amodra@bigpond.net.au>
438
439 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct
440 altivec sp_offset. Rearrange sp_offset assignments to
441 correspond to stack adjustments. Use frame_reg_rtx for
442 SPE register restores. Correct SPE stack adjustment.
443
444 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
445
446 * builtins.c (gimplify_va_arg_expr): Use inform for help message.
447 * toplev.c (check_global_declaration_1): Use appropriate warning
448 option instead of unnamed warning.
449 * stor-layout.c (layout_decl): Likewise.
450 * c-typeck.c (build_conditional_expr): Likewise.
451 (build_compound_expr): Fix wrong comment.
452 (build_binary_op): Use appropriate warning option instead of
453 unnamed warning.
454 * cfgexpand.c (tree_expand_cfg): Likewise.
455 * tree-optimize.c (tree_rest_of_compilation): Likewise.
456 * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise.
457 (execute_warn_function_return): Likewise.
458 * stmt.c (warn_if_unused_value): Likewise.
459
460 2007-10-16 Eric B. Weddington <eweddington@cso.atmel.com>
461
462 * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316.
463 * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for
464 similar devices.
465 (CRT_BINUTILS_SPECS): Likewsie.
466 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
467
468 2007-10-16 Amruth Laxman <amruth.laxman@nsn.com>
469
470 PR target/33594
471 * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
472
473 2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr>
474
475 * dce.c (init_dce): Only initialize the obstacks for the fast pass.
476 (fini_dce): Only release them for the fast pass.
477 (end_ud_dce): Delete.
478 (rest_of_handle_ud_dce): Do not modify df_in_progress.
479 Call fini_dce instead of end_ud_dce.
480 (rest_of_handle_fast_dce): Do not modify df_in_progress.
481 (run_fast_df_dce): Reset df_in_progress to false on exit.
482
483 2007-10-16 Paolo Bonzini <bonzini@gnu.org>
484 Maxim Kuvyrkov <maxim@codesourcery.com>
485
486 * target.h (unspec_may_trap_p): New target hook.
487 * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro.
488 * targhooks.c (default_unspec_may_trap_p): Default implementation of
489 the hook.
490 * targhooks.h (default_unspec_may_trap_p): Declare it.
491 * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook.
492 * rtlanal.c (may_trap_p_1): Use new hook. Make global.
493 * rtl.h (may_trap_p_1): Declare.
494
495 * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to
496 override default hook implementation.
497 (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the
498 hook.
499
500 2007-10-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
501
502 * doc/invoke.texi (Wextra): Move it just after Wall, list the
503 options enabled by Wextra and mention Wuninitialized.
504
505 2007-10-15 Nigel Stephens <nigel@mips.com>
506
507 * config/mips/mips.h (LOCAL_ALIGNMENT): Define.
508
509 2007-10-15 Jakub Jelinek <jakub@redhat.com>
510
511 PR tree-optimization/33136
512 * opts.c (decode_options): Don't enable flag_ipa_type_escape.
513
514 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
515
516 PR tree-optimization/33735
517 PR tree-optimization/33572
518 * tree-inline.c (update_ssa_across_abnormal_edges): Revert
519 2007-10-09's change.
520 * except.c (duplicate_eh_regions): Don't look for prev_try
521 beyond ERT_ALLOWED_EXCEPTIONS with an empty list.
522
523 2007-10-15 Alexandre Oliva <aoliva@redhat.com>
524
525 PR middle-end/33706
526 * tree-inline.c (copy_bb): Use bsi_replace to replace a
527 __builtin_va_arg_pack-containing call stmt.
528
529 2007-10-15 Razya Ladelsky <razya@il.ibm.com>
530
531 * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole
532 program flag.
533
534 2007-10-15 Jakub Jelinek <jakub@redhat.com>
535
536 PR tree-optimization/33619
537 * tree-ssa-ter.c (is_replaceable_p): Return false for all
538 calls.
539
540 2007-10-15 David Edelsohn <edelsohn@gnu.org>
541
542 * config.gcc (powerpc-ibm-aix5*): Install altivec.h.
543
544 2007-10-15 Richard Guenther <rguenther@suse.de>
545
546 * fold-const.c (extract_array_ref): Remove.
547 (fold_comparison): Handle POINTER_PLUS_EXPR with the
548 generic address expression comparison folding. Remove
549 the folding that used extract_array_ref.
550
551 2007-10-15 Maxim Kuvyrkov <maxim@codesourcery.com>
552
553 PR target/33133
554 * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if
555 speculation type of insn can be changed before trying to do that.
556
557 2007-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
558
559 * dse.c (struct insn_info): Add 'frame_read' field.
560 (scan_insn): For the call to a const function, set frame_read if
561 reload has been run.
562 If the insn reads the frame, kill the frame related stores.
563 (scan_reads_nospill): Likewise.
564
565 2007-10-14 Jason Merrill <jason@redhat.com>
566
567 * tree-eh.c (optimize_double_finally): Don't assume that the
568 cleanup we're duplicating is only one statement.
569
570 2007-10-14 Kazu Hirata <kazu@codesourcery.com>
571
572 * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c,
573 config/i386/i386.md, config/i386/sse.md, function.c, jump.c,
574 modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c,
575 tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c,
576 tree-vect-transform.c: Fix comment typos.
577 * doc/extend.texi: Fix a typo.
578
579 * c-common.h: Remove the prototype for c_expand_body.
580 * c-tree.h: Remove the prototype for c_disregard_inline_limits.
581 * tree.h: Remove the prototype for fold_build_call_expr.
582
583 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
584 Remove.
585 * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn.
586
587 2007-10-13 David Edelsohn <edelsohn@gnu.org>
588
589 * config/rs6000/aix53.h: New file.
590 * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0.
591 (TARGET_ALTIVEC_ABI): Same.
592 * config/rs6000/aix.h (TARGET_ALTIVEC): Delete.
593 (TARGET_ALTIVEC_ABI): Delete.
594 * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new
595 stanza defaulting to aix5.3.
596
597 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
598
599 * config/i386/i386.md (SI_REG, DI_REG): New constants.
600 (strmov): Use defined constants.
601 (cmpstrnsi): Likewise.
602 * config/i386/i386.c (decide_alg): Use defined constants.
603 (ix86_expand_strlen): Likewise.
604
605 2007-10-12 Richard Sandiford <rsandifo@nildram.co.uk>
606
607 * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition.
608 * var-tracking.c (micro_operation_def): Update comment on u.loc.
609 (mode_for_reg_attrs, var_lowpart): New functions.
610 (add_uses): Consider recording a lowpart of LOC for MO_USE.
611 (add_stores): Likewise MO_SET and MO_COPY. If the source of a set
612 or copy is known, set LOC to the SET that performs the set, instead
613 of the destination.
614 (find_src_status, find_src_set_src): Remove LOC parameter.
615 Replace INSN with the source value.
616 (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when
617 handling MO_SET and MO_COPY. Update the calls to find_src_status
618 and find_src_set_src.
619
620 2007-10-12 Nathan Froyd <froydnj@codesourcery.com>
621
622 PR 11001
623 * config/i386/i386.md (strmov): Check for esi and edi usage.
624 * config/i386/i386.c (decide_alg): Check whether we can use a
625 rep prefix and adjust algorithm choice accordingly.
626 (ix86_expand_strlen): Check for eax, ecx, and edi usage.
627
628 2007-10-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
629
630 * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc.
631
632 2007-10-12 Kenneth Zadeck <zadeck@naturalbridge.com>
633
634 * global.c (build_insn_chain): Formatting fixes.
635
636 2007-10-12 Richard Guenther <rguenther@suse.de>
637
638 * tree-ssa-forwprop.c (forward_propagate_into_cond): For
639 combining both operands require either both have single uses
640 or combining to a constant.
641
642 2007-10-12 Richard Guenther <rguenther@suse.de>
643
644 PR middle-end/26198
645 * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
646 a rhs with side-effects or which is a load.
647 (forward_propagate_into_cond): Also try combining both operands.
648
649 2007-10-12 Uros Bizjak <ubizjak@gmail.com>
650
651 PR tree-optimization/33742
652 * tree-vect-transform.c (vectorizable_operation): Return false
653 if get_vectype_for_scalar_type for scalar_dest can't be determined.
654 (vectorizable_call): Same for rhs_type and lhs_type.
655
656 2007-10-12 Jakub Jelinek <jakub@redhat.com>
657
658 PR tree-optimization/33645
659 * tree-ssa-live.c (mark_all_vars_used): Add data argument,
660 pass it to walk_tree.
661 (mark_all_vars_used_1): Pass data through to mark_all_vars_used.
662 When calling set_is_used on a VAR_DECL, if data is not NULL and
663 its DECL_UID is in the bitmap, call mark_all_vars_used on its
664 DECL_INITIAL after clearing the bit in bitmap.
665 (remove_unused_locals): Adjust mark_all_vars_used callers.
666 Instead of removing unused global vars from unexpanded_var_list
667 immediately record them in bitmap, call mark_all_vars_used on
668 all used global vars from unexpanded_var_list and only purge
669 global vars that weren't found used even during that step.
670
671 2007-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
672
673 * gthr-posix.h (__gthread_active_init): Create detached instead of
674 joinable thread when testing whether threads are active on hppa-hpux.
675 * gthr-posix95.h (__gthread_active_init): Likewise.
676
677 2007-10-11 Kenneth Zadeck <zadeck@naturalbridge.com>
678
679 PR middle-end/33676
680 * global.c (build_insn_chain): Include insn that occur between
681 basic blocks.
682
683 2007-10-11 Tom Tromey <tromey@redhat.com>
684
685 * gengtype-yacc.y: Delete.
686
687 2007-10-11 Uros Bizjak <ubizjak@gmail.com>
688
689 * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants.
690 * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32,
691 function_value_32, function_value_64, function_value_ms_64,
692 setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,
693 legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk):
694 Use new constants.
695
696 2007-10-11 Richard Guenther <rguenther@suse.de>
697
698 * gcse.c (hash_scan_set): If the next nonnote insn is in
699 a different basic block insert the set.
700
701 2007-10-11 Richard Guenther <rguenther@suse.de>
702
703 PR middle-end/33724
704 * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
705 (verify_gimple_expr): Use it to verify pointer-to types for
706 ADDR_EXPRs.
707
708 2007-10-11 Richard Guenther <rguenther@suse.de>
709
710 PR c/33726
711 * c-typeck.c (build_array_ref): Do not strip qualifiers from
712 the array element type.
713
714 2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
715
716 PR rtl-optimization/33638
717 * dse.c (struct insn_info): Remove 'stack_read' field,
718 add 'stack_pointer_based' field.
719 (record_store): For a store with non-constant base, record
720 whether it is stack pointer based.
721 (scan_insn): For the call to a const function, remove stack
722 pointer based stores from the list of local active stores.
723 (scan_reads_nospill): Delete code dealing with const functions.
724
725 2007-10-10 Peter Bergner <bergner@vnet.ibm.com>
726
727 * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables
728 to HOST_WIDE_INT.
729 (conflict_p, set_conflict, set_conflicts): Likewise.
730 * global.c (global_alloc): Likewise.
731 * ra.h: Update prototypes.
732
733 2007-10-10 Wolfgang Gellerich <gellerich@de.ibm.com>
734
735 * opth-gen.awk: Fixed generation of comment stating the origin
736 of options.h
737
738 2007-10-10 Kazu Hirata <kazu@codesourcery.com>
739
740 Revert:
741 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
742 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
743 and '%}', respectively.
744
745 Revert:
746 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
747 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
748 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
749 and '}'.
750 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
751 meant to be output.
752
753 Revert:
754 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
755 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
756 syntax for ASSEMBLER_DIALECT.
757 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
758
759 2007-10-10 Revital Eres <eres@il.ibm.com>
760
761 * modulo-sched.c (check_nodes_order): Dump the final order of
762 the nodes.
763 (get_sched_window): Add dump info.
764 (calculate_order_params): Dump order params of the nodes.
765
766 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
767
768 PR middle-end/33669
769 * ra-conflict.c (record_one_conflict_between_regnos,
770 set_conflicts_for_earlyclobber, global_conflicts): Improved logging.
771 (global_conflicts): Enhanced incorrect check.
772
773 2007-10-09 Geoffrey Keating <geoffk@apple.com>
774
775 * dwarf2out.c (output_call_frame_info): FDEs are always emitted
776 if flag_exceptions is not set.
777 * config/darwin.c (darwin_emit_unwind_label): Rewrite to use
778 assemble_name rather than incorrectly emulating it.
779
780 * doc/extend.texi (Deprecated Features): Mention that <? and >? and
781 friends are removed from G++.
782
783 2007-10-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
784
785 * c-opts.c (c_common_handle_option): -Wnontemplate-friend,
786 -Wwrite-strings and -Wmultichar are enabled by default, so Wall
787 enabling them is redundant. Don't check two times for
788 c_dialect_cxx.
789
790 2007-10-09 H.J. Lu <hongjiu.lu@intel.com>
791
792 * ra-conflict.c (record_one_conflict_between_regnos): Revert
793 the last change.
794 (set_conflicts_for_earlyclobber): Likewise.
795 (global_conflicts): Likewise.
796
797 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
798
799 * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
800 and '%}', respectively.
801
802 2007-10-09 Kazu Hirata <kazu@codesourcery.com>
803
804 * config/m68k/m68k.c (print_operand): Handle '{' and '}'.
805 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
806 and '}'.
807 * config/m68k/m68k.md: Replace '{' with '%{' where '{' is
808 meant to be output.
809
810 2007-10-09 Richard Guenther <rguenther@suse.de>
811
812 PR middle-end/33692
813 * gimplify.c (canonicalize_component_ref): Honor qualifiers
814 of referenced structure and component.
815
816 2007-10-09 Kenneth Zadeck <zadeck@naturalbridge.com>
817
818 PR middle-end/33669
819 * ra-conflict.c (record_one_conflict_between_regnos,
820 set_conflicts_for_earlyclobber, global_conflicts): Improved
821 logging.
822 (global_conflicts): Removed incorrect check.
823
824 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
825
826 PR tree-optimization/33615
827 * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt
828 if the statement might throw. Fix formatting.
829
830 2007-10-09 Richard Sandiford <rsandifo@nildram.co.uk>
831
832 PR tree-optimization/33615
833 * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE
834 if the rhs might throw.
835
836 2007-10-09 Jan Hubicka <jh@suse.cz>
837
838 * invoke.texi (align-threshold, align-loop-iterations): Document.
839 * final.c: Include cfgloop.h, params.h
840 (compute_alignments): Dump decisions and compare them with loop
841 structure; honor given parameters.
842 (pass_compute_alignments): New dump file.
843 * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
844 * Makefile.in (final.o): Add dependency on cfgloop.h and params.h
845
846 2007-10-09 James E. Wilson <wilson@specifix.com>
847
848 PR tree-optimization/33655
849 PR middle-end/22156
850 * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
851 convert it to bitsizetype before size_binop call.
852
853 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
854
855 PR tree-optimization/33572
856 * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
857 the absence of a corresponding edge from the exit block.
858
859 2007-10-09 Alexandre Oliva <aoliva@redhat.com>
860
861 PR middle-end/22156
862 * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
863 bit-field layout.
864 (sra_build_assignment): Likewise. Set up mask depending on
865 precision, not type.
866 (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow
867 computing bit masks.
868 (sra_build_elt_assignment): Don't view-convert from signed to
869 unsigned.
870 (sra_explode_bitfield_assignment): Use bit-field type if
871 possible. Use BYTES_BIG_ENDIAN.
872
873 2007-10-08 Alexandre Oliva <aoliva@redhat.com>
874
875 PR middle-end/22156
876 * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
877 the original stmt can throw.
878 (sra_build_bf_assignment): Fix type mismatch when applying negated
879 mask.
880
881 2007-10-08 Geoffrey Keating <geoffk@apple.com>
882
883 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
884 '#pragma mark' to be executed at preprocessing time.
885
886 2007-10-08 Ollie Wild <aaw@google.com>
887
888 * varasm.c (compare_constant): Removed call to
889 lang_hooks.expand_constant.
890 (copy_constants): Removed call to lang_hooks.expand_constant.
891 (compute_reloc_for_constant): Removed call to
892 lang_hooks.expand_constant.
893 (output_addressed_constants): Removed call to
894 lang_hooks.expand_constant.
895 (constructor_static_from_elts_p): Removed call to
896 lang_hooks.expand_constant.
897 (output_constant): Removed calls to lang_hooks.expand_constant.
898 * langhooks.h (struct lang_hooks): Removed field expand_constant.
899 * langhooks-def.h (lhd_return_tree): Removed.
900 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
901 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
902 * langhooks.c (lhd_return_tree): Removed.
903
904 2007-10-08 Mark Shinwell <shinwell@codesourcery.com>
905
906 * combine.c (setup_incoming_promotions): Ensure that
907 arguments that have not undergone mode promotions do not
908 incorrectly get marked as being sign- or zero-extended.
909
910 2007-10-08 Richard Guenther <rguenther@suse.de>
911
912 PR middle-end/33693
913 PR middle-end/33695
914 PR middle-end/33697
915 * fold-const.c (fold_binary): Use correct types in folding
916 of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B)
917 and building of RROTATE_EXPR.
918
919 2007-10-08 Richard Guenther <rguenther@suse.de>
920
921 PR middle-end/33691
922 PR middle-end/33694
923 PR middle-end/33696
924 * fold-const.c (fold_binary): Use the correct types when
925 folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
926 (fold_binary): Use the correct types when folding
927 (-A) - B to (-B) - A.
928 (fold_unary): Use the correct types when folding ~(X).
929
930 2007-10-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
931
932 * doc/invoke.texi (Wall): fix formatting issues.
933
934 2007-10-07 Richard Sandiford <rsandifo@nildram.co.uk>
935
936 * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
937 truncated shift counts.
938
939 2007-10-07 Kazu Hirata <kazu@codesourcery.com>
940
941 * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
942 syntax for ASSEMBLER_DIALECT.
943 * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
944
945 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
946 Nathan Froyd <froydnj@codesourcery.com>
947
948 * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
949 when determining whether to record INCOMING_RETURN_ADDR_RTX.
950
951 2007-10-06 Eric Botcazou <ebotcazou@adacore.com>
952
953 Revert:
954 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
955
956 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
957 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
958 the function, temporarily point the debug interface to the null one.
959
960 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
961
962 PR tree-optimization/33655
963 PR middle-end/22156
964 * tree-sra.c (bitfield_overlaps_p): Handle array and complex
965 elements.
966
967 2007-10-06 Alexandre Oliva <aoliva@redhat.com>
968
969 PR tree-optimization/33572
970 * tree-cfg.c (verify_stmts): Check for missing PHI defs.
971 * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
972 (update_ssa_across_abnormal_edges): ... this. Set slots in the
973 return PHI node.
974 (copy_edges_for_bb): Handle nonlocal label edges.
975 (make_nonlocal_label_edges): Deleted.
976 (optimize_inline_calls): Don't call it.
977
978 2007-10-05 Hans-Peter Nilsson <hp@axis.com>
979
980 * gthr-single.h: Revert last change.
981
982 2007-10-05 Michael Matz <matz@suse.de>
983
984 PR middle-end/33667
985 * lower-subreg.c (decompose_multiword_subregs): Use
986 validate_unshare_change().
987
988 2007-10-05 Peter Bergner <bergner@vnet.ibm.com>
989
990 * ra-conflict.c: Include "sparseset.h".
991 (conflicts): Change to HOST_WIDEST_FAST_INT.
992 (allocnos_live): Redefine variable as a sparseset.
993 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE): Delete macros.
994 (allocno_row_words): Removed global variable.
995 (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
996 (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
997 (conflict_p, set_conflict_p, set_conflicts_p): New functions.
998 (record_one_conflict_between_regnos): Cache allocno values and reuse.
999 Use set_conflict_p.
1000 (record_one_conflict): Update uses of allocnos_live to use
1001 the sparseset routines. Use set_conflicts_p.
1002 (mark_reg_store): Likewise.
1003 (set_reg_in_live): Likewise.
1004 (global_conflicts): Update uses of allocnos_live.
1005 Use the new adjacency list to visit an allocno's neighbors
1006 rather than iterating over all possible allocnos.
1007 Call set_conflicts_p to setup conflicts rather than adding
1008 them manually.
1009 * global.c: Comments updated.
1010 (CONFLICTP): Delete define.
1011 (regno_compare): New function. Add prototype.
1012 (global_alloc): Sort the allocno to regno mapping according to
1013 which basic blocks the regnos are referenced in. Modify the
1014 conflict bit matrix to a compressed triangular bitmatrix.
1015 Only allocate the conflict bit matrix and adjacency lists if
1016 we are actually going to allocate something.
1017 (expand_preferences): Use conflict_p. Update uses of allocnos_live.
1018 (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
1019 allocno's neighbors rather than iterating over all possible allocnos.
1020 (mirror_conflicts): Removed function.
1021 (dump_conflicts): Iterate over regnos rather than allocnos so
1022 that all dump output will be sorted by regno number.
1023 Use the FOR_EACH_CONFLICT macro.
1024 * ra.h: Comments updated.
1025 (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
1026 (partial_bitnum, max_bitnum, adjacency, adjacency_pool): Add prototypes.
1027 (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
1028 (adjacency_list_d, adjacency_iterator_d): New types.
1029 (add_neighbor, adjacency_iter_init, adjacency_iter_done,
1030 adjacency_iter_next, regno_basic_block): New static inline functions.
1031 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
1032 (conflict_p): Add function prototype.
1033 * sparseset.h, sparseset.c: New files.
1034 * Makefile.in (OBJS-common): Add sparseset.o.
1035 (sparseset.o): New rule.
1036
1037 2007-10-05 Richard Guenther <rguenther@suse.de>
1038
1039 PR middle-end/33666
1040 * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
1041 to (long long)ptr.
1042
1043 2007-10-05 Michael Matz <matz@suse.de>
1044
1045 PR inline-asm/33600
1046 * function.c (match_asm_constraints_1): Check for input
1047 being used in the outputs.
1048
1049 2007-10-05 Richard Guenther <rguenther@suse.de>
1050
1051 * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
1052
1053 2007-10-05 Richard Sandiford <rsandifo@nildram.co.uk>
1054
1055 PR target/33635
1056 * config/mips/mips.c (mips_register_move_cost): Rewrite to use
1057 subset checks. Make the cost of FPR -> FPR moves depend on
1058 mips_mode_ok_for_mov_fmt_p.
1059
1060 2007-10-04 Doug Kwan <dougkwan@google.com>
1061
1062 * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
1063 __gthread_cond_wait_recursive): Add to extend interface for POSIX
1064 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
1065 support of conditional variables.
1066 * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
1067 __gthread_cond_wait_recursive): Add to extend interface for POSIX
1068 conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
1069 support of conditional variables.
1070 * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
1071 __gthread_cond_wait_recursive): Add to extend interface for POSIX
1072 conditional variables.
1073 * gthr.h: Update comments to document new interface.
1074
1075 2007-10-04 Geoffrey Keating <geoffk@apple.com>
1076
1077 * cgraphunit.c (cgraph_build_static_cdtor): Don't set
1078 DECL_IGNORED_P.
1079
1080 2007-10-04 Anatoly Sokolov <aesok@post.ru>
1081
1082 * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
1083
1084 2007-10-04 Richard Guenther <rguenther@suse.de>
1085
1086 PR middle-end/33641
1087 * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
1088 does not need to be of INTEGER_TYPE.
1089 (verify_gimple_2): New function split out from ...
1090 (verify_gimple_1): ... here. ICE if there was an error during
1091 verification.
1092
1093 2007-10-04 Michael Matz <matz@suse.de>
1094
1095 PR rtl-optimization/33653
1096 * dce.c (deletable_insn_p_1): Use volatile_refs_p().
1097 * dse.c (scan_insn): Same.
1098
1099 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
1100
1101 * config.gcc: Remove USE_GAS for m68k targets.
1102
1103 2007-10-04 Richard Guenther <rguenther@suse.de>
1104
1105 PR tree-optimization/33627
1106 * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
1107 * tree-gimple.c (canonicalize_cond_expr_cond): New function,
1108 split out from ...
1109 * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
1110 * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
1111
1112 2007-10-04 Anatoly Sokolov <aesok@post.ru>
1113
1114 * config/avr/avr.c (commands_in_file, commands_in_prologues,
1115 commands_in_epilogues): Remove variables.
1116 (avr_file_start): Remove unneded initializations of commands_in_file,
1117 commands_in_prologues and commands_in_epilogues variables.
1118 (avr_file_end): Remove dead code.
1119
1120 2007-10-04 Kazu Hirata <kazu@codesourcery.com>
1121
1122 * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if
1123 MOTOROLA is to true.
1124
1125 2007-10-03 Richard Sandiford <rsandifo@nildram.co.uk>
1126
1127 PR target/33635
1128 * config/mips/mips-protos.h (mips_split_64bit_move): Rename to...
1129 (mips_split_doubleword_move): ...this.
1130 * config/mips/mips.c (mips_subword): Extend to handle 64-bit words;
1131 use natural endianness for multi-format FPR values.
1132 (mips_split_64bit_move): Rename to...
1133 (mips_split_doubleword_move): ...this and extend to 64-bit words.
1134 Use move_doubleword_fpr* patterns for moves involving FPRs.
1135 (mips_save_reg): Update the call to mips_split_64bit_move.
1136 (mips_secondary_reload_class): Return NO_REGS for any reload of a
1137 nonzero constant into an FPR if the constant can be forced to memory.
1138 * config/mips/mips.md: Update the splitter calls to
1139 mips_split_64bit_move.
1140 (UNSPEC_LOAD_DF_LOW): Rename to...
1141 (UNSPEC_LOAD_LOW): ...this.
1142 (UNSPEC_LOAD_DF_HIGH): Rename to...
1143 (UNSPEC_LOAD_HIGH): ...this.
1144 (UNSPEC_STORE_DF_HIGH): Rename to...
1145 (UNSPEC_STORE_WORD): ...this.
1146 (SPLITF): New mode iterator.
1147 (HALFMODE): New mode attribute.
1148 (movtf): New expander.
1149 (*movtf_internal): New define_insn_and_split.
1150 (move_doubleword_fpr<mode>): New expander.
1151 (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace
1152 with...
1153 (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
1154 (mfhc1<mode>): ...these more general patterns.
1155
1156 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
1157
1158 * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end.
1159
1160 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
1161
1162 * gcse.c (hash_scan_set): Insert set in insn before note at
1163 the end of basic block.
1164
1165 2007-10-03 Sebastian Pop <sebastian.pop@amd.com>
1166
1167 PR tree-optimization/33576
1168 * testsuite/gcc.dg/tree-ssa/pr33576.c: New.
1169 * tree-loop-linear.c (linear_transform_loops): Call remove_iv.
1170 * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter.
1171 (remove_iv): Declared.
1172 * lambda-code.c (remove_iv): Not static.
1173 (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs.
1174 Don't remove ivs there, save ivs in the buffer.
1175
1176 2007-10-03 Jason Merrill <jason@redhat.com>
1177
1178 PR c++/15764
1179 * tree-eh.c (same_handler_p): New fn.
1180 (optimize_double_finally): New fn.
1181 (refactor_eh_r): New fn.
1182 (refactor_eh): New fn.
1183 (pass_refactor_eh): New pass.
1184 * tree-pass.h: Declare it.
1185 * passes.c (init_optimization_passes): Add it.
1186
1187 2007-10-03 Doug Kwan <dougkwan@google.com>
1188 Richard Guenther <rguenther@suse.de>
1189
1190 PR debug/31899
1191 * dwarf2out.c (reference_to_unused): Disable sanity checking,
1192 be conservative instead.
1193
1194 2007-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1195
1196 PR fortran/26682
1197 * doc/invoke.texi (-fwhole-program): Document that Fortran
1198 doesn't support this option.
1199
1200 2007-10-02 Richard Sandiford <rsandifo@nildram.co.uk>
1201
1202 PR middle-end/33617
1203 * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to
1204 expand_expr.
1205
1206 2007-10-02 David Daney <ddaney@avtrex.com>
1207
1208 * config/mips/mips.md (sync_compare_and_swap<mode>): Handle compare
1209 against constant zero.
1210 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Handle constant zero
1211 operand.
1212
1213 2007-09-02 Kenneth Zadeck <zadeck@naturalbridge.com>
1214
1215 * ra-conflict.c: New file.
1216 * ra.h: New file.
1217 * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
1218 usage to DF_LIVE usage.
1219 (reload): Remove reference to df_get_live_top.
1220 * rtlanal.c (subreg_nregs_with_regno): New function.
1221 * df-scan.c (df_def_record_1, df_uses_record): Add code to set
1222 DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
1223 (df_has_eh_preds): Removed.
1224 (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
1225 df_exit_block_uses_collect): Changed call from df_has_eh_preds to
1226 bb_has_eh_pred.
1227 * global.c (allocno, max_allocno, conflicts, allocno_row_words,
1228 reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
1229 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
1230 (regs_set, record_one_conflict, record_conflicts, mark_reg_store,
1231 mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
1232 (global_alloc): Turn off rescanning insns after call to
1233 global_conflicts and added call to set_preferences.
1234 (global_conflicts): Moved to ra-alloc.c.
1235 (set_preferences_1, set_preferences): New function.
1236 (mirror_conflicts): Changed types for various variables.
1237 (mark_elimination): Change DF_RA_LIVE
1238 usage to DF_LIVE usage.
1239 (build_insn_chain): Rewritten from scratch and made local.
1240 (print_insn_chain, print_insn_chains): New functions.
1241 (dump_conflicts): Do not print conflicts for fixed_regs.
1242 (rest_of_handle_global_alloc): Turn off insn rescanning.
1243 * hard-reg-set.h: Fixed comment.
1244 * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
1245 usage to DF_LIVE usage and delete refs to TOP sets.
1246 (block_alloc): Mark regs as live if they are in the artificial
1247 defs at top of block.
1248 (find_stack_regs): New function.
1249 (rest_of_handle_local_alloc): Changed urec problem to live
1250 problem and do not turn off df rescanning.
1251 * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
1252 DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
1253 df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
1254 (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
1255 (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
1256 fields in df_ref_flags. The rest have been renumbered.
1257 * init-regs.c (initialize_uninitialized_regs): Enhanced debugging
1258 at -O1.
1259 * rtl.h (subreg_nregs_with_regno): New function.
1260 * df-problems.c: (df_get_live_out, df_get_live_in,
1261 df_get_live_top): Removed reference to DF_RA_LIVE.
1262 (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
1263 df_live_alloc, df_live_reset, df_live_local_finalize,
1264 df_live_free): Make top set only if different from in set.
1265 (df_lr_top_dump, df_live_top_dump): Only print top set if
1266 different from in set.
1267 (df_lr_bb_local_compute): Removed unnecessary check.
1268 (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info,
1269 df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass,
1270 df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
1271 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
1272 df_urec_local_compute, df_urec_init, df_urec_local_finalize,
1273 df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
1274 df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
1275 df_urec_add_problem): Removed.
1276 (df_simulate_fixup_sets): Changed call from df_has_eh_preds to
1277 bb_has_eh_pred.
1278 * Makefile.in (ra-conflict.o, ra.h): New dependencies.
1279 * basic_block.h (bb_has_abnormal_pred): New function.
1280 * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
1281 usage to DF_LIVE usage.
1282
1283 2007-10-02 Revital Eres <eres@il.ibm.com>
1284
1285 * config/rs6000/predicates.md (easy_vector_constant): Return false
1286 for 750CL paired vectors.
1287 * config/rs6000/paired.md (movv2sf_paired): Fix move of easy
1288 vector constant.
1289 (vec_initv2sf): Add new description.
1290 (vconcatsf): Likewise.
1291 * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init.
1292 * config/rs6000/rs6000.c (paired_expand_vector_init): New function.
1293
1294 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
1295
1296 * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after
1297 sinking the last stmt in a BB.
1298
1299 2007-10-01 Alexandre Oliva <aoliva@redhat.com>
1300
1301 PR middle-end/22156
1302 * tree-sra.c (struct sra_elt): Add in_bitfld_block.
1303 (sra_hash_tree): Handle BIT_FIELD_REFs.
1304 (sra_elt_hash): Don't hash bitfld blocks.
1305 (sra_elt_eq): Skip them in parent compares as well. Handle
1306 BIT_FIELD_REFs.
1307 (build_element_name_1): Handle BIT_FIELD_REFs.
1308 (instantiate_element): Propagate nowarn from parents. Create
1309 BIT_FIELD_REF for variables that are widened by scalarization.
1310 Gimple-zero-initialize all bit-field variables that are not
1311 part of parameters that are going to be scalarized on entry.
1312 (instantiate_missing_elements_1): Return the sra_elt.
1313 (canon_type_for_field): New.
1314 (try_instantiate_multiple_fields): New. Infer widest possible
1315 access mode from decl or member type, but clip it at word
1316 size, and only widen it if a field crosses an alignment
1317 boundary.
1318 (instantiate_missing_elements): Use them.
1319 (generate_one_element_ref): Handle BIT_FIELD_REFs.
1320 (scalar_bitfield_p): New.
1321 (sra_build_assignment): Optimize assignments from scalarizable
1322 BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift
1323 counts.
1324 (REPLDUP): New.
1325 (sra_build_bf_assignment): New. Optimize assignments to
1326 scalarizable BIT_FIELD_REFs.
1327 (sra_build_elt_assignment): New. Optimize BIT_FIELD_REF
1328 assignments to full variables.
1329 (generate_copy_inout): Use the new macros and functions.
1330 (generate_element_copy): Likewise. Handle bitfld differences.
1331 (generate_element_zero): Don't recurse for blocks. Use
1332 sra_build_elt_assignment.
1333 (generate_one_element_init): Take elt instead of var. Use
1334 sra_build_elt_assignment.
1335 (generate_element_init_1): Adjust.
1336 (bitfield_overlap_info): New struct.
1337 (bitfield_overlaps_p): New.
1338 (sra_explode_bitfield_assignment): New. Adjust widened
1339 variables to account for endianness.
1340 (sra_sync_for_bitfield_assignment): New.
1341 (scalarize_use): Re-expand assignment to/from scalarized
1342 BIT_FIELD_REFs. Explode or sync needed members for
1343 BIT_FIELD_REFs accesses or assignments. Use REPLDUP.
1344 (scalarize_copy): Use REPLDUP.
1345 (scalarize_ldst): Move assert before dereference. Adjust EH
1346 handling.
1347 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
1348
1349 2007-10-01 Paolo Bonzini <bonzini@gnu.org>
1350
1351 * simplify-rtx.c (comparison_result, simplify_relational_operation_1):
1352 Rename CR_* constants to CMP_*. Fix spacing.
1353
1354 2007-10-01 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1355
1356 PR other/33585
1357 * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs
1358 to be processed with the special script doc/install.texi2html.
1359
1360 2007-09-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1361
1362 * doc/invoke.texi (Wall): List the options enabled by Wall.
1363 (Wstrict-aliasing): Add missing @option.
1364
1365 2007-09-30 Richard Sandiford <rsandifo@nildram.co.uk>
1366
1367 * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset
1368 rather than gen_lowpart to change a register from DImode to DFmode.
1369 (mips_cannot_change_mode_class): Only allow FPRs to change mode if
1370 both FROM and TO are integer modes that are no bigger than 4 bytes.
1371 (mips_mode_ok_for_mov_fmt_p): New function.
1372 (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P.
1373 (mips_secondary_reload_class): Tweak formatting and comments.
1374 Use reg_class_subset_p instead of direct comparisons with
1375 classes. Only allow direct FPR<->FPR moves for modes that
1376 satisfy mips_mode_ok_for_mov_fmt_p. Only allow loads and stores
1377 for 4- and 8-byte types. Handle reloads in which X is an FPR.
1378 * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative.
1379 (*movdi_64bit): Likewise.
1380 (*movsi_internal): Likewise.
1381 (*movhi_internal): Likewise.
1382 (*movqi_internal): Likewise.
1383
1384 2007-09-30 Diego Novillo <dnovillo@google.com>
1385
1386 PR 33593
1387 * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may
1388 throw an exception.
1389
1390 2007-09-30 Uros Bizjak <ubizjak@gmail.com>
1391
1392 PR tree-optimization/33597
1393 * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler
1394 for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode.
1395
1396 2007-09-28 Uros Bizjak <ubizjak@gmail.com>
1397
1398 * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p ()
1399 instead of variants of (!reload_in_progress && !reload_completed).
1400 (x86_expand_vector_move): Ditto.
1401
1402 2007-09-28 Ollie Wild <aaw@google.com>
1403
1404 Revert
1405 2007-09-27 Ollie Wild <aaw@google.com>
1406
1407 * varasm.c (compare_constant): Removed call to
1408 lang_hooks.expand_constant.
1409 (copy_constants): Removed call to lang_hooks.expand_constant.
1410 (compute_reloc_for_constant): Removed call to
1411 lang_hooks.expand_constant.
1412 (output_addressed_constants): Removed call to
1413 lang_hooks.expand_constant.
1414 (constructor_static_from_elts_p): Removed call to
1415 lang_hooks.expand_constant.
1416 (output_constant): Removed calls to lang_hooks.expand_constant.
1417 * langhooks.h (struct lang_hooks): Removed field expand_constant.
1418 * langhooks-def.h (lhd_return_tree): Removed.
1419 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
1420 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
1421 * langhooks.c (lhd_return_tree): Removed.
1422
1423 2007-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1424
1425 PR target/33347
1426 * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second
1427 argument to gen_selb.
1428
1429 2007-09-28 Chao-ying Fu <fu@mips.com>
1430
1431 * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.
1432 * doc/libgcc.texi (Fixed-point fractional library routines):
1433 Fix typos for neg and cmp functions.
1434
1435 2007-09-28 Michael Matz <matz@suse.de>
1436
1437 PR rtl-optimization/33552
1438 * function.c (match_asm_constraints_1): Check for overlap in
1439 inputs and replace all occurences.
1440
1441 2007-09-28 Richard Sandiford <rsandifo@nildram.co.uk>
1442
1443 * config/mips/mips.c (override_options): Fix comment typo.
1444
1445 2007-09-28 Jie Zhang <jie.zhang@analog.com>
1446
1447 * config.gcc (bfin*-linux-uclibc*): Set extra_parts
1448 to "crtbegin.o crtbeginS.o crtend.o crtendS.o".
1449 * config/bfin/t-bfin-linux (crti.o): Don't build.
1450 (crtn.o): Likewise.
1451 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
1452 * config/bfin/t-bfin-uclinux (crti.o): Don't build.
1453 (crtn.o): Likewise.
1454 (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o.
1455
1456 2007-09-27 Ollie Wild <aaw@google.com>
1457
1458 * varasm.c (compare_constant): Removed call to
1459 lang_hooks.expand_constant.
1460 (copy_constants): Removed call to lang_hooks.expand_constant.
1461 (compute_reloc_for_constant): Removed call to
1462 lang_hooks.expand_constant.
1463 (output_addressed_constants): Removed call to
1464 lang_hooks.expand_constant.
1465 (constructor_static_from_elts_p): Removed call to
1466 lang_hooks.expand_constant.
1467 (output_constant): Removed calls to lang_hooks.expand_constant.
1468 * langhooks.h (struct lang_hooks): Removed field expand_constant.
1469 * langhooks-def.h (lhd_return_tree): Removed.
1470 (LANG_HOOKS_EXPAND_CONSTANT): Removed.
1471 (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
1472 * langhooks.c (lhd_return_tree): Removed.
1473
1474 2007-09-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1475
1476 PR middle-end/33436
1477 * expr.c (emit_group_load_1): Split constant double when destination
1478 length is half source length.
1479
1480 2007-09-27 Richard Sandiford <rsandifo@nildram.co.uk>
1481
1482 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro.
1483 (mips_cpu_info): Add tune_flags.
1484 (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check.
1485 * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields.
1486 Remove end marker.
1487 (override_options): Remove deprecation code. Use branch-likely
1488 instructions for optimize_size or if the tuning flags do not
1489 suggest otherwise. Tweak warning.
1490 (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE.
1491
1492 2007-09-27 Matthias Klose <doko@ubuntu.com>
1493
1494 * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
1495 multilib osdirname if it exists.
1496 * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
1497
1498 2007-09-27 Ian Lance Taylor <iant@google.com>
1499
1500 PR tree-optimization/33565
1501 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on
1502 assignments of comparisons.
1503 * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt
1504 parameter. Change caller. Defer overflow warnings around call to
1505 fold_binary.
1506 * fold-const.c (fold_undefer_overflow_warnings): Don't warn if
1507 TREE_NO_WARNING is set on the statement.
1508 * tree-ssa-forwprop.c
1509 (tree_ssa_forward_propagate_single_use_vars): Don't test
1510 TREE_NO_WARNING when calling fold_undefer_overflow_warnings.
1511 * tree-cfg.c (fold_cond_expr_cond): Likewise.
1512
1513 2007-09-27 Joseph Myers <joseph@codesourcery.com>
1514
1515 * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not
1516 reduce offset by units of 0x10000 for SPE vector modes or modes
1517 used with E500 double instructions.
1518
1519 2007-09-04 Paolo Bonzini <bonzini@gnu.org>
1520
1521 * simplify-rtx.c (comparison_result): New.
1522 (simplify_const_relational_operation): Use it instead of the five
1523 "equal|op[01]ltu?" variables; consequently remove redundant "else"s.
1524 Improve bounds-checking optimizations; remove subsumed POPCOUNT
1525 optimizations. Extract nonzero_address_p optimizations into a
1526 separate "if" together with optimizations where op1 is const0_rtx.
1527 Optimize comparing an IOR with zero. Simplify op0 RELOP op0 for
1528 floating-point arguments too when appropriate. Hoist test for ABS
1529 outside the final switch statement.
1530 * cse.c (fold_rtx): Don't look for an IOR equivalent of
1531 folded_arg0 if we found a constant equivalent. Remove
1532 transformations done in simplify-rtx.c for "op0 RELOP op0".
1533
1534 2007-09-27 Jakub Jelinek <jakub@redhat.com>
1535
1536 * builtins.c (expand_builtin, expand_builtin_object_size,
1537 expand_builtin_memory_chk, maybe_emit_chk_warning,
1538 maybe_emit_sprintf_chk_warning): Use new %K format string specifier
1539 for diagnostics.
1540 * expr.c (expand_expr_real_1): Likewise.
1541 * langhooks-def.h (struct diagnostic_info): Add forward decl.
1542 (lhd_print_error_function): Add third argument.
1543 * langhooks.h (struct diagnostic_info): Add forward decl.
1544 (struct lang_hooks): Add third argument to print_error_function.
1545 * diagnostic.h (diagnostic_info): Add abstract_origin field.
1546 (diagnostic_last_function_changed, diagnostic_set_last_function): Add
1547 second argument.
1548 (diagnostic_report_current_function): Likewise.
1549 * toplev.c (announce_function): Pass NULL as second argument to
1550 diagnostic_set_last_function.
1551 * diagnostic.c (diagnostic_report_current_function): Add second
1552 argument, pass it as third argument to lang_hooks.print_error_function.
1553 (default_diagnostic_starter): Pass DIAGNOSTIC as second argument
1554 to diagnostic_report_current_function.
1555 (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin
1556 and message.abstract_origin.
1557 (verbatim): Initialize abstract_origin.
1558 * pretty-print.h (text_info): Add abstract_origin field.
1559 * pretty-print.c (pp_base_format): Handle %K.
1560 * langhooks.c (lhd_print_error_function): Add third argument. If
1561 diagnostic->abstract_origin, print virtual backtrace.
1562 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
1563 gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K.
1564 (init_dynamic_diag_info): Likewise.
1565
1566 2007-09-26 David Daney <ddaney@avtrex.com>
1567
1568 PR target/33479
1569 * config/mips/mips.md (sync_compare_and_swap<mode>, sync_old_add<mode>,
1570 sync_new_add<mode>, sync_old_<optab><mode>, sync_new_<optab><mode>,
1571 sync_old_nand<mode>, sync_new_nand<mode>,
1572 sync_lock_test_and_set<mode>): Fix '&' constraint modifiers.
1573 Update length attributes.
1574 (sync_add<mode>, sync_sub<mode>, sync_old_sub<mode>,
1575 sync_new_sub<mode>, sync_<optab><mode>, sync_nand<mode>): Update
1576 length attributes.
1577 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP,
1578 MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND,
1579 MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add
1580 post-loop sync.
1581
1582 2007-09-26 Richard Guenther <rguenther@suse.de>
1583
1584 PR tree-optimization/33563
1585 * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ...
1586 (get_kill_of_stmt_lhs): ... this. Re-structure. Handle
1587 aggregate stores.
1588 (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of
1589 get_use_of_stmt_lhs.
1590
1591 2007-09-26 Joseph Myers <joseph@codesourcery.com>
1592
1593 PR c/25309
1594 * c-common.c (complete_array_type): Diagnose too-large arrays and
1595 set type to error_mark_node.
1596
1597 2007-09-26 Richard Guenther <rguenther@suse.de>
1598
1599 PR tree-optimization/30375
1600 PR tree-optimization/33560
1601 * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses
1602 with calls.
1603
1604 Revert
1605 2006-05-22 Aldy Hernandez <aldyh@redhat.com>
1606
1607 * tree-ssa-dse.c (aggregate_vardecl_d): New.
1608 (dse_global_data): Add aggregate_vardecl field.
1609 (dse_possible_dead_store_p): New.
1610 Add prev_defvar variable.
1611 Allow immediate uses and previous immediate uses to differ
1612 if they are setting different parts of the whole.
1613 (get_aggregate_vardecl): New.
1614 (dse_record_partial_aggregate_store): New.
1615 (dse_whole_aggregate_clobbered_p): New.
1616 (dse_partial_kill_p): New.
1617 Call dse_maybe_record_aggregate_store().
1618 When checking whether a STMT and its USE_STMT refer to the
1619 same memory address, check also for partial kills that clobber
1620 the whole.
1621 Move some variable definitions to the block where they are used.
1622 (aggregate_vardecl_hash): New.
1623 (aggregate_vardecl_eq): New.
1624 (aggregate_vardecl_free): New.
1625 (aggregate_whole_store_p): New.
1626 (tree_ssa_dse): Initialize and free aggregate_vardecl.
1627 Mark which aggregate stores we care about.
1628
1629 2007-09-25 DJ Delorie <dj@redhat.com>
1630
1631 PR target/33551
1632 * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of
1633 XINT.
1634
1635 2007-09-25 Michael Meissner <michael.meissner@amd.com>
1636
1637 PR target/33524
1638 * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call
1639 gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di
1640 for vector int32 -> int64 conversions. Don't write beyond the end
1641 of the allocated vector for int32 -> int64 conversions.
1642
1643 2007-09-25 Revital Eres <eres@il.ibm.com>
1644
1645 * config/rs6000/paired.h (paired_sel): New.
1646 * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4.
1647 (rs6000_expand_ternop_builtin): Pass zero const_double operand
1648 when expanding selv2sf.
1649 * config/rs6000/rs6000.h (rs6000_builtins): Add
1650 PAIRED_BUILTIN_SELV2SF4.
1651
1652 2007-09-25 Joseph Myers <joseph@codesourcery.com>
1653
1654 PR c/32295
1655 * c-typeck.c (default_conversion): Call require_complete_type
1656 before perform_integral_promotions.
1657 (build_unary_op): Call require_complete_type except for ADDR_EXPR.
1658 (build_c_cast): Call require_complete_type except for casts to
1659 void types.
1660 (convert_for_assignment): Call require_complete_type.
1661
1662 2007-09-25 Revital Eres <eres@il.ibm.com>
1663
1664 * config/spu/spu.md: Fix doloop pattern.
1665
1666 2007-09-25 Bernd Schmidt <bernd.schmidt@analog.com>
1667
1668 * config/bfin/bfin.c (expand_prologue_reg_save,
1669 expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs and
1670 ASTAT moved here...
1671 (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
1672 ... from here. New argument ALL; callers changed.
1673 (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions.
1674 (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that
1675 have the "saveall" attribute.
1676
1677 2007-09-25 Hans-Peter Nilsson <hp@bitrange.com>
1678
1679 * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define
1680 bogus target macro.
1681 (INCOMING_REGNO, OUTGOING_REGNO): Define.
1682 * config/mmix/mmix.c (mmix_opposite_regno): New function.
1683 * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype.
1684
1685 * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate
1686 with REG_P tests before REGNO access.
1687
1688 2007-09-24 DJ Delorie <dj@redhat.com>
1689
1690 PR target/31482
1691 * config/m32c/cond.md (stzx_reversed_<mode>): Add an output
1692 constraint.
1693 (movqicc_<code>_<mode>): Likewise.
1694 (movhicc_<code>_<mode>): Likewise.
1695
1696 2007-09-24 Rask Ingemann Lambertsen <rask@sygehus.dk>
1697
1698 PR target/33184
1699 * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address
1700 register for reload.
1701
1702 2007-09-24 Danny Smith <dannysmith@user.sourceforge.net>
1703
1704 PR c++/14688
1705 * config/i386/i386.c (ix86_comp_type_attributes): Check
1706 METHOD_TYPE too.
1707
1708 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
1709
1710 * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use
1711 "move.l %a4,%a4" to produce nops.
1712 * config/m68k/m68k.c (override_options): Reset align options,
1713 if neccessary align macro isn't avaible.
1714
1715 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
1716
1717 config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New.
1718
1719 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
1720
1721 * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave
1722 the basic block.
1723 * config/m68k/m68k.md (movsi_m68k): Allow certain constant when
1724 reload is completed.
1725 (peephole pattern): Convert most of them to RTL peephole pattern.
1726
1727 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
1728
1729 * config/m68k/m68k.c (notice_update_cc): Recognize fp compare
1730 (moved from fp compare patterns).
1731 * config/m68k/m68k.md (cmp<mode>, cmp<mode>_68881, cmp<mode>_cf):
1732 Cleanup predicates to relieve reload.
1733 (conditional_trap): Reject conditional trap with fp condition.
1734 * gcc/config/m68k/predicates.md (fp_src_operand): New, reject
1735 certain constants early.
1736
1737 2007-09-24 Roman Zippel <zippel@linux-m68k.org>
1738
1739 * gcc/final.c (final_scan_insn): Remove accidentally duplicated code.
1740
1741 2007-09-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
1742
1743 * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU.
1744 Allow --with-tune=cell and --with-cpu=cell.
1745
1746 2007-09-24 David Edelsohn <edelsohn@gnu.org>
1747
1748 * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare.
1749 * config/rs6000/rs6000.opt (swdiv): Change option to ...
1750 (recip): this.
1751 * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New
1752 function.
1753 (TARGET_BUILTIN_RECIPROCAL): Use it.
1754 (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf.
1755 (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf.
1756 (rs6000_emit_swrsqrtsf): New.
1757 * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and
1758 rsqrtf.
1759 * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define.
1760 (divsf3): Remove swdiv support.
1761 (recipsf3): New.
1762 (rsqrtsf2): New.
1763 (rsqrt_internal1): New.
1764 (divdf3): Remove swdiv support.
1765 (reciptdf3): New.
1766
1767 2007-09-24 Jakub Jelinek <jakub@redhat.com>
1768
1769 PR c++/33506
1770 * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq
1771 field.
1772 * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define.
1773 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ.
1774 * tree.c (type_hash_eq): For FUNCTION_TYPE use
1775 lang_hooks.type.type_hash_eq in addition to generic tests.
1776
1777 2007-09-24 Pranav Bhandarkar <pranav.bhandarkar@celunite.com>
1778 Ramana Radhakrishnan <ramana@hercules.pun.celunite.com>
1779
1780 * tree-inline.h (eni_weights): Add field target_builtin_cost to
1781 reflect the cost per call to a target specific builtin.
1782 * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a
1783 call to a target specific builtin, then use target_builtin_call_cost.
1784 (init_inline_once): Initialize target_builtin_call_cost field.
1785
1786 2007-09-24 Kai Tietz <kai.tietz@onevision.com>
1787
1788 PR middle-end/33472
1789 * config/i386/i386.c (return_in_memory_ms_64): Handle return types for
1790 complex types.
1791
1792 2007-09-23 H.J. Lu <hongjiu.lu@intel.com>
1793
1794 * configure.ac (ld_vers): Support GNU linker version xx.xx.*
1795 * configure: Regenerated.
1796
1797 2007-09-23 Ollie Wild <aaw@google.com>
1798
1799 * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer
1800 operand.
1801 (get_pointer_modulus_and_residue): New function.
1802
1803 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
1804
1805 * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets,
1806 combine an SC return value into a single register.
1807
1808 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
1809
1810 * opth-gen.awk (target_flags_explicit): Declare.
1811 * toplev.h (target_flags_explicit): Delete declaration.
1812 * toplev.c (target_flags): Likewise.
1813 * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete.
1814 (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags.
1815 Never return true for TARGET_MIPS16.
1816 * config/mips/mips.c (mips_llsc): Delete.
1817 (mips_handle_option): Remove -mllsc handling.
1818 (mips_strip_unspec_address): Tweak comment.
1819 * config/mips/mips.opt (mllsc): Use a target mask.
1820
1821 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
1822
1823 * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to
1824 word_mode as well as Pmode.
1825
1826 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
1827
1828 * function.c (assign_parm_setup_block): Explicitly convert BLKmode
1829 parameters from word_mode to the subword type if such a truncation
1830 is not a no-op.
1831
1832 2007-09-23 Jakub Jelinek <jakub@redhat.com>
1833
1834 * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above.
1835 * configure: Regenerated.
1836
1837 2007-09-23 Jan Hubicka <jh@suse.cz>
1838
1839 * params.def (INLINE_CALL_COST): Set to 12.
1840 * invoke.texi (inline-call-cost): Update default value.
1841
1842 2007-09-23 Eric Botcazou <ebotcazou@adacore.com>
1843
1844 * config/alpha/alpha.md (movti): Use operand_subword for the split.
1845
1846 2007-09-23 Ayal Zaks <zaks@il.ibm.com>
1847 Revital Eres <eres@il.ibm.com>
1848
1849 * modulo-sched.c (doloop_register_get): Rewrite the loop which
1850 checks whether the count_reg is found outside the control part.
1851
1852 2007-09-23 Jakub Jelinek <jakub@redhat.com>
1853
1854 * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl
1855 instead of checking CALL_EXPR_FN directly to test for builtins.
1856 If error or warning attributes are present, print
1857 error resp. warning.
1858 * c-common.c (handle_error_attribute): New function.
1859 (c_common_attribute_table): Add error and warning
1860 attributes.
1861 * doc/extend.texi: Document error and warning attributes.
1862
1863 * tree.h (block_nonartificial_location): New prototype.
1864 * tree.c (block_nonartificial_location): New function.
1865 * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial
1866 if artificial attribute is present on abstract inline decl.
1867 * c-common.c (handle_artificial_attribute): New function.
1868 (c_common_attribute_table): Add artificial attribute.
1869 * final.c (override_filename, override_linenum): New variables.
1870 (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename
1871 and override_linenum if inside of a block inlined from
1872 __attribute__((__artificial__)) function.
1873 (notice_source_line): Honor override_filename and override_linenum.
1874 * doc/extend.texi: Document __attribute__((__artificial__)).
1875 * config/i386/emmintrin.h: Add __artificial__ attribute to
1876 all __always_inline__ functions.
1877 * config/i386/mmintrin.h: Likewise.
1878 * config/i386/tmmintrin.h: Likewise.
1879 * config/i386/mm3dnow.h: Likewise.
1880 * config/i386/pmmintrin.h: Likewise.
1881 * config/i386/ammintrin.h: Likewise.
1882 * config/i386/xmmintrin.h: Likewise.
1883 * config/i386/smmintrin.h: Likewise.
1884 * config/i386/bmmintrin.h: Likewise.
1885 * config/i386/mmintrin-common.h: Likewise.
1886
1887 PR middle-end/28755
1888 * expr.c (expand_constructor): New function.
1889 (expand_expr_real_1) <case CONSTRUCTOR>: Call it.
1890 (expand_expr_real_1) <case ARRAY_REF>: Call it if VALUE is
1891 CONSTRUCTOR.
1892
1893 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
1894
1895 * config/mips/mips.c (dump_constants_1): Generalize to include
1896 fractional and accumulator modes.
1897
1898 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk>
1899
1900 * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros.
1901 * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP
1902 flags for MIPS16.
1903 (override_options): Check TARGET_HARD_FLOAT_ABI instead of
1904 TARGET_HARD_FLOAT when testing whether -mpaired-single is
1905 supported.
1906 (mips_conditional_register_usage): Check ISA_HAS_DSP instead of
1907 TARGET_DSP.
1908 * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of
1909 TARGET_DSPR2.
1910 * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF.
1911 (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require
1912 TARGET_HARD_FLOAT.
1913 (<u>mulsidi3_32bit_internal, <u>msubsidi4, <u>maddsidi4): Check
1914 ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2.
1915 * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP
1916 throughout.
1917 * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and
1918 TARGET_HAS_DSPR2.
1919 * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2
1920 instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2.
1921 * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns.
1922
1923 2007-09-22 Jason Merrill <jason@redhat.com>
1924
1925 PR c++/19407
1926 * attribs.c (lookup_attribute_spec): Split out...
1927 (decl_attributes): From here.
1928 * tree.h: Declare it.
1929
1930 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk>
1931
1932 * doc/sourcebuild.texi: Document dg-add-options mips16_attribute.
1933
1934 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
1935
1936 * tree-inline.c (remap_type_1): Correctly chain variants.
1937
1938 2007-09-22 Richard Guenther <rguenther@suse.de>
1939
1940 PR tree-optimization/33146
1941 * fold-const.c (fold_binary): Use the original tree
1942 for negating.
1943 * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer
1944 also changes "sign".
1945
1946 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
1947
1948 PR target/32325
1949 * except.c (finish_eh_generation): Call commit_edge_insertions if
1950 there are insns queued on the entry edge.
1951 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on
1952 the entry edge.
1953
1954 2007-09-22 Richard Sandiford <rsandifo@nildram.co.uk>
1955
1956 * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document.
1957
1958 2007-09-19 Michael Meissner <michael.meissner@amd.com>
1959
1960 * gcc/config/i386/i386.c: Delete trailing whitespace.
1961 * gcc/config/i386/i386.h: Ditto.
1962 * gcc/config/i386/bmmintrin.h: Ditto.
1963 * gcc/config/i386/sync.md: Ditto.
1964 * gcc/config/i386/ppro.md: Ditto.
1965 * gcc/config/i386/mmx.md: Ditto.
1966 * gcc/config/i386/constraints.md: Ditto.
1967 * gcc/config/i386/sse.md: Ditto.
1968 * gcc/config/i386/athlon.md: Ditto.
1969 * gcc/config/i386/i386.md: Ditto.
1970
1971 2007-09-21 Richard Guenther <rguenther@suse.de>
1972
1973 PR tree-optimization/33508
1974 * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid
1975 quadratic loop by keeping a bitmap of variables we have
1976 to clobber all subvariables for.
1977 (set_initial_properties): Likewise.
1978
1979 2007-09-21 Richard Sandiford <rsandifo@nildram.co.uk>
1980
1981 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete.
1982
1983 2007-09-20 Nigel Stephens <nigel@mips.com>
1984 Chao-ying Fu <fu@mips.com>
1985
1986 * c-decl.c (finish_declspecs): When _Sat is used without
1987 _Fract or _Accum, set the default type to cts_fract.
1988 This avoids a warning of "type defaults to int".
1989
1990 2007-09-20 Joseph Myers <joseph@codesourcery.com>
1991
1992 * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool
1993 bit-fields wider than one bit.
1994
1995 2007-09-20 Jakub Jelinek <jakub@redhat.com>
1996
1997 PR debug/33316
1998 * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL
1999 DECL_NAME.
2000 * dbxout.c (dbxout_type): Likewise.
2001
2002 PR c/33238
2003 PR c/27301
2004 * gimplify.c (gimplify_vla_decl): New function.
2005 (gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl.
2006 Call it.
2007 (gimplify_target_expr): Handle variable length TARGET_EXPRs.
2008
2009 2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk>
2010
2011 * doc/invoke.texi (-minterlink-mips16): Document.
2012 * config/mips/mips.opt (minterlink-mips16): New option.
2013 * config/mips/mips.c (mips_function_ok_for_sibcall): Handle
2014 -minterlink-mips16
2015
2016 2007-09-20 Joseph Myers <joseph@codesourcery.com>
2017
2018 * doc/extend.texi (Attribute Syntax): Remove old speculative
2019 future direction.
2020
2021 2007-09-20 Mark Shinwell <shinwell@codesourcery.com>
2022
2023 * combine.c: Include cgraph.h.
2024 (setup_incoming_promotions): Rework to allow more aggressive
2025 elimination of sign extensions when all call sites of the
2026 current function are known to lie within the current unit.
2027
2028 2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk>
2029
2030 * dse.c (find_shift_sequence): No-op rework of control flow.
2031
2032 2007-09-19 Richard Sandiford <rsandifo@nildram.co.uk>
2033
2034 * config/mips/mips.c (build_mips16_call_stub): Tidy. Fix second
2035 GPR for DCmode on 64-bit targets. Remove redundant fallback.
2036
2037 2007-09-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2038
2039 * cfgexpand.c (dump_stack_var_partition): Use the correct
2040 index for the offset.
2041
2042 2007-09-19 Joseph Myers <joseph@codesourcery.com>
2043
2044 * config/mips/sde.h: Switch to GPLv3.
2045
2046 2007-09-19 Eric Botcazou <ebotcazou@adacore.com>
2047
2048 * tree-sra.c (decide_block_copy): Decide if there are groups.
2049
2050 2007-09-19 Roman Zippel <zippel@linux-m68k.org>
2051
2052 * config/m68k/m68k.c (output_move_himode): Remove jump table
2053 recognition.
2054 config/m68k/m68k.md (lea): Likewise.
2055 * config/m68k/m68k.c (print_operand_address): Use simple pc
2056 relative addressing.
2057
2058 2007-09-19 Bernd Schmidt <bernd.schmidt@analog.com>
2059
2060 * doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument.
2061 * final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument
2062 default definition.
2063 (asm_insn_count): Pass template as second argument to it.
2064 * config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
2065 * config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
2066 * config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
2067 * config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
2068 * config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise.
2069 (sh_insn_length_adjustment): Pass template as second argument to it.
2070 * config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro.
2071
2072 * config/bfin/bfin.md (define_asm_attributes): New.
2073
2074 2007-09-19 Jie Zhang <jie.zhang@analog.com>
2075
2076 * config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h
2077 to tm_file.
2078 * config/bfin/print-sysroot-suffix.sh: New.
2079 * config/bfin/t-bfin-elf (EXTRA_PARTS): Remove.
2080 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
2081 MULTILIB_EXCEPTIONS): Redefine with new multilibs.
2082 * config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove.
2083 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
2084 MULTILIB_EXCEPTIONS): Redefine with new multilibs.
2085 * config/bfin/t-bfin-linux (EXTRA_PARTS): Remove.
2086 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES,
2087 MULTILIB_EXCEPTIONS): Redefine with new multilibs.
2088 (linux-sysroot-suffix.h): New target.
2089 * config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask.
2090 (mspecld-anomaly): Likewise.
2091 * config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from
2092 (enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525,
2093 BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542,
2094 BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549.
2095 (bfin_si_revision): Declare.
2096 (bfin_workarounds): Declare.
2097 (WA_SPECULATIVE_LOADS): Define.
2098 (ENABLE_WA_SPECULATIVE_LOADS): Define.
2099 (WA_SPECULATIVE_SYNCS): Define.
2100 (ENABLE_WA_SPECULATIVE_SYNCS): Define.
2101 * config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o.
2102 (LIB_SPEC): Add %s to the linker scripts.
2103 Use proper linker script for bf522, bf525, bf527,
2104 bf538, bf539, bf542, bf544, bf548, and bf549.
2105 * config/bfin/bfin.c (bfin_si_revision): Define.
2106 (bfin_workarounds): Define.
2107 (struct bfin_cpu): New.
2108 (bfin_cpus): New.
2109 (bfin_handle_option): Handle silicon revision part of -mcpu option.
2110 (override_options): Set bfin_workarounds.
2111 (length_for_loop): Replace TARGET_CSYNC_ANOMALY with
2112 ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with
2113 ENABLE_WA_SPECULATIVE_LOADS.
2114 (bfin_reorg): Likewise.
2115 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2116 macros for bf522, bf525, bf527, bf538, bf539,
2117 bf542, bf544, bf548, and bf549.
2118 Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed.
2119 Don't define __ID_SHARED_LIB__ when -msep-data.
2120 (TARGET_DEFAULT): Define as 0.
2121 (DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option.
2122 * doc/invoke.texi (Blackfin Options): Document silicon
2123 revision part of -mcpu option and it now accepts bf522, bf525,
2124 bf527, bf538, bf539, bf542, bf544, bf548, and bf549.
2125
2126 2007-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2127
2128 * alias.c (memory_modified_1): Deconstify.
2129 (memory_modified_in_insn_p): Don't use const_note_stores.
2130 * rtl.h (const_note_stores): Delete.
2131 * rtlanal.c (const_note_stores): Likewise.
2132
2133 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk>
2134
2135 * dse.c (find_shift_sequence): Temporarily revert to forbidding
2136 word shifts.
2137
2138 2007-09-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
2139
2140 PR target/33388
2141 PR target/33397
2142 * config/fr30/fr30.md (addsi3): Check REG_P() before calling REGNO().
2143 (addsi_small_int): Likewise.
2144 (addsi_big_int): Use rtx_equal_p() instead of REGNO() comparison.
2145 (one_cmplsi2): Likewise.
2146 (negsi2): Delete.
2147 (enter_func): Expand insn using hard_frame_pointer_rtx and
2148 stack_pointer_rtx.
2149 (*enter_func): New.
2150 * config/fr30/fr30.c (fr30_expand_prologue): Check for
2151 hard_frame_pointer_rtx instead of using REGNO() check.
2152 Properly sign extend GEN_INT() argument.
2153
2154 2007-09-18 Roman Zippel <zippel@linux-m68k.org>
2155
2156 * config/m68k/m68k.c (override_options): Remove USE_GAS,
2157 use %. syntax.
2158 (output_dbcc_and_branch, output_scc_di): Replace all jbcc
2159 alternatives with just jcc.
2160 * config/m68k/m68k.md (addsi_lshrsi_31, beq0_di, bne0_di,
2161 bge0_di, blt0_di, bgtu, bltu, bgeu, bleu, bgtu_rev,
2162 bltu_rev, bgeu_rev, bleu_rev, jump, dbne_hi, dbne_si,
2163 dbge_hi, dbge_si): Likewise.
2164
2165 2007-09-18 Roman Zippel <zippel@linux-m68k.org>
2166
2167 * config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered,
2168 bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev,
2169 bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev,
2170 bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev,
2171 bunlt_rev, bltgt_rev): Replace all fbcc with fjcc.
2172
2173 2007-09-18 Maxim Kuvyrkov <maxim@codesourcery.com>
2174
2175 * config/m68k/m68k-devices.def (51qe): New device.
2176 * config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit. Add it
2177 to all uses of FL_FOR_isa_c for compatibility.
2178 (all_microarchs): Add cfv1 microarchitecture.
2179 (m68k_handle_option): Handle m51qe option.
2180 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE.
2181 (TUNE_CFV1): New macro.
2182 (enum uarch_type): Add ucfv1.
2183 * doc/invoke.texi: Document 51qe device and cfv1 microarchitecture.
2184
2185 2007-09-18 Richard Guenther <rguenther@suse.de>
2186
2187 PR tree-optimization/31863
2188 * tree-ssa-structalias.c (create_variable_info_for): Always
2189 free the fieldstack.
2190
2191 2007-09-18 Dorit Nuzman <dorit@il.ibm.com>
2192
2193 * opts.c (decode_options): Enable vectorization under -O3.
2194
2195 2007-09-18 Richard Guenther <rguenther@suse.de>
2196
2197 PR tree-optimization/33340
2198 * tree-ssa-sccvn.c (set_ssa_val_to): Do not set values to
2199 SSA_NAMEs that occur in abnormal PHI nodes.
2200
2201 2007-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2202
2203 * tree-cfg.c (is_ctrl_altering_stmt, tree_block_ends_with_call_p):
2204 Don't use const_get_call_expr_in.
2205 * tree-gimple.c (const_get_call_expr_in): Delete.
2206 * tree-gimple.h (const_get_call_expr_in): Likewise.
2207
2208 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk>
2209
2210 * df-scan.c (df_notes_rescan): Do nothing if the instruction does
2211 not yet have a basic block.
2212 * dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN.
2213
2214 2007-09-18 Richard Sandiford <rsandifo@nildram.co.uk>
2215
2216 * config/mips/mips.c (mips_file_start): Add ".previous" directives
2217 to both ".section"s.
2218
2219 2007-09-17 Richard Sandiford <rsandifo@nildram.co.uk>
2220
2221 * config/mips/mips.c (mips_output_mi_thunk): Use
2222 mips_function_ok_for_sibcall and const_call_insn_operand
2223 to determine if a direct sibcall is allowed. Use
2224 mips_classify_symbol to determine a global pointer is needed.
2225
2226 2007-09-17 Richard Sandiford <rsandifo@nildram.co.uk>
2227
2228 * config/mips/mips.md (*clear_upper32): Use "W" as the memory operand.
2229
2230 2007-09-17 Chao-ying Fu <fu@mips.com>
2231 Nigel Stephens <nigel@mips.com>
2232
2233 * config/fixed-bit.h: New file.
2234 * config/fixed-bit.c: New file.
2235 * doc/libgcc.texi (Fixed-point fractional library routines): New node.
2236
2237 2007-09-18 Jakub Jelinek <jakub@redhat.com>
2238
2239 * c-format.h (format_kind_info): Add alloc_char field.
2240 * c-format.c (scanf_flag_specs): Add 'm'.
2241 (scanf_flag_pairs): Add 'a', 'm' pair.
2242 (scan_char_table): Allow 'm' modifier for c, s, [, C and S.
2243 (format_types_orig): Add alloc_char fields.
2244 (check_format_info_main): Rename aflag to alloc_flag.
2245 Handle fki->alloc_char. modifier after width and before length
2246 modifiers. Move FMT_FLAG_SCANF_A_KLUDGE handling before
2247 length modifiers as well.
2248 * config/sol2-c.c (solaris_format_types): Add alloc_char field.
2249
2250 PR middle-end/33423
2251 * builtins.c (expand_builtin_memory_chk): Handle COMPOUND_EXPRs
2252 returned by build_call_expr.
2253
2254 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
2255
2256 * tree-sra.c (maybe_lookup_element_for_expr) <COMPONENT_REF>: Return
2257 NULL for variable-sized records too.
2258 (sra_walk_expr) <COMPONENT_REF>: Stop at variable-sized records too.
2259
2260 2007-09-17 Tom Tromey <tromey@redhat.com>
2261
2262 * c-decl.c (pushdecl): Don't set DECL_LANG_SPECIFIC.
2263 (c_builtin_function): Likewise.
2264 (grokdeclarator): Likewise.
2265
2266 2007-09-17 Zdenek Dvorak <ook@ucw.cz>
2267
2268 PR rtl-optimization/26449
2269 * loop-invariant.c (move_invariant_reg): Do not use force_operand.
2270 (seq_insns_valid_p): Removed.
2271
2272 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
2273
2274 * tree-nomudflap.c (gate_mudflap): New static function.
2275 (pass_mudflap_1): Use it as gate function.
2276 (pass_mudflap_2): Likewise.
2277
2278 2007-09-17 Jan Hubicka <jh@suse.cz>
2279
2280 PR middle-end/33348
2281 PR target/33406
2282 * loop-invariant.c (move_invariant_reg): Unshare sequence.
2283
2284 2007-09-17 Victor Kaplansky <victork@il.ibm.com>
2285
2286 PR tree-optimization/33319
2287 * tree-vect-analyze.c (vect_same_range_drs): New.
2288 (vect_vfa_range_equal): New.
2289 (vect_is_duplicate_ddr): Removed.
2290 (vect_mark_for_runtime_alias_test): Do not perform marking when
2291 optimizing for size or max_param for alias checking is zero.
2292 Move the function before vect_analyze_data_ref_dependence.
2293 (vect_analyze_data_ref_dependence): Add call to
2294 vect_mark_for_runtime_alias_test in two cases when dependence
2295 is not clear.
2296 (vect_analyze_data_ref_dependences): Do not call to
2297 vect_mark_for_runtime_alias_test.
2298 (vect_prune_runtime_alias_test_list): New.
2299 (vect_analyze_loop): Add call to vect_prune_runtime_alias_test_list.
2300 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2301 Update vec_outside_cost.
2302 (vect_vfa_segment_size): More compact code, use TYPE_SIZE_UNIT.
2303 (vect_create_cond_for_alias_checks): Build the base address of data
2304 reference from DR_GROUP_FIRST_DR.
2305 (vect_loop_versioning): New.
2306 (vect_transform_loop): Add a call to vect_loop_versioning.
2307 Remove factored out code.
2308
2309 2007-09-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2310
2311 PR middle-end/33273
2312 * expr.c (store_expr): Call adjust_address to change mode of dest_mem
2313 to BLKmode.
2314
2315 2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk>
2316
2317 * dse.c (find_shift_sequence): Allow word as well as subword shifts.
2318 Do the tentative shift expansion with the DF_NO_INSN_RESCAN flag set.
2319 Fix the call to insn_rtx_cost. Skip access sizes that require a
2320 real truncation of the store register. Use convert_move instead
2321 of gen_lowpart when narrowing the result.
2322 (replace_read): Use convert_move instead of gen_lowpart when
2323 narrowing the store rhs.
2324
2325 2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk>
2326
2327 * config/mips/mips.md (SHORT): Fix long line.
2328 (SUBDI): New mode iterator. Extend the shift-and-truncate insns
2329 to QImode and HImode.
2330
2331 2007-09-16 Richard Sandiford <rsandifo@nildram.co.uk>
2332
2333 * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Define.
2334
2335 2007-09-15 Zdenek Dvorak <ook@ucw.cz>
2336
2337 * tree-parloops.c: New file.
2338 * tree-ssa-operands.h (free_stmt_operands): Declare.
2339 * tree-ssa-loop-manip.c (split_loop_exit_edge): Return the new basic
2340 block.
2341 * tree-pass.h (pass_parallelize_loops): Declare.
2342 * omp-low.c (expand_omp_parallel, expand_omp_for): Update SSA form for
2343 virtual operands.
2344 (build_omp_regions_1): Allow analysing just a single OMP region and
2345 its subregions.
2346 ( build_omp_regions_root, omp_expand_local): New functions.
2347 (build_omp_regions): Add argument to build_omp_regions_1 call.
2348 * builtins.def (DEF_GOMP_BUILTIN): Initialize OMP builtins when
2349 autoparallelization is run.
2350 * timevar.def (TV_TREE_PARALLELIZE_LOOPS): New.
2351 * tree-ssa-loop.c (gate_tree_parallelize_loops, tree_parallelize_loops,
2352 pass_parallelize_loops): New.
2353 * common.opt (ftree-parallelize-loops): New.
2354 * tree-flow.h (omp_expand_local, tree_duplicate_sese_tail,
2355 parallelize_loops): Declare.
2356 (add_phi_args_after_copy, split_loop_exit_edge): Declaration changed.
2357 * Makefile.in (tree-parloops.o): Added.
2358 * tree-cfg.c (add_phi_args_after_copy_edge, tree_duplicate_sese_tail):
2359 New functions.
2360 (add_phi_args_after_copy_bb): Use add_phi_args_after_copy_edge.
2361 (add_phi_args_after_copy): Call add_phi_args_after_copy_edge for
2362 one extra edge as well.
2363 (tree_duplicate_sese_region): Add argument to add_phi_args_after_copy.
2364 Use VEC_free to free doms vector.
2365 (move_block_to_fn): Update loop info. Remove phi nodes for virtual
2366 operands. Recompute operand caches in the new function.
2367 (move_sese_region_to_fn): Update loop info.
2368 * passes.c (init_optimization_passes): Add pass_parallelize_loops.
2369 * tree-ssa-operands.c (free_stmt_operands): New function.
2370
2371 * doc/passes.texi: Document autoparallelization.
2372 * doc/invoke.texi (-ftree-parallelize-loops): New option.
2373
2374 2007-09-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2375
2376 PR target/33062
2377 * pa.c (function_value): Use GET_MODE_BITSIZE instead of
2378 TYPE_PRECISION.
2379
2380 2007-09-15 Dorit Nuzman <dorit@il.ibm.com>
2381
2382 * tree-vect-transform.c (vect_get_vec_defs_for_stmt_copy): check if
2383 the VEC is not NULL.
2384 (vectorizable_type_demotion, vectorizable_type_promotion): Check that
2385 get_vectype_for_scalar_type succeeded.
2386 (vectorizable_conversion): Likewise.
2387
2388 2007-09-14 Jan Hubicka <jh@suse.cz>
2389
2390 * config/i386/i386.md (*floatdi<mode>2_i387): Guard against
2391 TARGET_64BIT.
2392
2393 2007-09-14 Uros Bizjak <ubizjak@gmail.com>
2394
2395 PR target/33438
2396 * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary
2397 register when operands[2] equals operands[1].
2398 (remainderxf3): Ditto.
2399
2400 2007-09-14 Sandra Loosemore <sandra@codesourcery.com>
2401 Nigel Stephens <nigel@mips.com>
2402
2403 * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document.
2404 * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
2405 (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to
2406 declaration.
2407 (_Unwind_ForcedUnwind): Likewise.
2408 (_Unwind_Resume): Likewise.
2409 (_Unwind_Resume_or_Rethrow): Likewise.
2410 (_Unwind_Backtrace): Likewise.
2411 (_Unwind_SjLj_RaiseException): Likewise.
2412 (_Unwind_SjLj_ForcedUnwind): Likewise.
2413 (_Unwind_SjLj_Resume): Likewise.
2414 (_Unwind_SjLj_Resume_or_Rethrow): Likewise.
2415 * unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE
2416 to definition.
2417 (_Unwind_ForcedUnwind): Likewise.
2418 (_Unwind_Resume): Likewise.
2419 (_Unwind_Resume_or_Rethrow): Likewise.
2420 (_Unwind_Backtrace): Likewise.
2421 * unwind-compat.c (_Unwind_Backtrace): Likewise.
2422 (_Unwind_ForcedUnwind): Likewise.
2423 (_Unwind_RaiseException): Likewise.
2424 (_Unwind_Resume): Likewise.
2425 (_Unwind_Resume_or_Rethrow): Likewise.
2426
2427 * config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force
2428 nomips16 mode when IN_LIBGCC2 with hard float.
2429
2430 2007-09-14 Richard Sandiford <rsandifo@nildram.co.uk>
2431
2432 * config/mips/sdemtk.opt: Update to GPLv3.
2433 * config/mips/sdemtk.h: Likewise.
2434
2435 2007-09-14 Nigel Stephens <nigel@mips.com>
2436
2437 * config.gcc (mips*-*-linux*): Recognise mipsisa32r2 and set
2438 MIPS_ISA_DEFAULT appropriately. Don't make soft-float the default
2439 for mipsisa32-*-linux*.
2440
2441 2007-09-14 Nigel Stephens <nigel@mips.com>
2442 David Ung <davidu@mips.com>
2443 Thiemo Seufer <ths@mips.com>
2444 Richard Sandiford <richard@codesourcery.com>
2445
2446 * config.gcc (mips*-sde-elf*): Add support for the SDE C libraries.
2447 * configure.ac: Add a mipssde threading type.
2448 * configure: Regenerate.
2449 * config/mips/sdemtk.h: New file.
2450 * config/mips/t-sdemtk: Likewise.
2451 * config/mips/sdemtk.opt: Likewise.
2452 * gthr-mipssde.h: Likewise.
2453 * config/mips/sde.h (FUNCTION_PROFILER): Move to config/mips/sdemtk.h.
2454 * config/mips/mips.h (MIPS_SAVE_REG_FOR_PROFILING_P): New macro.
2455 (MIPS_ICACHE_SYNC): New macro, split from ...
2456 * config/mips/mips.md (clear_cache): ...here.
2457 * config/mips/mips.c (mips_save_reg_p): Check
2458 MIPS_SAVE_REG_FOR_PROFILING_P on profiled functions.
2459 (build_mips16_function_stub): Use targetm.strip_name_encoding.
2460 (build_mips16_call_stub): Likewise.
2461
2462 2007-09-14 Richard Sandiford <richard@codesourcery.com>
2463
2464 * Makefile.in (stmp-int-hdrs): Depend on fixinc_list.
2465
2466 2007-09-14 Jakub Jelinek <jakub@redhat.com>
2467
2468 PR target/32337
2469 * config/ia64/ia64.c (find_gr_spill): Don't decrement
2470 current_frame_info.n_local_regs. Don't return emitted local
2471 regs.
2472 (ia64_compute_frame_size): Improve unwind hack to put
2473 RP, PFS, FP in that order by allowing some of the registers
2474 been already emitted, as long as they are emitted to the
2475 desired register.
2476
2477 2007-09-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2478
2479 * config/spu/vmx2spu.h (vec_extract, vec_insert, vec_lvlx,
2480 vec_lvlxl, vec_lvrx, vec_lvrxl, vec_promote, vec_splats,
2481 vec_stvlx, vec_stvlxl, vec_stvrx, vec_stvrxl): New intrinsics.
2482
2483 2007-09-13 Eric Christopher <echristo@apple.com>
2484 Kenneth Zadeck <zadeck@naturalbridge.com>
2485
2486 * dse.c (find_shift_sequence): New function.
2487 (replace_read): Add case to remove read if it requires shift.
2488 * config/i386/i386.c (ix86_expand_prologue): Fixed typo in comment.
2489
2490 2007-09-13 Tom Tromey <tromey@redhat.com>
2491
2492 * c-common.c (fname_as_string): Update.
2493 * c-parser.c (c_parser) <lex_untranslated_string>: New field.
2494 (c_lex_one_token): Update. Add 'parser' argument.
2495 (c_parser_simple_asm_expr): Update.
2496 (c_parser_attributes): Update.
2497 (c_parser_asm_statement): Update.
2498 (c_parser_asm_operands): Update.
2499 (c_parser_peek_token): Update.
2500 (c_parser_peek_2nd_token): Update.
2501 * c-lex.c (c_lex_string_translate): Remove.
2502 (c_lex_return_raw_strings): Likewise.
2503 (c_lex_with_flags): Added 'lex_flags' argument.
2504 (lex_string): Added 'translate' argument.
2505 * c-pragma.h (c_lex_with_flags): Update.
2506 (c_lex_string_translate, c_lex_return_raw_strings): Remove.
2507 (C_LEX_STRING_NO_TRANSLATE): New define.
2508 (C_LEX_RAW_STRINGS): Likewise.
2509
2510 2007-09-13 Bernd Schmidt <bernd.schmidt@analog.com>
2511
2512 From Jie Zhang:
2513 * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_ONES,
2514 BFIN_BUILTIN_CPLX_MUL_16_S40, BFIN_BUILTIN_CPLX_MAC_16_S40,
2515 BFIN_BUILTIN_CPLX_MSU_16_S40, and BFIN_BUILTIN_CPLX_SQU.
2516 (bfin_init_builtins): Initialize __builtin_bfin_ones,
2517 __builtin_bfin_min_fr1x16, __builtin_bfin_max_fr1x16,
2518 __builtin_bfin_min_fr1x32, __builtin_bfin_max_fr1x32,
2519 __builtin_bfin_cmplx_add, __builtin_bfin_cmplx_sub,
2520 __builtin_bfin_cmplx_mul_s40, __builtin_bfin_cmplx_mac_s40,
2521 __builtin_bfin_cmplx_msu_s40 and __builtin_bfin_csqu_fr16.
2522 (bdesc_1arg): Add __builtin_bfin_ones.
2523 (bfin_expand_builtin): Expand __builtin_bfin_cmplx_mul_s40,
2524 __builtin_bfin_cmplx_mac_s40, __builtin_bfin_cmplx_msu_s40,
2525 and __builtin_bfin_csqu_fr16.
2526 * config/bfin/bfin.md (UNSPEC_ONES): New constant.
2527 (ones): New define_insn.
2528 (ssaddhi3_parts): New define_insn.
2529 (sssubhi3_parts): New define_insn.
2530 (flag_mulhi_parts): New define_insn.
2531
2532 2007-09-13 Seongbae Park <seongbae.park@gmail.com>
2533
2534 * common.opt (femit-class-debug-always): Turn off by default.
2535
2536 2007-09-13 Bernd Schmidt <bernd.schmidt@analog.com>
2537
2538 * config/bfin/bfin.md (reload_outpdi, reload_inpdi): New patterns.
2539 * config/bfin/bfin.c (bfin_secondary_reload): Make sure we use them.
2540
2541 2007-09-13 James E. Wilson <wilson@specifix.com>
2542
2543 PR tree-optimization/33389
2544 * tree-ssa-operands.c (append_vuse): If ann->in_vdef_list true,
2545 then set build_loads before returning.
2546
2547 2007-09-13 Sandra Loosemore <sandra@codesourcery.com>
2548 David Ung <davidu@mips.com>
2549
2550 * config/mips/mips.h (ASM_OUTPUT_REG_PUSH): Replace {d}subu with
2551 {d}addiu and a negative immediate such that it works with MIPS16
2552 instructions.
2553
2554 2007-09-13 H.J. Lu <hongjiu.lu@intel.com>
2555
2556 PR bootstrap/33418
2557 * configure.ac (ld_vers): Support Linux linker.
2558 * configure: Regenerated.
2559
2560 2007-09-13 Richard Sandiford <richard@codesourcery.com>
2561 Sandra Loosemore <sandra@codesourcery.com>
2562
2563 * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Delete.
2564 (SYMBOL_REF_MIPS16_FUNC_P): Delete.
2565 * config/mips/mips.c (mips_attribute_table): Turn mips16 and
2566 nomips16 into decl attributes.
2567 (TARGET_INSERT_ATTRIBUTES): Override.
2568 (TARGET_MERGE_DECL_ATTRIBUTES): Likewise.
2569 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Always return true.
2570 (mips_mips16_type_p, mips_nomips16_type_p): Delete in favor of...
2571 (mips_mips16_decl_p, mips_nomips16_decl_p): ...these new functions.
2572 (mips_comp_type_attributes): Remove mips16 and nomips16 handling.
2573 (mips_use_mips16_mode_p): Reimplement as a function that takes
2574 a decl and considers only decl attributes. If the decl is nested
2575 function, use its parent attributes.
2576 (mips_function_ok_for_sibcall): Use mips_use_mips16_mode_p
2577 instead of SYMBOL_REF_MIPS16_FUNC_P.
2578 (mips_set_mips16_mode): Move call to sorry here from old
2579 mips_use_mips16_mode_p.
2580 (mflip_mips16_entry): New structure.
2581 (mflip_mips16_htab): New variable.
2582 (mflip_mips16_htab_hash, mflip_mips16_htab_eq): New functions.
2583 (mflip_mips16_use_mips16_p, mips_insert_attributes): Likewise.
2584 (mips_merge_decl_attributes): New function.
2585 (mips_set_current_function): Reinstate call to mips_set_mips16_mode.
2586 Use mips_use_mips16_mode_p.
2587 (mips_output_mi_thunk): Use mips_use_mips16_mode_p instead of
2588 SYMBOL_REF_MIPS16_FUNC_P.
2589 (mips_encode_section_info): Don't set SYMBOL_FLAG_MIPS16_FUNC.
2590
2591 2007-09-13 Richard Sandiford <richard@codesourcery.com>
2592
2593 * c-parser.c (c_parser_struct_declaration): Check for a null return.
2594
2595 2007-09-13 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2596
2597 PR driver/33309
2598 * gcc.c (xputenv): Make argument const, and use CONST_CAST.
2599
2600 2007-09-12 Michael Meissner <michael.meissner@amd.com>
2601 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2602 Tony Linthicum <tony.linthicum@amd.com>
2603
2604 * tree.h (function_args_iterator): New type to iterate over
2605 function arguments.
2606 (FOREACH_FUNCTION_ARGS_PTR): Iterator macros for iterating over
2607 function arguments providing a pointer to the argument.
2608 (FOREACH_FUNCTION_ARGS): Iterator macros for iterating over
2609 function arguments providing the argument.
2610 (function_args_iter_init): Inline function to initialize
2611 function_args_iterator.
2612 (function_args_iter_cond_ptr): Inline function to return the next
2613 pointer to hold the argument.
2614 (function_args_iter_cond): Inline function to return the next
2615 argument.
2616 (function_args_iter_cond_next): Advance the function args
2617 iterator.
2618 (stdarg_p): New function, return true if variable argument
2619 function.
2620 (prototype_p): New function, return true if function is
2621 prototyped.
2622 (function_args_count): New function, count the number of arguments
2623 of a function.
2624
2625 * tree.c (stdarg_p): New function, return true if variable
2626 argument function.
2627 (prototype_p): New function, return true if function is
2628 prototyped.
2629
2630 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
2631 (TARGET_ROUND): New macro for the round/ptest instructions which
2632 are shared between SSE4.1 and SSE5.
2633 (OPTION_MASK_ISA_ROUND): Ditto.
2634 (OPTION_ISA_ROUND): Ditto.
2635 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
2636 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
2637
2638 * config/i386/i386.opt (-msse5): New switch for SSE5 support.
2639 (-mfused-madd): New switch to give users control over whether the
2640 compiler optimizes to use the multiply/add SSE5 instructions.
2641
2642 * config/i386/i386.c (m_AMD_MULTIPLE): Rename from
2643 m_ATHLON_K8_AMDFAM10, and change all uses.
2644 (enum pta_flags): Add PTA_SSE5.
2645 (ix86_handle_option): Turn off 3dnow if -msse5.
2646 (override_options): Add SSE5 support.
2647 (print_operand): %Y prints comparison codes for SSE5 com/pcom
2648 instructions.
2649 (ix86_expand_sse_movcc): Add SSE5 support.
2650 (ix86_expand_sse5_unpack): New function to use pperm to unpack a
2651 vector type to the next largest size.
2652 (ix86_expand_sse5_pack): New function to use pperm to pack a
2653 vector type to the next smallest size.
2654 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
2655 (IX86_BUILTIN_FMADDSD): Ditto.
2656 (IX86_BUILTIN_FMADDPS): Ditto.
2657 (IX86_BUILTIN_FMADDPD): Ditto.
2658 (IX86_BUILTIN_FMSUBSS): Ditto.
2659 (IX86_BUILTIN_FMSUBSD): Ditto.
2660 (IX86_BUILTIN_FMSUBPS): Ditto.
2661 (IX86_BUILTIN_FMSUBPD): Ditto.
2662 (IX86_BUILTIN_FNMADDSS): Ditto.
2663 (IX86_BUILTIN_FNMADDSD): Ditto.
2664 (IX86_BUILTIN_FNMADDPS): Ditto.
2665 (IX86_BUILTIN_FNMADDPD): Ditto.
2666 (IX86_BUILTIN_FNMSUBSS): Ditto.
2667 (IX86_BUILTIN_FNMSUBSD): Ditto.
2668 (IX86_BUILTIN_FNMSUBPS): Ditto.
2669 (IX86_BUILTIN_FNMSUBPD): Ditto.
2670 (IX86_BUILTIN_PCMOV_V2DI): Ditto.
2671 (IX86_BUILTIN_PCMOV_V4SI): Ditto.
2672 (IX86_BUILTIN_PCMOV_V8HI): Ditto.
2673 (IX86_BUILTIN_PCMOV_V16QI): Ditto.
2674 (IX86_BUILTIN_PCMOV_V4SF): Ditto.
2675 (IX86_BUILTIN_PCMOV_V2DF): Ditto.
2676 (IX86_BUILTIN_PPERM): Ditto.
2677 (IX86_BUILTIN_PERMPS): Ditto.
2678 (IX86_BUILTIN_PERMPD): Ditto.
2679 (IX86_BUILTIN_PMACSSWW): Ditto.
2680 (IX86_BUILTIN_PMACSWW): Ditto.
2681 (IX86_BUILTIN_PMACSSWD): Ditto.
2682 (IX86_BUILTIN_PMACSWD): Ditto.
2683 (IX86_BUILTIN_PMACSSDD): Ditto.
2684 (IX86_BUILTIN_PMACSDD): Ditto.
2685 (IX86_BUILTIN_PMACSSDQL): Ditto.
2686 (IX86_BUILTIN_PMACSSDQH): Ditto.
2687 (IX86_BUILTIN_PMACSDQL): Ditto.
2688 (IX86_BUILTIN_PMACSDQH): Ditto.
2689 (IX86_BUILTIN_PMADCSSWD): Ditto.
2690 (IX86_BUILTIN_PMADCSWD): Ditto.
2691 (IX86_BUILTIN_PHADDBW): Ditto.
2692 (IX86_BUILTIN_PHADDBD): Ditto.
2693 (IX86_BUILTIN_PHADDBQ): Ditto.
2694 (IX86_BUILTIN_PHADDWD): Ditto.
2695 (IX86_BUILTIN_PHADDWQ): Ditto.
2696 (IX86_BUILTIN_PHADDDQ): Ditto.
2697 (IX86_BUILTIN_PHADDUBW): Ditto.
2698 (IX86_BUILTIN_PHADDUBD): Ditto.
2699 (IX86_BUILTIN_PHADDUBQ): Ditto.
2700 (IX86_BUILTIN_PHADDUWD): Ditto.
2701 (IX86_BUILTIN_PHADDUWQ): Ditto.
2702 (IX86_BUILTIN_PHADDUDQ): Ditto.
2703 (IX86_BUILTIN_PHSUBBW): Ditto.
2704 (IX86_BUILTIN_PHSUBWD): Ditto.
2705 (IX86_BUILTIN_PHSUBDQ): Ditto.
2706 (IX86_BUILTIN_PROTB): Ditto.
2707 (IX86_BUILTIN_PROTW): Ditto.
2708 (IX86_BUILTIN_PROTD): Ditto.
2709 (IX86_BUILTIN_PROTQ): Ditto.
2710 (IX86_BUILTIN_PROTB_IMM): Ditto.
2711 (IX86_BUILTIN_PROTW_IMM): Ditto.
2712 (IX86_BUILTIN_PROTD_IMM): Ditto.
2713 (IX86_BUILTIN_PROTQ_IMM): Ditto.
2714 (IX86_BUILTIN_PSHLB): Ditto.
2715 (IX86_BUILTIN_PSHLW): Ditto.
2716 (IX86_BUILTIN_PSHLD): Ditto.
2717 (IX86_BUILTIN_PSHLQ): Ditto.
2718 (IX86_BUILTIN_PSHAB): Ditto.
2719 (IX86_BUILTIN_PSHAW): Ditto.
2720 (IX86_BUILTIN_PSHAD): Ditto.
2721 (IX86_BUILTIN_PSHAQ): Ditto.
2722 (IX86_BUILTIN_FRCZSS): Ditto.
2723 (IX86_BUILTIN_FRCZSD): Ditto.
2724 (IX86_BUILTIN_FRCZPS): Ditto.
2725 (IX86_BUILTIN_FRCZPD): Ditto.
2726 (IX86_BUILTIN_CVTPH2PS): Ditto.
2727 (IX86_BUILTIN_CVTPS2PH): Ditto.
2728 (IX86_BUILTIN_COMEQSS): Ditto.
2729 (IX86_BUILTIN_COMNESS): Ditto.
2730 (IX86_BUILTIN_COMLTSS): Ditto.
2731 (IX86_BUILTIN_COMLESS): Ditto.
2732 (IX86_BUILTIN_COMGTSS): Ditto.
2733 (IX86_BUILTIN_COMGESS): Ditto.
2734 (IX86_BUILTIN_COMUEQSS): Ditto.
2735 (IX86_BUILTIN_COMUNESS): Ditto.
2736 (IX86_BUILTIN_COMULTSS): Ditto.
2737 (IX86_BUILTIN_COMULESS): Ditto.
2738 (IX86_BUILTIN_COMUGTSS): Ditto.
2739 (IX86_BUILTIN_COMUGESS): Ditto.
2740 (IX86_BUILTIN_COMORDSS): Ditto.
2741 (IX86_BUILTIN_COMUNORDSS): Ditto.
2742 (IX86_BUILTIN_COMFALSESS): Ditto.
2743 (IX86_BUILTIN_COMTRUESS): Ditto.
2744 (IX86_BUILTIN_COMEQSD): Ditto.
2745 (IX86_BUILTIN_COMNESD): Ditto.
2746 (IX86_BUILTIN_COMLTSD): Ditto.
2747 (IX86_BUILTIN_COMLESD): Ditto.
2748 (IX86_BUILTIN_COMGTSD): Ditto.
2749 (IX86_BUILTIN_COMGESD): Ditto.
2750 (IX86_BUILTIN_COMUEQSD): Ditto.
2751 (IX86_BUILTIN_COMUNESD): Ditto.
2752 (IX86_BUILTIN_COMULTSD): Ditto.
2753 (IX86_BUILTIN_COMULESD): Ditto.
2754 (IX86_BUILTIN_COMUGTSD): Ditto.
2755 (IX86_BUILTIN_COMUGESD): Ditto.
2756 (IX86_BUILTIN_COMORDSD): Ditto.
2757 (IX86_BUILTIN_COMUNORDSD): Ditto.
2758 (IX86_BUILTIN_COMFALSESD): Ditto.
2759 (IX86_BUILTIN_COMTRUESD): Ditto.
2760 (IX86_BUILTIN_COMEQPS): Ditto.
2761 (IX86_BUILTIN_COMNEPS): Ditto.
2762 (IX86_BUILTIN_COMLTPS): Ditto.
2763 (IX86_BUILTIN_COMLEPS): Ditto.
2764 (IX86_BUILTIN_COMGTPS): Ditto.
2765 (IX86_BUILTIN_COMGEPS): Ditto.
2766 (IX86_BUILTIN_COMUEQPS): Ditto.
2767 (IX86_BUILTIN_COMUNEPS): Ditto.
2768 (IX86_BUILTIN_COMULTPS): Ditto.
2769 (IX86_BUILTIN_COMULEPS): Ditto.
2770 (IX86_BUILTIN_COMUGTPS): Ditto.
2771 (IX86_BUILTIN_COMUGEPS): Ditto.
2772 (IX86_BUILTIN_COMORDPS): Ditto.
2773 (IX86_BUILTIN_COMUNORDPS): Ditto.
2774 (IX86_BUILTIN_COMFALSEPS): Ditto.
2775 (IX86_BUILTIN_COMTRUEPS): Ditto.
2776 (IX86_BUILTIN_COMEQPD): Ditto.
2777 (IX86_BUILTIN_COMNEPD): Ditto.
2778 (IX86_BUILTIN_COMLTPD): Ditto.
2779 (IX86_BUILTIN_COMLEPD): Ditto.
2780 (IX86_BUILTIN_COMGTPD): Ditto.
2781 (IX86_BUILTIN_COMGEPD): Ditto.
2782 (IX86_BUILTIN_COMUEQPD): Ditto.
2783 (IX86_BUILTIN_COMUNEPD): Ditto.
2784 (IX86_BUILTIN_COMULTPD): Ditto.
2785 (IX86_BUILTIN_COMULEPD): Ditto.
2786 (IX86_BUILTIN_COMUGTPD): Ditto.
2787 (IX86_BUILTIN_COMUGEPD): Ditto.
2788 (IX86_BUILTIN_COMORDPD): Ditto.
2789 (IX86_BUILTIN_COMUNORDPD): Ditto.
2790 (IX86_BUILTIN_COMFALSEPD): Ditto.
2791 (IX86_BUILTIN_COMTRUEPD): Ditto.
2792 (IX86_BUILTIN_PCOMEQUB): Ditto.
2793 (IX86_BUILTIN_PCOMNEUB): Ditto.
2794 (IX86_BUILTIN_PCOMLTUB): Ditto.
2795 (IX86_BUILTIN_PCOMLEUB): Ditto.
2796 (IX86_BUILTIN_PCOMGTUB): Ditto.
2797 (IX86_BUILTIN_PCOMGEUB): Ditto.
2798 (IX86_BUILTIN_PCOMFALSEUB): Ditto.
2799 (IX86_BUILTIN_PCOMTRUEUB): Ditto.
2800 (IX86_BUILTIN_PCOMEQUW): Ditto.
2801 (IX86_BUILTIN_PCOMNEUW): Ditto.
2802 (IX86_BUILTIN_PCOMLTUW): Ditto.
2803 (IX86_BUILTIN_PCOMLEUW): Ditto.
2804 (IX86_BUILTIN_PCOMGTUW): Ditto.
2805 (IX86_BUILTIN_PCOMGEUW): Ditto.
2806 (IX86_BUILTIN_PCOMFALSEUW): Ditto.
2807 (IX86_BUILTIN_PCOMTRUEUW): Ditto.
2808 (IX86_BUILTIN_PCOMEQUD): Ditto.
2809 (IX86_BUILTIN_PCOMNEUD): Ditto.
2810 (IX86_BUILTIN_PCOMLTUD): Ditto.
2811 (IX86_BUILTIN_PCOMLEUD): Ditto.
2812 (IX86_BUILTIN_PCOMGTUD): Ditto.
2813 (IX86_BUILTIN_PCOMGEUD): Ditto.
2814 (IX86_BUILTIN_PCOMFALSEUD): Ditto.
2815 (IX86_BUILTIN_PCOMTRUEUD): Ditto.
2816 (IX86_BUILTIN_PCOMEQUQ): Ditto.
2817 (IX86_BUILTIN_PCOMNEUQ): Ditto.
2818 (IX86_BUILTIN_PCOMLTUQ): Ditto.
2819 (IX86_BUILTIN_PCOMLEUQ): Ditto.
2820 (IX86_BUILTIN_PCOMGTUQ): Ditto.
2821 (IX86_BUILTIN_PCOMGEUQ): Ditto.
2822 (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
2823 (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
2824 (IX86_BUILTIN_PCOMEQB): Ditto.
2825 (IX86_BUILTIN_PCOMNEB): Ditto.
2826 (IX86_BUILTIN_PCOMLTB): Ditto.
2827 (IX86_BUILTIN_PCOMLEB): Ditto.
2828 (IX86_BUILTIN_PCOMGTB): Ditto.
2829 (IX86_BUILTIN_PCOMGEB): Ditto.
2830 (IX86_BUILTIN_PCOMFALSEB): Ditto.
2831 (IX86_BUILTIN_PCOMTRUEB): Ditto.
2832 (IX86_BUILTIN_PCOMEQW): Ditto.
2833 (IX86_BUILTIN_PCOMNEW): Ditto.
2834 (IX86_BUILTIN_PCOMLTW): Ditto.
2835 (IX86_BUILTIN_PCOMLEW): Ditto.
2836 (IX86_BUILTIN_PCOMGTW): Ditto.
2837 (IX86_BUILTIN_PCOMGEW): Ditto.
2838 (IX86_BUILTIN_PCOMFALSEW): Ditto.
2839 (IX86_BUILTIN_PCOMTRUEW): Ditto.
2840 (IX86_BUILTIN_PCOMEQD): Ditto.
2841 (IX86_BUILTIN_PCOMNED): Ditto.
2842 (IX86_BUILTIN_PCOMLTD): Ditto.
2843 (IX86_BUILTIN_PCOMLED): Ditto.
2844 (IX86_BUILTIN_PCOMGTD): Ditto.
2845 (IX86_BUILTIN_PCOMGED): Ditto.
2846 (IX86_BUILTIN_PCOMFALSED): Ditto.
2847 (IX86_BUILTIN_PCOMTRUED): Ditto.
2848 (IX86_BUILTIN_PCOMEQQ): Ditto.
2849 (IX86_BUILTIN_PCOMNEQ): Ditto.
2850 (IX86_BUILTIN_PCOMLTQ): Ditto.
2851 (IX86_BUILTIN_PCOMLEQ): Ditto.
2852 (IX86_BUILTIN_PCOMGTQ): Ditto.
2853 (IX86_BUILTIN_PCOMGEQ): Ditto.
2854 (IX86_BUILTIN_PCOMFALSEQ): Ditto.
2855 (IX86_BUILTIN_PCOMTRUEQ): Ditto.
2856 (bdesc_ptest): Change OPTION_MASK_ISA_SSE4_1 to
2857 OPTION_MASK_ISA_ROUND for instructions that are shared between
2858 SSE4.1 and SSE5.
2859 (bdesc_2arg): Ditto.
2860 (bdesc_sse_3arg): Ditto.
2861 (enum multi_arg_type): New enum for describing the various SSE5
2862 intrinsic argument types.
2863 (bdesc_multi_arg): New table for SSE5 intrinsics.
2864 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
2865 (ix86_expand_multi_arg_builtin): New function for creating SSE5
2866 intrinsics.
2867 (ix86_expand_builtin): Add SSE5 intrinsic support.
2868 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
2869 operand instructions.
2870 (ix86_expand_sse5_multiple_memory): New function to split the
2871 second memory reference from SSE5 instructions.
2872 (type_has_variadic_args_p): Delete in favor of stdarg_p.
2873 (ix86_return_pops_args): Use stdarg_p to determine if the function
2874 has variable arguments.
2875 (ix86_setup_incoming_varargs): Ditto.
2876 (x86_this_parameter): Ditto.
2877
2878 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
2879 declaration.
2880 (ix86_expand_sse5_pack): Ditto.
2881 (ix86_sse5_valid_op_p): Ditto.
2882 (ix86_expand_sse5_multiple_memory): Ditto.
2883
2884 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
2885 constant for SSE5 support.
2886 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
2887 (UNSPEC_SSE5_TRUEFALSE): Ditto.
2888 (UNSPEC_SSE5_PERMUTE): Ditto.
2889 (UNSPEC_SSE5_ASHIFT): Ditto.
2890 (UNSPEC_SSE5_LSHIFT): Ditto.
2891 (UNSPEC_FRCZ): Ditto.
2892 (UNSPEC_CVTPH2PS): Ditto.
2893 (UNSPEC_CVTPS2PH): Ditto.
2894 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
2895 (PCOM_TRUE): Ditto.
2896 (COM_FALSE_S): Ditto.
2897 (COM_FALSE_P): Ditto.
2898 (COM_TRUE_S): Ditto.
2899 (COM_TRUE_P): Ditto.
2900 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
2901 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
2902 types.
2903 (memory attribute): Ditto.
2904 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
2905 Use SSE4_1_ROUND_* constants instead of hard coded numbers.
2906 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
2907 (floor<mode>2): Ditto.
2908 (ceil<mode>2): Ditto.
2909 (btrunc<mode>2): Ditto.
2910 (nearbyintdf2): Ditto.
2911 (nearbyintsf2): Ditto.
2912 (sse_setccsf): Disable if SSE5.
2913 (sse_setccdf): Ditto.
2914 (sse5_setcc<mode>): New support for SSE5 conditional move.
2915 (sse5_pcmov_<mode>): Ditto.
2916
2917 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
2918 (SSEMODEF4): Ditto.
2919 (SSEMODEF2P): Ditto.
2920 (ssemodesuffixf4): New mode attribute for SSE5.
2921 (ssemodesuffixf2s): Ditto.
2922 (ssemodesuffixf2c): Ditto.
2923 (sserotatemax): Ditto.
2924 (ssescalarmode): Ditto.
2925 (sse_maskcmpv4sf3): Disable if SSE5.
2926 (sse_maskcmpv2df3): Ditto.
2927 (sse_vmmaskcmpv4sf3): Ditto.
2928 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add
2929 instructions.
2930 (sse5_vmfmadd<mode>4): Ditto.
2931 (sse5_fmsub<mode>4): Ditto.
2932 (sse5_vmfmsub<mode>4): Ditto.
2933 (sse5_fnmadd<mode>4): Ditto.
2934 (sse5_vmfnmadd<mode>4): Ditto.
2935 (sse5_fnmsub<mode>4): Ditto.
2936 (sse5_vmfnmsub<mode>4): Ditto.
2937 (sse5i_fmadd<mode>4): Ditto.
2938 (sse5i_fmsub<mode>4): Ditto.
2939 (sse5i_fnmadd<mode>4): Ditto.
2940 (sse5i_fnmsub<mode>4): Ditto.
2941 (sse5i_vmfmadd<mode>4): Ditto.
2942 (sse5i_vmfmsub<mode>4): Ditto.
2943 (sse5i_vmfnmadd<mode>4): Ditto.
2944 (sse5i_vmfnmsub<mode>4): Ditto.
2945 (mulv16qi3): Add SSE5 support.
2946 (mulv4si3): Ditto.
2947 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
2948 (sse2_mulv4si3): Disable if SSE5.
2949 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
2950 (sse4_1_roundps): Ditto.
2951 (sse4_1_roundsd): Ditto.
2952 (sse4_1_roundss): Ditto.
2953 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
2954 be generated.
2955 (sse_maskcmpsf3): Ditto.
2956 (sse_vmmaskcmpv4sf3): Ditto.
2957 (sse2_maskcmpv2df3): Ditto.
2958 (sse2_maskcmpdf3): Ditto.
2959 (sse2_vmmaskcmpv2df3): Ditto.
2960 (sse2_eq<mode>3): Ditto.
2961 (sse2_gt<mode>3): Ditto.
2962 (sse5_pcmov_<mode>): Add SSE5 support.
2963 (vec_unpacku_hi_v16qi): Ditto.
2964 (vec_unpacks_hi_v16qi): Ditto.
2965 (vec_unpacku_lo_v16qi): Ditto.
2966 (vec_unpacks_lo_v16qi): Ditto.
2967 (vec_unpacku_hi_v8hi): Ditto.
2968 (vec_unpacks_hi_v8hi): Ditto.
2969 (vec_unpacku_lo_v8hi): Ditto.
2970 (vec_unpacks_lo_v8hi): Ditto.
2971 (vec_unpacku_hi_v4si): Ditto.
2972 (vec_unpacks_hi_v4si): Ditto.
2973 (vec_unpacku_lo_v4si): Ditto.
2974 (vec_unpacks_lo_v4si): Ditto.
2975 (sse5_pmacsww): New SSE5 intrinsic insn.
2976 (sse5_pmacssww): Ditto.
2977 (sse5_pmacsdd): Ditto.
2978 (sse5_pmacssdd): Ditto.
2979 (sse5_pmacssdql): Ditto.
2980 (sse5_pmacssdqh): Ditto.
2981 (sse5_pmacsdqh): Ditto.
2982 (sse5_pmacsswd): Ditto.
2983 (sse5_pmacswd): Ditto.
2984 (sse5_pmadcsswd): Ditto.
2985 (sse5_pmadcswd): Ditto.
2986 (sse5_pcmov_<move>): Conditional move support on SSE5.
2987 (sse5_phaddbw): New SSE5 intrinsic insn.
2988 (sse5_phaddbd): Ditto.
2989 (sse5_phaddbq): Ditto.
2990 (sse5_phaddwd): Ditto.
2991 (sse5_phaddwq): Ditto.
2992 (sse5_phadddq): Ditto.
2993 (sse5_phaddubw): Ditto.
2994 (sse5_phaddubd): Ditto.
2995 (sse5_phaddubq): Ditto.
2996 (sse5_phadduwd): Ditto.
2997 (sse5_phadduwq): Ditto.
2998 (sse5_phaddudq): Ditto.
2999 (sse5_phsubbw): Ditto.
3000 (sse5_phsubwd): Ditto.
3001 (sse5_phsubdq): Ditto.
3002 (sse5_pperm): Ditto.
3003 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
3004 (sse5_pperm_zero_v16qi_v8hi): Ditto.
3005 (sse5_pperm_sign_v8hi_v4si): Ditto.
3006 (sse5_pperm_zero_v8hi_v4si): Ditto.
3007 (sse5_pperm_sign_v4si_v2di): Ditto.
3008 (sse5_pperm_sign_v4si_v2di): Ditto.
3009 (sse5_pperm_pack_v2di_v4si): Ditto.
3010 (sse5_pperm_pack_v4si_v8hi): Ditto.
3011 (sse5_pperm_pack_v8hi_v16qi): Ditto.
3012 (sse5_perm<mode>): New SSE5 intrinsic insn.
3013 (rotl<mode>3): Ditto.
3014 (sse5_rotl<mode>3): Ditto.
3015 (sse5_ashl<mode>3): Ditto.
3016 (sse5_lshl<mode>3): Ditto.
3017 (sse5_frcz<mode>2): Ditto.
3018 (sse5s_frcz<mode>2): Ditto.
3019 (sse5_cvtph2ps): Ditto.
3020 (sse5_cvtps2ph): Ditto.
3021 (sse5_vmmaskcmp<mode>3): Ditto.
3022 (sse5_com_tf<mode>3): Ditto.
3023 (sse5_maskcmp<mode>3): Ditto.
3024 (sse5_maskcmp_uns<mode>3): Ditto.
3025 (sse5_maskcmp_uns2<mode>3): Ditto.
3026 (sse5_pcom_tf<mode>3): Ditto.
3027
3028 * config/i386/predicates.md (const_0_to_31_operand): New predicate
3029 to match 0..31.
3030 (sse5_comparison_float_operator): New predicate to match the
3031 comparison operators supported by the SSE5 com instruction.
3032 (ix86_comparison_int_operator): New predicate to match just the
3033 signed int comparisons.
3034 (ix86_comparison_uns_operator): New predicate to match just the
3035 unsigned int comparisons.
3036
3037 * doc/invoke.texi (-msse5): Add documentation.
3038 (-mfused-madd): Ditto.
3039
3040 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
3041
3042 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
3043 mmintrin-common.h.
3044 (x86_64-*-*): Ditto.
3045
3046 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
3047
3048 * config/i386/bmmintrin.h: New file, provide common x86 compiler
3049 intrinisics for SSE5.
3050
3051 * config/i386/smmintrin.h: Move instructions shared with SSE5 to
3052 mmintrin-common.h.
3053
3054 * config/i386/mmintrin-common.h: New file, to contain common
3055 instructions between SSE4.1 and SSE5.
3056
3057 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
3058 FOREACH_FUNCTION_ARGS to iterate over the argument list.
3059 (gen_regparm_prefix): Ditto.
3060
3061 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
3062 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use
3063 prototype_p to determine if a function is prototyped.
3064
3065 2007-09-12 Janis Johnson <janis187@us.ibm.com>
3066
3067 * config/dfp-bit.c (dfp_conversion_exception): New function.
3068 (DFP_TO_DFP) Add new variants to use direct conversions in decNumber.
3069 (DFP_TO_INT): Ditto.
3070 (INT_TO_DFP): Ditto.
3071 * config/dfp-bit.h (DEC_FLOAT_FROM_INT, DEC_FLOAT_TO_INT): New.
3072
3073 2007-09-12 Jakub Jelinek <jakub@redhat.com>
3074
3075 PR target/32338
3076 * config/ia64/ia64.c (ia64_expand_epilogue): Emit blockage
3077 before sp restoration even when total_size is 0, but
3078 frame_pointer_needed.
3079
3080 2007-09-12 Bob Wilson <bob.wilson@acm.org>
3081
3082 * config/xtensa/xtensa.c (machine_function): Add vararg_a7_copy.
3083 (xtensa_copy_incoming_a7): Use start_sequence instead of
3084 push_to_sequence. Stash insns in vararg_a7_copy for builtin_saveregs.
3085 (xtensa_builtin_saveregs): Place code from vararg_a7_copy at the start
3086 of the saveregs sequence.
3087
3088 2007-09-12 Richard Sandiford <richard@codesourcery.com>
3089
3090 * c-tree.h (grokfield): Add a "tree *" argument.
3091 * c-decl.c (grokdeclarator): Take a pointer to the decl's attributes.
3092 Chain nested decl attributes to it. Don't call decl_attributes here.
3093 (groktypename): Pass grokdeclarator a pointer to the attribute list.
3094 (start_decl, grokparm, push_parm_decl, start_function): Likewise.
3095 (grokfield): Take a pointer to the decl's attributes and pass
3096 it to grokdeclarator.
3097 * c-parser.c (c_parser_struct_declaration): Update the calls to
3098 grokfield. Call decl_attributes for anonymous struct and union
3099 fields.
3100
3101 2007-09-12 Jan Hubicka <jh@suse.cz>
3102
3103 * c-objc-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
3104
3105 2007-09-12 Ira Rosen <irar@il.ibm.com>
3106
3107 PR tree-optimization/32377
3108 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish
3109 between positive and negative dependence distance using DDR_REVERSED_P.
3110
3111 2007-09-12 Dorit Nuzman <dorit@il.ibm.com>
3112
3113 PR tree-optimization/33373
3114 * tree-vect-analyze (vect_determine_vectorization_factor): Call
3115 TREE_INT_CST_LOW when comparing TYPE_SIZE_UNIT.
3116
3117 2007-09-12 Jan Hubicka <jh@suse.cz>
3118
3119 PR target/33393
3120 * i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): Disable
3121 for !SSE_MATH
3122
3123 2007-09-12 Christian Bruel <christian.bruel@st.com>
3124
3125 * sh.h (SH_DBX_REGISTER_NUMBER): Added fpscr, fixed sr/gbr regs.
3126 * linux-unwind.h (SH_DWARF_FRAME_GBR): fixed.
3127
3128 2007-09-12 Ira Rosen <irar@il.ibm.com>
3129
3130 * tree-vect-transform.c (vect_get_slp_defs): Don't build a vector
3131 for oprnd1 if not required.
3132 (vectorizable_operation): Use scalar operand in SLP in case of
3133 shift with scalar argument.
3134
3135 2007-09-12 Ira Rosen <irar@il.ibm.com>
3136
3137 * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and minimum
3138 to 1.
3139
3140 2007-09-11 James E. Wilson <wilson@specifix.com>
3141
3142 * defaults.h (DWARF2_UNWIND_INFO): Don't define if
3143 TARGET_UNWIND_INFO is defined.
3144 * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef
3145 after definition.
3146
3147 2007-09-12 Kaz Kojima <kkojima@gcc.gnu.org>
3148
3149 * config/sh/sh.c (calc_live_regs): Use
3150 current_function_saves_all_registers instead of
3151 current_function_has_nonlocal_label.
3152 (sh_allocate_initial_value): Likewise.
3153 (sh_get_pr_initial_val): Likewise.
3154 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise.
3155 * config/sh/sh.md (load_ra): Likewise.
3156
3157 2007-09-12 Hans-Peter Nilsson <hp@axis.com>
3158
3159 * config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc.
3160
3161 PR target/33360
3162 * config/cris/cris.c (cris_expand_pic_call_address): Fix typo in
3163 GET_CODE (x) == CONST_INT to CONST_INT_P (x) transformation.
3164
3165 2007-09-12 Sa Liu <saliu@de.ibm.com>
3166
3167 * config/spu/spu.c (spu_emit_branch_or_set): Handle NaN values as
3168 operands to DFmode GE or LE compares.
3169
3170 2007-09-12 Bernd Schmidt <bernd.schmidt@analog.com>
3171
3172 * config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS,
3173 REG_CLASS_NAMES): Add P0REGS.
3174 (REGNO_REG_CLASS): Return it where appropriate.
3175 (REG_CLASS_FROM_CONSTRAINT): Add 'qA'.
3176 (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled.
3177 * doc/md.texi (Blackfin family): Document 'q' constraints.
3178
3179 2007-09-11 Steve Kenton <skenton@ou.edu>
3180
3181 * pa/linux-unwind.h: Guard with inhibit_libc.
3182 * pa/hpux-unwind.h: Likewise.
3183
3184 2007-09-11 David Daney <ddaney@avtrex.com>
3185
3186 * doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options.
3187 * doc/install.texi: Document new --with-llsc and --without-llsc
3188 options.
3189 * config.gcc: Handle --with-llsc and --without-llsc configure options.
3190 * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction
3191 in %| and %- operand codes. Depend on GENERATE_SYNC instead of
3192 ISA_HAS_SYNC.
3193 (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
3194 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
3195 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
3196 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
3197 sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on
3198 GENERATE_LL_SC instead of ISA_HAS_LL_SC.
3199 * config/mips/mips.opt (mllsc): New option.
3200 * config/mips/mips.c (mips_llsc): Define variable.
3201 (mips_handle_option): Handle mllsc option.
3202 (override_options): Set mips_print_operand_punct for '|' and '-'.
3203 (print_operand): Add new %| and %- operand codes.
3204 * config/mips/mips.h (mips_llsc_setting): New enum type.
3205 (mips_llsc): Declare.
3206 (OPTION_DEFAULT_SPECS): Add llsc handling.
3207 (GENERATE_SYNC): New macro.
3208 (GENERATE_LL_SC): New macro.
3209 (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
3210 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
3211 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions
3212 in %| and %- operand codes.
3213
3214 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
3215
3216 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with
3217 TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P.
3218
3219 2007-09-11 Jason Merrill <jason@redhat.com>
3220
3221 PR middle-end/27945
3222 * stor-layout.c (layout_decl): Do pack variable size fields.
3223
3224 2007-09-11 Maxim Kuvyrkov <maxim@codesourcery.com>
3225
3226 * config/m68k/predicates.md (movsi_const0_operand,
3227 non_symbolic_call_operand): New predicates.
3228
3229 * config/m68k/constraints.md (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac):
3230 New constraints.
3231 * doc/md.texi (Constraints for Particular Machines: Motorola 680x0):
3232 Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ,
3233 CW, CZ, CS, Ap and Ac.
3234
3235 * config/m68k/m68k.md (UNSPEC_IB): New constant.
3236 (constraints.md): New include.
3237 (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access,
3238 opx_mem, opy_mem, op_mem, guess, split): New attributes.
3239 (movdf_internal): Name pattern. Fix to use alternatives. Add split.
3240 Specify attributes.
3241 (pushdi): Add split.
3242 (tstsi_internal): Name pattern. Fix to use alternatives. Specify
3243 attributes. Split tstsi_internal_68020_cf from it.
3244 (tstsi_internal_68020_cf): New pattern.
3245 (tsthi_internal, tstqi_internal): Name pattern. Specify attributes.
3246 (tst<mode>_cf): Specify attributea.
3247 (cmpsi_cf): Name pattern. Specify attributes.
3248 (cmp<mode>_68881, cmp<mode>_cf): Specify type attribute.
3249 (pushexthisi_const): Fix to use alternatives. Specify
3250 attributes.
3251 (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60
3252 from it. Fix to use alternatives. Specify attributes.
3253 (movsi_const0_68040_10, movsi_const0_68040_60): New patterns.
3254 (movsi_cf, movstrictqi_cf): Fix to use alternatives. Specify
3255 attributes.
3256 (movsf_cf_soft): Specify attributes.
3257 (movdf_cf_soft): Add split.
3258 (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4,
3259 cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2,
3260 68k_extendqisi2, truncdfsf2_cf): Specify attributes.
3261 (truncdfsf2_68881): Name pattern. Specify attributes.
3262 (floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf,
3263 floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf,
3264 fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32):
3265 Specify attributes.
3266 (addsi3_5200): Fix to use alternatives. Specify attributes.
3267 Add splits.
3268 (add<mode>3_cf, subdi_dishl32): Specify attributes.
3269 (subsi3): Add alternative for subq.l. Specify attributes.
3270 (sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes.
3271 (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern. Specify
3272 attributes.
3273 (umulhisi3): Specify attributes.
3274 (mulhisisi3_z): Name pattern. Specify attributes.
3275 (fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200,
3276 sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32,
3277 subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3,
3278 bsetmemqi): Specify attributes.
3279 (bsetmemqi_ext): Name pattern. Specify attributes.
3280 (bclrmemqi): Specify attributes.
3281 (bclrmemqi_ext, scc, sls): Name pattern. Specify attributes.
3282 (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify
3283 attributes.
3284 (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name
3285 pattern. Specify attributes.
3286 (jump): Specify attributes.
3287 (tablejump_internal): Name pattern. Specify attributes.
3288 (call_value): Split into non_symbolic_call_value,
3289 symbolic_call_value_jsr, symbolic_call_value_bsr. Fix to use
3290 alternatives. Specify attributes.
3291 (non_symbolic_call_value, symbolic_call_value_jsr,
3292 symbolic_call_value_bsr): New patterns.
3293 (nop, return, unlink, indirect_jump): Specify attributes.
3294 (trap): Fix condition. Specify attributes.
3295 (ib): New pattern.
3296
3297 * config/m68k/m68k.c (m68k_symbolic_call_var): New variable.
3298 (override_options): Initialize it. Initialize m68k_sched_cpu.
3299 (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h.
3300 (const_method): Make global, rename to m68k_const_method.
3301 (const_int_cost, output_move_const_into_data_reg): Update.
3302 (output_move_double): Parametrize to emit rtl code, rename to
3303 handle_move_double.
3304 (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi,
3305 emit_movsi): New static functions.
3306 (output_move_double): New function with semantics of old
3307 output_move_double.
3308 (m68k_emit_move_double): New function.
3309 (m68k_sched_cpu): New variable.
3310 (attr_op_type): New enum.
3311 (sched_guess_p): New variable.
3312 (sched_address_type, sched_operand_type, sched_attr_op_type):
3313 New static functions.
3314 (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
3315 m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions.
3316 (sched_branch_type): New static variable.
3317 (m68k_sched_branch_type): New function.
3318 * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum.
3319 (m68k_symbolic_call_var): Declare.
3320 (M68K_CONST_METHOD): Rename from CONST_METHOD. Move here from m68k.c.
3321 (m68k_const_method, m68k_emit_move_double, m68k_sched_cpu,
3322 m68k_sched_attr_opx_type, m68k_sched_attr_opy_type,
3323 m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type):
3324 Declare.
3325
3326 2007-09-11 Jakub Jelinek <jakub@redhat.com>
3327
3328 * builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.
3329 * builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue
3330 error if __builtin_va_arg_pack_len () wasn't optimized out during
3331 inlining.
3332 * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len ()
3333 with the number of inline's anonymous arguments.
3334 * doc/extend.texi: Document __builtin_va_arg_pack_len ().
3335
3336 2007-09-11 Zdenek Dvorak <ook@ucw.cz>
3337
3338 * fold-const.c (extract_muldiv_1): Do not simplify
3339 var * c * c to var.
3340
3341 2007-09-11 Jan Hubicka <jh@suse.cz>
3342
3343 * i386.h (ix86_tune_indices): Add X86_TUNE_INTER_UNIT_CONVERSIONS.
3344 (TARGET_INTER_UNIT_CONVERSIONS): New.
3345 * i386.md (floatsi expanders): Remove redundant check for SImode
3346 source; offload to memory when asked for.
3347 (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse
3348 floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
3349 Update conditions;
3350 (floatsisf2_mixed_memory, floatsisf2_sse_memory,
3351 floatsidf2_mixed_memory, floatsidf2_sse_memory
3352 floatdisf2_mixed_memory, floatsisf2_sse_memory,
3353 floatsidf2_mixed_memory, floatsidf2_sse_memory): New.
3354
3355 2007-09-11 Jan Hubicka <jh@suse.cz>
3356
3357 * toplev.c (process_options): all frontends now do unit-at-a-time.
3358 * cgraphunit.c: update comments.
3359 (cgraph_expand_function): call passmanager dirrectly; emit thunks.
3360 * c-decl.c (finish_function): use cgraph_add_new_function.
3361 * function.c (expand_function_end): We are always unit-at-a-time.
3362
3363 2007-09-11 Richard Sandiford <richard@codesourcery.com>
3364
3365 * config/mips/mips.c (mips_set_mips16_mode): Use separate anchor
3366 settings for MIPS16.
3367 (mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p.
3368
3369 2007-09-11 Richard Sandiford <richard@codesourcery.com>
3370
3371 * config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of
3372 SYMBOL_FORCE_TO_MEM constants.
3373 (mips_rtx_costs): Give a cost of 1 to force_to_mem_operands.
3374 (mips16_rewrite_pool_refs_info): New structure.
3375 (mips16_rewrite_pool_constant): New function, split out from...
3376 (mips16_rewrite_pool_refs): ...here. Take a pointer to a
3377 mips16_rewrite_pool_refs_info structure rather than a pointer
3378 to a constant pool. Force force_to_mem_operands into memory.
3379 (mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs.
3380 * config/mips/predicates.md (force_to_mem_operand): New predicate.
3381 * config/mips/constraints.md (kf): New constraint.
3382 * config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative.
3383 (*movsi_mips16): Likewise.
3384
3385 2007-09-11 Richard Sandiford <richard@codesourcery.com>
3386 Nigel Stephens <nigel@mips.com>
3387 David Ung <davidu@mips.com>
3388
3389 * config/mips/mips.h (CONSTANT_POOL_COST): Move to...
3390 * config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16.
3391 (mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost)
3392 (mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost)
3393 (mips_zero_extend_cost): New functions.
3394 (mips_rtx_costs): Treat COMPARE constants as having zero cost.
3395 Use the new functions. Tweak many cost estimates, both here
3396 and in the new subroutines. Return false when the cost of the
3397 operands has not been calculated. Check for *clear_upper32.
3398 Check for floating-point multiply-add, reciprocal and rsqrt
3399 patterns. Handle comparison and rotation codes.
3400
3401 2007-09-11 Danny Smith <dannysmith@users.sourceforge.net>
3402
3403 * config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't
3404 override default.
3405 * config/i386/i386.c (get_dllimport_decl): Don't strip
3406 FASTCALL_PREFIX.
3407
3408 2007-09-10 Janis Johnson <janis187@us.ibm.com>
3409
3410 PR c/30013
3411 * config/dfp-bit.c: Don't skip TFmode conversions; move strto*
3412 declarations to top.
3413 (DFP_TO_BFP): Use for either XFmode or TFmode.
3414 (BFP_TO_DFP): Use for either XFmode or TFmode; always use cast
3415 of BFP_VIA_TYPE.
3416 * config/dfp-bit.h: Include float.h.
3417 (LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long
3418 double is one of these modes, rather than using LIBGCC_HAS_*F_MODE
3419 which doesn't mean the same thing.
3420 (BFP_KIND): Use 4 to mean TFmode.
3421 (BFP_FMT): Specify the number of decimal digits based on the
3422 number of mantissa digits.
3423 (BFP_VIA_TYPE): Binary float type to use as cast for sprintf.
3424 (BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants.
3425 (STR_TO_BFP): Use strtold for XFmode or TFmode.
3426 (TFtype): Define if TFmode is supported.
3427 * doc/libgcc.texi (Decimal float library routines): Document
3428 TF conversion functions.
3429
3430 2007-09-10 Chao-ying Fu <fu@mips.com>
3431
3432 * config/mips/mips.c (mips_scalar_mode_supported_p): Declare.
3433 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3434 (mips_emit_compare): Process fixed-point modes.
3435 (mips_pad_arg_upward): Support fixed-point types.
3436 (override_options): Allow fixed-point modes in accumulators.
3437 (mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers.
3438 (mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode,
3439 V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP.
3440 (mips_scalar_mode_supported_p): New function to accept fixed-point
3441 modes if the width is not greater than two BITS_PER_WORD.
3442 * config/mips/mips.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
3443 LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
3444 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
3445 LONG_LONG_ACCUM_TYPE_SIZE): Define.
3446 * config/mips/mips.md ("d"): Update mode attribute for fixed-point
3447 modes.
3448 ("IMODE"): New mode attribute.
3449 (mips-fixed.md): Include.
3450 * config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT,
3451 ACCUM, UACCUM.
3452 * config/mips/mips-fixed.md: New file.
3453
3454 2007-09-11 Ben Elliston <bje@au.ibm.com>
3455
3456 * config/spu/spu.md: Formatting fixes.
3457
3458 2007-09-10 Janis Johnson <janis187@us.ibm.com>
3459
3460 * config/dfp-bit.c (dfp_unary_func): Delete.
3461 (dfp_unary_op): Delete.
3462 (dfp_binary_op): Use decFloat functions instead of decNumber
3463 functions for binary operations.
3464 (d32_binary_op): Convert 32-bit operands to 64 bits for evaluation.
3465 (dnn_binary_op): Call dfp_binary_op with decFloat rather than
3466 DFP_C_TYPE.
3467 (dfp_compare_op): Use decFloat functions insteadof decNumber
3468 functions for comparisons.
3469 (d32_compare_op): Convert 32-bit operands to 64 bits for evaluation.
3470 (dnn_binary_op): Call dfp_compare_op with decFloat rather than
3471 DFP_C_TYPE.
3472 (DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for
3473 call to dxx_binary_op and decFloat function.
3474 (DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for
3475 calls to dxx_binary_op and decFloat function.
3476 * config/dfp-bit.h: Include decFloat header files.
3477 (decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD,
3478 DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE,
3479 DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN,
3480 DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths.
3481
3482 2007-09-10 Harsha Jagasia <harsha.jagasia@amd.com>
3483 Jan Sjodin <jan.sjodin@amd.com>
3484
3485 * tree-vect-analyze.c (vect_analyze_operations): Change
3486 comparison of loop iterations with threshold to less than
3487 or equal to instead of less than. Reduce
3488 min_scalar_loop_bound by one.
3489 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
3490 Change prologue and epilogue iterations estimate to vf/2,
3491 when unknown at compile-time. Change versioning guard
3492 cost to taken_branch_cost. If peeling for alignment is
3493 unknown at compile-time, change peel guard costs to one
3494 taken branch and one not-taken branch per peeled loop.
3495 If peeling for alignment is known but number of scalar loop
3496 iterations is unknown at compile-time, change peel guard
3497 costs to one taken branch per peeled loop. Change the cost
3498 model equation to consider vector iterations as the loop
3499 iterations less the prologue and epilogue iterations.
3500 Change outside vector cost check to less than or equal to
3501 zero instead of equal to zero.
3502 (vect_do_peeling_for_loop_bound): Reduce
3503 min_scalar_loop_bound by one.
3504 * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and
3505 TARG_COND_NOT_TAKEN_BRANCH_COST.
3506 * config/i386/i386.h (processor_costs): Add
3507 scalar_stmt_cost, scalar_load_cost, scalar_store_cost,
3508 vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost,
3509 vec_align_load_cost, vect_unalign_load_cost,
3510 vec_store_cost, cond_taken_branch_cost,
3511 cond_not_taken_branch_cost.
3512 Define macros for x86 costs.
3513 * config/i386/i386.c:
3514 (size_cost): Set scalar_stmt_cost, scalar_load_cost,
3515 scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
3516 scalar_to_vec_cost, vec_align_load_cost,
3517 vect_unalign_load_cost, vec_store_cost,
3518 cond_taken_branch_cost, cond_not_taken_branch_cost to one.
3519 (i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
3520 geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost,
3521 core2_cost, generic64_cost, generic32_cost): Set to default
3522 untuned costs.
3523 (k8_cost, amdfam10_cost): Costs for vectorization tuned.
3524 (x86_builtin_vectorization_cost): New.
3525
3526 2007-09-10 Janis Johnson <janis187@us.ibm.com>
3527 Ben Elliston <bje@au.ibm.com>
3528
3529 * dfp.c: Include decimal128Local.h;
3530 (dfp_byte_swap): Remove.
3531 (encode_decimal32, decode_decimal32): Don't handle endianness.
3532 (encode_decimal64, decode_decimal64): Ditto.
3533 (encode_decimal128, decode_decimal128): Ditto.
3534 * config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto.
3535 (__swap64): Remove.
3536 (host_to_ieee_64, ieee_to_host_64): Don't handle endianness.
3537 (__swap128): Remove
3538 (host_to_ieee_128, ieee_to_host_128): Don't handle endianness.
3539 * Makefile.in (DECNUM_H): Add decimal128Local.h.
3540
3541 2007-09-10 David Daney <ddaney@avtrex.com>
3542
3543 * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in
3544 define_constants.
3545 (memory_barrier): Rewrote as an insn that clobbers memory.
3546
3547 2007-09-10 Richard Sandiford <richard@codesourcery.com>
3548
3549 * config/mips/mips.c (mips_global_pointer): Check
3550 call_really_used_regs instead of call_used_regs.
3551 (mips_save_reg_p): Likewise. Save all call-saved registers
3552 if current_function_saves_all_registers. Fix indentation.
3553 No longer treat $18 as a special case.
3554 (compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT.
3555
3556 2007-09-10 Richard Sandiford <richard@codesourcery.com>
3557
3558 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro.
3559 * config/mips/mips.c (mips_cpu_info_table): Mention it in the
3560 the introductory comment.
3561 (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
3562 (override_options): Don't test for it.
3563 * config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete.
3564 (DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC.
3565 * config/mips/vr.h: As for config/mips/sde.h.
3566
3567 2007-09-10 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
3568 Revital Eres <eres@il.ibm.com>
3569
3570 * target.h (struct gcc_target.sched): New field: sms_res_mii.
3571 (struct ddg): Define.
3572 * target-def.h (TARGET_SCHED_SMS_RES_MII): Define.
3573 (TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII.
3574 * config/spu/spu.c: Include ddg.h.
3575 (TARGET_SCHED_SMS_RES_MII): Define.
3576 (spu_sms_res_mii): New function to calculate mii.
3577 * modulo-sched (res_MII): Use it.
3578 * doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII.
3579
3580 2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com>
3581
3582 * config/s390/s390.c (s390_dump_pool): Create copy of constant
3583 pool entries since they might hold values that must not be shared.
3584
3585 2007-09-10 Uros Bizjak <ubizjak@gmail.com>
3586
3587 PR target/33369
3588 * gcc/config/i386/sse.md (ashr<mode>3): Change op2 mode to SImode.
3589 Use 'N' operand constraint for op2.
3590 (lshr<mode>3): Ditto.
3591 (ashl<mode>3): Ditto.
3592 (vec_shl_<mode>): Use const_0_to_255_mul_8_operand predicate for op2.
3593 (vec_shr_<mode>): Ditto.
3594 * gcc/config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128,
3595 IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode.
3596
3597 2007-09-10 Andreas Krebbel <krebbel1@de.ibm.com>
3598
3599 * config/s390/s390.md ("fixuns_trunc<BFP:mode><GPR:mode>2"):
3600 Change mode macro in the last real_2expN parameter to uppercase.
3601
3602 2007-09-10 Michael Matz <matz@suse.de>
3603
3604 * tree-pass.h (pass_cselim): Declare new pass.
3605 * passes.c (init_optimization_passes): Link in pass_cselim.
3606 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from
3607 tree_ssa_phiopt; add do_store_elim parameter, handle it by calling
3608 cond_store_replacement.
3609 (condstoretemp): New static variable.
3610 (cond_store_replacement): New function.
3611 (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around
3612 tree_ssa_phiopt_worker.
3613 (struct name_to_bb): New.
3614 (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr,
3615 nt_init_block, nt_fini_block): New static functions.
3616 (seen_ssa_names, nontrap_set): New static variables.
3617 (gate_cselim, pass_cselim): Define new pass.
3618 * common.opt (ftree-cselim): New flag.
3619 * toplev.c (process_options): Set flag_tree_cselim if required.
3620
3621 2007-09-10 Hans-Peter Nilsson <hp@axis.com>
3622
3623 * simplify-rtx.c (simplify_relational_operation_1): For recent
3624 canonicalization, don't recurse if op1 equals both PLUS arguments.
3625
3626 2007-09-09 David Daney <ddaney@avtrex.com>
3627
3628 * optabs.c (expand_sync_operation): Use plus insn if minus
3629 CONST_INT_P(val).
3630 (expand_sync_fetch_operation): Ditto.
3631
3632 2007-09-09 H.J. Lu <hongjiu.lu@intel.com>
3633
3634 * i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead
3635 of cvtpq2ps.
3636 (*floatsisf2_sse_vector): Likewise.
3637
3638 2007-09-09 Krister Walfridsson <cato@df.lth.se>
3639
3640 * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
3641
3642 2007-09-09 H.J. Lu <hongjiu.lu@intel.com>
3643
3644 * config/i386/i386.h (ix86_tune_indices): Rename
3645 X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS.
3646 (TARGET_USE_VECTOR_CONVERTS): Updated.
3647 * config/i386/i386.c: Likewise.
3648
3649 2007-09-09 Sandra Loosemore <sandra@codesourcery.com>
3650 Nigel Stephens <nigel@mips.com>
3651
3652 * doc/invoke.texi (Overall Options): Add .sx file extension
3653 as a synonym for .S.
3654 * cppspec.c (known_suffixes): Likewise.
3655 * gcc.c (default_compilers): Likewise.
3656
3657 2007-09-09 Rask Ingemann Lambertsen <rask@sygehus.dk>
3658
3659 PR target/30315
3660 * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete.
3661 * simplify-rtx.c (simplify_relational_operation_1): Add the
3662 canonicalization from i386.h.
3663 * doc/md.texi (Canonicalization of Instructions): Document it.
3664
3665 2007-09-09 Jan Hubicka <jh@suse.cz>
3666 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3667
3668 * i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS.
3669 (TARGET_USE_VECTOR_CONVERTS): New.
3670 * i386.md: New post-reload splitters for converting SF to DF and DF to
3671 SF.
3672 (floatsi* expander): Special case vector conversions.
3673 (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit,
3674 floatsisf2_sse_vector_internunit, floatsisf2_sse_vector,
3675 floatsidf2_mixed_vector, floatsidf2_sse_vector): New.
3676 (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse):
3677 Disable when doing vector converts.
3678 (floatsi<mode>2_i387): Disable when
3679 * sse.md (vec_dupv2df): Export.
3680 * i386.c (ix86_tune_features): Enable SSE conversions.
3681
3682 2007-09-09 Richard Guenther <rguenther@suse.de>
3683
3684 * tree-ssa-operands.c (add_virtual_operand): Only mark
3685 stores as has_volatile_ops if alias information is not available.
3686
3687 2007-09-09 Revital Eres <eres@il.ibm.com>
3688
3689 * doc/contrib.texi: Add myself.
3690
3691 2007-09-09 Ira Rosen <irar@il.ibm.com>
3692
3693 * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost,
3694 stmt_vinfo_set_outside_of_loop_cost): New functions.
3695 * tree-vect-transform.c (vect_get_cost_fields): Remove.
3696 (vect_model_simple_cost): Call
3697 stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost
3698 field instead of calling vect_get_cost_fields.
3699 (vect_model_store_cost, vect_model_load_cost): Likewise.
3700
3701 2007-09-09 Revital Eres <eres@il.ibm.com>
3702
3703 * config/rs6000/rs6000.c (paired_init_builtins): Add const
3704 declaration to bdesc_paired_preds variable.
3705 (paired_expand_builtin): Likewise.
3706
3707 2007-09-09 Revital Eres <eres@il.ibm.com>
3708
3709 * dbgcnt.def (sms_sched_loop): New counter.
3710 * modulo-sched.c: Use sms_sched_loop instead of
3711 MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to
3712 perform swing modulo scheduling on. Include dbgcnt.h.
3713 * Makefile.in: Add DBGCNT_H to modulo-sched.o.
3714 * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER.
3715
3716 2007-09-09 Uros Bizjak <ubizjak@gmail.com>
3717
3718 * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators.
3719 Substitute all uses with ...
3720 (MODEF): New mode iterator.
3721
3722 (fix_trunc<mode>_fisttp_i387_1): Remove operand constraints
3723 from pre-regalloc define_insn_and_split splitter pattern.
3724 (*fix_trunc<mode>_i387_1): Ditto.
3725 (*fistdi2_1): Ditto.
3726 (*fist<mode>2_1): Ditto.
3727 (frndintxf2_floor): Ditto.
3728 (*fist<mode>2_floor_1): Ditto.
3729 (frndintxf2_ceil): Ditto.
3730 (*fist<mode>2_ceil_1): Ditto.
3731 (frndintxf2_trunc): Ditto.
3732 (frndintxf2_mask_pm): Ditto.
3733
3734 (prologue): Use (const_int 0) as never generated filler insn.
3735 (epilogue): Ditto.
3736 (sibcall_epilogue): Ditto.
3737 (eh_return_si): Ditto.
3738 (eh_return_di): Ditto.
3739
3740 (add<mode>3): Rename from adddf3 and addsf3. Macroize expander
3741 using MODEF mode iterator.
3742 (sub<mode>3): Rename from subdf3 and subsf3. Macroize expander
3743 using MODEF mode iterator.
3744 (mul<mode>3): Rename from muldf3 and mulsf3. Macroize expander
3745 using MODEF mode iterator.
3746 (nearbyint<mode>2): Rename from nearbyintdf2 and nearbyintsf2.
3747 Macroize expander using MODEF mode iterator.
3748
3749 (zero_extendsidi2): Remove operand constraints from expander.
3750 (smuldi3_highpart): Ditto.
3751 (indirect_jump): Ditto.
3752 (tablejump): Ditto.
3753 (rsqrtsf2): Ditto.
3754 * config/i386/sse.md (storentv4sf): Ditto.
3755 (storentv2df): Ditto.
3756 (storentv2di): Ditto.
3757 (storentsi): Ditto.
3758 (sse2_cvtpd2ps): Ditto.
3759 (vec_interleave_highv16qi): Ditto.
3760 (vec_interleave_lowv16qi): Ditto.
3761 (vec_interleave_highv8hi): Ditto.
3762 (vec_interleave_lowv8hi): Ditto.
3763 (vec_interleave_highv4si): Ditto.
3764 (vec_interleave_lowv4si): Ditto.
3765 (vec_interleave_highv2di): Ditto.
3766 (vec_interleave_lowv2di): Ditto.
3767 (sse2_maskmovdqu): Ditto.
3768 * config/i386/mmx.md (mmx_maskmovq): Ditto.
3769
3770 2007-09-09 Ira Rosen <irar@il.ibm.com>
3771
3772 * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1.
3773 (struct _slp_tree, struct _slp_instance): Define new data structures
3774 along macros for their access.
3775 (struct _loop_vec_info): Define new fields: strided_stores,
3776 slp_instances, and slp_unrolling_factor along macros for their access.
3777 (enum slp_vect_type): New.
3778 (struct _stmt_vec_info): Define new field, slp_type, and macros for
3779 its access.
3780 (STMT_VINFO_STRIDED_ACCESS): New macro.
3781 (vect_free_slp_tree): Declare.
3782 (vectorizable_load): Add an argument of type slp_tree.
3783 (vectorizable_store, vectorizable_operation, vectorizable_conversion,
3784 vectorizable_assignment): Likewise.
3785 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
3786 Declare (make extern).
3787 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
3788 (new_loop_vec_info): Likewise.
3789 (destroy_loop_vec_info): Free memory allocated for SLP structures.
3790 * tree-vect-analyze.c: Include recog.h.
3791 (vect_update_slp_costs_according_to_vf): New.
3792 (vect_analyze_operations): Add argument for calls to vectorizable_ ()
3793 functions. For not pure SLP stmts with strided access check that the
3794 group size is power of 2. Update the vectorization factor according to
3795 SLP. Call vect_update_slp_costs_according_to_vf.
3796 (vect_analyze_group_access): New.
3797 (vect_analyze_data_ref_access): Call vect_analyze_group_access.
3798 (vect_free_slp_tree): New functions.
3799 (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree,
3800 vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp,
3801 vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
3802 vect_detect_hybrid_slp): Likewise.
3803 (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision
3804 and vect_detect_hybrid_slp.
3805 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take
3806 SLP costs into account.
3807 (vect_get_cost_fields): New function.
3808 (vect_model_simple_cost): Make extern, add SLP parameter and handle
3809 SLP.
3810 (vect_model_store_cost, vect_model_load_cost): Likewise.
3811 (vect_get_constant_vectors): New function.
3812 (vect_get_slp_vect_defs, vect_get_slp_defs,
3813 vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy,
3814 vect_get_vec_defs): Likewise.
3815 (vectorizable_reduction): Don't handle SLP for now.
3816 (vectorizable_call): Don't handle SLP for now. Add argument to
3817 vect_model_simple_cost.
3818 (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to
3819 get SLPed and vectorized defs). Fix indentation and spacing.
3820 (vectorizable_assignment): Handle SLP.
3821 (vectorizable_induction): Don't handle SLP for now.
3822 (vectorizable_operation): Likewise.
3823 (vectorizable_type_demotion): Add argument to
3824 vect_model_simple_cost.
3825 (vectorizable_type_promotion): Likewise.
3826 (vectorizable_store, vectorizable_load): Handle SLP.
3827 (vectorizable_condition): Don't handle SLP for now.
3828 (vect_transform_stmt): Add a new argument for SLP. Check that there is
3829 no SLP transformation required for unsupported cases. Add SLP
3830 argument for supported cases.
3831 (vect_remove_stores): New function.
3832 (vect_schedule_slp_instance, vect_schedule_slp): Likewise.
3833 (vect_transform_loop): Schedule SLP instances.
3834 * Makefile.in: (tree-vect-analyze.o): Depend on recog.h.
3835
3836 2007-09-09 Andrew Haley <aph@redhat.com>
3837
3838 * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake
3839 signed optab.
3840
3841 2007-09-09 Hans-Peter Nilsson <hp@axis.com>
3842
3843 Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.
3844 * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn.
3845 Similar for what label_refs can go in the JUMP_TARGET field. Split
3846 REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND.
3847 * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not
3848 REG_LABEL when replacing an operand with a LABEL_REF for a
3849 non-jump insn.
3850 (subst_reloads): When replacing a LABEL_REG with a register,
3851 instead of generating a REG_LABEL note, assert that there already
3852 is one or that the label is a known target for the insn.
3853 * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL
3854 note, check the JUMP_LABEL field. Remove "else" after return.
3855 * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with
3856 cases for REG_LABEL_OPERAND and REG_LABEL_TARGET.
3857 (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and
3858 REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P
3859 insns. Iterate over all notes; don't assume there's only one.
3860 * cse.c (recorded_label_ref): Adjust comment to refer to
3861 REG_LABEL_OPERAND.
3862 (cse_extended_basic_block): Do LABEL_REF check for all INSN_P
3863 insns, not just NONJUMP_INSN_P.
3864 (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF
3865 isn't a jump target.
3866 * jump.c (rebuild_jump_labels): Adjust head comment.
3867 (init_label_info): Ditto. Remove REG_LABEL_OPERAND notes only;
3868 don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field.
3869 (mark_all_labels): For JUMP_P insns without a target, check if the
3870 the target is noted on the previous nonjump insn.
3871 (mark_jump_label_1): New function, guts from mark_jump_label.
3872 <case IF_THEN_ELSE>: Handle first operand as a non-target when
3873 marking jump target labels.
3874 <case LABEL_REF>: Adjust for whether to generate a
3875 REG_LABEL_TARGET or a REG_LABEL_OPERAND note.
3876 For 'E' format rtl, iterate in descending element order.
3877 (delete_related_insns): Handle both REG_LABEL_TARGET and
3878 REG_LABEL_OPERAND notes. For JUMP_P insns with labels with zero
3879 reference count, delete and fallthrough. Move finding-next-
3880 non-deleted insn last in the function. Look at all INSN_P insns
3881 for REG_LABEL_OPERAND notes.
3882 (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of
3883 JUMP.
3884 * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL
3885 JUMP_LABEL, output the INSN_UID of it.
3886 * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND
3887 and/or REG_LABEL_TARGET.
3888 (add_label_notes): Only add REG_LABEL_OPERAND notes. Put in line
3889 with jump.c copy by only adding notes for labels actually
3890 referenced in the insn.
3891 * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need
3892 usage count increment; handle all INSN_P trial insns.
3893 (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND
3894 notes.
3895 * rtl.h (struct rtx_def) <volatil>: Adjust to mention
3896 REG_LABEL_TARGET and REG_LABEL_OPERAND.
3897 (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and
3898 REG_LABEL_OPERAND.
3899 * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on
3900 JUMP_P insns and REG_LABEL_OPERAND everywhere.
3901 * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS
3902 on all INSN_P insns.
3903 * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL.
3904 * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and
3905 REG_LABEL_OPERAND notes.
3906 * reload1.c (calculate_needs_all_insns): Adjust comments.
3907 (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes.
3908 * config/alpha/alpha.md (split for load of an address into a
3909 four-insn sequence on Unicos/Mk): Adjust to use
3910 REG_LABEL_OPERAND.
3911 * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto.
3912
3913 2007-09-09 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3914
3915 Revert:
3916 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3917 * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
3918 FOR_BB_INSNS_SAFE instead of for loop.
3919 * cse.c (cse_extended_basic_block): Likewise.
3920 * postreload.c (reload_cse_regs_1): New variable next. Make sure
3921 that the for loop does not invoke NEXT_INSN on a deleted insn.
3922 * function.c (instantiate_virtual_regs): Likewise.
3923 * lower-subreg.c (remove_retval_note): Likewise.
3924 (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
3925 FOR_BB_INSNS.
3926 * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
3927 a deleted insn.
3928 * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
3929 insn, if it's a jump.
3930 (try_redirect_by_replacing_jump): New variable jump_p. Call
3931 tablejump_p before delete_insn_chain.
3932 * reload1.c (reload): New variable next. Make sure that the for
3933 loop does not invoke NEXT_INSN on a deleted insn.
3934 (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
3935 (delete_output_reload): New variable prev. Make sure the the for
3936 loops do not invoke PREV_INSN on a deleted insn.
3937
3938 2007-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3939
3940 * pa/constraints.md: Remove 'X' from unused letters comment.
3941
3942 2007-09-08 Richard Guenther <rguenther@suse.de>
3943
3944 * tree-tailcall.c (find_tail_calls): If we don't have aliases
3945 computed check stmt_ann->references_memory instead of counting
3946 virtual operands.
3947
3948 2007-09-08 Segher Boessenkool <segher@kernel.crashing.org>
3949
3950 * cse.c (fold_rtx): Use validate_unshare_change() instead of
3951 validate_change() in one more case.
3952
3953 2007-09-08 Zdenek Dvorak <ook@ucw.cz>
3954
3955 PR tree-optimization/32283
3956 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use
3957 estimated_loop_iterations.
3958 (determine_use_iv_cost_condition): Decrease cost of expressions
3959 used in iv elimination.
3960
3961 2007-09-08 Richard Guenther <rguenther@suse.de>
3962
3963 * tree-cfg.c (verify_gimple_expr): Avoid building new
3964 pointer types, use TYPE_POINTER_TO if available instead.
3965
3966 2007-09-08 Uros Bizjak <ubizjak@gmail.com>
3967
3968 PR target/33329
3969 PR rtl-optimization/26449
3970 * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence.
3971 (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in
3972 split1 pass.
3973 (mulv16qi3): Implement as define_insn_and_split pattern instead of
3974 define_expand. Split insn in split1 pass.
3975 (mulv2di3): Ditto.
3976
3977 2007-09-08 Dorit Nuzman <dorit@il.ibm.com>
3978
3979 PR tree-optimization/33301
3980 * tree-vect-analyze (analyze_operations): Look at the type of the rhs
3981 when relevant.
3982
3983 2007-09-07 Zdenek Dvorak <ook@ucw.cz>
3984
3985 PR tree-optimization/32183
3986 * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H).
3987
3988 * tree-ssa-reassoc.c: Include cfgloop.h.
3989 (is_reassociable_op): Add a loop argument and return true only
3990 for inside loop.
3991 (linearize_expr): Updated.
3992 (should_break_up_subtract): Likewise.
3993 (linearize_expr_tree): Likewise.
3994 (init_reassoc): Call loop_optimizer_init with
3995 AVOID_CFG_MODIFICATIONS. Remove calculate_dominance_info call
3996 with CDI_DOMINATORS.
3997 (fini_reassoc): Call loop_optimizer_finalize.
3998
3999 2007-09-07 Sterling Augustine <sterling@tensilica.com>
4000
4001 * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even
4002 if there is no i-cache.
4003
4004 2007-09-07 Richard Guenther <rguenther@suse.de>
4005
4006 Reapply
4007 2007-09-06 Richard Guenther <rguenther@suse.de>
4008
4009 PR tree-optimization/32586
4010 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
4011 folding if nothing changed.
4012 (simplify_unary_expression): New function. Do tree combining
4013 on conversion like codes.
4014 (try_to_simplify): Call it.
4015
4016 2007-09-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4017
4018 PR target/33286
4019 * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux.
4020 (__gthread_active,__gthread_start, __gthread_active_init): New.
4021 * gthr-posix95.h: Likewise.
4022
4023 2007-09-07 Roman Zippel <zippel@linux-m68k.org>
4024
4025 * function.h (struct function): Rename calls_unwind_init
4026 to saves_all_registers.
4027 (current_function_saves_all_registers): Renamed from
4028 current_function_calls_unwind_init.
4029 * reload1.c (reload): Set current_function_saves_all_registers.
4030 * except.c (expand_builtin_unwind_init): Likewise.
4031 * config/m68k/m68k.c (m68k_save_reg): Use
4032 current_function_saves_all_registers to save pic register.
4033
4034 2007-09-07 Janis Johnson <janis187@us.ibm.com>
4035
4036 config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN.
4037 config/s390/s390.md (fixuns_trunc<BFP:mode><GPR:mode>2): Ditto.
4038
4039 Reapply reverted changes:
4040
4041 2007-09-06 Jan Hubicka <jh@suse.cz>
4042
4043 * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call
4044 of real_2expN.
4045
4046 2007-09-06 Richard Sandiford <richard@codesourcery.com>
4047
4048 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
4049 (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
4050
4051 2007-09-05 Janis Johnson <janis187@us.ibm.com>
4052
4053 * optabs.c (expand_float): Convert unsigned integer as signed only
4054 if it provides sufficient accuracy; add mode argument to real_2expN.
4055 (expand_fix): Fix comment typos; extend binary float into mode
4056 wider than destination for converion to unsigned integer; add mode
4057 argument to real_2expN.
4058 * real.c (real_2expN): Add mode argument to special-case decimal
4059 float values.
4060 * real.h (real_2expN): Ditto.
4061 * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
4062 real_2expN.
4063 (fixed_from_string): Ditto.
4064 (fixed_to_decimal): Ditto.
4065 (fixed_convert_from_real): Ditto.
4066 (real_convert_from_fixed): Ditto.
4067 * config/rs6000/rs6000.md (FP): Include DD and TD modes.
4068 * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
4069 muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
4070 floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
4071
4072 2007-09-07 Diego Novillo <dnovillo@google.com>
4073
4074 * tree-flow.h (const_block_stmt_iterator): Remove.
4075 Update all users to use block_stmt_iterator.
4076 * tree-iterator.h (const_tree_stmt_iterator): Remove.
4077 Update all users to use tree_stmt_iterator.
4078
4079 2007-09-07 Sandra Loosemore <sandra@codesourcery.com>
4080
4081 * config/mips/mips.c (mips_set_current_function): Temporarily
4082 make this a no-op to fix bootstrap errors, pending rewrite.
4083
4084 2007-09-07 Jan Hubicka <jh@suse.cz>
4085
4086 * reorg.c (dbr_schedule): Move code removing placeholder USEs later
4087 in the pass.
4088
4089 2007-09-07 Dorit Nuzman <dorit@il.ibm.com>
4090
4091 PR tree-optimization/33299
4092 * tree-vect-transform.c (vect_create_epilog_for_reduction): Update
4093 uses for all relevant loop-exit phis, not just the first.
4094
4095 2007-09-07 Richard Guenther <rguenther@suse.de>
4096
4097 PR middle-end/33330
4098 * tree-ssa-operands.c (access_can_touch_variable): An access
4099 of the form (*p)[0] can touch a variable of same size.
4100
4101 2007-09-07 Jan Hubicka <jh@suse.cz>
4102
4103 * passes.c (init_optimization_passes): Add simple dce and addressable
4104 passes.
4105 * tree-ssa.c (execute_update_addresses_taken): New function.
4106 (pass_update_address_taken): New.
4107 * tree-ssa-dse.c (execute_simple_dse): New function.
4108 (pass_simple_dse): New.
4109 * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare.
4110
4111 2007-09-07 Tobias Burnus <burnus@net-b.de>
4112
4113 PR middle-end/33321
4114 * doc/invoke.texi: Fix -Wstrict-overflow= table.
4115
4116 2007-09-07 Richard Guenther <rguenther@suse.de>
4117
4118 Revert
4119 2007-09-06 Richard Guenther <rguenther@suse.de>
4120
4121 PR tree-optimization/32586
4122 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
4123 folding if nothing changed.
4124 (simplify_unary_expression): New function. Do tree combining
4125 on conversion like codes.
4126 (try_to_simplify): Call it.
4127
4128 2007-09-07 Richard Guenther <rguenther@suse.de>
4129 Uros Bizjak <ubizjak@gmail.com>
4130
4131 PR tree-optimization/32821
4132 * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of
4133 NULL in the call to set_bb_stmt_list.
4134
4135 2007-09-07 Richard Sandiford <richard@codesourcery.com>
4136
4137 * config/mips/mips.c (build_mips16_call_stub): Emit all direct
4138 float calls here, rather than leaving some to the caller.
4139 Use call_internal_direct and call_value_internal_direct.
4140 * config/mips/mips.md (call_internal_direct): New pattern.
4141 (call_value_internal_direct): Likewise.
4142
4143 2007-09-07 Richard Sandiford <richard@codesourcery.com>
4144
4145 * config/mips/mips.c (mips_base_move_loop_invariants): New variable.
4146 (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set
4147 to 0 for MIPS16.
4148 (override_options): Set mips_base_move_loop_invariants.
4149
4150 2007-09-07 Richard Sandiford <richard@codesourcery.com>
4151
4152 * config/mips/mips.opt (mcode-readable=): Move to keep list
4153 alphabetical.
4154
4155 2007-09-07 Richard Sandiford <richard@codesourcery.com>
4156
4157 * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
4158 and -mgpopt options. Adjust the -G documentation to match.
4159 * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
4160 * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
4161 function, split out from mips_classify_symbol. Return false for
4162 !TARGET_LOCAL_SDATA.
4163 (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
4164 Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
4165 (override_options): Check whether the -mgpopt setting is consistent
4166 with the other flags.
4167 (symbolic_expression_p): Delete.
4168 (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
4169 and default_elf_select_rtx_section.
4170 (mips_in_small_data_p): Honor section attributes for MIPS16 too.
4171 Return false for local data unless TARGET_LOCAL_SDATA. Likewise
4172 external data and TARGET_EXTERN_SDATA.
4173
4174 2007-09-07 Tobias Burnus <burnus@net-b.de>
4175
4176 PR fortran/33303
4177 * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__.
4178
4179 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4180
4181 * regrename.c (copyprop_hardreg_forward_1): New variable next. Use
4182 FOR_BB_INSNS_SAFE instead of for loop.
4183 * cse.c (cse_extended_basic_block): Likewise.
4184 * postreload.c (reload_cse_regs_1): New variable next. Make sure
4185 that the for loop does not invoke NEXT_INSN on a deleted insn.
4186 * function.c (instantiate_virtual_regs): Likewise.
4187 * lower-subreg.c (remove_retval_note): Likewise.
4188 (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of
4189 FOR_BB_INSNS.
4190 * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on
4191 a deleted insn.
4192 * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted
4193 insn, if it's a jump.
4194 (try_redirect_by_replacing_jump): New variable jump_p. Call
4195 tablejump_p before delete_insn_chain.
4196 * reload1.c (reload): New variable next. Make sure that the for
4197 loop does not invoke NEXT_INSN on a deleted insn.
4198 (fixup_eh_region_note): Make the loop terminate if i becomes NULL.
4199 (delete_output_reload): New variable prev. Make sure the the for
4200 loops do not invoke PREV_INSN on a deleted insn.
4201
4202 2007-09-06 Zdenek Dvorak <ook@ucw.cz>
4203
4204 * cgraphbuild.c (rebuild_cgraph_edges): Export.
4205 * cgraph.h (rebuild_cgraph_edges): Declare.
4206 * tree-pass.h (pass_expand_omp_ssa): New.
4207 * omp-low.c (find_omp_clause): Export.
4208 (copy_var_decl): Split from omp_copy_decl_2.
4209 (build_omp_barrier): Return the call to emit instead of emitting
4210 it directly.
4211 (lower_rec_input_clauses, expand_omp_single): Gimplify the result of
4212 build_omp_barrier.
4213 (extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
4214 expand_omp_for_generic, expand_omp_for_static_nochunk,
4215 expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
4216 Adapted to work on SSA form.
4217 (execute_expand_omp): Do not invalidate dominance information.
4218 (gate_expand_omp): Do not run with -fopenmp-ssa flag.
4219 (gate_expand_omp_ssa, pass_expand_omp_ssa): New.
4220 * gimplify.c (gimplify_omp_for): Ensure that the control variable is
4221 a gimple_reg.
4222 (force_gimple_operand): Allow gimplifying code expressions without
4223 value.
4224 * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes.
4225 * common.opt (fopenmp-ssa): New.
4226 * tree-flow.h (find_omp_clause, copy_var_decl): Declare.
4227 * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency.
4228 * tree-cfg.c: Include tree-inline.h.
4229 (struct move_stmt_d): Replace vars_to_remove by vars_map field.
4230 (replace_by_duplicate_decl, replace_ssa_name,
4231 mark_virtual_ops_in_region): New functions.
4232 (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted
4233 to work on SSA form.
4234 * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass.
4235 * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP
4236 constructs.
4237
4238 2007-09-06 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4239
4240 * tree-loop-linear.c: Include obstack.h.
4241 (linear_transform_loops): New obstack lambda_obstack.
4242 Initialize it, pass it to gcc_loopnest_to_lambda_loopnest,
4243 lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls
4244 and free afterwards.
4245 * lambda.h (struct obstack): New forward declaration.
4246 (lambda_linear_expression_new): New parameter of type struct
4247 obstack *.
4248 (lambda_loopnest_new): Likewise.
4249 (lambda_loopnest_transform): Likewise.
4250 (lambda_body_vector_new): Likewise.
4251 (lambda_body_vector_compute_new): Likewise.
4252 (gcc_loopnest_to_lambda_loopnest): Likewise.
4253 (lambda_loopnest_to_gcc_loopnest): Likewise.
4254 * lambda-code.c: Include obstack.h.
4255 (lambda_lattice_new): New parameter lambda_obstack. Use it for
4256 allocation of ret.
4257 (lambda_body_vector_new): Likewise.
4258 (lambda_linear_expression_new): Likewise.
4259 (lambda_lattice_new): Likewise.
4260 (lambda_loopnest_new): Likewise. Additionally use obstack to
4261 allocate LN_LOOPS(ret).
4262 (lambda_lattice_compute_base): New parameter lambda_obstack. Pass
4263 it to lambda_lattice_new.
4264 (lambda_body_vector_compute_new): New parameter lambda_obstack.
4265 Pass it to lambda_body_vector_new.
4266 (lambda_lattice_compute_base): New paramater lambda_obstack. Pass
4267 it to lambda_lattice_new.
4268 (compute_nest_using_fourier_motzkin): New parameter lambda_obstack.
4269 Pass it to lambda_loopnest_new, lambda_linear_expression_new.
4270 (lambda_compute_target_space): Likewise.
4271 (lambda_compute_auxillary_space): New parameter lambda_obstack.
4272 Pass it to lambda_lattice_compute_base and
4273 compute_nest_using_fourieer_motzkin.
4274 (lambda_loopnest_transform): New parameter lambda_obstack. Pass
4275 it to lambda_lattice_compute_base, lambda_lattice_auxillary_space
4276 and lambda_lattice_compute_target_space.
4277 (gcc_tree_to_linear_expression): Nex parameter lambda_obstack.
4278 Pass it to lambda_linear_expression_new.
4279 (gcc_loop_to_lambda_loop): New parameter lambda_obstack. Pass it
4280 to gcc_tree_to_linear_expression.
4281 (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack.
4282 Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new.
4283 (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack.
4284 Pass it to lambda_body_vector_new and
4285 lambda_body_vector_compute_new.
4286 * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency.
4287 (lambda-code.o): Likewise.
4288
4289 2007-09-06 Chao-ying Fu <fu@mips.com>
4290
4291 * ginclude/stdfix.h: New file.
4292 * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h.
4293 (convert.o): Add dependence on fixed-value.h.
4294 * c-convert.c (convert): Support FIXED_POINT_TYPE.
4295 * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function
4296 to define fixed-point constants.
4297 (c_cpp_builtins): Define fixed-point constants.
4298 * convert.c (fixed-value.h): New include.
4299 (convert_to_real): Update comment to include fixed-point.
4300 Support FIXED_POINT_TYPE.
4301 (convert_to_integer): Update comment to include fixed-point.
4302 Support FIXED_POINT_TYPE.
4303 (convert_to_complex): Support FIXED_POINT_TYPE.
4304 (convert_to_fixed): New function.
4305 * convert.h (convert_to_fixed): Declare.
4306 * genopinit.c: Add comment about $Q for only fixed-point modes.
4307 (optabs): Add fract_optab, fractuns_optab, satfract_optab,
4308 satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab,
4309 sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab,
4310 ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab,
4311 usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab,
4312 usneg_optab for fixed-point modes.
4313 (gen_insn): Add force_fixed to track the $Q format for all fixed-point
4314 modes.
4315 * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR,
4316 PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or
4317 unsigned saturation optabs, when type is saturating.
4318 (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT.
4319 (expand_fixed_convert): New function.
4320 (gen_fixed_libfunc, gen_signed_fixed_libfunc,
4321 gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc,
4322 gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc,
4323 gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc,
4324 gen_fract_conv_libfunc, gen_fractuns_conv_libfunc,
4325 gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New
4326 functions.
4327 (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab,
4328 ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab,
4329 usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab,
4330 ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab,
4331 usneg_optab, fract_optab, fractuns_optab, satfract_optab,
4332 satfractuns_optab.
4333 Initialize fixed-point libraries, including add, ssadd, usadd, sub,
4334 sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl,
4335 ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract,
4336 fractuns, satfractuns.
4337 * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub,
4338 OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg,
4339 OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen,
4340 OTI_ssmsub_widen, OTI_usmsub_widen.
4341 (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
4342 usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
4343 ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab,
4344 umsub_widen_optab, usmsub_widen_optab): Define.
4345 (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract,
4346 COI_satfractuns.
4347 (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab):
4348 Define.
4349 (expand_fixed_convert): Declare.
4350 * expr.c (convert_move): Support the move of fixed-point modes.
4351 (emit_move_insn_1): Handle fixed-point mode to move via integer.
4352 (categorize_ctor_elements_1): Handle FIXED_CST.
4353 (count_type_elements): Handle FIXED_POINT_TYPE.
4354 (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT,
4355 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
4356 Support FIXED_CST.
4357 For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating
4358 multiply and add/subtract for fixed-point types.
4359 For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point
4360 mode, we jump to binop directly.
4361 Support FIXED_CONVERT_EXPR.
4362 (do_store_flag): Check FIXED_CST to put a constant second.
4363 (vector_mode_valid_p): Handle MODE_VECTOR_FRACT,
4364 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
4365 (const_vector_from_tree): Support FIXED_CST.
4366 * doc/extend.texi (Fixed-Point): New node.
4367 * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv,
4368 ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract,
4369 satfract, fractuns, satfractuns): Document them.
4370
4371 2007-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
4372
4373 * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc
4374 addresses into I registers.
4375
4376 2007-09-06 Jan Hubicka <jh@suse.cz>
4377 Andreas Tobler <a.tobler@schweiz.org>
4378
4379 * config/darwin.c (machopic_indirect_data_reference): Avoid invalid
4380 sharing.
4381 (machopic_legitimize_pic_address): Likewise.
4382
4383 2007-09-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
4384 Jan Hubicka <jh@suse.cz>
4385
4386 * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc
4387 instead of ufloat_optab->handlers directly.
4388 (floatdidf2): Likewise.
4389
4390 2007-09-06 Sandra Loosemore <sandra@codesourcery.com>
4391
4392 * config/mips/mips.c: Include diagnostic.h.
4393 (mips_set_current_function): Check errorcount and sorrycount
4394 before generating RTL.
4395
4396 2007-09-06 Richard Sandiford <richard@codesourcery.com>
4397
4398 PR target/33256
4399 * config/mips/mips.c (mips_classify_symbolic_expression): New function.
4400 (mips_classify_address): Use it instead of mips_symbolic_constant_p.
4401 (print_operand_reloc): Likewise.
4402
4403 2007-09-06 Janis Johnson <janis187@us.ibm.com>
4404
4405 Revert:
4406
4407 2007-09-06 Jan Hubicka <jh@suse.cz>
4408
4409 * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
4410 real_2expN.
4411
4412 2007-09-06 Richard Sandiford <richard@codesourcery.com>
4413
4414 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
4415 (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
4416
4417 2007-09-05 Janis Johnson <janis187@us.ibm.com>
4418
4419 * optabs.c (expand_float): Convert unsigned integer as signed only
4420 if it provides sufficient accuracy; add mode argument to real_2expN.
4421 (expand_fix): Fix comment typos; extend binary float into mode
4422 wider than destination for converion to unsigned integer; add mode
4423 argument to real_2expN.
4424 * real.c (real_2expN): Add mode argument to special-case decimal
4425 float values.
4426 * real.h (real_2expN): Ditto.
4427 * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
4428 real_2expN.
4429 (fixed_from_string): Ditto.
4430 (fixed_to_decimal): Ditto.
4431 (fixed_convert_from_real): Ditto.
4432 (real_convert_from_fixed): Ditto.
4433 * config/rs6000/rs6000.md (FP): Include DD and TD modes.
4434 * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
4435 muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
4436 floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
4437
4438 2007-09-06 Tom Tromey <tromey@redhat.com>
4439
4440 * tree-cfg.c (remove_bb): Only warn if line is non-zero.
4441 * c-pch.c (c_common_read_pch): Restore current location after
4442 reading PCH file.
4443 * tree.c (expand_location): Update.
4444 (expr_filename): Changed return type. Unified the two cases.
4445 (expr_lineno): Likewise.
4446 (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME
4447 as lvalues.
4448 * toplev.c (line_table): Changed type.
4449 (general_init): Update.
4450 (realloc_for_line_map): New function.
4451 (general_init): Allocate line_table using GC.
4452 * fix-header.c (line_table): Changed type.
4453 (read_scan_file): Update.
4454 (read_scan_file): Update.
4455 * c-ppoutput.c (maybe_print_line): Update.
4456 (print_line): Update.
4457 (cb_line_change): Update.
4458 (cb_define): Update.
4459 (pp_file_change): Update.
4460 * c-opts.c (c_common_init_options): Update.
4461 (finish_options): Update.
4462 (push_command_line_include): Update.
4463 * c-lex.c (cb_line_change): Update.
4464 (cb_def_pragma): Update.
4465 (cb_define): Update.
4466 (cb_undef): Update.
4467 (c_lex_with_flags): Use cpp_get_token_with_location.
4468 * input.h (line_table): Changed type.
4469 (location_from_locus): New macro.
4470 * tree.h (EXPR_FILENAME): No longer an lvalue.
4471 (EXPR_LINENO): Likewise.
4472 (expr_locus, set_expr_locus): Declare separately for
4473 USE_MAPPED_LOCATION.
4474 (expr_filename, expr_lineno): Changed return type.
4475 * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS.
4476 * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus.
4477 (expand_gimple_basic_block): Likewise.
4478 * final.c (final_scan_insn): Use expanded_location.
4479
4480 2007-09-06 Richard Guenther <rguenther@suse.de>
4481
4482 PR tree-optimization/32586
4483 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid
4484 folding if nothing changed.
4485 (simplify_unary_expression): New function. Do tree combining
4486 on conversion like codes.
4487 (try_to_simplify): Call it.
4488 * builtins.c (fold_builtin_cexp): Fold the built expressions.
4489 * fold-const.c (fold_unary): Test result of get_callee_fndecl().
4490
4491 2007-09-06 Jan Hubicka <jh@suse.cz>
4492
4493 PR target/33318
4494 * cse.c (fold_rtx): Avoid invalid sharing.
4495
4496 2007-09-06 Richard Sandiford <richard@codesourcery.com>
4497
4498 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
4499 (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN.
4500
4501 2007-09-06 Revital Eres <eres@il.ibm.com>
4502
4503 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
4504 Fix offsettable memory reference for 750CL.
4505
4506 2007-09-06 Pat Haugen <pthaugen@us.ibm.com>
4507
4508 * reload.c (find_reloads_address_1): Try to preserve original
4509 base/index regclass of operands.
4510 * regrename.c (scan_rtx_address): Likewise.
4511 (replace_oldest_value_addr): Likewise.
4512
4513 2007-09-06 Richard Guenther <rguenther@suse.de>
4514
4515 PR tree-optimization/33302
4516 * domwalk.c (walk_dominator_tree): The exit block is
4517 interesting even if it is not reachable.
4518
4519 2007-09-06 Richard Sandiford <richard@codesourcery.com>
4520
4521 PR middle-end/33306
4522 * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode.
4523
4524 2007-09-06 Basile Starynkevitch <basile@starynkevitch.net>
4525
4526 * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for
4527 robustness.
4528
4529 2007-09-05 Ian Lance Taylor <iant@google.com>
4530
4531 * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int
4532 when printing.
4533 (dump_generic_node): Likewise.
4534 * print-rtl.c (print_decl_name): Likewise.
4535 * print-tree.c (print_node_brief): Likewise.
4536 (print_node): Likewise.
4537 * Makefile.in (RTL_BASE_H): Add alias.h.
4538 (TREE_H): Likewise.
4539
4540 2007-09-06 Jesper Nilsson <jesper.nilsson@axis.com>
4541
4542 * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros):
4543 Defined.
4544 * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented.
4545 * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined.
4546
4547 2007-09-06 Jie Zhang <jie.zhang@analog.com>
4548
4549 * config.gcc (tm_file): Add linux.h for bfin*-uclinux*.
4550 (tm_defines): Define UCLIBC_DEFAULT to 1.
4551 (extra_options): Add linux.opt.
4552 * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define.
4553 (CRT_CALL_STATIC_FUNCTION): Likewise.
4554 (NO_IMPLICIT_EXTERN_C): Likewise.
4555 (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
4556 * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define.
4557 * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define.
4558 (ENDFILE_SPEC): Don't define.
4559 (LIB_SPEC): Likewise.
4560 (CRT_CALL_STATIC_FUNCTION): Likewise.
4561 (NO_IMPLICIT_EXTERN_C): Likewise.
4562 (LINUX_TARGET_OS_CPP_BUILTINS): Likewise.
4563 (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS.
4564
4565 2007-09-06 Jan Hubicka <jh@suse.cz>
4566
4567 * i386.c (ix86_expand_lround, ix86_expand_round): Update call of
4568 real_2expN.
4569
4570 2007-09-06 Jan Hubicka <jh@suse.cz>
4571
4572 * opts.c (common_handle_option): Enable inlining functions for
4573 -fprofile-generate.
4574
4575 2007-09-06 Jakub Jelinek <jakub@redhat.com>
4576
4577 * builtin-attrs.def (ATTR_NONNULL_3): New.
4578 (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of
4579 ATTR_NOTHROW_NONNULL_##FA.
4580 (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros.
4581 (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3,
4582 ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4,
4583 ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5,
4584 ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6,
4585 ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3,
4586 ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4):
4587 New.
4588 (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0,
4589 ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0,
4590 ATTR_FORMAT_NOTHROW_3_4): Remove.
4591 * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf,
4592 vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk,
4593 __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_*
4594 instead of ATTR_FORMAT_*_*.
4595
4596 2007-09-06 Hans-Peter Nilsson <hp@axis.com>
4597
4598 * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
4599 parts re-used for REG_FRAME_RELATED_EXPR.
4600
4601 2007-09-05 Janis Johnson <janis187@us.ibm.com>
4602
4603 * optabs.c (expand_float): Convert unsigned integer as signed only
4604 if it provides sufficient accuracy; add mode argument to real_2expN.
4605 (expand_fix): Fix comment typos; extend binary float into mode
4606 wider than destination for converion to unsigned integer; add mode
4607 argument to real_2expN.
4608 * real.c (real_2expN): Add mode argument to special-case decimal
4609 float values.
4610 * real.h (real_2expN): Ditto.
4611 * fixed-value.c (check_real_for_fixed_mode): Add mode argument to
4612 real_2expN.
4613 (fixed_from_string): Ditto.
4614 (fixed_to_decimal): Ditto.
4615 (fixed_convert_from_real): Ditto.
4616 (real_convert_from_fixed): Ditto.
4617 * config/rs6000/rs6000.md (FP): Include DD and TD modes.
4618 * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3,
4619 muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1,
4620 floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New.
4621
4622 2007-09-05 Ian Lance Taylor <iant@google.com>
4623
4624 * init-regs.c (initialize_uninitialized_regs): Call
4625 emit_insn_before rather than add_insn_before.
4626
4627 2007-09-05 Jakub Jelinek <jakub@redhat.com>
4628
4629 * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.
4630 * tree.h (CALL_EXPR_VA_ARG_PACK): Define.
4631 * tree-inline.h (copy_body_data): Add call_expr field.
4632 * tree-inline.c (expand_call_inline): Initialize call_expr.
4633 (copy_bb): Append anonymous inline fn arguments to arguments
4634 when inlining a CALL_EXPR_VA_ARG_PACK call.
4635 * builtins.c (expand_builtin): Issue an error if
4636 BUILT_IN_VA_ARG_PACK is seen during expand.
4637 (fold_call_expr, fold_builtin_call_array): Don't fold
4638 CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with
4639 __builtin_va_arg_pack () call as last argument.
4640 * gimplify.c (gimplify_call_expr): If last argument to a vararg
4641 function is __builtin_va_arg_pack (), decrease number of call
4642 arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR.
4643 * expr.c (expand_expr_real_1): Issue an error if
4644 CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand.
4645 * tree-pretty-print.c (dump_generic_node): Handle printing
4646 CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs.
4647 * doc/extend.texi (__builtin_va_arg_pack): Document.
4648
4649 2007-09-05 Adam Nemet <anemet@caviumnetworks.com>
4650
4651 PR tree-optimization/21513
4652 * builtins.c (build_builtin_expect_predicate): New function.
4653 (fold_builtin_expect): Add argument for expected value.
4654 Distribute __builtin_expect over short-circuiting operations.
4655 Fold nested builtin_expects.
4656 (fold_builtin_2): Adjust call to fold_builtin_expect.
4657
4658 2007-09-05 Rask Ingemann Lambertsen <rask@sygehus.dk>
4659
4660 PR web/32965
4661 PR tree-optimization/13756
4662 * doc/invoke.texi (Options That Control Optimization): Document
4663 -ftree-dse.
4664
4665 2007-09-05 Uros Bizjak <ubizjak@gmail.com>
4666
4667 * gcc/config/i386/cpuid.h: New file.
4668 * gcc/config/i386/driver-i386.c: Include cpuid.h.
4669 (describe_cache): Shrink size and line strings to 100 bytes.
4670 (detect_caches_amd): Return "" for unsupported max_ext_level.
4671 Use __cpuid function.
4672 (detect_caches_intel): Return "" for unsupported max_level.
4673 Use __cpuid function.
4674 (host_detect_local_cpu): Change feature flag variables to
4675 unsigned int. Initialize only extended feature flag variables.
4676 Use __get_cpuid_max to determine max supported cpuid level.
4677 Use __cpuid function to determine supported features. Fix
4678 calculation of family id. Remove is_amd and check signature
4679 directly. Check for Geode signature. Handle family 4 id.
4680 [PROCESSOR_GENERIC32]: New default for unknown family id. Move
4681 cpu discovery code to lower part of the function.
4682 [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune
4683 for sub-architecture.
4684 [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code.
4685 [PROCESSOR_K8]: Add k8-sse3 architecture.
4686 [PROCESSOR_NOCONA]: Remove.
4687 [PROCESSOR_GENERIC64]: Ditto.
4688 * gcc/config/i386/x-i386 (driver-i386.o): Depend on cpuid.h.
4689 * gcc/config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid
4690 to check for SSE and FXSAVE support.
4691 * gcc/config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h.
4692 Add -minline-all-stringops.
4693 * gcc/config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers.
4694 (x86_64-*-*): Ditto.
4695
4696 2007-09-05 Jie Zhang <jie.zhang@analog.com>
4697
4698 * config/bfin/linux-unwind.h: New file.
4699 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define.
4700 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define.
4701
4702 2007-09-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4703
4704 * Makefile.in (stmt.o): Add alloc-pool.h dependency.
4705 * stmt.c: Include alloc-pool.h.
4706 (struct case_node): Remove GTY marker.
4707 (add_case_node): New parameter case_node_pool. Use it for
4708 allocation of r.
4709 (expand_case): New allocation pool case_node_pool. Initialize it,
4710 pass to add_case_node and free it.
4711
4712 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
4713 David Ung <davidu@mips.com>
4714 Nigel Stephens <nigel@mips.com>
4715
4716 Add mips16/nomips16 function attributes and -mflip-mips16 option
4717 for testing mixed-mode compilation.
4718
4719 * config/mips/mips.opt (mflip-mips16): New.
4720
4721 * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define.
4722 (SYMBOL_FLAG_MIPS16_FUNC_P): Define.
4723
4724 * config/mips/mips.c (mips_base_target_flags): New.
4725 (mips_base_mips16): New.
4726 (mips_base_schedule_insns): New.
4727 (mips_base_reorder_blocks_and_partition): New.
4728 (mips_base_align_loops): New.
4729 (mips_base_align_jumps): New.
4730 (mips_base_align_functions): New.
4731 (mips16_flipper): New.
4732 (mips_attribute_table): Add "mips16" and "nomips16" entries.
4733 (TARGET_SET_CURRENT_FUNCTION): Define.
4734 (mips_mips16_type_p, mips_nomips16_type_p): New.
4735 (mips_comp_type_attributes): Check mips16/nomips16 attributes.
4736 (mips_function_ok_for_sibcall): Make it deal with functions with
4737 mips16 attributes.
4738 (mips_init_split_addresses): New, split out from override_options.
4739 (mips_init_relocs): New, split out from override_options.
4740 (was_mips16_p): New.
4741 (mips_set_mips16_mode): New, split out from override_options.
4742 (mips_set_current_function): New.
4743 (override_options): Add sorry for unsupported mips16/pic
4744 combination. Remove error for mips16/dsp combination. Save
4745 base option settings.
4746 (mips_file_start): Move mips16 mode setting output from here....
4747 (mips_output_function_prologue): ....to here.
4748 (mips_output_mi_thunk): Check for mips16 function.
4749 (build_mips16_function_stub): Don't set .mips16 here.
4750 (build_mips16_call_stub): Likewise.
4751 (mips_expand_builtin): Error in mips16 mode.
4752 (mips_use_mips16_mode_p): New.
4753 (mips_encode_section_info): Check for mips16 function, and set
4754 SYMBOL_REF_FLAGS accordingly.
4755
4756 * doc/extend.texi (Function Attributes): Document new
4757 mips16/nomips16 attributes.
4758 * doc/invoke.texi (Option Summary): Add -mflip-mips16.
4759 (MIPS Options): Document -mflip-mips16.
4760
4761 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
4762
4763 * config/mips/mips.c (mips_legitimize_tls_address): Call sorry
4764 if we encounter TLS address in MIPS16 mode.
4765 (mips_legitimize_const_move): Check cannot_force_const_mem for
4766 the (const (plus symbol offset)) case; this forces invalid TLS
4767 address in MIPS16 mode to be caught by the above call to sorry.
4768 (override_options): Don't reset targetm.have_tls in MIPS16 mode,
4769 because that now enables emutls, which is not ABI compatible
4770 with native TLS in non-MIPS16 mode.
4771
4772 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
4773
4774 Add target hook invoked when cfun changes.
4775
4776 * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document.
4777 * target.h (struct gcc_target): Add set_current_function.
4778 * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define.
4779 (TARGET_INITIALIZER): Add initializer for set_current_function.
4780 * tree.h (push_struct_function): New.
4781 * tree-inline.h (push_cfun, pop_cfun): Move declarations to...
4782 * function.h: Here.
4783 (set_cfun): Declare.
4784 * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to...
4785 * function.c: Here.
4786 (push_function_context_to): Use allocate_struct_function
4787 to create null context, not init_dummy_function_start. Use set_cfun.
4788 (pop_function_context_from): Use set_cfun.
4789 (in_dummy_function): New.
4790 (invoke_set_current_function_hook): New.
4791 (set_cfun): New.
4792 (push_cfun, pop_cfun): Use set_cfun.
4793 (push_struct_function): New.
4794 (allocate_struct_function): Call invoke_set_current_function_hook
4795 before returning.
4796 (prepare_function_start): Don't set cfun here. Remove unused
4797 argument; fix all callers.
4798 (init_dummy_function_start): Fiddle with in_dummy_function. Call
4799 push_struct_function.
4800 (init_function_start): Set cfun here.
4801 (expand_dummy_function_end): Fiddle with in_dummy_function. Pop cfun.
4802 * omp-low.c (create_omp_child_function): Use push_struct_function
4803 and pop_cfun to save/restore state.
4804 (expand_omp_parallel): Remove unused saved_cfun variable.
4805 * cgraphunit.c (ipa_passes): Use set_cfun.
4806 * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here.
4807 * dwarf2out.c (dwarf2out_abstract_function): Likewise.
4808 * matrix-reorg.c (transform_allocation_sites): Likewise.
4809 (matrix_reorg): Use set_cfun.
4810 * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here.
4811 * tree-optimize.c (tree_rest_of_compilation): Remove one redundant
4812 assignment to cfun; use set_cfun for the other.
4813 * tree-cfg.c (move_sese_region_to_fn): Use set_cfun.
4814 (dump_function_to_file): Use push_cfun/pop_cfun here.
4815 * c-decl.c (finish_function): Use set_cfun.
4816
4817 2007-09-05 Kenneth Zadeck <zadeck@naturalbridge.com>
4818
4819 * regrename.c (rerename_optimize): Use deferred rescanning and
4820 insert explicit calls to rescan insns when changed.
4821
4822 2007-09-05 Jan Hubicka <jh@suse.cz>
4823
4824 * optabs.c (libfunc_entry): Change optab to integer.
4825 (hash_libfunc, convert_optab_libfunc, optab_libfunc,
4826 set_optab_libfunc, set_conv_libfunc): Use optable indexes instead
4827 of pointers for hashing.
4828
4829 2007-09-05 Jan Hubicka <jh@suse.cz>
4830
4831 * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing
4832 verifier.
4833 * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise.
4834 * see.c (pass_see): Likewise.
4835 * tracer.c (pass_tracer): Likewise.
4836 * postreload-gcse.c (pass_gcse2): Likewise.
4837 * postreload.c (pass_postreload_cse): Likewise.
4838 * mode-switching.c (pass_mode_switching): Likewise.
4839 * modulo-sched.c (pass_sms): Likewise.
4840 * cse.c (cse_insn): Likewise.
4841 * web.c (pass_web): Likweise.
4842 * combine-stack-adj.c (pass_stack_adjustments): Likewise.
4843 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise.
4844 * loop-init.c (pass_rtl_loop_init): Likewise.
4845 (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch,
4846 pass_rtl_unroll_and, pass_rtl_doloop): Likewise.
4847 * global.c (pass_global_alloc): Likewise.
4848 * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine,
4849 pass_if_after_reload): Likewise.
4850 * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise.
4851 * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise.
4852 * regmove.c (pass_regmove): Likewise.
4853 * function.c (pass_thread_prologugues_epilogues): Likewise.
4854 * gcse.c (pass_gcse): Likewise.
4855 * rtl-factoring.c (pass_rtl_seqabstr): Likewise.
4856 * lower-subreg.c (pass_lower_subreg2): Likewise.
4857 * bt-load.c (pass_branch_target_load): Likewise.
4858 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4859 * cfgcleanup.c (pass_jump, pass_jump2): Likewise.
4860 * combine.c (pass_combine): Likewise.
4861 * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise.
4862 (pass_partition_blocks): Likewise.
4863 * var-tracking.c (pass_variable_track): Likewise.
4864 * reg-stack.c (pass_stack_regs_run): Likewise.
4865 * sched-rgn.c (pass_sched, pass_sched2): Likewise.
4866 * passes.c (pass_postreload): Likewise.
4867 (execute_function_todo): Add TODO_verify_rtl_sharing handling code.
4868 * tree-pass.h (TODO_verify_rtl_sharing): New.
4869 (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
4870 TODO_update_ssa_only_virtuals, TODO_remove_unused_locals,
4871 TODO_set_props, TODO_df_finish, TODO_df_verify,
4872 TODO_mark_first_instance, TODO_rebuild_alias): Renumber.
4873
4874 2007-09-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4875
4876 * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p,
4877 fold_real_zero_addition_p, reorder_operands_p,
4878 div_if_zero_remainder, fold_undefer_overflow_warnings,
4879 int_binop_types_match_p, fold_convert_const_int_from_int,
4880 fold_convert_const_int_from_real,
4881 fold_convert_const_int_from_fixed,
4882 fold_convert_const_real_from_real,
4883 fold_convert_const_real_from_fixed,
4884 fold_convert_const_fixed_from_fixed,
4885 fold_convert_const_fixed_from_int,
4886 fold_convert_const_fixed_from_real, maybe_lvalue_p,
4887 fold_checksum_tree, fold_check_failed, print_fold_checksum,
4888 debug_fold_checksum, multiple_of_p): Constify.
4889 * tree-flow-inline.h (get_lineno): Likewise.
4890 * tree-flow.h (get_lineno): Likewise.
4891 * tree-object-size.c (compute_object_offset, addr_object_size,
4892 alloc_object_size, pass_through_call): Likewise.
4893 * tree-pretty-print.c (op_symbol, print_call_name,
4894 print_struct_decl, do_niy): Likewise.
4895 * tree.h (fold_undefer_overflow_warnings, multiple_of_p,
4896 debug_fold_checksum): Likewise.
4897
4898 2007-09-04 Steven Bosscher <steven@gcc.gnu.org>
4899
4900 PR middle-end/33029
4901 * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
4902 note, remove the associated REG_RETVAL note.
4903
4904 2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
4905
4906 * config.gcc (powerpc*-*-*): Install
4907 spu2vmx.h, vec_types.h, and si2vmx.h headers.
4908 * config/rs6000/spu2vmx.h: New header.
4909 * config/rs6000/si2vmx.h: New header.
4910 * config/rs6000/vec_types.h: New header.
4911
4912 2007-09-05 Ben Elliston <bje@au.ibm.com>
4913
4914 * varasm.c (initializer_constant_valid_p): Fix comment typo.
4915
4916 2007-09-05 Ben Elliston <bje@au.ibm.com>
4917
4918 * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint,
4919 not `m' for *ptrp.
4920 (__stdcx): Make asm volatile.
4921 (__stwcx, __stdcx): Return only 0 or 1.
4922
4923 2007-09-05 Jan Hubicka <jh@suse.cz>
4924
4925 Revert:
4926
4927 2007-09-04 Jan Hubicka <jh@suse.cz>
4928 * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
4929
4930 2007-09-04 Richard Guenther <rguenther@suse.de>
4931 * tree-ssa-operands.c (add_virtual_operand): Only mark
4932 stores as has_volatile_ops if alias information is not available.
4933
4934 2007-09-05 Jakub Jelinek <jakub@redhat.com>
4935
4936 * config/rs6000/tramp.asm: Include config.h.
4937 Check __PIC__ or __pic__ macro instead of SHARED.
4938
4939 PR rtl-optimization/32300
4940 * see.c (see_copy_insn): New function.
4941 (see_def_extension_not_merged, see_merge_one_use_extension,
4942 see_merge_one_def_extension): Use it. Avoid changing
4943 PREV_INSN/NEXT_INSN chains directly, insted emit insns
4944 into sequences. Call df_insn_delete on temporary insns
4945 that won't be emitted into the insn stream.
4946 (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN
4947 and run df_process_deferred_rescans () before run_fast_dce.
4948
4949 PR tree-optimization/33017
4950 * tree-data-ref.c (split_constant_offset) <case SSA_NAME>: Don't
4951 recurse for pure or const function calls.
4952
4953 2007-09-04 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4954
4955 * c-format.c: Include alloc-pool.h.
4956 (check_format_info_main): New argument fwt_alloc. Use allocation
4957 pool instead of GC. Remove GC deallocation code.
4958 (check_format_arg): Create allocation pool, pass it to
4959 check_format_info_main and free it afterwards.
4960 * Makefile.in (c-format.o): Add alloc-pool.h dependency.
4961
4962 2007-09-05 Ben Elliston <bje@au.ibm.com>
4963
4964 * config/rs6000/ppu_intrinsics.h (__protected_stream_count):
4965 Rename count macro arugment for clarity.
4966 (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000.
4967 (__protected_stream_set): Likewise, pass 0.
4968
4969 2007-09-04 Jan Hubicka <jh@suse.cz>
4970
4971 * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value.
4972
4973 2007-09-04 Jan Hubicka <jh@suse.cz>
4974
4975 * invoke.texi (-finline-small-functions): Document.
4976 * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE
4977 when deciding what is inlinable.
4978 (cgraph_decide_recursive_inlining): Handle flag_inline_functions.
4979 (cgraph_decide_inlining_of_small_function): Handle new flags.
4980 (cgraph_decide_inlining_incrementally): Likewise.
4981 * opts.c (decode_options): Enable flag_inline_small_functions at -O2
4982 * common.opt (finline-small-functions): New.
4983 * Makefile.in (build/gengtype.o-warn): Work around PR29478
4984
4985 2007-09-04 Richard Guenther <rguenther@suse.de>
4986
4987 * tree-ssa-operands.c (add_virtual_operand): Only mark
4988 stores as has_volatile_ops if alias information is not available.
4989
4990 2007-09-04 Andrew Haley <aph@redhat.com>
4991
4992 * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0.
4993
4994 2007-09-04 Andrew Haley <aph@redhat.com>
4995
4996 * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New.
4997 * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New.
4998 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New.
4999
5000 2007-09-04 Emmanuel Thome <Emmanuel.Thome@inria.fr>
5001
5002 PR c++/14178
5003 * common.opt: Mention ABI version 2 in comment.
5004
5005 2007-09-04 Jan Hubicka <jh@suse.cz>
5006
5007 * optabs.c (debug_optab_libfunc): Update; make available to gdb.
5008 (libfunc_entry): New structure.
5009 (libfunc_hash): New hashtable.
5010 (hash_libfunc): New function.
5011 (eq_libfunc): New function.
5012 (convert_optab_libfunc): New function.
5013 (optab_libfunc): New function.
5014 (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc,
5015 expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn,
5016 expand_float, expand_fix, new_optab, new_convert_optab):
5017 Update for new libfunc API.
5018 (init_libfunc, init_integral_libfuncs,
5019 init_floating_libfuncs, init_interclass_conv_libfuncs
5020 init_intraclass_conv_libfuncs): Remove; reorganize all logic to:
5021 (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc,
5022 gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
5023 gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc,
5024 gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc,
5025 gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc,
5026 gen_extend_conv_libfunc): New.
5027 (init_one_libfunc): Revamp for hashtables.
5028 (set_conv_libfunc): Likewise.
5029 (init_optabs): Initialize hashtable; use lazy initialization where
5030 possible.
5031 * optabs.h (optab_handlers): Move out of GGC.
5032 (optab, convert_optab): Move out of GGC; add lazy gen info.
5033 (code_to_optab, convert_optab_table, optab_table): Move out of GGC.
5034 (optab_libfunc, convert_optab_libfunc): New.
5035 * builtins.c (expand_builtin_powi): Update for new API.
5036 * expr.c (convert_move): Likewise.
5037 * expmed.c (expand_divmod): Likewise.
5038
5039 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
5040
5041 * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the
5042 GOT pointer only if there is a constant pool. Use the allocated space
5043 for SPE also.
5044
5045 2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
5046
5047 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct
5048 typo for AltiVec.
5049
5050 2007-09-04 Revital Eres <eres@il.ibm.com>
5051 Richard Guenther <rguenther@suse.de>
5052 R. Clint Whaley <whaley@cs.utsa.edu>
5053
5054 * doc/invoke.texi (-fassociative-math, -freciprocal-math):
5055 Document new flags.
5056 * tree-tailcall.c (process_assignment): Use -fassociative-math
5057 when reodering operands of floating-point type.
5058 * fold-const.c (fold_comparison, fold_binary): Use
5059 -fassociative-math and -freciprocal-math instead of
5060 -funsafe-math-optimization flag.
5061 * toplev.h (set_unsafe_math_optimizations_flags): Declare function.
5062 * tree-ssa-math-opts.c (gate_cse_reciprocals): Use
5063 -freciprocal-math instead of -funsafe-math-optimizations.
5064 * opts.c (set_fast_math_flags): Set -freciprocal-math and
5065 -fassociative-math when -ffast-math is set.
5066 (set_unsafe_math_optimizations_flags): New Function
5067 to set -freciprocal-math and -fassociative-math when
5068 -funsafe-math-optimizations is set.
5069 (common_handle_option): Call it.
5070 * tree-vectorizer.c (vect_is_simple_reduction): Use
5071 -fassociative-math when doing reduction on floats.
5072 * loop-unroll.c (analyze_insn_to_expand_var): Use
5073 -fassociative-math when expanding an accumulator of type float.
5074 * simplify-rtx.c (simplify_binary_operation_1): Use
5075 -fassociative-math and -freciprocal-math when reordeing operands
5076 of floating-point type.
5077 * combine.c (combine_simplify_rtx): Likewise.
5078 * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb):
5079 Likewise.
5080 * common.opt (-fassociative-math, -freciprocal-math): New flags.
5081
5082 2007-09-04 Paolo Carlini <pcarlini@suse.de>
5083
5084 PR c++/18608
5085 * doc/install.texi (--enable-__cxa_atexit): Fix typo.
5086
5087 2007-09-04 Jan Hubicka <jh@suse.cz>
5088
5089 * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop.
5090
5091 2007-09-04 Jan Hubicka <jh@suse.cz>
5092
5093 * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR
5094 and corresponding MATCH_DUP.
5095
5096 2007-09-04 Uros Bizjak <ubizjak@gmail.com>
5097
5098 PR middle-end/33187
5099 * combine.c (subst): Do not try to simplify X if it represents load
5100 of FP constant from the constant pool via float extension.
5101
5102 2007-09-04 Ben Elliston <bje@au.ibm.com>
5103
5104 * c-opts.c: Include "tm_p.h".
5105 * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency.
5106
5107 2007-09-04 Richard Guenther <rguenther@suse.de>
5108
5109 PR tree-optimization/33291
5110 * tree-pretty-print.c (dump_generic_node): Dump all
5111 qualifiers for pointer types, not only first. Dump
5112 qualifiers for aggregate types as well.
5113 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always
5114 use the canonical type for building ARRAY_REFs.
5115 * gimplify.c (canonicalize_addr_expr): Clean up. The
5116 correct validness check is compatibility of the pointer
5117 types. Always use the canonical type for building
5118 ARRAY_REFs and ADDR_EXPRs.
5119 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert
5120 change that disabled propagation of ADDR_EXPRs into statements
5121 with volatile ops.
5122
5123 2007-09-03 Zack Weinberg <zack@codesourcery.com>
5124
5125 * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart)
5126 (umulsi3_highpart): Make into expanders; existing insns are
5127 now named *[insn]_nov6. Add stars to existing [insn]_v6
5128 counterparts' names.
5129
5130 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
5131
5132 * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o)
5133 (unprotoize.o): Remove SHLIB_MULTILIB.
5134
5135 2007-09-03 Eric Weddington <eweddington@cso.atmel.com>
5136
5137 * doc/extend.texi: Document progmem attribute for AVR.
5138
5139 2007-09-03 Anatoly Sokolov <aesok@post.ru>
5140
5141 PR target/28902
5142 * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define.
5143
5144 2007-09-03 Zack Weinberg <zack@codesourcery.com>
5145
5146 * optabs.c (expand_ffs): Initialize val and defined_at_zero
5147 to avoid warnings.
5148
5149 * optabs.c: Remove unnecessary forward declarations.
5150 (expand_unop_direct): New, broken out of expand_unop.
5151 (expand_doubleword_clz): New.
5152 (expand_ctz): Move above expand_ffs. Use
5153 start_sequence, end_sequence, add_equal_note, and
5154 expand_unop_direct. Add more commentary.
5155 (expand_ffs): Try both ctz optab and expand_ctz.
5156 Generate a test and branch if the hardware doesn't give us
5157 a useful value for input zero. Style improvements similar to
5158 expand_ctz.
5159
5160 * config/arm/arm.md (ffssi2, ctzsi2): Delete.
5161
5162 2007-09-03 Zack Weinberg <zack@codesourcery.com>
5163
5164 * config.gcc: Delete stanza for arm-semi-aof and
5165 armel-semi-aof targets.
5166 * config/arm/arm-protos.h
5167 * config/arm/arm.c
5168 * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks;
5169 make all #ifndef AOF_ASSEMBLER blocks unconditional. Also
5170 delete aof_pic_label and remove mention of AOF in comments.
5171 * config/arm/arm.md: Delete patterns used only for AOF assembly.
5172 * config/arm/aof.h
5173 * config/arm/semiaof.h
5174 * config/arm/t-semi: Delete file.
5175
5176 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5177
5178 * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX,
5179 CONST_CAST_BB): New macros for type-specific casts.
5180 (CONST_CAST): Add a TYPE parameter and define it in terms of
5181 CONST_CAST2.
5182
5183 * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST.
5184 * c-lex.c (cb_ident, lex_string): Likewise,
5185 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise,
5186 * config/i386/i386.c (ix86_function_regparm,
5187 ix86_function_sseregparm): Use CONST_CAST_TREE.
5188 * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for
5189 CONST_CAST.
5190 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
5191 give_switch, set_multilib_dir): Likewise,
5192 * gengtype-parse.c (string_seq, typedef_name): Likewise,
5193 * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE.
5194 * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX.
5195 * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST.
5196 * prefix.c (update_path): Likewise,
5197 * pretty-print.c (pp_base_destroy_prefix): Likewise,
5198 * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX.
5199 * tree-cfg.c (tree_can_merge_blocks_p,
5200 tree_block_ends_with_condjump_p): Use CONST_CAST_BB.
5201 * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE.
5202 * tree.c (build_string): Supply a TYPE for CONST_CAST.
5203 (attribute_list_contained): Use CONST_CAST_TREE.
5204
5205 2007-09-03 Krister Walfridsson <cato@df.lth.se>
5206
5207 * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define.
5208
5209 2007-09-03 Richard Sandiford <richard@codesourcery.com>
5210
5211 PR middle-end/33290
5212 * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs
5213 before forcing them into a register.
5214
5215 2007-09-03 Richard Sandiford <richard@codesourcery.com>
5216
5217 * config/mips/mips.md (fetchop_bit): Use define_code_iterator
5218 rather than define_code_macro.
5219
5220 2007-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5221
5222 * gcc.c (xputenv): New function.
5223 (putenv_from_prefixes): Use xputenv instead of putenv.
5224 (process_command): Use xputenv instead of putenv.
5225 (set_collect_gcc_options): Use xputenv instead of putenv.
5226 (main): Use xputenv instead of putenv.
5227
5228 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
5229
5230 * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe
5231 availability of swap instruction.
5232 * config/cris/cris.md (bswapsi2): Implement using swap instruction.
5233
5234 2007-09-03 Revital Eres <eres@il.ibm.com>
5235
5236 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update
5237 Documentation.
5238
5239 2007-09-03 Vladimir Yanovsky <yanov@il.ibm.com>
5240 Ayal Zaks <zaks@il.ibm.com>
5241 Revital Eres <eres@il.ibm.com>
5242
5243 * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule,
5244 compute_split_row): New functions.
5245 (ps_unschedule_node): Remove.
5246 (normalize_sched_times): Iterate over the already scheduled
5247 insns instead of the number of nodes.
5248 (MAX_SPLIT_NUM): New definition.
5249 (sms_schedule_by_order): Change the scheduling heuristic to
5250 avoid useless increases of initiation interval ii.
5251 (get_sched_window): Add dump printouts.
5252
5253 2007-09-02 David Daney <ddaney@avtrex.com>
5254
5255 * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP,
5256 UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants.
5257 (optab, insn): Add more attributes.
5258 (fetchop_bit): New code macro.
5259 (immediate_insn): New code macro attribute.
5260 (sync): Change condition to ISA_HAS_SYNC.
5261 (rdhwr): Change predicate for operand 0 to register_operand.
5262 (memory_barrier): New expand.
5263 (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>,
5264 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
5265 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
5266 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
5267 sync_new_nand<mode>, sync_lock_test_and_set<mode>): New insns.
5268 * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates.
5269 (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP,
5270 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
5271 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros.
5272
5273 2007-09-03 Jesper Nilsson <jesper.nilsson@axis.com>
5274 Hans-Peter Nilsson <hp@axis.com>
5275
5276 * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO):
5277 Defined to describe availability and behavior of CLZ.
5278 * config/cris/cris.md (clzsi2): Implement using lz instruction.
5279 * config/cris/cris.opt: Tweak comment for "-metrax4".
5280 * config/cris/arit.c (LZ): When defined, define as __builtin_clz.
5281 * longlong.h [__CRIS__ && __CRIS_arch_version >= 3]
5282 (count_leading_zeros): Define.
5283
5284 2007-09-01 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5285
5286 * ggc-page.c (ggc_pch_read): Call validate_free_objects.
5287
5288 2007-09-02 Joseph Myers <joseph@codesourcery.com>
5289
5290 PR middle-end/33272
5291 * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter
5292 decayed from array.
5293
5294 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
5295
5296 * config/arm/arm.c, config/rs6000/ppu_intrinsics.h,
5297 config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c,
5298 ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c,
5299 sched-deps.c, sched-int.h, system.h, target.h,
5300 tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c,
5301 tree.def: Fix comment typos.
5302
5303 2007-09-01 Kazu Hirata <kazu@codesourcery.com>
5304
5305 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove.
5306 (override_options): Turn on -mstrict-align on non-ColdFire
5307 targets.
5308 * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment.
5309
5310 2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5311
5312 * c-common.c (const_strip_array_types): Delete.
5313 * c-common.h (const_strip_array_types): Likewise.
5314 * emit-rtl.c (const_next_insn, const_previous_insn,
5315 const_next_nonnote_insn, const_prev_nonnote_insn,
5316 const_next_real_insn, const_prev_real_insn,
5317 const_next_active_insn, const_prev_active_insn, const_next_label,
5318 const_prev_label): Delete.
5319 * gimple-low.c (block_may_fallthru): Use expr_last.
5320 * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn.
5321 * rtl.h (const_previous_insn, const_next_insn,
5322 const_prev_nonnote_insn, const_next_nonnote_insn,
5323 const_prev_real_insn, const_next_real_insn,
5324 const_prev_active_insn, const_next_active_insn, const_prev_label,
5325 const_next_label): Delete.
5326 * rtlanal.c (keep_with_call_p): Use next_nonnote_insn.
5327 * system.h (CONST_CAST): Update comment.
5328 * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt.
5329 (const_first_stmt, const_last_stmt): Delete.
5330 (tree_block_ends_with_condjump_p): Use last_stmt.
5331 * tree-flow.h (const_first_stmt, const_last_stmt): Delete.
5332 * tree-iterator.c (const_expr_first, const_expr_last,
5333 const_expr_only): Delete.
5334 * tree.c (const_lookup_attribute): Likewise.
5335 (attribute_list_contained): Use lookup_attribute.
5336 * tree.h (const_lookup_attribute, const_expr_first,
5337 const_expr_last, const_expr_only): Delete.
5338
5339 2007-09-01 Richard Guenther <rguenther@suse.de>
5340
5341 * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE
5342 instead of TREE_THIS_VOLATILE.
5343 * tree-ssa-operands.c (add_virtual_operand): Do not set
5344 has_volatile_ops. Do not check s_ann for NULL.
5345 (get_indirect_ref_operands): Likewise.
5346 (get_expr_operands): Likewise. For all reference trees
5347 set has_volatile_ops based on TREE_THIS_VOLATILE. Also
5348 check base of reference for TREE_THIS_VOLATILE.
5349
5350 2007-09-01 Richard Guenther <rguenther@suse.de>
5351
5352 * tree-cfg.c (verify_gimple_expr): Fix check for conversions
5353 between integral types. Also allow conversions between
5354 pointer types.
5355
5356 2007-08-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
5357
5358 * optabs.c (prepare_float_lib_cmp): Use
5359 libgcc_cmp_return_mode instead of word_mode.
5360 * config/dfp-bit.h: Likewise.
5361 * config/fp-bit.h: Likewise.
5362 * config/spu/spu.c (spu_libgcc_cmp_return_mode):
5363 New function.
5364 (spu_libgcc_shift_count_mode): New function.
5365 (TARGET_LIBGCC_CMP_RETURN_MODE): Define.
5366 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define.
5367
5368 2007-08-31 Joseph Myers <joseph@codesourcery.com>
5369
5370 * tree-pretty-print.c: Include output.h.
5371 (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not
5372 HOST_WIDE_INT_PRINT_DEC.
5373 * Makefile.in (tree-pretty-print.o): Add dependency on output.h.
5374
5375 2007-08-31 Zdenek Dvorak <ook@ucw.cz>
5376
5377 PR rtl-optimization/33224
5378 * loop-iv.c (latch_dominating_def): Check that the definition belongs
5379 to the analysed region.
5380
5381 2007-08-31 Richard Guenther <rguenther@suse.de>
5382
5383 * function.c (allocate_struct_function): Do not set
5384 current_function_returns_pointer.
5385 * function.h (struct var_refs_queue): Remove.
5386 (struct simple_obstack_stack): Likewise.
5387 (struct function): Remove fixup_var_refs_queue member.
5388 Remove returns_pointer flag.
5389 (current_function_returns_pointer): Remove define.
5390
5391 2007-08-31 Nick Clifton <nickc@redhat.com>
5392
5393 * tree-ssa-coalesce.c (compare_pairs): Use the elements as
5394 secondary keys in order to obtain a stable sort.
5395
5396 2007-08-31 Nick Clifton <nickc@redhat.com>
5397
5398 PR target/33132
5399 * config/m32r/constraints.md: Add W constraint for integer zero.
5400 * config/m32r/m32r.md (get_pc): Use W and i constraints.
5401 Fix length calculation by using alternatives.
5402
5403 2007-08-31 Richard Sandiford <richard@codesourcery.com>
5404
5405 * optabs.c (shift_optab_p, commutative_optab_p): New functions,
5406 split out from expand_binop.
5407 (avoid_expensive_constant): New function.
5408 (expand_binop_directly): Remove commutative_op argument and
5409 (expand_binop_directly): Remove commutative_op argument and
5410 call cummutative_optab_p instead. Do not change op0 or op1
5411 when swapping xop0 and xop1. Apply avoid_expensive_constant
5412 to each argument after potential swapping. Enforce the
5413 canonical order of commutative operands.
5414 (expand_binop): Use shift_optab_p and commutative_optab_p.
5415 Update the calls to expand_binop_directly. Only force constants
5416 into registers when widening an operation. Only swap operands
5417 once a direct expansion has been rejected.
5418 (expand_twoval_binop): Only force constants into registers when
5419 using a direct expansion.
5420
5421 2007-08-31 Maxim Kuvyrkov <maxim@codesourcery.com>
5422
5423 * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED.
5424 (sched_analyze_insn): Don't postprocess speculative dependencies when
5425 target has no scheduling.
5426 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix
5427 'uninitialized' warning.
5428
5429 2007-08-31 Richard Guenther <rguenther@suse.de>
5430
5431 * tree.c (build_complex_type): Always set TYPE_NAME for
5432 comples types.
5433
5434 2007-08-31 Olivier Hainque <hainque@adacore.com>
5435
5436 * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New
5437 internal macro. Default alignment factor for csect directives, chosen
5438 to match what BIGGEST_ALIGNMENT allows.
5439 (DATA_SECTION_ASM_OP): Use it.
5440 * config/rs6000/rs6000.c
5441 (rs6000_xcoff_output_readonly_section_asm_op):
5442 Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR.
5443 (rs6000_xcoff_output_readwrite_section_asm_op): Likewise.
5444
5445 2007-08-31 Olivier Hainque <hainque@adacore.com>
5446
5447 * dbxout.c (dbxout_block): Move declaration within the first
5448 #if defined (DBX_DEBUGGING_INFO) block. Rearrange another such
5449 block to include the definition, together with the associated
5450 helpers.
5451
5452 2007-08-31 David Edelsohn <edelsohn@gnu.org>
5453 Revital Eres <eres@il.ibm.com>
5454
5455 * doc/invoke.texi (-mpaired): Document flag.
5456 * config.gcc: Include paired.h in powerpc extra_headers and
5457 750cl.h in powerpc-*-linux*paired*.
5458 * config/rs6000/rs6000.opt (-mpaired): New flag.
5459 * config/rs6000/rs6000.c (paired_init_builtins,
5460 paired_expand_builtin, paired_expand_lv_builtin,
5461 paired_expand_stv_builtin, paired_expand_predicate_builtin):
5462 New functions to support the paired single builtin functions.
5463 (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE.
5464 (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired
5465 single builtins.
5466 (bdesc_paired_preds): New structure for paired predicate
5467 instructions.
5468 (rs6000_expand_builtin): Expand paired single builtins.
5469 (rs6000_init_builtins): Init paired single builtins.
5470 (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf.
5471 Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe
5472 and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf. Add new types
5473 v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf.
5474 (rs6000_vector_mode_supported_p): Support paired vector mode.
5475 * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD,
5476 PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT):
5477 New.
5478 (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE.
5479 (DATA_ALIGNMENT): Likewise.
5480 (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE.
5481 (rs6000_builtins): Add PAIRED builtins.
5482 * config/rs6000/rs6000.md: Include paired.md.
5483 * config/rs6000/paired.h: New.
5484 * config/rs6000/paired.md: New.
5485 * config/rs6000/750cl.h: New.
5486 * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl.
5487
5488 2007-08-30 Ollie Wild <aaw@google.com>
5489
5490 * c-opts.c (c_common_handle_option): Support -fno-directives-only.
5491 * gcc.c (default_compilers): Add -fno-directives-only to
5492 @assembler-with-cpp.
5493
5494 2007-08-30 Sandra Loosemore <sandra@codesourcery.com>
5495
5496 PR middle-end/33211
5497
5498 * regclass.c (initial_fixed_regs): Revert previous change and make
5499 it const again.
5500 (initial_call_used_regs): Likewise.
5501 (initial_call_really_used_regs): Delete, reverting previous addition.
5502 (initial_reg_names): Likewise.
5503 (init_reg_sets): Revert previous change.
5504 (saved_fixed_regs): New.
5505 (saved_call_used_regs): New.
5506 (saved_call_really_used_regs): New.
5507 (saved_reg_names): New.
5508 (save_register_info): New.
5509 (restore_register_info): New.
5510 (init_reg_sets_1): Replace reset of register info with call to
5511 restore_register_info.
5512 * rtl.h (save_register_info): Declare.
5513 * toplev.c (backend_init): Call save_register_info.
5514
5515 2007-08-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5516
5517 * tree-ssa-propagate.c (set_rhs): Remove the copied annotation
5518 from the original statement.
5519
5520 2007-08-30 Chao-ying Fu <fu@mips.com>
5521
5522 * c-lex.c (interpret_fixed): Declare.
5523 (interpret_float): Process _Fract and _Accum.
5524 (interpret_fixed): New function.
5525 * final.c (output_addr_const): Process CONST_FIXED.
5526 * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG.
5527 (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT,
5528 SS_DIV, US_DIV.
5529 (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV,
5530 US_DIV, US_ASHIFT.
5531 (simplify_immed_subreg): Support CONST_FIXED.
5532 Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
5533 (simplify_subreg): Support CONST_FIXED.
5534
5535 2007-08-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
5536
5537 * config/rs6000/ppu_intrinsics.h: New file.
5538 * config.gcc (powerpc*-*-* <extra_headers>): Install
5539 ppu_intrinsics.h.
5540
5541 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
5542
5543 * cfg.c (dump_flow_info): Change to also print entry and exit
5544 block info.
5545 * print-rtl.c (print_rtl_single): Allow to print rtl with
5546 -fdump-unnumbered.
5547
5548 2007-08-30 Kenneth Zadeck <zadeck@naturalbridge.com>
5549
5550 * df-core.h (df_dump_region): New function.
5551 * df.h (df_dump_region): New function.
5552 * loop-invariant.c (find_defs): Add call to df_dump_region.
5553 * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
5554 df_dump_region.
5555
5556 2007-08-30 Jakub Jelinek <jakub@redhat.com>
5557
5558 PR target/33168
5559 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return
5560 true if any of the compare_section_name calls returned true,
5561 rather than if any returned false.
5562
5563 2007-08-30 Richard Guenther <rguenther@suse.de>
5564
5565 PR tree-optimization/33199
5566 * tree-ssa-structalias.c (handle_lhs_call): New function.
5567 (find_func_aliases): In non-IPA mode make sure that for
5568 calls that return a pointer we add a constraint for the
5569 result to point to anything.
5570
5571 2007-08-30 Richard Guenther <rguenther@suse.de>
5572
5573 * doc/invoke.texi (-mveclibabi): Document new target option.
5574 * config/i386/i386.opt (-mveclibabi): New target option.
5575 * config/i386/i386.c (ix86_veclib_handler): Handler for
5576 vectorization library support.
5577 (override_options): Handle the -mveclibabi option, initialize
5578 the vectorization library handler.
5579 (ix86_builtin_vectorized_function): As fallback call the
5580 vectorization library handler, if set.
5581 (ix86_veclibabi_acml): New static function for ACML ABI style
5582 vectorization support.
5583
5584 2007-08-30 Jakub Jelinek <jakub@redhat.com>
5585
5586 * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode
5587 used_m, even if it is 32-bit aligned, adjust used_m MEM to have
5588 SImode and update m. Don't run gen_lowpart_common on arbitrary
5589 memory address, force it to register first.
5590
5591 PR middle-end/32758
5592 * dce.c (dce_process_block): Don't delete setters of
5593 artificially used registers.
5594
5595 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5596
5597 * config/s390/s390.md ("*add<mode>3_alc_carry1_cc",
5598 "*add<mode>3_alc_carry1_cconly", "*add<mode>3_alc_carry2_cc",
5599 "*add<mode>3_alc_carry2_cconly"): New insn definitions.
5600
5601 2007-08-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5602
5603 * config/s390/s390.c (s390_expand_addcc): Emit canonical alc
5604 pattern.
5605 * config/s390/s390.md ("*add<mode>3_alc_cc", "*add<mode>3_alc",
5606 "addti3", "*adddi3_31z", "*scond<mode>"): Make alc pattern canonical.
5607
5608 2007-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5609
5610 * system.h: Activate -Wcast-qual as warning-only.
5611
5612 2007-08-29 Paolo Bonzini <bonzini@gnu.org>
5613
5614 PR target/33168
5615 * config/rs6000/rs6000.c (compare_section_name): New function.
5616 (rs6000_elf_in_small_data_p): Compare section prefixes instead
5617 of full name.
5618
5619 2007-08-29 Olivier Hainque <hainque@adacore.com>
5620
5621 * xcoffout.c: #include debug.h.
5622 * Makefile.in (xcoffout.o): Add debug.h dependency.
5623
5624 2007-08-29 Uros Bizjak <ubizjak@gmail.com>
5625
5626 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
5627 Change CONST_VECTOR_ELT to XVECEXP in elem calculation.
5628
5629 2007-08-29 Richard Guenther <rguenther@suse.de>
5630
5631 * tree-pretty-print.c (dump_generic_node): Print
5632 label DECL_UID as D.%u.
5633 * tree-dfa.c (dump_variable): Print DECL_UID as D.%u.
5634
5635 2007-08-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5636
5637 * gcc/builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
5638 * gcc/builtins.def (BUILT_IN_REALLOC): New builtin.
5639
5640 2007-08-29 Douglas Gregor <doug.gregor@gmail.com>
5641
5642 PR c++/33194
5643 * tree.c (build_type_attribute_qual_variant): Set canonical types
5644 on the final, unqualified attribute variant before building the
5645 qualified version.
5646
5647 2007-08-29 Jie Zhang <jie.zhang@analog.com>
5648
5649 * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
5650 order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
5651
5652 2007-08-29 Jie Zhang <jie.zhang@analog.com>
5653
5654 Revert
5655 2007-08-29 Jie Zhang <jie.zhang@analog.com>
5656 * config/bfin/bfin.md (composev2hi): Put operands into vector
5657 with correct order.
5658
5659 2007-08-29 Jie Zhang <jie.zhang@analog.com>
5660
5661 * config/bfin/bfin.md (composev2hi): Put operands into vector
5662 with correct order.
5663
5664 2007-08-29 Jie Zhang <jie.zhang@analog.com>
5665
5666 * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text
5667 attribute when appropriate.
5668 (bfin_handle_l1_text_attribute): New.
5669 (bfin_handle_l1_data_attribute): New.
5670 (bfin_attribute_table): Add attributes: l1_text, l1_data,
5671 l1_data_A and l1_data_B.
5672 * doc/extend.texi (node Function Attributes): Document l1_text
5673 function attribute.
5674 (Variable Attributes): Add Blackfin subsection. Document l1_data,
5675 l1_data_A and l1_data_B variable attributes.
5676
5677 2007-08-28 Jie Zhang <jie.zhang@analog.com>
5678
5679 * config/bfin/bfin.opt (minline-plt): Add.
5680 * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
5681 call to global functions.
5682 * doc/invoke.texi (Option Summary): Mention -minline-plt.
5683 (Blackfin Options): Document -minline-plt.
5684
5685 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
5686
5687 * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
5688 given a non-function.
5689 (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind.
5690
5691 2007-08-28 DJ Delorie <dj@redhat.com>
5692
5693 * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support.
5694
5695 2007-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5696
5697 * system.h (CONST_CAST): Avoid union for gcc-4.0.x.
5698
5699 2007-08-28 Richard Guenther <rguenther@suse.de>
5700
5701 * tree.h (struct tree_function_decl): Increase size of
5702 function_code bitfield.
5703
5704 2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
5705 Kazu Hirata <kazu@codesourcery.com>
5706
5707 * gcc/config/m68k/linux.h
5708 (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0.
5709 * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New.
5710 (m68k_return_in_memory): New.
5711 * gcc/config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT):
5712 New.
5713
5714 2007-08-28 Uros Bizjak <ubizjak@gmail.com>
5715
5716 PR target/32661
5717 * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]:
5718 Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as
5719 operand) when top VEC_SELECT extracts scalar element.
5720 * config/i386/sse.md (*vec_extract_v4si_mem): New pattern.
5721 (*vec_extract_v4sf_mem): Ditto.
5722
5723 2007-08-28 Jakub Jelinek <jakub@redhat.com>
5724
5725 PR middle-end/32370
5726 * passes.c (init_optimization_passes): Move pass_df_finish
5727 after pass_postreload sublist.
5728
5729 PR rtl-optimization/33148
5730 * simplify-rtx.c (simplify_unary_operation_1): Only optimize
5731 (neg (lt X 0)) if X has scalar int mode.
5732
5733 PR debug/32914
5734 * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR
5735 initializer, use build_vector_from_ctor if possible to create
5736 VECTOR_CST out of it. If vector initializer is not VECTOR_CST
5737 even after this, return NULL.
5738
5739 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
5740
5741 * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST.
5742
5743 2007-08-28 Richard Guenther <rguenther@suse.de>
5744
5745 * tree.h (DECL_DISREGARD_INLINE_LIMITS): New.
5746 (struct tree_function_decl): Make function_code a bitfield.
5747 Add disregard_inline_limits flag.
5748 * cgraphunit.c (cgraph_process_new_functions): Check
5749 DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p.
5750 (cgraph_preserve_function_body_p): Likewise.
5751 * ipa-inline.c (compute_inline_parameters): Likewise.
5752 * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS
5753 for GNU C extern inline functions.
5754 (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
5755 * tree-inline.c (disregard_inline_limits_p): Remove.
5756 * tree-inline.h (disregard_inline_limits_p): Likewise.
5757 * c-common.c (handle_always_inline_attribute): Set
5758 DECL_DISREGARD_INLINE_LIMITS.
5759 * langhooks.c (add_builtin_function): Verify the function code
5760 fits in the bitfield.
5761
5762 2007-08-28 Mircea Namolaru <namolaru@il.ibm.com>
5763 Vladimir Yanovsky <yanov@il.ibm.com>
5764 Revital Eres <eres@il.ibm.com>
5765 Andrey Belevantsev <abel@ispras.ru>
5766
5767 * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched
5768 is set.
5769 * modulo-sched.c: Add documentation regarding do-loop.
5770 (doloop_register_get): Change number of arguments to support
5771 the new do-loop pattern and check whether COUNT_REG has no other
5772 occurences in the loop besides in the control part.
5773 (duplicate_insns_of_cycles): Do not duplicate the insn which
5774 changes count_reg as it is already adjusted.
5775 (generate_prolog_epilog): New argument to support the new
5776 do-loop pattern. Change the subtract instruction to use
5777 expand_simple_binop. Call duplicate_insns_of_cycles with new
5778 argument.
5779 (sms_schedule): Call doloop_register_get and
5780 generate_prolog_epilog with new argument. Do not handle loops
5781 with single sets insns with subreg in their lhs.
5782 * loop-doloop.c (doloop_optimize): Support for another do-loop
5783 pattern.
5784 (doloop_condition_get): Gets an instruction instead of a pattern
5785 and change the return condition when the do-loop pattern is
5786 not parallel.
5787 * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg
5788 deps when considering to not create edges.
5789
5790 2007-08-27 Alexandre Oliva <aoliva@redhat.com>
5791
5792 * doc/extend.texi (gnu_inline funtion attribute): Document C++
5793 behavior.
5794
5795 2007-08-27 Jason Merrill <jason@redhat.com>
5796
5797 PR c++/31337
5798 * gimplify.c (gimplify_modify_expr): Discard the assignment of
5799 zero-sized types after calling gimplify_modify_expr_rhs.
5800
5801 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
5802
5803 * regclass.c (init_reg_autoinc): Fix typo.
5804
5805 2007-08-27 Daniel Berlin <dberlin@dberlin.org>
5806
5807 Fix PR tree-optimization/33173
5808 * tree-ssa-alias.c (find_used_portions): Fix reversed test.
5809
5810 2007-08-27 H.J. Lu <hongjiu.lu@intel.com>
5811
5812 PR target/31385
5813 * config/i386/i386.h (VALID_DFP_MODE_P): New.
5814 * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in
5815 GPR.
5816
5817 2007-08-27 Sandra Loosemore <sandra@codesourcery.com>
5818 David Ung <davidu@mips.com>
5819 Nigel Stephens <nigel@mips.com>
5820
5821 Separate target-specific initialization from general
5822 back-end initialization.
5823
5824 * toplev.c (init_alignments): New, split out from...
5825 (process_options): ...here.
5826 (backend_init_target): New, split out from...
5827 (backend_init): ...here.
5828 (lang_dependent_init_target): New, split out from...
5829 (lang_dependent_init): ...here.
5830 (target_reinit): New.
5831 * toplev.h (target_reinit): Declare.
5832 * expr.c (init_expr_target): Renamed from init_expr_once, since it
5833 now can be called more than once. Update comments.
5834 * expr.h (init_expr_target): Likewise.
5835 * alias.c (init_alias_target): Renamed from init_alias_once, since it
5836 now can be called more than once. Explicitly zero
5837 static_reg_base_value.
5838 * emit-rtl.c (init_emit_regs): New, split out from...
5839 (init_emit_once): Here.
5840 * regclass.c (initial_fixed_regs, initial_call_used_regs): Make
5841 non-const, so that changes from command-line arguments can overwrite
5842 values provided by the static initializers.
5843 (initial_call_really_used_regs): New, used similarly to the above.
5844 (initial_reg_names): Likewise.
5845 (last_mode_for_init_move_cost): Promoted function-local static to
5846 file-scope static to make it accessible outside init_move_cost.
5847 (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet.
5848 Do not initialize inv_reg_alloc_order yet, either. Do initialize
5849 reg_names since it is needed for parsing command-line options.
5850 (init_move_cost): Use last_mode_for_init_move_cost instead of
5851 function-local static.
5852 (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and
5853 call_really_used_regs now. Reinitialize reg_names. Also
5854 initialize inv_reg_alloc_order. Zero reg_class_subunion and
5855 reg_class_superunion. Clear losing_caller_save_reg_set.
5856 Preserve global registers if called more than once. Reset
5857 move cost, may_move_in_cost, may_move_out_cost, and
5858 last_mode_for_init_move_cost.
5859 (init_reg_modes_target): Renamed from init_reg_modes_once, since it
5860 can now be invoked more than once. Update comments.
5861 (init_regs): Update comments.
5862 (fix_register): Update initial_fixed_regs, initial_call_used_regs,
5863 and initial_call_really_used_regs, instead of the non-initial
5864 variables. This allows us to save the command-line register settings
5865 after target reinitialization.
5866 (init_reg_autoinc): Zero forbidden_inc_dec_classes.
5867 * rtl.h (init_emit_regs): Declare.
5868 (init_reg_modes_target, init_alias_target): Renamed as described
5869 above.
5870 * reload1.c (init_reload): Update comments.
5871 * optabs.c (init_optabs): Likewise.
5872 * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs.
5873
5874 2007-08-26 Chao-ying Fu <fu@mips.com>
5875
5876 * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of
5877 __typeof().
5878
5879 2007-08-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5880
5881 * alias.c (memory_modified_1, memory_modified_in_insn_p):
5882 Constify.
5883 * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p):
5884 Likewise.
5885 * bb-reorder.c (copy_bb_p): Likewise.
5886 * cfghooks.c (can_remove_branch_p, can_merge_blocks_p,
5887 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
5888 block_ends_with_condjump_p): Likewise.
5889 * cfghooks.h (can_remove_branch_p, can_merge_blocks_p,
5890 predicted_by_p, can_duplicate_block_p, block_ends_with_call_p,
5891 block_ends_with_condjump_p): Likewise.
5892 * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
5893 * cfgrtl.c (can_delete_note_p, can_delete_label_p,
5894 rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p,
5895 rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p,
5896 need_fake_edge_p, rtl_can_remove_branch_p): Likewise.
5897 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use
5898 debug_true_const_tree instad of debug_true_tree.
5899 * debug.c (do_nothing_debug_hooks): Likewise.
5900 * debug.h (ignore_block, debug_true_const_tree): Constify.
5901 * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save,
5902 dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type,
5903 decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc,
5904 same_dw_val_p, add_ranges, is_subrange_type, type_is_enum,
5905 dbx_reg_number, is_based_loc, field_type,
5906 simple_type_align_in_bits, simple_decl_align_in_bits,
5907 simple_type_size_in_bits, field_byte_offset, insert_float,
5908 type_tag, member_declared_type, is_redundant_typedef,
5909 secname_for_decl, is_inlined_entry_point): Likewise.
5910 * emit-rtl.c (const_next_insn, const_previous_insn,
5911 const_next_nonnote_insn, const_prev_nonnote_insn,
5912 const_next_real_insn, const_prev_real_insn,
5913 const_next_active_insn, const_prev_active_insn, const_next_label,
5914 const_prev_label): Likewise.
5915 * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region):
5916 Likewise.
5917 * haifa-sched.c (may_trap_exp, haifa_classify_insn,
5918 find_set_reg_weight, no_real_insns_p, find_set_reg_weight,
5919 sched_insn_is_legitimate_for_speculation_p): Likewise.
5920 * jump.c (reversed_comparison_code_parts,
5921 reversed_comparison_code, reversed_comparison, condjump_label):
5922 Likewise.
5923 * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise.
5924 * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned):
5925 Likewise.
5926 * rtl.h (const_previous_insn, const_next_insn,
5927 const_prev_nonnote_insn, const_next_nonnote_insn,
5928 const_prev_real_insn, const_next_real_insn,
5929 const_prev_active_insn, const_next_active_insn, const_prev_label,
5930 const_next_label, modified_between_p, modified_in_p,
5931 const_note_storeskeep_with_call_p, condjump_label,
5932 reversed_comparison, reversed_comparison_code,
5933 reversed_comparison_code_parts, memory_modified_in_insn_p,
5934 stack_regs_mentioned): Likewise.
5935 * rtlanal.c (modified_between_p, modified_in_p, const_note_stores,
5936 keep_with_call_p): Likewise.
5937 * sched-deps.c (deps_may_trap_p, sched_get_condition,
5938 conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list,
5939 sd_lists_size, sd_lists_empty_p): Likewise.
5940 * sched-int.h (sched_insns_conditions_mutex_p,
5941 haifa_classify_insn, no_real_insns_p,
5942 sched_insn_is_legitimate_for_speculation_p, sd_next_list,
5943 sd_lists_size, sd_lists_empty_p): Likewise.
5944 * sdbout.c (sdb_debug_hooks): Likewise.
5945 * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt,
5946 stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p,
5947 -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p):
5948 Likewise.
5949 * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region,
5950 tree_can_throw_internal): Likewise.
5951 * tree-flow-inline.h (phi_nodes): Likewise.
5952 * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt,
5953 tree_can_throw_internal, lookup_stmt_eh_region): Likewise.
5954 * tree-gimple.c (const_get_call_expr_in): Likewise.
5955 * tree-gimple.h (const_get_call_expr_in): Likewise.
5956 * tree.c (const_lookup_attribute, attribute_list_equal,
5957 attribute_list_contained): Likewise.
5958 * tree.h (attribute_list_equal, attribute_list_contained,
5959 const_lookup_attribute): Likewise.
5960 * vmsdbgout.c (vmsdbgout_ignore_block): Likewise.
5961
5962 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
5963
5964 * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c,
5965 tree-ssa-pre.c: Remove unnecessary trailing whitespace.
5966
5967 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
5968
5969 PR target/32991
5970 * config/alpha/constraints.md: Delete "svn:mime-type" property
5971 with svn propdel "svn:mime-type".
5972
5973 2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
5974
5975 PR middle-end/33181
5976 * ifcvt.c (noce_get_alt_condition): Make sure that the previous
5977 non NOTE insn doesn't cross basic block.
5978 (noce_try_abs): Likewise.
5979 (noce_process_if_block): Likewise.
5980
5981 2007-08-26 David Edelsohn <edelsohn@gnu.org>
5982
5983 PR target/33151
5984 * config/rs6000/predicates.md (offsettable_mem_operand): Memory
5985 operand without auto-inc-dec.
5986 * config/rs6000/rs6000.md (floatsidf2_internal): Use
5987 offsettable_mem_operand.
5988 (floatunssidf2_internal): Same.
5989 (fix_truncdfsi2_internal): Same.
5990 (floatsidf_ppc64): Same.
5991 (floatunssidf_ppc64): Same.
5992 (fix_trunctfsi2_internal): Same.
5993
5994 2007-08-26 Bernhard Fischer <aldot@gcc.gnu.org>
5995
5996 PR bootstrap/30620
5997 * Makefile.in (libbackend.o): Add gcov-iov.h dependency and
5998 pass defines needed for version.c.
5999
6000 2007-08-25 Joseph Myers <joseph@codesourcery.com>
6001
6002 * configure.ac (--debug-prefix-map check): Change assembler
6003 version presumed to have feature to 2.18.
6004 * configure: Regenerate.
6005
6006 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6007
6008 * c-common.c (vector_types_convertible_p,
6009 decl_with_nonnull_addr_p, c_promoting_integer_type_p,
6010 self_promoting_args_p): Constify.
6011 * c-common.h (has_c_linkage, decl_with_nonnull_addr_p,
6012 c_promoting_integer_type_p, self_promoting_args_p,
6013 anon_aggr_type_p, vector_types_convertible_p): Likewise.
6014 * c-decl.c (anon_aggr_type_p): Likewise.
6015 * * c-dump.c (dump_stmt): Likewise.
6016 * c-objc-common.c (has_c_linkage): Likewise.
6017 * c-tree.h (same_translation_unit_p): Likewise.
6018 * c-typeck.c (null_pointer_constant_p,
6019 tagged_types_tu_compatible_p, function_types_compatible_p,
6020 type_lists_compatible_p, lvalue_or_else, lvalue_p,
6021 comptypes_internal, struct tagged_tu_seen_cache,
6022 same_translation_unit_p, alloc_tagged_tu_seen_cache,
6023 c_size_in_bytes): Likewise.
6024 * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor,
6025 hash_ptr, eq_ptr): Likewise.
6026 * langhooks-def.h (lhd_decl_ok_for_sibcall,
6027 LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise.
6028 * langhooks.c (lhd_decl_ok_for_sibcall): Likewise.
6029 * langhooks.h (ok_for_sibcall, omp_privatize_by_reference):
6030 Likewise.
6031 * optabs.c (optab_for_tree_code): Likewise.
6032 * optabs.h (optab_for_tree_code): Likewise.
6033 * rtl.h (simplify_rtx): Likewise.
6034 * simplify-rtx.c (simplify_rtx): Likewise.
6035 * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type,
6036 dump_flag, dump_node): Likewise.
6037 * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index,
6038 queue_and_dump_type, dump_flag): Likewise.
6039 * tree-flow.h (vect_can_force_dr_alignment_p): Likewise.
6040 * tree-pass.h (dump_node): Likewise.
6041 * tree-vectorizer.c (vect_can_force_dr_alignment_p,
6042 supportable_narrowing_operation): Likewise.
6043 * tree-vectorizer.h (vect_can_force_dr_alignment_p,
6044 supportable_narrowing_operation): Likewise.
6045 * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity,
6046 is_negative_overflow_infinity, is_positive_overflow_infinity,
6047 is_overflow_infinity, vrp_val_is_max, vrp_val_is_min,
6048 nonnull_arg_p, get_value_range, vrp_operand_equal_p,
6049 update_value_range, add_equivalence, ssa_name_nonnegative_p,
6050 ssa_name_nonzero_p, fp_predicate): Likewise.
6051 * tree.c (auto_var_in_fn_p, empty_body_p): Likewise.
6052 * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p,
6053 ssa_name_nonnegative_p): Likewise.
6054
6055 2007-08-25 Hans Kester <hans.kester@ellips.nl>
6056
6057 * config.gcc : Add x86_64-elf target.
6058
6059 2007-08-25 Jakub Jelinek <jakub@redhat.com>
6060
6061 * expr.c (store_expr): Fix order of store_by_pieces arguments.
6062
6063 2007-08-24 Sandra Loosemore <sandra@codesourcery.com>
6064 Nigel Stephens <nigel@mips.com>
6065
6066 PR target/11787
6067
6068 * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros.
6069 (STORE_BY_PIECES_P): No longer applies to __builtin_memset.
6070 * expr.c (SET_BY_PIECES_P): Define.
6071 (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use
6072 it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P.
6073 (store_expr): Pass MEMSETP argument to can_store_by_pieces and
6074 store_by_pieces.
6075 * expr.h (SET_RATIO): Define.
6076 (can_store_by_pieces, store_by_pieces): Update prototypes.
6077 * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to
6078 can_store_by_pieces/store_by_pieces.
6079 (expand_builtin_memcpy_args): Likewise.
6080 (expand_builtin_strncpy): Likewise.
6081 (expand_builtin_memset_args): Likewise. Also remove special case
6082 for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can
6083 decide what to do instead.
6084 * value-prof.c (tree_stringops_transform): Pass MEMSETP argument
6085 to can_store_by_pieces.
6086
6087 * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P.
6088 * config/s390/s390.h (SET_BY_PIECES_P): Likewise.
6089
6090 * config/mips/mips.opt (mmemcpy): Change from Var to Mask.
6091 * config/mips/mips.c (override_options): Make -Os default to -mmemcpy.
6092 * config/mips/mips.h (MIPS_CALL_RATIO): Define.
6093 (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define.
6094 (STORE_BY_PIECES_P): Define.
6095
6096 2007-08-24 Tom Tromey <tromey@redhat.com>
6097
6098 * varpool.c (varpool_last_needed_node): Fix comment typo.
6099 * c-decl.c (duplicate_decls): Fix comment typo.
6100 (clone_underlying_type): Update comment.
6101
6102 2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6103
6104 * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
6105 alpha_in_small_data_p, alpha_split_complex_arg,
6106 alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
6107 Constify.
6108 * config/arm/arm-protos.h (arm_mangle_type): Likewise.
6109 * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
6110 Likewise.
6111 * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
6112 TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
6113 * config/darwin-protos.h (darwin_binds_local_p): Likewise.
6114 * config/darwin.c (darwin_binds_local_p): Likewise.
6115 * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
6116 Likewise.
6117 * config/i386/i386-protos.h (i386_pe_binds_local_p,
6118 i386_pe_valid_dllimport_attribute_p): Likewise.
6119 * config/i386/i386.c (ix86_function_regparm,
6120 ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
6121 x86_can_output_mi_thunk, ix86_mangle_type,
6122 TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
6123 * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
6124 i386_pe_binds_local_p): Likewise.
6125 * config/ia64/ia64.c
6126 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
6127 ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
6128 ia64_invalid_conversion, ia64_invalid_unary_op,
6129 ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
6130 Likewise.
6131 * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
6132 * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
6133 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
6134 * config/mips/mips.c (mips_use_blocks_for_constant_p,
6135 mips_in_small_data_p, mips_use_anchors_for_symbol_p,
6136 mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
6137 mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
6138 mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
6139 * config/pa/pa.c (pa_commutative_p): Likewise.
6140 * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
6141 Likewise.
6142 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
6143 rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
6144 rs6000_use_blocks_for_constant_p,
6145 rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
6146 invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
6147 TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
6148 * config/s390/s390.c (s390_mangle_type,
6149 TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
6150 Likewise.
6151 * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
6152 th_in_small_data_p): Likewise.
6153 * config/sh/sh.c (sh_ms_bitfield_layout_p,
6154 sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
6155 Likewise.
6156 * config/sparc/sparc.c (sparc_can_output_mi_thunk,
6157 sparc_mangle_type): Likewise.
6158 * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
6159 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
6160 * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
6161 Likewise.
6162 * hooks.c (hook_bool_mode_const_rtx_false,
6163 hook_bool_mode_const_rtx_true,
6164 hook_bool_const_tree_hwi_hwi_const_tree_false,
6165 hook_bool_const_tree_hwi_hwi_const_tree_true,
6166 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
6167 hook_constcharptr_const_tree_null,
6168 hook_constcharptr_const_rtx_null,
6169 hook_constcharptr_const_tree_const_tree_null,
6170 hook_constcharptr_int_const_tree_null,
6171 hook_constcharptr_int_const_tree_const_tree_null): New.
6172 (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
6173 hook_bool_tree_hwi_hwi_tree_false,
6174 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
6175 hook_int_tree_tree_1, hook_constcharptr_tree_null,
6176 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
6177 hook_constcharptr_int_tree_null,
6178 hook_constcharptr_int_tree_tree_null): Delete.
6179 (default_can_output_mi_thunk_no_vcall): Constify.
6180 * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
6181 hook_bool_tree_hwi_hwi_tree_false,
6182 hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
6183 hook_int_tree_tree_1, hook_constcharptr_tree_null,
6184 hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
6185 hook_constcharptr_int_tree_null,
6186 hook_constcharptr_int_tree_tree_null): Delete.
6187 (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
6188 hook_bool_const_tree_hwi_hwi_const_tree_false,
6189 hook_bool_const_tree_hwi_hwi_const_tree_true,
6190 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
6191 hook_constcharptr_const_tree_null,
6192 hook_constcharptr_const_rtx_null,
6193 hook_constcharptr_const_tree_const_tree_null,
6194 hook_constcharptr_int_const_tree_null,
6195 hook_constcharptr_int_const_tree_const_tree_null): New.
6196 (default_can_output_mi_thunk_no_vcall): Constify.
6197 * integrate.c (function_attribute_inlinable_p): Likewise.
6198 * integrate.h (function_attribute_inlinable_p): Likewise.
6199 * jump.c (rtx_renumbered_equal_p): Likewise.
6200 * output.h (decl_readonly_section, categorize_decl_for_section,
6201 default_use_anchors_for_symbol_p, default_binds_local_p,
6202 default_binds_local_p_1): Likewise.
6203 * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
6204 Likewise.
6205 * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
6206 TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
6207 TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
6208 TARGET_COMP_TYPE_ATTRIBUTES,
6209 TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
6210 TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
6211 TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
6212 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
6213 TARGET_DWARF_CALLING_CONVENTION): Likewise.
6214 * target.h (can_output_mi_thunk, needs_block_p,
6215 first_cycle_multipass_dfa_lookahead_guard_spec,
6216 vector_alignment_reachable, comp_type_attributes,
6217 function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
6218 commutative_p, use_blocks_for_constant_p,
6219 use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
6220 vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
6221 invalid_within_doloop, valid_dllimport_attribute_p,
6222 split_complex_arg, invalid_arg_for_unprototyped_fn,
6223 invalid_conversion, invalid_unary_op, invalid_binary_op):
6224 Likewise.
6225 * targhooks.c (default_invalid_within_doloop,
6226 hook_invalid_arg_for_unprototyped_fn,
6227 default_builtin_vector_alignment_reachable): Likewise.
6228 (hook_bool_rtx_commutative_p): Delete.
6229 (hook_bool_const_rtx_commutative_p): New.
6230 * targhooks.h (default_invalid_within_doloop,
6231 default_builtin_vector_alignment_reachable,
6232 hook_invalid_arg_for_unprototyped_fn): Constify.
6233 (hook_bool_rtx_commutative_p): Delete.
6234 (hook_bool_const_rtx_commutative_p): New.
6235 * varasm.c (bss_initializer_p, decl_default_tls_model,
6236 categorize_decl_for_section, decl_readonly_section,
6237 default_use_anchors_for_symbol_p, default_binds_local_p,
6238 default_binds_local_p_1): Constify.
6239
6240 2007-08-24 Jie Zhang <jie.zhang@analog.com>
6241
6242 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
6243 __NO_BUILTIN if -fno-builtin.
6244
6245 2007-08-24 Jie Zhang <jie.zhang@analog.com>
6246
6247 * config/bfin/bfin.c (print_operand): Report error instead of
6248 ICE for wrong operand.
6249
6250 2007-08-24 Michael Matz <matz@suse.de>
6251
6252 * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst).
6253
6254 2007-08-24 Richard Guenther <rguenther@suse.de>
6255
6256 PR middle-end/33166
6257 * tree-ssa.c (useless_type_conversion_p): Split into a
6258 recursive and a non-recursive part.
6259 (useless_type_conversion_p_1): New function.
6260 * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result
6261 from maybe_fold_offset_to_reference is trivially convertible
6262 to the desired type before doing the simplification.
6263
6264 2007-08-24 Jakub Jelinek <jakub@redhat.com>
6265
6266 * expr.c (store_expr): Optimize initialization of an array
6267 with STRING_CST.
6268 * expr.h (builtin_strncpy_read_str): New prototype.
6269 * builtins.c (builtin_strncpy_read_str): Remove prototype.
6270 No longer static.
6271
6272 2007-08-24 Uros Bizjak <ubizjak@gmail.com>
6273
6274 PR middle-end/33157
6275 * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest
6276 field when initializing if_info structure.
6277
6278 2007-08-24 Richard Guenther <rguenther@suse.de>
6279
6280 * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H)
6281 dependencies.
6282 * c-objc-common.c (c_cannot_inline_tree_fn): Remove.
6283 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise.
6284 * tree-inline.c (inlinable_function_p): Fold in common parts of
6285 the cannot_inline_tree_fn langhook.
6286 * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove.
6287 (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise.
6288 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
6289 cannot_inline_tree_fn langhook.
6290 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
6291 cannot_inline_tree_fn member.
6292
6293 2007-08-24 Richard Guenther <rguenther@suse.de>
6294
6295 * expr.c (get_inner_reference): Do computation of bitoffset
6296 from offset in a way we can detect overflow reliably.
6297
6298 2007-08-24 Jie Zhang <jie.zhang@analog.com>
6299
6300 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc.
6301
6302 2007-08-24 Jie Zhang <jie.zhang@analog.com>
6303
6304 * config/bfin/bfin.opt (mfast-fp): Add.
6305 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let
6306 libbffastfp override libgcc if -mfast-fp.
6307 * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
6308 * doc/invoke.texi (Option Summary): Mention -mfast-fp.
6309 (Blackfin Options): Document -mfast-fp.
6310
6311 2007-08-24 Jakub Jelinek <jakub@redhat.com>
6312
6313 PR tree-optimization/32573
6314 PR middle-end/32946
6315 * tree-data-ref.c (initialize_data_dependence_relation): Clear
6316 DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning.
6317 (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it.
6318 (build_classic_dist_vector): Return false rather than true if
6319 DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false
6320 if either subscript_dependence_tester_1 or build_classic_dist_vector_1
6321 returned false. Don't call save_dist_v before calling
6322 build_classic_dist_vector_1.
6323 (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS
6324 with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or
6325 DDR_DIR_VECTS vectors.
6326
6327 2007-08-23 Brian Sidebotham <brian.sidebotham@gmail.com>
6328
6329 * configure.ac (leb128): Modify sed statement to work with any
6330 binutils version string.
6331 * configure: Regenerate
6332
6333 2007-08-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6334
6335 * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg):
6336 Wrap in RTX_CODE macro guard.
6337 * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p,
6338 arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport,
6339 arm_mark_dllimport, arm_pe_encode_section_info,
6340 arm_pe_unique_section): Use ISO-C function declarations.
6341 * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION,
6342 c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE,
6343 c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored):
6344 Likewise.
6345 * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning.
6346 * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before
6347 defining.
6348 * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format
6349 warnings.
6350 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise.
6351 * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise.
6352 (register_move_cost): Use ISO-C function declarations.
6353 * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings.
6354 * config/score/score-protos.h (score_declare_object): Add
6355 ATTRIBUTE_PRINTF_4.
6356 * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format
6357 warnings.
6358 * final.c (profile_function): Avoid empty if-bodies.
6359
6360
6361 * calls.c (must_pass_in_stack_var_size,
6362 must_pass_in_stack_var_size_or_pad): Constify.
6363 * config/alpha/alpha-protos.h (function_value): Likewise.
6364 * config/alpha/alpha.c (alpha_return_in_memory,
6365 alpha_pass_by_reference, function_value,
6366 unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS,
6367 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
6368 Likewise.
6369 * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference,
6370 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
6371 TARGET_PROMOTE_PROTOTYPES): Likewise.
6372 * config/arm/arm-protos.h (arm_return_in_memory,
6373 arm_pad_arg_upward, arm_function_value): Likewise.
6374 * config/arm/arm.c (arm_pass_by_reference,
6375 arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack,
6376 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
6377 arm_function_value, arm_return_in_memory, arm_pad_arg_upward):
6378 Likewise.
6379 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
6380 * config/avr/avr-protos.h (avr_function_value): Likewise.
6381 * config/avr/avr.c (avr_return_in_memory,
6382 gas_output_limited_string, gas_output_ascii, avr_function_value,
6383 avr_return_in_memory): Likewise.
6384 * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise.
6385 * config/bfin/bfin.c (bfin_pass_by_reference,
6386 bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES,
6387 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN):
6388 Likewise.
6389 * config/cris/cris.c (cris_pass_by_reference,
6390 TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
6391 * config/crx/crx.c (crx_return_in_memory): Likewise.
6392 * config/darwin.c (function_base, machopic_function_base_name):
6393 Likewise.
6394 * config/fr30/fr30.c (fr30_must_pass_in_stack,
6395 TARGET_PROMOTE_PROTOTYPES): Likewise.
6396 * config/frv/frv.c (frv_must_pass_in_stack): Likewise.
6397 * config/h8300/h8300.c (h8300_return_in_memory): Likewise.
6398 * config/i386/i386-protos.h (ix86_return_in_memory,
6399 ix86_sol10_return_in_memory): Likewise.
6400 * config/i386/i386.c (ix86_function_value,
6401 ix86_function_sseregparm, ix86_must_pass_in_stack,
6402 type_natural_mode, classify_argument, examine_argument,
6403 construct_container, ix86_pass_by_reference, function_value_32,
6404 function_value_64, ix86_function_value_1, return_in_memory_32,
6405 return_in_memory_64, return_in_memory_ms_64,
6406 ix86_return_in_memory, ix86_sol10_return_in_memory,
6407 TARGET_PROMOTE_PROTOTYPES): Likewise.
6408 * config/ia64/ia64-protos.h (ia64_function_value,
6409 ia64_hpux_function_arg_padding): Likewise.
6410 * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory,
6411 ia64_function_value, bundle_state_hash, bundle_state_eq_p,
6412 ia64_hpux_function_arg_padding): Likewise.
6413 * config/iq2000/iq2000-protos.h (function_arg,
6414 iq2000_function_value): Likewise.
6415 * config/iq2000/iq2000.c (iq2000_return_in_memory,
6416 iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS,
6417 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
6418 function_arg, iq2000_function_value): Likewise.
6419 * config/m32c/m32c-protos.h (m32c_function_value,
6420 m32c_promote_function_return): Likewise.
6421 * config/m32c/m32c.c (m32c_pass_by_reference,
6422 m32c_promote_prototypes, m32c_promote_function_return,
6423 m32c_function_value): Likewise.
6424 * config/m32r/m32r.c (m32r_return_in_memory,
6425 m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
6426 m32r_in_small_data_p): Likewise.
6427 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding):
6428 Likewise.
6429 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory,
6430 m68hc11_function_arg_padding): Likewise.
6431 * config/m68k/m68k-protos.h (m68k_function_value): Likewise.
6432 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES,
6433 m68k_function_value): Likewise.
6434 * config/mcore/mcore-protos.h (mcore_num_arg_regs,
6435 mcore_function_value): Likewise.
6436 * config/mcore/mcore.c (handle_structs_in_regs,
6437 mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
6438 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
6439 mcore_num_arg_regs, mcore_function_value): Likewise.
6440 * config/mips/mips-protos.h (mips_pad_arg_upward,
6441 mips_function_value): Likewise.
6442 * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb,
6443 mips_return_in_memory, mips_pass_by_reference, mips_callee_copies,
6444 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
6445 TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward,
6446 mips_function_value): Likewise.
6447 * config/mmix/mmix-protos.h (mmix_function_outgoing_value):
6448 Likewise.
6449 * config/mmix/mmix.c (mmix_pass_by_reference,
6450 TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value,
6451 mmix_encode_section_info): Likewise.
6452 * config/mn10300/mn10300-protos.h (mn10300_function_value):
6453 Likewise.
6454 * config/mn10300/mn10300.c (mn10300_return_in_memory,
6455 mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES,
6456 mn10300_function_value): Likewise.
6457 * config/mt/mt-protos.h (mt_function_value): Likewise.
6458 * config/mt/mt.c (mt_pass_by_reference, mt_function_value,
6459 mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise.
6460 * config/pa/pa-protos.h (function_arg_padding, function_value,
6461 pa_return_in_memory): Likewise.
6462 * config/pa/pa.c (pa_pass_by_reference,
6463 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
6464 function_arg_padding, function_value, pa_return_in_memory):
6465 Likewise.
6466 * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise.
6467 * config/rs6000/rs6000-protos.h (rs6000_function_value,
6468 function_arg_padding): Likewise.
6469 * config/rs6000/rs6000.c (rs6000_return_in_memory,
6470 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
6471 rs6000_pass_by_reference, rs6000_must_pass_in_stack,
6472 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
6473 function_arg_padding, altivec_expand_dst_builtin,
6474 altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins,
6475 altivec_init_builtins, rs6000_common_init_builtins,
6476 rs6000_function_value): Likewise.
6477 * s390/s390-protos.h (s390_function_value): Likewise.
6478 * config/s390/s390.c (s390_function_arg_size,
6479 s390_pass_by_reference, s390_return_in_memory,
6480 s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
6481 TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
6482 * config/score/score-protos.h (score_function_value): Likewise.
6483 * config/score/score.c (score_arg_partial_bytes,
6484 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
6485 TARGET_PROMOTE_PROTOTYPES, score_return_in_memory,
6486 score_pass_by_reference, score_add_offset, score_function_value):
6487 Likewise.
6488 * config/sh/sh-protos.h (sh_attr_renesas_p,
6489 sh_promote_prototypes): Likewise.
6490 * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference,
6491 sh_callee_copies, sh_promote_prototypes, shcompact_byref,
6492 sh_attr_renesas_p): Likewise.
6493 * config/sparc/sparc-protos.h (function_value,
6494 function_arg_padding): Likewise.
6495 * config/sparc/sparc.c (sparc_promote_prototypes,
6496 sparc_return_in_memory, sparc_pass_by_reference,
6497 TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
6498 function_arg_record_value_2, function_arg_record_value_1,
6499 function_arg_record_value, function_arg_record_value,
6500 function_arg_padding, function_value): Likewise.
6501 * config/spu/spu-protos.h (spu_function_value): Likewise.
6502 * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory,
6503 spu_function_value): Likewise.
6504 * config/stormy16/stormy16-protos.h (xstormy16_function_value):
6505 Likewise.
6506 * config/stormy16/stormy16.c (xstormy16_return_in_memory,
6507 xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS,
6508 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
6509 Likewise.
6510 * config/v850/v850.c (v850_return_in_memory,
6511 v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise.
6512 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise.
6513 * config/xtensa/xtensa.c (xtensa_return_in_msb,
6514 xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS,
6515 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES):
6516 Likewise.
6517 * explow.c (promote_mode, hard_function_value): Likewise.
6518 * expr.h (hard_function_value, promote_mode): Likewise.
6519 * function.c (aggregate_value_p): Likewise.
6520 * hooks.c (hook_bool_const_tree_true): New.
6521 * hooks.h (hook_bool_const_tree_true): New.
6522 * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify.
6523 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
6524 TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
6525 TARGET_RETURN_IN_MSB): Likewise.
6526 * target.h (promote_function_args, promote_function_return,
6527 promote_prototypes, return_in_memory, return_in_msb,
6528 pass_by_reference, must_pass_in_stack, callee_copies,
6529 function_value): Likewise.
6530 * targhooks.c (default_return_in_memory,
6531 hook_pass_by_reference_must_pass_in_stack,
6532 hook_callee_copies_named,
6533 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
6534 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
6535 default_function_value): Likewise.
6536 * targhooks.h (default_return_in_memory,
6537 hook_pass_by_reference_must_pass_in_stack,
6538 hook_callee_copies_named,
6539 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false,
6540 hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true,
6541 default_function_value): Likewise.
6542 * tree-ssa-structalias.c (const_equiv_class_label_t): New.
6543 (equiv_class_label_hash, equiv_class_label_eq): Constify.
6544 * tree-vectorizer.c (bb_in_loop_p): Likewise.
6545 * tree.c (needs_to_live_in_memory): Likewise.
6546 * tree.h (struct tree_type, needs_to_live_in_memory,
6547 aggregate_value_p, must_pass_in_stack_var_size,
6548 must_pass_in_stack_var_size_or_pad): Likewise.
6549 * vmsdbgout.c (write_debug_addr, write_debug_delta4,
6550 write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg,
6551 lookup_filename): Likewise.
6552
6553 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
6554
6555 PR target/17390
6556 * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to
6557 fake fcomi i387 instruction for !TARGET_CMOVE.
6558 (ix86_expand_branch): Expand natural sequence with one jump for
6559 all targets, not only TARGET_CMOVE.
6560 * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split
6561 pattern to implement fake fcomi sequence. Split instruction after
6562 reload to correct compare sequences.
6563 (*cmpfp_xf_cc): Ditto.
6564 (*cmpfp_<mode>_cc): Ditto.
6565 (*cmpfp_u_cc): Ditto.
6566 (*cmpfp_<mode>_cc): Ditto.
6567
6568 2007-08-23 Richard Guenther <rguenther@suse.de>
6569
6570 * tree-pretty-print.c (dump_generic_node): Annotate
6571 GIMPLE_MODIFY_STMTs with volatile ops with "{v}".
6572
6573 2007-08-23 Richard Guenther <rguenther@suse.de>
6574
6575 * builtins.c (expand_builtin_mathfn): Wrap argument in
6576 save_expr directly instead of re-building the call.
6577 (expand_builtin_mathfn_2): Likewise.
6578 (expand_builtin_mathfn_3): Likewise.
6579 (expand_builtin_interclass_mathfn): Likewise.
6580 (expand_builtin_int_roundingfn): Set arg.
6581 (expand_builtin_int_roundingfn_2): Likewise.
6582
6583 2007-08-23 Paolo Bonzini <bonzini@gnu.org>
6584
6585 * config/i386/sse.md (*sse_and<mode>3, *sse_ior<mode>3,
6586 *sse_nand<mode>3, *sse_xor<mode>3): New.
6587
6588 2007-08-23 Uros Bizjak <ubizjak@gmail.com>
6589
6590 * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code.
6591 * config/i386/i386.c (print_operand): Handle ';' code. Output
6592 semicolon for TARGET_MACHO.
6593 * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to
6594 emit semicolon after 'lock' prefix.
6595 (sync_double_compare_and_swap<mode>): Ditto.
6596 (*sync_double_compare_and_swapdi_pic): Ditto.
6597 (*sync_compare_and_swap_cc<mode>): Ditto.
6598 (sync_double_compare_and_swap_cc<mode>): Ditto.
6599 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
6600 (sync_old_add<mode>): Ditto.
6601 (sync_add<mode>): Ditto.
6602 (sync_sub<mode>): Ditto.
6603 (sync_ior<mode>): Ditto.
6604 (sync_and<mode>): Ditto.
6605 (sync_xor<mode>): Ditto.
6606
6607 2007-08-22 Chao-ying Fu <fu@mips.com>
6608
6609 * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes
6610 in DEF_RTL_EXPR.
6611 (copy_rtx): Handle CONST_FIXED.
6612 (rtx_equal_p): Likewise.
6613 * rtl.h (fixed_value.h): New include.
6614 (rtx_def): Add a new field of fixed_value to u.
6615 (XCNMPFV): Define for accessing fixed_value.
6616 (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW):
6617 Define.
6618 * rtl.def (CONST_FIXED): New constant.
6619 (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT,
6620 UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG,
6621 US_ASHIFT): New codes.
6622 * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult,
6623 us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract,
6624 unsigned_fract_convert, unsigned_sat_fract): Document them.
6625 * varasm.c (assemble_integer): Extend to support fixed-point constants
6626 by using different machine classes.
6627 (decode_addr_const): Handle FIXED_CST.
6628 (const_hash_1): Likewise.
6629 (compare_constant): Likewise.
6630 (copy_constant): Likewise.
6631 (const_rtx_hash_1): Handle CONST_FIXED.
6632 (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
6633 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
6634 MODE_VECTOR_UACCUM.
6635 (initializer_constant_valid_p): Handle FIXED_CST.
6636 (output_constant): Support FIXED_POINT_TYPE.
6637 * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude.
6638 * cse.c (hash_rtx): Support CONST_FIXED.
6639 (exp_equiv_p): Likewise.
6640 (cannon_reg): Likewise.
6641 (fold_rtx): Likewise.
6642 (equiv_constant): Likewise.
6643 (cse_process_notes_1): Likewise.
6644 (count_reg_usage): Likewise.
6645 * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED.
6646 (rtx_equal_for_cselib_p): Handle CONST_FIXED.
6647 (wrap_constant): Check CONST_FIXED.
6648 (cselib_hash_rtx): Support CONST_FIXED.
6649 (cselib_subst_to_values): Likewise.
6650 * df-scan.c (df_uses_record): Likewise.
6651 * gcse.c (want_to_gcse_p): Likewise.
6652 (oprs_unchanged_p): Likewise.
6653 (oprs_not_set_p): Likewise.
6654 (compute_transp): Likewise.
6655 (extract_mentioned_regs_helper): Likewise.
6656 * genemit.c (gen_exp): Likewise.
6657 * local-alloc.c (equiv_init_varies_p): Likewise.
6658 (contains_replace_regs): Likewise.
6659 (memref_referenced_p): Likewise.
6660 * loop-invariant.c (check_maybe_invariant): Likewise.
6661 (hash_invariant_expr_1): Likewise.
6662 (invariant_expr_equal_p): Likewise.
6663 * postreload-gcse.c (oprs_unchanged_p): Likewise.
6664 * regclass.c (reg_scan_mark_refs): Likewise.
6665 * regrename.c (scan_rtx): Likewise.
6666 * resource.c (mark_referenced_resources): Likewise.
6667 (mark_set_resources): Likewise.
6668 * rtlanal.c (rtx_unstable_p): Likewise.
6669 (rtx_varies_p): Likewise.
6670 (count_occurrences): Likewise.
6671 (reg_mentioned_p): Likewise.
6672 (modified_between_p): Likewise.
6673 (modified_in_p): Likewise.
6674 (volatile_insn_p): Likewise.
6675 (volatile_refs_p): Likewise.
6676 (side_effects_p): Likewise.
6677 (may_trap_p_1): Likewise.
6678 (inequality_comparisons_p): Likewise.
6679 (computed_jump_p_1): Likewise.
6680 (commutative_operand_precedence): Likewise.
6681 * sched-deps.c (sched_analyze_2): Likewise.
6682 * sched-vis.c (print_value): Likewise.
6683 * reload.c (operands_match_p): Likewise.
6684 (subst_reg_equivs): Likewise.
6685 * reload1.c (eliminate_regs_1): Likewise.
6686 (elimination_effects): Likewise.
6687 (scan_paradoxical_subregs): Likewise.
6688 * alias.c (rtx_equal_for_memref_p): Likewise.
6689 * Makefile.in (RTL_BASE_H): Add fixed-value.h.
6690 * emit-rtl.c (const_fixed_htab): New hash table.
6691 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed):
6692 Declare.
6693 (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed,
6694 const_fixed_from_fixed_value): New functions.
6695 (verify_rtx_sharing): Handle CONST_FIXED.
6696 (copy_rtx_if_shared_1): Likewise.
6697 (reset_used_flags): Likewise.
6698 (set_used_flags): Likewise.
6699 (copy_insn_1): Likewise.
6700 (init_emit_once): Create const_fixed_htab.
6701 Store fixed-point scalar and vector zero and one to const_tiny_rtx.
6702
6703 2007-08-22 Zdenek Dvorak <ook@ucw.cz>
6704
6705 PR tree-optimization/32949
6706 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p
6707 before failing for ivs with non-constant step.
6708
6709 2007-08-22 Hans-Peter Nilsson <hp@axis.com>
6710
6711 * doc/md.texi (Iterators): Renamed from Macros. All contents
6712 changed to reflect rename of respectively define_code_macro and
6713 define_mode_macro to define_code_iterator and define_mode_iterator.
6714 (Mode Iterators, Code Iterators): Similar.
6715 * read-rtl.c (struct iterator_group, struct iterator_traverse_data)
6716 (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p)
6717 (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse)
6718 (initialize_iterators, find_iterator, check_code_iterator)
6719 (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping)
6720 (read_mapping, read_rtx_1): Similar.
6721 * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md,
6722 config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md,
6723 config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md,
6724 config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md,
6725 config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md,
6726 config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md,
6727 config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md,
6728 config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md,
6729 config/rs6000/sync.md, config/rs6000/rs6000.md,
6730 config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md,
6731 config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md,
6732 config/vax/vax.md, config/bfin/bfin.md: Similar.
6733
6734 2007-08-22 David Daney <ddaney@avtrex.com>
6735
6736 * doc/install.texi (Testing): Mention testing on a simulator.
6737
6738 2007-08-22 Janis Johnson <janis187@us.ibm.com>
6739
6740 * config/dfp-bit.c (DFP_TO_DFP): Check for overflow.
6741
6742 * doc/libgcc.texi (Decimal float library routines): Fix formatting
6743 and rearrange floating point conversion functions into different
6744 categories.
6745
6746 2007-08-22 Maxim Kuvyrkov <maxim@codesourcery.com>
6747
6748 * target.h (struct gcc_target.sched: dfa_pre_advance_cycle,
6749 dfa_post_advance_cycle): New scheduler hooks.
6750 * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
6751 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize
6752 new hooks.
6753 (TARGET_SCHED): Use them.
6754 * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE,
6755 TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks.
6756 * haifa-sched.c (advance_one_cycle): Invoke new hooks.
6757
6758 * genautomata.c (insn_has_dfa_reservation_p): New DFA interface
6759 function to facilitate debugging.
6760 (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro.
6761 (output_insn_has_dfa_reservation_p): New static function to output
6762 insn_has_dfa_reservation_p ().
6763 (write_automata): Use it.
6764 * genattr.c (main): Output declaration for
6765 insn_has_dfa_reservation_p ().
6766
6767 2007-08-22 Christian Bruel <christian.bruel@st.com>
6768 Richard Guenther <rguenther@suse.de>
6769
6770 * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only.
6771 * simplify_rtx (simplify_binary_operation_1): Likewise.
6772
6773 2007-08-22 Rask Ingemann Lambertsen <rask@sygehus.dk>
6774
6775 PR rtl-optimization/32557
6776 * df-problems.c (df_note_bb_compute): Use mws->start_regno instead
6777 of REGNO (mws->mw_reg).
6778
6779 2007-08-22 Richard Guenther <rguenther@suse.de>
6780
6781 PR middle-end/33007
6782 * builtins.c (expand_builtin_int_roundingfn): Replace call
6783 argument wrapped with SAVE_EXPR directly.
6784 (expand_builtin_int_roundingfn_2): Likewise.
6785
6786 2007-08-22 Richard Guenther <rguenther@suse.de>
6787
6788 * tree-inline.c (inlinable_function_p): Restore disregarding
6789 inline limits for GNU extern inline functions.
6790
6791 2007-08-22 Richard Guenther <rguenther@suse.de>
6792
6793 PR middle-end/32563
6794 * tree.c (host_integerp): Treat sizetype as signed as it is
6795 sign-extended.
6796
6797 2007-08-21 Ian Lance Taylor <iant@google.com>
6798
6799 PR tree-optimization/33134
6800 * tree-vrp.c (adjust_range_with_scev): Call
6801 set_value_range_to_value.
6802
6803 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
6804
6805 * value-prof.h (gimple_remove_histogram_value): Remove duplicate
6806 prototype.
6807
6808 2007-08-21 Aldy Hernandez <aldyh@redhat.com>
6809
6810 * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary
6811 whitespace.
6812
6813 2007-08-21 Nathan Froyd <froydnj@codesourcery.com>
6814
6815 * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE
6816 cases to set eight bytes at a time.
6817 (expand_block_move): Likewise.
6818
6819 2007-08-21 Jakub Jelinek <jakub@redhat.com>
6820
6821 PR debug/32610
6822 * dwarf2out.c (gen_decl_die): Don't call
6823 gen_tagged_type_instantiation_die if decl doesn't have tagged type.
6824
6825 2007-08-21 Paul Brook <paul@codesourcery.com>
6826 Nathan Sidwell <nathan@codesourcery.com>
6827 Mark Mitchell <mark@codesourcery.com>
6828 Joseph Myers <joseph@codesourcery.com>
6829
6830 * configure.ac: Add --with-pkgversion and --with-bugurl.
6831 * configure: Regenerate.
6832 * doc/install.texi: Document them.
6833 * version.c (version_string): Remove VERSUFFIX.
6834 (VERSUFFIX): Remove.
6835 (pkgversion_string): New.
6836 (bug_report_url): Do not hard-code initializer.
6837 * version.h (pkgversion_string): Declare.
6838 * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI):
6839 Define.
6840 (version.o): Define PKGVERSION and BUGURL.
6841 (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL.
6842 (%.pod): Define BUGURL.
6843 * gcc.c (process_command, main): Use pkgversion_string.
6844 * toplev.c (compile_file, print_version): Likewise.
6845 * protoize.c (main): Likewise.
6846 * gcov.c (print_version): Likewise. Update copyright date.
6847 * gcov-dump.c (print_version): Likewise. Update copyright date.
6848 * mips-tdump.c (main): Likewise. Update copyright date.
6849 * mips-tfile.c (main): Likewise. Update copyright date.
6850 * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle.
6851 * doc/bugreport.texi: Use BUGURL for bug-reporting instructions;
6852 shorten description.
6853 * doc/gcc.texi: Include VERSION_PACKAGE in version description.
6854 * doc/gccint.texi: Likewise.
6855 * doc/invoke.texi: Use BUGURL for bug-reporting instructions.
6856 Update copyright date.
6857
6858 2007-08-21 Uros Bizjak <ubizjak@gmail.com>
6859
6860 * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG.
6861 (ix86_expand_strlensi_unroll_1): Ditto.
6862 (ix86_expand_branch): Use FLAGS_REG and FPSR_REG.
6863 (ix86_expand_carry_flag_compare): Update comment.
6864
6865 2007-08-21 Jakub Jelinek <jakub@redhat.com>
6866
6867 PR middle-end/32912
6868 * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST.
6869 (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations.
6870
6871 2007-08-21 Richard Guenther <rguenther@suse.de>
6872
6873 * fold-const.c (fold_binary): Revert removing of index +p PTR folding.
6874
6875 2007-08-21 Richard Guenther <rguenther@suse.de>
6876
6877 PR middle-end/33122
6878 * fold-const.c (fold_binary): Remove index +p PTR folding.
6879 Fix types of POINTER_PLUS_EXPR generated by folding of
6880 (PTR +p B) +p A.
6881
6882 2007-08-20 Chao-ying Fu <fu@mips.com>
6883
6884 * c-common.h (enum rid): Add new enumeration values of RID_SAT,
6885 RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
6886 RID_ONEWAY, so that it can be checked in declspecs_add_type.
6887 (c_common_fixed_point_type_for_size): Declare.
6888 * c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
6889 (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
6890 (c_token_starts_declspecs): Likewise.
6891 (c_parser_declspecs): Likewise.
6892 (c_parser_attributes): Likewise.
6893 * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
6894 (c_declspecs): Add saturating_p.
6895 * c-decl.c (build_null_declspecs): Initialize saturating_p.
6896 (declspecs_add_type): Avoid using complex with _Fract, _Accum, or
6897 _Sat. Handle RID_SAT.
6898 Avoid using void, bool, char, int, float, double, _Decimal32,
6899 _Decimal64, _Decimal128, and complex with _Sat.
6900 Handle RID_FRACT and RID_ACCUM.
6901 Make sure _Sat is used with _Fract or _Accum.
6902 (finish_declspecs): Handle cts_fract and cts_accum.
6903 * c-common.c (fixed-value.h): New include.
6904 (constant_expression_warning): Handle FIXED_CST.
6905 (overflow_warning): Likewise.
6906 (warnings_for_convert_and_check): Likewise.
6907 (c_common_fixed_point_type_for_size): New.
6908 (c_common_type_for_mode): Handle fixed-point modes to
6909 return various saturating/non-saturating, signed/unsigned types.
6910 (c_common_signed_or_unsigned_type): Support fixed-point types.
6911 (shorten_compare): Check fixed-point zero.
6912 Handle FIXED_POINT_TYPE.
6913 (c_common_truthvalue_conversion): Handle FIXED_CST.
6914 Handle FIXED_POINT_TYPE.
6915 (c_common_nodes_and_builtins): Record builtin types for fixed-point
6916 types.
6917 (handle_mode_attribute): Handle fixed-point modes. Need to check
6918 if the signness of base type and fixed-point modes are consistent.
6919 (handle_vector_size_attribute): Handle fixed-point modes.
6920 (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
6921 (warn_for_div_by_zero): Check fixed-point zero.
6922 * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
6923 a common fixed-point type based on fbit, ibit, sign, and saturation.
6924 (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
6925 NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
6926 PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
6927 (convert_for_assignment): Support FIXED_POINT_TYPE.
6928 (digest_init): Handle FIXED_POINT_TYPE.
6929 (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
6930 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
6931 TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
6932 GE_EXPR, LT_EXPR, GT_EXPR.
6933 * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
6934 (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
6935 * target.h (gcc_target): Add fixed_point_supported_p.
6936 * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
6937 MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
6938 (default_fixed_point_supported_p): Define.
6939 * targhooks.h (default_fixed_point_supported_p): Declare.
6940 * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
6941 * doc/install.texi (Configuration): Add --enable-fixed-point.
6942 * configure.ac (--enable-fixed-point): New to enable fixed-point
6943 arithmetic extension to C. For mips targets, we enable it by default.
6944 * configure, config.in: Regenerate.
6945
6946 2007-08-20 Pawel Sikora <pluto@pld-linux.org>
6947
6948 * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation.
6949
6950 2007-08-20 David Edelsohn <edelsohn@gnu.org>
6951
6952 * dwarf2out.c (text_section_used): Move declaration outside ifdef
6953 DWARF2_DEBUGGING_INFO.
6954 (cold_text_section_used): Same.
6955 (cold_text_section): Same.
6956
6957 2007-08-20 Richard Guenther <rguenther@suse.de>
6958
6959 * c-typeck.c (convert_for_assignment): Use the type of
6960 the member for the initialization.
6961
6962 2007-08-20 Richard Guenther <rguenther@suse.de>
6963
6964 * c-objc-common.c (c_disregard_inline_limits): Remove.
6965 * c-objc-common.h (c_disregard_inline_limits): Likewise.
6966 * cgraphunit.c (cgraph_process_new_functions): Call
6967 disregard_inline_limits_p.
6968 (cgraph_preserve_function_body_p): Likewise.
6969 * ipa-inline.c (compute_inline_parameters): Likewise.
6970 * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits):
6971 Remove.
6972 (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove.
6973 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
6974 disregard_inline_limits langhook.
6975 * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
6976 Remove.
6977 * langhooks.h (lang_hooks_for_tree_inlining): Remove
6978 disregard_inline_limits langhook.
6979 * tree-inline.c (disregard_inline_limits_p): New function.
6980 * tree-inline.h (disregard_inline_limits_p): Declare.
6981
6982 2007-08-20 Richard Guenther <rguenther@suse.de>
6983
6984 * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove.
6985 (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise.
6986 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for
6987 auto_var_in_fn_p langhook.
6988 * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and
6989 move ...
6990 * tree.c (auto_var_in_fn_p): ... here.
6991 (find_var_from_fn): Call auto_var_in_fn_p directly.
6992 * langhooks.h (lang_hooks_for_tree_inlining): Remove
6993 auto_var_in_fn_p langhook.
6994 * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly.
6995 (copy_body_r): Likewise.
6996 (self_inlining_addr_expr): Likewise.
6997 * tree.h (auto_var_in_fn_p): Declare.
6998
6999 2007-08-20 Richard Guenther <rguenther@suse.de>
7000
7001 * tree.c (WALK_SUBTREE): Call walk_tree_1.
7002 (walk_type_fields): Take lh parameter.
7003 (walk_tree): Rename to ...
7004 (walk_tree_1): ... this. Do not call the walk_subtrees
7005 langhook but the now passed callback. Pass lh on recursion.
7006 (walk_tree_without_duplicates): Rename to ...
7007 (walk_tree_without_duplicates_1): ... this. Take lh parameter
7008 and call walk_tree_1.
7009 * tree.h (walk_tree_lh): New typedef.
7010 (walk_tree_1): Declare.
7011 (walk_tree_without_duplicates_1): Likewise.
7012 (walk_tree): New define to walk_tree_1 with NULL lh parameter.
7013 (walk_tree_without_duplicates): New define to
7014 walk_tree_without_duplicates_1 with NULL lh parameter.
7015 * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove.
7016 * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees
7017 langhook.
7018 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove.
7019 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
7020 (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees
7021 initializer.
7022
7023 2007-08-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
7024
7025 PR middle-end/30564
7026 * tree-inline.c (optimize_inline_calls): Move the cgraph checking
7027 code in front of the compacting of basic blocks.
7028 Move the folding of statements inbetween the cgraph checking
7029 and compacting of basic blocks.
7030
7031 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
7032 Serge Belyshev <belyshev@depni.sinp.msu.ru>
7033
7034 PR target/32522
7035 * config/alpha/alpha.c (va_list_skip_additions): Check for
7036 POINTER_PLUS_EXPR in addition to PLUS_EXPR.
7037 (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of
7038 PLUS_EXPR when checking ap.__base.
7039 (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR
7040 when doing addition on pointer types. Use size_int instead of
7041 build_int_cst.
7042 (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of
7043 ptr_type in the second operand.
7044
7045 2007-08-19 Andrew Pinski <pinskia@gmail.com>
7046
7047 PR target/33115
7048 * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front.
7049
7050 2007-08-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
7051
7052 PR middle-end/32940
7053 * cfgexpand.c (expand_one_register_var): Mark pointer
7054 DECL_ARTIFICIAL as REG_POINTER also.
7055 * stmt.c (expand_decl): Likewise.
7056
7057 2007-08-19 Daniel Berlin <dberlin@dberlin.org>
7058
7059 Fix PR 32772
7060 Fix PR 32716
7061 Fix PR 32328
7062 Fix PR 32303
7063
7064 * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call.
7065 * tree-ssa-alias.c (init_transitive_clobber_worklist): Add
7066 on_worklist argument and avoid adding things to worklist multiple
7067 times.
7068 (add_to_worklist): Ditto.
7069 (mark_aliases_call_clobbered): Mark entire structure clobbered if
7070 single SFT is clobbered.
7071 (set_initial_properties): Ditto.
7072 (compute_call_clobbered): Update for changes to function
7073 arguments.
7074 (create_overlap_variables_for): Always create SFT for offset 0.
7075 (create_structure_vars): Handle PHI's, since we are in SSA form at
7076 this point.
7077 * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars.
7078 * tree-ssa-operands.c (access_can_touch_variable): Don't handle
7079 TARGET_MEM_REF.
7080 (add_vars_for_offset): Figure out aliases from access + points-to.
7081 (add_virtual_operand): Use add_vars-for_offset.
7082 (get_tmr_operands): Update for NMT changes, rewrite to be correct.
7083 (add_call_clobber_ops): Remove makes_clobbering_call set.
7084 (get_expr_operands): Always pass through the INDIRECT_REF
7085 reference.
7086 * tree-ssa-structalias.c (struct constraint_graph): Remove
7087 variables member.
7088 Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to,
7089 address_taken, pt_used, number_incoming.
7090 (FIRST_ADDR_NODE): Removed.
7091 (merge_graph_nodes): Remove broken code for the moment.
7092 (init_graph): New function.
7093 (build_pred_graph): Remove code to init_graph.
7094 Add location equivalence support.
7095 (struct scc_info): Rename roots to deleted.
7096 (scc_visit): Ditto.
7097 (init_scc_info): Ditto
7098 (init_topo_info): Use graph->size.
7099 (compute_topo_order): Ditto.
7100 (do_da_constraint): Removed.
7101 (do_sd_constraint): Remove calls to find().
7102 set_union_with_increment should always get 0 as last arg here.
7103 (do_complex_constraint): Replace do_da_constraint with assert.
7104 Stop calling find.
7105 (struct equiv_class_label): New.
7106 (pointer_equiv_class_table): Ditto.
7107 (location_equiv_class_table): Ditto.
7108 (equiv_class_label_hash): Ditto.
7109 (equiv_class_label_eq): Ditto
7110 (equiv_class_lookup): Ditto.
7111 (equiv_class_ladd): Ditto.
7112 (pointer_equiv_class): Ditto.
7113 (location_equiv_class): Ditto.
7114 (condense_visit): Rename and rewrite from label_visit to do only
7115 SCC related stuff for HU.
7116 (label_visit): Do HU work for HU.
7117 (perform_var_substitution): Update to do HU and location
7118 equivalence.
7119 (free_var_substitution_info): Update to free HU and location
7120 equivalence structures. */
7121 (find_equivalent_node): Update for pointer but not location
7122 equivalence.
7123 (unite_pointer_equivalences): New function.
7124 (move_complex_constraints): Rewrite to only do moving.
7125 (rewrite_constraints): Split out of move_complex_constraints.
7126 (solve_graph): Use graph->size.
7127 (process_constraint_1): Add from_call argument, use it.
7128 Split *a = &b into two constraints.
7129 (process_constraint): Use new process_constraint_1.
7130 (get_constraint_for_component_ref): Handle bitmaxsize == -1 case.
7131 (get_constraint_for): Handle non-pointer integers properly.
7132 Remove code that used to handle structures.
7133 (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling
7134 with unknown addends.
7135 (handle_rhs_call): New function.
7136 (find_func_aliases): Use handle_rhs_call.
7137 (set_uids_in_ptset): Add an assert.
7138 (set_used_smts): Fix bug in not considering unified vars.
7139 (compute_tbaa_pruning): Stop initing useless iteration_obstack.
7140 (compute_points_to_sets): Update for other function changes.
7141 (delete_points_to_sets): Ditto.
7142 (ipa_pta_execute): Ditto.
7143 (pass_ipa_pta): We need to update SSA after ipa_pta.
7144
7145 2007-08-19 Jan Hubicka <jh@suse.cz>
7146
7147 * i386.md: Replace "rim" and "mri" constraints by "g".
7148
7149 2007-08-19 Joseph Myers <joseph@codesourcery.com>
7150
7151 * dwarf2out.c (text_section_used, cold_text_section_used,
7152 cold_text_section, dwarf2out_note_section_used): New.
7153 (dwarf2out_init): Initialize cold_text_section.
7154 (dwarf2out_switch_text_section, dwarf2out_begin_function): Call
7155 dwarf2out_note_section_used.
7156 (size_of_aranges): Only count entry for text section if it was
7157 used. Count entry for cold text section if it was used.
7158 (output_aranges): Only output entries for text section and cold
7159 text section if they were used.
7160
7161 2007-08-19 Andrew Pinski <pinskia@gmail.com>
7162
7163 * tree-pretty-print.c (debug_generic_expr): Add a comment about
7164 the function.
7165 (debug_generic_stmt): Likewise.
7166 (debug_tree_chain): Likewise.
7167
7168 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
7169
7170 * tree-data-refs.c (split_constant_offset): Expose.
7171 * tree-data-refs.h (split_constant_offset): Add declaration.
7172
7173 * tree-vectorizer.h (dr_alignment_support): Renamed
7174 dr_unaligned_software_pipeline to dr_explicit_realign_optimized.
7175 Added a new value dr_explicit_realign.
7176 (_stmt_vec_info): Added new fields: dr_base_address, dr_init,
7177 dr_offset, dr_step, and dr_aligned_to, along with new access
7178 functions for these fields: STMT_VINFO_DR_BASE_ADDRESS,
7179 STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and
7180 STMT_VINFO_DR_ALIGNED_TO.
7181
7182 * tree-vectorizer.c (vect_supportable_dr_alignment): Add
7183 documentation.
7184 In case of outer-loop vectorization with non-fixed misalignment - use
7185 the dr_explicit_realign scheme instead of the optimized realignment
7186 scheme.
7187 (new_stmt_vec_info): Initialize new fields.
7188
7189 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the
7190 'nested_in_vect_loop' case. Change verbosity level.
7191 (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case.
7192 Don't fail on zero step in the outer-loop for loads.
7193 (vect_analyze_data_refs): Call split_constant_offset to calculate
7194 base, offset and init relative to the outer-loop.
7195
7196 * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused
7197 BSI function argument with a new function argument - at_loop.
7198 Simplify the condition that determines STEP. Takes additional argument
7199 INV_P. Support outer-loop vectorization (handle the
7200 nested_in_vect_loop case), including zero step in the outer-loop. Call
7201 vect_create_addr_base_for_vector_ref with additional argument.
7202 (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP.
7203 Updated function documentation. Handle the 'nested_in_vect_loop' case.
7204 Fixed and simplified calculation of step.
7205 (vectorizable_store): Call vect_create_data_ref_ptr with loop instead
7206 of bsi, and with additional argument. Call bump_vector_ptr with
7207 additional argument. Fix typos. Handle the 'nested_in_vect_loop' case.
7208 (vect_setup_realignment): Takes additional arguments INIT_ADDR and
7209 DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case
7210 when the realignment setup needs to take place inside the loop.
7211 Support the dr_explicit_realign scheme. Allow generating the optimized
7212 realignment scheme for outer-loop vectorization. Added documentation.
7213 (vectorizable_load): Support the dr_explicit_realign scheme. Handle
7214 the 'nested_in_vect_loop' case, including loads that are invariant in
7215 the outer-loop and the realignment schemes. Handle the case when the
7216 realignment setup needs to take place inside the loop. Call
7217 vect_setup_realignment with additional arguments. Call
7218 vect_create_data_ref_ptr with additional argument and with loop instead
7219 of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI.
7220 (vect_gen_niters_for_prolog_loop): Call
7221 vect_create_addr_base_for_vector_ref with additional arguments.
7222 (vect_create_cond_for_align_checks): Likewise.
7223 (bump_vector_ptr): Updated to support the new dr_explicit_realign
7224 scheme: takes additional argument bump; argument ptr_incr is now
7225 optional; updated documentation.
7226 (vect_init_vector): Takes additional argument (bsi). Use it, if
7227 available, to insert the vector initialization.
7228 (get_initial_def_for_induction): Pass additional argument in call to
7229 vect_init_vector.
7230 (vect_get_vec_def_for_operand): Likewise.
7231 (vect_setup_realignment): Likewise.
7232 (vectorizable_load): Likewise.
7233
7234 2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
7235
7236 * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info
7237 as argument instead of struct loop.
7238 (nested_in_vect_loop_p): New function.
7239 (vect_relevant): Add enum values vect_used_in_outer_by_reduction and
7240 vect_used_in_outer.
7241 (is_loop_header_bb_p): New. Used to differentiate loop-header phis
7242 from other phis in the loop.
7243 (destroy_loop_vec_info): Add additional argument to declaration.
7244
7245 * tree-vectorizer.c (supportable_widening_operation): Also check if
7246 nested_in_vect_loop_p (don't allow changing the order in this case).
7247 (vect_is_simple_reduction): Takes a loop_vec_info as argument instead
7248 of struct loop. Call nested_in_vect_loop_p and don't require
7249 flag_unsafe_math_optimizations if it returns true.
7250 (new_stmt_vec_info): When setting def_type for phis differentiate
7251 loop-header phis from other phis.
7252 (bb_in_loop_p): New function.
7253 (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so
7254 just update their loop_vinfo. Order of BB traversal now matters -
7255 call dfs_enumerate_from with bb_in_loop_p.
7256 (destroy_loop_vec_info): Takes additional argument to control whether
7257 stmt_vinfo of the loop stmts should be destroyed as well.
7258 (vect_is_simple_reduction): Allow the "non-reduction" use of a
7259 reduction stmt to be defines by a non loop-header phi.
7260 (vectorize_loops): Call destroy_loop_vec_info with additional argument.
7261
7262 * tree-vect-transform.c (vectorizable_reduction): Call
7263 nested_in_vect_loop_p. Check for multitypes in the inner-loop.
7264 (vectorizable_call): Likewise.
7265 (vectorizable_conversion): Likewise.
7266 (vectorizable_operation): Likewise.
7267 (vectorizable_type_promotion): Likewise.
7268 (vectorizable_type_demotion): Likewise.
7269 (vectorizable_store): Likewise.
7270 (vectorizable_live_operation): Likewise.
7271 (vectorizable_reduction): Likewise. Also pass loop_info to
7272 vect_is_simple_reduction instead of loop.
7273 (vect_init_vector): Call nested_in_vect_loop_p.
7274 (get_initial_def_for_reduction): Likewise.
7275 (vect_create_epilog_for_reduction): Likewise.
7276 (vect_init_vector): Check which loop to work with, in case there's an
7277 inner-loop.
7278 (get_initial_def_for_inducion): Extend to handle outer-loop
7279 vectorization. Fix indentation.
7280 (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def.
7281 In the case vect_induction_def get the vector def from the induction
7282 phi node, instead of calling get_initial_def_for_inducion.
7283 (get_initial_def_for_reduction): Extend to handle outer-loop
7284 vectorization.
7285 (vect_create_epilog_for_reduction): Extend to handle outer-loop
7286 vectorization.
7287 (vect_transform_loop): Change assert to just skip this case. Add a
7288 dump printout.
7289 (vect_finish_stmt_generation): Add a couple asserts.
7290
7291 (vect_estimate_min_profitable_iters): Multiply
7292 cost of inner-loop stmts (in outer-loop vectorization) by estimated
7293 inner-loop bound.
7294 (vect_model_reduction_cost): Don't add reduction epilogue cost in case
7295 this is an inner-loop reduction in outer-loop vectorization.
7296
7297 * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function.
7298 Same code as what used to be vect_analyze_scalar_cycles, only with
7299 additional argument loop, and loop_info passed to
7300 vect_is_simple_reduction instead of loop.
7301 (vect_analyze_scalar_cycles): Code factored out into
7302 vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest.
7303 Updated documentation.
7304 (analyze_operations): Check for inner-loop loop-closed exit-phis during
7305 outer-loop vectorization that are live or not used in the outerloop,
7306 cause this requires special handling.
7307 (vect_enhance_data_refs_alignment): Don't consider versioning for
7308 nested-loops.
7309 (vect_analyze_data_refs): Check that there are no datarefs in the
7310 inner-loop.
7311 (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer
7312 and vect_used_in_outer_by_reduction cases.
7313 (process_use): Also consider the case of outer-loop stmt defining an
7314 inner-loop stmt and vice versa.
7315 (vect_analyze_loop_1): New function.
7316 (vect_analyze_loop_form): Extend, to allow a restricted form of nested
7317 loops. Call vect_analyze_loop_1.
7318 (vect_analyze_loop): Skip (inner-)loops within outer-loops that have
7319 been vectorized. Call destroy_loop_vec_info with additional argument.
7320
7321 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow
7322 in the inner-loop when doing outer-loop vectorization. Add
7323 documentation and printout.
7324 (vect_recog_dot_prod_pattern): Likewise. Also add check for
7325 GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop).
7326
7327 2007-08-18 Andrew Pinski <pinskia@gmail.com>
7328
7329 * tree-affine.h (print_aff): New prototype.
7330 (debug_aff): Likewise.
7331 * tree-affine.c (print_aff): New function.
7332 (debug_aff): Likewise.
7333
7334 2007-08-18 Paul Brook <paul@codesourcery.com>
7335 Joseph Myers <joseph@codesourcery.com>
7336
7337 * common.opt (-fdebug-prefix-map=): New option.
7338 * opts.c: Include debug.h.
7339 (common_handle_option): Handle -fdebug-prefix-map.
7340 * final.c: Include ggc.h.
7341 (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
7342 remap_debug_filename): New.
7343 * Makefile.in (final.o, opts.o): Update dependencies.
7344 * debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
7345 * configure.ac: Check for assembler --debug-prefix-map support.
7346 * configure, config.in: Regenerate.
7347 * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
7348 (ASM_DEBUG_SPEC): Include ASM_MAP.
7349 * doc/install.texi (--with-debug-prefix-map): Document.
7350 * doc/invoke.texi (-fdebug-prefix-map): Document.
7351 * dbxout.c (dbxout_init, dbxout_start_source_file,
7352 dbxout_source_file): Call remap_debug_filename.
7353 * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
7354 dwarf2out_start_source_file, dwarf2out_finish): Call
7355 remap_debug_filename.
7356 (file_table_relative_p): Do not check d->emitted_number.
7357 * toplev.c (output_file_directive): Call remap_debug_filename.
7358 * vmsdbgout.c (write_srccorr): Call remap_debug_filename.
7359 * xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
7360
7361 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7362
7363 * loop-invariant.c (find_invariants_to_move): Add missing macro
7364 argument.
7365
7366 2007-08-17 Tom Tromey <tromey@redhat.com>
7367
7368 * tree.h (struct tree_label_decl): Removed old "java" fields.
7369
7370 2007-08-17 Richard Sandiford <richard@codesourcery.com>
7371 Nigel Stephens <nigel@mips.com>
7372
7373 * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas.
7374 Treat -mno-data-in-code and -mcode-xonly as aliases for
7375 -mcode-readable=no and -mcode-readable=pcrel respectively.
7376 * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly.
7377 (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs.
7378 (MULTILIB_DIRNAMES): Update accordingly.
7379
7380 2007-08-17 H.J. Lu <hongjiu.lu@intel.com>
7381
7382 * Makefile.in (version.o): Depend on $(REVISION) only if
7383 REVISION_s is defined.
7384
7385 2007-08-17 Sa Liu <saliu@de.ibm.com>
7386 Ulrich Weigand <uweigand@de.ibm.com>
7387
7388 PR middle-end/32970
7389 * tree.c (reconstruct_complex_type): For a pointer to a vector,
7390 use build_qualified_type to retain qualifiers of the base type.
7391
7392 2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
7393
7394 * config/score/score.md : Update pattern tablejump.
7395 * config/score/score.c : Update score_initialize_trampoline
7396 function.
7397 * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro.
7398 (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro.
7399 * doc/contrib.texi: Add my entry.
7400
7401 2007-08-16 H.J. Lu <hongjiu.lu@intel.com>
7402
7403 * Makefile.in (REVISION): New.
7404 (REVISION_c): New.
7405 (REVISION_s): New.
7406 (version.o): Also depend on $(REVISION). Add
7407 -DREVISION=$(REVISION_s).
7408
7409 * version.c (version_string): Add REVISION.
7410
7411 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
7412
7413 * tree-eh.c (lower_try_finally_onedest): Reset the locus
7414 of GOTO that's relocated to a different block.
7415
7416 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7417
7418 * c-common.c (const_strip_array_types): New.
7419 * c-common.h (lang_missing_noreturn_ok_p): Delete.
7420 (const_strip_array_types): New.
7421 * c-objc-common.c (c_disregard_inline_limits,
7422 c_warn_unused_global_decl): Constify.
7423 * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl,
7424 c_vla_type_p, c_incomplete_type_error): Likewise.
7425 * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise.
7426 * hooks.c (hook_bool_const_tree_false): New.
7427 * hooks.h (hook_bool_const_tree_false): Likewise.
7428 * langhooks-def.h (lhd_warn_unused_global_decl,
7429 lhd_incomplete_type_error, lhd_expr_size,
7430 lhd_tree_inlining_disregard_inline_limits,
7431 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
7432 LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify.
7433 * langhooks.c (lhd_warn_unused_global_decl,
7434 lhd_incomplete_type_error,
7435 lhd_tree_inlining_disregard_inline_limits,
7436 lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals,
7437 lhd_expr_size): Likewise.
7438 * langhooks.h (lang_hooks_for_tree_inlining,
7439 lang_hooks_for_tree_dump, lang_hooks_for_types,
7440 lang_hooks_for_decls, lang_hooks): Likewise.
7441 * pointer-set.c (pointer_set_t, pointer_set_create,
7442 pointer_set_contains, insert_aux, pointer_set_insert,
7443 pointer_set_traverse, pointer_map_t, pointer_map_create,
7444 pointer_map_contains, pointer_map_insert, pointer_map_traverse):
7445 Likewise.
7446 * pointer-set.h (pointer_set_contains, pointer_set_insert,
7447 pointer_set_traverse, pointer_map_contains, pointer_map_insert,
7448 pointer_map_traverse): Likewise.
7449 * predict.c (assert_is_empty): Likewise.
7450 * tree-affine.c (free_name_expansion): Likewise.
7451 * tree-cfg.c (edge_to_cases_cleanup): Likewise.
7452 * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise.
7453 * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise.
7454
7455 2007-08-16 Victor Kaplansky <victork@il.ibm.com>
7456
7457 * tree-vectorizer.c (new_loop_vec_info): Initialize new
7458 field.
7459 (destroy_loop_vec_info): Add call to VEC_free.
7460 * tree-vectorizer.h (may_alias_ddrs): Define.
7461 (LOOP_VINFO_MAY_ALIAS_DDRS): Define.
7462 * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
7463 Change reporting to dump.
7464 (vect_is_duplicate_ddr): New.
7465 (vect_mark_for_runtime_alias_test): New.
7466 (vect_analyze_data_ref_dependences) Add call to
7467 vect_mark_for_runtime_alias_test.
7468 (vect_enhance_data_refs_alignment): Define local variable
7469 vect_versioning_for_alias_required, don't perform
7470 peeling for alignment if versioning for alias is
7471 required.
7472 (vect_enhance_data_refs_alignment): Use
7473 PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of
7474 PARAM_VECT_MAX_VERSION_CHECKS.
7475 * tree-vect-transform.c
7476 (vect_create_cond_for_alias_checks): New.
7477 (vect_transform_loop): Add call to
7478 vect_create_cond_for_alias_checks.
7479 (vect_vfa_segment_size): New.
7480 * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS):
7481 Rename.
7482 (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define.
7483 * gcc/doc/invoke.texi
7484 (vect-max-version-for-alignment-checks): Document.
7485 (vect-max-version-for-alias-checks): Document.
7486 (vect-max-version-checks): Remove.
7487
7488 2007-08-16 Uros Bizjak <ubizjak@gmail.com>
7489
7490 * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on
7491 the same line as the instruction for all asm dialects.
7492 (*rep_movsi): Ditto.
7493 (*rep_movsi_rex64): Ditto.
7494 (*rep_movqi): Ditto.
7495 (*rep_movqi_rex64): Ditto.
7496 (*rep_stosdi_rex64): Ditto.
7497 (*rep_stossi): Ditto.
7498 (*rep_stossi_rex64): Ditto.
7499 (*rep_stosqi): Ditto.
7500 (*rep_stosqi_rex64): Ditto.
7501 (*cmpstrnqi_nz_1): Ditto.
7502 (*cmpstrnqi_nz_rex_1): Ditto.
7503 (*cmpstrnqi_1): Ditto.
7504 (*cmpstrnqi_rex_1): Ditto.
7505 (*strlenqi_1): Ditto.
7506 (*strlenqi_rex_1): Ditto.
7507 * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock"
7508 prefix on the same line as the instruction for all asm dialects.
7509 (sync_double_compare_and_swap<mode>): Ditto.
7510 (*sync_double_compare_and_swapdi_pic): Ditto.
7511 (*sync_compare_and_swap_cc<mode>): Ditto.
7512 (sync_double_compare_and_swap_cc<mode>): Ditto.
7513 (*sync_double_compare_and_swap_ccdi_pic): Ditto.
7514 (sync_old_add<mode>): Ditto.
7515 (sync_add<mode>): Ditto.
7516 (sync_sub<mode>): Ditto.
7517 (sync_ior<mode>): Ditto.
7518 (sync_and<mode>): Ditto.
7519 (sync_xor<mode>): Ditto.
7520
7521 2007-08-16 Richard Sandiford <richard@codesourcery.com>
7522
7523 PR middle-end/32897
7524 * reload.c (find_reloads): Check that the memory returned by
7525 find_reloads_toplev was not the result of forcing a constant
7526 to memory.
7527 (find_reloads_toplev): Always use simplify_gen_subreg to get
7528 the subreg of a constant. If the result is also a constant,
7529 but not a legitimate one, force it into the constant pool
7530 and reload its address.
7531
7532 2007-08-15 David Edelsohn <edelsohn@gnu.org>
7533
7534 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
7535 POPCOUNT.
7536
7537 2007-08-15 Daniel Jacobowitz <dan@codesourcery.com>
7538
7539 * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute
7540 directive for the current vector ABI.
7541
7542 2007-08-15 Steve Ellcey <sje@cup.hp.com>
7543
7544 PR target/32963
7545 * caller-save.c (reg_save_code): Set invalide status on restore code.
7546
7547 2007-08-15 Diego Novillo <dnovillo@google.com>
7548
7549 * tree-ssa-alias.c (compute_memory_partitions): Use
7550 alias_bitmap_obstack to allocate bitmaps.
7551 (reset_alias_info): Factor out of init_alias_info.
7552 Mark all name tags not associated to an SSA name for renaming.
7553 (init_alias_info): Call it.
7554 (create_name_tags): Tidy. Add comments.
7555 (dump_points_to_info_for): Do not call get_mem_sym_stats_for.
7556
7557 2007-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
7558
7559 * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to
7560 scheduler dependencies.
7561
7562 2007-08-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
7563
7564 * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for
7565 "register_operand".
7566 (*iorsi_1_zext): Likewise.
7567 (*iorsi_1_zext_imm): Likewise.
7568 * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand"
7569 with "rm"/"xm" constraint.
7570 (sse2_vmsqrtv2df2): Likewise.
7571
7572 2007-08-15 Jakub Jelinek <jakub@redhat.com>
7573
7574 PR middle-end/33074
7575 * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for
7576 REG_LIBCALL note.
7577
7578 2007-08-14 Daniel Berlin <dberlin@dberlin.org>
7579
7580 * tree-pass.h (PROP_pta): Removed.
7581 (TODO_rebuild_alias): New.
7582 (pass_may_alias): Removed.
7583 * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
7584 aliasing if we changed something.
7585 * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update
7586 SSA internally.
7587 (pass_may_alias): Removed.
7588 (create_structure_vars): Return TODO_rebuild_alias.
7589 * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
7590 * tree-sra.c (tree_sra): Only rebuild aliasing if something
7591 changed.
7592 (tree_sra_early): We never affect aliasing right now.
7593 * tree-flow.h (compute_may_aliases): New prototype.
7594 * passes.c: Remove pass_may_alias from the passes.
7595 (execute_function_todo): Support TODO_rebuild_alias.
7596
7597 2007-08-14 Kai Tietz <kai.tietz@onevision.com>
7598
7599 * i386.c: (legitimize_address): Move dllimported variable check
7600 infront of legitimizing pic address of CONST symbols.
7601
7602 2007-08-14 Steve Ellcey <sje@cup.hp.com>
7603
7604 PR tree-optimization/32941
7605 * tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
7606 (goto_queue_cmp): Remove.
7607 (find_goto_replacement): Change search method.
7608 (maybe_record_in_goto_queue): Add assert.
7609 (lower_try_finally): Remove qsort call, add pointer_map_destroy call.
7610 * Makefile.in (tree-eh.o): Add pointer-set.h dependency.
7611
7612 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7613
7614 * alias.c (component_uses_parent_alias_set): Constify.
7615 * alias.h (component_uses_parent_alias_set): Likewise.
7616 * cfgrtl.c (print_rtl_with_bb): Likewise.
7617 * double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
7618 mpz_get_double_int): Likewise.
7619 * double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
7620 mpz_get_double_int): Likewise.
7621 * expr.c (is_aligning_offset, undefined_operand_subword_p,
7622 mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
7623 Likewise.
7624 * expr.h (safe_from_p): Likewise.
7625 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
7626 Likewise.
7627 * gimplify.c (should_carry_locus_p, zero_sized_field_decl,
7628 zero_sized_type, goa_lhs_expr_p): Likewise.
7629 * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
7630 * rtl.h (print_rtl_with_bb): Likewise.
7631 * sched-vis.c (print_exp, print_value, print_pattern): Likewise.
7632 * tree-cfg.c (const_first_stmt, const_last_stmt): New.
7633 * tree-flow-inline.h (bb_stmt_list): Constify.
7634 (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
7635 cbsi_stmt): New.
7636 * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
7637 const_first_stmt, const_last_stmt): New.
7638 (block_may_fallthru, empty_block_p): Constify.
7639 * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
7640 EXPR_ONLY_BODY): New.
7641 (expr_first, expr_last, expr_only): Use macro for body.
7642 (const_expr_first, const_expr_last, const_expr_only): New.
7643 * tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
7644 ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
7645 ctsi_prev, ctsi_stmt): New.
7646 * tree-scalar-evolution.c (get_loop_exit_condition): Constify.
7647 * tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
7648 * tree-ssa-loop-niter.c (loop_only_exit_p,
7649 derive_constant_upper_bound): Likewise.
7650 * tree-ssa-phiopt.c (empty_block_p): Likewise.
7651 * tree-ssa-threadupdate.c (redirection_block_p): Likewise.
7652 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
7653 * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
7654 * tree-vrp.c (vrp_bitmap_equal_p): Likewise.
7655 * tree.c (get_type_static_bounds): Likewise.
7656 * tree.h (const_expr_first, const_expr_last, const_expr_only): New.
7657 (get_type_static_bounds): Constify.
7658
7659 2007-08-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
7660
7661 PR target/30315
7662 * config/i386/i386.h (CANONICALIZE_COMPARISON): New.
7663 * config/i386/i386.md (plusminus)(addsub)(SWI): New.
7664 (*<addsub><mode>3_cc_overflow): New.
7665 (*add<mode>3_cconly_overflow): New.
7666 (*sub<mode>3_cconly_overflow): New.
7667 (*<addsub>si3_zext_cc_overflow): New.
7668 * config/i386/predicates.md (fcmov_comparison_operator): Accept
7669 CCCmode for LTU, GTU, LEU and GEU.
7670 (ix86_comparison_operator): Likewise.
7671 (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
7672 * config/i386/i386.c (put_condition_code): Support CCCmode.
7673 (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
7674 or MINUS expressions.
7675
7676 2007-08-14 Andrew Pinski <pinskia@gmail.com>
7677
7678 PR c/30428
7679 * c-typeck.c (build_binary_op): Disallow vector float types with
7680 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
7681
7682 2007-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
7683
7684 * sched-int.h (struct _dep): Rename field 'kind' to 'type'.
7685 (DEP_KIND): Rename to DEP_TYPE. Update all uses.
7686 (dep_def): New typedef.
7687 (init_dep_1, sd_debug_dep): Declare functions.
7688 (DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
7689 (debug_dep_links): Remove.
7690 (struct _deps_list): New field 'n_links'.
7691 (DEPS_LIST_N_LINKS): New macro.
7692 (FOR_EACH_DEP_LINK): Remove.
7693 (create_deps_list, free_deps_list, delete_deps_list): Remove
7694 declaration.
7695 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
7696 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
7697 (copy_deps_list_change_con, move_dep_link): Ditto.
7698 (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
7699 and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field
7700 'dep_count'.
7701 (INSN_BACK_DEPS): Remove.
7702 (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
7703 New macros.
7704 (INSN_DEP_COUNT): Remove.
7705 (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments.
7706 (spec_info, haifa_recovery_block_was_added_during_scheduling_p):
7707 Declare global variables.
7708 (deps_pools_are_empty_p, sched_free_deps): Declare functions.
7709 (add_forw_dep, compute_forward_dependences): Remove declarations.
7710 (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
7711 (add_back_forw_dep, delete_back_forw_dep): Ditto.
7712 (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
7713 functions.
7714 (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW):
7715 New constants.
7716 (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
7717 (sd_list_types_def): New typedef.
7718 (sd_next_list): Declare function.
7719 (struct _sd_iterator): New type.
7720 (sd_iterator_def): New typedef.
7721 (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
7722 functions.
7723 (FOR_EACH_DEP): New cycle wrapper.
7724 (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
7725 Declare functions.
7726 (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
7727 (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
7728 Ditto.
7729
7730 * sched-deps.c (init_dep_1): Make global.
7731 (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
7732 constants.
7733 (dump_dep): New static function.
7734 (dump_dep_flags): New static variable.
7735 (sd_debug_dep): New function.
7736 (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
7737 the list.
7738 (move_dep_link): Use remove_from_deps_list (), instead of
7739 detach_dep_link ().
7740 (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
7741 (dep_link_is_detached_p): New static function.
7742 (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool
7743 instead.
7744 (dn_pool, dl_pool): New alloc_pools.
7745 (dn_pool_diff, dl_pool_diff): New static variables.
7746 (create_dep_node, delete_dep_node): New static function.
7747 (create_deps_list): Make it static. Use alloc_pool 'dl_pool'.
7748 (deps_list_empty_p): Make it static. Use 'n_links' field.
7749 (deps_pools_are_empty_p): New static function.
7750 (alloc_deps_list, delete_deps_list): Remove.
7751 (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
7752 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
7753 (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead.
7754 (forward_dependency_cache): Remove.
7755 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
7756 'back' from the names. Change signature to use dep_t instead of
7757 equivalent quad.
7758 (add_back_dep): Ditto. Make global.
7759 (check_dep_status): Rename to check_dep ().
7760 (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
7761 New functions.
7762 (sd_finish_insn): Ditto.
7763 (sd_find_dep_between_no_cache): New static function.
7764 (sd_find_dep_between): New function.
7765 (ask_dependency_caches, set_dependency_caches): New static functions.
7766 (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
7767 (add_or_update_dep_1): Separate pieces of functionality into
7768 ask_dependency_caches (), update_dependency_caches (),
7769 change_spec_dep_to_hard (), update_dep ().
7770 (get_back_and_forw_lists): New static function.
7771 (sd_add_dep): Separate setting of dependency caches into
7772 set_dependency_caches ().
7773 (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
7774 New functions.
7775 (sd_delete_dep): Ditto.
7776 (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
7777 (dump_lists): New static function.
7778 (sd_debug_lists): New debug function.
7779 (delete_all_dependences, fixup_sched_groups): Update to use
7780 sd_* infrastructure.
7781 (sched_analyze_2): Create data-speculative dependency only if
7782 data-speculation is enabled.
7783 (sched_analyze_insn): If insn cannot be speculative, make all its
7784 dependencies non-speculative.
7785 (sched_analyze): Use sd_init_insn ().
7786 (add_forw_dep, compute_forward_dependencies): Remove.
7787 (delete_dep_nodes_in_back_deps): New static function.
7788 (sched_free_deps): New function.
7789 (init_dependency_caches): Init alloc_pools.
7790 (extend_depedency_caches): Update after removing of
7791 forward_dependency_cache.
7792 (free_dependency_caches): Ditto. Free alloc_pools.
7793 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
7794 (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
7795 Ditto.
7796 (add_back_forw_dep, delete_back_forw_dep): Ditto.
7797 (add_dependence): Use init_dep ().
7798 (get_dep_weak_1): New static function.
7799 (get_dep_weak): Move logic to get_dep_weak_1 ().
7800 (dump_ds): New static function moved from haifa-sched.c:
7801 debug_spec_status ().
7802 (debug_ds): New debug function.
7803 (check_dep_status): Rename to check_dep (). Update to check whole
7804 dependencies.
7805
7806 * haifa-sched.c (spec_info): Make global.
7807 (added_recovery_block_p): Rename to
7808 'haifa_recovery_block_was_added_during_current_schedule_block_p'.
7809 (haifa_recovery_block_was_added_during_scheduling_p): New variable.
7810 (dep_cost, priority, rank_for_schedule, schedule_insn): Update
7811 to use new interfaces.
7812 (ok_for_early_queue_removal): Ditto.
7813 (schedule_block): Initialize logical uids of insns emitted by the
7814 target.
7815 (sched_init): Initialize new variable.
7816 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
7817 interfaces.
7818 (extend_global): Initialize insn data.
7819 (init_h_i_d): Remove code that is now handled in sd_init_insn ().
7820 (process_insn_forw_deps_be_in_spec): Change signature. Update to use
7821 new interfaces.
7822 (add_to_speculative_block): Update to use new interfaces.
7823 (create_recovery_block): Set new variables.
7824 (create_check_block_twin, fix_recovery_deps): Update to use new
7825 interfaces.
7826 (sched_insn_is_legitimate_for_speculation_p): New function.
7827 (speculate_insn): Move checking logic to
7828 sched_insn_is_legitimate_for_speculation_p ().
7829 (sched_remove_insn): Finalize sched-deps information of instruction.
7830 (clear_priorities, add_jump_dependencies): Update to use new
7831 interfaces.
7832 (debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
7833
7834 * sched-rgn.c (set_spec_fed, find_conditional_protection): Update
7835 to use new interfaces.
7836 (is_conditionally_protected, is_pfree, is_prisky) Ditto.
7837 (new_ready): Try to use control speculation only if it is available.
7838 (add_branch_dependences): Update to use new interfaces.
7839 (compute_block_backward_dependences): Rename to
7840 compute_block_dependences (). Call
7841 targetm.sched.dependencies_evaluation_hook ().
7842 (free_block_dependencies): New static function.
7843 (debug_dependencies): Update to use new interfaces.
7844 (schedule_region): Remove separate computation of forward dependencies.
7845 Move call of targetm.sched.dependencies_evaluation_hook () to
7846 compute_block_dependences (). Free dependencies at the end of
7847 scheduling the region.
7848
7849 * sched-ebb.c (earliest_block_with_similiar_load): Update to use
7850 new interfaces.
7851 (add_deps_for_risky_insns): Ditto.
7852 (schedule_ebb): Remove separate computation of forward dependencies.
7853 Free dependencies at the end of scheduling the ebb.
7854
7855 * ddg.c (create_ddg_dependence): Update to use new interfaces.
7856 (build_intra_loop_deps): Ditto. Remove separate computation of
7857 forward dependencies. Free sched-deps dependencies.
7858
7859 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
7860 to use new interfaces.
7861 (ia64_dfa_new_cycle, ia64_gen_check): Ditto.
7862
7863 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
7864 new interfaces.
7865 (is_costly_group): Ditto.
7866
7867 2007-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7868
7869 * alias.c (rtx_equal_for_memref_p): Constify.
7870 * basic-block.h (const_edge, const_basic_block): New.
7871 (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
7872 single_pred_p, single_succ_edge, single_pred_edge, single_succ,
7873 single_pred, maybe_hot_bb_p, probably_cold_bb_p,
7874 probably_never_executed_bb_p, edge_probability_reliable_p,
7875 br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
7876 inside_basic_block_p, control_flow_insn_p, dominated_by_p):
7877 Likewise.
7878 * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
7879 * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
7880 Likewise.
7881 * cfganal.c (flow_active_insn_p, forwarder_block_p,
7882 flow_nodes_print, dfs_enumerate_from): Likewise.
7883 * cfgbuild.c (count_basic_blocks, inside_basic_block_p,
7884 control_flow_insn_p, count_basic_blocks): Likewise.
7885 * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
7886 get_loop_body_with_size, loop_exit_edge_p): Likewise.
7887 * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
7888 average_num_loop_insns, loop_exit_edge_p,
7889 just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
7890 * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
7891 average_num_loop_insns, seq_cost): Likewise.
7892 * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
7893 * dominance.c (dominated_by_p): Likewise.
7894 * emit-rtl.c (validate_subreg): Likewise.
7895 * except.c (can_throw_internal, can_throw_external): Likewise.
7896 * except.h (can_throw_internal, can_throw_external): Likewise.
7897 * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
7898 oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
7899 compute_transp, load_killed_in_block_p, reg_killed_on_edge,
7900 simple_mem, store_ops_ok, load_kills_store, find_loads,
7901 store_killed_in_insn, store_killed_after, store_killed_before,
7902 gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
7903 Likewise.
7904 * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
7905 noce_mem_write_may_trap_or_fault_p): Likewise.
7906 * pointer-set.c (pointer_set_contains, pointer_map_contains):
7907 Likewise.
7908 * pointer-set.h (pointer_set_contains, pointer_map_contains):
7909 Likewise.
7910 * predict.c (can_predict_insn_p, maybe_hot_bb_p,
7911 probably_cold_bb_p, probably_never_executed_bb_p,
7912 edge_probability_reliable_p, br_prob_note_reliable_p,
7913 can_predict_insn_p): Likewise.
7914 * regclass.c (reg_set_to_hard_reg_set): Likewise.
7915 * resource.c (return_insn_p): Likewise.
7916 * rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
7917 Likewise.
7918 * rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
7919 * tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
7920 * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
7921 verify_gimple_modify_stmt): Likewise.
7922 * tree-chrec.c (is_not_constant_evolution,
7923 is_multivariate_chrec_rec, is_multivariate_chrec,
7924 chrec_contains_symbols, chrec_contains_undetermined,
7925 tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
7926 evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
7927 eq_evolutions_p, scev_direction): Likewise.
7928 * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
7929 eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
7930 chrec_contains_symbols_defined_in_loop,
7931 chrec_contains_undetermined, tree_contains_chrecs,
7932 evolution_function_is_affine_multivariate_p,
7933 evolution_function_is_univariate_p, chrec_zerop,
7934 evolution_function_is_constant_p, evolution_function_is_affine_p,
7935 evolution_function_is_affine_or_constant_p,
7936 tree_does_not_contain_chrecs, chrec_type): Likewise.
7937 * tree-data-ref.c (tree_fold_divides_p,
7938 object_address_invariant_in_loop_p, dr_may_alias_p,
7939 ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
7940 same_access_functions, constant_access_functions,
7941 access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
7942 Likewise.
7943 * tree-flow.h (scev_direction): Likewise.
7944 * tree-gimple.c (is_gimple_stmt): Likewise.
7945 * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
7946 Likewise.
7947 * tree-pretty-print.c (op_prio): Likewise.
7948 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
7949 analyzable_condition, backedge_phi_arg_p): Likewise.
7950 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
7951 * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
7952 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
7953 Likewise.
7954
7955 2007-08-13 Dan Hipschman <dsh@google.com>
7956
7957 PR c/32953
7958 * c-format.c (check_format_arg): Move check for zero-length
7959 format strings below the check for unterminated strings.
7960
7961 2007-08-13 Andrew Pinski <pinskia@gmail.com>
7962
7963 PR C/30427
7964 * c-typeck.c (build_unary_op <case BIT_NOT_EXPR>): Reject vector float
7965 types.
7966
7967 2007-08-13 Nick Clifton <nickc@redhat.com>
7968
7969 * config/arm/arm_neon.h: Revert GPLv3 patch to this file.
7970
7971 2007-08-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7972
7973 PR fortran/32860
7974 * c-format.c (gcc_gfc_length_specs): New array.
7975 (gcc_gfc_char_table): Add unsigned specifier, and references to
7976 the l length modifier.
7977 (format_types_orig): Use the new gcc_gfc_length_specs.
7978
7979 2007-08-12 Sa Liu <saliu@de.ibm.com>
7980
7981 * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
7982 and with REG_RETVAL note after split.
7983
7984 2007-08-11 David Daney <ddaney@avtrex.com>
7985
7986 * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter
7987 as ATTRIBUTE_UNUSED.
7988
7989 2007-08-11 David Edelsohn <edelsohn@gnu.org>
7990 Segher Boessenkool <segher@kernel.crashing.org>
7991
7992 * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
7993 HAVE_LOCAL_CPU_DETECT not defined.
7994
7995 2007-08-11 Jan Hubicka <jh@suse.cz>
7996
7997 * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
7998 (cgraph_process_new_functions): Honor previous value of
7999 disregard_inline_limits.
8000 * ipa-inline.c (compute_inline_parameters): Likewise.
8001
8002 2007-08-11 Ian Lance Taylor <iant@google.com>
8003
8004 * alias.h (alias_set_type): Define new type.
8005 (ALIAS_SET_MEMORY_BARRIER): Use it.
8006 * rtl.h: Include alias.h.
8007 (struct mem_attrs): Use alias_set_type.
8008 * tree.h: Include alias.h
8009 (struct tree_type): Use alias_set_type.
8010 (struct tree_struct_field_tag): Likewise.
8011 (struct tree_decl_common): Likewise.
8012 * alias.c (struct alias_set_entry): Use alias_set_type.
8013 (get_alias_set_entry, alias_set_subset_of): Likewise.
8014 (alias_sets_conflict_p): Likewise.
8015 (alias_sets_must_conflict_p): Likewise.
8016 (objects_must_conflict_p): Likewise.
8017 (get_alias_set, new_alias_set): Likewise.
8018 (record_alias_subset, record_component_aliases): Likewise.
8019 (varargs_set, frame_set): Change to alias_set_type.
8020 (get_varargs_alias_set): Use alias_set_type.
8021 (get_frame_alias_set): Likewise.
8022 * builtins.c (setjmp_alias_set): Change to alias_set_type.
8023 * dse.c (struct store_info): Use alias_set_type.
8024 (struct read_info, struct clear_alias_mode_holder): Likewise.
8025 (clear_alias_set_lookup, canon_address): Likewise.
8026 (record_store, check_mem_read_rtx): Likewise.
8027 (dse_record_singleton_alias_set): Likewise.
8028 (dse_invalidate_singleton_alias_set): Likewise.
8029 * emit-rtl.c (get_mem_attrs): Likewise.
8030 (set_mem_attributes_minus_bitpos): Likewise.
8031 (set_mem_alias_set): Likewise.
8032 * expr.c (store_constructor_field, store_field): Likewise.
8033 * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
8034 * langhooks.c (lhd_get_alias_set): Likewise.
8035 * langhooks-def.h (lhd_get_alias_set): Likewise.
8036 * reload1.c (alter_reg): Likewise.
8037 * tree-flow.h (struct fieldoff): Likewise.
8038 * tree-ssa-alias.c (struct alias_map_d): Likewise.
8039 (may_alias_p, get_smt_for, create_sft): Likewise.
8040 * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
8041 * tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
8042 (merge_smts_into): Likewise.
8043 * varasm.c (const_alias_set): Likewise.
8044 * c-common.c (strict_aliasing_warning): Likewise.
8045 (c_common_get_alias_set): Likewise.
8046 * dse.h (dse_record_singleton_alias_set): Update declaration.
8047 (dse_invalidate_singleton_alias_set): Likewise.
8048 * emit-rtl.h (set_mem_alias_set): Likewise.
8049 * c-common.h (c_common_get_alias_set): Likewise.
8050 * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
8051 * print-tree.c (print_node): Likewise.
8052 * config/alpha/alpha.c (alpha_sr_alias_set): Change to
8053 alias_set_type.
8054 (alpha_setup_incoming_varargs): Use alias_set_type.
8055 * config/i386/i386.c (setup_incoming_varargs_64): Use
8056 alias_set_type.
8057 (setup_incoming_varargs_ms_64): Likewise.
8058 (ix86_GOT_alias_set): Likewise.
8059 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
8060 * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
8061 (set): Change to alias_set_type.
8062 (get_TOC_alias_set): Use alias_set_type.
8063 * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
8064 declaration.
8065 * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
8066 * config/sparc/sparc.c (sparc_sr_alias_set): Change to
8067 alias_set_type.
8068 (struct_value_alias_set): Likewise.
8069 * Makefile.in (GTFILES): Add $(srcdir)/alias.h.
8070
8071 2007-08-11 Richard Sandiford <richard@codesourcery.com>
8072
8073 * config/vxworks-dummy.h (TARGET_VXWORKS): Define.
8074 * config/vxworks.h (TARGET_VXWORKS): Override.
8075 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
8076 "mips" if TARGET_VXWORKS.
8077
8078 2007-08-11 Richard Sandiford <richard@codesourcery.com>
8079
8080 * calls.c (avoid_likely_spilled_reg): New function.
8081 (expand_call): Use it.
8082
8083 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8084
8085 * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings.
8086
8087 2007-08-10 Adam Nemet <anemet@caviumnetworks.com>
8088
8089 * config/mips/predicates.md (const_call_insn_operand): Invoke
8090 SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs.
8091
8092 2007-08-10 David Edelsohn <edelsohn@gnu.org>
8093
8094 PR target/33042
8095 * config/rs6000/driver-rs6000.c: Include link.h.
8096 Use ElfW instead of wordsize-specif typedef.
8097
8098 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8099
8100 * system.h (CONST_CAST): New.
8101 * c-decl.c (c_make_fname_decl): Use it.
8102 * c-lex.c (cb_ident, lex_string): Likewise.
8103 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
8104 * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1,
8105 give_switch, set_multilib_dir): Likewise.
8106 * gengtype-parse.c (string_seq, typedef_name): Likewise.
8107 * passes.c (execute_one_pass): Likewise.
8108 * prefix.c (update_path): Likewise.
8109 * pretty-print.c (pp_base_destroy_prefix): Likewise.
8110 * tree.c (build_string): Likewise.
8111
8112 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
8113
8114 * tree-flow-inline.h (is_exec_stmt): Remove.
8115 (is_label_stmt): Remove.
8116 * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and
8117 is_label_stmt.
8118
8119 2007-08-10 Andreas Krebbel <krebbel1@de.ibm.com>
8120
8121 * lower-subreg.c (resolve_shift_zext): Don't adjust
8122 src_reg_num for wordmode operands.
8123
8124 2007-08-10 Sandra Loosemore <sandra@codesourcery.com>
8125 David Ung <davidu@mips.com>
8126
8127 * config/mips/mips.c (TARGET_SCHED_INIT): Define.
8128 (TARGET_SCHED_REORDER2): Define.
8129 (mips_maybe_swap_ready): New.
8130 (mips_last_74k_agen_insn): New.
8131 (mips_74k_agen_init): New.
8132 (mips_74k_agen_reorder): New function to group loads and stores
8133 in the ready queue.
8134 (mips_sched_init): New.
8135 (mips_sched_reorder): Don't do initialization here. Call
8136 mips_74k_agen_reorder.
8137 (mips_variable_issue): Call mips_74k_agen_init.
8138
8139 2007-08-10 Aldy Hernandez <aldyh@redhat.com>
8140
8141 * tree-flow-inline.h (get_filename): Remove.
8142
8143 2007-08-10 Richard Sandiford <richard@codesourcery.com>
8144
8145 * config/mips/mips-protos.h (mips_address_insns): Add a boolean
8146 argument.
8147 (mips_fetch_insns): Delete in favor of...
8148 (mips_load_store_insns): ...this new function.
8149 * config/mips/mips.c (mips_address_insns): Add a boolean argument
8150 to say whether multiword moves _might_ be split.
8151 (mips_fetch_insns): Delete in favor of...
8152 (mips_load_store_insns): ...this new function.
8153 (mips_rtx_costs): Update the call to mips_address_insns.
8154 (mips_address_cost): Likewise.
8155 * config/mips/mips.md (length): Use mips_load_store_insns instead
8156 of mips_fetch_insns.
8157 * config/mips/constraints.md (R): Use mips_address_insns rather
8158 than mips_fetch_insns. Assume that the move never needs to be split.
8159
8160 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
8161
8162 * config/mips/mips.opt (mhard-float, msoft-float): Make these
8163 control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather
8164 than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT.
8165 * config/mips/mips.h (mips16_hard_float): Delete.
8166 (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these
8167 definitions, and replace with....
8168 (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define.
8169 * config/mips/mips.c (mips16_hard_float): Delete. Replace
8170 all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI).
8171 (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments.
8172 (override_options): Replace MASK_SOFT_FLOAT references with
8173 MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT
8174 and mips16_hard_float when TARGET_MIPS16.
8175
8176 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
8177
8178 PR c/32796
8179 * c-typeck.c (build_binary_op): Check for non pointer types before
8180 calling int_fits_type_p.
8181
8182 2007-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
8183
8184 PR middle-end/32813
8185 * fold-const.c (omit_one_operand): Return only the ommitted expression
8186 if the result is an empty statement.
8187 (pedantic_omit_one_operand): Likewise.
8188
8189 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
8190
8191 * c-typeck.c (readonly_error): Improve error for assignment.
8192
8193 * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus
8194 expression.
8195 (pp_c_expression): Ditto.
8196
8197 2007-08-09 Simon Baldwin <simonb@google.com>
8198
8199 * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous
8200 break that was preventing simplify_associative_operation() for xor.
8201
8202 2007-08-09 Sandra Loosemore <sandra@codesourcery.com>
8203 Nigel Stephens <nigel@mips.com>
8204
8205 * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO):
8206 Document change in interpretation of value from boolean to
8207 tri-state integer.
8208 * optabs.c (expand_ffs, expand_ctz): New functions to compute
8209 ffs and ctz using clz.
8210 (expand_unop): Call them.
8211 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its
8212 result value.
8213 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
8214 * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to
8215 enable the new ffs expansion on this target.
8216
8217 2007-08-09 Jan Hubicka <jh@suse.cz>
8218
8219 * optabs.c (expand_widen_pattern_expr): Use optabs accestors.
8220 (expand_ternary_op): Likewise.
8221 (expand_vec_shift_expr): Likewise.
8222 (expand_binop_directly): Likewise.
8223 (expand_binop): Likewise.
8224 (sign_expand_binop): Likewise.
8225 (expand_twoval_unop): Likewise.
8226 (expand_twoval_binop): Likewise.
8227 (expand_twoval_binop_libfunc): Likewise.
8228 (widen_clz): Likewise.
8229 (widen_bswap): Likewise.
8230 (expand_parity): Likewise.
8231 (expand_unop): Likewise.
8232 (expand_abs_nojump): Likewise.
8233 (expand_copysign): Likewise.
8234 (emit_no_conflict_block): Likewise.
8235 (emit_libcall_block): Likewise.
8236 (can_compare_p): Likewise.
8237 (prepare_cmp_insn): Likewise.
8238 (emit_cmp_and_jump_insn_1): Likewise.
8239 (prepare_float_lib_cmp): Likewise.
8240 (emit_conditional_add): Likewise.
8241 (gen_add2_insn): Likewise.
8242 (have_add2_insn): Likewise.
8243 (gen_sub2_insn): Likewise.
8244 (have_sub2_insn): Likewise.
8245 (can_extend_p): Likewise.
8246 (can_fix_p): Likewise.
8247 (can_float_p): Likewise.
8248 (expand_float): Likewise.
8249 (expand_fix): Likewise.
8250 (expand_sfix_optab): Likewise.
8251 (new_optab): Likewise.
8252 (new_convert_optab): Likewise.
8253 (init_libfuncs): Likewise.
8254 (init_interclass_conv_libfuncs): Likewise.
8255 (init_intraclass_conv_libfuncs): Likewise.
8256 (set_conv_libfunc): Likewise.
8257 (init_optabs): Likewise.
8258 (debug_optab_libfuncs): Likewise.
8259 (gen_cond_trap): Likewise.
8260 * optabs.h (optab_handler, convert_optab_hanlder): New.
8261 * genopinit.c: Update optabs generation table.
8262 * reload.c (find_reloads_address_1): Use optabs accestors.
8263 * builtins.c (expand_builtin_mathfn): Likewise.
8264 (expand_builtin_mathfn_2): Likewise.
8265 (expand_builtin_mathfn_3): Likewise.
8266 (expand_builtin_interclass_mathfn): Likewise.
8267 (expand_builtin_sincos): Likewise.
8268 (expand_builtin_cexpi): Likewise.
8269 (expand_builtin_powi): Likewise.
8270 (expand_builtin_strlen): Likewise.
8271 * dojump.c (do_jump): Likewise.
8272 * expr.c (convert_move): Likewise.
8273 (move_by_pieces): Likewise.
8274 (move_by_pieces_ninsns): Likewise.
8275 (can_store_by_pieces): Likewise.
8276 (store_by_pieces_1): Likewise.
8277 (emit_move_via_integer): Likewise.
8278 (emit_move_complex): Likewise.
8279 (emit_move_ccmode): Likewise.
8280 (emit_move_insn_1): Likewise.
8281 (emit_single_push_insn): Likewise.
8282 (store_constructor): Likewise.
8283 (expand_expr_real_1): Likewise.
8284 (do_store_flag): Likewise.
8285 * ada/misc.c (gnat_compute_largest_alignment): Likewise.
8286 (enumerate_modes): Likewise.
8287 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
8288 (supportable_widening_operation): Likewise.
8289 (supportable_narrowing_operation): Likewise.
8290 * expmed.c (store_bit_field_1): Likewise.
8291 (extract_bit_field_1): Likewise.
8292 (expand_mult_highpart_optab): Likewise.
8293 (expand_smod_pow2): Likewise.
8294 (expand_divmod): Likewise.
8295 (emit_store_flag): Likewise.
8296 * tree-vect-patterns.c
8297 (vect_pattern_recog_1): Likewise.
8298 * tree-ssa-loop-prefetch.c
8299 (nontemporal_store_p): Likewise.
8300 * tree-vect-transform.c (vect_model_reduction_cost): Likewise.
8301 (vect_create_epilog_for_reduction): Likewise.
8302 (vectorizable_reduction): Likewise.
8303 (vectorizable_operation): Likewise.
8304 (vect_strided_store_supported): Likewise.
8305 (vectorizable_store): Likewise.
8306 (vect_strided_load_supported): Likewise.
8307 (vectorizable_load): Likewise.
8308 * combine.c (simplify_comparison): Likewise.
8309 * tree-vect-generic.c
8310 (type_for_widest_vector_mode): Likewise.
8311 (expand_vector_operations_1): Likewise.
8312 * config/spu/spu.c (spu_expand_mov): Likewise.
8313 (spu_emit_vector_compare): Likewise.
8314 * config/rs6000/rs6000.c
8315 (rs6000_emit_vector_compare): Likewise.
8316 * stmt.c (add_case_node): Likewise.
8317 * reload1.c (gen_reload):
8318
8319 2007-08-09 Michael Matz <matz@suse.de>
8320
8321 * tree.h (fixed_zerop): Declare as taking a const_tree.
8322 * tree.c (fixed_zerop): Take a const_tree.
8323
8324 2007-08-09 Ira Rosen <irar@il.ibm.com>
8325
8326 * tree-vect-transform.c (vectorizable_store): Remove call to
8327 copy_virtual_operands() and call mark_symbols_for_renaming() for
8328 the created vector store.
8329 (vect_setup_realignment): Don't call copy_virtual_operands() and
8330 update_vuses_to_preheader().
8331 (vectorizable_load): Don't call copy_virtual_operands().
8332 (update_vuses_to_preheader): Remove.
8333
8334 2007-08-08 Chao-ying Fu <fu@mips.com>
8335
8336 * tree.def (FIXED_POINT_TYPE): New type.
8337 (FIXED_CST): New constant.
8338 (FIXED_CONVERT_EXPR): New expr.
8339 * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE.
8340 (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR.
8341 * tree.h (struct tree_base): Add saturating_flag.
8342 Remove one bit of spare for saturating_flag.
8343 (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE.
8344 (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P,
8345 FIXED_POINT_TYPE_P): Define.
8346 (TYPE_SATURATING): Define.
8347 (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define.
8348 (struct tree_fixed_cst): New.
8349 (TYPE_IBIT, TYPE_FBIT): Define.
8350 (tree_node): Add fixed_cst.
8351 (enum tree_index): Add new enumeration values of
8352 TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE,
8353 TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE,
8354 TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE,
8355 TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE,
8356 TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE,
8357 TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE,
8358 TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE,
8359 TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE,
8360 TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE,
8361 TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE,
8362 TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE,
8363 TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE,
8364 TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE,
8365 TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE,
8366 TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE,
8367 TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE,
8368 TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE,
8369 TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE.
8370 (sat_short_fract_type_node, sat_fract_type_node,
8371 sat_long_fract_type_node, sat_long_long_fract_type_node,
8372 sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node,
8373 sat_unsigned_long_fract_type_node,
8374 sat_unsigned_long_long_fract_type_node, short_fract_type_node,
8375 fract_type_node, long_fract_type_node, long_long_fract_type_node,
8376 unsigned_short_fract_type_node, unsigned_fract_type_node,
8377 unsigned_long_fract_type_node, unsigned_long_long_fract_type_node,
8378 sat_short_accum_type_node, sat_accum_type_node,
8379 sat_long_accum_type_node, sat_long_long_accum_type_node,
8380 sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node,
8381 sat_unsigned_long_accum_type_node,
8382 sat_unsigned_long_long_accum_type_node, short_accum_type_node,
8383 accum_type_node, long_accum_type_node, long_long_accum_type_node,
8384 unsigned_short_accum_type_node, unsigned_accum_type_node,
8385 unsigned_long_accum_type_node, unsigned_long_long_accum_type_node,
8386 qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node,
8387 uqq_type_node, uhq_type_node, usq_type_node, udq_type_node,
8388 utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node,
8389 sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node,
8390 sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node,
8391 sat_utq_type_node, ha_type_node, sa_type_node, da_type_node,
8392 ta_type_node, uha_type_node, usa_type_node, uda_type_node,
8393 uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node,
8394 sat_ta_type_node, sat_uha_type_node, sat_usa_type_node,
8395 sat_uda_type_node, sat_uta_type_node): New macro.
8396 (make_fract_type, make_accum_type): Declare.
8397 (make_signed_fract_type, make_unsigned_fract_type,
8398 make_sat_signed_fract_type, make_sat_unsigned_fract_type,
8399 make_signed_accum_type, make_unsigned_accum_type,
8400 make_sat_signed_accum_type, make_sat_unsigned_accum_type,
8401 make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type,
8402 make_or_reuse_sat_signed_fract_type,
8403 make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type,
8404 make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type,
8405 make_or_reuse_sat_unsigned_accum_type): New macro.
8406 (fixed_zerop): Declare.
8407 * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE,
8408 LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
8409 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
8410 LONG_LONG_ACCUM_TYPE_SIZE): Define.
8411 * treestruct.def: Add TS_FIXED_CST.
8412 * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h.
8413 (tree.o): Likewise.
8414 (tree-dump.o): Likewise.
8415 (print-tree.o): Likewise.
8416 (tree-pretty-print.o): Likewise.
8417 (fold-const.o): Likewise.
8418 * tree-complex.c (some_nonzerop): Handle FIXED_CST.
8419 * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST.
8420 (is_gimple_min_invariant): Handle FIXED_CST.
8421 * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT,
8422 MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
8423 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
8424 (layout_type): Handle FIXED_POINT_TYPE.
8425 (make_fract_type, make_accum_type): New functions.
8426 * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE.
8427 * tree-dump.c (fixed-value.h): New include.
8428 (dump_fixed): New function.
8429 (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST.
8430 * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE.
8431 (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR.
8432 * tree-pretty-print.c (fixed-value.h): New include.
8433 (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and
8434 FIXED_CONVERT_EXPR.
8435 * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST.
8436 * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST.
8437 * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST.
8438 * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation
8439 for non-saturating fixed-point types.
8440 (reassociate_bb): Likewise.
8441 * emit-rtl.c (fixed-value.h): New include.
8442 (fconst0, fconst1): New array.
8443 (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes.
8444 * tree-vect-generic.c expand_vector_operation): Support
8445 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and
8446 MODE_VECTOR_UACCUM.
8447 (type_for_widest_vector_mode): Add one parameter for the
8448 saturating flag.
8449 Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their
8450 vector mode.
8451 Pass the satp parameter to type_for_mode for fixed-point types.
8452 (expand_vector_operations_1): Pass the saturating flag to
8453 type_for_widest_vector_mode.
8454 Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
8455 and MODE_VECTOR_UACCUM.
8456 * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST.
8457 (vectorizable_condition): Likewise.
8458 * tree.c (fixed-value.h): New include.
8459 (tree_code_size): Support FIXED_CST.
8460 (build_fixed): New function.
8461 (build_one_cst): Support FIXED_POINT_TYPE for accum types.
8462 (fixed_zerop): New function.
8463 (tree_node_structure): Support FIXED_CST.
8464 (type_contains_placeholder_1): Support FIXED_POINT_TYPE.
8465 (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE.
8466 (type_hash_eq): Handle FIXED_POINT_TYPE.
8467 (simple_cst_equal): Support FIXED_CST.
8468 (iterative_hash_expr): Handle FIXED_CST.
8469 (get_unwidened): Make sure type is not FIXED_POINT_TYPE.
8470 (get_narrower): Likewise.
8471 (variably_modified_type_p): Handle FIXED_POINT_TYPE.
8472 (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions.
8473 (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and
8474 MAKE_FIXED_MODE_NODE macros to initialize fixed-point type
8475 nodes.
8476 (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT,
8477 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
8478 (initializer_zerop): Support FIXED_CST.
8479 (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE.
8480 * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or
8481 DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE.
8482 (is_base_type): Handle FIXED_POINT_TYPE.
8483 (add_type_attribute): Handle FIXED_POINT_TYPE.
8484 (gen_type_die_with_usage): Handle FIXED_POINT_TYPE.
8485 * print-tree.c (fixed-value.h): New include.
8486 (print_node_brief): Support FIXED_CST.
8487 (print_node): Support FIXED_POINT_TYPE and FIXED_CST.
8488 * c-pretty-print.c (fixed-value.h): New include.
8489 (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass
8490 TYPE_SATURATING to c_common_type_for_mode for fixed-point modes.
8491 (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE.
8492 Support fixed-point types for inner items in VECTOR_TYPE.
8493 (pp_c_direct_declarator): Likewise.
8494 (pp_c_declarator): Likewise.
8495 (pp_c_fixed_constant): New function.
8496 (pp_c_constant): Handle FIXED_CST.
8497 (pp_c_primary_expression): Likewise.
8498 (pp_c_expression): Likewise.
8499 * fold-const.c (fixed-value.h): New include.
8500 (negate_expr_p): Return true for FIXED_CST.
8501 (fold_negate_expr): Support FIXED_CST.
8502 (split_tree): Support FIXED_CST.
8503 (const_binop): Support FIXED_CST.
8504 (fold_convert_const_int_from_fixed): New function to convert from
8505 fixed to int.
8506 (fold_convert_const_real_from_fixed): New function to convert from
8507 fixed to real.
8508 (fold_convert_const_fixed_from_fixed): New function to convert from
8509 fixed to another fixed.
8510 (fold_convert_const_fixed_from_int): New function to convert from
8511 int to fixed.
8512 (fold_convert_const_fixed_from_real): New function to convert from
8513 real to fixed.
8514 (fold_convert_const): Support conversions from fixed to int, from
8515 fixed to real, from fixed to fixed, from int to fixed, and from real
8516 to fixed.
8517 (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE.
8518 (operand_equal_p): Support FIXED_CST.
8519 (make_range): For fixed-point modes, we need to pass the
8520 saturating flag as the 2nd parameter.
8521 (tree_swap_operands_p): Handle FIXED_CST.
8522 (fold_plusminus_mult_expr): For fract modes, we cannot generate
8523 constant 1.
8524 (fold_unary): Support FIXED_CONVERT_EXPR.
8525 (fold_binary): Handle FIXED_CST.
8526 Make sure the type is not saturating, before associating operations.
8527 Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2).
8528 (tree_expr_nonnegative_warnv_p): Handle FIXED_CST.
8529 (fold_negate_const): Support FIXED_CST.
8530 (fold_relational_const): Support FIXED_CST.
8531 * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE.
8532 (gimplify_expr): Handle FIXED_CST.
8533 (gimplify_type_sizes): Handle FIXED_POINT_TYPE.
8534 * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST.
8535 * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE.
8536 * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE,
8537 FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE,
8538 SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE,
8539 LONG_LONG_ACCUM_TYPE_SIZE.
8540 * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE.
8541 * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE.
8542 * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE.
8543 * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT,
8544 MODE_ACCUM, and MODE_UACCUM.
8545 * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating
8546 fixed-point types to disable reduction.
8547 * explow.c (promote_mode): Support FIXED_POINT_TYPE.
8548
8549 2007-08-08 David Edelsohn <edelsohn@gnu.org>
8550
8551 * config/rs6000/x-rs6000: New file.
8552 * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu.
8553 * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu.
8554 (EXTRA_SPEC_FUNCTIONS): Define.
8555 (HAVE_LOCAL_CPU_DETECT): Define.
8556 (CC1_CPU_SPEC): Define.
8557 * config/rs6000/driver-rs6000.c: New file.
8558 * config/rs6000/aix.h (CC1_SPEC): Define.
8559 * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu.
8560 * config.host: Add x-rs6000 to host_xmake_file if host and target
8561 are rs6000 or powerpc.
8562
8563 2007-08-08 Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
8564
8565 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=.
8566
8567 2007-08-08 Richard Sandiford <richard@codesourcery.com>
8568 Sandra Loosemore <sandra@codesourcery.com>
8569 Chao-ying Fu <fu@mips.com>
8570 Nigel Stephens <nigel@mips.com>
8571 David Ung <davidu@mips.com>
8572
8573 * doc/invoke.texi (-mcode-readable): Document.
8574 * config/mips/mips.opt (mcode-readable): New option.
8575 * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type.
8576 * config/mips/mips.h (mips_code_readable_setting): New enum.
8577 (mips_code_readable): Declare.
8578 (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros.
8579 (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro.
8580 (JUMP_TABLES_IN_TEXT_SECTION): Use it.
8581 (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove
8582 boiler-plate comments.
8583 (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
8584 * config/mips/mips.c (mips_code_readable): New variable.
8585 (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for
8586 MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the
8587 context and -mcode-readable setting to restrict the use of
8588 SYMBOL_PC_RELATIVE for MIPS16 constant pool references.
8589 Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed.
8590 (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH.
8591 (mips_blocks_for_constant_p): Only return false for
8592 TARGET_MIPS16_PCREL_LOADS.
8593 (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions
8594 for MIPS16. Handle SYMBOL_32_HIGH.
8595 (mips_const_insns): Allow HIGHs for MIPS16 too.
8596 (mips_unspec_address_offset): New function, split out from...
8597 (mips_unspec_address): ...here.
8598 (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load
8599 16-bit symbolic constants. Assert approropiate conditions for
8600 using the "la" and "dla" macros.
8601 (mips_handle_option): Handle -mcode-readable=.
8602 (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too.
8603 Set up mips_lo_relocs[SYMBOL_32_HIGH].
8604 (mips_strip_unspec_address): New function, split out from...
8605 (print_operand_reloc): ...here.
8606 (print_operand): Pass constants through mips_strip_unspec_address.
8607 (print_operand_address): Likewise.
8608 (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants.
8609 (mips_select_rtx_section): Remove MIPS16 handling.
8610 (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl.
8611 (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC.
8612 (mips16_lay_out_constants): Do nothing unless
8613 TARGET_MIPS16_PCREL_LOADS.
8614 (mips_avoid_hazards): Remove guard of mips16_lay_out_constants.
8615 * config/mips/mips.md: Split HIGHs for MIPS16.
8616 (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES.
8617
8618 2007-08-08 Richard Sandiford <richard@codesourcery.com>
8619
8620 * config/mips/mips-protos.h (mips_emit_move): Declare.
8621 * config/mips/mips.c (mips_emit_move): New function.
8622 (mips_force_temporary): Use mips_emit_move instead of emit_move_insn.
8623 (mips_legitimize_const_move): Likewise.
8624 (mips_legitimize_move): Likewise.
8625 (mips_split_64bit_move): Likewise.
8626 (mips_restore_gp): Likewise.
8627 (mips_load_call_address): Likewise.
8628 (mips_emit_fcc_reload): Likewise.
8629 (mips_set_return_address): Likewise.
8630 (mips_block_move_straight): Likewise.
8631 (mips_block_move_loop): Likewise.
8632 (mips_setup_incoming_varargs): Likewise.
8633 (mips_save_reg): Likewise.
8634 (mips_expand_prologue): Likewise.
8635 (mips_restore_reg): Likewise.
8636 (mips_expand_epilogue): Likewise.
8637 (mips_output_mi_thunk): Likewise.
8638 (build_mips16_call_stub): Likewise.
8639 (mips_builtin_branch_and_move): Likewise.
8640 * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise.
8641 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
8642 (fixuns_truncdfdi2): Likewise.
8643 (fixuns_truncsfsi2): Likewise.
8644 (fixuns_truncsfdi2): Likewise.
8645 (loadgp_absolute): Likewise.
8646 (builtin_setjmp_setup): Likewise.
8647 (builtin_longjmp): Likewise.
8648 (untyped_call): Likewise.
8649
8650 2007-08-08 Richard Sandiford <richard@codesourcery.com>
8651
8652 * config/mips/mips-protos.h (mips_split_symbol): Add a mode and
8653 an "rtx *" argument. Return a bool.
8654 * config/mips/mips.c (mips_split_symbol): Accept arbitrary source
8655 values and return true if they can be split. Take the same kind of
8656 mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter
8657 and store the lo_sum there if nonnull. Use the symbol type to
8658 determine whether a $gp or HIGH is needed.
8659 (mips_legitimize_address): Update call to mips_split_symbol and
8660 simplify accordingly.
8661 (mips_legitimize_const_move): Likewise.
8662 * config/mips/mips.md: In the combine define_split,
8663 check mips_split_symbol instead of splittable_symbolic_operand.
8664 Update use of mips_split_symbol in the generator code.
8665 * config/mips/predicates.md (splittable_symbolic_operand): Delete.
8666
8667 2007-08-08 Richard Sandiford <richard@codesourcery.com>
8668
8669 * config/mips/mips.c (mips_symbolic_address_p): Delete.
8670 (mips_symbol_insns_1): New function, split out from...
8671 (mips_symbol_insns): ...here. Take a mode argument. Treat loads
8672 and stores separately from load addresses.
8673 (mips_classify_address): Replace uses of mips_symbolic_address_p
8674 with uses of mips_symbol_insns.
8675 (mips_address_insns): Update calls to mips_symbol_insns.
8676 (mips_const_insns): Likewise.
8677 (mips_legitimize_address): Likewise.
8678
8679 2007-08-08 Richard Sandiford <richard@codesourcery.com>
8680
8681 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type.
8682 * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS
8683 block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS.
8684 Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for
8685 non-call contexts if TARGET_MIPS16.
8686 (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM.
8687 (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16
8688 code for SYMBOL_ABSOLUTE.
8689 (mips_symbol_insns): Likewise.
8690
8691 2007-08-08 Richard Sandiford <richard@codesourcery.com>
8692
8693 * config/mips/mips-protos.h (mips_symbol_context): New enumeration.
8694 * config/mips/mips.c (mips_classify_symbol): Take a context argument.
8695 (mips_symbolic_constant_p): Likewise. Update the call to
8696 mips_classify_symbol.
8697 (mips_classify_address): Update the calls to mips_symbolic_constant_p.
8698 (mips_const_insns): Likewise. Update the call to mips_classify_symbol.
8699 (mips_legitimize_address): Update the call to mips_symbolic_constant_p.
8700 (print_operand_reloc): Add a context argument. Update the call to
8701 mips_symbolic_constant_p.
8702 (print_operand): Update the calls to print_operand_reloc.
8703 (print_operand_address): Use print_operand_reloc rather than
8704 print_operand.
8705 (mips_rewrite_small_data_p): Add a context argument. Update the call
8706 to mips_symbolic_constant_p.
8707 (mips_small_data_pattern_1): Make DATA the containing mem.
8708 Update the call to mips_rewrite_small_data_p.
8709 (mips_rewrite_small_data_1): Likewise.
8710 (mips_use_anchors_for_symbol_p): Update the call to
8711 mips_symbolic_constant_p.
8712 * config/mips/predicates.md (const_call_insn_operand): Likewise.
8713 (splittable_symbolic_operand): Likewise.
8714 (move_operand): Likewise.
8715 (absolute_symbolic_operand): Likewise.
8716 (got_disp_operand): Likewise.
8717 (got_page_ofst_operand): Likewise.
8718
8719 2007-08-08 Richard Sandiford <richard@codesourcery.com>
8720
8721 * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to...
8722 (SYMBOL_ABSOLUTE): ...this.
8723 (SYMBOL_SMALL_DATA): Rename to...
8724 (SYMBOL_GP_RELATIVE): ...this.
8725 (SYMBOL_CONSTANT_POOL): Rename to...
8726 (SYMBOL_PC_RELATIVE): ...this.
8727 * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p)
8728 (mips_symbolic_address_p, mips_symbol_insns, override_options)
8729 (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update
8730 after above changes.
8731 * config/mips/predicates.md (const_call_insn_operand): Likewise.
8732 (general_symbolic_operand): Rename to...
8733 (absolute_symbolic_operand): ...this.
8734 * config/mips/mips.md: Update after above changes.
8735
8736 2007-08-08 Vladimir Yanovsky <yanov@il.ibm.com>
8737 Revital Eres <eres@il.ibm.com>
8738
8739 * ddg.c (print_ddg): Add dump information.
8740 * modulo-sched.c (print_node_sched_params): Add parameter and
8741 verbosity.
8742 (calculate_maxii): Remove function.
8743 (undo_generate_reg_moves): Likewise.
8744 (undo_permute_partial_schedule): Likewise.
8745 (kernel_number_of_cycles): Likewise.
8746 (MAXII_FACTOR): New definition to calculate the upper bound of II.
8747 (sms_schedule): Use it. Remove profitability checks.
8748 (sms_schedule_by_order): Fix order of nodes within the cycle.
8749
8750 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
8751
8752 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add
8753 -profile option, add pie support.
8754 (ENDFILE_SPEC): New spec.
8755 * config/gnu.h (LIB_SPEC): Add -profile option.
8756
8757 2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
8758
8759 * config/i386/gnu.h (CPP_SPEC): Add -pthread option.
8760 * config/gnu.h (LIB_SPEC): Likewise.
8761
8762 2007-08-07 Yaz Saito <saito@google.com>
8763 Ian Lance Taylor <iant@google.com>
8764
8765 * common.opt (finstrument-functions-exclude-function-list): New
8766 option.
8767 (finstrument-functions-exclude-file-list): New option.
8768 * opts.c (char_p): Define and DEF_VEC.
8769 (flag_instrument_functions_exclude_functions): New static
8770 variable.
8771 (flag_instrument_functions_exclude_files): New static variable.
8772 (add_instrument_functions_exclude_list): New static function.
8773 (flag_instrument_functions_exclude_p): New function.
8774 (common_handle_option): Handle new options.
8775 * flags.h (flag_instrument_functions_exclude_p): Declare.
8776 * gimplify.c (gimplify_function_tree): Call
8777 flag_instrument_functions_exclude_p.
8778 * doc/invoke.texi (Option Summary): Mention new options.
8779 (Code Gen Options): Document new options.
8780
8781 2007-08-07 Ian Lance Taylor <iant@google.com>
8782
8783 PR rtl-optimization/32776
8784 * lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
8785 (resolve_use): Likewise.
8786 (decompose_multiword_subregs): Remove "changed" local variable.
8787
8788 2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
8789
8790 * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
8791 * configure: Regenerate.
8792 * config.in: Regenerate.
8793 * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
8794 spec string.
8795
8796 2007-08-07 Ian Lance Taylor <iant@google.com>
8797
8798 * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
8799 note, just delete the insn.
8800
8801 2007-08-07 Andreas Schwab <schwab@suse.de>
8802
8803 PR bootstrap/32973
8804 * gengtype-lex.l: Ignore backslash/newline pair while scanning a
8805 struct definition.
8806
8807 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
8808
8809 * lower-subreg.c (resolve_subreg_use): Remove assertion.
8810 (find_decomposable_shift_zext, resolve_shift_zext): New functions.
8811 (decompose_multiword_subregs): Use the functions above to decompose
8812 multiword shifts and zero-extends.
8813
8814 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
8815
8816 * doc/sourcebuild.texi (Test Directives): Fix "compile" and
8817 "assemble" descriptions which were swapped.
8818
8819 2007-08-06 Chao-ying Fu <fu@mips.com>
8820
8821 * fixed-value.h: New file.
8822 * fixed-value.c: New file.
8823 * Makefile.in (OBJS-common): Add fixed-value.o.
8824 (fixed-value.o): New rule.
8825 (GTFILES): Add fixed-value.h.
8826 * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
8827 to compare a.low and b.low.
8828 * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
8829
8830 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
8831 Daniel Jacobowitz <dan@codesourcery.com>
8832
8833 PR target/31868
8834 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
8835 tmake_file.
8836 (x86_64-*-netbsd*): Likewise.
8837 (x86_64-*-linux*): Likewise.
8838 (x86_64-*-kfreebsd*-gnu): Likewise.
8839 (x86_64-*-knetbsd*-gnu): Likewise.
8840 (i[34567]86-*-solaris2.1[0-9]*): Likewise.
8841
8842 * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
8843
8844 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
8845 Add -fno-asynchronous-unwind-tables.
8846
8847 * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
8848 * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
8849 * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
8850 * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
8851 * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
8852
8853 2007-08-06 Steve Ellcey <sje@cup.hp.com>
8854
8855 * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
8856 (TARGET_C_MODE_FOR_SUFFIX): New.
8857
8858 2007-08-06 Steve Ellcey <sje@cup.hp.com>
8859
8860 * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
8861
8862 2007-08-06 Steve Ellcey <sje@cup.hp.com>
8863
8864 * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
8865
8866 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
8867
8868 * config/i386/i386.md: Check TARGET_ macros and optimize_size
8869 before checking function returns in conditional expressions.
8870
8871 2007-08-06 Alfred Minarik <a.minarik@aon.at>
8872
8873 PR pch/13676
8874 * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
8875
8876 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
8877
8878 PR middle-end/32988
8879 * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
8880 for INTEGRAL_TYPE_P.
8881
8882 2008-08-05 Paolo Bonzini <bonzini@gnu.org>
8883
8884 * configure.ac: Remove --enable-checking=df from default settings.
8885 * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance.
8886 * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
8887 if the parameter is true.
8888 (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
8889 DF_VERIFY_SCHEDULED flag is true.
8890 * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
8891 (df_finish_pass): Adjust prototype.
8892 * passes.c (execute_todo): Schedule verification if TODO_df_verify is
8893 true.
8894
8895 * see.c (pass_see): Add TODO_df_verify.
8896 * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
8897 * global.c (rest_of_handle_global_alloc): Schedule verification
8898 after the pass.
8899 * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
8900 before the pass.
8901 * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
8902 * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
8903 * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
8904
8905 * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
8906 * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
8907 * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
8908
8909 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com>
8910 Revital Eres <eres@il.ibm.com>
8911
8912 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
8913 flag.
8914 * ddg.c (create_ddg_dependence): Rename to...
8915 (create_ddg_dep_from_intra_loop_link): This. Do not check
8916 for interloop edges. Do not create anti dependence edge when
8917 a true dependence edge exists in the opposite direction and
8918 -fmodulo-sched-allow-regmoves is set.
8919 (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
8920 (add_cross_iteration_register_deps): Create anti dependence edge
8921 when -fno-modulo-sched-allow-regmoves is set.
8922 * common.opt (-fmodulo-sched-allow-regmoves): New flag.
8923
8924 2007-08-04 Richard Sandiford <richard@codesourcery.com>
8925
8926 * config/arm/arm.md (movsi): Add braces.
8927
8928 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
8929
8930 PR middle-end/32780
8931 * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of
8932 operands for the folding of "A - (A & B)" into "~B & A"; cast them
8933 to type.
8934
8935 2007-08-03 Zdenek Dvorak <ook@ucw.cz>
8936
8937 * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops'
8938 state accessor functions.
8939 * cfgloopmanip.c (remove_path, create_preheaders,
8940 force_single_succ_latches, fix_loop_structure): Ditto.
8941 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
8942 tree_duplicate_loop_to_header_edge): Ditto.
8943 * cfgloopanal.c (mark_irreducible_loops): Ditto.
8944 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
8945 Ditto.
8946 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
8947 cleanup_tree_cfg): Ditto.
8948 * tree-cfg.c (tree_merge_blocks): Ditto.
8949 * cfgloop.c (rescan_loop_exit, record_loop_exits,
8950 release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
8951 loop_preheader_edge, single_exit): Ditto.
8952 (flow_loops_find): Do not clear loops->state.
8953 * cfgloop.h (loops_state_satisfies_p, loops_state_set,
8954 loops_state_clear): New functions.
8955
8956 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
8957
8958 PR middle-end/32399
8959 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
8960 when adding to the base and convert ELT to sizetype instead of type.
8961
8962 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
8963
8964 PR middle-end/32304
8965 * ipa-reference.c (has_proper_scope_for_analysis): Return false when
8966 the decl's type has TYPE_NEEDS_CONSTRUCTING set.
8967
8968 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
8969
8970 PR middle-end/32935
8971 * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
8972 correct type the negate expression.
8973
8974 2007-08-03 Jan Hubicka <jh@suse.cz>
8975
8976 * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
8977 stack boundary.
8978
8979 2007-08-03 David Edelsohn <edelsohn@gnu.org>
8980
8981 * config/rs6000/rs6000.c (struct processor_cost): Change
8982 l1_cache_lines to l1_cache_size. Add l2_cache_size.
8983 (*_cost): Convert l1 cache information to kilobytes. Add l2 cache
8984 information.
8985 (rios1_costs, rios2_cost): Correct cache line size.
8986 (rs6000_override_options): Set l2-cache-size parameter.
8987
8988 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
8989 Diego Novillo <dnovillo@google.com>
8990
8991 PR 31521
8992 * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
8993 if the range includes 0.
8994
8995 2007-08-03 Ben Elliston <bje@au.ibm.com>
8996
8997 * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
8998 mode to unspec expressions to silence a warning from the generator
8999 programs.
9000
9001 2007-08-02 Steve Ellcey <sje@cup.hp.com>
9002
9003 * config/ia64/constraints.md ("U"): Make constraint vector only.
9004
9005 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
9006
9007 PR middle-end/25446
9008 * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
9009 always_inline attribute on the function decl.
9010
9011 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
9012
9013 PR middle-end/25445
9014 * varasm.c (default_binds_local_p_1): Consult flag_whole_program
9015 if we are compiling with -fPIC.
9016
9017 2007-08-02 Sandra Loosemore <sandra@codesourcery.com>
9018 Nigel Stephens <nigel@mips.com>
9019
9020 * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
9021 Define for MIPS32 and MIPS64.
9022
9023 2007-08-02 Nick Clifton <nickc@redhat.com>
9024
9025 * config/host-hpux.c: Change copyright header to refer to version
9026 3 of the GNU General Public License and to point readers at the
9027 COPYING3 file and the FSF's license web page.
9028 * config/alpha/predicates.md, config/alpha/vms-ld.c,
9029 config/alpha/linux.h, config/alpha/alpha.opt,
9030 config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
9031 config/alpha/vms-unwind.h, config/alpha/ev4.md,
9032 config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
9033 config/alpha/alpha.h, config/alpha/sync.md,
9034 config/alpha/openbsd.h, config/alpha/alpha.md,
9035 config/alpha/alpha-modes.def, config/alpha/ev5.md,
9036 config/alpha/alpha-protos.h, config/alpha/freebsd.h,
9037 config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
9038 config/alpha/constraints.md, config/alpha/osf.h,
9039 config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
9040 config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
9041 config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
9042 config/frv/frv-asm.h, config/frv/frv-protos.h,
9043 config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
9044 config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
9045 config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
9046 config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
9047 config/s390/s390.opt, config/s390/s390-modes.def,
9048 config/s390/fixdfdi.h, config/s390/constraints.md,
9049 config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
9050 config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
9051 config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
9052 config/m32c/m32c-pragma.c, config/m32c/m32c.h,
9053 config/m32c/prologue.md, config/m32c/m32c.abi,
9054 config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
9055 config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
9056 config/m32c/t-m32c, config/m32c/m32c-modes.def,
9057 config/m32c/jump.md, config/m32c/shift.md,
9058 config/m32c/m32c-protos.h, config/libgloss.h,
9059 config/spu/spu-protos.h, config/spu/predicates.md,
9060 config/spu/spu-builtins.h, config/spu/spu.c,
9061 config/spu/spu-builtins.def, config/spu/spu-builtins.md,
9062 config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
9063 config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
9064 config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
9065 config/sparc/hypersparc.md, config/sparc/predicates.md,
9066 config/sparc/linux.h, config/sparc/sp64-elf.h,
9067 config/sparc/supersparc.md, config/sparc/cypress.md,
9068 config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
9069 config/sparc/niagara.md, config/sparc/sparc.md,
9070 config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
9071 config/sparc/sparc.opt, config/sparc/sync.md,
9072 config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
9073 config/sparc/ultra1_2.md, config/sparc/biarch64.h,
9074 config/sparc/sparc.c, config/sparc/little-endian.opt,
9075 config/sparc/sysv4-only.h, config/sparc/sparc.h,
9076 config/sparc/linux64.h, config/sparc/freebsd.h,
9077 config/sparc/sol2.h, config/sparc/rtemself.h,
9078 config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
9079 config/sparc/sparc-modes.def, config/sparc/sparclet.md,
9080 config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
9081 config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
9082 config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
9083 config/m32r/linux.h, config/m32r/constraints.md,
9084 config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
9085 config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
9086 config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
9087 config/i386/i386.md, config/i386/netware-crt0.c,
9088 config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
9089 config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
9090 config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
9091 config/i386/sol2.h, config/i386/constraints.md,
9092 config/i386/netware-libgcc.c, config/i386/sysv5.h,
9093 config/i386/predicates.md, config/i386/geode.md,
9094 config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
9095 config/i386/freebsd64.h, config/i386/vxworksae.h,
9096 config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
9097 config/i386/rtemself.h, config/i386/netbsd-elf.h,
9098 config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
9099 config/i386/netware.h, config/i386/i386-modes.def,
9100 config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
9101 config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
9102 config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
9103 config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
9104 config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
9105 config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
9106 config/i386/xm-mingw32.h, config/i386/linux64.h,
9107 config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
9108 config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
9109 config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
9110 config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
9111 config/i386/cygwin2.c, config/i386/i386-protos.h,
9112 config/i386/sync.md, config/i386/openbsd.h,
9113 config/i386/host-mingw32.c, config/i386/i386-aout.h,
9114 config/i386/nto.h, config/i386/biarch64.h,
9115 config/i386/i386-coff.h, config/i386/freebsd.h,
9116 config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
9117 config/i386/host-i386-darwin.c, config/i386/vxworks.h,
9118 config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
9119 config/darwin-protos.h, config/linux.opt, config/sol2.c,
9120 config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
9121 config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
9122 config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
9123 config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
9124 config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
9125 config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
9126 config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
9127 config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
9128 config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
9129 config/sh/superh64.h, config/sh/rtemself.h,
9130 config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
9131 config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
9132 config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
9133 config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
9134 config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
9135 config/avr/predicates.md, config/avr/constraints.md,
9136 config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
9137 config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
9138 config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
9139 config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
9140 config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
9141 config/c4x/c4x-modes.def, config/c4x/rtems.h,
9142 config/c4x/predicates.md, config/c4x/c4x.h,
9143 config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
9144 config/xtensa/predicates.md, config/xtensa/xtensa.c,
9145 config/xtensa/linux.h, config/xtensa/xtensa.h,
9146 config/xtensa/elf.h, config/xtensa/xtensa.md,
9147 config/xtensa/xtensa.opt, config/xtensa/constraints.md,
9148 config/xtensa/xtensa-protos.h, config/dbx.h,
9149 config/stormy16/predicates.md, config/stormy16/stormy16.md,
9150 config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
9151 config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
9152 config/host-solaris.c, config/fr30/fr30.h,
9153 config/fr30/predicates.md, config/fr30/fr30-protos.h,
9154 config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
9155 config/vxworksae.h, config/sol2-c.c, config/lynx.h,
9156 config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
9157 config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
9158 config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
9159 config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
9160 config/host-linux.c, config/interix3.h, config/cris/cris.c,
9161 config/cris/predicates.md, config/cris/linux.h,
9162 config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
9163 config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
9164 config/cris/aout.opt, config/cris/cris-protos.h,
9165 config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
9166 config/iq2000/iq2000.h, config/iq2000/predicates.md,
9167 config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
9168 config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
9169 config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
9170 config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
9171 config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
9172 config/chorus.h, config/mn10300/mn10300.c,
9173 config/mn10300/mn10300.opt, config/mn10300/predicates.md,
9174 config/mn10300/mn10300.h, config/mn10300/linux.h,
9175 config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
9176 config/mn10300/mn10300.md, config/ia64/predicates.md,
9177 config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
9178 config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
9179 config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
9180 config/ia64/freebsd.h, config/ia64/ia64.md,
9181 config/ia64/ia64-modes.def, config/ia64/constraints.md,
9182 config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
9183 config/gofast.h, config/rtems.h, config/sol2-10.h,
9184 config/m68k/predicates.md, config/m68k/m68k.md,
9185 config/m68k/linux.h, config/m68k/m68k-modes.def,
9186 config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
9187 config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
9188 config/m68k/openbsd.h, config/m68k/m68k-aout.h,
9189 config/m68k/m68k.opt, config/m68k/m68020-elf.h,
9190 config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
9191 config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
9192 config/m68k/constraints.md, config/m68k/rtemself.h,
9193 config/m68k/netbsd-elf.h, config/m68k/m68k.h,
9194 config/m68k/uclinux.h, config/rs6000/power4.md,
9195 config/rs6000/host-darwin.c, config/rs6000/6xx.md,
9196 config/rs6000/linux.h, config/rs6000/eabi.h,
9197 config/rs6000/aix41.opt, config/rs6000/xcoff.h,
9198 config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
9199 config/rs6000/eabialtivec.h, config/rs6000/8540.md,
9200 config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
9201 config/rs6000/windiss.h, config/rs6000/603.md,
9202 config/rs6000/aix41.h, config/rs6000/cell.md,
9203 config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
9204 config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
9205 config/rs6000/darwin.md, config/rs6000/darwin64.h,
9206 config/rs6000/default64.h, config/rs6000/7xx.md,
9207 config/rs6000/darwin.opt, config/rs6000/spe.md,
9208 config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
9209 config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
9210 config/rs6000/7450.md, config/rs6000/linux64.h,
9211 config/rs6000/constraints.md, config/rs6000/440.md,
9212 config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
9213 config/rs6000/rs6000.c, config/rs6000/aix52.h,
9214 config/rs6000/rs6000.h, config/rs6000/power6.md,
9215 config/rs6000/predicates.md, config/rs6000/altivec.md,
9216 config/rs6000/aix64.opt, config/rs6000/rios1.md,
9217 config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
9218 config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
9219 config/rs6000/darwin7.h, config/rs6000/dfp.md,
9220 config/rs6000/linux64.opt, config/rs6000/sync.md,
9221 config/rs6000/vxworksae.h, config/rs6000/power5.md,
9222 config/rs6000/lynx.h, config/rs6000/biarch64.h,
9223 config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
9224 config/rs6000/eabispe.h, config/rs6000/e500.h,
9225 config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
9226 config/rs6000/netbsd.h, config/rs6000/e500-double.h,
9227 config/rs6000/aix.h, config/rs6000/vxworks.h,
9228 config/rs6000/40x.md, config/rs6000/aix51.h,
9229 config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
9230 config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
9231 config/arc/arc.h, config/mcore/mcore-elf.h,
9232 config/mcore/mcore-protos.h, config/mcore/predicates.md,
9233 config/mcore/mcore.md, config/mcore/mcore.c,
9234 config/mcore/mcore.opt, config/mcore/mcore.h,
9235 config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
9236 config/score/predicates.md, config/score/score-version.h,
9237 config/score/score-protos.h, config/score/misc.md,
9238 config/score/elf.h, config/score/score.c, config/score/mac.md,
9239 config/score/score7.md, config/score/score.h,
9240 config/score/score-conv.h, config/score/score-mdaux.c,
9241 config/score/score.md, config/score/score.opt,
9242 config/score/score-modes.def, config/score/score-mdaux.h,
9243 config/score/mul-div.S, config/arm/uclinux-elf.h,
9244 config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
9245 config/arm/symbian.h, config/arm/linux-elf.h,
9246 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
9247 config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
9248 config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
9249 config/arm/strongarm-pe.h, config/arm/arm.h,
9250 config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
9251 config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
9252 config/arm/arm-modes.def, config/arm/linux-eabi.h,
9253 config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
9254 config/arm/arm-cores.def, config/arm/arm-protos.h,
9255 config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
9256 config/arm/wince-pe.h, config/arm/neon.md,
9257 config/arm/constraints.md, config/arm/neon.ml,
9258 config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
9259 config/arm/arm.opt, config/arm/arm926ejs.md,
9260 config/arm/predicates.md, config/arm/iwmmxt.md,
9261 config/arm/arm_neon.h, config/arm/unknown-elf.h,
9262 config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
9263 config/arm/neon-testgen.ml, config/arm/arm.md,
9264 config/arm/xscale-coff.h, config/arm/pe.c,
9265 config/arm/arm-generic.md, config/arm/pe.h,
9266 config/arm/kaos-strongarm.h, config/arm/freebsd.h,
9267 config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
9268 config/arm/strongarm-elf.h, config/arm/cirrus.md,
9269 config/arm/netbsd-elf.h, config/arm/vxworks.h,
9270 config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
9271 config/pa/predicates.md, config/pa/pa64-hpux.h,
9272 config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
9273 config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
9274 config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
9275 config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
9276 config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
9277 config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
9278 config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
9279 config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
9280 config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
9281 config/pa/pa64-regs.h, config/pa/pa-modes.def,
9282 config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
9283 config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
9284 config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
9285 config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
9286 config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
9287 config/mips/linux64.h, config/mips/elforion.h,
9288 config/mips/constraints.md, config/mips/generic.md,
9289 config/mips/predicates.md, config/mips/4300.md,
9290 config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
9291 config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
9292 config/mips/5k.md, config/mips/vr4120-div.S,
9293 config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
9294 config/mips/mips-protos.h, config/mips/6000.md,
9295 config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
9296 config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
9297 config/mips/mips-modes.def, config/mips/vr.h,
9298 config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
9299 config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
9300 config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
9301 config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
9302 config/vax/openbsd1.h, config/vax/netbsd.h,
9303 config/vax/vax-protos.h, config/vax/netbsd-elf.h,
9304 config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
9305 config/h8300/rtems.h, config/h8300/predicates.md,
9306 config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
9307 config/h8300/h8300.md, config/h8300/h8300.opt,
9308 config/h8300/coff.h, config/h8300/h8300-protos.h,
9309 config/v850/v850.md, config/v850/predicates.md,
9310 config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
9311 config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
9312 config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
9313 config/mmix/mmix.h, config/mmix/predicates.md,
9314 config/mmix/mmix-protos.h, config/mmix/mmix.md,
9315 config/mmix/mmix.c, config/mmix/mmix.opt,
9316 config/mmix/mmix-modes.def, config/bfin/bfin.opt,
9317 config/bfin/rtems.h, config/bfin/bfin-modes.def,
9318 config/bfin/predicates.md, config/bfin/bfin-protos.h,
9319 config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
9320 Likewise.
9321
9322 2007-08-02 Richard Sandiford <richard@codesourcery.com>
9323
9324 * emit-rtl.c (reset_used_decls): Rename to...
9325 (set_used_decls): ...this. Set the used flag rather than clearing it.
9326 (unshare_all_rtl_again): Update accordingly. Set flags on argument
9327 DECL_RTLs rather than resetting them.
9328
9329 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
9330
9331 * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
9332
9333 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
9334
9335 * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
9336 argument to find_reloads_address.
9337
9338 2007-08-01 Daniel Jacobowitz <dan@codesourcery.com>
9339
9340 PR tree-optimization/32919
9341 * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
9342 * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
9343 (coalesce_ssa_name): Call it.
9344
9345 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
9346 David Ung <davidu@mips.com>
9347
9348 * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
9349 (__mips16_unorddf2, __mips16_floatunsidf): New.
9350 * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
9351 above functions.
9352 * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
9353
9354 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
9355
9356 * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
9357 Display new operands of OMP_SECTIONS and OMP_CONTINUE.
9358 * tree.h (OMP_SECTIONS_CONTROL): New macro.
9359 (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
9360 * omp-low.c (get_ws_args_for, determine_parallel_type,
9361 expand_omp_for_generic, expand_omp_for_static_nochunk,
9362 expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
9363 Work with more precise CFG.
9364 (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
9365 (lower_omp_sections): Emit OMP_SECTIONS_SWITCH. Add arguments to
9366 OMP_CONTINUE.
9367 * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
9368 * gimple-low.c (lower_stmt): Ditto.
9369 * tree-inline.c (estimate_num_insns_1): Ditto.
9370 * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
9371 (OMP_SECTIONS_SWITCH): New.
9372 * tree-cfgcleanup.c (cleanup_omp_return): New.
9373 (cleanup_tree_cfg_bb): Call cleanup_omp_return.
9374 * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
9375 and exit edge for OMP_FOR. Handle OMP_SECTIONS_SWITCH.
9376 (tree_redirect_edge_and_branch): Handle omp constructs.
9377
9378 * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
9379 with three arguments.
9380
9381 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
9382
9383 * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
9384 in loop closed ssa.
9385
9386 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
9387
9388 * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
9389 the loop structures may need fixing.
9390 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
9391 New functions.
9392 (cleanup_tree_cfg_loop): Removed.
9393 (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
9394 * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
9395 instead of running cleanup_tree_cfg_loop.
9396 * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
9397 * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
9398 (tree_predictive_commoning): Declaration changed.
9399 * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
9400
9401 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
9402
9403 * doc/invoke.texi (l1-cache-size): Update documentation.
9404 (l2-cache-size): Document.
9405 * params.h (L2_CACHE_SIZE): New macro.
9406 * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
9407 that L1_CACHE_SIZE is in kB now.
9408 (L2_CACHE_SIZE_BYTES): New macro.
9409 (tree_ssa_prefetch_arrays): Show size in kB.
9410 * config/i386/i386.h (struct processor_costs): Add l1_cache_size
9411 and l2_cache_size fields.
9412 * config/i386/driver-i386.c (describe_cache): Detect cache size
9413 in kB.
9414 * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
9415 pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
9416 amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
9417 generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
9418 (override_options): Set l1-cache-size and l2-cache-size to default
9419 values if not specified otherwise.
9420 * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
9421 (PARAM_L2_CACHE_SIZE): New.
9422
9423 2007-08-01 Nigel Stephens <nigel@mips.com>
9424 David Ung <davidu@mips.com>
9425 Thiemo Seufer <ths@mips.com>
9426 Chris Dearman <chris@mips.com>
9427 Richard Sandiford <richard@codesourcery.com>
9428
9429 * config.gcc (mips*-sde-elf*): New stanza.
9430 (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
9431 (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
9432 (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
9433 (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
9434 (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
9435 (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
9436 to tmake_file.
9437 * config/mips/sde.h: New file.
9438 * config/mips/t-libgcc-mips16: Likewise.
9439 * config/mips/t-sde: Likewise.
9440 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
9441 of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
9442 _MIPS_FPSET and _MIPS_SZINT.
9443 * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
9444 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
9445 insertion of a default -mips option. Use MIPS_32BIT_OPTION_SPEC.
9446 * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
9447 * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
9448 * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
9449 * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
9450 _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
9451 _MIPS_SZPTR and _MIPS_FPSET.
9452 (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
9453 architecture is specified.
9454 (MIPS_32BIT_OPTION_SPEC): New macro.
9455
9456 2007-07-31 Dan Hipschman <dsh@google.com>
9457
9458 * gcc.c (end_going_arg): New function.
9459 (do_spec_2): Use it.
9460 (do_spec_1): Use it.
9461
9462 2007-07-31 H.J. Lu <hongjiu.lu@intel.com>
9463
9464 * ddg.c (add_cross_iteration_register_deps): Declare bb_info
9465 only if ENABLE_CHECKING is defined.
9466
9467 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
9468
9469 * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
9470 df_ru_add_problem, df_ru_get_bb_info): Removed.
9471 (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
9472 * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
9473 df_ru_free_bb_info, df_ru_alloc,
9474 df_ru_bb_local_compute_process_def,
9475 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
9476 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
9477 df_ru_transfer_function, df_ru_free, df_ru_start_dump,
9478 df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
9479 df_ru_add_problem): Removed.
9480
9481 2007-07-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9482
9483 PR target/32847
9484 * pa.md (casesi32): Use match_scratch. Revise insn condition.
9485 (casesi32p, casesi64p): Likewise.
9486 (casesi): Adjust for above.
9487
9488 2007-07-31 Richard Sandiford <richard@codesourcery.com>
9489
9490 * mode-switching.c (create_pre_exit): Don't search past calls.
9491
9492 2007-07-31 Sandra Loosemore <sandra@codesourcery.com>
9493
9494 * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
9495
9496 2007-07-31 Revital Eres <eres@il.ibm.com>
9497
9498 * ddg.c (add_deps_for_def): Rename to...
9499 (add_cross_iteration_register_deps): This. Change implementation
9500 to use only reaching def and def-use chains to construct the
9501 inter loop dependencies.
9502 (add_deps_for_use): Remove function.
9503 (build_inter_loop_deps): Call add_cross_iteration_register_deps
9504 function to build the inter loop dependencies.
9505 * modulo-sched.c (sms_schedule): Build only
9506 reaching def and def-use chains for the propose of the ddg
9507 construction.
9508
9509 2007-07-31 Julian Brown <julian@codesourcery.com>
9510
9511 * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
9512 New define_insns. Use correct RTL.
9513 (vec_set<mode>): Write as expander.
9514
9515 2007-07-31 Razya Ladelsky <razya@il.ibm.com>
9516
9517 * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring
9518 to an unallocated space.
9519
9520 2007-07-30 Jan Sjodin <jan.sjodin@amd.com>
9521
9522 * tree-data-ref.c
9523 (split_constant_offset): Enable split_constant_offset to extract
9524 constants from other statements.
9525 * tree-vect-transform.c
9526 (vect_create_addr_base_for_vector_ref): Generate data_ref_base
9527 to a temp var. Force base_offset to be simple.
9528
9529 2007-07-30 Seongbae Park <seongbae.park@gmail.com>
9530
9531 * df-scan.c (df_scan_verify): Remove artificial limit on
9532 the number of blocks for verification.
9533 * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
9534 df_simulate_defs): Avoid unnecessary insn checking for defs.
9535
9536 2007-07-29 Mark Mitchell <mark@codesourcery.com>
9537
9538 * config/m68k/lb1sf68.asm (FUNC): New macro.
9539 (__mulsi3): Use it.
9540 (__udivsi3): Likewise.
9541 (__divsi3): Likewise.
9542 (__umodsi3): Likewise.
9543 (__modsi3): Likewise.
9544 (__subdf3): Likewise.
9545 (__adddf3): Likewise.
9546 (__muldf3): Likewise.
9547 (__divdf3): Likewise.
9548 (__negdf2): Likewise.
9549 (__cmpdf2): Likewise.
9550 (__subsf3): Likewise.
9551 (__addsf3): Likewise.
9552 (__mulsf3): Likewise.
9553 (__divsf3): Likewise.
9554 (__negsf2): Likewise.
9555 (__cmpsf2): Likewise.
9556 (__eqdf2): Likewise.
9557 (__nedf2): Likewise.
9558 (__gtdf2): Likewise.
9559 (__gedf2): Likewise.
9560 (__ltdf2): Likewise.
9561 (__ledf2): Likewise.
9562 (__eqsf2): Likewise.
9563 (__nesf2): Likewise.
9564 (__gtsf2): Likewise.
9565 (__gesf2): Likewise.
9566 (__ltsf2): Likewise.
9567 (__lesf2): Likewise.
9568
9569 2007-07-30 Ollie Wild <aaw@google.com>
9570
9571 * c-ppoutput.c (print_lines_directives_only): New function.
9572 (scan_translation_unit_directives_only): New function.
9573 (preprocess_file): Add call to scan_translation_unit_directives_only.
9574 * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
9575 (sanitize_cpp_opts): Add default flag_dump_macros setting for
9576 -fdirectives-only. Add errors for -fdirectives-only conflict with
9577 -Wunused-macros and -traditional.
9578 (finish_options): Add builtin macro initialization for
9579 -fdirectives-only + -fpreprocessed.
9580 * c.opt (fdirectives-only): New.
9581 * doc/cppopts.texi (fdirectives-only): New.
9582
9583 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9584
9585 * alias.c (record_set, memory_modified_1): Constify.
9586 * bt-load.c (note_btr_set): Likewise.
9587 * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
9588 * combine.c (set_nonzero_bits_and_sign_copies,
9589 expand_field_assignment, record_dead_and_set_regs_1,
9590 use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
9591 likely_spilled_retval_1): Likewise.
9592 * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
9593 frv_io_handle_set): Likewise.
9594 * config/mips/mips.c (mips_sim_record_set,
9595 vr4130_true_reg_dependence_p_1): Likewise.
9596 * config/mt/mt.c (insn_dependent_p_1): Likewise.
9597 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
9598 * config/sh/sh.c (flow_dependent_p_1): Likewise.
9599 * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
9600 * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
9601 * ddg.c (mark_mem_store): Likewise.
9602 * df-problems.c (df_urec_mark_reg_change): Likewise.
9603 * function.c (update_epilogue_consts): Likewise.
9604 * gcse.c (record_set_info, record_last_set_info,
9605 mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
9606 reg_clear_last_set): Likewise.
9607 * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
9608 Likewise.
9609 * jump.c (reversed_comparison_code_parts): Likewise.
9610 * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
9611 reg_is_set): Likewise.
9612 * loop-iv.c (mark_altered): Likewise.
9613 * mode-switching.c (reg_becomes_live): Likewise.
9614 * optabs.c (no_conflict_move_test): Likewise.
9615 * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
9616 Likewise.
9617 * postreload.c (reload_combine_note_store, move2add_note_store):
9618 Likewise.
9619 * regmove.c (flags_set_1): Likewise.
9620 * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
9621 Likewise.
9622 * reload1.c (mark_not_eliminable, forget_old_reloads_1):
9623 Likewise.
9624 * resource.c (update_live_status): Likewise.
9625 * rtl.h (set_of, note_stores): Likewise.
9626 * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
9627 note_stores, parms_set): Likewise.
9628 * sched-rgn.c (sets_likely_spilled_1): Likewise.
9629 * stack-ptr-mod.c (notice_stack_pointer_modification_1):
9630 Likewise.
9631 * var-tracking.c (count_stores, add_stores): Likewise.
9632
9633 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9634
9635 * alias.c (mems_in_disjoint_alias_sets_p,
9636 fixed_scalar_and_varying_struct_p, aliases_everything_p,
9637 nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
9638 write_dependence_p, mems_in_disjoint_alias_sets_p,
9639 read_dependence, true_dependence, canon_true_dependence,
9640 anti_dependence, output_dependence): Constify.
9641 * combine.c (extended_count): Likewise.
9642 * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
9643 * cselib.c (get_value_hash, references_value_p,
9644 cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
9645 * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
9646 * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
9647 * function.c (contains, prologue_epilogue_contains,
9648 sibcall_epilogue_contains): Likewise.
9649 * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
9650 pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
9651 only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
9652 reg_or_subregno): Likewise.
9653 * recog.c (asm_noperands): Likewise.
9654 * reload1.c (function_invariant_p): Likewise.
9655 * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
9656 rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
9657 condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
9658 simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
9659 true_regnum, reg_or_subregno, condjump_in_parallel_p,
9660 extended_count, prologue_epilogue_contains,
9661 sibcall_epilogue_contains, function_invariant_p, true_dependence,
9662 canon_true_dependence, read_dependence, anti_dependence,
9663 output_dependence): Likewise.
9664 * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
9665
9666 2007-07-30 Julian Brown <julian@codesourcery.com>
9667
9668 * config/arm/neon.md (V_ext): New mode attribute.
9669 (neon_vget_lane<mode>): Replace with define_expand.
9670 (neon_vget_lane<mode>_sext_internal)
9671 (neon_vget_lane<mode>_zext_internal): New define_insns for double
9672 and quad precision vectors.
9673 (neon_vget_lanedi): Add bounds check. Remove dead comment.
9674 * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
9675 have typeless 32-bit result.
9676
9677 2007-07-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
9678
9679 PR tree-opt/32527
9680 * tree-affine.h (aff_tree): The type of rest is sizetype for types
9681 of pointers.
9682 * tree-affine.c (aff_combination_scale): If type is a pointer type,
9683 use sizetype for rest.
9684 (aff_combination_add_elt): Likewise. Don't specialize pointer types.
9685 (aff_combination_convert): Don't convert rest for pointer types.
9686
9687 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
9688
9689 * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
9690
9691 * tree-ssa-alias.c: Add alloc-pool.h.
9692 (init_alias_info): Free alias_bitmap_obstack.
9693 (delete_alias_info): Call delete_mem_ref_stats.
9694 (get_mem_sym_stats_for): Use alloc_pool.
9695 (init_mem_ref_stats): Do not delete mem_ref_stats here.
9696 (delete_mem_sym_stats): Removed.
9697
9698 2007-07-29 Sebastian Pop <sebpop@gmail.com>
9699
9700 * tree-data-ref.c (add_multivariate_self_dist): Parametric access
9701 functions cannot be represented as classical distance vectors.
9702
9703 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9704
9705 * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
9706 * builtins.c (validate_arg, builtin_mathfn_code,
9707 validate_arglist): Likewise.
9708 * calls.c (call_expr_flags): Likewise.
9709 * combine.c (reg_nonzero_bits_for_combine,
9710 reg_num_sign_bit_copies_for_combine, get_last_value,
9711 reg_truncated_to_mode): Likewise.
9712 * emit-rtl.c (subreg_lowpart_p): Likewise.
9713 * expr.c (highest_pow2_factor_for_target,
9714 categorize_ctor_elements_1, categorize_ctor_elements,
9715 count_type_elements, contains_packed_reference,
9716 highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
9717 * fold-const.c (may_negate_without_overflow_p, int_const_binop,
9718 fold_convertible_p, operand_equal_p, tree_swap_operands_p,
9719 native_encode_int, native_encode_real, native_encode_complex,
9720 native_encode_vector, native_encode_expr, native_interpret_int,
9721 native_interpret_real, native_interpret_complex,
9722 native_interpret_vector, native_interpret_expr): Likewise.
9723 * function.c (use_register_for_decl): Likewise.
9724 * gimplify.c (get_name): Likewise.
9725 * langhooks-def.h (lhd_return_null_const_tree): New.
9726 (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
9727 * langhooks.c (lhd_return_null_const_tree): New.
9728 * langhooks.h (lang_get_callee_fndecl): Constify.
9729 * output.h (constructor_static_from_elts_p): Likewise.
9730 * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
9731 * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
9732 subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
9733 * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
9734 cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
9735 nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
9736 * rtlhooks-def.h (reg_nonzero_bits_general,
9737 reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
9738 Likewise.
9739 * rtlhooks.c (reg_num_sign_bit_copies_general,
9740 reg_nonzero_bits_general, reg_truncated_to_mode_general):
9741 Likewise.
9742 * stmt.c (warn_if_unused_value, is_body_block): Likewise.
9743 * stor-layout.c (mode_for_size_tree): Likewise.
9744 * tree-ssa-loop-im.c (memref_eq): Likewise.
9745 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
9746 * tree.c (contains_placeholder_p, type_list_equal,
9747 simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
9748 Likewise.
9749 * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
9750 mode_for_size_tree, categorize_ctor_elements, count_type_elements,
9751 contains_placeholder_p, contains_packed_reference,
9752 get_callee_fndecl, operand_equal_for_phi_arg_p,
9753 warn_if_unused_value, is_body_block, native_encode_expr,
9754 native_interpret_expr, fold_convertible_p, operand_equal_p,
9755 int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
9756 validate_arglist, simple_cst_equal, type_list_equal,
9757 use_register_for_decl, call_expr_flags, get_name,
9758 highest_pow2_factor): Likewise.
9759 (const_call_expr_arg_iterator_d,
9760 init_const_call_expr_arg_iterator, next_const_call_expr_arg,
9761 first_const_call_expr_arg, more_const_call_expr_args_p,
9762 FOR_EACH_CONST_CALL_EXPR_ARG): New.
9763 * varasm.c (constructor_static_from_elts_p): Constify.
9764
9765 2007-07-28 Kazu Hirata <kazu@codesourcery.com>
9766
9767 * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
9768 config/arm/neon-schedgen.ml, config/arm/neon.ml,
9769 config/arm/vec-common.md, config/ia64/div.md, cselib.c,
9770 df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
9771 regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
9772 tree-vect-transform.c, tree.def: Fix comment typos. Follow
9773 spelling conventions.
9774 * doc/invoke.texi: Follow spelling conventions.
9775
9776 2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com>
9777 Revital Eres <eres@il.ibm.com>
9778
9779 * modulo-sched.c (sms_schedule): Avoid loops which includes
9780 auto-increment instructions.
9781
9782 2007-07-28 Richard Guenther <rguenther@suse.de>
9783
9784 PR middle-end/32920
9785 * fold-const.c (fold_cond_expr_with_comparison): Convert
9786 operand zero of MIN/MAX_EXPR to correct type.
9787
9788 2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9789
9790 * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
9791 flags_from_decl_or_type): Constify.
9792 * gcc.c (do_spec_1): Likewise.
9793 * print-tree.c (dump_addr, print_node_brief): Likewise.
9794 * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
9795 simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
9796 tree_purge_all_dead_eh_edges): Likewise.
9797 * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
9798 tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
9799 Likewise.
9800 * tree.c (expr_location, expr_has_location, expr_locus,
9801 expr_filename, expr_lineno, get_inner_array_type,
9802 fields_compatible_p): Likewise.
9803 * tree.h (get_inner_array_type, fields_compatible_p,
9804 expr_location, expr_has_location, expr_locus, expr_filename,
9805 expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
9806 setjmp_call_p, alloca_call_p): Likewise.
9807
9808 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
9809
9810 * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
9811 TV_FLOW_INSENSITIVE.
9812
9813 * tree-ssa-alias.c (compute_call_clobbered): Push/pop
9814 TV_CALL_CLOBBER.
9815 (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
9816 (compute_flow_insensitive_aliasing): Ditto for
9817 TV_FLOW_INSENSITIVE.
9818
9819 2007-07-27 Jan Hubicka <jh@suse.cz>
9820
9821 * config/i386/i386.c (register_move_cost): Remove accidentally
9822 comitted #if 0 block.
9823
9824 * attribs.c: Include hashtab.h
9825 (attribute_hash): New.
9826 (substring): New structure.
9827 (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
9828 New function.
9829 (init_attributes): Initialize attribute hash.
9830 (decl_attributes): Use attribute hash.
9831 * Makefile.in (attribs.c): Depend on hashtab.h.
9832
9833 2007-07-27 Steve Ellcey <sje@cup.hp.com>
9834
9835 * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
9836
9837 2007-07-27 Richard Sandiford <richard@codesourcery.com>
9838
9839 * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
9840 __mips_dspr2 and __mips_dsp_rev macros.
9841 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
9842
9843 2007-07-27 Douglas Gregor <doug.gregor@gmail.com>
9844
9845 * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
9846
9847 2007-07-26 Kenneth Zadeck <zadeck@naturalbridge.com>
9848
9849 PR middle-end/32749
9850
9851 * df-problems.c (df_create_unused_note): Removed do_not_gen parm
9852 and the updating of the live and do_not_gen sets.
9853 (df_note_bb_compute): Added updating of live and do_not_gen sets
9854 for regular defs so that the case of clobber inside conditional
9855 call is processed correctly.
9856
9857 2007-07-27 Zdenek Dvorak <dvorakz@suse.cz>
9858
9859 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
9860 operands with compatible type.
9861
9862 2007-07-27 Richard Sandiford <richard@codesourcery.com>
9863
9864 * expr.h (store_bit_field): Don't return a value.
9865 * expmed.c (check_predicate_volatile_ok): New function.
9866 (store_bit_field_1): New function, extracted from store_bit_field.
9867 Take a fallback_p argument and return true if the operation succeeded.
9868 Only use store_fixed_bit_field if fallback_p. Don't recompute
9869 mode_for_extraction; use op_mode instead. Try forcing memories
9870 into registers if the insv expander fails.
9871 (store_bit_field): Use store_bit_field_1 with fallback_p true.
9872 Don't return a value.
9873 (convert_extracted_bit_field): New function, extracted from
9874 store_bit_field.
9875 (extract_bit_field_1): Likewise. Take a fallback_p argument
9876 and return NULL if the operation succeeded. Only use
9877 extract_fixed_bit_field if fallback_p. Only calculate one
9878 extraction mode. Combine code for extv and extzv. Try forcing
9879 memories into registers if the ext(z)v expander fails.
9880 (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
9881
9882 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
9883
9884 * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
9885 into bitfields.
9886 (df_ref): Likewise. Put regno with other integer fields.
9887
9888 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
9889
9890 * df.h (df_mw_hardreg): Remove "loc" field.
9891 * df-scan.c (df_ref_record): Don't set it. Remove redundant
9892 local variable.
9893 * df-problems.c (df_whole_mw_reg_unused_p): New function,
9894 split out from df_set_unused_notes_for_mw. Return false for
9895 partial references. Assert that mw_reg is a REG when returning true.
9896 (df_set_unused_notes_for_mw): Use it. Use mw_reg instead of *loc.
9897 (df_whole_mw_reg_dead_p): New function, split out from
9898 df_set_dead_notes_for_mw. Return false for partial references.
9899 Assert that mw_reg is a REG when returning true.
9900 (df_set_dead_notes_for_mw): Use it. Use mw_reg instead of *loc.
9901 Remove redundant bitmap check.
9902
9903 2007-07-26 H.J. Lu <hongjiu.lu@intel.com>
9904
9905 * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
9906 ($(T)crtend.o): Likwise.
9907 ($(T)crtbeginS.o): Likwise.
9908 ($(T)crtendS.o): Likwise.
9909 ($(T)crtfastmath.o): Likwise.
9910
9911 2007-07-26 Zdenek Dvorak <dvorakz@suse.cz>
9912
9913 * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
9914 * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
9915 * basic-block.h (struct control_flow_graph): Added x_dom_computed
9916 and x_n_bbs_in_dom_tree fields.
9917
9918 2007-07-26 Steve Ellcey <sje@cup.hp.com>
9919
9920 PR tree-optimization/32087
9921 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
9922 Do not call scale_bbs_frequencies_int with prob of zero.
9923
9924 2007-07-26 Julian Brown <julian@codesourcery.com>
9925
9926 * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
9927 (neon_element_bits): Add prototypes.
9928 * config/arm/arm.c (bounds_check, neon_lane_bounds)
9929 (neon_const_bounds, neon_element_bits): New functions.
9930 * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
9931 (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
9932 (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
9933 (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
9934 (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
9935 (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
9936 (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
9937 (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
9938 (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
9939 (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
9940 (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
9941 (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
9942 (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
9943
9944 2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
9945
9946 * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
9947 (HAVE_AS_GNU_ATTRIBUTE): Undefine.
9948
9949 2007-07-26 Mark Shinwell <shinwell@codesourcery.com>
9950 Julian Brown <julian@codesourcery.com>
9951
9952 * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
9953 * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
9954 * config/arm/cortex-a8.md: New.
9955 * config/arm/cortex-a8-neon.md: New.
9956 * config/arm/neon-schedgen.ml: New.
9957 * config/arm/neon.md (vqh_mnem): New.
9958 (neon_type): New.
9959 (Is_float_mode): New.
9960 (Scalar_mul_8_16): New.
9961 (Is_d_reg): New.
9962 (V_mode_nunits): New.
9963 (All instruction patterns): Annotate with neon_type attribute
9964 values.
9965 * config/arm/arm.md: Include cortex-a8.md.
9966 (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
9967 values.
9968 Annotate instruction patterns accordingly.
9969 (generic_sched): Do not use generic scheduling for Cortex-A8.
9970 (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
9971
9972 2007-07-26 Daniel Jacobowitz <dan@codesourcery.com>
9973
9974 * fold-const.c (fold_read_from_constant_string): Use
9975 build_int_cst_type.
9976 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
9977
9978 2007-07-26 Nick Clifton <nickc@redhat.com>
9979
9980 * tree-ssa-operands.h: Change copyright header to refer to version
9981 3 of the GNU General Public License and to point readers at the
9982 COPYING3 file and the FSF's license web page.
9983 * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
9984 sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
9985 tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
9986 targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
9987 tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
9988 hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
9989 flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
9990 opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
9991 gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
9992 cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
9993 rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
9994 optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
9995 tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
9996 genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
9997 reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
9998 c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
9999 rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
10000 tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
10001 diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
10002 gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
10003 input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
10004 gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
10005 cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
10006 graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
10007 genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
10008 tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
10009 reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
10010 real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
10011 omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
10012 tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
10013 regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
10014 tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
10015 scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
10016 double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
10017 dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
10018 gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
10019 hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
10020 ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
10021 c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
10022 tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
10023 xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
10024 tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
10025 gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
10026 mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
10027 alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
10028 dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
10029 expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
10030 genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
10031 timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
10032 tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
10033 recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
10034 dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
10035 matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
10036 tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
10037 lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
10038 ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
10039 ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
10040 langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
10041 sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
10042 gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
10043 ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
10044 init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
10045 loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
10046 mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
10047 opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
10048 insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
10049 tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
10050 dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
10051 bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
10052 coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
10053 stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
10054 cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
10055 tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
10056 loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
10057 lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
10058 tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
10059 tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
10060 ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
10061 varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
10062 sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
10063 target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
10064 omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
10065 intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
10066 sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
10067 genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
10068 tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
10069 bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
10070 cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
10071 cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
10072 tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
10073 c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
10074 fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
10075 vecprim.h, basic-block.h, tree-ssa-structalias.c,
10076 tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
10077 passes.c, genconstants.c, c-incpath.c, c-incpath.h,
10078 struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
10079 varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
10080 reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
10081 stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
10082 params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
10083 tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
10084 convert.c, convert.h, langhooks-def.h, reload1.c,
10085 tree-ssa-operands.c: Likewise.
10086
10087 2007-07-26 Jan Hubicka <jh@suse.cz>
10088
10089 * tree-ssa-live.c: Include debug.h and flags.h.
10090 (mark_scope_block_unused): New function.
10091 (remove_unused_scope_block_p): New function.
10092 (remove_unused_locals): Remove unused blocks too.
10093
10094 2007-07-25 Ian Lance Taylor <iant@google.com>
10095
10096 * combine.c (combine_max_regno): Remove. Remove all uses.
10097 (struct reg_stat_struct): Rename from struct reg_stat.
10098 (reg_stat_type): Define, and declare VECs.
10099 (reg_stat): Change from pointer to VEC. Change all uses.
10100 (combine_split_insns): New static function.
10101 (try_combine, find_split_point): Call it instead of split_insns.
10102
10103 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
10104
10105 * cfghooks.c (split_block): Fix the information about loop latch.
10106
10107 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
10108
10109 * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
10110
10111 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
10112
10113 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
10114 Scan the new edge for loop exit info.
10115
10116 2007-07-25 Andreas Tobler <a.tobler@schweiz.org>
10117
10118 * config/darwin.c: Include debug.h.
10119
10120 2007-07-25 Steve Ellcey <sje@cup.hp.com>
10121
10122 PR target/32218
10123 * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
10124
10125 2007-07-25 Steve Ellcey <sje@cup.hp.com>
10126
10127 * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
10128 (HARD_REGNO_MODE_OK): Ditto.
10129 (MODES_TIEABLE_P): Ditto.
10130 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
10131 (CLASS_MAX_NREGS): Ditto.
10132 * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
10133 * config/ia64/ia64.md (divsf3_internal_thr): Removed.
10134 (divdf3_internal_thr): Removed.
10135 * config/ia64/div.md: New file.
10136 * config/ia64/constraints.md: Add H constraint.
10137
10138 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10139
10140 * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
10141 sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
10142 sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
10143 sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
10144 sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
10145 sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
10146 sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
10147 sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
10148 sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
10149 dump_sbitmap_file, debug_sbitmap, popcount_table,
10150 sbitmap_popcount): Constify.
10151 * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
10152 (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
10153 dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
10154 sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
10155 sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
10156 sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
10157 sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
10158 sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
10159 sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
10160 sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
10161 sbitmap_popcount, sbitmap_verify_popcount): Constify.
10162
10163 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10164
10165 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
10166 bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
10167 bitmap_first_set_bit, bitmap_and, bitmap_and_into,
10168 bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
10169 bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
10170 bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
10171 bitmap_intersect_p, bitmap_intersect_compl_p,
10172 bitmap_ior_and_compl, bitmap_ior_and_compl_into,
10173 debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
10174 Constify.
10175 * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
10176 bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
10177 bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
10178 bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
10179 bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
10180 debug_bitmap, debug_bitmap_file, bitmap_print,
10181 bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
10182 bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
10183
10184 2007-07-25 Daniel Berlin <dberlin@dberlin.org>
10185
10186 * config/darwin.c (darwin_override_options): Additional fix for
10187 debug info formats that don't support var tracking.
10188
10189 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10190
10191 * cselib.c (entry_and_rtx_equal_p): Constify.
10192 * gengtype.c (output_mangled_typename, write_types, write_local):
10193 Likewise.
10194 * gengtype.h (const_type_p): New.
10195 * see.c (eq_descriptor_extension, hash_descriptor_extension):
10196 Constify.
10197 * tlink.c (scan_linker_output): De-constify.
10198 * tree-ssa-loop-im.c (memref_eq): Constify.
10199 * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
10200 (shared_bitmap_hash, shared_bitmap_eq): Constify.
10201
10202 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10203
10204 * c-common.c (fname_as_string, c_type_hash): Constify.
10205 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
10206 * cgraph.c (edge_hash, edge_eq): Likewise.
10207 * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
10208 * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
10209 reg_attrs_htab_eq): Likewise.
10210 * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
10211 Likewise.
10212 * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
10213 const_decl_t, const_state_t, const_automata_list_el_t): New.
10214 (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
10215 DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
10216 automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
10217 insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
10218 reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
10219 automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
10220 compare_max_occ_cycle_nums, out_state_arcs_num,
10221 compare_transition_els_num, units_cmp, state_reservs_cmp):
10222 Constify.
10223 * genmodes.c (cmp_modes): Likewise.
10224 * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
10225 * gimplify.c (compare_case_labels): Likewise.
10226 * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
10227 * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
10228 * matrix-reorg.c (mtt_info_hash): Likewise.
10229 * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
10230 * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
10231 (htab_hash_bucket, htab_hash_elem): Constify.
10232 * tree-browser.c (TB_parent_eq): Likewise.
10233 * tree-scalar-evolution.c (hash_scev_info): Likewise.
10234 * tree-ssa-alias.c (sort_tags_by_id): Likewise.
10235 * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
10236 (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
10237 Constify.
10238 * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
10239 * tree-ssa-pre.c (const_expr_pred_trans_t): New.
10240 (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
10241 * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
10242 const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
10243 New.
10244 (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
10245 vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
10246 vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
10247 * tree-ssa-threadupdate.c (redirection_data_hash,
10248 redirection_data_eq): Likewise.
10249 * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
10250 * tree-ssa.c (var_ann_eq): Likewise.
10251 * tree-vrp.c (compare_case_labels): Likewise.
10252 * tree.c (int_cst_hash_hash, int_cst_hash_eq,
10253 tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
10254 tree_not_check_failed, tree_class_check_failed,
10255 tree_range_check_failed, tree_not_class_check_failed,
10256 omp_clause_check_failed, omp_clause_range_check_failed,
10257 tree_contains_struct_check_failed, tree_operand_check_failed):
10258 Likewise.
10259 * tree.h (tree_contains_struct_check_failed, tree_check_failed,
10260 tree_not_check_failed, tree_class_check_failed,
10261 tree_range_check_failed, tree_not_class_check_failed,
10262 tree_operand_check_failed, omp_clause_operand_check_failed,
10263 tree_operand_length): Likewise.
10264 * var-tracking.c (const_variable): New.
10265 (variable_htab_hash, variable_htab_eq): Constify.
10266 * varasm.c (const_desc_hash): Likewise.
10267
10268 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10269
10270 * expr.c (handled_component_p): Constify.
10271 * fold-const.c (fit_double_type): Likewise.
10272 * real.h (real_value_from_int_cst): Likewise.
10273 * tree-flow-inline.h (gimple_in_ssa_p,
10274 gimple_aliases_computed_p, gimple_addressable_vars,
10275 gimple_call_clobbered_vars, gimple_referenced_vars,
10276 gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
10277 end_htab_p, end_referenced_vars_p, var_ann, function_ann,
10278 may_aliases, end_readonly_imm_use_p, has_zero_uses,
10279 has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
10280 is_label_stmt, is_global_var, phi_ssa_name_p,
10281 factoring_name_p, is_call_clobbered, tree_common_ann,
10282 op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
10283 unmodifiable_var_p, array_ref_contains_indirect_ref,
10284 ref_contains_array_ref, lookup_subvars_for_var,
10285 var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
10286 gimple_mem_ref_stats): Likewise.
10287 * tree-flow.h (tree_common_ann, var_ann, function_ann,
10288 may_aliases, is_exec_stmt, is_label_stmt,
10289 ref_contains_array_ref, array_ref_contains_indirect_ref,
10290 var_can_have_subvars, overlap_subvar, is_call_clobbered,
10291 unmodifiable_var_p): Likewise.
10292 * tree-gimple.c (is_gimple_min_invariant): Likewise.
10293 * tree-gimple.h (is_gimple_min_invariant): Likewise.
10294 * tree.c (type_hash_list, attribute_hash_list, tree_size,
10295 cst_and_fits_in_hwi, real_value_from_int_cst,
10296 build_real_from_int_cst, integer_zerop, integer_onep,
10297 integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
10298 tree_floor_log2, real_zerop, real_onep, real_twop,
10299 real_minus_onep, really_constant_p, purpose_member, chain_member,
10300 list_length, fields_length, int_size_in_bytes, bit_position,
10301 int_bit_position, byte_position, int_byte_position, expr_align,
10302 array_type_nelts, tree_node_structure,
10303 type_contains_placeholder_1, iterative_hash_pointer,
10304 is_attribute_with_length_p, is_attribute_p, check_qualified_type,
10305 tree_map_base_eq, type_hash_list, type_hash_eq,
10306 attribute_hash_list, type_num_arguments, tree_int_cst_equal,
10307 tree_int_cst_lt, tree_int_cst_compare, host_integerp,
10308 tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
10309 simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
10310 int_fits_type_p, get_containing_scope, decl_function_context,
10311 decl_type_context, omp_clause_operand_check_failed,
10312 initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
10313 * tree.h (omp_clause_operand_check_failed, tree_size,
10314 build_real_from_int_cst, array_type_nelts, purpose_member,
10315 tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
10316 host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
10317 is_attribute_p, check_qualified_type, expr_align,
10318 int_size_in_bytes, bit_position, int_bit_position, byte_position,
10319 int_byte_position, list_length, fields_length, initializer_zerop,
10320 integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
10321 integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
10322 tree_node_structure, handled_component_p, get_containing_scope,
10323 decl_function_context, decl_type_context, real_zerop,
10324 type_num_arguments, fit_double_type, really_constant_p,
10325 int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
10326 compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
10327 real_twop, real_minus_onep, int_cst_value): Likewise.
10328
10329 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10330
10331 * cfglayout.c (insn_scope, insn_line): Constify.
10332 * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
10333 const_double_htab_hash, const_double_htab_eq,
10334 mem_attrs_htab_hash): Likewise.
10335 * loop-iv.c (biv_eq): Likewise.
10336 * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
10337 print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
10338 debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
10339 Likewise.
10340 * rtl-error.c (location_for_asm, diagnostic_for_asm,
10341 error_for_asm, warning_for_asm, _fatal_insn,
10342 _fatal_insn_not_found): Likewise.
10343 * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
10344 rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
10345 rtl_check_failed_type2, rtl_check_failed_code1,
10346 rtl_check_failed_code2, rtl_check_failed_code_mode,
10347 rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
10348 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
10349 rtl_check_failed_type2, rtl_check_failed_code1,
10350 rtl_check_failed_code2, rtl_check_failed_code_mode,
10351 rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
10352 SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
10353 shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
10354 get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
10355 mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
10356 rtx_unstable_p, get_integer_term, get_related_value,
10357 offset_within_block_p, reg_mentioned_p, count_occurrences,
10358 reg_referenced_p, reg_used_between_p, no_labels_between_p,
10359 single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
10360 reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
10361 find_reg_note, find_regno_note, find_reg_equal_equiv_note,
10362 find_constant_src, find_reg_fusage, find_regno_fusage,
10363 pure_call_p, remove_note, side_effects_p, volatile_refs_p,
10364 volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
10365 may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
10366 computed_jump_p, auto_inc_p, in_expr_list_p,
10367 remove_node_from_expr_list, loc_mentioned_in_p,
10368 label_is_jump_target_p, reversed_comparison_code_parts,
10369 debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
10370 print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
10371 print_inline_rtx): Likewise.
10372 * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
10373 computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
10374 rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
10375 get_integer_term, get_related_value, offset_within_block_p,
10376 count_occurrences, reg_mentioned_p, no_labels_between_p,
10377 reg_used_between_p, reg_referenced_p, single_set_2,
10378 multiple_sets, set_noop_p, refers_to_regno_p,
10379 reg_overlap_mentioned_p, dead_or_set_p,
10380 covers_regno_no_parallel_p, covers_regno_p,
10381 dead_or_set_regno_p, find_reg_note, find_regno_note,
10382 find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
10383 find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
10384 remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
10385 side_effects_p, may_trap_p_1, may_trap_p,
10386 may_trap_after_code_motion_p, may_trap_or_fault_p,
10387 inequality_comparisons_p, tablejump_p, computed_jump_p_1,
10388 computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
10389 subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
10390 * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
10391 mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
10392 Likewise.
10393 * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
10394 warning_for_asm): Likewise.
10395 * tree.h (print_rtl): Likewise.
10396 * varasm.c (get_pool_mode): Likewise.
10397
10398 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10399
10400 * c-lex.c (c_lex_with_flags, lex_string): Constify.
10401 * c-ppoutput.c (print_line, pp_dir_change): Likewise.
10402 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
10403 * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
10404 * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
10405 * ddg.c (compare_sccs): Likewise.
10406 * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
10407 * dfp.c (decimal_real_from_string, decimal_to_decnumber,
10408 decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
10409 decimal_do_fix_trunc, decimal_real_to_integer,
10410 decimal_real_to_integer2, decimal_real_maxval): Likewise.
10411 * dse.c (const_group_info_t): New.
10412 (invariant_group_base_eq, invariant_group_base_hash): Constify.
10413 * dwarf2out.c (const_dw_die_ref): New.
10414 (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
10415 * tree-browser.c (TB_parent_eq): Likewise.
10416 * unwind-dw2-fde.c (__register_frame_info_bases,
10417 __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
10418 add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
10419 Likewise.
10420 * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
10421 * unwind-dw2.c (uw_frame_state_for): Likewise.
10422 * value-prof.c (histogram_hash, histogram_eq): Likewise.
10423 * value-prof.h (const_histogram_value): New.
10424
10425 2007-07-25 Richard Sandiford <richard@codesourcery.com>
10426
10427 * config/mips/mips.c (machine_function): Add
10428 initialized_mips16_gp_pseudo_p.
10429 (mips16_gp_pseudo_reg): Do not emit the initialization of
10430 mips16_gp_pseudo_rtx when being called from the gimple cost-
10431 calculation routines; emit it on the first use outside those
10432 routines.
10433
10434 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10435
10436 * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
10437 New.
10438
10439 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
10440 RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
10441 RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
10442 RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
10443 RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
10444 Preserve const-ness of parameters through use of __typeof(),
10445 also constify and tidy.
10446
10447 * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
10448 TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
10449 NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
10450 CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
10451 OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
10452 GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
10453 PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
10454 TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
10455 TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
10456
10457 2007-07-25 Julian Brown <julian@codesourcery.com>
10458 Mark Shinwell <shinwell@codesourcery.com>
10459
10460 * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
10461 (alpha_mangle_type): This.
10462 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
10463 (TARGET_MANGLE_TYPE): Define this instead.
10464 * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
10465 * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
10466 (arm_init_neon_builtins): Fix comment.
10467 (arm_mangle_map_entry): New.
10468 (arm_mangle_map): New.
10469 (arm_mangle_type): New.
10470 * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
10471 (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
10472 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
10473 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
10474 (TARGET_MANGLE_TYPE): Define this instead.
10475 * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
10476 (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
10477 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
10478 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
10479 (TARGET_MANGLE_TYPE): Define this instead.
10480 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
10481 to...
10482 (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
10483 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
10484 (TARGET_MANGLE_TYPE): Define this instead.
10485 * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
10486 (s390_mangle_type): This.
10487 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
10488 (TARGET_MANGLE_TYPE): Define this instead.
10489 * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
10490 (sparc_mangle_type): This.
10491 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
10492 (TARGET_MANGLE_TYPE): Define this instead.
10493 * cp/mangle.c (write_type): Call mangle_type target hook on all
10494 types before mangling. Use original type, not main variant, as
10495 argument.
10496 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
10497 (TARGET_MANGLE_TYPE): This.
10498 * target.h (gcc_target): Rename mangle_fundamental_type to
10499 mangle_type.
10500 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
10501 (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
10502
10503 2007-07-25 Julian Brown <julian@codesourcery.com>
10504 Paul Brook <paul@codesourcery.com>
10505 Joseph Myers <joseph@codesourcery.com>
10506 Mark Shinwell <shinwell@codesourcery.com>
10507
10508 * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
10509 * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
10510 (with_fpu): Allow --with-fpu=neon.
10511 * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
10512 * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
10513 * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
10514 * config/arm/arm-protos.h (neon_immediate_valid_for_move)
10515 (neon_immediate_valid_for_logic, neon_output_logic_immediate)
10516 (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
10517 (neon_emit_pair_result_insn, neon_disambiguate_copy)
10518 (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
10519 (output_move_neon): Add prototypes.
10520 * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
10521 (all_fpus): Add FPUTYPE_NEON.
10522 (fp_model_for_fpu): Add NEON field.
10523 (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
10524 (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
10525 in registers.
10526 (arm_legitimate_address_p): Don't support fancy addressing for NEON
10527 structure moves.
10528 (thumb2_legitimate_address_p): Likewise.
10529 (neon_valid_immediate): Recognize and prepare constants suitable for
10530 NEON instructions.
10531 (neon_immediate_valid_for_move): New function. Recognize and prepare
10532 immediates for NEON move instructions.
10533 (neon_immediate_valid_for_logic): New function. Recognize and
10534 prepare immediates for NEON logic instructions.
10535 (neon_output_logic_immediate): New function. Create asm string
10536 suitable for outputting immediate logic instructions.
10537 (neon_pairwise_reduce): New function. Implement reduction using
10538 pairwise operations.
10539 (neon_expand_vector_init): New function. Expand a (possibly
10540 non-constant) vector initialization.
10541 (neon_vector_mem_operand): New function. Memory operands supported
10542 for quad-word loads/stores to/from ARM or NEON registers. Don't
10543 allow base+offset addressing for core regs.
10544 (neon_struct_mem_operand): New function. Valid mems for NEON
10545 structure moves.
10546 (coproc_secondary_reload_class): Enable NEON registers to be loaded
10547 from neon_vector_mem_operand addresses without a secondary register.
10548 (add_minipool_forward_ref): Handle >8-byte minipool entries.
10549 (add_minipool_backward_ref): Likewise.
10550 (dump_minipool): Likewise.
10551 (push_minipool_fix): Likewise.
10552 (output_move_quad): New function. Output quad-word moves, loads and
10553 stores using ARM registers.
10554 (output_move_vfp): Add support for vectors in VFP (NEON) D
10555 registers.
10556 (output_move_neon): Output a NEON load/store to/from a quadword
10557 register.
10558 (arm_print_operand): Implement new codes:
10559 - 'c' for unadorned integers (without a # sign).
10560 - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
10561 mode.
10562 - 'e', 'f' for the low and high D parts of a NEON Q register.
10563 - 'q' outputs a NEON Q register.
10564 - 'h' outputs ranges of D registers for VLDM/VSTM etc.
10565 - 'T' prints NEON opcode features from a coded bitmask.
10566 - 'F' is similar to T, but signed/unsigned codes both print as
10567 'i'.
10568 - 't' is similar to T, but 'u' is printed instead of 'p'.
10569 - 'O' prints 'r' if NEON instruction should perform rounding (as
10570 specified by bitmask), else prints nothing.
10571 - '#' is a punctuation character to stop operand numbers from
10572 running together with following digits in the assembler
10573 strings for instructions (when using mode attributes).
10574 (arm_assemble_integer): Handle extra NEON vector modes. Permute
10575 constant vectors in big-endian mode, where necessary.
10576 (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
10577 Handle EI, OI, CI, XI modes.
10578 (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
10579 (ashrv2si3): Rename IWMMXT2_BUILTINs to...
10580 (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
10581 (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
10582 (neon_builtin_type_bits): Add enumeration, one bit for each vector
10583 type.
10584 (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
10585 (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
10586 to turn v8qi, etc. into bits defined above.
10587 (neon_itype): New enumeration. Classifications of NEON builtins.
10588 (neon_builtin_datum): Define struct. Contains information about
10589 a single builtin (with multiple modes).
10590 (CF): Define helper macro for...
10591 (VAR1...VAR10): Define builtins with a type, name and 1-10 different
10592 modes.
10593 (neon_builtin_data): New array. Define information about builtins
10594 for use during initialization/expansion.
10595 (arm_init_neon_builtins): New function.
10596 (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
10597 true.
10598 (neon_builtin_compare): New function.
10599 (locate_neon_builtin_icode): New function. Find an insn code for a
10600 builtin given a function code for that builtin. Also return type of
10601 builtin (NEON_BINOP, NEON_UNOP etc.).
10602 (builtin_arg): New enumeration. Types of arguments for builtins.
10603 (arm_expand_neon_args): New function. Expand a generic NEON builtin.
10604 Takes a variable argument list of builtin_arg types, terminated by
10605 NEON_ARG_STOP.
10606 (arm_expand_neon_builtin): New function. Expand a NEON builtin.
10607 (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
10608 (neon_emit_pair_result_insn): New function. Support returning pairs
10609 of vectors via a pointer.
10610 (neon_disambiguate_copy): New function. Set up operands for a
10611 multi-word copy such that registers do not get clobbered.
10612 (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
10613 ARM_BUILTIN_NEON_BASE.
10614 (arm_file_start): Set float-abi attribute for NEON.
10615 (arm_vector_mode_supported_p): Enable NEON vector modes.
10616 (arm_mangle_map_entry): New.
10617 (arm_mangle_map): New.
10618 (arm_mangle_vector_type): New.
10619 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
10620 when appropriate.
10621 (TARGET_NEON): New macro. Target supports NEON.
10622 (fputype): Add FPUTYPE_NEON.
10623 (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
10624 for vectorization based on command-line arg.
10625 (NEON_REGNO_OK_FOR_NREGS): Define.
10626 (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
10627 (VALID_NEON_STRUCT_MODE): Define.
10628 (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
10629 (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
10630 * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
10631 (consttable_16): Add pattern for outputting 16-byte minipool
10632 entries.
10633 (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
10634 vec-common.md).
10635 (vec-common.md, neon.md): Include md files.
10636 * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
10637 * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
10638 (memory_constraint "Ut", "Un", "Us"): Define.
10639 * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
10640 (MMX_char): New mode attribute.
10641 (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
10642 (*add<mode>3_iwmmxt): New insn pattern.
10643 (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
10644 (*sub<mode>3_iwmmxt): New insn pattern.
10645 (mulv4hi3): Rename to...
10646 (*mulv4hi3_iwmmxt): This.
10647 (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
10648 (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
10649 (uminv4hi3, uminv2si3): Remove. Replace with...
10650 (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
10651 (*umin<mode>3_iwmmxt): These.
10652 (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
10653 (ashr<mode>3_iwmmxt): This new pattern.
10654 (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
10655 (lshr<mode>3_iwmmxt): This new pattern.
10656 (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
10657 (ashl<mode>3_iwmmxt): This new pattern.
10658 * config/arm/neon-docgen.ml: New file. Generate documentation for
10659 intrinsics.
10660 * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
10661 * config/arm/arm_neon.h: New (autogenerated).
10662 * config/arm/neon-testgen.ml: New file. Generate NEON tests
10663 automatically.
10664 * config/arm/neon.md: New file. Define NEON instructions.
10665 * config/arm/neon.ml: New file. Abstract description of NEON
10666 instructions, used to generate arm_neon.h header, documentation and
10667 tests.
10668 * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
10669 * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
10670 support.
10671 * doc/extend.texi (ARM Built-in Functions): Rename and remove
10672 extraneous comma.
10673 (ARM NEON Intrinsics): New subsection.
10674 * doc/arm-neon-intrinsics.texi: New (autogenerated).
10675
10676 2007-07-25 Danny Smith <dannysmith@users.sourceforge.net>
10677
10678 * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
10679 prototype.
10680
10681 2007-07-24 Jan Hubicka <jh@suse.cz>
10682
10683 * regclass.c (move_table): New type.
10684 (move_cost, may_move_in_cost, may_move_out_cost): Use it.
10685 (init_move_cost): Break out from ...
10686 (init_reg_sets_1): ... here; simplify computation of
10687 have_regs-of_mode and contains_reg_of_mode.
10688 (record_reg_classes): Unswitch internal loops.
10689 (copy_cost): Trigger lazy initialization of move cost
10690 (record_address_regs): Likewise.
10691
10692 2007-07-24 Daniel Berlin <dberlin@dberlin.org>
10693
10694 * config/darwin.c (darwin_override_options): Don't force on
10695 flag_var_tracking_uninit when no debug info is requested.
10696
10697 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
10698
10699 * cfgloop.c (init_loops_structure): New function.
10700 (flow_loops_find): Create root of the loop tree unconditionally.
10701
10702 2007-07-24 Daniel Jacobowitz <dan@codesourcery.com>
10703
10704 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
10705
10706 2007-07-24 Jan Hubicka <jh@suse.cz>
10707
10708 * caller-save.c: Include ggc.h, gt-caller-save.h
10709 (reg_save_code, reg_restore_code): Rename to ...
10710 (cached_reg_save_code, cached_reg_restore_code): ... those.
10711 (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
10712 (reg_save_code, reg_restore_code): New functions.
10713 (init_caller_save): Do not intialize
10714 reg_save_code/reg_restore_code tables.
10715 * Makefile.in: (gt-caller-save.h): New.
10716
10717 2007-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
10718
10719 * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
10720 with the mode of the original operand instead of
10721 integer_one_node.
10722
10723 2007-07-23 Jan Hubicka <jH@suse.cz>
10724
10725 * i386.c (ix86_secondary_memory_needed): Break out to...
10726 (inline_secondary_memory_needed): ... here.
10727 (ix86_memory_move_cost): Break out to ...
10728 (inline_memory_move_cost): ... here; add support for IN value of 2 for
10729 maximum of input and output; fix handling of Q_REGS on 64bit.
10730 (ix86_secondary_memory_needed): Microoptimize.
10731
10732 2007-07-23 Sebastian Pop <sebpop@gmail.com>
10733
10734 * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
10735 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
10736 stmts_from_loop, known_dependences_p, build_rdg): New.
10737 * tree-data-ref.h: Depends on graphds.h.
10738 (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
10739 (build_rdg): Declared.
10740 * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
10741
10742 2007-07-23 Daniel Berlin <dberlin@dberlin.org>
10743
10744 * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
10745 ccp_min_invariant.
10746
10747 2007-07-23 Peter Bergner <bergner@vnet.ibm.com>
10748 Jakub Jelinek <jakub@redhat.com>
10749
10750 PR middle-end/PR28690
10751 * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow
10752 EQ compares.
10753 * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
10754 and MEM_POINTER operands over REG and MEM operands.
10755 (swap_commutative_operands_p): Change return value to bool.
10756 * rtl.h: Update the corresponding prototype.
10757 * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
10758 instead of gen_rtx_PLUS.
10759 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
10760 value to bool. Change function arguments to rtx's and update code
10761 to match.
10762 (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
10763 calls to match the new declaration.
10764 * simplify-rtx.c (simplify_associative_operation): Don't
10765 reorder simplify_binary_operation arguments.
10766
10767 2007-07-23 Richard Sandiford <richard@codesourcery.com>
10768
10769 * config/mips/mips.c (override_options): Use mips_costs to derive
10770 the default branch cost.
10771 * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
10772 than mips_costs.
10773 * config/mips/mips.opt (mbranch-cost=): New option.
10774 * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
10775
10776 2007-07-23 Richard Sandiford <richard@codesourcery.com>
10777
10778 * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
10779 (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
10780 * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
10781 instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
10782
10783 2007-07-23 Richard Sandiford <richard@codesourcery.com>
10784
10785 * config/mips/constraints.md (ks): New constraint.
10786 * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
10787 (*add<mode>3_mips16): ...here.
10788
10789 2007-07-21 Uros Bizjak <ubizjak@gmail.com>
10790
10791 * optabs.h (enum optab_index): Add new OTI_signbit.
10792 (signbit_optab): Define corresponding macro.
10793 (enum insn_code signbit_optab[]): Remove array.
10794 * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
10795 (expand_copysign_absneg): If back end provides signbit insn, use it
10796 instead of bit operations on floating point argument.
10797 * builtins.c (enum insn_code signbit_optab[]): Remove array.
10798 (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code
10799 for availability of signbit insn.
10800
10801 * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
10802 signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
10803 SSE mode is not active.
10804 (isinf<mode>2): Disable for mfpmath=sse,387.
10805
10806 2007-07-22 Ben Elliston <bje@au.ibm.com>
10807
10808 * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
10809 `class' parameter.
10810 * struct-equiv.c (note_local_live): Likewise for `y_regno'.
10811
10812 2007-07-20 Richard Guenther <rguenther@suse.de>
10813
10814 * tree-cfg.c (verify_expr): COND_EXPRs can have any
10815 integral typed condition.
10816 * tree-ssa.c (useless_type_conversion_p): Do not preserve
10817 booleanness. Only preserve conversions from a non-base
10818 type to a base type, not in general between types with
10819 different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
10820 * tree.def (COND_EXPR): Document that the condition
10821 can be of any integral type.
10822
10823 2007-07-20 Nigel Stephens <nigel@mips.com>
10824 Richard Sandiford <richard@codesourcery.com>
10825
10826 * config/mips/mips.h (mips_dwarf_regno): Declare.
10827 (DBX_REGISTER_NUMBER): Remove redundant brackets.
10828 (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
10829 (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
10830 (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
10831 (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
10832 (REG_CLASS_NAMES): Update accordingly.
10833 * config/mips/mips.c (mips_dwarf_regno): New array.
10834 (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
10835 (mips_subword): Remove special handling for accumulator registers.
10836 (override_options): Initiailize mips_dwarf_regno. Remove use
10837 of ACC_HI_REG_P.
10838 (mips_swap_registers): New function.
10839 (mips_conditional_register_usage): Swap accumulator registers
10840 around if TARGET_LITTLE_ENDIAN.
10841 (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
10842 * config/mips/constraints.md (h, l): Use the endianness to choose
10843 between MD0_REG and MD1_REG.
10844 * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
10845 alternative-dependent template.
10846
10847 2007-07-20 Richard Sandiford <richard@codesourcery.com>
10848
10849 * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
10850 no_new_pseudos.
10851
10852 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
10853
10854 * function.c (thread_prologue_and_epilogue_insns): Fix exit
10855 predecessor fallthru flags.
10856
10857 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
10858
10859 * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
10860 of compare to the same type.
10861 * cfgloopmanip.c (add_loop): Update information about loop exits.
10862 (loop_version): Remove the innermost loop requirement.
10863 * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
10864 to sizetype for pointers.
10865
10866 2007-07-18 H.J. Lu <hongjiu.lu@intel.com>
10867
10868 * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
10869 (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
10870 (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
10871
10872 * config/dfp-bit.c: Empty for TFmode conversions.
10873
10874 2007-07-18 Caroline Tice <ctice@apple.com>
10875
10876 * var-tracking.c (find_src_status): Check for COND_EXEC insns
10877 and handle them correctly; check that src is not NULL before
10878 trying to use it.
10879 (find_src_set_src): Likewise.
10880
10881 2007-07-18 Bob Wilson <bob.wilson@acm.org>
10882
10883 * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
10884 (struct alignment_context, init_alignment_context): New.
10885 (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
10886 * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
10887 (XCHAL_HAVE_S32C1I): Likewise.
10888 (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
10889 * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
10890 (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
10891 (ATOMIC, HQI): New macros.
10892 (memory_barrier, *memory_barrier): New.
10893 (sync_lock_releasesi): New.
10894 (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
10895 (sync_lock_test_and_set<mode>): New.
10896 (sync_<atomic><mode>): New.
10897 (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
10898 * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
10899 (xtensa_expand_atomic): New.
10900
10901 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10902
10903 PR target/30652
10904
10905 * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
10906 transformation for builtin ISNORMAL.
10907 (expand_builtin): Handle BUILT_IN_ISNORMAL.
10908 * builtins.def (BUILT_IN_ISNORMAL): New.
10909 * doc/extend.texi: Document isnormal.
10910
10911 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10912
10913 PR target/30652
10914
10915 * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
10916 optabs infrastructure. Provide generic implementation for
10917 FINITE/ISFINITE.
10918 (expand_builtin): Handle FINITE/ISFINITE.
10919 (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
10920 (fold_builtin_1): Likewise.
10921
10922 * builtins.def (BUILT_IN_ISFINITE): New.
10923
10924 * doc/extend.texi: Document isfinite.
10925
10926 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10927
10928 PR target/30652
10929 PR middle-end/20558
10930
10931 * builtins.c (expand_builtin_interclass_mathfn): Provide a
10932 generic fallback for isinf.
10933 * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
10934 calculation code ...
10935 * real.c (get_max_float): ... to here.
10936 * real.h (get_max_float): New.
10937
10938 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10939
10940 PR middle-end/32668
10941
10942 * builtin-attrs.def (ATTR_TYPEGENERIC,
10943 ATTR_CONST_NOTHROW_TYPEGENERIC): New.
10944
10945 * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
10946 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
10947 BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
10948 BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
10949
10950 * c-common.c (handle_type_generic_attribute): New.
10951 (c_common_attribute_table): Add "type generic".
10952
10953 * c-typeck.c (convert_arguments): Handle "type generic" functions.
10954
10955 2007-07-18 Daniel Berlin <dberlin@dberlin.org>
10956
10957 * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
10958 * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
10959 properly.
10960
10961 2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
10962
10963 PR target/32808
10964 * config/cris/cris.c (cris_print_index): Don't use XEXP before
10965 checking that the operand is an expression.
10966
10967 2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
10968 Danny Smith <dannysmith@users.sourceforge.net>
10969
10970 PR/other 30335
10971 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
10972 file mapping object in local namespace if Windows version later
10973 than NT4
10974
10975 2007-07-18 Richard Sandiford <richard@codesourcery.com>
10976
10977 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
10978 * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
10979 arm_cannot_force_const_mem.
10980 (arm_cannot_force_const_mem): New function.
10981 * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
10982 (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
10983 of arm_tls_referenced_p.
10984 * config/arm/arm.md (movsi): Split out-of-section constants when
10985 ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
10986 * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
10987
10988 2007-07-18 Richard Sandiford <richard@codesourcery.com>
10989
10990 * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
10991
10992 2007-07-18 Richard Sandiford <richard@codesourcery.com>
10993
10994 * config/mips/mips.md (*extendqihi2): Convert the destination
10995 to SImode.
10996
10997 2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10998
10999 * config/pa/fptr.c: Update license header.
11000 * config/pa/milli64.S: Likewise.
11001
11002 2007-07-17 Nick Clifton <nickc@redhat.com>
11003
11004 * COPYING_v3: New file. Contains version 3 of the GNU General
11005 Public License.
11006 * COPYING.LIB_v3: New file. Contains version 3 of the GNU
11007 Lesser General Public License.
11008 * doc/include/gpl_v3.texi: New file. Contains version 3 of
11009 the GNU General Public License.
11010
11011 2007-07-17 Zdenek Dvorak <dvorakz@suse.cz>
11012
11013 PR rtl-optimization/32773
11014 * cfglayout.c (force_one_exit_fallthru): New function.
11015 (cfg_layout_finalize): Use it.
11016
11017 2007-07-16 Richard Guenther <rguenther@suse.de>
11018 Uros Bizjak <ubizjak@gmail.com>
11019
11020 * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
11021 before forcing it to gimple operand.
11022
11023 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
11024 David Ung <davidu@mips.com>
11025
11026 * config/mips/mips.h (TUNE_24K): Define.
11027 (TUNE_MACC_CHAINS): Add TUNE_24K.
11028 * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
11029 imadd.
11030 * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
11031 (r74k_int_madd): .. this new reservation.
11032 (define_bypass): Fixed bypasses for r74k_int_madd to use
11033 mips_linked_madd_p.
11034 * config/mips/24k.md (define_bypass): Define new
11035 r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
11036
11037 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
11038 Nigel Stephens <nigel@mips.com>
11039
11040 * config/mips/mips.md: Include 20kc.md.
11041 * config/mips/20kc.md: New file.
11042 * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
11043 (mips_adjust_cost): Tweak for 20Kc.
11044 (mips_issue_rate): Likewise.
11045 * config/mips/mips.h (TUNE_20KC): Define.
11046
11047 2007-07-16 David Edelsohn <edelsohn@gnu.og>
11048
11049 * config/rs6000/rs6000.c (struct processor_cost): Add
11050 cache_line_size, l1_cache_lines, and simultaneous_prefetches
11051 fields.
11052 (*_cost): Add cache information.
11053 (rs6000_override_options): Set cache parameters.
11054
11055 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11056
11057 PR bootstrap/3456
11058 * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
11059 * doc/install.texi (mips-sgi-irix6): pthread support works now.
11060
11061 2007-07-16 Paul Brook <paul@codesourcery.com>
11062
11063 PR target/32753
11064 * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
11065 (cirrus_thumb2_movsi_insn): Ditto.
11066
11067 2007-07-15 Geoffrey Keating <geoffk@apple.com>
11068
11069 * config/rs6000/darwin-fallback.c (interpret_libc): Change
11070 CR2_REGNO to R_CR2.
11071
11072 2007-07-15 Andrew Haley <aph@redhat.com>
11073
11074 * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
11075 before looking in the context.
11076
11077 2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11078
11079 PR middle-end/32398
11080 PR middle-end/32769
11081 * pa-protos.h (pa_eh_return_handler_rtx): Declare.
11082 * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
11083 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
11084 (pa_output_function_prologue): Use rp_saved and
11085 current_function_is_leaf to generate .CALLINFO statement.
11086 (hppa_expand_prologue): Set rp_saved.
11087 (hppa_expand_epilogue): Use rp_saved.
11088 (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
11089 * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
11090
11091 2007-07-14 Dirk Mueller <dmueller@suse.de>
11092
11093 * omega.c (coalesce): Fix memory leak on early exit.
11094 * matrix-reorg.c (check_allocation_function): Likewise.
11095 * tree-vect-transform.c (vect_get_new_vect_var): free result
11096 of concat().
11097 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
11098 pass pointer to edge vector
11099 (partition_hot_cold_basic_blocks): Fix memory leak.
11100 * collect2.c (prefix_from_string): Free temporary storage.
11101 * reload1.c (fixup_abnormal_edges): Free sbitmap.
11102
11103 2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org>
11104
11105 * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
11106 (DO_GLOBAL_DTORS_BODY): Likewise.
11107
11108 2007-07-14 Sandra Loosemore <sandra@codesourcery.com>
11109 Nigel Stephens <nigel@mips.com>
11110
11111 * config/mips/mips.c (mips_classify_symbol): Don't return
11112 SYMBOL_SMALL_DATA for constant pool addresses if
11113 TARGET_EMBEDDED_DATA is true.
11114
11115 2007-07-14 Uros Bizjak <ubizjak@gmail.com>
11116
11117 * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
11118 except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
11119 __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
11120 __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
11121 __builtin_ia32_storehps, __builtin_ia32_storelps,
11122 __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
11123 __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
11124 __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
11125 __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
11126 __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
11127 __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
11128 __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
11129 __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
11130 using def_builtin_const.
11131
11132 2007-07-14 Eric Botcazou <ebotcazou@adacore.com>
11133
11134 PR tree-optimization/32705
11135 * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
11136 (simplify_binary_expression): Use SSA_VAL consistently.
11137
11138 2007-07-13 David Edelsohn <edelsohn@gnu.org>
11139
11140 * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
11141 (SPEFSCR_REGNO): Delete definition.
11142 * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
11143 COUNT_REGISTER_REGNUM -> CTR_REGNO.
11144 * config/rs6000/rs6000.h: Do not define *_REGNO.
11145 LINK_REGISTER_REGNUM -> LR_REGNO.
11146 COUNT_REGISTER_REGNUM -> CTR_REGNO.
11147 * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO.
11148 COUNT_REGISTER_REGNUM -> CTR_REGNO.
11149 * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
11150 R_VRSAVE, R_VSCR. Use them.
11151 * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
11152 R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them.
11153 * config/rs6000/rs6000.md: Define REGNO constants. Use them.
11154 * config/rs6000/aix.h: Define R_LR. Use it.
11155
11156 2007-07-13 Caroline Tice <ctice@apple.com>
11157
11158 * toplev.c (process_options): Turn flag_var_tracking_uninit off when
11159 flag_var_tracking is explicitly turned off (i.e. when variable
11160 tracking is not feasible); otherwise, turn flag_var_tracking on when
11161 flag_var_tracking_uninit is on.
11162 * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
11163 note definitions, to allow recording of initialization status in the
11164 notes.
11165 * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
11166 (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
11167 determine if two note locations are equal.
11168 (output_loc_list): Don't output list entries whose start & end labels
11169 are the same.
11170 (reg_loc_descriptor): Add parameter for initialization status; pass it
11171 to other loc descriptor functions.
11172 (one_reg_loc_descriptor): Add parameter for initialization status;
11173 check its value and add DW_OP_GNU_uninit to returned loc descr if
11174 appropriate.
11175 (multiple_reg_loc_descriptor): Add parameter for initialization
11176 status;
11177 pass init status argument to other loc descriptor functions; check
11178 value of intialization parameter and add DW_OP_GNU_uninit to returned
11179 loc descr if appropriate.
11180 (based_loc_descr): Add parameter for initialization status; add new
11181 variable for return value; check value of initialization parameter and
11182 add DW_OP_GNU_uninit to returned loc descr if appropriate.
11183 (concatn_mem_loc_descriptor): Add parameter for initialization status;
11184 pass init status argument to other loc descriptor functions; check
11185 value of intialization parameter and add DW_OP_GNU_uninit to returned
11186 loc descr if appropriate.
11187 (mem_loc_descriptor): Likewise.
11188 (concat_loc_descriptor): Likewise.
11189 (concatn_loc_descriptor): Likewise.
11190 (loc_descriptor): Add parameter for initialization status; pass it as
11191 argument to other loc descriptor function calls.
11192 (loc_descriptor_from_tree_1): Add appropriate initialization status
11193 to loc descriptor function calls.
11194 (add_location_or_const_value_attribute): Get initialization status
11195 from VAR_LOCATION note; add initialization status to loc descriptor
11196 function calls.
11197 * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
11198 * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
11199 status is uninitialized, add "[uninint]" to output.
11200 * common.opt (fvar-tracking-uninit): New option, similar to
11201 fvar-tracking, to turn on tracking of uninitialized variables; creates
11202 a new global flag, flag_var_tracking_uninit.
11203 * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
11204 (enum var_init_status): New type, for var initialization status field.
11205 * var-tracking.c (struct location_chain_def): Two new fields, init,
11206 for initialization status, and set_src for the assignment value expr.
11207 (unshare_variable): New parameter for initialization status;
11208 initialize new init and set_src fields.
11209 (var_reg_set): New parameters for initialization status and value;
11210 pass them to set_variable_part.
11211 (var_mem_set): Likewise.
11212 (get_init_value): New function.
11213 (var_reg_delete_and_set): New initialization status & value
11214 parameters; add call to get_init_value if status is unknown; pass new
11215 parameters to clobber_variable_part and var_reg_set.
11216 (var_mem_delete_and_set): Likewise.
11217 (var_reg_delete): Pass null set_src value to clobber_variable_part.
11218 (var_mem_delete): Likewise.
11219 (variable_union): Pass status to unshare_variable; initialize new init
11220 and set_src fields. If flag_var_tracking_uninit is not set, force
11221 status to initialized.
11222 (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
11223 used later to get the set_src value.
11224 (find_src_status): New function.
11225 (find_src_set_src): New function.
11226 (compute_bb_dataflow): Pass init status to calls to var_reg_set,
11227 var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
11228 MO_SET, get set_src value and pass it to var_reg_delete_and_set
11229 and var_mem_delete_and_set.
11230 (dump_variable): Print out "[uninit]" if appropriate.
11231 (set_variable_part): Add new initialization and set_src parameters;
11232 pass status to unshare_variable; set node->init and node- >set_src
11233 fields and modify slot in hash table appropriately; save the init and
11234 set_src values if appropriate and assign to the new node.
11235 (clobber_variable_part): New set_src parameter; if two nodes have
11236 same variable and same location but different set_src (assignment)
11237 values, clobber old node.
11238 (delete_variable_part): Pass init status to unshare_variable.
11239 (emit_note_insn_var_location): Add initialized var; assign var's init
11240 status to new 'initialized'; pass new init status field to calls to
11241 gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
11242 status to initialized.
11243 (emit_notes_in_bb): Pass initialization status to calls to
11244 var_reg_set, var_mem_set, var_reg_delete_and_set and
11245 var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
11246 var_reg_delete_and_set and var_mem_delete_and_set; call
11247 emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
11248 make up for change in add_stores.
11249 (vt_add_function_parameters): Add status to calls to
11250 set_variable_part.
11251 * config/darwin.c (darwin_override_options): Turn on uninitialized
11252 tracking automatically, if var_tracking is on and the system is
11253 10.5 or higher.
11254
11255 2007-07-13 Sa Liu <saliu@de.ibm.com>
11256
11257 * config.gcc: Add options for arch and tune on SPU.
11258 * config/spu/predicates.md: Add constant operands 0 and 1.
11259 * config/spu/spu-builtins.def: Add builtins for double precision
11260 floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt,
11261 si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
11262 spu_testsv.
11263 * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with
11264 a CELLEDP target.
11265 * config/spu/spu-protos.h: Add new function prototypes.
11266 * config/spu/spu.c (spu_override_options): Check options -march and
11267 -mtune.
11268 (spu_comp_icode): Add comparison code for DFmode and vector mode.
11269 (spu_emit_branch_or_set): Use the new code for DFmode and vector
11270 mode comparison.
11271 (spu_const_from_int): New. Create a vector constant from 4 ints.
11272 (get_vec_cmp_insn): New. Get insn index of vector compare instruction.
11273 (spu_emit_vector_compare): New. Emit vector compare.
11274 (spu_emit_vector_cond_expr): New. Emit vector conditional expression.
11275 * config/spu/spu.h: Add options -march and -mtune. Define processor
11276 types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro
11277 CANONICALIZE_COMPARISON.
11278 * config/spu/spu.md: Add new insns for double precision compare
11279 and double precision vector compare. Add vcond and smax/smin patterns
11280 to enable DFmode vector conditional expression.
11281 * config/spu/spu.opt: Add options -march and -mtune.
11282 * config/spu/spu_internals.h: Add builtins for CELLEDP target:
11283 si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for
11284 both CELL and CELLEDP targets: spu_testsv.
11285 * config/spu/spu_intrinsics.h: Add flag mnemonics for test special
11286 values.
11287
11288 2007-07-13 Richard Guenther <rguenther@suse.de>
11289
11290 PR tree-optimization/32721
11291 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
11292 TREE_THIS_VOLATILE on the folded reference.
11293 * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
11294 if the array reference has TREE_THIS_VOLATILE set.
11295
11296 2007-07-13 H.J. Lu <hongjiu.lu@intel.com>
11297
11298 PR other/32188
11299 * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
11300
11301 2007-07-13 Andreas Schwab <schwab@suse.de>
11302
11303 * gengtype-lex.l: Allow declarations to be indented.
11304
11305 2007-07-12 Geoffrey Keating <geoffk@apple.com>
11306
11307 * ginclude/tgmath.h: New.
11308 * config.gcc: Use GCC's tgmath.h on non-glibc systems.
11309 * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
11310 * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
11311 * configure: Regenerate.
11312
11313 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
11314
11315 * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
11316 correct index when setting register save state for xd
11317 registers.
11318
11319 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
11320
11321 * config/sh/sh.c (mark_use): Remove.
11322
11323 2007-07-12 Paul Brook <paul@codesourcery.com>
11324
11325 * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
11326 reg does not overlap return value.
11327
11328 2007-07-12 Daniel Berlin <dberlin@dberlin.org>
11329
11330 * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
11331 (set_expression_vuses): Ditto.
11332 (init_pre): Initialize expression_vuses.
11333
11334 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
11335
11336 * config/i386/sse.md (storentdf, storentsf): New.
11337
11338 2007-07-12 Geoffrey Keating <geoffk@apple.com>
11339
11340 * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
11341 FUNCTION_DECL.
11342 * tree.c (build_decl_stat): Move code from here...
11343 (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN.
11344 (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment
11345 about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
11346 * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
11347 * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
11348 FUNCTION_BOUNDARY.
11349
11350 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
11351 Devang Patel <dpatel@apple.com>
11352
11353 PR tree-optimization/25413
11354 * targhooks.c (default_builtin_vector_alignment_reachable): New.
11355 * targhooks.h (default_builtin_vector_alignment_reachable): New.
11356 * tree.h (contains_packed_reference): New.
11357 * expr.c (contains_packed_reference): New.
11358 * tree-vect-analyze.c (vector_alignment_reachable_p): New.
11359 (vect_enhance_data_refs_alignment): Call
11360 vector_alignment_reachable_p.
11361 * target.h (vector_alignment_reachable): New builtin.
11362 * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
11363 * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
11364 (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
11365
11366 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
11367
11368 * target.h (builtin_vectorization_cost): Add new target builtin.
11369 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
11370 * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
11371 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
11372 * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
11373 uninitialized variables.
11374 * tree-vect-transform.c (cost_for_stmt): New function.
11375 (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
11376 using cost 1 for all scalar stmts. Be less conservative when
11377 estimating the number of prologue/epulogue iterations. Call
11378 targetm.vectorize.builtin_vectorization_cost. Return
11379 min_profitable_iters-1.
11380 (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
11381 initialization cost instead of TARG_VEC_STMT_COST. Use
11382 TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
11383 epilogue code. Fix epilogue cost computation.
11384 * config/spu/spu.c (spu_builtin_vectorization_cost): New.
11385 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
11386 * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
11387 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
11388 (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
11389 (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
11390
11391 2007-07-12 Richard Guenther <rguenther@suse.de>
11392
11393 * gimplify.c (gimplify_conversion): Make sure that the result
11394 from maybe_fold_offset_to_reference is trivially convertible
11395 to the desired type before doing the simplification.
11396 (gimplify_expr): Likewise.
11397 * fold-const.c (fold_binary): Use the correct types for
11398 building the simplified expression.
11399
11400 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
11401
11402 PR rtl-optimization/32729
11403 * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
11404 that fallthru to exit.
11405
11406 2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org>
11407
11408 * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
11409 (symDTPOFF2reg): Likewise.
11410
11411 2007-07-11 Daniel Berlin <dberlin@dberlin.org>
11412
11413 PR tree-optimization/32663
11414
11415 * tree.h (VALUE_HANDLE_VUSES): Remove.
11416 (struct tree_value_handle): Remove vuses.
11417
11418 * tree-vn.c (create_value_handle_for_expr): Don't set
11419 VALUE_HANDLE_VUSES.
11420
11421 * tree-ssa-pre.c (expression_vuses): New.
11422 (alloc_expression_id): Set up expression_vuses.
11423 (get_expression_vuses): New.
11424 (set_expression_vuses): Ditto.
11425 (clear_expression_ids): Modify for expression_vuses.
11426 (phi_translate_1): Ditto.
11427 (phi_translate_set): Ditto.
11428 (value_dies_in_block_x): Ditto
11429 (valid_in_sets): Ditto.
11430 (add_to_sets): Ditto.
11431 (find_existing_value_expr): Ditto.
11432 (create_value_handle_for_expr): Ditto.
11433 (make_values_for_stmt): Ditto.
11434 (vuse_equiv): Remove.
11435
11436 2007-07-11 Alexandre Oliva <aoliva@redhat.com>
11437
11438 * Makefile.in (mostlyclean): Remove object files.
11439
11440 2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com>
11441
11442 * toplev.c (no_new_pseudos): Deleted.
11443 * rtl.h (no_new_pseudos): Deleted.
11444 * tree-pass.h (pass_no_new_pseudos): Deleted.
11445 * passes.c (pass_no_new_pseudos): Deleted.
11446 * final.c (rest_of_clean_state): Removed no_new_pseudos.
11447 (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
11448 * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with
11449 reload_completed.
11450 * cfgcleanup.c (try_crossjump_to_edge): Ditto.
11451 * rtlhooks.c (gen_lowpart_general): Ditto.
11452 * optabs.c (prepare_operand): Ditto.
11453 * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
11454 no_new_pseudos.
11455 * modulo-sched.c (rest_of_handle_sms): Ditto.
11456 * see.c (rest_of_handle_see): Ditto.
11457 * ifcvt.c (if_convert): Ditto.
11458 (gate_handle_if_after_combine): Replaced no_new_pseudos with
11459 reload_completed.
11460 * init-regs.c (gate_initialize_regs): Deleted set of
11461 no_new_pseudos.
11462 * lower-subreg.c (decompose_multiword_subregs): Ditto.
11463 * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
11464 * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
11465
11466 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
11467
11468 PR target/32661
11469 * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
11470 (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
11471 (*vec_extractv2di_1_rex64): New insn pattern.
11472
11473 2007-07-11 David Daney <ddaney@avtrex.com>
11474
11475 * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
11476 return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN
11477 for SIGNAL_UNWIND_RETURN_COLUMN.
11478 * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
11479 (DWARF_FRAME_REGNUM): Rewrite.
11480 (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
11481
11482 2007-07-11 Nick Clifton <nickc@redhat.com>
11483
11484 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
11485 delta and use gen_int_mode in place of GET_INT instead.
11486
11487 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
11488
11489 * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
11490 and letter field.
11491
11492 2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
11493
11494 * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
11495 (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
11496 types or not.
11497 * params.h (VERIFY_CANONICAL_TYPES): Remove.
11498 (USE_CANONICAL_TYPES): New.
11499 * doc/invoke.texi (verify-canonical-types): Remove.
11500 (use-canonical-types): Add.
11501
11502 2007-07-11 Ulrich Weigand <uweigand@de.ibm.com>
11503
11504 * config/spu/spu.c (spu_optimization_options): Remove setting of
11505 parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
11506 (spu_override_options): Move it here.
11507
11508 2007-07-11 Richard Sandiford <richard@codesourcery.com>
11509
11510 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
11511 * config/mips/mips.c (mips_cpu_info_table): Mention
11512 MIPS_ISA_LEVEL_SPEC in the comment.
11513
11514 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
11515
11516 PR tree-optimization/32713
11517 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
11518
11519 2007-07-11 Paolo Carlini <pcarlini@suse.de>
11520
11521 PR middle-end/30482
11522 * c-opts.c (c_common_post_options): Do not change flag_complex_method
11523 conditional to flag_isoc99.
11524 (c_common_init_options): Do it here, unconditionally.
11525
11526 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
11527
11528 PR tree-optimization/32589
11529 * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
11530 * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
11531 * tree-ssa-propagate.c (valid_gimple_expression_p): New
11532 predicate, extracted from...
11533 (set_rhs): ...here. Call it for the expression on entry.
11534 * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
11535 * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
11536 (simplify_binary_expression): Use valid_gimple_expression_p
11537 to validate the simplification.
11538 * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
11539
11540 2007-07-11 Danny Smith <dannysmith@users.sourceforge.net>
11541
11542 * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
11543 DWARF2_DEBUG on 32 bit target too.
11544 (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.
11545
11546 2007-07-11 Nick Clifton <nickc@redhat.com>
11547
11548 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
11549 version for 64-bit hosts.
11550
11551 2007-07-10 David Daney <ddaney@avtrex.com>
11552
11553 * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
11554 predicate.
11555 (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library
11556 call.
11557 * config/mips/mips.c (mips_expand_synci_loop): New function.
11558 * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
11559 (UNSPEC_RDHWR): Same.
11560 (UNSPEC_SYNCI): Same.
11561 (UNSPEC_SYNC): Same.
11562 (clear_cache): New expand.
11563 (sync): New insn.
11564 (synci): Same.
11565 (rdhwr): Same.
11566 (clear_hazard): Same.
11567 * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
11568 function.
11569 * testsuite/gcc.target/mips/clear-cache-1.c: New test.
11570 * testsuite/gcc.target/mips/clear-cache-2.c: New test.
11571
11572 2007-07-10 Ian Lance Taylor <iant@google.com>
11573
11574 * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
11575 no_new_pseudos.
11576
11577 2007-07-10 David Daney <ddaney@avtrex.com>
11578
11579 * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
11580 * builtins.c (expand_builtin___clear_cache): New function.
11581 (expand_builtin): Call expand_builtin___clear_cache for
11582 BUILT_IN_CLEAR_CACHE case.
11583 * doc/extend.texi (__builtin___clear_cache): Document new builtin.
11584 * doc/md.texi (clear_cache): Document new instruction pattern.
11585 * testsuite/gcc.dg/builtins-64.c: New test.
11586
11587 2007-07-11 Hans-Peter Nilsson <hp@axis.com>
11588
11589 * config/cris/cris.md ("movsi"): Fix typo in last change.
11590
11591 2007-07-09 Geoffrey Keating <geoffk@apple.com>
11592
11593 PR 32617
11594 * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
11595 FUNCTION_DECLs.
11596 (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
11597 * varasm.c (assemble_start_function): Honor DECL_ALIGN
11598 for FUNCTION_DECLs. Don't use align_functions_log if
11599 DECL_USER_ALIGN.
11600 * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
11601 even for FUNCTION_DECLs.
11602 * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
11603 FUNCTION_DECLs.
11604 * tree.h (DECL_ALIGN): Update for new location of 'align'.
11605 (DECL_FUNCTION_CODE): Update for new location and name of
11606 'function_code'.
11607 (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
11608 (struct tree_decl_common): Move 'align' and 'off_align' out
11609 of union, ensure they're still on a 32-bit boundary. Remove
11610 other fields in union 'u1'.
11611 (struct tree_function_decl): Add field 'function_code' replacing
11612 'u1.f' in tree_decl_common.
11613 * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
11614 * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
11615 (Variable Attributes): Cross-reference 'aligned' attribute
11616 to Function Attributes.
11617 * flags.h (force_align_functions_log): Delete.
11618 * toplev.c (force_align_functions_log): Delete.
11619
11620 2007-07-10 Uros Bizjak <ubizjak@gmail.com>
11621
11622 PR target/32708
11623 * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
11624 (*vec_concatv2di_rex): New insn pattern.
11625
11626 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
11627
11628 PR target/32538
11629 * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
11630
11631 2007-07-10 Ian Lance Taylor <iant@google.com>
11632
11633 Replace no_new_pseudos in backends.
11634 * rtl.h (can_create_pseudo_p): Define.
11635 * config/darwin.c (machopic_indirect_data_reference): Use
11636 can_create_pseudo_p () instead of no_new_pseudos.
11637 (machopic_indirect_data_reference): Likewise.
11638 (machopic_legitimize_pic_address): Likewise.
11639 * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
11640 (alpha_emit_set_const_1): Likewise.
11641 (alpha_emit_set_const): Likewise.
11642 (alpha_emit_conditional_move): Likewise.
11643 (alpha_split_conditional_move): Likewise.
11644 * config/alpha/alpha.md (various splitters): Likewise.
11645 (movti): Likewise.
11646 * config/arm/arm.c (legitimize_pic_address): Likewise.
11647 (arm_load_pic_register): Likewise.
11648 * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
11649 (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
11650 * config/bfin/bfin.c (legitimize_pic_address): Likewise.
11651 * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
11652 * config/cris/cris.md (movsi): Likewise.
11653 * config/frv/frv.md (symGOT2reg_hilo): Likewise.
11654 (symGOTOFF2reg_hilo): Likewise.
11655 (symGPREL2reg, symGPREL2reg_hilo): Likewise.
11656 * config/h8300/h8300.md (insv, extzv): Likewise.
11657 * config/i386/i386.c (ix86_expand_move): Likewise.
11658 (ix86_expand_vector_move): Likewise.
11659 (ix86_prepare_fp_compare_args): Likewise.
11660 (ix86_expand_carry_flag_compare): Likewise.
11661 * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
11662 (tls_dynamic_gnu2_combine_32): Likewise.
11663 (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
11664 * config/ia64/ia64.c (ia64_expand_move): Likewise.
11665 (ia64_expand_movxf_movrf): Likewise.
11666 * config/m32c/m32c.c (m32c_prepare_move): Likewise.
11667 (m32c_split_move): Likewise.
11668 (m32c_expand_insv): Likewise.
11669 * config/m68k/m68k.md (movsi): Likewise.
11670 * config/mips/mips.c (mips_force_temporary): Likewise.
11671 (mips_split_symbol): Likewise.
11672 (mips_move_integer): Likewise.
11673 (mips_legitimize_const_move): Likewise.
11674 * config/mn10300/mn10300.md (movsi): Likewise.
11675 * config/pa/pa.c (emit_move_sequence): Likewise.
11676 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
11677 (rs6000_got_register): Likewise.
11678 (create_TOC_reference): Likewise.
11679 (rs6000_machopic_legitimize_pic_address): Likewise.
11680 * config/rs6000/rs6000.md (add<mode>3): Likewise.
11681 (various splitters): Likewise.
11682 (iorsi3, xorsi3, iordi3, xordi3): Likewise.
11683 (movsi_got): Likewise.
11684 * config/s390/s390.c (emit_symbolic_move): Likewise.
11685 * config/s390/s390.md (movhi, movqi): Likewise.
11686 (load_multiple, store_multiple): Likewise.
11687 * config/score/score.c (score_force_temporary): Likewise.
11688 * config/sh/sh.c (prepare_move_operands): Likewise.
11689 (prepare_cbranch_operands): Likewise.
11690 (emit_fpu_switch): Likewise.
11691 (fpscr_set_from_mem): Likewise.
11692 * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
11693 (adddi3, subsi3): Likewise.
11694 (various splitters): Likewise.
11695 (divsi_inv_fp_combine): Likewise.
11696 (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
11697 (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
11698 (sne): Likewise.
11699 * config/sh/predicates.md (xor_operand): Likewise.
11700 * config/sparc/sparc.c (legitimize_tls_address): Likewise.
11701 * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
11702 (movdi_pic_label_ref): Likewise.
11703 * config/spu/spu.c (spu_split_immediate): Likewise.
11704 * config/alpha/alpha.md (various splitters): Remove test
11705 !no_new_pseudos || reload_completed.
11706 * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
11707 no_new_pseudos.
11708 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
11709 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
11710 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
11711 * config/score/score.c (th_output_mi_thunk): Likewise.
11712 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
11713 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
11714
11715 2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
11716
11717 PR rtl-optimization/32664
11718 * mode-switching.c (create_pre_exit): Skip barrier insns.
11719
11720 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
11721
11722 * tree-scalar-evolution.c (scev_const_prop): Add arguments to
11723 force_gimple_operand_bsi.
11724 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
11725 rewrite_use_compare): Ditto.
11726 * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
11727 Ditto.
11728 * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
11729 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
11730 * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
11731 * tree-profile.c (prepare_instrumented_value,
11732 tree_gen_interval_profiler, tree_gen_pow2_profiler,
11733 tree_gen_one_value_profiler, tree_gen_ic_profiler,
11734 tree_gen_ic_func_profiler, tree_gen_average_profiler,
11735 tree_gen_ior_profiler): Ditto.
11736 * tree-ssa-reassoc.c (negate_value): Ditto.
11737 * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
11738 Use force_gimple_operand_bsi.
11739 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
11740 * tree-if-conv.c (add_to_dst_predicate_list,
11741 find_phi_replacement_condition): Ditto.
11742 * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
11743 Call mark_symbols_for_renaming for new statements.
11744 * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
11745
11746 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
11747
11748 * cfghooks.c (remove_edge): New function.
11749 (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
11750 loop exit rescans.
11751 * cfghooks.h (remove_edge): Declare.
11752 * cfg.c (remove_edge): Renamed to remove_edge_raw.
11753 * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
11754
11755 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
11756
11757 * optabs.h: Added declaration for signbit_optab.
11758 * optabs.c: (init_optabs): Added initialization for signbit_optab.
11759 * genoptinit.c (optabs): Added entry for signbit insns.
11760 * builtins.c (expand_builtin_signbit): Added code to use a signbit
11761 insn, if available.
11762 * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
11763 * config/s390/s390.md (signbit<mode>2): New expander.
11764
11765 2007-07-09 Richard Guenther <rguenther@suse.de>
11766
11767 PR middle-end/32698
11768 * fold-const.c (fold_plusminus_mult_expr): Move constant
11769 arguments second to allow decomposing.
11770
11771 2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br>
11772
11773 Revert:
11774 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
11775 PR debug/23551
11776 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11777 Disregard DECL_FROM_INLINE.
11778
11779 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
11780
11781 PR target/27855
11782 * doc/invoke.texi: Add ftree-reassoc flag.
11783 * common.opt (ftree-reassoc): New flag.
11784 * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
11785 (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
11786
11787 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
11788
11789 PR tree-optimization/32681
11790 * tree-if-conv.c (find_phi_replacement_condition): Use the condition
11791 saved in second_edge->aux when first_bb is a loop header.
11792
11793 2007-07-09 Jan HUbicka <jh@suse.cz>
11794
11795 * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
11796
11797 2007-07-09 Richard Guenther <rguenther@suse.de>
11798
11799 * c-decl.c (start_function): Do not promote return type.
11800
11801 2007-07-08 Daniel Franke <franke.daniel@gmail.com>
11802
11803 * function.c (do_warn_unused_parameter): Do not warn if
11804 TREE_NO_WARNING is set.
11805
11806 2007-07-08 Andreas Schwab <schwab@suse.de>
11807
11808 * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
11809
11810 2007-07-08 Sandra Loosemore <sandra@codesourcery.com>
11811
11812 Revert this patch:
11813 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
11814
11815 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
11816 apply to assembly language, too.
11817 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
11818
11819 2007-07-07 Daniel Berlin <dberlin@dberlin.org>
11820
11821 Revert (note the sccvn portions are *not* reverted)
11822 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
11823
11824 Fix PR tree-optimization/23488
11825
11826 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
11827 handles.
11828 * tree-flow-inline.h (get_value_handle): Ditto.
11829 * tree-ssa-pre.c (decl_vh_map): New.
11830 (decl_node_pool): New.
11831 (can_value_number_operation): Support DECL_P.
11832 (can_PRE_operation): Ditto.
11833 (create_expression_by_pieces): Ditto.
11834 (find_existing_value_expr): Modify to differnetiate between
11835 addressing and top level.
11836 (create_value_handle_for_expr): Handle DECL's.
11837 (poolify_tree): Ditto.
11838 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
11839 (make_values_for_stmt): Handle DECL's properly.
11840 (init_pre): Reorg to not init useless things during FRE.
11841 (fini_pre): Ditto.
11842 * tree-flow.h: Include pointer-set.h.
11843 (decl_vh_map): Declare.
11844 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
11845
11846 2007-07-07 Eric Weddington <eweddington@cso.atmel.com>
11847
11848 * config/avr/constraints.md (define_memory_constraint "Q"): Fix
11849 the constraint description.
11850 * doc/md.texi: Update documentation of AVR constraints.
11851
11852 2007-07-07 Kazu Hirata <kazu@codesourcery.com>
11853
11854 * auto-inc-dec.c, config/arm/arm.c,
11855 config/m32r/constraints.md, config/mips/mips.md,
11856 config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
11857 df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
11858 tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
11859 typos. Follow spelling conventions.
11860 * doc/invoke.texi, doc/rtl.texi: Fix typos.
11861
11862 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
11863 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
11864
11865 * tree-ssa-operands.c (realloc_vop, realloc_vdef,
11866 realloc_vuse): Remove.
11867 * tree-ssa-operands.h: Remove the prototype for realloc_vdef
11868 and realloc_vuse.
11869
11870 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
11871
11872 Fix PR tree-optimization/23488
11873
11874 * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
11875 (try_to_simplify): Ditto.
11876 (visit_use): Ditto.
11877 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
11878 handles.
11879 * tree-flow-inline.h (get_value_handle): Ditto.
11880 * tree-ssa-pre.c (decl_vh_map): New.
11881 (decl_node_pool): New.
11882 (can_value_number_operation): Support DECL_P.
11883 (can_PRE_operation): Ditto.
11884 (create_expression_by_pieces): Ditto.
11885 (find_existing_value_expr): Modify to differnetiate between
11886 addressing and top level.
11887 (create_value_handle_for_expr): Handle DECL's.
11888 (poolify_tree): Ditto.
11889 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
11890 (make_values_for_stmt): Handle DECL's properly.
11891 (init_pre): Reorg to not init useless things during FRE.
11892 (fini_pre): Ditto.
11893 * tree-flow.h: Include pointer-set.h.
11894 (decl_vh_map): Declare.
11895 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
11896
11897 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
11898
11899 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
11900 apply to assembly language, too.
11901 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
11902
11903 2007-07-06 Ian Lance Taylor <iant@google.com>
11904 Zack Weinberg <zackw@panix.com>
11905
11906 PR middle-end/32441
11907 * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
11908
11909 2007-07-06 Richard Sandiford <richard@codesourcery.com>
11910
11911 * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
11912 (prefetch): Likewise if "pref" would be used.
11913
11914 2007-07-06 Josh Conner <jconner@apple.com>
11915
11916 PR middle-end/32602
11917 PR middle-end/32603
11918 * calls.c (store_one_arg): Handle arguments which are partially
11919 on the stack when detecting argument overlap.
11920
11921 2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
11922
11923 * reload1.c (choose_reload_regs): Set reload_spill_index for regs
11924 chosen during find_reloads.
11925
11926 2007-07-06 Richard Guenther <rguenther@suse.de>
11927
11928 * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
11929 TYPE_ARG_TYPES for verification of argument types. Use
11930 DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
11931 parameters as variable arguments.
11932
11933 2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
11934
11935 * libgcc2.h (word_type): Type definition removed.
11936 (cmp_return_type, shift_count_type): Type definitions added.
11937 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
11938 replaced with shift_count_type.
11939 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
11940 cmp_return_type.
11941 * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
11942 changed from word_type to Wtype.
11943 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
11944 replaced with shift_count_type.
11945 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
11946 cmp_return_type.
11947 * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
11948 and libgcc_shift_count attribute added.
11949 * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
11950 TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
11951 (TARGET_INITIALIZER): New target hooks added.
11952 * targhooks.c (default_libgcc_cmp_return_mode,
11953 default_libgcc_shift_count_mode): Default implementations for the new
11954 target hooks added.
11955 * targhooks.h (default_libgcc_cmp_return_mode,
11956 default_libgcc_shift_count_mode): Function prototypes added.
11957 * target.h (struct gcc_target): Fields for the new target hooks added.
11958 * optabs.c (expand_binop): Use shift_count_mode when expanding shift
11959 as library call.
11960 (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
11961 library call.
11962
11963 * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
11964 TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
11965
11966 * config/s390/s390.c (s390_libgcc_cmp_return_mode,
11967 s390_libgcc_shift_count_mode): Functions added.
11968 (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
11969 Target hooks defined.
11970
11971 2007-07-06 Richard Sandiford <richard@codesourcery.com>
11972
11973 * config/mips/mips.c (compute_frame_size): Restore the original
11974 gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
11975 fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
11976 Document why the difference is needed.
11977
11978 2007-07-06 Richard Guenther <rguenther@suse.de>
11979
11980 * c-common.c (boolean_increment): Use correctly typed
11981 constant.
11982
11983 2007-07-06 Richard Sandiford <richard@codesourcery.com>
11984
11985 * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
11986 the topmost argument register is not also included in the save mask.
11987 (mips16e_collect_argument_save_p): Take a pointer to the argument
11988 register, rather than a pointer to the number of arguments.
11989 (mips16e_collect_argument_saves): Only include argument saves
11990 that aren't in the register mask.
11991
11992 2007-07-06 Uros Bizjak <ubizjak@gmail.com>
11993
11994 PR rtl-optimization/32450
11995 * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
11996 to ensure that instructions are not moved into the prologue when
11997 profiling is on. Remove unused prologue_end variable.
11998 (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
11999 as a scheduling barrier.
12000
12001 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
12002
12003 PR debug/23551
12004 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
12005 Disregard DECL_FROM_INLINE.
12006
12007 2007-07-05 Adam Nemet <anemet@caviumnetworks.com>
12008
12009 * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
12010 IORing with a constant.
12011
12012 2007-07-05 Seongbae Park <seongbae.park@gmail.com>
12013
12014 PR rtl-optimization/32475
12015 * df-scan.c (df_def_record_1): Add a use of the stack pointer
12016 for every definition of the stack pointer.
12017
12018 2007-07-05 Richard Earnshaw <rearnsha@arm.com>
12019
12020 * arm.c (vfp3_const_double_index): Copy signed results of
12021 REAL_VALUE_TO_INT into unsigned vars.
12022
12023 2007-07-05 Richard Guenther <rguenther@suse.de>
12024
12025 PR middle-end/32639
12026 * alias.c (get_alias_set): Tread METHOD_TYPE the same as
12027 FUNCTION_TYPE.
12028 * tree-ssa.c (useless_type_conversion_p): Check canonical
12029 types early.
12030
12031 2007-07-05 Anatoly Sokolov <aesok@post.ru>
12032
12033 * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2,
12034 zero_extendhisi2): Change to define_insn_and_split.
12035 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
12036
12037 2007-07-05 Paolo Bonzini <bonzini@gnu.org>
12038
12039 * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
12040 pass_match_asm_constraints): New.
12041 * passes.c (init_optimization_passes): Add new pass.
12042 * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
12043 * function.h (struct function): Add has_asm_statement bit.
12044 (current_function_has_asm_statement): New.
12045 * tree-pass.h (pass_match_asm_constraints): New.
12046
12047 2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
12048
12049 * config/mips/mips.c (mips_file_start): Avoid declaration
12050 after code.
12051
12052 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
12053
12054 * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
12055
12056 2007-07-05 Uros Bizjak <ubizjak@gmail.com>
12057
12058 * rtl.def (NOTE): Change print format string to print
12059 operand 5 as a note insn name.
12060
12061 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
12062 David Ung <davidu@mips.com>
12063
12064 * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
12065 * doc/invoke.texi: (MIPS Options): Document them.
12066
12067 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
12068 David Ung <davidu@mips.com>
12069
12070 Add support for SmartMIPS ASE.
12071
12072 * optabs.c (expand_binop_directly): New, broken out from...
12073 (expand_binop): Here. Make it try rotating in the other
12074 direction even when the second operand isn't constant.
12075 * config/mips/mips.md (*lwxs): New.
12076 * config/mips/mips.opt (msmartmips): New.
12077 * config/mips/mips.c (mips_lwxs_address_p): New.
12078 (mips_rtx_costs): Make it recognize scaled indexed addressing.
12079 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
12080 __mips_smartmips when compiling for TARGET_SMARTMIPS.
12081 (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
12082 (ISA_HAS_LWXS): New.
12083 (ASM_SPEC): Add -msmartmips/-mno-smartmips.
12084 * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
12085 * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
12086 * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
12087 * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
12088 * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
12089 * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
12090
12091 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
12092
12093 * tree-vectorizer.c (new_loop_vec_info): Initialize
12094 LOOP_VINFO_COST_MODEL_MIN_ITERS.
12095 * tree-vectorizer.h (_loop_vec_info): Added new filed
12096 min_profitable_iters.
12097 (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
12098 (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
12099 * tree-vect-analyze.c (vect_analyze_operations): Set
12100 LOOP_VINFO_COST_MODEL_MIN_ITERS.
12101 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
12102 VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
12103 Fix calculation of peel_iters_prologue. Move consideration of epilogue
12104 and prologue cost to after they are computed.
12105 (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
12106 TARG_VEC_STMT_COST.
12107 (vect_model_simple_cost): Takes additional argument dt. Consider cost
12108 of creating vectors from scalars according to dt.
12109 (vect_model_store_cost): Likewise.
12110 (vectorizable_call): Use dt array instead of scalar dt. Call
12111 vect_model_simple_cost with additional argument dt.
12112 (vectorizable_assignment): Likewise.
12113 (vectorizable_operation): Likewise.
12114 (vectorizable_type_demotion): Likewise.
12115 (vectorizable_type_promotion): Likewise.
12116 (vectorizable_store): Use dt array instead of scalar dt. Call
12117 vect_model_store_cost with additional argument dt.
12118 (vect_do_peeling_for_loop_bound): Don't call
12119 vect_estimate_min_profitable_iters. Instead, lookup
12120 LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
12121 "may not be profitable".
12122
12123 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
12124
12125 PR testsuite/32014
12126 * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
12127 (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
12128 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
12129 (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns.
12130
12131 2007-07-05 Zdenek Dvorak <dvorakz@suse.cz>
12132
12133 * config/i386/i386.c (ix86_address_cost): Do not consider more complex
12134 addressing modes cheaper.
12135
12136 2007-07-05 Alexandre Oliva <aoliva@redhat.com>
12137
12138 * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
12139 (dw_ranges_struct): Rename block_num to num. Adjust.
12140 (dw_ranges_by_label_struct): New.
12141 (ranges_by_label, ranges_by_label_allocated,
12142 ranges_by_label_in_use): New variables.
12143 (add_ranges_num): Factored most of the code out of...
12144 (add_ranges): ... this one. Rewrite in terms of the former.
12145 (add_ranges_by_labels): New.
12146 (output_ranges): Output by-label ranges.
12147 (dwarf2out_finish): Output range for multiple-section
12148 compile_unit. Output standard DW_AT_low_pc in addition to
12149 unexpected DW_AT_entry_pc.
12150
12151 2007-07-04 Daniel Berlin <dberlin@dberlin.org>
12152
12153 PR tree-optimization/32604
12154 PR tree-optimization/32606
12155
12156 * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
12157 (compute_antic_safe): Removed.
12158 (ANTIC_SAFE_LOADS): Ditto.
12159 (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
12160 (execute_pre): Don't call compute_antic_safe.
12161 (vuse_equiv): New function.
12162 (make_values_for_stmt): Use it
12163 * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
12164 not always true.
12165
12166 2007-07-04 Anatoly Sokolov <aesok@post.ru>
12167
12168 PR target/31331
12169 * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
12170 rather than a decl.
12171 (avr_attribute_table): Make "naked" attribute apply to function types
12172 rather than to decls.
12173 (avr_handle_fntype_attribute): New function.
12174
12175 2007-07-04 Joseph Myers <joseph@codesourcery.com>
12176
12177 * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
12178 after \.
12179
12180 2007-07-04 David Ung <davidu@mips.com>
12181 Joseph Myers <joseph@codesourcery.com>
12182
12183 * config/mips/mips.md (type): Add logical, signext and move.
12184 (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
12185 *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
12186 *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
12187 combinations", *zero_extend<SHORT:mode><GPR:mode>2,
12188 *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
12189 *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
12190 *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
12191 *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
12192 *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
12193 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
12194 movv2sf_hardfloat_64bit): Use the new types.
12195 (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
12196 *movdf_softfloat, *movdf_mips16): Use "multi".
12197 (extendqihi2): Replace with a define_expand.
12198 (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
12199 Based on extend<SHORT:mode><GPR:mode>2 patterns.
12200 * config/mips/74k.md (r74k_int_logical): New reservation and
12201 bypasses.
12202 (r74k_int_arith): Remove "slt".
12203 * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
12204 config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
12205 config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
12206 config/mips/sb1.md, config/mips/sr71k.md: Add new types to
12207 reservations for "arith".
12208
12209 2007-07-04 Richard Guenther <rguenther@suse.de>
12210
12211 * tree-ssa.c (useless_type_conversion_p): Add handling for
12212 scalar float and vector types. Only call the types_compatible_p
12213 langhook for aggregate types as last resort. Follow the
12214 rules.
12215
12216 2007-07-04 Richard Guenther <rguenther@suse.de>
12217
12218 * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
12219 the same as NOP_EXPR.
12220
12221 2007-07-04 Nick Clifton <nickc@redhat.com>
12222
12223 * target.h (struct gcc_target): Add target_help field.
12224 * target-def.h (TARGET_HELP): New.
12225 (TARGET_INITIALIZER): Use TARGET_HELP.
12226 * opts.c (command_handle_option): Invoke target_help function, if
12227 defined, when the user has specified --target-help on the command
12228 line.
12229 * doc/invoke.texi: Mention that --target-help might print
12230 additional information.
12231 * doc/tm.texi: Document TARGET_HELP hook.
12232
12233 * arm.c (TARGET_HELP): Override default definition.
12234 (arm_target_help): New - display a wrapped list of cores and
12235 architectures supported.
12236
12237 2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
12238
12239 * config/v850/v850.c (expand_prologue): Make sure
12240 GEN_INT() argument is sign extended rather than zero extended.
12241 (expand_epilogue): Likewise.
12242 (output_move_double): Delete.
12243 * config/v850/v850-protos.h (output_move_double): Delete.
12244 * config/v850/v850.md (movdi): Delete.
12245 (*movdi_internal): Delete.
12246 (movdf): Delete.
12247 (*movdf_internal): Delete.
12248
12249 2007-07-04 Richard Sandiford <richard@codesourcery.com>
12250
12251 * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
12252 unless compiling RTP PIC.
12253
12254 2007-07-04 Richard Guenther <rguenther@suse.de>
12255
12256 PR tree-optimization/32482
12257 * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
12258 original ssa name if we didn't find a shift expression.
12259 Fix shift constant for bit zero test.
12260
12261 2007-07-04 Richard Sandiford <richard@codesourcery.com>
12262
12263 * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
12264
12265 2007-07-04 Richard Sandiford <richard@codesourcery.com>
12266
12267 * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
12268 * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
12269 * config/arm/vxworks.h (ASM_SPEC): Delete.
12270 (SUBTARGET_EXTRA_ASM_SPEC): Define.
12271
12272 2007-07-04 Sebastian Pop <sebpop@gmail.com>
12273
12274 * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
12275 (DDR_REVERSED_P): New.
12276 * tree-data-ref.c (initialize_data_dependence_relation,
12277 build_classic_dist_vector): Set DDR_REVERSED_P.
12278
12279 2007-07-04 Sebastian Pop <sebpop@gmail.com>
12280
12281 PR middle-end/32457
12282 * tree-data-ref.c (analyze_siv_subscript_cst_affine,
12283 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
12284 init_omega_for_ddr_1): Use non conservative number of iterations
12285 estimations.
12286 (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
12287 (analyze_siv_subscript): Remove FIXME and reinitialization of
12288 last_conflicts to chrec_dont_know.
12289 * testsuite/gfortran.dg/vect/pr32457.f90: New.
12290
12291 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
12292
12293 * tree.c (maybe_canonicalize_argtypes): Improve description.
12294
12295 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
12296
12297 * tree.c (maybe_canonicalize_argtypes): New.
12298 (build_function_type): Set canonical type.
12299 (build_method_type_directly): Ditto.
12300 (reconstruct_complex_type): Rebuild the METHOD_TYPE node
12301 properly.
12302
12303 2007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
12304
12305 * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
12306 like PLUS_EXPR.
12307 (rewrite_use_nonlinear_expr): Likewise.
12308
12309 2007-07-03 Seongbae Park <seongbae.park@gmail.com>
12310
12311 * rtl.def (UNSPEC, USE, CLOBBER): More comments.
12312
12313 2007-07-04 Ben Elliston <bje@au.ibm.com>
12314
12315 * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
12316 of this file.
12317
12318 * c-objc-common.c (c_types_compatible_p): Fix indentation.
12319
12320 * doc/tm.texi (Run-time Target): Capitalise "CPU".
12321 (Exception Handling): Likewise.
12322
12323 2007-07-03 Jan Hubicka <jh@suse.cz>
12324
12325 * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
12326
12327 2007-07-03 Eric Christopher <echristo@apple.com>
12328
12329 * doc/cppopts.texi: Add conflicting option note to -dM.
12330 * doc/invoke.texi: Add note about possible conflicts with
12331 -E for -dCHARS and note that -dM will not produce
12332 any results if there is no machine dependent reorg.
12333
12334 2007-07-03 Geoffrey Keating <geoffk@apple.com>
12335
12336 * tree.h (DECL_ALIGN): Back out previous change.
12337
12338 2007-07-03 Joseph Myers <joseph@codesourcery.com>
12339
12340 * configure.ac: Test for .dtprelword support on MIPS.
12341 * configure, config.in: Regenerate.
12342 * config/mips/mips.c (mips_output_dwarf_dtprel): New.
12343 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
12344
12345 2007-07-03 Julian Brown <julian@codesourcery.com>
12346
12347 * config.gcc (with_fpu): Allow --with-fpu=vfp3.
12348 * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
12349 * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
12350 * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
12351 capability.
12352 (all_fpus): Add FPUTYPE_VFP3.
12353 (fp_model_for_fpu): Add VFPv3 field.
12354 (arm_rtx_costs_1): Give cost to VFPv3 constants.
12355 (vfp3_const_double_index): New function. Return integer index of
12356 VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
12357 isn't suitable.
12358 (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
12359 and argument represents a valid RTX for a VFPv3 constant.
12360 (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
12361 two instructions.
12362 (vfp_emit_fstmd): Similar, for fstmd.
12363 (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
12364 constants, represented as integer indices.
12365 (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
12366 VFP_REGNO_OK_FOR_DOUBLE macros.
12367 (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
12368 (arm_file_start): Set float-abi attribute for VFPv3, and output
12369 correct ".fpu" assembler directive.
12370 (arm_dbx_register_numbering): Add FIXME.
12371 * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
12372 (fputype): Add FPUTYPE_VFP3.
12373 (FIXED_REGISTERS): Add 32 registers for D16-D31.
12374 (CALL_USED_REGISTERS): Likewise.
12375 (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
12376 of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
12377 (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
12378 (D7_VFP_REGNUM): New.
12379 (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
12380 (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
12381 (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
12382 (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
12383 (REG_ALLOC_ORDER): Adjust for VFPv3.
12384 (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
12385 (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
12386 VFP_LO_REGS, VFP_HI_REGS.
12387 (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
12388 (IS_VFP_CLASS): Define macro.
12389 (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
12390 IS_VFP_CLASS.
12391 (REGISTER_MOVE_COST): Likewise.
12392 * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
12393 * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
12394 (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
12395 (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
12396 (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
12397 (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
12398 (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
12399 (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
12400 (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
12401 (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
12402 (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
12403 where appropriate for single-word registers.
12404 (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
12405 As above. Fix type attributes.
12406 * config/arm/constraints.md (register_contraint "t"): Define.
12407 (register_constraint "w"): Change to D0-D15, or D0-D31 for
12408 VFPv3/NEON.
12409 (register_constraint "x"): Define.
12410 (constraint "Dv"): Define.
12411
12412 2007-07-03 Geoffrey Keating <geoffk@apple.com>
12413
12414 * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
12415
12416 2007-07-03 Tom Tromey <tromey@redhat.com>
12417
12418 * c-parser.c (objc_pq_context): Removed.
12419 (objc_need_raw_identifier): Likewise.
12420 (c_parser) <objc_pq_context>: New field.
12421 <objc_need_raw_identifier>: Likewise.
12422 (OBJC_NEED_RAW_IDENTIFIER): Removed.
12423 (c_lex_one_token): Update.
12424 (c_parser_objc_protocol_definition): Update.
12425 (c_parser_objc_method_definition): Update.
12426 (c_parser_objc_methodproto): Update.
12427 (c_parser_declspecs): Update.
12428
12429 2007-07-03 David Ung <davidu@mips.com>
12430
12431 * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
12432
12433 2007-07-03 David Ung <davidu@mips.com>
12434 Richard Sandiford <richard@codesourcery.com>
12435
12436 * doc/invoke.texi: Document -march=74kf3_2.
12437 * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
12438 (TUNE_74K): Check for it.
12439 * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
12440 (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
12441 * config/mips/mips.md (cpu): Add 74kf3_2.
12442 * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
12443 (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
12444 (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
12445 (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
12446 74kf3_2 to the CPU list.
12447 (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
12448 (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
12449 (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
12450 (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
12451 (r74kf3_2_fxfer_from_c1): New insn reservations.
12452
12453 2007-07-03 Richard Sandiford <richard@codesourcery.com>
12454 David Ung <davidu@mips.com>
12455
12456 * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
12457 -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx]
12458 and 74k[fx]. Document aliases for the new options.
12459 * config/mips/mips.h (PROCESSOR_24KF): Rename to...
12460 (PROCESSOR_24KF2_1): ...this.
12461 (PROCESSOR_24KX): Rename to...
12462 (PROCESSOR_24KF1_1): ...this.
12463 (PROCESSOR_74KF): Rename to...
12464 (PROCESSOR_74KF2_1): ...this.
12465 (PROCESSOR_74KX): Rename to...
12466 (PROCESSOR_74KF1_1): ...this.
12467 (TUNE_74K): Update PROCESSOR_* names.
12468 * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
12469 for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise
12470 the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names.
12471 (mips_rtx_cost_data): Update processor names in comments.
12472 (mips_issue_rate): Update PROCESSOR_* names.
12473 * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
12474 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
12475 * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
12476 to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*.
12477 Update cpu attribute names.
12478 (r24k_fpu_iss): Rename this reservation to...
12479 (r24kf2_1_fpu_iss): ...this and update all uses.
12480 (r24kx_fpu_iss): Rename this reservation to...
12481 (r24kf1_1_fpu_iss): ...this and update all uses.
12482 * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
12483 to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*.
12484 Update cpu attribute names.
12485
12486 2007-07-01 Kaz Kojima <kkojima@gcc.gnu.org>
12487
12488 * config/m32r/constraints.md: New file.
12489 * config/m32r/m32r.c: Include tm-constrs.h.
12490 (small_data_operand): Use satisfies_constraint_* instead of macro.
12491 (addr24_operand, gen_compare): Likewise.
12492 * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
12493 (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
12494 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
12495 EXTRA_CONSTRAINT): Likewise.
12496 * config/m32r/m32r.md: Include constraints.md.
12497 (*movsi_insn): Use satisfies_constraint_* instead of macro.
12498 (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
12499 * config/m32r/predicates.md (conditional_move_operand): Likewise.
12500 (two_insn_const_operand, int8_operand, uint16_operand,
12501 reg_or_int16_operand, reg_or_uint16_operand,
12502 reg_or_cmp_int16_operand, cmp_int16_operand,
12503 seth_add3_operand): Likewise.
12504
12505 2007-07-03 Eric Christopher <echristo@gmail.com>
12506
12507 * libgcc2.h: Conditionally declare __bswapsi2 and
12508 __bswapdi2.
12509
12510 2007-07-03 H.J. Lu <hongjiu.lu@intel.com>
12511
12512 * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
12513 defined.
12514
12515 2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12516
12517 PR target/28307
12518 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
12519 (__gthrw_pragma): Provide default definition.
12520 (__gthrw2): Use it.
12521 * gthr-posix.c (__gthrw_pragma): Define.
12522
12523 2007-07-03 Daniel Berlin <dberlin@dberlin.org>
12524
12525 * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
12526 before declaring inequality.
12527
12528 2007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk>
12529
12530 * combine.c (recog_for_combine): Log the success or failure of
12531 matching new insn patterns against the machine description in
12532 detailed dumps.
12533
12534 2007-07-03 Revital Eres <eres@il.ibm.com>
12535
12536 * ddg.c (print_sccs): New function.
12537 (check_sccs): New function.
12538 (create_ddg_all_sccs): Use it.
12539 * ddg.h (print_sccs): Declare.
12540 * modulo-sched.c (sms_order_nodes): Call print_sccs.
12541
12542 2007-07-03 Uros Bizjak <ubizjak@gmail.com>
12543
12544 * targhooks.h (default_mode_for_suffix): New function declaration.
12545 * targhooks.c (default_mode_for_suffix): New default target hook.
12546 * target.h (struct c): New structure in the targetm struct.
12547 (mode_for_suffix): New target hook as part of struct c.
12548 target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
12549 default_mode_for_suffix.
12550 (TARGET_C): New define.
12551 * c-lex.c: Include "target.h".
12552 (interpret_float): Use targetm.c.mode_for_suffix to determine
12553 the mode for a given non-standard suffix.
12554 Makefile.in (c-lex.o): Depend on $(TARGET_H).
12555
12556 * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
12557 (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
12558
12559 * doc/extend.texi (Floating Types): New node. Document __float80 and
12560 __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes.
12561
12562 2007-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
12563
12564 PR target/32506
12565 * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
12566 predicate instead of target_operand.
12567 (divsi3_i1_media, divsi3_media_2): Likewise.
12568
12569 2007-07-02 Eric Botcazou <ebotcazou@adacore.com>
12570
12571 * tree.h (alias_sets_might_conflict_p): Rename into
12572 alias_sets_must_conflict_p.
12573 * alias.c (alias_sets_might_conflict_p): Likewise.
12574 (alias_sets_conflict_p): Use it.
12575 (objects_must_conflict_p): Likewise.
12576 * c-common.c (strict_aliasing_warning): Adjust.
12577
12578 2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
12579
12580 * rtlhooks.c (gen_lowpart_if_possible): Check for
12581 invalid subreg before calling gen_lowpart_SUBREG.
12582
12583 2007-07-02 Geoffrey Keating <geoffk@apple.com>
12584
12585 * config/darwin9.h: Add copyright notice.
12586 (LINK_COMMAND_SPEC): Add comment.
12587 (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
12588 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
12589 DARWIN_LIBSYSTEM_HAS_UNWIND.
12590
12591 2007-07-02 Jakub Jelinek <jakub@redhat.com>
12592
12593 PR libgomp/32468
12594 * omp-low.c (check_combined_parallel): New function.
12595 (lower_omp_parallel): Call it via walk_stmts, set
12596 OMP_PARALLEL_COMBINED if appropriate.
12597 (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
12598 isn't the only statement in WS_ENTRY_BB or OMP_RETURN
12599 the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
12600 don't consider it as combined parallel.
12601
12602 2007-07-02 Richard Sandiford <richard@codesourcery.com>
12603
12604 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
12605 (gcc_tooldir): Likewise.
12606 * configure: Regenerate.
12607 * Makefile.in (libsubdir_to_prefix): New variable, based on the
12608 old configure.ac gcc_tooldir setting.
12609 (prefix_to_exec_prefix): New variable.
12610 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
12611 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
12612
12613 2007-07-02 Daniel Berlin <dberlin@dberlin.org>
12614
12615 Fix PR tree-optimization/32583
12616 Fix PR tree-optimization/32584
12617 * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
12618 (phi_translate_set): Use phi_translate directly now.
12619 (make_values_for_stmt): Don't value number RHS if we already know
12620 it is constant.
12621
12622 2007-07-02 Steve Ellcey <sje@cup.hp.com>
12623 Jim Wilson <wilson@specifix.com>
12624
12625 PR target/31684
12626 * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
12627 copy_insn.
12628
12629 2007-07-02 Sandra Loosemore <sandra@codesourcery.com>
12630 Richard Sandiford <richard@codesourcery.com>
12631 Nigel Stephens <nigel@mips.com>
12632
12633 * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
12634 (mips16e_output_save_restore): Declare.
12635 (mips16e_save_restore_pattern_p): Likewise.
12636 * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
12637 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
12638 for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16
12639 && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
12640 (BITSET_P): New global macro, extracted from...
12641 (mips_for_each_saved_reg): ...here.
12642 (mips16e_save_restore_info): New struct.
12643 (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
12644 (mips16e_save_restore_regs): New variable.
12645 (mips_split_plus, mips16e_find_first_register): New functions.
12646 (mips16e_mask_registers): New function.
12647 (compute_frame_size): Expand the commentary before the function.
12648 Enforce the MIPS16e save and restore register range restrictions.
12649 Pad the general register save area at the low end.
12650 (mips16e_save_restore_reg, mips16e_build_save_restore)
12651 (mips16e_save_restore_pattern_p, mips16e_add_register_range)
12652 (mips16e_output_save_restore, mips16e_collect_propagate_value)
12653 (mips16e_collect_argument_save, mips16e_collect_argument_saves):
12654 New functions.
12655 (mips_expand_prologue, mips_expand_epilogue): Handle
12656 GENERATE_MIPS16E_SAVE_RESTORE.
12657 * config/mips/mips.md (*mips16e_save_restore): New pattern.
12658
12659 2007-07-02 Uros Bizjak <ubizjak@gmail.com>
12660
12661 PR tree-optimization/31966
12662 PR tree-optimization/32533
12663 * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
12664 "basic_block" description as its third argument. Update function
12665 calls to get destination bb from "edge" argument. Save "cond" into
12666 aux field of the edge. Update prototype for changed arguments.
12667 (if_convertible_loop_p): Clear aux field of incoming edges if bb
12668 contains phi node.
12669 (find_phi_replacement_condition): Operate on incoming edges, not
12670 on predecessor blocks. If there is a condition saved in the
12671 incoming edge aux field, AND it with incoming bb predicate.
12672 Return source bb of the first edge.
12673 (clean_predicate_lists): Clean aux field of outgoing node edges.
12674 (tree_if_conversion): Do not initialize cond variable. Move
12675 variable declaration into the loop.
12676 (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
12677 initializations of new_stmt, arg0 and arg1 variables.
12678
12679 2007-07-02 Jakub Jelinek <jakub@redhat.com>
12680
12681 * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
12682 SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
12683
12684 2007-07-02 Richard Guenther <rguenther@suse.de>
12685
12686 * tree-ssa.c (useless_type_conversion_p): Document
12687 future intent as defining the middle-end type system.
12688 Re-structure to call langhook last, group by type class,
12689 mark questionable parts.
12690
12691 2007-07-02 Richard Guenther <rguenther@suse.de>
12692
12693 * tree-flow.h (types_compatible_p): Declare.
12694 * tree-ssa.c (types_compatible_p): New function.
12695 * ipa-type-escape.c (discover_unique_type): Use
12696 types_compatible_p instead of lang_hooks.types_compatible_p.
12697 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
12698 * tree-vn.c (expressions_equal_p): Likewise.
12699 * tree.c (fields_compatible_p): Likewise.
12700 * tree-ssa-dom.c (avail_expr_eq): Likewise.
12701 (cprop_operand): Use useless_type_conversion_p instead of
12702 lang_hooks.types_compatible_p.
12703 * tree-inline.c (setup_one_parameter): Likewise.
12704 (declare_return_variable): Likewise.
12705 * tree-nrv.c (tree_nrv): Likewise.
12706 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
12707 (maybe_fold_offset_to_component_ref): Likewise.
12708 (maybe_fold_offset_to_reference): Likewise.
12709 * tree-ssa-copy.c (may_propagate_copy): Likewise.
12710 (merge_alias_info): Likewise.
12711 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
12712 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
12713 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
12714 * tree-tailcall.c (find_tail_calls): Likewise.
12715 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
12716 * gimplify.c (canonicalize_addr_expr): Likewise.
12717 (fold_indirect_ref_rhs): Likewise.
12718 (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type.
12719 (cpt_same_type): Likewise.
12720 (check_pointer_types_r): Swap parameters to cpt_same_type
12721 where appropriate.
12722 * fold-const.c (fold_convert): Revert fix for PR15988.
12723 * tree-inline.c (setup_one_parameter): Instead fix it here by
12724 using fold_build1 instead of fold_convert and checking for
12725 error_mark_node. Convert only if the conversion is necessary.
12726
12727 2007-07-02 Joseph Myers <joseph@codesourcery.com>
12728
12729 * configure.ac: Check for .gnu_attribute on Power.
12730 * configure: Regenerate.
12731 * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
12732 attribute for floating-point ABI.
12733
12734 2007-07-02 Ira Rosen <irar@il.ibm.com>
12735
12736 PR tree-optimization/32230
12737 PR tree-optimization/32477
12738 * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base
12739 address is a constant.
12740
12741 2007-07-02 Richard Sandiford <richard@codesourcery.com>
12742
12743 * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
12744 (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
12745 (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
12746 stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT.
12747 Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
12748 64-bit targets. Add support for *-elfoabi*.
12749 * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
12750 different settings if $(tm_defines) does not select the EABI.
12751 (MULTILIB_EXCLUSIONS): Define in those circumstances.
12752 * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
12753 (MIPS_ARCH_OPTION_SPEC): Likewise.
12754 (MIPS_ISA_LEVEL_SPEC): Likewise.
12755 (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
12756 * config/mips/elfoabi.h: New file.
12757
12758 2007-07-02 Richard Guenther <rguenther@suse.de>
12759
12760 * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
12761 (useless_type_conversion_p): ... this.
12762 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
12763 (useless_type_conversion_p): ... this.
12764 * builtins.c (fold_builtin_memory_op): Rename
12765 tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
12766 * tree-cfg.c (verify_expr): Likewise.
12767 * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
12768 * tree-ssa-ccp.c (ccp_fold): Likewise.
12769 * tree-ssa-copy.c (may_propagate_copy): Likewise.
12770 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
12771 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
12772 * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
12773 * tree-ssa-pre.c (eliminate): Likewise.
12774 * tree-ssa.c (delete_tree_ssa): Likewise.
12775 (tree_ssa_useless_type_conversion): Likewise.
12776 * tree.c (build2_stat): Likewise.
12777
12778 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
12779
12780 Fix PR tree-optimization/32571
12781 * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
12782 simplifying them.
12783
12784 2007-07-01 Daniel Berlin <dberlin@dberlin.org>
12785
12786 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
12787 and other expected operations explicitly, change default to
12788 gcc_unreachable.
12789
12790 2007-07-01 Daniel Jacobowitz <dan@codesourcery.com>
12791
12792 * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
12793 PARALLEL.
12794 * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
12795 (tls_load_dot_plus_eight): Move the label number into the unspec.
12796 * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
12797
12798 2007-07-01 Andreas Schwab <schwab@suse.de>
12799
12800 * dwarf2out.c (initial_return_save): Define only if used.
12801
12802 2007-07-01 Kenneth Zadeck <zadeck@naturalbridge.com>
12803
12804 Unreverting Richard's Revert of:
12805
12806 2007-06-27 Richard Sandiford <richard@codesourcery.com>
12807
12808 * dce.c (deletable_insn_p_1): New function, split out from...
12809 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
12810 specially, not those inside PARALLELs. Remove BODY argument
12811 and adjust recursive call accordingly.
12812 (prescan_insns_for_dce): Update call to delete_insn_p.
12813
12814 2007-07-01 Vladimir Yanovsky <yanov@il.ibm.com>
12815 Revital Eres <eres@il.ibm.com>
12816
12817 * ddg.c (create_ddg_all_sccs): Fix missed
12818 initialization of scc_nodes.
12819
12820 2007-07-01 Uros Bizjak <ubizjak@gmail.com>
12821
12822 PR middle-end/32559
12823 * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
12824 X + ~X to 1 only for INTEGRAL_TYPE_P type.
12825
12826 2007-06-30 Joseph Myers <joseph@codesourcery.com>
12827
12828 * configure.ac: Check for .gnu_attribute on MIPS.
12829 * configure, config.in: Regenerate.
12830 * config/mips/mips.c (mips_file_start): If supported, output
12831 attribute for floating-point ABI.
12832
12833 2007-06-30 Uros Bizjak <ubizjak@gmail.com>
12834
12835 PR target/32433
12836 * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
12837 (ffs_cmove): New expander to expand using ctz pattern.
12838 (*ffs_cmove): Remove pattern.
12839 (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
12840 (ffsdi2): Expand using ctz pattern.
12841 (*ffs_rex64): Remove pattern.
12842
12843 2007-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12844
12845 PR rtl-optimization/32296
12846 * pa.md (return): Delete pattern.
12847 (return_internal): Remove "(const_int 1)" from pattern.
12848 (epilogue): Use return_internal pattern for trivial returns.
12849 * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
12850 * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h".
12851
12852 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
12853
12854 * tree-ssa-pre.c (is_exception_related): New function
12855 (can_value_number_operation): Use it.
12856
12857 2007-06-30 Daniel Berlin <dberlin@dberlin.org>
12858
12859 Fix PR tree-optimization/32540
12860 Fix PR tree-optimization/31651
12861
12862 * tree-ssa-sccvn.c: New file.
12863
12864 * tree-ssa-sccvn.h: Ditto.
12865
12866 * tree-vn.c: Include tree-ssa-sccvn.h
12867 (val_expr_paid_d): Removed.
12868 (value_table): Ditto.
12869 (vn_compute): Ditto.
12870 (val_expr_pair_hash): Ditto.
12871 (val_expr_pair_expr_eq): Ditto.
12872 (copy_vuses_from_stmt): Ditto.
12873 (vn_delete): Ditto.
12874 (vn_init): Ditto.
12875 (shared_vuses_from_stmt): Ditto.
12876 (print_creation_to_file): Moved up.
12877 (sort_vuses): Ditto.
12878 (sort_vuses_heap): Ditto.
12879 (set_value_handle): Make non-static.
12880 (make_value_handle): Ditto.
12881 (vn_add): Rewritten to use sccvn lookups.
12882 (vn_add_with_vuses): Ditto.
12883 (vn_lookup): Ditto (and second argument removed).
12884 (vn_lookup_with_vuses): Ditto.
12885 (vn_lookup_or_add): Ditto (and second argument removed);
12886 (vn_lookup_or_add_with_vuses): Ditto.
12887 (vn_lookup_with_stmt): New.
12888 (vn_lookup_or_add_with_stmt): Ditto.
12889 (create_value_handle_for_expr): Ditto.
12890
12891 * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
12892 (seen_during_translate): New function.
12893 (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
12894 (phi_trans_add): Ditto.
12895 (constant_expr_p): FIELD_DECL is always constant.
12896 (phi_translate_1): Renamed from phi_translate, add seen bitmap.
12897 Use constant_expr_p.
12898 Avoid infinite recursion on mutually valued expressions.
12899 Change callers of vn_lookup_or_add.
12900 (phi_translate): New function.
12901 (compute_antic_safe): Allow phi nodes.
12902 (create_component_ref_by_pieces): Update for FIELD_DECL change.
12903 (find_or_generate_expression): Rewrite slightly.
12904 (create_expression_by_pieces): Updated for vn_lookup_or_add
12905 change.
12906 Update VN_INFO for new names.
12907 (insert_into_preds_of_block): Update for new names.
12908 (add_to_exp_gen): New function.
12909 (add_to_sets): Use vn_lookup_or_add_with_stmt.
12910 (find_existing_value_expr): Rewrite to changed vn_lookup.
12911 (create_value_expr_from): Ditto, and use add_to_exp_gen.
12912 (try_look_through_load): Removed.
12913 (try_combine_conversion): Ditto.
12914 (get_sccvn_value): New function.
12915 (make_values_for_phi): Ditto.
12916 (make_values_for_stmt): Ditto.
12917 (compute_avail): Rewritten for vn_lookup_or_add changes and to use
12918 SCCVN.
12919 (init_pre): Update for SCCVN changes.
12920 (fini_pre): Ditto.
12921 (execute_pre): Ditto.
12922
12923 * tree-flow.h (make_value_handle): Declare.
12924 (set_value_handle): Ditto.
12925 (sort_vuses_heap): Ditto.
12926 (vn_lookup_or_add_with_stmt): Ditto.
12927 (vn_lookup_with_stmt): Ditto.
12928 (vn_compute): Remove.
12929 (vn_init): Ditto.
12930 (vn_delete): Ditto.
12931 (vn_lookup): Update arguments.
12932
12933 * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
12934 (tree-vn.o): Ditto.
12935 (tree-ssa-sccvn.o): New.
12936 (OBJS-common): Add tree-ssa-sccvn.o
12937
12938 2007-06-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12939
12940 PR c/4076
12941 * c-typeck.c (build_external_ref): Don't mark as used if called
12942 from itself.
12943 * calls.c (rtx_for_function_call): Likewise.
12944
12945 2007-06-30 Richard Sandiford <richard@codesourcery.com>
12946
12947 Revert:
12948
12949 2007-06-27 Richard Sandiford <richard@codesourcery.com>
12950
12951 * dce.c (deletable_insn_p_1): New function, split out from...
12952 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
12953 specially, not those inside PARALLELs. Remove BODY argument
12954 and adjust recursive call accordingly.
12955 (prescan_insns_for_dce): Update call to delete_insn_p.
12956
12957 2007-06-30 Rask Ingemann Lambertsen <rask@sygehus.dk>
12958
12959 * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
12960 (try_combine): Move potential calls to undo_all() so they happen
12961 before we commit to using the combined insns.
12962
12963 2006-06-30 Jan Hubicka <jh@suse.cz>
12964
12965 * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
12966 code.
12967
12968 2006-06-30 Thomas Neumann <tneumann@users.sourceforge.net>
12969
12970 * ipa.c (cgraph_postorder): Cast according to the coding conventions.
12971 (cgraph_remove_unreachable_nodes): Likewise.
12972 * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
12973 * ipa-inline.c (update_caller_keys): Cast according to the coding
12974 conventions.
12975 (cgraph_decide_recursive_inlining): Likewise.
12976 (cgraph_decide_inlining_of_small_function): Likewise.
12977 (try_inline): Likewise.
12978 (cgraph_decide_inlining_incrementally): Likewise.
12979 * ipa-pure-const.c (get_function_state): Likewise.
12980 (scan_function): Likewise.
12981 (analyze_function): Likewise.
12982 (static_execute): Likewise.
12983 * ipa-reference.c (scan_for_static_refs): Likewise.
12984 (merge_callee_local_info): Likewise.
12985 (analyze_function): Use type safe memory macros.
12986 (static_execute): Likewise. Cast according to the coding conventions.
12987 * ipa-type-escape.c (scan_for_regs): Cast according to the coding
12988 conventions.
12989 * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
12990 names.
12991 (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
12992 * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
12993 variable names.
12994
12995 2007-06-29 Andrew Pinski <andrew_pinski@playstation.sony.com>
12996
12997 PR middle-end/30024
12998 * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
12999 for complex modes (both int and real).
13000
13001 2007-06-29 Jan Hubicka <jh@suse.cz>
13002
13003 * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
13004
13005 2007-06-29 Jan Hubicka <jh@suse.cz>
13006
13007 PR middle-end/32372
13008 * cse.c (cse_insn): Avoid invalid sharing in between register note and
13009 the insn pattern.
13010
13011 2007-06-29 Anatoly Sokolov <aesok@post.ru>
13012
13013 PR target/32335
13014 * config/avr/avr.c: Include dataflow header file.
13015 (expand_prologue): Adjust for prologue insn change.
13016 * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
13017 inside a insn.
13018
13019 2007-06-29 Richard Guenther <rguenther@suse.de>
13020
13021 PR middle-end/32493
13022 * gimplify.c (gimplify_call_expr): Ignore variable argument parts
13023 during type verification.
13024
13025 2007-06-29 Jan Hubicka <jh@suse.cz>
13026
13027 * recog.c (validate_change_rtx_1): Unshare TO argument.
13028
13029 2007-06-29 Uros Bizjak <ubizjak@gmail.com>
13030
13031 PR tree-optimization/24659
13032 * tree-vect-transform.c (vectorizable_call): Handle
13033 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
13034
13035 * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
13036 * config/i386/i386.c (enum ix86_builtins)
13037 [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
13038 (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
13039 description.
13040 (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
13041 const using def_builtin_const.
13042 (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
13043 input operands in the same modes as the result.
13044 (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
13045
13046 2007-06-29 Richard Sandiford <rsandifo@nildram.co.uk>
13047
13048 * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
13049 (df_set_dead_notes_for_mw): Likewise.
13050
13051 2007-06-29 Eric Botcazou <ebotcazou@adacore.com>
13052
13053 * c-common.c (pointer_int_sum): Do the negation in sizetype.
13054
13055 2007-06-28 DJ Delorie <dj@redhat.com>
13056
13057 * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
13058
13059 2007-06-28 Geoffrey Keating <geoffk@apple.com>
13060
13061 * doc/invoke.texi (C++ Dialect Options): Document
13062 fvisibility-ms-compat.
13063 * c.opt (fvisibility-ms-compat): New.
13064
13065 2007-06-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
13066
13067 PR tree-opt/32417
13068 * tree-affine.c (aff_combination_add_elt): Handle
13069 pointer addition specially.
13070
13071 2007-06-28 Jakub Jelinek <jakub@redhat.com>
13072
13073 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
13074 decl is non-external for AIX ABI.
13075
13076 2007-06-28 David Edelsohn <edelsohn@gnu.org>
13077
13078 * config/rs6000/predicates.md (current_file_function_operand):
13079 Ensure the symbol is non-external for AIX ABI.
13080
13081 2007-06-28 Nick Clifton <nickc@redhat.com>
13082
13083 * common.opt (fipa-matrix-reorg): Add Optimization attribute.
13084 (fdce, fdse, fpredictive-commoning): Likewise.
13085
13086 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
13087
13088 PR other/31400
13089 * gcc.c (process_command): Recognize the new -static-libgfortran
13090 option.
13091
13092 2007-06-27 Rask Ingemann Lambertsen <rask@sygehus.dk>
13093
13094 PR target/32418
13095 * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
13096 Use a call clobbered hard reg instead of a pseudo reg.
13097
13098 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
13099
13100 * config/sh/sh.md (load_gbr): Use correct operand constraint.
13101
13102 2007-06-27 Kaz Kojima <kkojima@gcc.gnu.org>
13103
13104 PR target/32479
13105 * config/sh/sh.md (udivsi3): Don't wrap the sequence with
13106 REG_LIBCALL and REG_RETVAL notes.
13107 (divsi3, mulsi3): Likewise.
13108 (mulhisi3): Likewise. Use emit_libcall_block.
13109 (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
13110
13111 2007-06-27 Seongbae Park <seongbae.park@gmail.com>
13112
13113 PR rtl-optimization/32481
13114 * combine.c (adjust_for_new_dest): Rescan the changed insn.
13115
13116 2007-06-27 Richard Sandiford <richard@codesourcery.com>
13117
13118 * dce.c (deletable_insn_p_1): New function, split out from...
13119 (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs
13120 specially, not those inside PARALLELs. Remove BODY argument
13121 and adjust recursive call accordingly.
13122 (prescan_insns_for_dce): Update call to delete_insn_p.
13123
13124 2007-06-27 Richard Guenther <rguenther@suse.de>
13125
13126 PR middle-end/32492
13127 * tree.h (fold_convertible_p): Declare.
13128 * fold-const.c (fold_convertible_p): New function.
13129 * gimplify.c (gimplify_call_expr): Use fold_convertible_p
13130 instead of lang_hooks.types_compatible_p.
13131
13132 2007-06-26 Jan Hubicka <jh@suse.cz>
13133
13134 * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
13135 * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
13136 early use validate_unshare_change.
13137 (reload_combine): Likewise.
13138 * recog.c (change_t): New field unshare.
13139 (validate_change_1): Rename from validate_change; add argument unshare.
13140 (validate_change): Turn into wrapper of validate_change_1; update
13141 prototype for bools.
13142 (validate_unshare_change): New.
13143 (confirm_change_group): Unshare changes if asked for; avoid unnecesary
13144 calls of df_insn_rescan.
13145 * recog.h (validate_change): Replace ints by bools.
13146 (validate_unshare_change): Declare.
13147
13148 2007-06-26 Kenneth Zadeck <zadeck@naturalbridge.com>
13149
13150 * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
13151
13152 2007-06-26 Steve Ellcey <sje@cup.hp.com>
13153
13154 * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
13155
13156 2007-06-25 Jan Hubicka <jh@suse.cz>
13157
13158 * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
13159 uninlinable call.
13160 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
13161 cgraph_decide_inlining_incrementally): Move uninlinability checks to
13162 places other call site specific checks are performed.
13163
13164 2007-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
13165
13166 PR tree-opt/32421
13167 * tree-vect-transform.c (vectorizable_operation): Convert
13168 POINTER_PLUS_EXPR over to PLUS_EXPR.
13169
13170 2007-06-25 Chao-ying Fu <fu@mips.com>
13171
13172 * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
13173 UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
13174 Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
13175 Document GET_MODE_IBIT, and GET_MODE_FBIT.
13176
13177 * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
13178 MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
13179 (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
13180 SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
13181 SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
13182 ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
13183 ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
13184 SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
13185 ALL_FIXED_POINT_MODE_P): New define.
13186 (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
13187 MODE_UACCUM.
13188 (GET_MODE_IBIT, GET_MODE_FBIT): New define.
13189
13190 * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
13191 MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
13192 MODE_VECTOR_UACCUM): New mode classes.
13193
13194 * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
13195 UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
13196 Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
13197 USA, UDA, and UTA.
13198
13199 * genmodes.c (struct mode_data): Add ibit and fbit fields.
13200 (blank_mode): Initialize ibit and fbit.
13201 (adj_ibit, adj_fbit): New to adjust ibit and fbit.
13202 (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
13203 MODE_UACCUM.
13204 (new_adjust): Change required_class to required_class_from and
13205 required_class_to for testing within a range.
13206 (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
13207 MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
13208 MODE_VECTOR_UACCUM.
13209 (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
13210 (make_fixed_point_mode): New.
13211 (_ADD_ADJUST): Change C to C1 and C2.
13212 (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
13213 use a range for machine classes.
13214 (ADJUST_IBIT, ADJUST_FBIT): New.
13215 (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
13216 CONST_MODE_FBIT.
13217 (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
13218 MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
13219 Emit adjustment for ibit and fbit.
13220 (emit_mode_ibit, emit_mode_fbit): New.
13221 (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
13222
13223 2007-06-25 Nathan Froyd <froydnj@codesourcery.com>
13224
13225 * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
13226 as the source of the set.
13227
13228 2007-06-25 Roman Zippel <zippel@linux-m68k.org>
13229
13230 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
13231 FP_REGNO_P): Use IN_RANGE.
13232 (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
13233 (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
13234 (DATA_REG_P): Use DATA_REGNO_P.
13235 (FP_REG_P): Use FP_REGNO_P.
13236 (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
13237 * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
13238 REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
13239
13240 2007-06-24 Jan Hubicka <jh@suse.cz>
13241
13242 PR middle-end/30563
13243 * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
13244
13245 2007-06-24 Sebastian Pop <sebpop@gmail.com>
13246
13247 PR middle-end/32461
13248 * fold-const.c (fold_binary): Strip nops of operand 0
13249 of BIT_NOT_EXPR before calling operand_equal_p.
13250 * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
13251 * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
13252
13253 2007-06-23 Mark Mitchell <mark@codesourcery.com>
13254
13255 * doc/extend.texi: Document that dllimport and dllexport imply
13256 default visibility.
13257 * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
13258 imported or exported declaration, including type declarations.
13259 * c-common.c (handle_visibility_attribute): Check for conflicts
13260 with dllimport/dllexport.
13261 (c_determine_visibility): Handle dllimport/dllexport as an
13262 explicit visibility atttribute.
13263
13264 2007-06-23 Richard Guenther <rguenther@suse.de>
13265
13266 PR tree-optimization/16876
13267 PR middle-end/29478
13268 * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
13269 for CALL_EXPRs.
13270 * tree-inline.c (initialize_inlined_parameters): Do not call
13271 lang_hooks.tree_inlining.convert_parm_for_inlining.
13272 * cgraphbuild.c (initialize_inline_failed): Set inline failed
13273 reason for mismatched types.
13274 * gimplify.c (gimplify_call_expr): Verify the call expression
13275 arguments match the called function type signature. Otherwise
13276 mark the call expression to be not considered for inlining
13277 using CALL_CANNOT_INLINE_P flag.
13278 * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
13279 edges call expression.
13280 (cgraph_decide_inlining_of_small_function): Likewise.
13281 (cgraph_decide_inlining): Likewise.
13282 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
13283 Remove define.
13284 * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
13285 * c-typeck.c (c_convert_parm_for_inlining): Remove.
13286 * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
13287 Remove declaration.
13288 (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
13289 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
13290 Remove.
13291 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
13292 convert_parm_for_inlining member.
13293
13294 2007-06-23 Richard Earnshaw <rearnsha@arm.com>
13295
13296 PR target/31152
13297 * arm.md (negscc): Match the correct operand for optimized LT0 test.
13298 Remove optimization for GT.
13299
13300 2007-06-23 Kenneth Zadeck <zadeck@naturalbridge.com>
13301
13302 PR middle-end/32437
13303 * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
13304 is a PARALLEL.
13305 (prescan_insns_for_dce): Add extra parameter.
13306
13307 2007-06-23 Jan Hubicka <jh@suse.cz>
13308
13309 PR middle-end/31541
13310 * gimplify.c (mark_addressable): New function.
13311 (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
13312
13313 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
13314
13315 PR middle-end/32374
13316 * expr.c (store_constructor): Do not clobber non-zeroed memory.
13317
13318 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
13319
13320 PR target/32413
13321 * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
13322 moves between MMX/SSE registers to at least 8 units to prevent
13323 ICE caused by non-tieable SI/HI/QImodes in SSE registers.
13324
13325 2007-06-22 Uros Bizjak <ubizjak@gmail.com>
13326
13327 * config/i386/i386.c (override_options): Correct x86_sahf
13328 setting condition.
13329
13330 2007-06-21 David Daney <ddaney@avtrex.com>
13331
13332 PR target/32406
13333 * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
13334 to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
13335 (exception_receiver): Renamed to ...
13336 (nonlocal_goto_receiver): ... this.
13337
13338 2007-06-22 Roman Zippel <zippel@linux-m68k.org>
13339
13340 * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
13341 (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
13342 partial register accesses.
13343
13344 2007-06-21 Adam Nemet <anemet@caviumnetworks.com>
13345
13346 * fold-const.c (debug_fold_checksum): Move it under
13347 ENABLE_FOLD_CHECKING.
13348
13349 2007-06-21 Sebastian Pop <sebpop@gmail.com>
13350
13351 PR middle-end/20623
13352 * tree.h (debug_fold_checksum): Declared.
13353 * fold-const.c (build_fold_addr_expr_with_type_1): New.
13354 (build_fold_addr_expr_with_type, build_fold_addr_expr): Use
13355 build_fold_addr_expr_with_type_1.
13356 (fold_addr_expr, debug_fold_checksum): New.
13357 (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
13358 (fold_unary, fold_comparison, split_address_to_core_and_offset):
13359 Use fold_addr_expr.
13360
13361 2007-06-21 Sebastian Pop <sebpop@gmail.com>
13362
13363 PR tree-optimization/19590
13364 * tree-vrp.c (adjust_range_with_scev): Set the range when the result
13365 of scev is a constant.
13366
13367 2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
13368
13369 * df-problems.c (df_note_bb_compute): Made computation of live
13370 info consistent with df_lr.
13371
13372 2007-06-21 Richard Guenther <rguenther@suse.de>
13373
13374 PR tree-optimization/32453
13375 * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
13376 for pointer anti-range.
13377
13378 2007-06-21 H.J. Lu <hongjiu.lu@intel.com>
13379
13380 * config/i386/i386.c (processor_target_table): Increase maximum
13381 skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
13382 default 64bit.
13383
13384 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
13385 byte alignment if > 8 byte alignment is preferred.
13386 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
13387
13388 2007-06-21 Jakub Jelinek <jakub@redhat.com>
13389
13390 PR tree-optimization/31866
13391 * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
13392 if ASM_EXPR's input is not a SSA_NAME.
13393
13394 PR middle-end/32362
13395 * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
13396 but decl is a global var, instead return decl.
13397 * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
13398 even for is_global_var decls, if they are private in some outer
13399 context.
13400
13401 2007-06-21 Richard Guenther <rguenther@suse.de>
13402
13403 PR tree-optimization/32451
13404 * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
13405
13406 2007-06-21 Christian Bruel <christian.bruel@st.com>
13407
13408 * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
13409 * config/sh/sh.c (sh_loads_bankedreg_p): New function.
13410 (push_regs): Changed saving order or banked registers.
13411 (sh_expand_epilogue): Likewise.
13412 * config/sh/sh.h (BANKED_REGISTER_P): New macro.
13413 (FIRST_BANKED_REG): Likewise.
13414 (LAST_BANKED_REG): Likewise.
13415 * config/sh/sh.md (banked) New attribute.
13416 (in_delay_slot): Check banked attribute.
13417
13418 2007-06-20 Sebastian Pop <sebpop@gmail.com>
13419
13420 PR tree-optimization/32075
13421 * tree-data-ref.c (subscript_dependence_tester_1,
13422 analyze_miv_subscript, analyze_overlapping_iterations,
13423 add_distance_for_zero_overlaps, build_classic_dist_vector,
13424 subscript_dependence_tester_1, analyze_overlapping_iterations,
13425 subscript_dependence_tester, access_functions_are_affine_or_constant_p,
13426 compute_affine_dependence, compute_all_dependences): Pass loop_nest
13427 to evolution_function_is_affine_multivariate_p.
13428
13429 2007-06-20 Eric Botcazou <ebotcazou@libertysurf.fr>
13430
13431 * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
13432
13433 2007-06-20 Rask Ingemann Lambertsen <rask@sygehus.dk>
13434
13435 PR target/32335
13436 * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
13437 for TARGET_A16.
13438 * config/m32c/prologue.md (epilogue_exitd_16): New.
13439 (epilogue_reit_16): New.
13440 (epilogue_exitd): Rename to epilogue_exitd_24.
13441 (epilogue_reit): Rename to epilogue_reit_24.
13442
13443 2007-06-20 Seongbae Park <seongbae.park@gmail.com>
13444 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
13445
13446 * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
13447 New counters.
13448 * haifa-sched.c (queue_to_ready): Don't requeue next insn
13449 if dbg_cnt (sched_insn) reaches the limit.
13450 (choose_ready): New parameter INSN_PTR and new return value.
13451 (schedule_block): Handle dbg_cnt (sched_insn). Handle
13452 the new return value from choose_ready.
13453 * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
13454 (rest_of_handle_global_alloc): New global_alloc_at_func.
13455
13456 2007-06-20 Adam Nemet <anemet@caviumnetworks.com>
13457
13458 PR tree-optimization/25737
13459 * tree.h (struct tree_struct_field_tag): Add new field alias_set.
13460 (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
13461 * tree-flow.h (struct fieldoff): Add new field alias_set.
13462 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
13463 argument addressable_type. Set alias_set of fieldoff.
13464 * tree-ssa-alias.c (create_sft): Add new argument alias_set.
13465 (create_overlap_variables_for): Pass alias_set from fieldoff to
13466 create_sft.
13467 * alias.c (get_alias_set): Use alias_set from SFT if set.
13468
13469 2007-06-20 Hui-May Chang <hm.chang@apple.com>
13470
13471 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
13472 of a variable as an unsigned HOST_WIDE_INT integer.
13473
13474 2007-06-20 Zdenek Dvorak <dvorakz@suse.cz>
13475
13476 PR rtl-optimization/32405
13477 * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
13478
13479 2007-06-20 Jakub Jelinek <jakub@redhat.com>
13480
13481 * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
13482
13483 PR middle-end/31959
13484 * builtins.c: Include diagnostic.h.
13485 (expand_builtin_expect): Make gcc_assert more permissive.
13486 * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
13487
13488 PR inline-asm/32109
13489 * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
13490 and !allows_mem.
13491
13492 PR middle-end/32285
13493 * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
13494 if ACCUMULATE_OUTGOING_ARGS.
13495
13496 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
13497
13498 * config/m68hc11/m68hc11.c: Include dataflow header file.
13499 (m68hc11_reorg): Port to dataflow.
13500
13501 2007-06-19 Kenneth Zadeck <zadeck@naturalbridge.com>
13502
13503 * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
13504 (struct df_problem.free_blocks_on_set_blocks): New field.
13505 (struct dataflow.optional_p): New field.
13506 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
13507 (df_live_set_all_dirty): New function.
13508 * df-scan.c (df_scan_alloc): Initialize optional_p.
13509 (problem_SCAN): Initialize free_blocks_on_set_blocks.
13510 * df-core.c (df_set_blocks): Removed use of
13511 DF_FIRST_OPTIONAL_PROBLEM. Now uses
13512 df_problem.free_blocks_on_set_blocks to determine which blocks are
13513 recycled.
13514 (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
13515 (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now
13516 uses dataflow.optional_p to determine if problem should be
13517 deleted.
13518 (rest_of_handle_df_initialize): Only start live problem if
13519 -02 or above.
13520 (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
13521 * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
13522 df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
13523 (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
13524 problem_NOTE): Initialize free_blocks_on_set_blocks.
13525 (df_lr_bb_local_compute): Recompute luids if df_live problem is
13526 not active.
13527 (df_live_set_all_dirty, df_note_alloc): New function.
13528 * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
13529 df_get_live_*.
13530 * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
13531 * postreload.c (reload_combine): Ditto.
13532 * cse.c (cse_extended_basic_block): Ditto.
13533 * regmove.c (mark_flags_life_zones): Ditto.
13534 * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
13535 erase_matching_seqs): Ditto.
13536 * bt-load.c (compute_defs_uses_and_gen): Ditto.
13537 * integrate (allocate_initial_values): Ditto.
13538 * combine.c (reg_dead_at_p): Ditto.
13539 * resource.c (mark_target_live_regs): Ditto.
13540 * sched-rgn.c (check_live_1, update_live_1): Ditto.
13541 * config/sh/sh.c (find_r0_life_regions): Ditto.
13542 * global.c (rest_of_handle_global_alloc): Only add back df_live
13543 for -O > 1.
13544 * local-alloc.c (rest_of_handle_local_alloc): Only remove
13545 df_live for -O > 1.
13546 * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
13547 df_get_live_*.
13548 (if_convert): Make sure df_live is there at -O == 1.
13549 (pass_if_after_combine): Cleanup flags.
13550 * init-regs.c (initialize_uninitialized_regs): Make sure df_live
13551 is there at -O == 1.
13552
13553 2007-06-19 Seongbae Park <seongbae.park@gmail.com>
13554
13555 * config/arm/arm.c (arm_get_frame_offsets): Set
13556 offsets->locals_base to avoid negative stack size.
13557 (thumb1_expand_prologue): Assert on negative stack size.
13558
13559 2007-06-19 Sebastian Pop <sebpop@gmail.com>
13560
13561 PR tree-optimization/32367
13562 * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side
13563 of the chrec has no evolution in that loop.
13564 * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
13565
13566 2007-06-19 Bob Wilson <bob.wilson@acm.org>
13567
13568 * config/xtensa/xtensa.c: Include "df.h".
13569 (xtensa_builtin_saveregs): Use adjust_address instead of
13570 change_address.
13571 (xtensa_va_start): Invoke make_tree with sizetype for
13572 expand_builtin_saveregs and then convert the result to a pointer.
13573 Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst.
13574 (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
13575 Subtract argument size from index value as integers and then use
13576 POINTER_PLUS_EXPR to add the result to the array address.
13577
13578 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
13579
13580 PR target/32335
13581 * config/m32c/m32c.c: Include dataflow header file.
13582 (m32c_emit_prologue): Adjust for prologue insn change.
13583 * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
13584 once inside a PARALLEL. Assume frame size passed in operand 0
13585 includes space to save the fb register.
13586 (prologue_enter_24): Likewise.
13587 (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
13588
13589 2007-06-19 David Daney <ddaney@avtrex.com
13590
13591 PR target/32313
13592 * config/mips/mips.md (cprestore): Mark $gp as used.
13593
13594 2007-06-19 Rask Ingemann Lambertsen <rask@sygehus.dk>
13595
13596 PR target/32369
13597 * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
13598 (frv_ifcvt_modify_insn): Likewise.
13599
13600 2007-06-19 Richard Guenther <rguenther@suse.de>
13601
13602 * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
13603 only handle positive offsets that fit in a HOST_WIDE_INT.
13604
13605 2007-06-19 Uros Bizjak <ubizjak@gmail.com>
13606
13607 * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
13608 result of rsqrt insn for zero input argument to avoid NaN.
13609
13610 2007-06-19 Richard Guenther <rguenther@suse.de>
13611
13612 PR middle-end/31950
13613 * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
13614
13615 2007-06-19 Jakub Jelinek <jakub@redhat.com>
13616
13617 PR tree-optimization/32353
13618 * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
13619
13620 2007-06-19 Nick Clifton <nickc@redhat.com>
13621
13622 * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
13623
13624 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
13625
13626 PR target/32389
13627 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
13628 * config/i386/i386.c (assign_386_stack_local): Assert that
13629 SLOT_VIRTUAL is valid only before virtual regs are instantiated.
13630 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
13631 Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
13632 * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
13633
13634 2007-06-18 Steve Ellcey <sje@cup.hp.com>
13635
13636 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
13637
13638 2007-06-18 Seongbae Park <seongbae.park@gmail.com>
13639
13640 PR rtl-optimization/32321
13641 * gcse.c (replace_store_insn): Update the note before
13642 calling emit_insn_after.
13643
13644 2007-06-18 Kenneth Zadeck <zadeck@naturalbridge.com>
13645
13646 PR middle-end/32355
13647 * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
13648 cse_main.
13649 * df-problems.c (df_note_bb_compute): Fix dumping info.
13650
13651 2007-06-18 Kazu Hirata <kazu@codesourcery.com>
13652
13653 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
13654 insn with emit_jump_insn.
13655
13656 2007-06-18 Uros Bizjak <ubizjak@gmail.com>
13657
13658 PR tree-optimization/32383
13659 * targhooks.c (default_builtin_reciprocal): Add new bool argument.
13660 * targhooks.h (default_builtin_reciprocal): Update prototype.
13661 * target.h (struct gcc_target): Update builtin_reciprocal.
13662 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
13663 * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
13664 where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal
13665 when fndecl is in BUILT_IN_MD class.
13666 (execute_convert_to_rsqrt): Ditto.
13667
13668 * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
13669 argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
13670 Convert BUILT_IN_SQRTF code only when md_fn is false.
13671
13672 2007-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
13673
13674 * bt-load.c (move_btr_def): Fix the order of arguments
13675 to validate_replace_rtx.
13676
13677 2007-06-18 Nathan Sidwell <nathan@codesourcery.com>
13678
13679 * config/m68k/m68k-devices.def: Add 54450..54455.
13680
13681 2007-06-17 Uros Bizjak <ubizjak@gmail.com>
13682
13683 PR rtl-optimization/32366
13684 * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
13685 FLOAT_EXTEND]: Prevent non-scalar modes from entering
13686 significand_size.
13687
13688 2007-06-17 Kenneth Zadeck <zadeck@naturalbridge.com>
13689
13690 PR middle-end/32349
13691 * modulo-sched (generate_reg_moves): Added rescan parameter and if
13692 this is true, rescan insn being modified.
13693 (sms_schedule): Added rescan parameter.
13694 (rest_of_handle_sms): Moved freeing of dominance info to before
13695 getting out of cfg_layout.
13696
13697 2007-06-17 Nathan Sidwell <nathan@codesourcery.com>
13698
13699 * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
13700 * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
13701 appropriate.
13702
13703 * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
13704 FL_CF_EMAC from the entry for isac.
13705
13706 * config/m68k/predicates.md (const_call_operand): Adjust comment.
13707 (const_sibcall_operand): New.
13708 (sibcall_operand): Use it.
13709 * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
13710 (m68k_isas): ISAC does not imply FPU or EMAC.
13711 (override_options): Add ISA_C logic for symbolic jump & call.
13712
13713 2007-06-17 Eric Botcazou <ebotcazou@libertysurf.fr>
13714
13715 * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
13716 return mode from the builtin itself.
13717 (sparc_fold_builtin): Fix cast of zero constant.
13718
13719 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
13720
13721 * targhooks.c (default_builtin_reciprocal): New default target hook.
13722 * targhooks.h (default_builtin_reciprocal): Add prototype.
13723 * hooks.c (hook_tree_tree_bool_null): Remove hook.
13724 * hooks.h (hook_tree_tree_bool_null): Remove prototype.
13725 * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
13726 default_builtin_reciprocal.
13727
13728 2007-06-16 Uros Bizjak <ubizjak@gmail.com>
13729
13730 PR middle-end/31723
13731 * hooks.c (hook_tree_tree_bool_null): New hook.
13732 * hooks.h (hook_tree_tree_bool_null): Add prototype.
13733 * tree-pass.h (pass_convert_to_rsqrt): Declare.
13734 * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
13735 * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
13736 and convert it to reciprocal a*rfunc(b).
13737 (execute_convert_to_rsqrt): New function.
13738 (gate_convert_to_rsqrt): New function.
13739 (pass_convert_to_rsqrt): New pass definition.
13740 * target.h (struct gcc_target): Add builtin_reciprocal.
13741 * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
13742 (TARGET_INITIALIZER): Initialize builtin_reciprocal with
13743 TARGET_BUILTIN_RECIPROCAL.
13744 * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
13745
13746 * config/i386/i386.h (TARGET_RECIP): New define.
13747 * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
13748 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
13749 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
13750 and not optimizing for size.
13751 (*rcpsf2_sse): New insn pattern.
13752 (*rsqrtsf2_sse): Ditto.
13753 (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf
13754 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
13755 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
13756 and not optimizing for size.
13757 (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
13758 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
13759 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
13760 and not optimizing for size.
13761 * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
13762 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
13763 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
13764 and not optimizing for size.
13765 (*sse_rsqrtv4sf2): Do not export.
13766 (sqrtv4sf2): Ditto.
13767 (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf
13768 for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
13769 flag_unsafe_math_optimizations are set, flag_trapping_math is unset
13770 and not optimizing for size.
13771 (sqrtv4sf2): Ditto.
13772 * config/i386/i386.opt (mrecip): New option.
13773 * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
13774 (ix86_emit_swsqrtsf): Ditto.
13775 * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
13776 (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
13777 builtin definition.
13778 (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
13779 ix86_expand_unop1_builtin.
13780 (ix86_emit_swdivsf): New function.
13781 (ix86_emit_swsqrtsf): Ditto.
13782 (ix86_builtin_reciprocal): New function.
13783 (TARGET_BUILTIN_RECIPROCAL): Use it.
13784 (ix86_vectorize_builtin_conversion): Rename from
13785 ix86_builtin_conversion.
13786 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
13787 * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
13788 "i386 and x86_64 Options" section.
13789 (Intel 386 and AMD x86_64 Options): Document -mrecip.
13790
13791 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
13792 Zdenek Dvorak <dvorakz@suse.cz>
13793 Richard Guenther <rguenther@suse.de>
13794 Kaz Kojima <kkojima@gcc.gnu.org>
13795
13796 * tree-vrp.c (compare_values_warnv): Convert val2 to
13797 the type of val1.
13798 (extract_range_from_assert): Create
13799 POINTER_PLUS_EXPR for pointer types.
13800 (extract_range_from_binary_expr): Handle
13801 only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
13802 for pointer types.
13803 * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
13804 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
13805 POINTER_PLUS_EXPR as PLUS_EXPR.
13806 (number_of_iterations_lt_to_ne):
13807 For pointer types, use sizetype when
13808 creating MINUS_EXPR/PLUS_EXPRs.
13809 (assert_loop_rolls_lt): For pointer types, use sizetype when
13810 creating MINUS_EXPR/PLUS_EXPRs.
13811 (number_of_iterations_le): Likewise.
13812 (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
13813 (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
13814 like PLUS_EXPR and MINUS_EXPR.
13815 * tree-pretty-print.c (dump_generic_node): Handle
13816 POINTER_PLUS_EXPR.
13817 (op_prio): Likewise.
13818 (op_symbol_1): Likewise.
13819 * optabs.c (optab_for_tree_code): Likewise.
13820 * tree-ssa-loop-manip.c (create_iv): Handle pointer base
13821 specially.
13822 * tree-tailcall.c (process_assignment): Mention
13823 POINTER_PLUS_EXPR in a TODO comment.
13824 * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or
13825 MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
13826 not used with a pointer and an integer type.
13827 * tree-scalar-evolution.c (add_to_evolution_1): Convert the
13828 increment using chrec_convert_rhs instead of chrec_convert.
13829 (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
13830 PLUS_EXPR except for the right hand side's type will be
13831 sizetype.
13832 (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
13833 (fold_used_pointer_cast): Kill.
13834 (pointer_offset_p): Kill.
13835 (fold_used_pointer): Kill.
13836 (pointer_used_p): Kill.
13837 (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
13838 call fold_used_pointer.
13839 (instantiate_parameters_1): Convert the increment
13840 using chrec_convert_rhs instead of chrec_convert.
13841 Handle POINTER_PLUS_EXPR as PLUS_EXPR.
13842 * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
13843 instead of PLUS_EXPR.
13844 (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
13845 PLUS_EXPR for pointers.
13846 (std_gimplify_va_arg_expr): Likewise.
13847 (fold_builtin_memory_op): Likewise.
13848 (fold_builtin_strstr): Likewise.
13849 (fold_builtin_strchr): Likewise.
13850 (fold_builtin_strrchr): Likewise.
13851 (fold_builtin_strpbrk): Likewise.
13852 (expand_builtin_memory_chk): Likewise.
13853 (fold_builtin_memory_chk): Likewise.
13854 (std_expand_builtin_va_start): Use
13855 sizetype for the call to make_tree and then convert
13856 to the pointer type.
13857 (fold_builtin_memchr): Use POINTER_PLUS_EXPR
13858 instead of PLUS_EXPR for adding to a pointer.
13859 (std_gimplify_va_arg_expr): Use fold_build2 for
13860 the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast
13861 the operands to sizetype first and then cast the BIT_AND_EXPR
13862 back to the pointer type.
13863 * fold-const.c (build_range_check): Handle pointer types
13864 specially.
13865 (extract_array_ref): Look for POINTER_PLUS_EXPR instead
13866 of PLUS_EXPR's. Make sure the offset is converted to
13867 sizetype.
13868 (try_move_mult_to_index): Strip the NOPs from the offset.
13869 Remove code argument and replace all uses with PLUS_EXPR.
13870 (fold_to_nonsharp_ineq_using_bound): Handle pointer types
13871 specially. Don't use a pointer type for MINUS_EXPR.
13872 (fold_unary): Handle for (T1)(X op Y),
13873 only p+ as that is the only as that can be handled for
13874 binary operators now.
13875 (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
13876 POINTER_PLUS_EXPR.
13877 <case PLUS_EXPR>: Add folding of PTR+INT into
13878 PTR p+ INT.
13879 Don't call try_move_mult_to_index.
13880 <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
13881 into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
13882 (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
13883 Don't call try_move_mult_to_index.
13884 (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
13885 (tree_expr_nonzero_p): Likewise.
13886 (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
13887 of PLUS_EXPR for the complex expression folding.
13888 * tree-chrec.c (chrec_fold_plus_poly_poly): If the
13889 first chrec is a pointer type, then the second should
13890 be sizetype and not the first's type.
13891 For POINTER_PLUS_EXPR, use a different right hand side type.
13892 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
13893 (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
13894 different right hand side type.
13895 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
13896 (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
13897 instead of PLUS_EXPR.
13898 When either operand is zero, convert the other operand.
13899 (chrec_apply): Use chrec_convert_rhs
13900 on the argument x instead of chrec_convert.
13901 (reset_evolution_in_loop): For pointer types, the new_evol
13902 should be sizetype.
13903 (convert_affine_scev): For POINTER_PLUS_EXPR, use a
13904 different right hand side type.
13905 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
13906 (chrec_convert_rhs): New function.
13907 (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
13908 different right hand side type.
13909 Handle POINTER_PLUS_EXPR like PLUS_EXPR.
13910 * tree-chrec.h (chrec_convert_rhs): New prototype.
13911 (build_polynomial_chrec): For pointer types, the right hand
13912 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
13913 POINTER_PLUS_EXPR instead of PLUS_EXPR's.
13914 Remove subtraction case as it is always addition now.
13915 Make sure the offset is converted to sizetype.
13916 (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
13917 Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
13918 * tree-ssa-loop-ivopts.c (determine_base_object): Abort for
13919 PLUS_EXPR in pointer type.
13920 Handle POINTER_PLUS_EXPR.
13921 (tree_to_aff_combination): Likewise.
13922 (force_expr_to_var_cost): Likewise.
13923 (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
13924 instead of PLUS_EXPR for pointers.
13925 * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
13926 instead of PLUS_EXPR of pointer types.
13927 * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
13928 as PLUS_EXPR.
13929 (check_va_list_escapes): Likewise.
13930 (check_all_va_list_escapes): Likewise.
13931 * dwarf2out.c (loc_descriptor_from_tree_1):
13932 Handle POINT_PLUS_EXPR as a PLUS_EXPR.
13933 * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
13934 (string_constant): Likewise.
13935 * tree-ssa-address.c (tree_mem_ref_addr): When adding
13936 the offset to the base, use POINTER_PLUS_EXPR.
13937 (add_to_parts): Convert the index to sizetype.
13938 (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
13939 * matrix-reorg.c (collect_data_for_malloc_call): Stmt
13940 will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
13941 Offset only holds something for PLUS_EXPR.
13942 (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
13943 a PLUS_EXPR.
13944 (analyze_transpose): POINTER_PLUS_EXPR will only show up now
13945 and not PLUS_EXPR.
13946 (analyze_accesses_for_modify_stmt): Likewise.
13947 Remove comment about the type being integral type as it is
13948 wrong now.
13949 (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
13950 PLUS_EXPR.
13951 (transform_access_sites): POINTER_PLUS_EXPR will only show up now
13952 and not PLUS_EXPR.
13953 Correct the type which the artimentic is done in (is now
13954 sizetype).
13955 Reindent one loop.
13956 * tree-data-ref.c (split_constant_offset): Handle
13957 POINTER_PLUS_EXPR
13958 * tree-affine.c (tree_to_aff_combination): Likewise.
13959 * c-typeck.c (build_unary_op): For pointers create the increment
13960 as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
13961 for pointers.
13962 * gimplify.c (gimplify_self_mod_expr): Create a
13963 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
13964 (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
13965 * tree.def (POINTER_PLUS_EXPR): New tree code.
13966 * tree-predcom.c (ref_at_iteration): If we have a pointer
13967 type do the multiplication in sizetype.
13968 * tree-mudflap.c (mf_xform_derefs_1): Create a
13969 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
13970 * tree-ssa-forwprop.c
13971 (forward_propagate_addr_into_variable_array_index):
13972 Don't expect there to be a cast for the index as that
13973 does not exist anymore.
13974 (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
13975 instead of PLUS_EXPR.
13976 Don't check for the first operand of the POINTER_PLUS_EXPR
13977 was the index as it cannot be.
13978 Call forward_propagate_addr_into_variable_array_index with
13979 the SSA_NAME instead of the statement.
13980 * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
13981 (compare_constant): Likewise.
13982 (copy_constant): Likewise.
13983 (compute_reloc_for_constant): Likewise.
13984 (output_addressed_constants): Likewise.
13985 (initializer_constant_valid_p): Likewise.
13986 * tree-ssa.c (tree_ssa_useless_type_conversion_1):
13987 Convert the MIN/MAX of the inner type to the outer
13988 type before comparing them.
13989 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle
13990 POINTER_PLUS_EXPR instead of PLUS_EXPR.
13991 (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
13992 of PLUS_EXPR for pointers.
13993 * tree-inline.c (estimate_num_insns_1): Handle
13994 POINTER_PLUS_EXPR.
13995 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
13996 Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
13997 (bump_vector_ptr): Create a POINTER_PLUS_EXPR
13998 instead of PLUS_EXPR for the pointer increment statement.
13999 (vect_update_ivs_after_vectorizer): For pointer types, create
14000 POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
14001 MULT_EXPR in sizetype.
14002 (vect_gen_niters_for_prolog_loop): Add a cast when creating
14003 byte_misalign.
14004 * tree-object-size.c (plus_expr_object_size): Handle
14005 POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra
14006 code which is trying to figure out which side is a pointer and
14007 is the index.
14008 (check_for_plus_in_loops_1): Likewise.
14009 (check_for_plus_in_loops): Likewise.
14010 * c-common.c (pointer_int_sum): Create a
14011 POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
14012 * tree-ssa-structalias.c (handle_ptr_arith): Handle
14013 only POINTER_PLUS_EXPR. Removing all the extra
14014 code which is trying to figure out which side is a pointer and
14015 is the index.
14016 * tree-cfg.c (verify_expr): Add extra checking for pointers and
14017 PLUS_EXPR and MINUS_EXPR.
14018 Also add checking to make sure the operands of POINTER_PLUS_EXPR
14019 are correct.
14020 * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
14021 with make_tree, instead of a pointer type.
14022 * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
14023 for pointers instead of PLUS_EXPR.
14024 (s390_gimplify_va_arg): Likewise.
14025 * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
14026 instead of PLUS_EXPR when doing addition on pointer
14027 types. Use sizetype for the second operand.
14028 (spu_gimplify_va_arg_expr): Likewise.
14029 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use
14030 POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
14031 a pointer. Don't create a BIT_AND_EXPR for pointer types.
14032 * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
14033 for the pointer addition and also use size_int/sizetype
14034 for the offset.
14035 (ix86_gimplify_va_arg): Likewise.
14036 Perform BIT_AND_EXPR on sizetype arguments.
14037 * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
14038 and convert its result to a pointer type. Use POINTER_PLUS_EXPR
14039 for the pointer additions and also use size_int for the offsets.
14040 (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
14041 additions and also use size_int for the offsets. Perform
14042 BIT_AND_EXPR on sizetype arguments.
14043 * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
14044 POINTER_PLUS_EXPR for pointers and create the
14045 BIT_AND_EXPR in sizetype.
14046 * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
14047 instead of PLUS_EXPR for pointer addition.
14048 (rs6000_va_start): Likewise.
14049 Also use sizetype for the offset.
14050 * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
14051 as PLUS_EXPR/MINUS_EXPR.
14052 (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
14053 PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
14054 Don't use BIT_AND_EXPR on a pointer type, convert the
14055 expression to sizetype first.
14056 * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
14057 for pointers.
14058 (mips_gimplify_va_arg_expr): Likewise.
14059 Don't create BIT_AND_EXPR in a pointer type.
14060
14061 2007-06-15 Eric Christopher <echristo@apple.com>
14062
14063 * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
14064 (x86_64-*-darwin*): Ditto.
14065 * config/i386/darwin.h (CRTEND_SPEC): New. Add support
14066 for above.
14067
14068 2007-06-15 Matthew Wilcox <matthew@wil.cx>
14069
14070 * doc/extend.texi: Document behavior of __attribute__((aligned))
14071 on typedefs.
14072
14073 2007-06-15 Mark Mitchell <mark@codesourcery.com>
14074
14075 * rtlanal.c (note_stores): Improve documentation.
14076
14077 2007-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
14078
14079 * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
14080 LOCAL_LABEL_PREFIX): Delete.
14081 * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
14082 (bfin_internal_label): Delete.
14083
14084 2007-06-15 Uros Bizjak <ubizjak@gmail.com>
14085
14086 * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
14087 define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
14088 otherwise define to LIBGCC2_TF_CEXT.
14089 * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
14090 (LIBGCC_TF_CEXT): Ditto.
14091 (TF_SIZE): Ditto.
14092
14093 2007-06-14 Seongbae Park <seongbae.park@gmail.com>
14094
14095 PR rtl-optimization/32339
14096 * df-scan.c (df_uses_record): Don't modify flags but just add to
14097 it for df_ref_record.
14098
14099 2007-06-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
14100
14101 * tree-mudflap.c: Fix whitespace issues.
14102
14103 2007-06-15 Kazu Hirata <kazu@codesourcery.com>
14104
14105 * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
14106
14107 2007-06-14 Eric Christopher <echristo@apple.com>
14108
14109 * config/i386/sse.md (movdi_to_sse): Rewrite body.
14110 (movv4sf): Use gcc_unreachable instead of abort.
14111
14112 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
14113
14114 PR target/32268
14115 * config/i386/sfp-machine.h (CMPtype): New define.
14116 (mach stubs): Use CMPtype instead of int as a return type.
14117
14118 2007-06-14 Uros Bizjak <ubizjak@gmail.com>
14119
14120 * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
14121 config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
14122 config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
14123 config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
14124 config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
14125 config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
14126 config/soft-fp/soft-fp.h: Update from glibc CVS.
14127
14128 2007-06-14 Bernd Schmidt <bernd.schmidt@analog.com>
14129
14130 * config/bfin/uclinux.h (MFWRAP_SPEC): New.
14131
14132 2007-06-14 Rask Ingemann Lambertsen <rask@sygehus.dk>
14133
14134 PR target/32341
14135 * config/v850/v850.c: Include dataflow header file.
14136 (substitute_ep_register): Fix typo.
14137
14138 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
14139
14140 * configure.ac: Fix earlier checkin.
14141 * configure: Regenerated.
14142
14143 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
14144
14145 * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
14146 * aclocal.m4: Regenerate.
14147 * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
14148 ACX_PROG_CC_WARNINGS_ARE_ERRORS,
14149 ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
14150 * configure: Regenerate.
14151 * Makefile.in (LOOSE_WARN): Subst loose_warn.
14152
14153 * Makefile.in (quickstrap): Build libgcc too.
14154
14155 2007-06-14 Paolo Bonzini <bonzini@gnu.org>
14156
14157 * configure.ac: Add --enable-checking=df. Explicitly mention that
14158 the variables are initialized as for "release".
14159 * df-core.c: Use it.
14160 * configure: Regenerate.
14161 * config.in: Regenerate.
14162
14163 2007-06-14 Bob Wilson <bob.wilson@acm.org>
14164
14165 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
14166 validate_replace_rtx instead of replace_rtx.
14167 (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
14168
14169 2007-06-14 Danny Smith <dannysmith@users.sourceforge.net>
14170
14171 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
14172 (DWARF2_UNWIND_INFO): Override default if configured with
14173 SJLJ EH disabled.
14174 * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
14175 (ENDFILE_SPEC): Add crtend.o.
14176 * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
14177 (ENDFILE_SPEC): Add crtend.o.
14178 (TARGET_USE_JCR_SECTION): Define.
14179 (MD_UNWIND_SUPPORT): Define for 32-bit target.
14180
14181 * config/i386/cygming-crtbegin.c: New file.
14182 * config/i386/cygming-crtend.c: New file.
14183
14184 2007-06-14 Pascal Obry Pascal Obry <obry@adacore.com>
14185
14186 * config/i386/w32-unwind.h: New file.
14187
14188 2007-06-13 Eric Christopher <echristo@apple.com>
14189
14190 * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
14191 the user set a value below STACK_BOUNDARY.
14192
14193 2007-06-13 Thiemo Seufer <ths@networkno.de>
14194
14195 * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
14196 imply -lpthread for -pthread.
14197
14198 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
14199
14200 * basic-block.h: Remove the prototype for
14201 free_basic_block_vars.
14202 * cfglayout.h: Remove the prototype for
14203 insn_locators_initialize.
14204 * tree.h: Remove the prototype for emit_line_note.
14205
14206 * tree-ssa-pre.c (mergephitemp): Remove.
14207 (init_pre): Don't use mergephitemp.
14208
14209 2007-06-13 Eric Christopher <echristo@apple.com>
14210
14211 * config/i386/i386.c (override_options): If we've specified
14212 an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
14213
14214 2007-06-13 Bob Wilson <bob.wilson@acm.org>
14215
14216 * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
14217 is defined.
14218
14219 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
14220
14221 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
14222 * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
14223 (eh_store_handler): New pattern.
14224 (eh_return): Emit it instead of a plain move.
14225
14226 2007-06-13 Uros Bizjak <ubizjak@gmail.com>
14227
14228 * config/i386/i386.c (ix86_init_mmx_sse_builtins)
14229 [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
14230 [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
14231 def_builtin_const.
14232
14233 2007-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
14234
14235 * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
14236 (find_next_insn_start, find_load): New functions.
14237 (bfin_reorg): Use them to deal with the fact that parallel insns are
14238 no longer represented as a SEQUENCE.
14239
14240 2007-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
14241
14242 * config/sparc/sparc.c (sparc_override_options): Initialize
14243 fpu mask correctly.
14244
14245 2007-06-13 Dave Korn <dave.korn@artimi.com>
14246
14247 * config/i386/i386.c (ix86_eax_live_at_start_p): Use
14248 df_get_live_out.
14249
14250 2007-06-13 Kazu Hirata <kazu@codesourcery.com>
14251
14252 * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
14253 config/sh/divcost-analysis, dbgcnt.def, df-core.c,
14254 df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
14255 tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
14256 tree-vect-transform.c: Fix comment typos. Follow spelling
14257 conventions.
14258
14259 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
14260
14261 * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
14262 to the exit block use set.
14263 (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring".
14264 * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
14265 * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
14266
14267 2007-06-12 Seongbae Park <seongbae.park@gmail.com>
14268
14269 * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
14270 * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
14271 to indicate an error.
14272 (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
14273 New functions.
14274 (dbg_cnt_process_opt): Print an error on a bad argument.
14275 * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
14276 * common.opt (-fdbg-cnt-list): New.
14277 * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
14278
14279 2007-06-12 Eric Botcazou <ebotcazou@adacore.com>
14280
14281 * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
14282 flag on ref-all pointers.
14283
14284 2007-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
14285
14286 PR middle-end/31579
14287 * expr.c (expand_expr_addr_expr_1): Call expand_expr
14288 for the offset with the modifier as EXPAND_INITIALIZER
14289 if the modifier is EXPAND_INITIALIZER.
14290 (expand_expr_real_1 <case INTEGER_CST>): Don't force to
14291 a register if we had an overflow.
14292
14293 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14294
14295 * real.c (real_isfinite): New.
14296 (real_sqrt): Use it.
14297 * real.h (real_isfinite): New.
14298 * builtins.c: Use it.
14299
14300 2007-06-12 Ian Lance Taylor <iant@google.com>
14301 Daniel Berlin <dberlin@dberlin.org>
14302
14303 PR libstdc++/29286
14304 * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
14305 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
14306 (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
14307 (DECL_NO_TBAA_P): Define.
14308 (struct tree_decl_common): Add no_tbaa_flag field.
14309 * tree-ssa-structalias.c (struct variable_info): Add
14310 no_tbaa_pruning field.
14311 (new_var_info): Initialize no_tbaa_pruning field.
14312 (unify_nodes): Copy no_tbaa_pruning field.
14313 (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
14314 (dump_solution_for_var): Print no_tbaa_pruning flag.
14315 (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all
14316 callers.
14317 (compute_tbaa_pruning): New static function.
14318 (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
14319 Call compute_tbaa_pruning.
14320 * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
14321 * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
14322 * gimple-low.c (lower_stmt): Likewise.
14323 * tree-gimple.c (is_gimple_stmt): Likewise.
14324 * tree-ssa-operands.c (get_expr_operands): Likewise.
14325 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
14326 * tree-inline.c (estimate_num_insns_1): Likewise.
14327 (copy_result_decl_to_var): Likewise.
14328 * expr.c (expand_expr_real_1): Likewise.
14329 * tree-pretty-print.c (dump_generic_node): Likewise.
14330 * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
14331 * omp-low.c (omp_copy_decl_2): Likewise.
14332 * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
14333 * doc/c-tree.texi (Expression trees): Document
14334 CHANGE_DYNAMIC_TYPE_EXPR.
14335
14336 2007-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14337
14338 * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
14339 with !HONOR_NANS and !HONOR_INFINITIES.
14340 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
14341
14342 2007-06-12 Tristan Gingold <gingold@adacore.com>
14343
14344 * gcov.c: Comments updated.
14345 (source_info): Add file_time field.
14346 (source_index): New variable.
14347 (mutiple_files): New variable.
14348 (generate_results): New function extracted from process_file.
14349 (process_file): Save and restore chain of functions, generate
14350 results and free structures only if not merging results.
14351 (release_structures): File names are now freed in create_file_names
14352 (create_file_names): Free previous file names.
14353 (find_source): File date is now read here and modifications in
14354 source files is checked here.
14355 (read_graph_file): Only reverse order of functions for the current
14356 object file.
14357 (make_gcov_file_name): Do not generate long names if input_name is
14358 NULL.
14359 (output_lines): If merging results do not display graph, data and
14360 runs informations.
14361 Checking source file modification is done in find_source.
14362
14363 * doc/gcov.texi: Append an s to sourcefile.
14364
14365 2007-06-12 Bernd Schmidt <bernd.schmidt@analog.com>
14366
14367 * config/bfin/bfin.md (UNSPEC_NOP): New constant.
14368 (forced_nop): New pattern.
14369 * config/bfin/bfin.c: Include "df.h".
14370 (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
14371 (bfin_discover_loop): Use df_get_live_in instead of
14372 global_live_at_start.
14373 (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call
14374 df_analyze when done.
14375 (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
14376 the insns. Use QImode for the final insn in a bundle. Call
14377 df_insn_rescan on generated NOPs; use gen_forced_nop instead of
14378 gen_nop.
14379 (reorder_var_tracking_notes): New function.
14380 (bfin_reorg): Pass no argument to split_all_insns. Don't call
14381 update_life_info. Call df_analyze after scheduling and bundle
14382 generation. Call reorder_var_tracking_notes if generating these
14383 notes. Call df_finish_pass at the end.
14384
14385 2007-06-12 Dirk Mueller <dmueller@suse.de>
14386
14387 * optabs.c (debug_optab_libfuncs): fix gcc_assert to
14388 a comparison, not an assignment.
14389
14390 2007-06-12 Olivier Hainque <hainque@adacore.com>
14391
14392 * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
14393 Request walking the subtrees only, leaving the current is_lhs/val_only
14394 untouched.
14395 (convert_non_local_reference): Likewise.
14396
14397 2007-06-12 Nathan Sidwell <nathan@codesourcery.com>
14398
14399 * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
14400
14401 2007-06-12 Richard Guenther <rguenther@suse.de>
14402
14403 PR tree-optimization/15353
14404 PR tree-optimization/31657
14405 * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
14406 * timevar.def: Add TV_TREE_IFCOMBINE.
14407 * tree-pass.h (pass_tree_ifcombine): Declare.
14408 * tree-ssa-ifcombine.c: New file.
14409 * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
14410 * tree-flow.h (blocks_in_phiopt_order): Declare.
14411 * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
14412 (tree-ssa-ifcombine.o): New dependencies.
14413
14414 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
14415
14416 PR rtl-optimization/32293
14417 * combine.c (simplify_if_then_else): Truncate return from
14418 nonzero_bits() to correct mode.
14419
14420 2007-06-12 Uros Bizjak <ubizjak@gmail.com>
14421
14422 * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
14423 into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
14424
14425 2007-06-11 Diego Novillo <dnovillo@google.com>
14426
14427 * Makefile.in (reload1.o-warn): Remove.
14428
14429 2007-06-11 Seongbae Park <seongbae.park@gmail.com>
14430
14431 * combine.c (subst): Use reg_overlap_mentioned_p
14432 instead of comparing register numbers directly.
14433
14434 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
14435
14436 * reload1.c (mark_home_live_1): Use the mode parameter.
14437
14438 2007-06-11 Kenneth Zadeck <zadeck@naturalbridge.com>
14439
14440 * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
14441 df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
14442 word "deferred".
14443 * df-core.c: Ditto.
14444
14445 2007-06-11 Daniel Berlin <dberlin@dberlin.org>
14446
14447 * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
14448
14449 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
14450
14451 * config/i386/i386.md ("*movtf_internal): Penalize moves to and
14452 from integer registers.
14453 (FP mode splitters): Handle TFmode.
14454
14455 2007-06-11 Eric Botcazou <ebotcazou@adacore.com>
14456
14457 * tree-ssa-structalias.c (find_what_p_points_to): Return false
14458 for ref-all pointers that point-to anything.
14459
14460 2007-06-11 Joseph Myers <joseph@codesourcery.com>
14461
14462 * config/arm/arm.c (arm_output_dwarf_dtprel,
14463 TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
14464
14465 2007-06-11 Bernd Schmidt <bernd.schmidt@analog.com>
14466
14467 * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
14468 movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
14469 to memory moves.
14470
14471 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
14472
14473 * tree.c (signed_or_unsigned_type_for): New.
14474 (unsigned_type_for): Use signed_or_unsigned_type_for.
14475 (signed_type_for): Use signed_or_unsigned_type_for.
14476 * tree.h (signed_or_unsigned_type_for): New.
14477 (get_signed_or_unsigned_type): Remove.
14478 * fold-const.c (fold_negate_expr): Use signed_type_for instead of
14479 lang_hooks.types.signed_type
14480 (size_diffop): Likewise.
14481 (all_ones_mask_p): Likewise.
14482 (build_range_check): Likewise.
14483 (fold_cond_expr_with_comparison): Likewise.
14484 (fold_cond_expr_with_comparison): Likewise.
14485 (unextend): Likewise.
14486 (extract_muldiv_1): Likewise.
14487 (fold_single_bit_test_into_sign_test): Likewise.
14488 (fold_binary): Likewise.
14489 (fold_ternary): Likewise.
14490 (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
14491 instead of get_signed_or_unsigned_type.
14492 * c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
14493 (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
14494 * expr.c (signed_or_unsigned_type_for): Use
14495 signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
14496 * langhooks.c (get_signed_or_unsigned_type): Remove.
14497 (lhd_signed_or_unsigned_type): Remove.
14498 * langhooks.h (lang_hooks_for_types): Remove signed_type and
14499 signed_or_unsigned_type.
14500 (lhd_signed_or_unsigned_type): Remove.
14501 * expmed.c (make_tree): Use signed_type_for instead of
14502 lang_hooks.types.signed_type.
14503 * c-common.c (same_scalar_type_ignoring_signedness): Use
14504 c_common_signed_type instead of lang_hooks.types.signed_type.
14505 (c_common_unsigned_type): New.
14506 (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
14507 (shorten_compare): Use c_common_unsigned_type instead of
14508 c_common_signed_or_unsigned_type.
14509 (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
14510 unsigned_type_for.
14511 * convert.c (convert_to_integer): Use signed_type_for instead of
14512 lang_hooks.types.signed_type.
14513 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
14514 (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
14515 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
14516 * c-format.c (check_format_types): Use c_common_unsigned_type
14517 instead of unsigned_type_for.
14518 * c-decl.c (groakdeclarator): Likewise.
14519 * c-typeck.c (convert_for_assignment): Likewise.
14520 * c-common.h (c_common_unsigned_type): New.
14521
14522 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
14523
14524 PR target/32280
14525 * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
14526 * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
14527
14528 2007-06-11 Uros Bizjak <ubizjak@gmail.com>
14529
14530 PR middle-end/32279
14531 * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
14532 into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
14533
14534 2007-06-10 Jan Sjodin <jan.sjodin@amd.com>
14535 Sebastian Pop <sebpop@gmail.com>
14536
14537 * lambda-code.c (remove_iv): New.
14538 (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
14539
14540 2007-06-10 Zdenek Dvorak <dvorakz@suse.cz>
14541
14542 * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
14543 * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
14544 * tree-ssa-loop-prefetch.c: Include optabs.h.
14545 (FENCE_FOLLOWING_MOVNT): New macro.
14546 (struct mem_ref): Add independent_p and storent_p fields.
14547 (record_ref): Initalize the new fields.
14548 (gather_memory_references_ref): Return true if the reference
14549 could be analysed.
14550 (gather_memory_references): Check whether all memory accesses
14551 in loop were recorded.
14552 (should_issue_prefetch_p): Return false for nontemporal stores.
14553 (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
14554 may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
14555 (determine_loop_nest_reuse): Detect independent memory references.
14556 (loop_prefetch_arrays): Call mark_nontemporal_stores.
14557 * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
14558 * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
14559 * config/i386/i386.h (x86_mfence): Declare.
14560 (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
14561 * config/i386/i386.c (x86_mfence): New variable.
14562 (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
14563
14564 * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
14565 * optabs.c (init_optabs): Initialize storent_optab.
14566 * optabs.h (enum optab_index): Add OTI_storent.
14567 (storent_optab): Declare.
14568 * genopinit.c (optabs): Add initialization for storent_optab.
14569 * tree.h (MOVE_NONTEMPORAL): New macro.
14570 * expr.c (expand_assignment, store_expr, store_constructor_field,
14571 store_constructor, store_field, expand_expr_real_1): Propagate
14572 nontemporality of the expanded store.
14573 (emit_storent_insn): New function.
14574 * expr.h (expand_assignment, store_expr): Declaration changed.
14575 * function.c (assign_parm_setup_reg): Pass false as nontemporality
14576 to expand_assignment.
14577 * stmt.c (expand_asm_expr): Ditto.
14578 * calls.c (initialize_argument_information): Pass false as
14579 nontemporality to store_expr.
14580 * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
14581 storentsi): New.
14582
14583 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
14584
14585 * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
14586 parameter, use it.
14587 (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
14588
14589 2007-06-09 Daniel Berlin <dberlin@dberlin.org>
14590
14591 * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
14592 and allow DECL_P here.
14593
14594 2007-06-09 Zdenek Dvorak <dvorakz@suse.cz>
14595
14596 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
14597 follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
14598 track of the size of the expression.
14599 * cfghooks.c (merge_blocks): Remove block from loops structure only
14600 after call of the merge_blocks hook.
14601
14602 2007-06-09 Tom Tromey <tromey@redhat.com>
14603
14604 * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
14605 (deprecated_state): Removed.
14606 (start_decl): Update.
14607 (enum deprecated_states): Moved earlier.
14608 (groktypename): Update.
14609 (push_parm_decl): Likewise.
14610 (grokfield): Likewise.
14611 (start_function): Likewise.
14612
14613 2007-06-09 Ian Lance Taylor <iant@google.com>
14614
14615 PR tree-optimization/32169
14616 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
14617 CONVERT_EXPR, check whether min and max both converted to an
14618 overflow infinity representation.
14619
14620 2007-06-08 Eric Botcazou <ebotcazou@adacore.com>
14621
14622 * reload1.c (fixup_abnormal_edges): Clear bb field for insns
14623 not inserted on the edge.
14624
14625 2007-06-08 Bob Wilson <bob.wilson@acm.org>
14626
14627 * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
14628 instructions if they are supported.
14629 (__divsi3, __umodsi3, __modsi3): Likewise.
14630 (__ashldi3, __ashrdi3, __lshrdi3): New.
14631 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
14632
14633 2007-06-08 Harsha Jagasia <harsha.jagasia@amd.com>
14634 Tony Linthicum <tony.linthicum@amd.com>
14635
14636 * doc/invoke.texi: Add fvect-cost-model flag.
14637 * common.opt (fvect-cost-model): New flag.
14638 * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
14639 cost fields in stmt_vec_info struct for STMT.
14640 * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
14641 fields in stmt_vec_info struct and access functions for the same.
14642 (TARG_COND_BRANCH_COST): Define cost of conditional branch.
14643 (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
14644 load, store and vector to scalar operation.
14645 (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
14646 (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
14647 (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
14648 (TARG_VEC_STORE_COST): Define cost of vector store.
14649 (vect_estimate_min_profitable_iters): Define new function.
14650 * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
14651 check to evaluate if loop iterations are less than minimum profitable
14652 iterations determined by cost model or minimum vect loop bound defined
14653 by user, whichever is more conservative.
14654 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
14655 run-time check to evaluate if loop iterations are less than minimum
14656 profitable iterations determined by cost model or minimum vect loop
14657 bound defined by user, whichever is more conservative.
14658 (vect_estimate_min_profitable_iterations): New function to estimate
14659 mimimimum iterartions required for vector version of loop to be
14660 profitable over scalar version.
14661 (vect_model_reduction_cost): New function.
14662 (vect_model_induction_cost): New function.
14663 (vect_model_simple_cost): New function.
14664 (vect_cost_strided_group_size): New function.
14665 (vect_model_store_cost): New function.
14666 (vect_model_load_cost): New function.
14667 (vectorizable_reduction): Call vect_model_reduction_cost during
14668 analysis phase.
14669 (vectorizable_induction): Call vect_model_induction_cost during
14670 analysis phase.
14671 (vectorizable_load): Call vect_model_load_cost during analysis phase.
14672 (vectorizable_store): Call vect_model_store_cost during analysis phase.
14673 (vectorizable_call, vectorizable_assignment, vectorizable_operation,
14674 vectorizable_promotion, vectorizable_demotion): Call
14675 vect_model_simple_cost during analysis phase.
14676
14677 2007-06-08 Simon Baldwin <simonb@google.com>
14678
14679 * reg-stack.c (get_true_reg): Readability change. Moved default case
14680 label into direct switch statement scope.
14681
14682 2007-06-08 Simon Baldwin <simonb@google.com>
14683
14684 * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
14685 in gcc_assert() with '==' comparison.
14686
14687 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
14688
14689 * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
14690 TARGET_ABM handling of x86_popcnt variable.
14691
14692 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
14693
14694 * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
14695 __builtin_copysignq and __builtin_infq built-in functions.
14696
14697 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
14698
14699 * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
14700 SSE4.2 section. Correct built-in function names in SSE4A section.
14701
14702 2007-06-08 Uros Bizjak <ubizjak@gmail.com>
14703
14704 PR tree-optimization/32243
14705 * tree-vect-transform.c (vectorizable_type_promotion): Move check
14706 for ncopies after ratio check between nunits_out and nunits_in.
14707 (vectorizable_type_demotion): Remove single-use variable "scalar_type".
14708
14709 2007-06-08 Dorit Nuzman <dorit@il.ibm.com>
14710
14711 PR tree-optimization/32224
14712 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
14713 vectorization upon a non GIMPLE_MODIFY_STMT.
14714
14715 2007-06-08 Christian Bruel <christian.bruel@st.com>
14716
14717 PR target/29953
14718 * config/sh/sh.md (doloop_end): New pattern and splitter.
14719 * loop-iv.c (simple_rhs_p): Check for hardware registers.
14720
14721 2007-06-08 Zdenek Dvorak <dvorakz@suse.cz>
14722
14723 PR middle-end/32209
14724 * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
14725 functions.
14726 (verify_dominators): Do not change dominance tree.
14727
14728 2007-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
14729
14730 * config/sh/constraints.md: New file.
14731 * config/sh/sh.c: Include tm-constrs.h.
14732 (reg_class_from_letter): Remove.
14733 (prepare_cbranch_operands): Use satisfies_constraint_*
14734 function instead of macro.
14735 (andcosts, broken_move, sh_secondary_reload): Likewise.
14736 * config/sh/predicates.md (trapping_target_operand): Likewise.
14737 (and_operand, arith_operand, arith_reg_or_0_operand,
14738 cmp_operand, logical_operand, target_operand,
14739 ua_address_operand, ua_offset, xor_operand): Likewise.
14740 * config/sh/sh.md: Include constraints.md.
14741 (*movsicc_t_false): Use satisfies_constraint_* function
14742 instead of macro.
14743 (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
14744 lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
14745 movdi_const_16bit+1, beq, bne, *ptb): Likewise.
14746 * config/sh/sh.h (reg_class_from_letter): Remove prototype.
14747 (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
14748 (REG_CLASS_FROM_CONSTRAINT): Remove.
14749 (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
14750 CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
14751 CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
14752 CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
14753 CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
14754 (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
14755 function instead of macro.
14756 (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
14757 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
14758 EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
14759 EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
14760 (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
14761 (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
14762 (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
14763 (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
14764 (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
14765 EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
14766 EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
14767 EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
14768 EXTRA_CONSTRAINT_STR): Likewise.
14769 (GO_IF_LEGITIMATE_INDEX): Fix indentation.
14770
14771 2007-06-07 Geoffrey Keating <geoffk@apple.com>
14772
14773 * config/i386/darwin.h (STACK_BOUNDARY): Define.
14774
14775 2007-06-07 Simon Martin <simartin@users.sourceforge.net>
14776
14777 PR c++/30759
14778 * c-common.h (flag_cpp0x): Replaced by...
14779 (cxx_dialect): ... this new variable specifying the C++ dialect that
14780 is used.
14781 * c-common.c (flag_cpp0x): Removed.
14782 (cxx_dialect): Defined.
14783 * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
14784 cxx_dialect.
14785 * c-opts.c (c_common_post_options): Likewise.
14786 (set_std_cxx98): Set cxx_dialect to cxx98.
14787 (set_std_cxx0x): Set cxx_dialect to cxx0x.
14788
14789 2007-06-07 Geoffrey Keating <geoffk@apple.com>
14790 Hui-May Chang <hm.chang@apple.com>
14791
14792 * doc/invoke.texi (Darwin Options): Update documentation for
14793 -mmacosx-version-min.
14794 * config.gcc (*-*-darwin*): Set extra_gcc_objs.
14795 * config/darwin-driver.c: New file.
14796 * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
14797 * config/t-darwin (darwin-driver.o): New rule.
14798
14799 * config/darwin-c.c (version_as_macro): Ignore low digit.
14800
14801 2007-06-07 Uros Bizjak <ubizjak@gmail.com>
14802
14803 * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
14804 (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
14805 (CSGNMODE): New mode macro.
14806 (CSGNVMODE): New mode attribute.
14807 (copysign<mode>3): Rename from copysingsf3 and copysigndf3. Macroize
14808 expander using CSGNMODE mode macro. Handle TFmode.
14809 (copysign<mode>3_const): Rename from copysignsf3_const and
14810 copysigndf3_const. Macroize pattern using CSGNMODE mode macro.
14811 Handle TFmode.
14812 (copysign<mode>3_var): Rename from copysignsf3_var and
14813 copysigndf3_var. Macroize pattern using CSGNMODE mode macro.
14814 Handle TFmode.
14815 (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
14816 mode macro. Handle TFmode.
14817 * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
14818 (iortf3, *iortf3): Ditto.
14819 (xortf3, *xortf3): Ditto.
14820 * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
14821 TFmode and TImode masks.
14822 (ix86_expand_copysign): Expand TFmode copysign insn.
14823 (IX86_BUILTIN_INFQ): New.
14824 (IX86_BUILTIN_FABSQ): Ditto.
14825 (IX86_BUILTIN_COPYSIGNQ): Ditto.
14826 (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
14827 [__builtin_fabsq]: Ditto.
14828 [__builtin_copysignq]: Ditto.
14829 (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
14830 [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
14831 [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
14832 ix86_expand_binop_builtin().
14833
14834 2007-06-07 Bob Wilson <bob.wilson@acm.org>
14835
14836 * config/xtensa/lib1funcs.asm: Clean up whitespace.
14837
14838 2007-06-07 Steve Ellcey <sje@cup.hp.com>
14839
14840 PR target/31850
14841 * rtl.h (push_to_sequence2): New.
14842 * emit-rtl.c (push_to_sequence2): New.
14843 * function.c (assign_parm_data_all): Add new fields.
14844 (assign_parm_setup_block): Call push_to_sequence2 instead of
14845 push_to_sequence.
14846 (assign_parm_setup_reg): Ditto.
14847 (assign_parm_setup_stack): Ditto.
14848 (assign_parms_unsplit_complex): Ditto.
14849 (assign_parms): Change field name.
14850
14851 2007-06-07 Zdenek Dvorak <dvorakz@suse.cz>
14852
14853 PR tree-optimization/32220
14854 * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
14855 phi node is reached before defining statement.
14856
14857 2007-06-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
14858
14859 PR tree-opt/32231
14860 * tree-vect-transform.c (vectorizable_call): Call update_stmt
14861 after changing the right hand side of the assignment.
14862
14863 2007-06-06 Eric Christopher <echristo@apple.com>
14864
14865 * config.gcc (i?86-*-darwin*): Remove arch parameter.
14866 (x86_64-*-darwin*): Ditto.
14867 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
14868 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
14869
14870 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
14871
14872 * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
14873 coding conventions.
14874 (add_key): Likewise.
14875 * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
14876 * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
14877 variable names.
14878 * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
14879 macros.
14880 (add_cost_one_coalesce): Likewise.
14881 * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
14882 variable names. Rename orig to orig_name for consistency.
14883 * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
14884 coding conventions.
14885 (cprop_into_successor_phis): Avoid using C++ keywords as variable
14886 names.
14887 (record_equivalences_from_stmt): Likewise.
14888 * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
14889 the coding conventions.
14890 (memory_ssa_name_same): Likewise.
14891 (dse_optimize_stmt): Likewise.
14892 (dse_record_phis): Likewise.
14893 (dse_finalize_block): Likewise.
14894 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
14895 keywords as variable names.
14896 (may_move_till): Cast according to the coding conventions.
14897 (force_move_till_expr): Avoid using C++ keywords as variable names.
14898 (force_move_till): Cast according to the coding conventions.
14899 (memref_hash): Likewise.
14900 (memref_eq): Likewise.
14901 (gather_mem_refs_stmt): Likewise.
14902 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
14903 using C++ keywords as variable names.
14904 (idx_find_step): Cast according to the coding conventions.
14905 (idx_record_use): Likewise.
14906 (find_depends): Likewise.
14907 (prepare_decl_rtl): Likewise.
14908 (mbc_entry_hash): Likewise.
14909 (mbc_entry_eq): Likewise.
14910 * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
14911 (simplify_replace_tree): Avoid using C++ keywords as variable names.
14912 (idx_infer_loop_bounds): Cast according to the coding conventions.
14913 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
14914 * tree-ssa-math-opts.c (occ_new ): Likwise.
14915 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
14916 macros.
14917 * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
14918 variable names.
14919 (add_use_op): Likewise.
14920 (add_vop): Likewise.
14921 (add_vuse_op): Likewise.
14922 (add_vdef_op): Likewise.
14923 (get_expr_operands): Likewise.
14924 (push_stmt_changes): Use type safe memory macros.
14925 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
14926 keywords as variable names.
14927 (conditional_replacement): Likewise.
14928 (minmax_replacement): Likewise.
14929 (abs_replacement): Likewise.
14930 * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
14931 coding conventions.
14932 (insert_fake_stores): Avoid using C++ keywords as variable names.
14933 * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
14934 conventions.
14935 * tree-ssa-structalias.c (heapvar_lookup): Likewise.
14936 (heapvar_insert): Use type safe memory macros.
14937 (new_var_info): Cast according to the coding conventions.
14938 (new_constraint): Likewise.
14939 (remove_preds_and_fake_succs): Use type safe memory macros.
14940 * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
14941 conventions.
14942 (thread_single_edge): Likewise.
14943 (thread_through_loop_header): Likewise.
14944
14945 2007-06-06 Eric Christopher <echristo@apple.com>
14946
14947 * config/i386/i386.c (override_options): Move handling
14948 of TARGET_SUBTARGET* earlier.
14949
14950 2007-06-06 Paolo Bonzini <bonzini@gnu.org>
14951
14952 * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
14953 use %n on printf.
14954
14955 2007-06-06 Zdenek Dvorak <dvorakz@suse.cz>
14956
14957 * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
14958 emited outside of basic block.
14959 * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
14960 the created blocks.
14961 * rtl.h (delete_insn_chain): Declaration changed.
14962 * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
14963 non-removed insns.
14964 (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
14965 (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
14966 rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
14967 to delete_insn_chain.
14968 (rtl_verify_flow_info_1): Verify that the insns in header and footer
14969 do not have bb field set.
14970 (rtl_verify_flow_info): Verify that insns between basic blocks do not
14971 have bb field set.
14972 * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
14973 * cfgcleanup.c (try_optimize_cfg): Ditto.
14974
14975 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
14976
14977 * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
14978 (lambda_body_vector_new): Use type safe memory macros.
14979 (lambda_linear_expression_new): Likewise.
14980 (lambda_loopnest_new): Likewise.
14981 (lambda_lattice_new): Likewise.
14982 (replace_uses_equiv_to_x_with_y): Cast according to the coding
14983 conventions. Use type safe memory macros.
14984 * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
14985 (lambda_body_vector_s): Likewise.
14986 * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
14987 * lambda-trans.c (lambda_trans_matrix_new): Likewise.
14988
14989 2007-06-06 Richard Guenther <rguenther@suse.de>
14990
14991 * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
14992 if we need to schedule cfg_cleanup.
14993 (tree_ssa_forward_propagate_single_use_vars): Do so.
14994
14995 2007-06-06 Ian Lance Taylor <iant@google.com>
14996
14997 * fold-const.c (merge_ranges): If range_successor or
14998 range_predecessor fail, just return 0.
14999
15000 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
15001
15002 PR tree-optimization/32216
15003 * tree-vectorizer.c (supportable_widening_operation): Determine
15004 signedness of FIX_TRUNC_EXPR from output operand.
15005 (supportable_narrowing_operation): Ditto.
15006 * tree-vect-generic.c (expand_vector_operations_1): Determine
15007 signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
15008 from input operand.
15009
15010 2007-06-06 Thomas Neumann <tneumann@users.sourceforge.net>
15011
15012 * config/i386/i386.c (enum pta_flags): Move out of struct scope...
15013 (struct pta): ...from here. Change flags to unsigned to avoid
15014 excessive casting (as it is used as a bit mask).
15015 (override_options): Add casts according to the coding convenventions.
15016 (x86_64_elf_unique_section): Likewise.
15017 (examine_argument): Avoid using C++ keywords as variable names.
15018 (construct_container): Likewise.
15019 (legitimize_pic_address): Likewise.
15020 (get_dllimport_decl): Cast according to the coding conventions. Use
15021 type safe memory macros.
15022 (legitimize_address): Cast according to the coding conventions.
15023 (emit_i387_cw_initialization): Corrected the type of slot to enum
15024 ix86_stack_slot.
15025 (ix86_init_machine_status): Use type safe memory macros.
15026 (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
15027 (bdesc_pcmpistr): Likewise.
15028 (bdesc_crc32): Likewise.
15029 (bdesc_sse_3arg): Likewise.
15030 (bdesc_2arg): Likewise.
15031 (bdesc_1arg): Likewise.
15032 (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
15033 (ix86_expand_sse_pcmpistr): Likewise.
15034 (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
15035 (ix86_builtin_vectorized_function): Change the type of fn to unsigned
15036 int to match the langhook definition.
15037 (ix86_builtin_conversion): Change the type of code to unsigned init to
15038 match the langhook definition.
15039 (ix86_preferred_reload_class): Avoid using C++ keywords as variable
15040 names.
15041 (ix86_preferred_output_reload_class): Likewise.
15042 (ix86_cannot_change_mode_class): Likewise.
15043 (ix86_memory_move_cost): Likewise.
15044 (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
15045 avoid excessive casting later on.
15046 (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
15047
15048 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
15049
15050 * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
15051 as flags setting insn.
15052 (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
15053
15054 2007-06-06 Uros Bizjak <ubizjak@gmail.com>
15055
15056 * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
15057 (UNSPEC_ROUND): New.
15058 ("sse4_1_round<mode>2"): New insn pattern.
15059 ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
15060 SSE4.1 targets.
15061 ("floor<mode>2"): Rename from floordf2 and floorsf2. Macroize
15062 expander using SSEMODEF mode macro. Expand using
15063 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
15064 ("ceil<mode>2"): Rename from ceildf2 and ceilsf2. Macroize
15065 expander using SSEMODEF mode macro. Expand using
15066 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
15067 ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2. Macroize
15068 expander using SSEMODEF mode macro. Expand using
15069 "sse4_1_round<mode>2" pattern for SSE4.1 targets.
15070 * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
15071 UNSPEC_ROUND instead of UNSPEC_ROUNDP.
15072 ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
15073 UNSPEC_ROUNDS.
15074
15075 2007-06-06 Jan Sjodin <jan.sjodin@amd.com>
15076 Sebastian Pop <sebpop@gmail.com>
15077
15078 * lambda.h (build_linear_expr): New.
15079 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
15080 Use build_linear_expr, call fold and force_gimple_operand.
15081 (lambda_loopnest_to_gcc_loopnest): Check that there is
15082 something to insert.
15083 * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
15084
15085 2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
15086
15087 PR preprocessor/23479
15088 * doc/extend.texi: Document the 0b-prefixed binary integer
15089 constant extension.
15090
15091 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
15092
15093 PR tree-optimization/32215
15094 * tree-vectorizer.c (supportable_widening_operation): Return false
15095 for unsupported FIX_TRUNC_EXPR tree code.
15096 (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
15097
15098 2007-06-06 Nathan Froyd <froydnj@codesourcery.com>
15099
15100 * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
15101 register on SPE targets. Change documentation to reflect
15102 reality.
15103 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
15104 Change FIXED_SCRATCH to 14 and document why we're keeping r14
15105 out of the register allocation pool.
15106 (rs6000_reg_live_or_pic_offset_p): New function.
15107 (rs6000_emit_prologue): Move the actual saving of LR up to free
15108 r0 for holding r11. Split saving of SPE 64-bit registers into
15109 its own case. Ensure that offsets will always be in-range for
15110 'evstdd' by using r11 as a scratch register to point at the start
15111 of the SPE save area. Save r11 if necessary, as it is the static
15112 chain register.
15113 (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
15114 into its own case. Ensure that offsets will always be in-range
15115 for 'evldd' by using r11 as a scratch register to point at the
15116 start of the SPE save area. Also adjust r11 when restoring
15117 the stack pointer to compensate for pre-loading r11.
15118
15119 2007-06-05 Thomas Neumann <tneumann@users.sourceforge.net>
15120
15121 * cfg.c (init_flow): Use type safe memory macros.
15122 (alloc_block): Likewise.
15123 (unchecked_make_edge): Likewise.
15124 (dump_flow_info): Avoid using C++ keywords as variable names.
15125 (copy_original_table_clear): Cast according to the coding conventions.
15126 (copy_original_table_set): Likewise.
15127 * cfgexpand (label_rtx_for_bb): Likewise.
15128 (expand_gimple_basic_block): Likewise.
15129 * cfghooks.c (dump_bb): Likewise.
15130 (lv_adjust_loop_header_phi): Avoid using C++ keywords as
15131 variable names.
15132 (lv_add_condition_to_bb): Likewise.
15133 * cfglayout (relink_block_chain): Cast according to the coding
15134 conventions.
15135 (fixup_reorder_chain): Likewise.
15136 (fixup_fallthru_exit_predecessor): Likewise.
15137 * cfgloop.c (glb_enum_p): Likewise.
15138 (get_exit_description): Likewise.
15139 (dump_recorded_exit): Likewise.
15140 * cfgloop.h (enum loop_estimation): Move out of struct scope...
15141 (struct loop): ... from here.
15142 * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
15143 conventions.
15144 * cfgrtl.c (rtl_create_basic_block): Likewise.
15145 (rtl_split_block): Likewise.
15146 (rtl_dump_bb): Likewise.
15147 (cfg_layout_split_block): Likewise.
15148 (init_rtl_bb_info): Use typesafe memory macros.
15149
15150 * graphds.h (struct graph_edge): Renamed edge to graph_edge.
15151 * graphds.h: Updated all usages of edge to graph_edge.
15152 * graphds.c: Likewise.
15153 * cfgloopanal.c: Likewise.
15154
15155 2007-06-05 Ian Lance Taylor <iant@google.com>
15156
15157 * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
15158 PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
15159 (extract_range_from_assert): Set TREE_NO_WARNING when creating an
15160 expression.
15161 (test_for_singularity): Likewise.
15162
15163 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
15164
15165 * config/i386/constraints.md ("Y2"): Replaced by ...
15166 ("Yt"): This.
15167 * config/i386/i386.md: Likewise.
15168 * config/i386/mmx.md: Likewise.
15169 * config/i386/sse.md: Likewise.
15170
15171 2007-06-05 H.J. Lu <hongjiu.lu@intel.com>
15172
15173 * config/i386/constraints.md ("z"): Replaced by ...
15174 ("Y0"): This.
15175 * config/i386/sse.md (sse4_1_blendvpd): Likewise.
15176 (sse4_1_blendvps): Likewise.
15177 (sse4_1_pblendvb): Likewise.
15178 (sse4_2_pcmpestr): Likewise.
15179 (sse4_2_pcmpestrm): Likewise.
15180 (sse4_2_pcmpestr_cconly): Likewise.
15181 (sse4_2_pcmpistr): Likewise.
15182 (sse4_2_pcmpistrm): Likewise.
15183 (sse4_2_pcmpistr_cconly): Likewise.
15184
15185 2007-06-05 Razya Ladelsky <razya@il.ibm.com>
15186
15187 * matrix-reorg.c (transform_access_sites): Fix computation.
15188 (transform_allocation_sites): Same.
15189
15190 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
15191
15192 * config/i386/i386.c (override_options): Use
15193 TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
15194
15195 2007-06-05 Uros Bizjak <ubizjak@gmail.com>
15196
15197 * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
15198 (nonimm_not_xmm0_operand): Ditto.
15199 * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
15200 as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand"
15201 as operand[2] predicate. Require "z" class XMM register for
15202 operand[3]. Adjust asm template.
15203 ("sse4_1_blendvpd"): Ditto.
15204 ("sse4_1_pblendvb"): Ditto.
15205 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
15206 force op2 into xmm0 register for variable blend instructions.
15207
15208 2007-06-04 Tom Tromey <tromey@redhat.com>
15209
15210 * c-tree.h (start_enum): Update.
15211 (build_enumerator): Likewise.
15212 * c-decl.c (enum_next_value): Removed.
15213 (enum_overflow): Likewise.
15214 (start_enum): Add c_enum_contents argument. Don't use globals.
15215 (build_enumerator): Likewise.
15216 * c-tree.h (struct c_enum_contents): New struct.
15217
15218 2007-06-04 Tom Tromey <tromey@redhat.com>
15219
15220 * c-common.c (c_common_get_alias_set): Fix indentation.
15221
15222 2007-06-04 Ian Lance Taylor <iant@google.com>
15223
15224 * tree-vrp.c (adjust_range_with_scev): When loop is not expected
15225 to overflow, reduce overflow infinity to regular infinity.
15226 (vrp_var_may_overflow): New static function.
15227 (vrp_visit_phi_node): Check vrp_var_may_overflow.
15228
15229 2007-06-04 Kazu Hirata <kazu@codesourcery.com>
15230
15231 * stor-layout.c (layout_type): Remove duplicate code.
15232
15233 2007-06-04 Uros Bizjak <ubizjak@gmail.com>
15234
15235 PR c/32191
15236 * c-common.c (c_define_builtins): Call targetm.init_builtins ()
15237 before build_common_builtin_nodes ().
15238
15239 2007-06-04 Steve Ellcey <sje@cup.hp.com>
15240
15241 PR target/31733
15242 * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
15243
15244 2007-06-04 Jan Hubicka <jh@suse.cz>
15245
15246 * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
15247 reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
15248 instead of _stat version.
15249
15250 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
15251
15252 PR tree-optimization/32194
15253 * tree-predcom.c (determine_offset): Check that both references have
15254 the same type.
15255
15256 2007-06-03 Zdenek Dvorak <dvorakz@suse.cz>
15257
15258 * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
15259 Change dom_bbs to vector. Add argument to iterate_fix_dominators call.
15260 * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
15261 * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
15262 Add argument to iterate_fix_dominators call.
15263 (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
15264 * gcse.c (hoist_code): Change domby to vector.
15265 * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
15266 Add argument to iterate_fix_dominators call.
15267 * loop-doloop.c (doloop_modify): Changed recount_dominator to
15268 recompute_dominator.
15269 * lambda-code.c (perfect_nestify): Ditto.
15270 * cfgloopanal.c: Include graphds.h.
15271 (struct edge, struct vertex, struct graph, dump_graph, new_graph,
15272 add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
15273 (mark_irreducible_loops): Use graphds_scc. Remove argument from
15274 add_edge call.
15275 * graphds.c: New file.
15276 * graphds.h: New file.
15277 * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
15278 (get_dominated_by, get_dominated_by_region): Change return type to
15279 vector.
15280 (verify_dominators): Recompute all dominators and compare the results.
15281 (recount_dominator): Renamed to ...
15282 (recompute_dominator): ... this. Do not check that the block is
15283 dominated by entry.
15284 (iterate_fix_dominators): Reimplemented.
15285 (prune_bbs_to_update_dominators, root_of_dom_tree,
15286 determine_dominators_for_sons): New functions.
15287 * et-forest.c (et_root): New function.
15288 * et-forest.h (et_root): Declare.
15289 * Makefile.in (graphds.o): Add.
15290 (cfgloopanal.o): Add graphds.h dependency.
15291 (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
15292 * basic-block.h (get_dominated_by, get_dominated_by_region,
15293 iterate_fix_dominators): Declaration changed.
15294 (recount_dominator): Renamed to ...
15295 (recompute_dominator): ... this.
15296 * tree-ssa-threadupdate.c (thread_block): Free dominance info.
15297 (thread_through_all_blocks): Do not free dominance info.
15298
15299 2007-06-03 Andreas Schwab <schwab@suse.de>
15300
15301 * config/m68k/m68k.c (override_options): Don't override
15302 REAL_MODE_FORMAT.
15303 * config/m68k/m68k-modes.def (SF, DF): Define to use
15304 motorola_single_format and motorola_double_format, resp.
15305 * real.c (motorola_single_format): Renamed from
15306 coldfire_single_format.
15307 (motorola_double_format): Renamed from coldfire_double_format.
15308 (encode_ieee_extended): Generate a proper canonical NaN image
15309 respecting canonical_nan_lsbs_set.
15310 (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
15311 true.
15312 * real.h: Adjust declarations.
15313
15314 2007-06-03 Kaz Kojima <kkojima@gcc.gnu.org>
15315
15316 PR target/32163
15317 * config/sh/sh.md (symGOT_load): Don't schedule insns when
15318 the symbol is generated with the stack protector.
15319
15320 2007-06-03 Kazu Hirata <kazu@codesourcery.com>
15321
15322 * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
15323 (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
15324 "interrupt".
15325 * doc/extend.texi (interrupt): Mention m68k.
15326
15327 2007-06-02 Uros Bizjak <ubizjak@gmail.com>
15328
15329 * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
15330 safe_vector_operand() if input operand is VECTOR_MODE_P operand.
15331 (ix86_expand_sse_pcmpestr): Do not check operands for
15332 "register_operand", when insn operand predicate is "register_operand".
15333 (ix86_expand_sse_pcmpistr): Ditto.
15334
15335 2007-06-02 H.J. Lu <hongjiu.lu@intel.com>
15336 Uros Bizjak <ubizjak@gmail.com>
15337
15338 * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
15339 (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
15340 (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
15341 (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
15342 * config/i386/constraints.md ("z"): New register constraint
15343 for members of SSE_FIRST_REG class.
15344 * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
15345 * config/i386/i386.c (regclass_map): Change class of %xmm0 to
15346 SSE_FIRST_REG class.
15347 (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
15348 (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
15349 (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
15350 (IX86_BUILTIN_PCMPESTRM128): Likewise.
15351 (IX86_BUILTIN_PCMPESTRA128): Likewise.
15352 (IX86_BUILTIN_PCMPESTRC128): Likewise.
15353 (IX86_BUILTIN_PCMPESTRO128): Likewise.
15354 (IX86_BUILTIN_PCMPESTRS128): Likewise.
15355 (IX86_BUILTIN_PCMPESTRZ128): Likewise.
15356 (IX86_BUILTIN_PCMPISTRI128): Likewise.
15357 (IX86_BUILTIN_PCMPISTRM128): Likewise.
15358 (IX86_BUILTIN_PCMPISTRA128): Likewise.
15359 (IX86_BUILTIN_PCMPISTRC128): Likewise.
15360 (IX86_BUILTIN_PCMPISTRO128): Likewise.
15361 (IX86_BUILTIN_PCMPISTRS128): Likewise.
15362 (IX86_BUILTIN_PCMPISTRZ128): Likewise.
15363 (struct builtin_description): Change "flag" field to unsigned.
15364 (bdesc_pcmpestr): New builtin description table.
15365 (bdesc_pcmpistr): Likewise.
15366 (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
15367 v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
15368 Initialize pcmp[ei]str[im] insns for SSE4.2.
15369 (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
15370 (ix86_expand_sse_pcmpistr): Likewise.
15371 (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
15372 * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
15373 (UNSPEC_PCMPISTR): Likewise.
15374 * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
15375 (sse4_2_pcmpestri):New isns pattern.
15376 (sse4_2_pcmpestrm): Likewise.
15377 (sse4_2_pcmpestr_cconly): Likewise.
15378 (sse4_2_pcmpistr): New insn patern and splitter.
15379 (sse4_2_pcmpistri):New isns pattern.
15380 (sse4_2_pcmpistrm): Likewise.
15381 (sse4_2_pcmpistr_cconly): Likewise.
15382 * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
15383 in SSE4.2.
15384
15385 2007-06-01 David Daney <ddaney@avtrex.com>
15386
15387 * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
15388 LOADGP_ABSOLUTE and not binds_local_p.
15389
15390 2007-06-01 Geoffrey Keating <geoffk@apple.com>
15391
15392 * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
15393
15394 2007-06-01 Ian Lance Taylor <iant@google.com>
15395
15396 * tree-vrp.c (compare_name_with_value): Always set
15397 used_strict_overflow if we get a result from the variable itself.
15398
15399 2007-06-01 Ian Lance Taylor <iant@google.com>
15400
15401 PR rtl-optimization/31455
15402 * lower-subreg.c (find_decomposable_subregs): Don't decompose
15403 subregs which have a cast between modes which are not tieable.
15404
15405 2007-06-01 Uros Bizjak <ubizjak@gmail.com>
15406
15407 * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
15408 breaks after return statements.
15409
15410 2007-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
15411
15412 * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
15413 only after no_new_pseudos.
15414
15415 2007-05-31 Eric Christopher <echristo@apple.com>
15416
15417 * expr.c (convert_move): Assert that we don't have a BLKmode
15418 operand.
15419 (store_expr): Handle BLKmode moves by calling emit_block_move.
15420
15421 2007-05-31 Daniel Berlin <dberlin@dberlin.org>
15422
15423 * c-typeck.c (build_indirect_ref): Include type in error message.
15424 (build_binary_op): Pass types to binary_op_error.
15425 * c-common.c (binary_op_error): Take two type arguments, print out
15426 types with error.
15427 * c-common.h (binary_op_error): Update prototype.
15428
15429 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
15430
15431 * config/i386/i386.c: Correct coments on -mno-sse4.
15432
15433 2007-05-31 H.J. Lu <hongjiu.lu@intel.com>
15434
15435 * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
15436 (x86_64-*-*): Likewise.
15437 * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
15438 (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
15439 (OPTION_MASK_ISA_SSE_UNSET): Likewise.
15440 (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
15441 (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
15442 (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
15443 (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
15444 (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
15445 (OPTION_MASK_ISA_SSE4): Likewise.
15446 (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
15447 (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
15448 (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2.
15449 (override_options): Support SSE4.2.
15450 (ix86_build_const_vector): Support SImode and DImode.
15451 (ix86_build_signbit_mask): Likewise.
15452 (ix86_expand_int_vcond): Support V2DImode.
15453 (IX86_BUILTIN_CRC32QI): New for SSE4.2.
15454 (IX86_BUILTIN_CRC32HI): Likewise.
15455 (IX86_BUILTIN_CRC32SI): Likewise.
15456 (IX86_BUILTIN_CRC32DI): Likewise.
15457 (IX86_BUILTIN_PCMPGTQ): Likewise.
15458 (bdesc_crc32): Likewise.
15459 (bdesc_sse_3arg): Likewise.
15460 (ix86_expand_crc32): Likewise.
15461 (ix86_init_mmx_sse_builtins): Support SSE4.2.
15462 (ix86_expand_builtin): Likewise.
15463 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
15464 __SSE4_2__ for -msse4.2.
15465 * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
15466 (CRC32MODE): Likewise.
15467 (crc32modesuffix): Likewise.
15468 (crc32modeconstraint): Likewise.
15469 (sse4_2_crc32<mode>): Likewise.
15470 (sse4_2_crc32di): Likewise.
15471 * config/i386/i386.opt (msse4.2): New for SSE4.2.
15472 (msse4): Likewise.
15473 * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
15474 * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
15475 * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
15476 (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
15477 (vcondu<mode>): Likewise.
15478 * doc/extend.texi: Document SSE4.2 built-in functions.
15479 * doc/invoke.texi: Document -msse4.2/-msse4.
15480
15481 2007-05-31 Zdenek Dvorak <dvorakz@suse.cz>
15482
15483 PR tree-optimization/32160
15484 * tree-predcom.c (predcom_tmp_var): New function. Mark created
15485 variable as gimple reg.
15486 (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
15487
15488 2007-05-31 Kazu Hirata <kazu@codesourcery.com>
15489
15490 * gcc.c (main): Don't consider linker options when issuing the
15491 warning about a linker input file not being used.
15492
15493 2007-05-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15494
15495 * tree-vrp.c (compare_names): Initialize sop.
15496
15497 2007-05-30 Dirk Mueller <dmueller@suse.de>
15498
15499 * cgraphunit.c (cgraph_analyze_function): Remove
15500 computation of inline parameters.
15501
15502 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
15503
15504 * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
15505
15506 2007-05-30 Richard Sandiford <richard@codesourcery.com>
15507
15508 * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
15509 Add vx-common.h. Include vxworks.h between vx-common.h and
15510 arm/vxworks.h.
15511 * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
15512 redefining.
15513 * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
15514 (TARGET_ASM_DESTRUCTOR): Likewise.
15515 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
15516 instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS.
15517 (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
15518 (CC1_SPEC): Add -tstrongarm. Line up backslashes.
15519 (VXWORKS_ENDIAN_SPEC): Define.
15520 (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
15521 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
15522 VXWORKS_* equivalents.
15523 (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
15524 (ASM_FILE_START): Delete.
15525 (TARGET_VERSION): Reformat.
15526 (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
15527 (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
15528 * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
15529 (FPBIT, DPBIT): Define.
15530 (fp-bit.c, dp-bit.c): New rules.
15531 (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
15532 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
15533 * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
15534 * config/arm/arm.h: Include vxworks-dummy.h.
15535 * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
15536 Mark with ATTRIBUTE_UNUSED.
15537 (arm_override_options): Do not allow VxWorks RTP PIC to be used
15538 for Thumb. Force r9 to be the PIC register for VxWorks RTPs and
15539 make it incompatible with -msingle-pic-base.
15540 (arm_function_ok_for_sibcall): Return false for calls that might
15541 go through a VxWorks PIC PLT entry.
15542 (require_pic_register): New function, split out from...
15543 (legitimize_pic_address): ...here. Do not use GOTOFF accesses
15544 for VxWorks RTPs.
15545 (arm_load_pic_register): Handle the VxWorks RTP initialization
15546 sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg.
15547 (arm_emit_call_insn): New function.
15548 (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
15549 * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
15550 (pic_offset_arm): New pattern.
15551 (call, call_value): Use arm_emit_call_insn.
15552 (call_internal, call_value_internal): New expanders.
15553 * config/arm/lib1funcs.asm (__PLT__): Define to empty for
15554 VxWorks unless __PIC__.
15555
15556 2007-05-30 Eric Christopher <echristo@gmail.com>
15557
15558 * genrecog.c: Include regs.h in generated file.
15559 * genemit.c: Ditto. Fix up formatting.
15560 * config/mn10300/constraints.md: New.
15561 * config/mn10300/mn10300.md: Include.
15562 * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
15563 Fix up for removed macro.
15564 * config/mn10300/predicates.md (call_address_operand): Ditto.
15565 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
15566 (CONST_OK_FOR_I): Ditto.
15567 (CONST_OK_FOR_J): Ditto.
15568 (CONST_OK_FOR_K): Ditto.
15569 (CONST_OK_FOR_L): Ditto.
15570 (CONST_OK_FOR_M): Ditto.
15571 (CONST_OK_FOR_N): Ditto.
15572 (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
15573 (OK_FOR_Q): Ditto.
15574 (OK_FOR_R): Ditto.
15575 (OK_FOR_T): Ditto.
15576 (EXTRA_CONSTRAINT): Ditto.
15577
15578 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
15579
15580 * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
15581 Remove defines.
15582 * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
15583 OPTION_MASK_ISA_64BIT.
15584 * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
15585
15586 2007-05-30 Richard Guenther <rguenther@suse.de>
15587
15588 PR middle-end/32152
15589 * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
15590 types for comparison.
15591 * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
15592 with original typed arguments.
15593 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
15594
15595 2007-05-30 Jakub Jelinek <jakub@redhat.com>
15596
15597 PR tree-optimization/31769
15598 * except.c (duplicate_eh_regions): Clear prev_try if
15599 ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
15600
15601 2007-05-30 Zdenek Dvorak <dvorakz@suse.cz>
15602
15603 * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
15604 * tree-ssa-sink.c (statement_sink_location): Return basic block and
15605 bsi of the location where statements should be inserted.
15606 (sink_code_in_bb): Take bsi from statement_sink_location.
15607 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
15608 instead of bsi_start.
15609 * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
15610 bsi_insert_after.
15611 * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
15612 (bsi_move_before): Document inconsistency with bsi_move_after.
15613 (tree_redirect_edge_and_branch): Do not create labels if not necessary.
15614
15615 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
15616
15617 * config/i386/i386.h (TARGET_ABM): New define.
15618 (TARGET_POPCNT): Ditto.
15619 (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
15620 New temporary defines to redefine from OPTION_ISA_* defines.
15621 (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
15622 New temporary defines to redefine from OPTION_MASK_ISA_* defines.
15623 (ix86_isa_flags): New extern int declaration.
15624 (TARGET_SUBTARGET_DEFAULT): New define.
15625 (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
15626 (TARGET_SUBTARGET32_DEFAULT): Ditto.
15627 (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
15628 (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
15629 * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
15630 * config/i386/darwin.h: Change TARGET_64BIT define to
15631 OPTION_ISA_64BIT.
15632
15633 * config/i386/i386.opt (m3dnowa): Define as undocumented option
15634 using existing "ix86_isa_flags" varible.
15635 (m32, m64): Use existing "ix86_isa_flags" variable.
15636 (mmmx, m3dnow): Ditto.
15637 (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
15638 (mabm): Define as non-negative option using "x86_abm" variable.
15639 (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
15640
15641 * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
15642 Rewrite feature test bitmap.
15643 (ix86_isa_flags): New initialized global int varible.
15644 (ix86_isa_flags_explicit): New static int variable.
15645 (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
15646 msse, msse2, msse3, msse4.1 and msse4a option is processed. Change
15647 i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
15648 target_flags_explicit.
15649 (override_options): Remove "target_enable" and "target_disable" fields
15650 from "struct ptt". Update processor_target_table accordingly. Remove
15651 PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
15652 defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of
15653 "target_flags" and "ix86_isa_flags_explicit" instead of
15654 "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
15655 MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when
15656 PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt"
15657 to true when either of PTA_POPCNT or PTA_ABM is set in
15658 processor_alias_table flags entry. Set "x86_prefetch_sse" to true
15659 when either of PTA_PREFETCH_SSE or PTA_SSE is set in
15660 processor_alias_table flags entry. Remove handling of
15661 "target_enable" and "target_disable" fields of processor_target_table.
15662 Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
15663 targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
15664 Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
15665 targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
15666 (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
15667 "target_flags".
15668 (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
15669
15670 2007-05-29 David Daney <ddaney@avtrex.com>
15671
15672 PR gcc/31975
15673 * config/mips/mips.c (mips_output_mi_thunk): Emit
15674 NOTE_INSN_PROLOGUE_END at beginning of the thunk.
15675
15676 2007-05-29 Hui-May Chang <hm.chang@apple.com>
15677 * config/i386/i386.c (ix86_function_regparm): Added checking of
15678 ix86_force_align_arg_pointer to determine the number of
15679 register parameters.
15680
15681 2007-05-29 Zdenek Dvorak <dvorakz@suse.cz>
15682
15683 * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
15684 (SET_DR_MISALIGNMENT): New.
15685 * tree-vect-analyze.c (vect_compute_data_ref_alignment,
15686 vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
15687 Use SET_DR_MISALIGNMENT.
15688 * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
15689 pointer.
15690 * tree-data-ref.c (create_data_ref, compute_all_dependences,
15691 find_loop_nest): Export.
15692 * tree-data-ref.h (struct data_reference): Change aux field to pointer.
15693 (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
15694 * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
15695 (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
15696 New macros.
15697 (struct mem_ref): Add field reuse_distance.
15698 (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
15699 Initialize reuse_distance field.
15700 (issue_prefetch_ref): Select temporality of prefetch according to
15701 reuse_distance.
15702 (volume_of_references, volume_of_dist_vector, add_subscript_strides,
15703 self_reuse_distance, determine_loop_nest_reuse): New functions.
15704 (loop_prefetch_arrays): Call determine_loop_nest_reuse.
15705 (tree_ssa_prefetch_arrays): Dump L2 cache size.
15706 * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
15707 dependency.
15708
15709 2007-05-29 Daniel Berlin <dberlin@dberlin.org>
15710
15711 * tree-ssa-alias.c: Add aliasing overview.
15712
15713 2007-05-29 Zuxy Meng <zuxy.meng@gmail.com>
15714 Danny Smith <dannysmith@users.sourceforge.net>
15715
15716 PR target/29498
15717 * config/i386/t-crtfm: Compile crtfastmath.o with
15718 -minline-all-stringops.
15719 * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
15720 * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
15721
15722 2007-05-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15723
15724 * doc/md.texi: Document constraints on HP PA-RISC.
15725
15726 * pa/constraints.md: New file.
15727 * pa.md: Include constraints.md.
15728 * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
15729 (integer_store_memory_operand, ldil_cint_p): New functions.
15730 * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
15731 * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
15732 IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
15733 * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
15734 * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
15735
15736 2007-05-28 Andrew Pinski <Andrew_pinski@playstation.sony.com>
15737
15738 PR c/31339
15739 * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
15740 case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
15741 case POSTDECREMENT_EXPR>): Return the error_mark_node
15742 if either the real or imaginary parts would an
15743 error_mark_node.
15744
15745 2007-05-28 Daniel Berlin <dberlin@dberlin.org>
15746
15747 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
15748 name when we remove it from a call.
15749
15750 2007-05-28 Kazu Hirata <kazu@codesourcery.com>
15751
15752 * targhooks.c (default_narrow_bitfield): Remove.
15753 * targhooks.h: Remove the prototype for
15754 default_narrow_bitfield.
15755
15756 * langhooks-def.h: Remove the prototype for
15757 hook_get_alias_set_0.
15758 * langhooks.c (hook_get_alias_set_0): Remove.
15759
15760 * global.c (EXECUTE_IF_CONFLICT): Remove.
15761
15762 2007-05-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
15763
15764 PR tree-opt/32100
15765 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
15766 return true when truth_value_p is true and the type
15767 is of signed:1.
15768
15769 2007-05-28 Gerald Pfeifer <gerald@pfeifer.com>
15770
15771 * doc/install.texi (Prerequisites): We no longer require Autoconf
15772 2.13 for the top-level.
15773
15774 2007-05-28 Uros Bizjak <ubizjak@gmail.com>
15775
15776 * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
15777 memory access via x86_expand_vector_move_misalign() only for
15778 TImode values on 32-bit targets.
15779
15780 2007-05-28 Razya Ladelsky <razya@il.ibm.com>
15781
15782 * matrix-reorg.c: New file. Implement matrix flattening and
15783 transposing optimization.
15784 * tree-pass.h: Add matrix reorg pass.
15785 * common.opt: Add fipa-mreorg flag.
15786 * Makefile.in: Add matrix-reorg.c.
15787 * passes.c: Add matrix reorg pass.
15788 * varpool.c (add_new_static_var): New function.
15789 * cgraph.h (add_new_static_var): Declare.
15790
15791 2007-05-27 Eric Christopher <echristo@apple.com>
15792
15793 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
15794 sp_offset depending on stack size. Save r12 depending
15795 on registers we're saving later.
15796 (rs6000_emit_epilogue): Update sp_offset depending only
15797 on stack size.
15798
15799 2007-05-27 Zdenek Dvorak <dvorakz@suse.cz>
15800
15801 * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
15802 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
15803 * ifcvt.c (if_convert): Ditto.
15804 * tree-ssa-threadupdate.c (thread_block): Ditto.
15805 (thread_through_all_blocks): Ditto. Assert that loops were analysed.
15806 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
15807 verify_loop_closed_ssa): Check number_of_loops instead of
15808 current_loops.
15809 * predict.c (tree_estimate_probability): Ditto.
15810 * tree-if-conv.c (main_tree_if_conversion): Ditto.
15811 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
15812 * modulo-sched.c (sms_schedule): Ditto.
15813 * tree-scalar-evolution.c (scev_const_prop): Ditto.
15814 (scev_finalize): Do not do anything if scev analysis was not
15815 initialized.
15816 * cfgloopanal.c (mark_irreducible_loops): Do not check whether
15817 current_loops == NULL.
15818 (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
15819 * loop-init.c (loop_optimizer_init): Do not free current_loops when
15820 there are no loops.
15821 (loop_optimizer_finalize): Assert that loops were analyzed.
15822 (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
15823 rtl_doloop): Check number_of_loops instead of current_loops.
15824 * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
15825 current_loops == NULL.
15826 (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
15827 gate_tree_vectorize tree_linear_transform, check_data_deps,
15828 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
15829 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
15830 Check number_of_loops instead of current_loops.
15831 (tree_ssa_loop_done): Do not check whether current_loops == NULL.
15832 * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always
15833 free loops if available.
15834 (execute_pre): Do not pass do_fre to fini_pre.
15835
15836 2007-05-27 Tobias Burnus <burnus@net-b.de>
15837
15838 PR middle-end/32083
15839 * real.c (mpfr_from_real): Fix sign of -Inf.
15840
15841 2007-05-27 H.J. Lu <hongjiu.lu@intel.com>
15842
15843 * tree-vect-transform.c (vectorizable_conversion): Initialize
15844 tree_code variables to ERROR_MARK.
15845 (vectorizable_type_demotion): Likewise.
15846 (vectorizable_type_promotion): Likewise.
15847
15848 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
15849
15850 PR target/32065
15851 * config/i386/i386.md (movti): Handle push operands via
15852 ix86_expand_push().
15853
15854 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
15855
15856 * basic-block.h: Remove the prototype for merge_seq_blocks.
15857 * cfgcleanup.c (merge_seq_blocks): Remove.
15858
15859 * tree-flow.h: Remove the prototype for is_aliased_with.
15860 * tree-ssa-alias.c (is_aliased_with): Remove.
15861
15862 2007-05-26 H.J. Lu <hongjiu.lu@intel.com>
15863
15864 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
15865
15866 * config/i386/i386.c (ix86_expand_sse4_unpack): New.
15867
15868 * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
15869 ix86_expand_sse4_unpack if SSE4.1 is enabled.
15870 (vec_unpacks_hi_v16qi): Likewise.
15871 (vec_unpacku_lo_v16qi): Likewise.
15872 (vec_unpacks_lo_v16qi): Likewise.
15873 (vec_unpacku_hi_v8hi): Likewise.
15874 (vec_unpacks_hi_v8hi): Likewise.
15875 (vec_unpacku_lo_v8hi): Likewise.
15876 (vec_unpacks_lo_v8hi): Likewise.
15877 (vec_unpacku_hi_v4si): Likewise.
15878 (vec_unpacks_hi_v4si): Likewise.
15879 (vec_unpacku_lo_v4si): Likewise.
15880 (vec_unpacks_lo_v4si): Likewise.
15881
15882 2007-05-26 Kazu Hirata <kazu@codesourcery.com>
15883
15884 * c-typeck.c, config/arm/arm.c, config/darwin.c,
15885 config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
15886 omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
15887 follow spelling conventions in various
15888 warning/error/diagnostic messages.
15889
15890 * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
15891 df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
15892 fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
15893 tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
15894 tree-vrp.c: Fix comment typos. Follow spelling conventions.
15895 * doc/tm.texi: Follow spelling conventions.
15896
15897 2007-05-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
15898
15899 PR tree-opt/32090
15900 * tree-ssa-forwprop.c
15901 (forward_propagate_addr_into_variable_array_index): Remove
15902 the lhs argument. Use the type of def_rhs instead of lhs.
15903 (forward_propagate_addr_expr_1): Update use of
15904 forward_propagate_addr_into_variable_array_index.
15905
15906 2007-05-25 Sandra Loosemore <sandra@codesourcery.com>
15907 Nigel Stephens <nigel@mips.com>
15908
15909 * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
15910 function attributes, "far" being an alias for "long_call".
15911 (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
15912 (mips_near_type_p, mips_far_type_p): New.
15913 (mips_comp_type_attributes): New function to check that attributes
15914 attached to a function type are compatible.
15915 (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
15916 TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
15917 to the target function of the thunk.
15918 (mips_encode_section_info): Check for "near" and "far" function
15919 attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
15920
15921 * config/mips/predicates.md (const_call_insn_operand): Test only
15922 SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
15923
15924 * doc/extend.texi (Function Attributes): Document MIPS "near" and
15925 "far" attributes.
15926
15927 * testsuite/gcc.target/mips/near-far-1.c: New test case.
15928 * testsuite/gcc.target/mips/near-far-2.c: New test case.
15929 * testsuite/gcc.target/mips/near-far-3.c: New test case.
15930 * testsuite/gcc.target/mips/near-far-4.c: New test case.
15931
15932 2007-05-25 Eric Christopher <echristo@apple.com>
15933
15934 * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
15935 to x86-darwin configurations.
15936 * config/i386/t-darwin: Add softfp support.
15937 * config/i386/t-darwin64: Ditto.
15938 * config/i386/sfp-machine.h: If mach then don't use
15939 aliasing, emit a stub to call.
15940
15941 2007-05-25 Kazu Hirata <kazu@codesourcery.com>
15942
15943 * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
15944 haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
15945 tree-predcom.c, tree-ssa-alias-warnings.c,
15946 tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
15947 comment typos. Follow spelling conventions.
15948 * doc/cpp.texi, doc/invoke.texi: Fix typos.
15949
15950 2007-05-26 Uros Bizjak <ubizjak@gmail.com>
15951
15952 PR target/32065
15953 * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
15954 constants into memory. Expand unaligned memory references for
15955 SSE modes via x86_expand_vector_move_misalign() function.
15956
15957 2007-05-25 Uros Bizjak <ubizjak@gmail.com>
15958
15959 * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
15960 "memory" attribute for "sseishft" type insn without operands[2].
15961
15962 2007-05-25 Dirk Mueller <dmueller@suse.de>
15963 Marcus Meissner <meissner@suse.de>
15964
15965 * doc/extend.texi (alloc_size): New attribute.
15966 * c-common.c (handle_alloc_size_attribute): New.
15967 * tree-object-size.c (alloc_object_size): Use alloc_size
15968 attribute, if available.
15969
15970 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
15971
15972 * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
15973 with MASK_SSE2.
15974 (__builtin_ia32_vec_ext_v2di): Likewise.
15975 (__builtin_ia32_vec_ext_v4si): Likewise.
15976 (__builtin_ia32_vec_ext_v8hi): Likewise.
15977 (__builtin_ia32_vec_ext_v16qi): Likewise.
15978 (__builtin_ia32_vec_set_v8hi): Likewise.
15979
15980 2007-05-25 H.J. Lu <hongjiu.lu@intel.com>
15981
15982 * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
15983
15984 2007-05-25 Richard Sandiford <richard@codesourcery.com>
15985
15986 * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
15987 (arm_is_longcall_p): Rename to...
15988 (arm_is_long_call_p): ...this. Take a single tree argument and
15989 return a bool.
15990 * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
15991 (CUMULATIVE_ARGS): Remove call_cookie.
15992 (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
15993 (ENCODED_LONG_CALL_ATTR_P): Delete.
15994 (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
15995 LONG_CALL_FLAG_CHAR cases.
15996 (ARM_DECLARE_FUNCTION_SIZE): Delete.
15997 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
15998 ARM_DECLARE_FUNCTION_SIZE.
15999 * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
16000 (arm_function_arg): Return const0_rtx for VOIDmode arguments.
16001 (arm_encode_call_attribute, current_file_function_operand): Delete.
16002 (arm_function_in_section_p): New function.
16003 (arm_is_longcall_p): Rename to...
16004 (arm_is_long_call_p): ...this. Take the target function as a single
16005 argument and return a bool. Do not rely on call cookies. Check
16006 whether the target symbol is in the same section as the current
16007 function, not just the same compilation unit.
16008 (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
16009 (arm_encode_section_info): Don't encode a call type.
16010 * config/arm/arm.md (call, call_value): Update calls to
16011 arm_is_long(_)call_p. Simplify logic.
16012 (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
16013 Update calls to arm_is_long(_)call_p.
16014
16015 2007-05-25 Richard Guenther <rguenther@suse.de>
16016
16017 PR tree-optimization/31982
16018 * tree-ssa-forwprop.c
16019 (forward_propagate_addr_into_variable_array_index): Handle arrays
16020 with element size one.
16021
16022 2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
16023
16024 * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
16025 (umulsi3_highpart): Likewise.
16026
16027 2007-05-24 Ian Lance Taylor <iant@google.com>
16028
16029 PR rtl-optimization/32069
16030 * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
16031 is NULL.
16032
16033 2007-05-24 Ollie Wild <aaw@google.com>
16034
16035 * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
16036 description.
16037
16038 2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk>
16039
16040 * postreload-gcse.c (reg_changed_after_insn_p): New function.
16041 (oprs_unchanged_p): Use it to check all registers in a REG.
16042 (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
16043 (reg_set_between_after_reload_p): Delete.
16044 (reg_used_between_after_reload_p): Likewise.
16045 (reg_set_or_used_since_bb_start): Likewise.
16046 (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
16047 and reg_used_between_p instead of reg_set_or_used_since_bb_start.
16048 Use reg_set_between_p instead of reg_set_between_after_reload_p.
16049 * rtlanal.c (reg_set_p): Check whether REG overlaps
16050 regs_invalidated_by_call, rather than just checking the
16051 membership of REGNO (REG).
16052
16053 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
16054
16055 * doc/passes.texi: Document predictive commoning.
16056 * doc/invoke.texi (-fpredictive-commoning): Document.
16057 * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
16058 * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
16059 adding indices to the generated name.
16060 (schedule_sm): Pass 0 to get_lsm_tmp_name.
16061 * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
16062 * tree-pretty-print.c (op_symbol_1): Renamed to ...
16063 (op_symbol_code): ... and exported.
16064 (dump_omp_clause, op_symbol): Use op_symbol_code
16065 instead of op_symbol_1.
16066 * tree-pass.h (pass_predcom): Declare.
16067 * timevar.def (TV_PREDCOM): New timevar.
16068 * tree-ssa-loop.c (run_tree_predictive_commoning,
16069 gate_tree_predictive_commoning, pass_predcom): New.
16070 * tree-data-ref.c (find_data_references_in_loop): Find the
16071 references in dominance order.
16072 (canonicalize_base_object_address): Ensure that the result has
16073 pointer type.
16074 (dr_analyze_innermost): Export.
16075 (create_data_ref): Code to fail for references with invariant
16076 address moved ...
16077 (find_data_references_in_stmt): ... here.
16078 * tree-data-ref.h (dr_analyze_innermost): Declare.
16079 * tree-affine.c: Include tree-gimple.h and hashtab.h.
16080 (aff_combination_find_elt, name_expansion_hash,
16081 name_expansion_eq, tree_to_aff_combination_expand,
16082 double_int_constant_multiple_p, aff_combination_constant_multiple_p):
16083 New functions.
16084 * tree-affine.h (aff_combination_constant_multiple_p,
16085 tree_to_aff_combination_expand): Declare.
16086 * tree-predcom.c: New file.
16087 * common.opt (fpredictive-commoning): New option.
16088 * tree-flow.h (op_symbol_code, tree_predictive_commoning,
16089 stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
16090 * Makefile.in (tree-predcom.o): Add.
16091 (tree-affine.o): Add TREE_GIMPLE_H dependency.
16092 * passes.c (init_optimization_passes): Add dceloop after
16093 copy propagation in loop optimizer. Add predictive commoning
16094 to loop optimizer passes.
16095
16096 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
16097
16098 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
16099 default hook.
16100
16101 2007-05-24 Jan Hubicka <jh@suse.cz>
16102
16103 * gengenrtl.c (gendecl, gendef): Output the gens annotated for
16104 statistics.
16105 (genheader): Include statistics.h.
16106
16107 * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
16108 notes are gone.
16109 * print-rtl.c (flag_dump_unnumbered): Update comments.
16110 (print_rtl): Fix my previous change.
16111 * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
16112 specific data.
16113
16114 2007-05-24 Zdenek Dvorak <dvorakz@suse.cz>
16115
16116 PR middle-end/32018
16117 * tree-ssa-threadupdate.c (thread_through_loop_header): Use
16118 set_loop_copy.
16119 (thread_through_all_blocks): Call initialize_original_copy_tables
16120 and free_original_copy_tables.
16121 * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
16122 Use set_loop_copy.
16123 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
16124 * cfghooks.c (duplicate_block): Use get_loop_copy.
16125 * cfg.c: Include cfgloop.h.
16126 (loop_copy): New hash table.
16127 (initialize_original_copy_tables): Initialize loop_copy table.
16128 (free_original_copy_tables): Free loop_copy table.
16129 (copy_original_table_clear, copy_original_table_set,
16130 set_loop_copy, get_loop_copy): New functions.
16131 (set_bb_original, set_bb_copy): Use copy_original_table_set.
16132 * cfgloop.h (struct loop): Remove copy field.
16133 * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
16134 * basic-block.h (set_loop_copy, get_loop_copy): Declare.
16135
16136 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
16137
16138 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
16139 -msse/-msse2/-msse3.
16140
16141 2007-05-24 H.J. Lu <hongjiu.lu@intel.com>
16142
16143 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
16144 __builtin_ia32_vec_set_v2di with MASK_64BIT.
16145
16146 2007-05-24 Danny Smith <dannysmith@users.sourceforge.net>
16147
16148 PR target/27067
16149 * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
16150 * targhooks.h (default_mangle_decl_assembler_name): Declare
16151 default hook.
16152 * targhooks.c (default_mangle_decl_assembler_name): Define
16153 default hook.
16154 * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
16155 default hook.
16156 * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
16157 * langhooks.c (lhd_set_decl_assembler_name): Call
16158 targetm.mangle_decl_assembler_name for names with global scope.
16159
16160 * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
16161 default.
16162 (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
16163 * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
16164 Declare.
16165 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
16166 New. Factored out of i386_pe_encode_section_info.
16167 (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
16168 Move check for prior decoration of stdcall
16169 symbols to i386_pe_encode_section_info.
16170 (i386_pe_encode_section_info): Adjust call to
16171 gen_stdcall_or_fastcall_suffix. Use
16172 i386_pe_maybe_mangle_decl_assembler_name, if needed.
16173 (i386_pe_mangle_decl_assembler_name): New. Wrap
16174 i386_pe_maybe_mangle_decl_assembler_name.
16175
16176 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
16177
16178 * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
16179 INTEGRAL_TYPE_P and TYPE_UNSIGNED.
16180 * langhooks.c (get_signed_or_unsigned_type): Don't check for
16181 INTEGRAL_TYPE_P or TYPE_UNSIGNED.
16182 (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
16183 TYPE_UNSIGNED.
16184
16185 2007-05-23 Sandra Loosemore <sandra@codesourcery.com>
16186 Nigel Stephens <nigel@mips.com>
16187 Richard Sandiford <richard@codesourcery.com>
16188
16189 Fix up MIPS16 hard float and add support for complex.
16190
16191 * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
16192 (TARGET_SOFT_FLOAT_ABI): New.
16193 (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
16194 __mips_soft_float to reflect the ABI in use, not whether the
16195 FPU is directly accessible (e.g., in MIPS16 mode).
16196 (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
16197 (UNITS_PER_FPVALUE): Likewise.
16198
16199 * config/mips/mips.c (mips_expand_call): Remove redundant
16200 TARGET_MIPS16 check.
16201 (mips_arg_regno): New.
16202 (function_arg_advance): When setting bits in cum->fp_code for
16203 MIPS16, don't subtract 1 from cum->arg_number, since it is now
16204 zero-based.
16205 (function_arg): Use mips_arg_regno.
16206 (mips_return_mode_in_fpr_p): New.
16207 (mips16_call_stub_mode_suffix): New.
16208 (mips16_cfun_returns_in_fpr_p): New.
16209 (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
16210 (mips_output_function_prologue): Test mips16_hard_float, not
16211 !TARGET_SOFT_FLOAT, to decide when a function stub is required.
16212 (mips_expand_epilogue): Call MIPS16 helper routines to copy
16213 return value into a floating-point register.
16214 (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
16215 (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
16216 (mips16_fp_args): Handle MIPS32r2 ISA which supports
16217 TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
16218 word of double arguments from or to the high bits of 64-bit
16219 floating point registers.
16220 (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
16221 (mips16_fpret_double): New helper function.
16222 (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add
16223 support for complex modes. Fill in DECL_RESULT for stubdecl.
16224 (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
16225
16226 * config/mips/mips16.S
16227 (RET, ARG1, ARG2): New.
16228 (MERGE_GPRf, MERGE_GPRt): New.
16229 (DELAYt, DELAYf): New.
16230 (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
16231 (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
16232 (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
16233 (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
16234 (SFOP): Renamed to...
16235 (OPSF3): This, and macro-ified. Updated all uses.
16236 (SFOP2): Renamed to...
16237 (OPSF2): This, and macro-ified. Updated all uses.
16238 (SFCMP): Renamed to...
16239 (CMPSF): This, and macro-ified. Updated all uses.
16240 (SFREVCMP): Renamed to...
16241 (REVCMPSF): This, and macro-ified. Updated all uses.
16242 (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
16243 (LDDBL1, LDDBL2, RETDBL): Deleted.
16244 (DFOP): Renamed to...
16245 (OPDF3): This, and macro-ified. Updated all uses.
16246 (DFOP2): Renamed to...
16247 (OPDF2): This, and macro-ified. Updated all uses.
16248 (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
16249 (DFCMP): Renamed to...
16250 (CMPDF): This, and macro-ified. Updated all uses.
16251 (DFREVCMP): Renamed to...
16252 (REVCMPDF): This, and macro-ified. Updated all uses.
16253 (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
16254 (RET_FUNCTION): New.
16255 (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
16256 (__mips16_ret_sc, __mips16_ret_dc): New.
16257 (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
16258 STUB_ARGS_6, STUB_ARGS_10): New.
16259 (CALL_STUB_NO_RET): New.
16260 (__mips16_call_stub_1): Macro-ified.
16261 (__mips16_call_stub_5): Macro-ified.
16262 (__mips16_call_stub_2): Macro-ified.
16263 (__mips16_call_stub_6): Macro-ified.
16264 (__mips16_call_stub_9): Macro-ified.
16265 (__mips16_call_stub_10): Macro-ified.
16266 (CALL_STUB_RET): New.
16267 (__mips16_call_stub_sf_0): Macro-ified.
16268 (__mips16_call_stub_sf_1): Macro-ified.
16269 (__mips16_call_stub_sf_5): Macro-ified.
16270 (__mips16_call_stub_sf_2): Macro-ified.
16271 (__mips16_call_stub_sf_6): Macro-ified.
16272 (__mips16_call_stub_sf_9): Macro-ified.
16273 (__mips16_call_stub_sf_10): Macro-ified.
16274 (__mips16_call_stub_df_0): Macro-ified.
16275 (__mips16_call_stub_df_1): Macro-ified.
16276 (__mips16_call_stub_df_5): Macro-ified.
16277 (__mips16_call_stub_df_2): Macro-ified.
16278 (__mips16_call_stub_df_6): Macro-ified.
16279 (__mips16_call_stub_df_9): Macro-ified.
16280 (__mips16_call_stub_df_10): Macro-ified.
16281 (__mips16_call_stub_sc_0): New.
16282 (__mips16_call_stub_sc_1): New.
16283 (__mips16_call_stub_sc_5): New.
16284 (__mips16_call_stub_sc_2): New.
16285 (__mips16_call_stub_sc_6): New.
16286 (__mips16_call_stub_sc_9): New.
16287 (__mips16_call_stub_sc_10): New.
16288 (__mips16_call_stub_dc_0): New.
16289 (__mips16_call_stub_dc_1): New.
16290 (__mips16_call_stub_dc_5): New.
16291 (__mips16_call_stub_dc_2): New.
16292 (__mips16_call_stub_dc_6): New.
16293 (__mips16_call_stub_dc_9): New.
16294 (__mips16_call_stub_dc_10): New.
16295
16296 * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
16297 * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
16298 * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
16299
16300 2007-05-23 Ian Lance Taylor <iant@google.com>
16301
16302 * doc/invoke.texi (Invoking GCC): Document that the order of the
16303 -l option matters.
16304
16305 2007-05-23 Chen Liqin <liqin@sunnorth.com.cn>
16306
16307 PR target/30987
16308 * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
16309 * config/score/predicate.md (const_pow2, const_npow2): Remove.
16310 * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
16311 undef.
16312
16313 PR target/30474
16314 * config/score/score.c (score_print_operand): Make sure that only
16315 lower bits are used.
16316
16317 2007-05-22 Ian Lance Taylor <iant@google.com>
16318
16319 * tree-vrp.c (avoid_overflow_infinity): New static function,
16320 broken out of set_value_range_to_value.
16321 (set_value_range_to_value): Call avoid_overflow_infinity.
16322 (extract_range_from_assert): Likewise.
16323
16324 2007-05-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
16325
16326 PR middle-end/31095
16327 * builtins.c (expand_builtin_memmove_args): Strip nops that don't
16328 change the type before looking for a COMPOUND_EXPR.
16329
16330 2007-05-22 Ian Lance Taylor <iant@google.com>
16331
16332 * lower-subreg.c (decompose_multiword_subregs): If we change an
16333 insn, call remove_retval_note on it.
16334
16335 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
16336
16337 * regs.h (end_hard_regno): New function.
16338 (END_HARD_REGNO, END_REGNO): New macros.
16339 (add_to_hard_reg_set): New function.
16340 (remove_from_hard_reg_set): Likewise.
16341 (in_hard_reg_set_p): Likewise.
16342 (overlaps_hard_reg_set_p): Likewise.
16343 * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
16344 (note_btr_set): Use END_HARD_REGNO.
16345 * caller-save.c (setup_save_areas): Use end_hard_regno.
16346 (mark_set_regs): Use END_HARD_REGNO.
16347 (add_stored_regs): Use end_hard_regno.
16348 (mark_referenced_regs): Use add_to_hard_reg_set.
16349 * combine.c (update_table_tick): Use END_REGNO.
16350 (record_value_for_reg): Likewise.
16351 (record_dead_and_set_regs): Likewise.
16352 (get_last_value_validate): Likewise.
16353 (use_crosses_set_p): Likewise.
16354 (reg_dead_at_p_1): Likewise.
16355 (reg_dead_at_p): Likewise.
16356 (mark_used_regs_combine): Use add_to_hard_reg_set.
16357 (move_deaths): Use END_HARD_REGNO.
16358 (reg_bitfield_target_p): Use end_hard_regno.
16359 (distribute_notes): Use END_HARD_REGNO.
16360 * cse.c (mention_regs): Use END_REGNO.
16361 (insert): Use add_to_hard_reg_set.
16362 (invalidate): Use END_HARD_REGNO.
16363 (invalidate_for_call): Likewise.
16364 (exp_equiv_p): Use END_REGNO.
16365 (cse_insn): Likewise.
16366 * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
16367 * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
16368 * df-scan.c (df_ref_record): Use END_HARD_REGNO.
16369 * function.c (keep_stack_depressed): Use end_hard_regno.
16370 * global.c (global_alloc): Use end_hard_regno.
16371 (global_conflicts): Use add_to_hard_reg_set instead of
16372 mark_reg_live_nc.
16373 (find_reg): Likewise.
16374 (mark_reg_store): Likewise.
16375 (mark_reg_conflicts): Likewise.
16376 (mark_reg_death): Use remove_from_hard_reg_set.
16377 (mark_reg_live_nc): Delete.
16378 (set_preference): Use end_hard_regno.
16379 * local-alloc.c (mark_life): Use add_to_hard_reg_set and
16380 remove_from_hard_reg_set.
16381 (post_mark_life): Use add_to_hard_reg_set.
16382 * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
16383 (reg_becomes_live): Use add_to_hard_reg_set.
16384 * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
16385 (peep2_find_free_register): Use add_to_hard_reg_set.
16386 * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
16387 * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
16388 * regrename.c (note_sets): Use add_to_hard_reg_set.
16389 (clear_dead_regs): Use remove_from_hard_reg_set.
16390 (regrename_optimize): Use add_to_hard_reg_set.
16391 (find_oldest_value_reg): Use in_hard_reg_set_p.
16392 * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
16393 (hard_reg_set_here_p): Use end_hard_regno.
16394 (decompose): Likewise.
16395 (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
16396 (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
16397 * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
16398 (mark_home_live): Use end_hard_regno.
16399 (spill_hard_reg): Likewise.
16400 (clear_reload_reg_in_use): Likewise.
16401 * reorg.c (delete_prior_computation): Use END_REGNO.
16402 * resource.c (update_live_status): Use END_HARD_REGNO.
16403 (mark_referenced_resources): Use add_to_hard_reg_set.
16404 (mark_set_resources): Likewise.
16405 (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set.
16406 * rtlanal.c (refers_to_regno_p): Use END_REGNO.
16407 (reg_overlap_mentioned_p): Likewise.
16408 (dead_or_set_p): Likewise. Use an exclusive upper loop bound.
16409 (covers_regno_no_parallel_p): Use END_REGNO.
16410 (find_regno_note): Likewise.
16411 (find_reg_fusage): Use END_HARD_REGNO.
16412 * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
16413 * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
16414
16415 2007-05-22 Richard Sandiford <rsandifo@nildram.co.uk>
16416
16417 * mode-switching.c (reg_dies): Change type of second argument to
16418 "HARD_REG_SET *".
16419 (optimize_mode_switching): Update accordingly.
16420
16421 2007-05-22 Richard Sandiford <richard@codesourcery.com>
16422
16423 * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
16424 in favor of...
16425 (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
16426 (hard_reg_set_empty_p): ...these new functions.
16427 * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
16428 GO_IF_HARD_REG_SUBSET.
16429 * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
16430 instead of GO_IF_HARD_REG_EQUAL.
16431 * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
16432 instead of GO_IF_HARD_REG_EQUAL.
16433 * global.c (find_reg): Use hard_reg_set_empty_p instead of
16434 GO_IF_HARD_REG_SUBSET.
16435 (modify_reg_pav): Use hard_reg_set_empty_p instead of
16436 GO_IF_HARD_REG_EQUAL.
16437 * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
16438 of GO_IF_HARD_REG_SUBSET.
16439 * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
16440 instead of GO_IF_HARD_REG_EQUAL.
16441 * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
16442 hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
16443 (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
16444 of GO_IF_HARD_REG_SUBSET,
16445 * reload1.c (finish_spills): Use hard_reg_subset_p instead of
16446 GO_IF_HARD_REG_SUBSET.
16447 * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
16448 instead of GO_IF_HARD_REG_EQUAL.
16449 * config/sh/sh.c (push_regs, calc_live_regs): Use
16450 hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
16451 (hard_regs_intersect_p): Delete.
16452
16453 2007-05-22 Janis Johnson <janis187@us.ibm.com>
16454
16455 * doc/sourcebuild.texi (Test Directives) Add dg-message.
16456
16457 2007-05-22 H.J. Lu <hongjiu.lu@intel.com>
16458 Richard Henderson <rth@redhat.com>
16459
16460 * config.gcc (i[34567]86-*-*): Add smmintrin.h to
16461 extra_headers.
16462 (x86_64-*-*): Likewise.
16463
16464 * i386/i386-modes.def (V2QI): New.
16465
16466 * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
16467 SSE4A.
16468 (override_options): Support SSE4.1.
16469 (IX86_BUILTIN_BLENDPD): New for SSE4.1.
16470 (IX86_BUILTIN_BLENDPS): Likewise.
16471 (IX86_BUILTIN_BLENDVPD): Likewise.
16472 (IX86_BUILTIN_BLENDVPS): Likewise.
16473 (IX86_BUILTIN_PBLENDVB128): Likewise.
16474 (IX86_BUILTIN_PBLENDW128): Likewise.
16475 (IX86_BUILTIN_DPPD): Likewise.
16476 (IX86_BUILTIN_DPPS): Likewise.
16477 (IX86_BUILTIN_INSERTPS128): Likewise.
16478 (IX86_BUILTIN_MOVNTDQA): Likewise.
16479 (IX86_BUILTIN_MPSADBW128): Likewise.
16480 (IX86_BUILTIN_PACKUSDW128): Likewise.
16481 (IX86_BUILTIN_PCMPEQQ): Likewise.
16482 (IX86_BUILTIN_PHMINPOSUW128): Likewise.
16483 (IX86_BUILTIN_PMAXSB128): Likewise.
16484 (IX86_BUILTIN_PMAXSD128): Likewise.
16485 (IX86_BUILTIN_PMAXUD128): Likewise.
16486 (IX86_BUILTIN_PMAXUW128): Likewise.
16487 (IX86_BUILTIN_PMINSB128): Likewise.
16488 (IX86_BUILTIN_PMINSD128): Likewise.
16489 (IX86_BUILTIN_PMINUD128): Likewise.
16490 (IX86_BUILTIN_PMINUW128): Likewise.
16491 (IX86_BUILTIN_PMOVSXBW128): Likewise.
16492 (IX86_BUILTIN_PMOVSXBD128): Likewise.
16493 (IX86_BUILTIN_PMOVSXBQ128): Likewise.
16494 (IX86_BUILTIN_PMOVSXWD128): Likewise.
16495 (IX86_BUILTIN_PMOVSXWQ128): Likewise.
16496 (IX86_BUILTIN_PMOVSXDQ128): Likewise.
16497 (IX86_BUILTIN_PMOVZXBW128): Likewise.
16498 (IX86_BUILTIN_PMOVZXBD128): Likewise.
16499 (IX86_BUILTIN_PMOVZXBQ128): Likewise.
16500 (IX86_BUILTIN_PMOVZXWD128): Likewise.
16501 (IX86_BUILTIN_PMOVZXWQ128): Likewise.
16502 (IX86_BUILTIN_PMOVZXDQ128): Likewise.
16503 (IX86_BUILTIN_PMULDQ128): Likewise.
16504 (IX86_BUILTIN_PMULLD128): Likewise.
16505 (IX86_BUILTIN_ROUNDPD): Likewise.
16506 (IX86_BUILTIN_ROUNDPS): Likewise.
16507 (IX86_BUILTIN_ROUNDSD): Likewise.
16508 (IX86_BUILTIN_ROUNDSS): Likewise.
16509 (IX86_BUILTIN_PTESTZ): Likewise.
16510 (IX86_BUILTIN_PTESTC): Likewise.
16511 (IX86_BUILTIN_PTESTNZC): Likewise.
16512 (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
16513 (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
16514 (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
16515 (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
16516 (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
16517 (bdesc_ptest): New.
16518 (bdesc_sse_3arg): Likewise.
16519 (bdesc_2arg): Likewise.
16520 (bdesc_1arg): Likewise.
16521 (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins
16522 with 3 args.
16523 (ix86_expand_sse_4_operands_builtin): New.
16524 (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
16525 smaller than 8 bits as the 2nd arg.
16526 (ix86_expand_sse_ptest): New.
16527 (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
16528 (ix86_expand_vector_set): Support SSE4.1.
16529 (ix86_expand_vector_extract): Likewise.
16530
16531 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
16532 __SSE4_1__ for -msse4.1.
16533
16534 * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
16535 (UNSPEC_INSERTPS): Likewise.
16536 (UNSPEC_DP): Likewise.
16537 (UNSPEC_MOVNTDQA): Likewise.
16538 (UNSPEC_MPSADBW): Likewise.
16539 (UNSPEC_PHMINPOSUW): Likewise.
16540 (UNSPEC_PTEST): Likewise.
16541 (UNSPEC_ROUNDP): Likewise.
16542 (UNSPEC_ROUNDS): Likewise.
16543
16544 * config/i386/i386.opt (msse4.1): New for SSE4.1.
16545
16546 * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
16547 (const_pow2_1_to_32768_operand): Likewise.
16548
16549 * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
16550 file.
16551
16552 * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
16553 SSE4.1.
16554 (sse4_1_insertps): Likewise.
16555 (*sse4_1_extractps): Likewise.
16556 (sse4_1_ptest): Likewise.
16557 (sse4_1_mulv2siv2di3): Likewise.
16558 (*sse4_1_mulv4si3): Likewise.
16559 (*sse4_1_smax<mode>3): Likewise.
16560 (*sse4_1_umax<mode>3): Likewise.
16561 (*sse4_1_smin<mode>3): Likewise.
16562 (*sse4_1_umin<mode>3): Likewise.
16563 (sse4_1_eqv2di3): Likewise.
16564 (*sse4_1_pinsrb): Likewise.
16565 (*sse4_1_pinsrd): Likewise.
16566 (*sse4_1_pinsrq): Likewise.
16567 (*sse4_1_pextrb): Likewise.
16568 (*sse4_1_pextrb_memory): Likewise.
16569 (*sse4_1_pextrw_memory): Likewise.
16570 (*sse4_1_pextrq): Likewise.
16571 (sse4_1_blendpd): Likewise.
16572 (sse4_1_blendps): Likewise.
16573 (sse4_1_blendvpd): Likewise.
16574 (sse4_1_blendvps): Likewise.
16575 (sse4_1_dppd): Likewise.
16576 (sse4_1_dpps): Likewise.
16577 (sse4_1_movntdqa): Likewise.
16578 (sse4_1_mpsadbw): Likewise.
16579 (sse4_1_packusdw): Likewise.
16580 (sse4_1_pblendvb): Likewise.
16581 (sse4_1_pblendw): Likewise.
16582 (sse4_1_phminposuw): Likewise.
16583 (sse4_1_extendv8qiv8hi2): Likewise.
16584 (*sse4_1_extendv8qiv8hi2): Likewise.
16585 (sse4_1_extendv4qiv4si2): Likewise.
16586 (*sse4_1_extendv4qiv4si2): Likewise.
16587 (sse4_1_extendv2qiv2di2): Likewise.
16588 (*sse4_1_extendv2qiv2di2): Likewise.
16589 (sse4_1_extendv4hiv4si2): Likewise.
16590 (*sse4_1_extendv4hiv4si2): Likewise.
16591 (sse4_1_extendv2hiv2di2): Likewise.
16592 (*sse4_1_extendv2hiv2di2): Likewise.
16593 (sse4_1_extendv2siv2di2): Likewise.
16594 (*sse4_1_extendv2siv2di2): Likewise.
16595 (sse4_1_zero_extendv8qiv8hi2): Likewise.
16596 (*sse4_1_zero_extendv8qiv8hi2): Likewise.
16597 (sse4_1_zero_extendv4qiv4si2): Likewise.
16598 (*sse4_1_zero_extendv4qiv4si2): Likewise.
16599 (sse4_1_zero_extendv2qiv2di2): Likewise.
16600 (*sse4_1_zero_extendv2qiv2di2): Likewise.
16601 (sse4_1_zero_extendv4hiv4si2): Likewise.
16602 (*sse4_1_zero_extendv4hiv4si2): Likewise.
16603 (sse4_1_zero_extendv2hiv2di2): Likewise.
16604 (*sse4_1_zero_extendv2hiv2di2): Likewise.
16605 (sse4_1_zero_extendv2siv2di2): Likewise.
16606 (*sse4_1_zero_extendv2siv2di2): Likewise.
16607 (sse4_1_roundpd): Likewise.
16608 (sse4_1_roundps): Likewise.
16609 (sse4_1_roundsd): Likewise.
16610 (sse4_1_roundss): Likewise.
16611 (mulv4si3): Don't expand for SSE4.1.
16612 (smax<mode>3): Likewise.
16613 (umaxv4si3): Likewise.
16614 (uminv16qi3): Likewise.
16615 (umin<mode>3): Likewise.
16616 (umaxv8hi3): Rewrite. Only enabled for SSE4.1.
16617
16618 * doc/extend.texi: Document SSE4.1 built-in functions.
16619
16620 * doc/invoke.texi: Document -msse4.1.
16621
16622 2007-05-22 Nathan Sidwell <nathan@codesourcery.com>
16623
16624 * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
16625 * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
16626 * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
16627 (ASM_SPEC): Add asm_pcrel_spec.
16628 (EXTRA_SPECS): Add asm_pcrel_spec.
16629
16630 2007-05-21 David Daney <ddaney@avtrex.com>
16631
16632 * doc/install.texi (Building a cross compiler): Add requirements
16633 for Java cross compiler.
16634
16635 2007-05-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
16636
16637 PR middle-end/31995
16638 * tree-chrec.c (evolution_function_is_affine_multivariate_p):
16639 Add loopno argument. Use evolution_function_is_invariant_rec_p
16640 instead of evolution_function_is_constant_p.
16641 Update calls to evolution_function_is_affine_multivariate_p.
16642 * tree-chrec.h (evolution_function_is_affine_multivariate_p):
16643 Add loopno argument.
16644 * tree-scalar-evolution.c (gather_chrec_stats): Call
16645 evolution_function_is_affine_multivariate_p with a loop
16646 number of 0.
16647 * tree-data-ref.c (analyze_miv_subscript): Likewise.
16648 (analyze_overlapping_iterations): Likewise.
16649 (access_functions_are_affine_or_constant_p): Likewise.
16650 (build_classic_dist_vector_1): If the access functions
16651 are equal, don't do anything.
16652
16653 2007-05-21 Paolo Bonzini <bonzini@gnu.org>
16654 Paolo Carlini <pcarlini@suse.de>
16655 Uros Bizjak <ubizjak@gmail.com>
16656
16657 * c-cppbuiltin.c (c_cpp_builtins): Define
16658 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
16659 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
16660 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
16661 * doc/cpp.texi ([Standard Predefined Macros]): Document.
16662
16663 2007-05-21 Mike Stump <mrs@apple.com>
16664
16665 * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
16666 handling as well.
16667 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
16668
16669 2007-05-21 Uros Bizjak <ubizjak@gmail.com>
16670
16671 * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
16672 implementation if __OPTIMIZE__ is not defined.
16673 (_mm_alignr_pi8): Ditto.
16674 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
16675 (_mm_inserti_si64): Ditto.
16676 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
16677 (_mm_slli_epi16): Ditto.
16678 (_mm_slli_epi32): Ditto.
16679 (_mm_slli_epi64): Ditto.
16680 (_mm_srai_epi16): Ditto.
16681 (_mm_srai_epi32): Ditto.
16682 (_mm_srli_si128): Ditto.
16683 (_mm_slli_si128): Ditto.
16684 (_mm_srli_epi16): Ditto.
16685 (_mm_srli_epi32): Ditto.
16686 (_mm_srli_epi64): Ditto.
16687 (_mm_extract_epi16): Ditto.
16688 (_mm_insert_epi16): Ditto.
16689 (_mm_shufflehi_epi16): Ditto.
16690 (_mm_shufflelo_epi16): Ditto.
16691 (_mm_shuffle_epi32): Ditto.
16692 * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
16693 (_m_pextrw): Ditto.
16694 (_mm_insert_pi16): Ditto.
16695 (_m_pinsrw): Ditto.
16696 (_mm_shuffle_pi16): Ditto.
16697 (_m_pshufw): Ditto.
16698 (_mm_shufle_ps): Ditto.
16699 (_mm_prefetch): Ditto.
16700
16701 2007-05-21 Andreas Krebbel <krebbel1@de.ibm.com>
16702
16703 * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
16704 * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
16705 * real.c (encode_i370_single, decode_i370_single,
16706 encode_i370_double, decode_i370_double): Functions removed.
16707 (i370_single_format, i370_double_format): Initializations removed.
16708 (real_maxval, round_for_format, exact_real_truncate, significand_size):
16709 Consider the log2_b field to always be one.
16710 (ieee_single_format, mips_single_format, coldfire_single_format,
16711 ieee_double_format, mips_double_format, coldfire_double_format,
16712 ieee_extended_motorola_format, ieee_extended_intel_96_format,
16713 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
16714 ibm_extended_format, mips_extended_format, ieee_quad_format,
16715 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
16716 decimal_single_format, decimal_double_format, decimal_quad_format,
16717 c4x_single_format, c4x_extended_format, real_internal_format): Remove
16718 initialization of log2_b.
16719 * real.h (i370_single_format, i370_double_format): Declarations
16720 removed.
16721 * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
16722 field to always be one.
16723
16724 2007-05-21 Andreas Schwab <schwab@suse.de>
16725
16726 * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
16727 NOTE_INSN_BASIC_BLOCK_P.
16728 (process_for_unwind_directive): Likewise.
16729
16730 2007-05-21 Nathan Sidwell <nathan@codesourcery.com>
16731
16732 * builtins.c (expand_builtin_setjmp_setup): Update comment.
16733 * function.h (struct function): Move va_list_gpr_size,
16734 va_list_fpr_size, function_frequency to front of bitfields. Add
16735 calls_unwind_init.
16736 (current_function_calls_unwind_init): New.
16737 * except.c (expand_builtin_unwind_init): Set
16738 current_function_calls_unwind_init not
16739 current_function_has_nonlocal_label.
16740 * reload1.c (has_nonexceptional_receiver): New.
16741 (reload): Use it and current_function_calls_unwind_init to
16742 determine whether call-saved regs must be saved.
16743
16744 2007-05-20 Jan Hubicka <jh@suse.cz>
16745
16746 * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
16747 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
16748 * ddg.c (create_ddg): LIkewise.
16749 * final.c (final): Remove hunk moving line number notes around since
16750 they are no longer present at this stage.
16751 (final_scan_insn): Use NOTE_KIND instead of
16752 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
16753 (output_asm_label): Likewise.
16754 * reorg.c (dbr_schedule): Likewise.
16755 * haifa-sched.c (unlink_other_notes): Likewise.
16756 * mode-switching.c (optimize_mode_switching): Likewise.
16757 * graph.c (start_bb): Likewise.
16758 * rtl.def (NOTE): Update description.
16759 * jump.c (squeeze_notes): Delete.
16760 (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
16761 NOTE_INSN_BASIC_BLOCK_P when possible.
16762 * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
16763 * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
16764 NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
16765 (dwarf2out_var_location): Likewise.
16766 * cfgbuild.c (make_edges): Likewise.
16767 (find_basic_blocks_1): Likewise.
16768 * function.c (reorder_blocks_1): Likewise.
16769 (epilogue_done): Likewise.
16770 (reposition_prologue_and_epilogue_notes): Likewise.
16771 * print-rtl.c (print_rtx): Likewise; drop code for printing
16772 line number notes.
16773 (print_rtl): Likewise.
16774 (print_rtl_single): Likewise.
16775 * gcse.c (insert_insn_start_bb): Likewise.
16776 * alias.c (init_alias_analysis): Likewise.
16777 * calls.c (fixup_tail_calls): Likewise.
16778 * except.c (sjlj_emit_function_enter): Likewise.
16779 * emit-rtl.c (add_insn_after): Likeiwse.
16780 (emit_label_before): Likewise.
16781 (emit_label_after): Likewise.
16782 (emit_note_before, emit_note_after, emit_note): Update
16783 parameter to be enum insn_note; do not deal with source
16784 files.
16785 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
16786 Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
16787 when possible.
16788 (merge_blocks_move_successor_nojumps): Simplify now when
16789 we don't have BLOCK notes.
16790 (try_optimize_cfg): Likewise.
16791 * cfglayout.c (skip_insns_after_block): Likewise.
16792 (record_effective_endpoints): Likewise.
16793 (duplicate_insn_chain): Likewise.
16794 * varasm.c (output_constant_pool_1): Likewise.
16795 * sched-deps.c (sched_analyze): Likewise.
16796 * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
16797 Exterminate.
16798 (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
16799 * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
16800 (SET_INSN_DELETED): Simplify.
16801 (NOTE_LINE_NUMBER): Exterminate.
16802 (NOTE_LINE_KIND): New.
16803 (NOTE_INSN_BASIC_BLOCK_P): Update.
16804 (enum insn_note): Simplify.
16805 (GET_NOTE_INSN_NAME) Simplify.
16806 (emit_note_before, emit_note_after, emit_note): Update prototype.
16807 (squeeze_notes): Remove.
16808 * sched-int.h (NOTE_NOT_BB_P): Update.
16809 * resource.c (mark_target_live_regs): Update.
16810 * sched-rgn.c (debug_dependencies): Update.
16811 * sched-vis.c (print_insn): Update.
16812 * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
16813 * config/i386/i386.c (ix86_output_function_epilogue): Update.
16814 * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
16815 (TARGET_ADJUST_UNROLL_MAX): Likewise.
16816 (split_branches): Update.
16817 (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
16818 4.0.0.
16819 (sh_adjust_unroll_max): Exterminate.
16820 * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
16821 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
16822 (m68hc11_reorg): Likewise.
16823 * config/ia64/ia64.c (emit_insn_group_barriers): Update.
16824 (emit_predicate_relation_info): Update.
16825 (process_for_unwind_directive): Update.
16826 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
16827 (output_call): Update.
16828 * config/pa/pa.c (output_lbranch): Update.
16829 (output_millicode_call): Update.
16830 (output_call): Update.
16831 (pa_combine_instructions): Update.
16832 * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
16833 * config/bfin/bfin.c (gen_one_bundle): Update.
16834 * cfgrtl.c (can_delete_note_p): Update.
16835 (delete_insn): Update.
16836 (rtl_merge_blocks): Update.
16837 (commit_one_edge_insertion): Update.
16838 (rtl_verify_flow_info): Update.
16839 * stmt.c (expand_case): Do not call squeeze_notes.
16840
16841 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16842
16843 PR middle-end/7651
16844 PR c++/11856
16845 PR c/12963
16846 PR c/23587
16847 PR other/29694
16848 * c.opt (Wtype-limits): New.
16849 * doc/invoke.texi (Wtype-limits): Document it.
16850 (Wextra): Enabled by -Wextra.
16851 * c-opts.c (c_common_post_options): Enabled by -Wextra.
16852 * c-common.c (shorten_compare): Warn with Wtype-limits.
16853
16854 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
16855
16856 * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
16857 inlined function, not as a macro.
16858 (_mm_alignr_pi8): Ditto.
16859 * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
16860 (_mm_inserti_si64): Ditto.
16861 * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
16862 (_mm_extract_epi16): Ditto.
16863 (_mm_insert_epi16): Ditto.
16864 (_mm_shufflehi_epi16): Ditto.
16865 (_mm_shufflelo_epi16): Ditto.
16866 (_mm_shuffle_epi32): Ditto.
16867 * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
16868 * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
16869 all functions.
16870 (_m_from_float): Add __extension__ to conversion. Use 0.0f for
16871 float constant.
16872 (_m_to_float): Use C89 compatible assignment.
16873
16874 2007-05-20 Martin Michlmayr <tbm@cyrius.com>
16875
16876 PR target/32007
16877 * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
16878
16879 2007-05-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16880
16881 PR middle-end/7651
16882 * doc/invoke.texi (Wreturn-type): Complete description.
16883 (Wextra): Delete item about return-type warning.
16884 * c-decl.c: Delete redundant Wextra warning.
16885
16886 2007-05-20 Uros Bizjak <ubizjak@gmail.com>
16887
16888 PR target/31585
16889 * config/i386/pmmintrin.h: Do not include xmmintrin.h
16890 * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
16891 inlined function, not as a macro.
16892 (_mm_prefetch): Ditto.
16893 (_m_pextrw): Ditto.
16894 (_mm_insert_pi16): Ditto.
16895 (_m_pinsrw): Ditto.
16896 (_mm_shuffle_pi16): Ditto. Add const to __N argument.
16897 (_m_pshufw): Ditto. Add const to __N argument.
16898 (_mm_shufle_ps): Ditto. Add const to __mask argument.
16899 * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
16900 (_mm_slli_epi32): Ditto.
16901 (_mm_srli_si128): Implement as always inlined function, not as a
16902 macro. Add __inline to function declaration.
16903 (_mm_slli_si128): Ditto.
16904
16905 2007-05-19 Uros Bizjak <ubizjak@gmail.com>
16906
16907 * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
16908 FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
16909 New constants.
16910 (struct fenv): New structure.
16911 (FP_HANDLE_EXCEPTIONS): New define.
16912 (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
16913 (_FP_DECL_EXP): New define.
16914 (FP_INIT_ROUNDMODE): New define.
16915 (FP_ROUNDMODE): New define.
16916
16917 2007-05-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16918
16919 * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
16920 (Wconversion): Update description.
16921 (Wconversion-sign): New.
16922 * c.opt (Wconversion-sign): New.
16923 * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
16924 means disabled for C++. Otherwise, take the status of Wconversion.
16925 * c-common.c (conversion_warning): Warn with either Wconversion or
16926 Wconversion-sign.
16927 (warnings_for_convert_and_check): Conditions are already checked by
16928 conversion_warning.
16929 (convert_and_check): Don't check warnings if the conversion failed.
16930
16931 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
16932 Anatoly Sokolov <aesok@dol.ru>
16933
16934 * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
16935 avr_epilogue_uses) : Add declaration.
16936 * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
16937 * config/avr/constraints.md (R): New constraint.
16938 config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
16939 UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
16940 (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
16941 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
16942 (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
16943 call_prologue_saves, epilogue_restores, return_from_epilogue,
16944 return_from_main_epilogue, return_from_interrupt_epilogue,
16945 return_from_naked_epilogue, prologue, epilogue): New patterns.
16946 (jump): Handle symbol reference.
16947 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
16948 avr_output_function_prologue, avr_output_function_epilogue): Remove
16949 functions.
16950 (avr_init_machine_status, expand_prologue, expand_epilogue,
16951 avr_asm_function_end_prologue, avr_epilogue_uses,
16952 avr_asm_function_begin_epilogue): New functions.
16953 (prologue_size, epilogue_size, jump_tables_size): Remove global
16954 variables.
16955 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
16956 (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
16957 (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
16958 (avr_override_options): Initialise init_machine_status.
16959 (output_movhi): Handle all stack pointer loads.
16960 (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
16961 (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
16962 * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
16963 (EPILOGUE_USES) Redefine.
16964 (machine_function) Declare.
16965
16966 2007-05-19 Richard Sandiford <richard@codesourcery.com>
16967
16968 * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
16969 Use a single return statement.
16970
16971 2007-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16972
16973 PR middle-end/30250
16974 * builtins.c (do_mpfr_lgamma_r): New.
16975 (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
16976 * tree.h (CASE_FLT_FN_REENT): New.
16977
16978 2007-05-18 Geoffrey Keating <geoffk@apple.com>
16979
16980 * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
16981 (output_die): Use 'unsigned long' with %x.
16982 * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
16983 HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
16984 * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
16985
16986 * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
16987
16988 2007-05-18 H.J. Lu <hongjiu.lu@intel.com>
16989
16990 PR target/31989
16991 PR target/31681
16992 PR target/31666
16993 * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
16994 true if function has no argument.
16995
16996 2007-05-18 DJ Delorie <dj@redhat.com>
16997
16998 * config/mips/mips.c (mips_offset_within_alignment_p): New.
16999 (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
17000
17001 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
17002
17003 * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
17004 sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
17005 count_trailing_zeros.
17006 (__i386__): Implement count_leading_zeros using __builtin_clz().
17007 Implement count_trailing_zeros usign __builtin_ctz().
17008
17009 2007-05-18 Richard Sandiford <richard@codesourcery.com>
17010
17011 * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
17012
17013 2007-05-18 Uros Bizjak <ubizjak@gmail.com>
17014
17015 PR middle-end/31344
17016 * expr.c (emit_move_change_mode): Change mode of push operands here.
17017
17018 2007-05-17 Ian Lance Taylor <iant@google.com>
17019
17020 PR tree-optimization/31953
17021 * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
17022 Change all callers.
17023 (set_value_range_to_null): Call set_value_range_to_value.
17024 (extract_range_from_comparison): Likewise.
17025
17026 2007-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17027
17028 * toplev.c (print_version): Output GMP/MPFR version info.
17029
17030 * builtins.c (CASE_MATHFN_REENT): New macro.
17031 (mathfn_built_in): Use it.
17032 * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
17033 BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
17034 BUILT_IN_LGAMMAL_R): New.
17035 * doc/extend.texi: Document new builtins.
17036
17037 PR middle-end/31796
17038 * builtins.c (do_mpfr_remquo): New.
17039 (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
17040 (fold_builtin_3): Handle BUILT_IN_REMQUO.
17041
17042 PR middle-end/30251
17043 * builtins.c (fold_builtin_1): Handle y0, y1.
17044 (fold_builtin_2): Handle yn.
17045
17046 PR middle-end/30251
17047 * builtins.c (do_mpfr_bessel_n): New.
17048 (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
17049 (fold_builtin_2): Handle BUILT_IN_JN.
17050
17051 2007-05-17 Danny Smith <dannysmith@users.sourceforge.net>
17052
17053 PR target/31965
17054 * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
17055 TYPE_PRECISION (intmax_type_node).
17056
17057 2007-05-17 Steve Ellcey <sje@cup.hp.com>
17058
17059 PR target/31850
17060 * reload.c (subst_reloads): Remove checking.
17061
17062 2007-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
17063
17064 PR rtl-optimization/31691
17065 * combine.c (simplify_set): Build a new src pattern instead of
17066 substituting its operands in the COMPARE case.
17067
17068 2007-05-17 Zdenek Dvorak <dvorakz@suse.cz>
17069
17070 * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
17071 (execute_vrp): Preserve loops through jump threading.
17072 * tree-ssa-threadupdate.c (thread_single_edge,
17073 dbds_continue_enumeration_p, determine_bb_domination_status,
17074 thread_through_loop_header): New functions.
17075 (create_edge_and_update_destination_phis,
17076 create_edge_and_update_destination_phis): Set loops for the new blocks.
17077 (prune_undesirable_thread_requests): Removed.
17078 (redirect_edges): Do not pretend that redirect_edge_and_branch can
17079 create new blocks.
17080 (thread_block): Do not call prune_undesirable_thread_requests.
17081 Update loops.
17082 (mark_threaded_blocks): Select edges to thread here.
17083 (thread_through_all_blocks): Take may_peel_loop_headers argument.
17084 Thread edges through loop headers independently.
17085 * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
17086 * tree-pass.h (TODO_mark_first_instance): New.
17087 (first_pass_instance): Declare.
17088 * cfghooks.c (duplicate_block): Put the block to the original loop
17089 if copy is not specified.
17090 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
17091 jump threading. Pass may_peel_loop_headers to
17092 thread_through_all_blocks according to first_pass_instance.
17093 * cfgloop.h (create_preheader): Declare.
17094 * tree-flow.h (thread_through_all_blocks): Declaration changed.
17095 * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
17096 * passes.c (first_pass_instance): New variable.
17097 (next_pass_1): Set TODO_mark_first_instance.
17098 (execute_todo): Set first_pass_instance.
17099
17100 2007-05-17 Uros Bizjak <ubizjak@gmail.com>
17101
17102 PR tree-optimization/24659
17103 * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
17104 OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
17105 OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
17106 OTI_vec_pack_ufix_trunc.
17107 (vec_unpacks_float_hi_optab): Define new macro.
17108 (vec_unpacks_float_lo_optab): Ditto.
17109 (vec_unpacku_float_hi_optab): Ditto.
17110 (vec_unpacku_float_lo_optab): Ditto.
17111 (vec_pack_sfix_trunc_optab): Ditto.
17112 (vec_pack_ufix_trunc_optab): Ditto.
17113 * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
17114 and vec_pack_[s|u]fix_trunc_optab using
17115 vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
17116 * tree-vectorizer.c (supportable_widening_operation): Handle
17117 FLOAT_EXPR and CONVERT_EXPR. Update comment.
17118 (supportable_narrowing_operation): New function.
17119 * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
17120 * tree-vect-transform.c (vectorizable_conversion): Handle
17121 (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
17122 (vect_gen_widened_results_half): Move before vectorizable_conversion.
17123 (vectorizable_type_demotion): Call supportable_narrowing_operation()
17124 to check for target support.
17125 * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
17126 for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
17127 for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
17128 for VEC_PACK_FIX_TRUNC_EXPR.
17129 (expand_binop): Special case mode of the result for
17130 vec_pack_[u|s]fix_trunc_optab.
17131 (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
17132 vec_pack_[u|s]fix_trunc_optab.
17133
17134 * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
17135 VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
17136 * tree-pretty-print.c (dump_generic_node): Handle
17137 VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
17138 VEC_PACK_FIX_TRUNC_EXPR.
17139 (op_prio): Ditto.
17140 * expr.c (expand_expr_real_1): Ditto.
17141 * tree-inline.c (estimate_num_insns_1): Ditto.
17142 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
17143
17144 * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
17145 (vec_unpacks_float_lo_v8hi): Ditto.
17146 (vec_unpacku_float_hi_v8hi): Ditto.
17147 (vec_unpacku_float_lo_v8hi): Ditto.
17148 (vec_unpacks_float_hi_v4si): Ditto.
17149 (vec_unpacks_float_lo_v4si): Ditto.
17150 (vec_pack_sfix_trunc_v2df): Ditto.
17151
17152 * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
17153 Document.
17154 [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
17155 [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
17156 * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
17157 [vec_pack_ufix_trunc]: Ditto.
17158 [vec_unpacks_float_hi]: Ditto.
17159 [vec_unpacks_float_lo]: Ditto.
17160 [vec_unpacku_float_hi]: Ditto.
17161 [vec_unpacku_float_lo]: Ditto.
17162
17163 2007-05-16 Uros Bizjak <ubizjak@gmail.com>
17164
17165 * soft-fp/README: Update for new files.
17166 * soft-fp/floattisf.c: New file.
17167 * soft-fp/floattidf.c: New file.
17168 * soft-fp/floattitf.c: New file.
17169 * soft-fp/floatuntisf.c: New file.
17170 * soft-fp/floatuntidf.c: New file.
17171 * soft-fp/floatuntitf.c: New file.
17172 * soft-fp/fixsfti.c: New file.
17173 * soft-fp/fixdfti.c: New file.
17174 * soft-fp/fixtfti.c: New file.
17175 * soft-fp/fixunssfti.c: New file.
17176 * soft-fp/fixunsdfti.c: New file.
17177 * soft-fp/fixunstfti.c: New file.
17178 * soft-fp/extendxftf.c: New file.
17179 * soft-fp/trunctfxf.c: New file.
17180
17181 * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
17182 (__trunctfxf2): Ditto.
17183
17184 * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
17185 __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
17186 __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
17187 __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
17188 __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
17189 __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
17190
17191 * config/i386/t-fprules-softfp64: New file.
17192 * config/i386/sfp-machine.h: New file.
17193 * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
17194 x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
17195 and soft-fp/t-softfp to tmake_file.
17196 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
17197 i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
17198
17199 * config/i386/t-linux64 (softfp_wrap_start): New.
17200 (softfp_wrap_end): New.
17201 * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
17202 supported for TARGET_64BIT.
17203
17204 2007-05-16 Rafael Avila de Espindola <espindola@google.com>
17205
17206 * c-common.c (c_common_signed_or_unsigned_type): Emulate
17207 c_common_unsigned_type behavior.
17208
17209 2007-05-16 Paolo Bonzini <bonzini@gnu.org>
17210
17211 * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
17212 calls as pure.
17213
17214 2007-05-16 Eric Christopher <echristo@apple.com>
17215
17216 * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
17217 saving after stack push. Set sp_offset whenever we push.
17218 (rs6000_emit_epilogue): Move altivec register restore before
17219 stack push.
17220
17221 2007-05-16 Richard Sandiford <richard@codesourcery.com>
17222
17223 * configure.ac: Allow sysroots to be relocated under $prefix as
17224 well as $exec_prefix.
17225 * configure: Regenerate.
17226
17227 2007-05-16 Richard Sandiford <richard@codesourcery.com>
17228
17229 Revert:
17230
17231 2007-05-12 Richard Sandiford <richard@codesourcery.com>
17232
17233 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
17234 (gcc_tooldir): Likewise.
17235 * configure: Regenerate.
17236 * Makefile.in (libsubdir_to_prefix): New variable, based on the
17237 old configure.ac gcc_tooldir setting.
17238 (prefix_to_exec_prefix): New variable.
17239 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
17240 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
17241
17242 2007-05-14 Janis Johnson <janis187@us.ibm.com>
17243
17244 * c-typeck.c (build_binary_op): Return early for error.
17245
17246 2007-05-15 Zdenek Dvorak <dvorakz@suse.cz>
17247
17248 * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
17249 struct nb_iter_bound.
17250 (free_numbers_of_iterations_estimates_loop): Use ggc_free.
17251 * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
17252 * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
17253 * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
17254 (struct scev_info_str, scalar_evolution_info): Add GTY markers.
17255 (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
17256 (del_scev_info): Use ggc_free.
17257 (scev_initialize): Allocate scalar_evolution_info in gc memory.
17258 * loop-init.c: Include ggc.h.
17259 (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
17260 (loop_optimizer_finalize): Use ggc_free.
17261 * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
17262 pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
17263 pass_iv_optimize): Add TODO_ggc_collect.
17264 * function.h (struct function): Remove skip marker from
17265 x_current_loops.
17266 * cfgloop.c: Include ggc.h.
17267 (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
17268 memory.
17269 (establish_preds): Vector superloops is gc allocated.
17270 (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of
17271 loop->exits list.
17272 (flow_loops_find): Vector larray is gc allocated.
17273 (loop_exit_free): Use ggc_free.
17274 (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect
17275 that head of exits list is now not a part of struct loop.
17276 (record_loop_exits): Allocate exits table in gc memory.
17277 (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
17278 that head of exits list is now not a part of struct loop.
17279 * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
17280 struct loop_exit): Add GTY marker.
17281 (struct loop): Add GTY marker. Make superloops vector gc allocated.
17282 Add skip marker to aux field. Make head of exits list a separate
17283 object.
17284 (struct loops): Add GTY marker. Make larray vector gc allocated.
17285 Add param marker to exits table.
17286 (get_loops): Type changed.
17287 * Makefile.in (tree-scalar-evolution.o): Add
17288 gt-tree-scalar-evolution.h dependency.
17289 (cfgloop.o, loop-init.o): Add ggc.h dependency.
17290 (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
17291 * basic-block.h (struct basic_block_def): Remove skip marker from
17292 loop_father field.
17293
17294 2007-05-14 Uros Bizjak <ubizjak@gmail.com>
17295
17296 * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
17297 of 0 in the call to expand_expr().
17298 (expand_builtin_mathfn_3): Ditto.
17299 (expand_builtin_interclass_mathfn): Ditto.
17300 (expand_builtin_cexpi): Ditto.
17301 (expand_builtin_int_roundingfn): Ditto.
17302 (expand_builtin_int_roundingfn_2): Ditto.
17303 (expand_builtin_pow): Ditto.
17304 (expand_builtin_powi): Ditto.
17305 (expand_builtin_bswap): Ditto.
17306 (expand_builtin_unop): Ditto.
17307 (expand_builtin_fabs): Ditto.
17308 (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
17309 the call to expand_expr().
17310 (expand_builtin_sync_operation): Ditto.
17311 (expand_builtin_compare_and_swap): Ditto.
17312 (expand_builtin_lock_test_and_set): Ditto.
17313 * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
17314 instead of 0 in the call to expand_expr().
17315 (expand_builtin_extract_return_addr): Ditto.
17316 (expand_builtin_eh_return): Ditto.
17317 (expand_eh_return): Ditto.
17318 * explow.c (expr_size): Ditto.
17319 * expr.c (optimize_bitfield_assignment_op): Ditto.
17320 (expand_assignement): Ditto.
17321 (store_expr): Ditto.
17322 (store_field): Ditto.
17323 (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
17324 the call to expand_expr().
17325 (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
17326 in the call to expand_expr().
17327 [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
17328 BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
17329 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
17330 of expand_expr().
17331 * optabs.c (expand_vec_shift_expr): Ditto.
17332 (expand_vec_cond_expr): Ditto.
17333 (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
17334 call to expand_expr().
17335 * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
17336 in the call to expand_expr().
17337
17338 2007-05-14 Dave Korn <dave.korn@artimi.com>
17339
17340 * genautomata.c (gen_regexp_el): Allocate correct size for regexp.
17341
17342 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
17343
17344 * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
17345 instead of c_common_unsigned_type.
17346 (c_common_unsigned_type): Remove.
17347 (shorten_compare): Use c_common_signed_or_unsigned_type instead of
17348 c_common_unsigned_type.
17349 (c_common_nodes_and_builtins): Use unsigned_type_for instead of
17350 c_common_unsigned_type.
17351 * c-common.h (c_common_unsigned_type): Remove.
17352 * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
17353 c_common_unsigned_type.
17354 * c-format.c (check_format_types): Use unsigned_type_for instead of
17355 c_common_unsigned_type.
17356 * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
17357 * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
17358 of c_common_unsigned_type.
17359 * convert.c (convert_to_integer): Use unsigned_type_for instead of
17360 lang_hooks.types.unsigned_type.
17361 * expmed.c (make_tree): Use unsigned_type_for instead of
17362 lang_hooks.types.unsigned_type.
17363 * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
17364 lang_hooks.types.unsigned_type.
17365 (build_range_check): Likewise.
17366 (fold_unary): Likewise.
17367 (fold_binary): Likewise.
17368 (fold_ternary): Likewise.
17369 * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
17370 * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
17371 * tree.c (get_unsigned_type): New.
17372 (unsigned_type_for): Use get_unsigned_type instead of
17373 lang_hooks.types.unsigned_type.
17374
17375 2007-05-14 Kazu Hirata <kazu@codesourcery.com>
17376
17377 * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
17378 to m68k_get_function_kind. Update its prototype.
17379 * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
17380 interrupt_thread.
17381 (m68k_interrupt_function_p): Return enum m68k_function_type
17382 instead of bool. Rename to m68k_get_function_kind.
17383 (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
17384 target is not fido.
17385 (m68k_compute_frame_layout): Don't mark any register for save
17386 if an interrupt_thread attribute is specified.
17387 (m68k_hard_regno_rename_ok): Update a use of
17388 m68k_interrupt_function_p.
17389 * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
17390 m68k_interrupt_function_p.
17391 (m68k_function_type): New.
17392 * config/m68k/m68k.md (*return): Output a 'sleep' instruction
17393 for a function with an interrupt_thread attribute.
17394 * doc/extend.texi: Document the interrupt_thread attribute.
17395
17396 2007-05-13 Daniel Berlin <dberlin@dberlin.org>
17397
17398 Fix PR tree-optimization/31911
17399 * tree-ssa-pre.c (phi_translate): Make sure to cache results even
17400 if they didn't change the expression.
17401
17402 2007-05-13 Zdenek Dvorak <dvorakz@suse.cz>
17403
17404 * tree-scalar-evolution.c (resolve_mixers): Exported.
17405 * tree-scalar-evolution.h (resolve_mixers): Declare.
17406 * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
17407 ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
17408 record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
17409 base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
17410 init_array_ref, init_pointer_ref, analyze_indirect_ref,
17411 strip_conversion, analyze_offset_expr, address_analysis,
17412 object_analysis, analyze_offset): Removed.
17413 (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
17414 split_constant_offset, canonicalize_base_object_address,
17415 object_address_invariant_in_loop_p, disjoint_objects_p,
17416 dr_may_alias_p, dr_address_invariant_p): New functions.
17417 (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
17418 and dr_analyze_alias.
17419 (initialize_data_dependence_relation): Use dr_may_alias_p
17420 and object_address_invariant_in_loop_p.
17421 (compute_self_dependence): Handle the case when
17422 DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
17423 (find_data_references_in_stmt): Restrict the analysis of data
17424 references to the given loop nest.
17425 (find_data_references_in_loop): Made static. Pass loop nest to
17426 find_data_references_in_stmt.
17427 (compute_data_dependences_for_loop): Use DR_VOPS.
17428 (free_data_ref): Free DR_VOPS.
17429 * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
17430 (struct innermost_loop_behavior): ... new.
17431 (struct base_object_info): Replaced by ...
17432 (struct indices): ... new.
17433 (struct dr_alias): New.
17434 (enum data_ref_type): Removed.
17435 (struct data_reference): Consist of struct innermost_loop_behavior,
17436 struct indices and struct dr_alias.
17437 (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
17438 (DR_MEMTAG): Renamed to ...
17439 (DR_SYMBOL_TAG): ... this.
17440 (find_data_references_in_loop): Declaration removed.
17441 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
17442 instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL.
17443 (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
17444 * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
17445
17446 2007-05-13 Revital Eres <eres@il.ibm.com>
17447
17448 * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
17449 which walks virtual def-use chains to find redundant stores.
17450 (dse_optimize_stmt): Call it.
17451
17452 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
17453
17454 * gcse.c (gcse_main): Do jump bypassing in CPROP2.
17455 * passes.c (init_optimization_passes): Move pass_jump_bypass
17456 after loop2.
17457
17458 * basic-block.h (bb_has_eh_pred): Fix style issue.
17459
17460 2007-05-12 Steven Bosscher <steven@gcc.gnu.org>
17461
17462 PR rtl-optimization/31848
17463 * loop-invariant.c (move_invariant_reg): If we move an insn
17464 with a REG_EQUAL note, and that insn is not always executed,
17465 remove the REG_EQUAL note.
17466
17467 2007-05-12 Richard Guenther <rguenther@suse.de>
17468
17469 PR tree-optimization/31797
17470 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
17471 propagate into a stmt that has volatile ops.
17472
17473 2007-05-12 Richard Sandiford <richard@codesourcery.com>
17474
17475 * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
17476 (gcc_tooldir): Likewise.
17477 * configure: Regenerate.
17478 * Makefile.in (libsubdir_to_prefix): New variable, based on the
17479 old configure.ac gcc_tooldir setting.
17480 (prefix_to_exec_prefix): New variable.
17481 (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
17482 rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
17483
17484 2007-05-11 Silvius Rus <rus@google.com>
17485
17486 * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
17487 * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
17488 * c-common.h (strict_aliasing_warning): Change return type.
17489 * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
17490 * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
17491 (build_c_cast): Condition call to strict_aliasing_warning.
17492 * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
17493 * flags.h (set_Wstrict_aliasing): Declare.
17494 * opts.c (set_Wstrict_alising): Define, add call to.
17495 * tree-flow.h (strict_aliasing_warning_backend): Declare.
17496 * tree-ssa-alias-warnings.c: New file.
17497 * tree-ssa-alias.c (compute_may_aliases): Add call to
17498 strict_aliasing_warning_backend.
17499
17500 2007-05-11 Zdenek Dvorak <dvorakz@suse.cz>
17501
17502 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
17503 Use loop_depth and loop_outer accessor functions.
17504 * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
17505 determine_invariantness_stmt, move_computations_stmt): Ditto.
17506 * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
17507 add_loop, loopify, unloop, fix_loop_structure): Ditto.
17508 * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
17509 * tree-scalar-evolution.c (interpret_loop_phi,
17510 compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
17511 instantiate_parameters_1, scev_const_prop): Ditto.
17512 * cfghooks.c (make_forwarder_block): Ditto.
17513 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
17514 * modulo-sched.c (loop_canon_p): Ditto.
17515 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
17516 slpeel_can_duplicate_loop_p): Ditto.
17517 * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
17518 * tree-cfg.c (tree_duplicate_sese_region): Ditto.
17519 * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
17520 cancel_loop, verify_loop_structure): Ditto.
17521 (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
17522 add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
17523 superloops vector instead of "pred" array.
17524 (establish_preds): Take father loop as an argument. Initialize the
17525 superloops vector.
17526 (flow_loop_tree_node_add): Pass father loop to establish_preds.
17527 Do not initialize loop->outer.
17528 (flow_loop_tree_node_remove): Truncate the superloops vector.
17529 * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
17530 "pred" merged to "superloops" vector.
17531 (loop_depth, loop_outer): New.
17532 (fel_init): Use loop_outer.
17533
17534 2007-05-11 Jan Hubicka <jh@suse.cz>
17535
17536 * cgraphunit.c: Include gt-cgraphunit.h
17537 (static_ctors, static_dtors): New static vars.
17538 (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
17539 based on implementation in c-common.c
17540 (cgraph_finalize_function): Call record_cdtor_fn.
17541 (cgraph_optimize): Call cgraph_build_cdtor_fns.
17542 * decl.c (finish_function): Do not call c_record_cdtor_fn.
17543 (c_write_global_declarations): Do not call c_build_cdtor_fns.
17544 * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
17545 build_cdtor, c_build_cdtor_fns): Remove.
17546 * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
17547 c_build_cdtor_fns): Remove prototype.
17548
17549 2007-05-11 Paolo Carlini <pcarlini@suse.de>
17550
17551 PR other/31852
17552 * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
17553 * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
17554 * builtins.c (fold_builtin_memchr): New.
17555 (expand_builtin_memchr): Call the latter.
17556 (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
17557 * doc/extend.texi ([Other built-in functions provided by GCC]):
17558 Document memchr.
17559
17560 2007-05-11 Andreas Krebbel <krebbel1@de.ibm.com>
17561
17562 * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
17563 PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
17564 PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
17565 PFPO_OP1_TYPE_SHIFT): Constants added.
17566 (DFP_ALL): Mode macro defined.
17567 ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
17568 "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
17569 Insn definitions added.
17570 ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
17571 "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
17572 Expanders added.
17573
17574 2007-05-10 Zdenek Dvorak <dvorakz@suse.cz>
17575
17576 PR tree-optimization/31885
17577 * tree-chrec.c (chrec_contains_undetermined): Do not consider
17578 NULL_TREE to be undetermined.
17579 (automatically_generated_chrec_p): Return false for NULL.
17580
17581 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
17582
17583 * config/bfin/bfin.h (MOVE_RATIO): Define.
17584
17585 2007-05-10 Richard Sandiford <richard@codesourcery.com>
17586
17587 * config.gcc (sparc-wrs-vxworks): New target.
17588 * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
17589 * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
17590 * config/sparc/sparc.h: Include vxworks-dummy.h.
17591 (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
17592 include LABEL_REFs too.
17593 * config/sparc/sparc.c (sparc_expand_move): Don't assume that
17594 _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
17595 VxWorks.
17596 (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
17597 on VxWorks.
17598 (load_pic_register): Use gen_vxworks_load_got for VxWorks.
17599 (sparc_emit_call_insn): New function.
17600 (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
17601 functions when generating VxWorks PIC.
17602 * config/sparc/sparc.md (vxworks_load_got): New pattern.
17603 (call, call_value): Use sparc_emit_call_insn instead of
17604 emit_call_insn.
17605
17606 2007-05-09 Bob Wilson <bob.wilson@acm.org>
17607
17608 * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
17609
17610 2007-05-09 Bob Wilson <bob.wilson@acm.org>
17611
17612 * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
17613 for floating-point values if HOST_BITS_PER_LONG > 32. Use
17614 split_double instead of operand_subword.
17615
17616 2007-05-08 Bernd Schmidt <bernd.schmidt@analog.com>
17617
17618 * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
17619 * config/bfin/bfin.c (bfin_local_alignment): New function.
17620 * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
17621
17622 2007-05-08 Chao-ying Fu <fu@mips.com>
17623
17624 * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
17625 * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
17626 (smsub_widen_optab, umsub_widen_optab): Define.
17627 * optabs.c (init_optabs): Initialize smsub_widen_optab and
17628 umsub_widen_optab.
17629 * genopinit.c (optabs): Fill in smsub_widen_optab and
17630 umsub_widen_optab.
17631 * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
17632 and umsub_widen_optab to implement multiply-subtract sequences.
17633 * config/mips/mips.md (*msac<u>_di): Rename to...
17634 (<u>msubsidi4): ...this. Extend condition to include
17635 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
17636 of operand 0 to "ka" and use the three-operand form of msub<u>
17637 for TARGET_DSPR2.
17638 * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
17639 to define_expands.
17640
17641 2007-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
17642
17643 PR rtl-optimization/28011
17644 * reload.c (push_reload): Set dont_share if IN appears in OUT
17645 also when IN is a PLUS rtx.
17646 (reg_overlap_mentioned_for_reload_p): Return true if X and IN
17647 are same PLUS rtx.
17648
17649 2007-05-08 Kazu Hirata <kazu@codesourcery.com>
17650
17651 * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't
17652 call unshare_all_decls.
17653 (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
17654 (unshare_all_decls): Remove.
17655
17656 2007-05-08 Simon Martin <simartin@users.sourceforge.net>
17657
17658 PR 31847
17659 * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
17660 dumps.
17661
17662 2007-05-08 Sandra Loosemore <sandra@codesourcery.com>
17663 Nigel Stephens <nigel@mips.com>
17664
17665 * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
17666 Update comments and all uses.
17667 (MIN_FPRS_PER_FMT): Define.
17668 * config/mips/mips.c (function_arg): Fix to correctly handle
17669 the -mips32r2 -mfp64 -mabi=32 case.
17670 (override_options): Enable use of odd-numbered registers for
17671 SFmode values on MIPS32.
17672 (mips_save_reg_p): Save whole floating-point register pair if
17673 either half is used.
17674 (compute_frame_size): Fix comment.
17675
17676 2007-05-08 Jie Zhang <jie.zhang@analog.com>
17677
17678 * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
17679 argument of type bool.
17680 * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
17681 argument. Safely select temporary P register according to it.
17682 (do_link): Change call site of add_to_reg accordingly.
17683 (do_unlink): Add epilogue_p as a fourth argument and pass it
17684 to add_to_reg.
17685 (expand_interrupt_handler_epilogue): Change call of do_unlink
17686 accordingly.
17687 (bfin_expand_prologue): Add a third argument sibcall_p.
17688 * config/bfin/bfin.md (epilogue): Change call of
17689 bfin_expand_epilogue accordingly.
17690 (sibcall_epilogue): Likewise.
17691 (eh_return_internal): Likewise.
17692
17693 * config/bfin/bfin-protos.h (enum bfin_cpu): Add
17694 BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
17695 * config/bfin/bfin.c (bfin_handle_option): Handle
17696 -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
17697 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
17698 Support bf534, bf536 and bf561.
17699 * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
17700
17701 2007-05-08 Uros Bizjak <ubizjak@gmail.com>
17702
17703 PR target/31854
17704 * config/i386/i386.c (ix86_function_regparm): Process local
17705 functions only when TREE_CODE (decl) equals FUNCTION_DECL.
17706
17707 2007-05-07 Mike Stump <mrs@apple.com>
17708
17709 * doc/invoke.texi (Warning Options): Document that -Wempty-body
17710 also checks for and while statements in C++.
17711
17712 2007-05-07 Nathan Froyd <froydnj@codesourcery.com>
17713
17714 * gcc.c (at_file_supplied): New variable.
17715 (main): Set it if we expanded argv.
17716 (do_spec_1): Pass an @-file to the linker if we were called with
17717 an @-file argument and HAVE_GNU_LD.
17718 * collect2.c (at_file_supplied): New variable.
17719 (response_file): New variable.
17720 (collect_exit): Unlink response_file if necessary.
17721 (handler): Likewise.
17722 (do_wait): Likewise.
17723 (main): Set at_file_supplied if we expanded argv.
17724 (collect_execute): Pass an @-file to subprocesses if we were called
17725 with an @-file argument.
17726 * configure.ac: Add define for HAVE_GNU_LD.
17727 * configure: Regenerate.
17728 * config.in: Regenerate.
17729
17730 2007-05-07 Naveen.H.S <naveen.hs@kpitcummins.com>
17731
17732 * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
17733 operand to HI mode.
17734 (mulsi3): New.
17735 (divsi3): New.
17736 (udivsi3): New.
17737
17738 2007-05-07 Jayant Sonar <jayants@kpitcummins.com>
17739
17740 * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
17741 (TARGET_ENCODE_SECTION_INFO): Re-define.
17742 (m32c_encode_section_info): New
17743 (function_vector_handler): New
17744 (current_function_special_page_vector): New
17745 (m32c_special_page_vector_p): New.
17746 * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
17747 Prototype.
17748 * config/m32c/jump.md: Added instruction JSRS for functions
17749 with attribute "function_vector".
17750 * doc/extend.texi (function_vector): Added description
17751 for M16C, M32C targets.
17752
17753 2007-05-07 DJ Delorie <dj@redhat.com>
17754
17755 PR 31794
17756 * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
17757 ashrpsi3, lshrpsi3): Update shift count constraint.
17758
17759 2007-05-07 Danny Smith <dannysmith@users.sourceforge.net>
17760 Nathan Froyd <froydnj@codesourcery.com>
17761
17762 PR 22133
17763 * c-incpath.c (add_path): Strip trailing path separators.
17764
17765 2007-05-07 Eric Botcazou <ebotcazou@adacore.com>
17766
17767 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
17768 Free dominance info before purging EH edges.
17769 (eliminate_degenerate_phis): Likewise.
17770 (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
17771
17772 2007-05-07 Jan Hubicka <jh@suse.cz>
17773
17774 * gimplify.c (gimplify_expr): Do not crash when folding
17775 (void *)(int)&a + 4.
17776
17777 2007-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
17778
17779 PR driver/31694
17780 * c-opts.c (lang_fortran): Make it non static.
17781 * c-common.h (lang_fortran): New prototype.
17782 * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
17783 -lang-fortran option was passed by the driver.
17784
17785 2007-05-06 Eric Botcazou <ebotcazou@adacore.com>
17786
17787 * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
17788 of ASSERT_CHECKING. Tweak message.
17789
17790 2007-05-06 Revital Eres <eres@il.ibm.com>
17791
17792 PR 30957
17793 * loop-unroll.c (insert_var_expansion_initialization):
17794 Initialize the expansions with -zero instead of +zero.
17795
17796 2007-05-05 Aurelien Jarno <aurelien@aurel32.net>
17797
17798 * config/pa/pa.md: Split tgd_load, tld_load and tie_load
17799 into pic and non-pic versions. Mark r19 as used for
17800 tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
17801 for tgd_load, tld_load and tie_load .
17802 * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
17803 version of tgd_load, tld_load and tie_load depending on the
17804 value of flag_pic.
17805
17806 2007-05-04 Ulrich Drepper <drepper@redhat.com>
17807 Jakub Jelinek <jakub@redhat.com>
17808
17809 * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
17810 (__do_global_dtors_aux): Use more paranoid loop to run
17811 destructors if HIDDEN_DTOR_LIST_END.
17812 (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
17813
17814 2007-05-04 Jakub Jelinek <jakub@redhat.com>
17815
17816 * varasm.c (align_variable): Don't increase alignment for
17817 DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
17818 DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
17819
17820 2007-05-04 Josh Conner <jconner@apple.com>
17821
17822 * basic-block.h (cdi_direction): Assign values to all enumeration
17823 constants.
17824 (dom_computed): Remove.
17825 (dom_info_state): New.
17826 (set_dom_info_availability): New.
17827 * tree-ssa-loop-im.c (determine_invariantness): Initialize
17828 walk_data.dom_direction.
17829 * cfghooks.c (delete_basic_block): Use dom_info_available_p()
17830 instead of dom_computed[].
17831 (split_edge): Likewise.
17832 (create_basic_block): Likewise.
17833 (merge_blocks): Likewise.
17834 * ifcvt.c (find_if_header): Likewise.
17835 * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
17836 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
17837 * tree-ssa.c (verify_ssa): Likewise.
17838 * tree-cfg.c (tree_verify_flow_info): Likewise.
17839 (remove_edge_and_dominated_blocks): Likewise.
17840 * dominance.c (dom_computed): Make static.
17841 (calc_dfs_tree_nonrec): Change third param to a bool.
17842 (calc_dfs_tree): Change second param to a bool.
17843 (calc_idioms): Change second param to a bool. Use
17844 dom_convert_dir_to_idx.
17845 (init_dom_info): Validate dir before using.
17846 (dom_convert_dir_to_idx): New.
17847 (calculate_dominance_info): Use dom_convert_dir_to_idx. New
17848 variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
17849 (free_dominance_info): Use dom_convert_dir_to_idx.
17850 (get_immediate_dominator): Likewise.
17851 (set_immediate_dominator): Likewise.
17852 (get_dominated_by): Likewise.
17853 (redirect_immediate_dominators): Likewise.
17854 (nearest_common_denominator): Likewise.
17855 (dominated_by_p): Likewise.
17856 (bb_dom_dfs_in): Likewise.
17857 (bb_dom_dfs_out): Likewise.
17858 (recount_dominator): Likewise.
17859 (iterate_fix_dominators): Likewise.
17860 (add_to_dominance_info): Likewise.
17861 (delete_from_dominance_info): Likewise.
17862 (first_dom_son): Likewise.
17863 (next_dom_son): Likewise.
17864 (dom_info_available_p): Likewise.
17865 (dom_info_state): New.
17866 (set_dom_info_availability): New.
17867
17868 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
17869
17870 * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
17871 Expander removed.
17872 ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
17873
17874 2007-05-04 Bob Wilson <bob.wilson@acm.org>
17875
17876 * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
17877 (subdi3, subdi_carry): Delete.
17878
17879 2007-05-04 Jan Hubicka <jh@suse.cz>
17880 Richard Guenther <rguenther@suse.de>
17881
17882 * opts.c (decode_options): Do not fiddle with inlining
17883 parameters in case of optimizing for size.
17884 * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
17885 for size do nothing.
17886 (cgraph_decide_inlining_of_small_function): When optimizing for
17887 size never inline functions increasing caller size.
17888 (cgraph_early_inlining): Inline for size when optimizing for size.
17889
17890 2007-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
17891
17892 * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
17893 logical operations piecewise.
17894 (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
17895 zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
17896 subdi_sesidi_di): Delete.
17897 (add_with_carry): Produce carry in CC instead of a DREG to shorten
17898 the generated sequence. Allow three-reg add in constraints. Rewrite
17899 the rtl expression for carry to avoid zero_extend of a constant.
17900 (sub_with_carry): New pattern.
17901 (adddi3, subdi3): Change into define_expand. For subtract, generate a
17902 different sequence not involving jumps.
17903 (notbi): Now a named pattern.
17904
17905 2007-05-04 Bradley Lucier <lucier@math.purdue.edu>
17906
17907 * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
17908 Add the note about a significant loss of accuracy of some
17909 mathematical routines when these options are used.
17910
17911 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
17912
17913 * haifa-sched.c (rtx_vec_t): New typedef.
17914 (contributes_to_priority_p): Extract piece of priority () into new
17915 static function.
17916 (priority): Use the function. Add assertion.
17917 (rank_for_schedule, set_priorities): Add assertion to check that
17918 insn's priority is initialized.
17919 (clear_priorities, calc_priorities): Change signature. Make it update
17920 all relevant insns. Update all callers ('add_to_speculative_block ()'
17921 and 'create_block_check_twin ()').
17922 * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
17923 Add new field 'priority_status'.
17924 (INSN_PRIORITY_STATUS): New macro.
17925 (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
17926
17927 2007-05-04 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
17928
17929 * sched-ebb.c (debug_ebb_dependencies): New static function.
17930 (init_ready_list): Use it.
17931
17932 * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
17933 with changed signature and 'debug_rgn_dependencies ()'.
17934 (debug_rgn_dependencies): New static function.
17935 (init_ready_list): Use it.
17936
17937 * sched-int.h (debug_dependencies): Declare.
17938
17939 2007-05-04 Andreas Krebbel <krebbel1@de.ibm.com>
17940
17941 * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
17942
17943 2007-05-04 Dirk Mueller <dmueller@suse.de>
17944
17945 * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
17946
17947 2007-05-03 Jan Hubicka <jh@suse.cz>
17948
17949 * fold-const.c (fold_unary): Convert (T1)(X op Y) into
17950 ((T1)X op (T1)Y), for pointer type in more cases than before.
17951
17952 * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
17953
17954 * tree-object-size.c (plus_expr_object_size): When operand size is
17955 unknown, return unknown.
17956
17957 2007-05-03 Dirk Mueller <dmueller@suse.de>
17958
17959 * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
17960
17961 * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
17962 options.
17963
17964 * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
17965
17966 2007-05-03 Janis Johnson <janis187@us.ibm.com>
17967
17968 * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
17969
17970 2007-05-03 Joseph Myers <joseph@codesourcery.com>
17971
17972 * config/soft-fp/double.h, config/soft-fp/extended.h,
17973 config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
17974 config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
17975 config/soft-fp/op-2.h, config/soft-fp/op-4.h,
17976 config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
17977 glibc CVS.
17978
17979 2007-05-03 Ian Lance Taylor <iant@google.com>
17980
17981 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
17982 MASK_PPC_GFXOPT for 8540 or 8548.
17983
17984 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
17985
17986 * tree-vect-transform.c (vect_update_inits_of_drs): Use
17987 vect_print_dump_info() to output debug information.
17988
17989 2007-05-03 Uros Bizjak <ubizjak@gmail.com>
17990
17991 PR target/31768
17992 * config/i386/i386.c (print_operand) ['z']: Output 'w' for
17993 operands of size 2 when operand is not MEM_P.
17994
17995 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
17996
17997 PR tree-optimization/30565
17998 * lambda-code.c (perfect_nestify): Fix updating of dominators.
17999
18000 2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com>
18001
18002 * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
18003 (umulsi3_highpart): Use them.
18004 * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
18005 for final accumulator to D regisster tranfser.
18006
18007 2007-05-03 Dorit Nuzman <dorit@il.ibm.com>
18008
18009 PR tree-optimization/31699
18010 * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
18011 wrong code.
18012 (vect_enhance_data_refs_alignment): Compute peel amount using
18013 TYPE_VECTOR_SUBPARTS instead of vf.
18014 * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
18015
18016 2007-05-02 Brooks Moses <brooks.moses@codesourcery.com>
18017
18018 PR bootstrap/31776
18019 * system.h: Remove inclusion of double-int.h
18020 * tree.h: Include double-int.h
18021 * gengtype.c: Likewise
18022 * cfgloop.h: Likewise
18023 * Makefile.in: Adjust dependencies on double-int.h
18024
18025 2007-05-02 Eric Christopher <echristo@apple.com>
18026
18027 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
18028 -shared to -Zdynamiclib.
18029
18030 2007-05-02 Seongbae Park <seongbae.park@gmail.com>
18031
18032 PR c++/31663
18033 * c-common.c (strip_pointer_or_array_types): New function.
18034 * c-common.h (strip_pointer_or_array_types): New function declaration.
18035
18036 2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
18037
18038 PR tree-optimization/31771
18039 * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
18040
18041 2007-05-02 Paul Brook <paul@codesourcery.com>
18042
18043 * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
18044
18045 2007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
18046
18047 PR middle-end/29715
18048 * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
18049 transformation.
18050
18051 2007-05-02 Nick Clifton <nickc@redhat.com>
18052
18053 * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
18054
18055 2007-05-02 Richard Guenther <rguenther@suse.de>
18056
18057 PR tree-optimization/31146
18058 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
18059 argument, single_use_p. If we have a single use that is
18060 a conversion to the definition rhs type, propagate that rhs.
18061 (forward_propagate_addr_expr): Pass single_use_p argument
18062 to forward_propagate_addr_expr_1.
18063
18064 2007-05-01 H.J. Lu <hongjiu.lu@intel.com>
18065
18066 * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
18067 variable.
18068
18069 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
18070
18071 * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
18072 'AMD Family 10 core'.
18073
18074 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
18075
18076 * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
18077 and athlon64-sse3 as improved versions of k8, opteron and athlon64
18078 with SSE3 instruction set support.
18079 * doc/invoke.texi: Likewise.
18080
18081 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
18082
18083 * config/i386/i386.c (override_options): Tuning 32-byte loop
18084 alignment for amdfam10 architecture. Increasing the max loop
18085 alignment to 24 bytes.
18086
18087 2007-05-01 Kazu Hirata <kazu@codesourcery.com>
18088
18089 * config/m68k/constraints.md: New.
18090 * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
18091 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
18092 EXTRA_CONSTRAINT): Remove.
18093 * config/m68k/m68k.md: Include constraints.md.
18094 * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
18095
18096 2007-05-01 Ian Lance Taylor <iant@google.com>
18097
18098 PR tree-optimization/31739
18099 * tree-vrp.c (vrp_val_is_max): New static function.
18100 (vrp_val_is_min): New static function.
18101 (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
18102 copying the node.
18103 (set_value_range): Use vrp_val_is_{max,min}.
18104 (extract_range_from_assert): Likewise.
18105 (extract_range_from_binary_expr): Likewise.
18106 (extract_range_from_unary_expr): Likewise.
18107 (dump_value_range, vrp_meet): Likewise.
18108 (vrp_visit_phi_node): Likewise.
18109 * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
18110
18111 2007-05-01 Mark Mitchell <mark@codesourcery.com>
18112
18113 * config/i386/gmon-sol2.c (size_t): New type.
18114 (intptr_t): Likewise.
18115 (s_textsize): Declare as size_t.
18116 (sbrk): Declare.
18117 (monstartup): Use size_t for sizes.
18118 (_mcount): Save and restore registers.
18119 (internal_mcount): Pass 0 as the first argument to monstartup
18120 in 64-bit mode.
18121 (moncontrol): Convert pointer to appropriately sized integer
18122 before passing to profil.
18123
18124 2007-05-01 Joseph Myers <joseph@codesourcery.com>
18125
18126 * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
18127 __NO_FPRS__, not just if _SOFT_DOUBLE.
18128 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
18129 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
18130 also for E500 double.
18131 * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
18132 suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
18133 && !TARGET_FPRS).
18134
18135 2007-05-01 Richard Guenther <rguenther@suse.de>
18136
18137 * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
18138 is NULL.
18139
18140 2007-05-01 Joseph Myers <joseph@codesourcery.com>
18141
18142 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
18143
18144 2007-05-01 Jan Hubicka <jh@suse.cz>
18145
18146 * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
18147 invariant.
18148
18149 2007-05-01 Jan Hubicka <jh@suse.cz>
18150
18151 * tree.h (maybe_fold_offset_to_component_ref): Remove.
18152 (maybe_fold_offset_to_reference): Declare.
18153 * fold-const.c (fold_unary): Do not fold
18154 (type *)&A into &A->field_of_type_and_offset_0
18155 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
18156 size is unknown, give up.
18157 (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
18158 offsets.
18159 (maybe_fold_offset_to_reference): New.
18160 (maybe_fold_stmt_indirect): Use it.
18161 (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
18162 * gimplify.c (gimplify_conversion): Canonicalize conversions to
18163 field references.
18164 (gimplify_expr): Likewise for plus_expr.
18165
18166 2007-05-01 Zdenek Dvorak <dvorakz@suse.cz>
18167
18168 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
18169 bsi_after_labels. Always insert statements before bsi.
18170 * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
18171 * predict.c (apply_return_prediction): Check for empty blocks.
18172 * cfgexpand.c (lab_rtx_for_bb): New variable.
18173 (label_rtx_for_bb): Do not create new tree labels.
18174 (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
18175 (tree_expand_cfg): Initialize lab_rtx_for_bb.
18176 * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
18177 creating edges.
18178 (label_for_bb): Add field used.
18179 (update_eh_label, main_block_label): Mark the label used.
18180 (cleanup_dead_labels): Remove unused labels.
18181
18182 2007-05-01 Richard Guenther <rguenther@suse.de>
18183
18184 * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
18185 if it is not about to be set.
18186 (get_value_range): Do not pre-allocate equiv bitmap.
18187 (update_value_range): No need to clear equiv field.
18188 (add_equivalence): Change prototype to get bitmap pointer.
18189 Allocate bitmap here if it is not already.
18190 (extract_range_from_assert): Do not allocate bitmap here.
18191 Update callers to add_equivalence.
18192 (extract_range_from_ssa_name): Likewise.
18193 (get_vr_for_comparison): New static helper.
18194 (compare_name_with_value): Handle NULL equiv bitmap by
18195 peeling the first iteration of the comparison loop.
18196 Use get_vr_for_comparison.
18197 (compare_names): Handle NULL equiv bitmaps by using fake
18198 ones. Use get_vr_for_comparison.
18199
18200 2007-04-30 Brooks Moses <brooks.moses@codesourcery.com>
18201
18202 * double-int.c (mpz_set_double_int): Moved from
18203 tree-ssa-loop-niter.c.
18204 (mpz_get_double_int): Likewise; also, add option to wrap
18205 out-of-range integers.
18206 * double-int.h: New prototypes for above.
18207 * tree.c (get_static_type_bounds): Moved from
18208 tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
18209 TYPE_MAX_VALUE if they exist..
18210 * tree.h: New prototype for above.
18211 * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
18212 get_type_bounds calls.
18213 (mpz_set_double_int): Move to double-int.c.
18214 (get_type_bounds): Move to tree.c, rename to
18215 get_static_type_bounds.
18216 (mpz_to_double_int): Move to double-int.c, rename to
18217 mpz_get_double_int.
18218
18219 2007-04-30 Bob Wilson <bob.wilson@acm.org>
18220
18221 * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
18222 DIV0 exception can fall through to a normal return.
18223
18224 2007-04-30 Alexandre Oliva <aoliva@redhat.com>
18225
18226 PR middle-end/22156
18227 Temporarily revert:
18228 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
18229 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
18230 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
18231 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
18232 initialize align to silence bogus warning.
18233 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
18234 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
18235 all_no_warning.
18236 (struct sra_walk_fns): Remove use_all parameter from use.
18237 (sra_hash_tree): Handle BIT_FIELD_REFs.
18238 (sra_elt_hash): Don't hash bitfld blocks.
18239 (sra_elt_eq): Skip them in parent compares as well. Handle
18240 BIT_FIELD_REFs.
18241 (sra_walk_expr): Don't maintain or pass down use_all_p.
18242 (scan_use): Remove use_all parameter.
18243 (scalarize_use): Likewise. Re-expand assignment to
18244 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
18245 output, and re-scalarize after output. Don't mark anything
18246 for no warning.
18247 (scalarize_ldst): Adjust.
18248 (scalarize_walk_gimple_modify_statement): Likewise.
18249 (build_element_name_1): Handle BIT_FIELD_REFs.
18250 (instantiate_element): Don't warn for any element whose parent
18251 is used as a whole.
18252 (instantiate_missing_elements_1): Return the sra_elt.
18253 (canon_type_for_field): New.
18254 (try_instantiate_multiple_fields): New.
18255 (instantiate_missing_elemnts): Use them.
18256 (mark_no_warning): Removed.
18257 (generate_one_element_ref): Handle BIT_FIELD_REFs.
18258 (REPLDUP, sra_build_elt_assignment): New.
18259 (generate_copy_inout): Use them.
18260 (generate_element_copy): Likewise. Handle bitfld differences.
18261 (generate_element_zero): Don't recurse for blocks. Use
18262 sra_build_elt_assignment.
18263 (generate_one_element_int): Take elt instead of var. Use
18264 sra_build_elt_assignment.
18265 (generate_element_init_1): Adjust.
18266 (scalarize_use, scalarize_copy): Use REPLDUP.
18267 (scalarize_ldst): Move assert before dereference.
18268 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
18269
18270 2007-04-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
18271
18272 PR C++/31721
18273 * tree.c (reconstruct_complex_type): Reconstruct a reference
18274 correctly.
18275 Also use the same mode for the pointer as the old pointer type.
18276
18277 2007-04-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
18278
18279 * doc/trouble.texi (Interoperation): Remove note about Ultrix
18280 Fortran compiler.
18281
18282 2007-04-29 Zdenek Dvorak <dvorakz@suse.cz>
18283
18284 PR rtl-optimization/31676
18285 * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
18286 (df_refs_record): Call it.
18287
18288 2007-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
18289
18290 * rtl.def (SS_ABS): New code.
18291 * config/bfin/bfin.c (print_operand): New modifier 'v'.
18292 (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
18293 BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
18294 BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
18295 (bfin_init_builtins): Define them.
18296 (bdesc_1arg, bdesc_2arg): Add some of them here, ...
18297 (bfin_expand_builtin): ... and handle the others here.
18298 * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
18299 flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
18300 (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
18301 (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
18302 operand is only HImode.
18303
18304 2007-04-29 Steven Bosscher <steven@gcc.gnu.org>
18305
18306 * regclass.c (scan_one_insn): Remove splitting of
18307 two address insns.
18308
18309 2007-04-28 Sandra Loosemore <sandra@codesourcery.com>
18310 Nigel Stephens <nigel@mips.com>
18311
18312 * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
18313
18314 2007-04-28 Jan Hubicka <jh@suse.cz>
18315
18316 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
18317 insn_locators_alloc instead of insn_locators_initialize;
18318 call reset_block_changes.
18319 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
18320 * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
18321 * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
18322 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
18323 * config/score/score.c (th_output_mi_thunk): Likewise.
18324 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
18325 * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
18326 tolerate uninitialized locator info.
18327
18328 Re-apply:
18329 * function.c (init_function_start): Don't init line number info.
18330 (expand_function_end): Update.
18331 (reset_block_changes, record_block_change, finalize_block_changes,
18332 check_block_change, free_block_changes): Kill.
18333 * function.h (reset_block_changes, record_block_change,
18334 finalize_block_changes, check_block_change, free_block_changes):
18335 Remove prototypes.
18336 (struct function): Remove ib_boundaries_block.
18337 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
18338 Use curr_insn_locator to initialize locator.
18339 (emit_line_note): Remove.
18340 * cfgexpand.c (expand_gimple_cond_expr): Update.
18341 (construct_exit_block): Likewise.
18342 (tree_expand_cfg): Initialize/finalize locators.
18343 * expr.c (expand_expr_real): Update.
18344 * cfglayout.c (line_locators_locs, line_locators_lines,
18345 file_locators_locs, file_locators_files): Remove.
18346 (set_block_levels): Move to cfgexpand.c.
18347 (insn_locators_initialize): Remove.
18348 (pass_insn_locators_initialize): Remove.
18349 (locations_locators_locs, locations_locators_vals): New static vars.
18350 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
18351 Likewise.
18352 (insn_locators_alloc, insn_locators_finalize,
18353 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
18354 New functions.
18355 (locator_location): New.
18356 (locator_line, locator_file): Rewrite.
18357 * rtl.h (emit_line_note): Kill.
18358 (insn_locators_alloc, insn_locators_finalize,
18359 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
18360 Declare.
18361 * tree-inline.c (initialize_cfun): Do not initialize
18362 ib_boundaries_block.
18363 * passes.c (pass_insn_locators_initialize): Remove.
18364
18365 2007-04-28 Zdenek Dvorak <dvorakz@suse.cz>
18366
18367 * tree-cfg.c (move_block_to_fn): Release bb from dominance
18368 info. Update last_basic_block correctly.
18369
18370 2007-04-27 Kaz Kojima <kkojima@gcc.gnu.org>
18371
18372 PR target/31701
18373 * config/sh/sh.c (output_stack_adjust): Avoid using the frame
18374 register itself to hold the offset constant. Tell flow the use
18375 of r4 and r5 when they are used.
18376
18377 2007-04-27 Richard Guenther <rguenther@suse.de>
18378
18379 * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
18380 if we simplified anything.
18381 (tree_ssa_forward_propagate_single_use_vars): Defer overflow
18382 warnings until we did a simplification and the stmt was not
18383 marked as TREE_NO_WARNING.
18384
18385 2007-04-27 Mike Stump <mrs@apple.com>
18386
18387 * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
18388
18389 2007-04-27 Ian Lance Taylor <iant@google.com>
18390
18391 PR middle-end/31710
18392 * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
18393 TYPE_MAX_VALUE exist, convert them to the new type.
18394
18395 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
18396
18397 * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
18398 if it claims to be available.
18399 * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
18400 edge is redirected.
18401 (perform_tree_ssa_dce): Always free postdominators.
18402
18403 2007-04-27 Richard Henderson <rth@redhat.com>
18404
18405 * config/alpha/predicates.md (aligned_memory_operand): Mark
18406 as define_special_predicate.
18407 (unaligned_memory_operand, normal_memory_operand): Likewise.
18408 (reg_or_unaligned_mem_operand): Remove.
18409 (any_memory_operand): Match the documentation and check for
18410 non-renumbered pseudos during reload.
18411 * config/alpha/alpha.c (alpha_secondary_reload): Rename from
18412 alpha_secondary_reload_class, update to new interface, make static.
18413 Handle CQImode like HImode. Remove FP subreg check.
18414 (alpha_expand_mov): Use replace_equiv_address.
18415 (alpha_expand_mov_nobwx): Use any_memory_operand.
18416 (TARGET_SECONDARY_RELOAD): New.
18417 * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
18418 (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
18419 * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
18420 * config/alpha/alpha.md: ... here.
18421 (RELOAD12, reloadmode): New.
18422 (movcqi): New.
18423 (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
18424 Don't handle the aligned case here.
18425 (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
18426 (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
18427 reload_inhi_help. Don't expect a scratch register.
18428 (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
18429 reload_outhi_help.
18430 * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
18431
18432 2007-04-27 Richard Guenther <rguenther@suse.de>
18433
18434 * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
18435
18436 2007-04-27 Richard Guenther <rguenther@suse.de>
18437
18438 PR tree-optimization/30965
18439 PR tree-optimization/30978
18440 * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
18441 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
18442 (find_equivalent_equality_comparison): Likewise.
18443 (simplify_cond): Likewise.
18444 (get_prop_source_stmt): New helper.
18445 (get_prop_dest_stmt): Likewise.
18446 (can_propagate_from): Likewise.
18447 (remove_prop_source_from_use): Likewise.
18448 (combine_cond_expr_cond): Likewise.
18449 (forward_propagate_comparison): New function.
18450 (forward_propagate_into_cond): Rewrite to use fold for
18451 tree combining.
18452 (tree_ssa_forward_propagate_single_use_vars): Call
18453 forward_propagate_comparison to propagate comparisons.
18454
18455 2007-04-27 Richard Guenther <rguenther@suse.de>
18456
18457 PR tree-optimization/31715
18458 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
18459 sure to do computation on the offset in an appropriate
18460 signed type.
18461
18462 2007-04-27 Richard Sandiford <richard@codesourcery.com>
18463
18464 * reload.h (elimination_target_reg_p): Declare.
18465 * reload.c (find_reloads): Don't apply the reg_rtx move
18466 optimization if the SET_DEST satisfies elimination_target_reg_p.
18467 * reload1.c (elimination_target_reg_p): New function.
18468 (gen_reload): In the move/add2 fallback, make sure that op0
18469 does not overlap the destination register.
18470
18471 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
18472
18473 * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
18474 transform only GIMPLE_MODIFY_STMTs.
18475 * tree-complex.c (expand_complex_operations_1): Ditto.
18476 (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
18477 * tree-ssa-loop-manip.c (build_if_stmt): Removed.
18478 (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
18479 branches.
18480 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
18481 tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
18482 * omp-low.c (expand_parallel_call, expand_omp_for_generic,
18483 expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
18484 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
18485 slpeel_add_loop_guard): Ditto.
18486 * tree-mudflap.c (mf_build_check_statement_for): Ditto.
18487 * lambda-code.c (perfect_nestify): Ditto.
18488 * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
18489 before the first statement.
18490 * tree-optimize.c (execute_free_datastructures): Fix comments.
18491 (execute_free_cfg_annotations): Do not call disband_implicit_edges.
18492 * tree-flow.h (disband_implicit_edges): Declaration removed.
18493 * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
18494 branches.
18495 (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
18496 COND_EXPRs without gotos.
18497 (disband_implicit_edges, has_label_p): Removed.
18498 (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
18499 (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
18500 branches.
18501 * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
18502 side effects.
18503 * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
18504 also for COND_EXPRs.
18505 * cfgexpand.c (label_rtx_for_bb): New function.
18506 (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
18507 Use label_rtx_for_bb to find the labels.
18508 (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
18509 last block. Detect fallthru edges.
18510
18511 2007-04-26 Ian Lance Taylor <iant@google.com>
18512
18513 PR target/28675
18514 * reload.c (find_reloads_subreg_address): If the address was valid
18515 in the original mode but not in the new mode, reload the whole
18516 address.
18517
18518 2007-04-27 Zdenek Dvorak <dvorakz@suse.cz>
18519
18520 * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
18521 (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
18522 (cleanup_control_expr_graph): Do not invalidate dominance info.
18523 Record altered blocks.
18524 (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
18525 (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
18526 cleanup_tree_cfg_bb): New functions.
18527 (remove_forwarder_block): Do not maintain the worklist of blocks.
18528 Record altered blocks.
18529 (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
18530 not over whole cfg.
18531 (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1. Only call
18532 delete_unreachable_blocks if dominators are not available.
18533 * tree-inline.c (optimize_inline_calls): Free dominance information
18534 earlier.
18535 * tree-flow.h (remove_edge_and_dominated_blocks,
18536 cfgcleanup_altered_bbs): Altered.
18537 * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
18538 blocks.
18539 (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
18540 functions.
18541 (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
18542 do not invalidate dominators.
18543
18544 2007-04-26 Anatoly Sokolov <aesok@post.ru>
18545
18546 * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
18547 ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
18548 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
18549 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
18550
18551 2007-04-26 Steve Ellcey <sje@cup.hp.com>
18552
18553 * config/ia64/ia64.md (ip_value): Fix itanium_class attribute.
18554
18555 2007-04-26 Richard Guenther <rguenther@suse.de>
18556
18557 PR tree-optimization/31703
18558 * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
18559 the right type for the target of the bittest.
18560
18561 2007-04-26 Richard Sandiford <richard@codesourcery.com>
18562
18563 * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
18564 ix86_sol10_return_in_memory.
18565
18566 2007-04-26 Richard Sandiford <richard@codesourcery.com>
18567
18568 * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
18569 variables.
18570
18571 2007-04-26 Jakub Jelinek <jakub@redhat.com>
18572
18573 PR c++/31598
18574 * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
18575
18576 PR tree-optimization/30558
18577 * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
18578 clear this_state.prev_try.
18579
18580 2007-04-26 Richard Sandiford <richard@codesourcery.com>
18581 Mark Mitchell <mark@codesourcery.com>
18582
18583 * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
18584 * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
18585 * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
18586
18587 2007-04-26 Richard Sandiford <richard@codesourcery.com>
18588
18589 PR driver/31107
18590 * doc/invoke.texi (%:print-asm-header): Document.
18591 * gcc.c (asm_options): Use %:print-asm-header() for --target-help
18592 and -ftarget-help.
18593 (static_spec_functions): Add print-asm-header.
18594 (main): Print a banner before the --target-help linker options.
18595 (print_asm_header_spec_function): New function.
18596
18597 2007-04-25 Kaz Kojima <kkojima@gcc.gnu.org>
18598
18599 PR target/31403
18600 * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
18601 (movsf_ie): Likewise.
18602
18603 2007-04-25 Paolo Carlini <pcarlini@suse.de>
18604
18605 * doc/extend.texi ([Type Traits]): Adjust per N2255.
18606
18607 2007-04-25 Bob Wilson <bob.wilson@acm.org>
18608
18609 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
18610 exception for divide-by-zero.
18611 (__umodsi3, __modsi3): Likewise.
18612
18613 2007-04-25 Dirk Mueller <dmueller@suse.de>
18614
18615 * c-typeck.c (build_compound_expr): Annotate warning()
18616 call with OPT_Wunused_value.
18617 * tree-ssa.c (warn_uninit): Annotate warning with
18618 OPT_Wunintialized.
18619 * c-common.c (handle_sentinel_attribute): Annotate warning
18620 call with OPT_Wattributes.
18621
18622 2007-04-25 Thiemo Seufer <ths@mips.com>
18623
18624 * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
18625 (mips16): Fix typo.
18626 * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
18627 on to the assembler. Improve handling of -mno-mips16. Add handling
18628 of -mno-mips3d, -mno-dsp, -mno-dspr2.
18629 * doc/invoke.texi (MIPS Options): Whitespace cleanup. Fix wrong use
18630 of @itemx. Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
18631 -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
18632
18633 2007-04-25 Danny Smith <dannysmith.users.sourceforge.net>
18634
18635 PR target/31680
18636 * config/i386/winnt.c (i386_pe_file_end): Strip only
18637 USER_LABEL_PREFIX when writing export name.
18638
18639 2007-04-25 Richard Sandiford <richard@codesourcery.com>
18640
18641 * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include
18642 sh/elf.h, vx-common.h and vxworks.h.
18643 * config/sh/sh.h: Include config/vxworks-dummy.h.
18644 (SUBTARGET_OVERRIDE_OPTIONS): Define.
18645 (OVERRIDE_OPTIONS): Use it.
18646 * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
18647 (vxworks_picreg): New pattern.
18648 * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
18649 VXWORKS_OS_CPP_BUILTINS.
18650 (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
18651 to their VXWORKS_* equivalents.
18652 (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
18653 (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
18654 * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
18655 (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
18656 * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
18657 -mrtp/-fPIC multilibs.
18658 (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
18659 (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
18660 (MULTILIB_OSDIRNAMES): Delete.
18661
18662 2007-04-25 Anatoly Sokolov <aesok@post.ru>
18663
18664 PR target/18989
18665 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
18666
18667 2007-04-24 Brooks Moses <brooks.moses@codesourcery.com>
18668
18669 * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
18670 rounding mode to be specified by the caller.
18671 (real_to_mpfr) Likewise.
18672 * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
18673 include new arguments.
18674 * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
18675
18676 2007-04-24 Ian Lance Taylor <iant@google.com>
18677
18678 PR tree-optimization/31605
18679 * tree-vrp.c (set_value_range): Check that min and max are not
18680 both overflow infinities.
18681 (set_value_range_to_value): New static function.
18682 (extract_range_from_binary_expr): Call set_value_range_to_value.
18683 (extract_range_from_cond_expr): Likewise.
18684 (extract_range_from_expr): Likewise.
18685 (extract_range_from_unary_expr): Likewise. Don't create a range
18686 which overflows on both sides.
18687 (vrp_meet): Check for a useless range.
18688 (vrp_visit_phi_node): If we see a constant which looks like an
18689 overflow infinity, turn off the TREE_OVERFLOW flag.
18690
18691 2007-04-24 Ian Lance Taylor <iant@google.com>
18692
18693 * flow.c (elim_reg_cond): Handle a comparison of a subreg.
18694
18695 2007-04-24 Simon Martin <simartin@users.sourceforge.net>
18696
18697 PR diagnostic/25923
18698 * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
18699 diagnostic message is being built.
18700 * tree-pretty-print.c (dump_generic_node): Only write the
18701 formatted text into BUFFER's stream if we are not building a
18702 diagnostic message.
18703 * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
18704 dump_generic_node.
18705 * Makefile.in (toplev.o): Depend on tree-pass.h.
18706
18707 2007-04-24 Ian Lance Taylor <iant@google.com>
18708
18709 PR tree-optimization/31602
18710 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
18711 conditionals in the copied loop header.
18712 * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
18713 warnings if TREE_NO_WARNING is set.
18714 * doc/invoke.texi (Warning Options): Clarify that
18715 -Wstrict-overflow does not warn about loops.
18716
18717 2007-04-24 Janis Johnson <janis187@us.ibm.com>
18718
18719 * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
18720 expand on the comment about _Decimal128 arguments and check the
18721 integer result of the modulus operation; for 64-bit ELF ABI, ensure
18722 that _Decimal128 argument uses even/odd register pair.
18723 (function_arg): Ditto.
18724
18725 2007-04-24 Hui-May Chang <hm.chang@apple.com>
18726
18727 * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
18728 instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
18729
18730 2007-04-24 Richard Guenther <rguenther@suse.de>
18731 Olga Golovanevsky <olga@il.ibm.com>
18732
18733 * fold-const.c (multiple_of_p): Check for bottom
18734 to be zero.
18735
18736 2007-04-24 Richard Henderson <rth@redhat.com>
18737
18738 * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
18739 IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE.
18740 * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
18741 looking for non-zero bits shifted out. Avoid a recursive call
18742 when constructing the scalar.
18743 (__floatundisf): Likewise.
18744
18745 2007-04-24 Nathan Froyd <froydnj@codesourcery.com>
18746
18747 * dwarf2out.c (field_byte_offset): Move the existing logic
18748 under the control of PCC_BITFIELD_TYPE_MATTERS and just use
18749 the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
18750
18751 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
18752
18753 PR target/31641
18754 * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
18755 length argument of 0 for memset.
18756 (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
18757 unsigned shift instead of the signed variant.
18758
18759 2007-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
18760
18761 * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
18762 "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
18763 "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
18764 "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
18765 "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
18766 "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
18767 "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
18768 "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
18769 "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
18770 ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
18771 "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
18772 "mul<mode>3", "div<mode>3"): Insn definitions added.
18773 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
18774 "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
18775 to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
18776 ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
18777 "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
18778 "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
18779 ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
18780 * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
18781 TARGET_FLOAT_FORMAT): Macro definitions removed.
18782 (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
18783 * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
18784 z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
18785 (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
18786 (s390_gen_rtx_const_DI): Function removed.
18787 * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
18788
18789 2007-04-24 Richard Sandiford <richard@codesourcery.com>
18790
18791 * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
18792 over an external ffs function.
18793
18794 2007-04-24 Chao-ying Fu <fu@mips.com>
18795 Richard Sandiford <richard@nildram.co.uk>
18796
18797 * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
18798 * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
18799 (smadd_widen_optab, umadd_widen_optab): Define.
18800 * optabs.c (init_optabs): Initialize smadd_widen_optab and
18801 umadd_widen_optab.
18802 * genopinit.c (optabs): Fill in smadd_widen_optab and
18803 umadd_widen_optab.
18804 * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
18805 and umadd_widen_optab to implement multiply-add sequences.
18806 * config/mips/mips.md (*<su>mul_acc_di): Rename to...
18807 (<u>maddsidi4): ...this. Extend condition to include
18808 GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint
18809 of operand 0 to "ka" and use the three-operand form of madd<u>
18810 for TARGET_DSPR2.
18811 * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
18812 to define_expands.
18813 * config/mips/constraints.md (ka): New register constraint.
18814
18815 2007-04-24 Jan Hubicka <j@suse.cz>
18816
18817 Revert:
18818
18819 2007-04-23 Jan Hubicka <jh@suse.cz>
18820 * function.c (init_function_start): Don't init line number info.
18821 (expand_function_end): Update.
18822 (reset_block_changes, record_block_change, finalize_block_changes,
18823 check_block_change, free_block_changes): Kill.
18824 * function.h (reset_block_changes, record_block_change,
18825 finalize_block_changes, check_block_change, free_block_changes):
18826 Remove prototypes.
18827 (struct function): Remove ib_boundaries_block.
18828 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
18829 Use curr_insn_locator to initialize locator.
18830 (emit_line_note): Remove.
18831 * cfgexpand.c (expand_gimple_cond_expr): Update.
18832 (construct_exit_block): Likewise.
18833 (tree_expand_cfg): Initialize/finalize locators.
18834 * expr.c (expand_expr_real): Update.
18835 * cfglayout.c (line_locators_locs, line_locators_lines,
18836 file_locators_locs, file_locators_files): Remove.
18837 (set_block_levels): Move to cfgexpand.c.
18838 (insn_locators_initialize): Remove.
18839 (pass_insn_locators_initialize): Remove.
18840 (locations_locators_locs, locations_locators_vals): New static vars.
18841 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
18842 Likewise.
18843 (insn_locators_alloc, insn_locators_finalize,
18844 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
18845 New functions.
18846 (locator_location): New.
18847 (locator_line, locator_file): Rewrite.
18848 * rtl.h (emit_line_note): Kill.
18849 (insn_locators_alloc, insn_locators_finalize,
18850 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
18851 Declare.
18852 * tree-inline.c (initialize_cfun): Do not initialize
18853 ib_boundaries_block.
18854 * passes.c (pass_insn_locators_initialize): Remove.
18855
18856 2007-04-24 Daniel Franke <franke.daniel@gmail.com>
18857
18858 * doc/invoke.texi: Removed leading '-' from option index entries.
18859
18860 2007-04-23 Zdenek Dvorak <dvorakz@suse.cz>
18861
18862 * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
18863 Use phi_nodes_ptr.
18864 (create_phi_node): Use set_phi_nodes.
18865 * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
18866 * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
18867 (combine_blocks): Use bb_stmt_list and set_bb_stmt_list.
18868 * tree-flow-inline.h (phi_nodes, set_phi_nodes,
18869 (bsi_start, bsi_last): Use bb_stmt_list.
18870 (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
18871 * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
18872 Traverse the statements using tsi iterator.
18873 * basic-block.h (struct basic_block_def): Fields stmt_list
18874 and phi_nodes moved to ...
18875 (struct tree_bb_info): ... new structure.
18876 * tree-cfg.c (create_bb): Allocate il.tree. Use set_bb_stmt_list.
18877 (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
18878 (remove_bb): Handle blocks with NULL stmt list. Clear il.tree field.
18879 (tree_verify_flow_info): Verify that il.tree is not set for
18880 entry and exit block.
18881 (tree_split_block): Use set_bb_stmt_list.
18882
18883 2007-04-23 Mike Stump <mrs@apple.com>
18884
18885 * config/i386/i386.c (ix86_tune_features
18886 [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
18887 nocona and core2.
18888
18889 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
18890
18891 * config/i386/i386.md (prefix_extra): New attribute.
18892 (length): Add prefix_extra.
18893
18894 * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
18895 (sse2_movntv2di): Likewise.
18896 (sse2_cvtps2dq): Likewise.
18897 (sse2_cvtpd2pi): Likewise.
18898 (sse2_cvttpd2pi): Likewise.
18899 (*sse2_cvtpd2ps): Likewise.
18900 (*add<mode>3): Likewise.
18901 (sse2_ssadd<mode>3): Likewise.
18902 (sse2_usadd<mode>3): Likewise.
18903 (*sub<mode>3): Likewise.
18904 (sse2_sssub<mode>3): Likewise.
18905 (sse2_ussub<mode>3): Likewise.
18906 (*mulv8hi3): Likewise.
18907 (*smulv8hi3_highpart): Likewise.
18908 (*umulv8hi3_highpart): Likewise.
18909 (sse2_umulv2siv2di3): Likewise.
18910 (sse2_pmaddwd): Likewise.
18911 (ashr<mode>3): Likewise.
18912 (lshr<mode>3): Likewise.
18913 (ashl<mode>3): Likewise.
18914 (sse2_ashlti3): Likewise.
18915 (sse2_lshrti3): Likewise.
18916 (*umaxv16qi3): Likewise.
18917 (*smaxv8hi3): Likewise.
18918 (*uminv16qi3): Likewise.
18919 (*sminv8hi3): Likewise.
18920 (sse2_eq<mode>3): Likewise.
18921 (sse2_gt<mode>3): Likewise.
18922 (*and<mode>3): Likewise.
18923 (sse2_nand<mode>3): Likewise.
18924 (*ior<mode>3): Likewise.
18925 (*xor<mode>3): Likewise.
18926 (sse2_packsswb): Likewise.
18927 (sse2_packssdw): Likewise.
18928 (sse2_packuswb): Likewise.
18929 (sse2_punpckhbw): Likewise.
18930 (sse2_punpcklbw): Likewise.
18931 (sse2_punpckhwd): Likewise.
18932 (sse2_punpcklwd): Likewise.
18933 (sse2_punpckhdq): Likewise.
18934 (sse2_punpckldq): Likewise.
18935 (sse2_punpckhqdq): Likewise.
18936 (sse2_punpcklqdq): Likewise.
18937 (*sse2_pinsrw): Likewise.
18938 (*sse2_pextrw): Likewise.
18939 (sse2_pshufd_1): Likewise.
18940 (sse2_uavgv16qi3): Likewise.
18941 (sse2_uavgv8hi3): Likewise.
18942 (sse2_psadbw): Likewise.
18943 (sse2_pmovmskb): Likewise.
18944 (*sse2_maskmovdqu): Likewise.
18945 (*sse2_maskmovdqu_rex64): Likewise.
18946 (sse4a_extrqi): Likewise.
18947 (sse4a_extrq): Likewise.
18948 (sse3_lddqu): Set prefix_rep.
18949 (sse3_addsubv4sf3): Likewise.
18950 (sse3_haddv4sf3): Likewise.
18951 (sse3_hsubv4sf3): Likewise.
18952 (sse_cvtss2si): Likewise.
18953 (sse_cvtss2si_2): Likewise.
18954 (sse_cvtss2siq): Likewise.
18955 (sse_cvtss2siq_2): Likewise.
18956 (sse_cvttss2si): Likewise.
18957 (sse_cvttss2siq): Likewise.
18958 (sse2_cvttps2dq): Likewise.
18959 (sse3_movshdup): Likewise.
18960 (sse3_movsldup): Likewise.
18961 (sse2_cvtsd2si): Likewise.
18962 (sse2_cvtsd2si_2): Likewise.
18963 (sse2_cvtsd2siq): Likewise.
18964 (sse2_cvtsd2siq_2): Likewise.
18965 (sse2_cvttsd2si): Likewise.
18966 (sse2_cvttsd2siq): Likewise.
18967 (*sse2_cvtpd2dq): Likewise.
18968 (*sse2_cvttpd2dq): Likewise.
18969 (sse2_pshuflw_1): Likewise.
18970 (sse2_pshufhw_1): Likewise.
18971 (sse4a_insertqi): Likewise.
18972 (sse4a_insertq): Likewise.
18973 (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
18974 (ssse3_phadddv4si3): Likewise.
18975 (ssse3_phaddswv8hi3): Likewise.
18976 (ssse3_phsubwv8hi3): Likewise.
18977 (ssse3_phsubdv4si3): Likewise.
18978 (ssse3_phsubswv8hi3): Likewise.
18979 (ssse3_pmaddubswv8hi3): Likewise.
18980 (ssse3_pmulhrswv8hi3): Likewise.
18981 (ssse3_pshufbv16qi3): Likewise.
18982 (ssse3_psign<mode>3): Likewise.
18983 (ssse3_palignrti): Likewise.
18984 (abs<mode>2): Likewise.
18985 (ssse3_phaddwv4hi3): Set prefix_extra.
18986 (ssse3_phadddv2si3): Likewise.
18987 (ssse3_phaddswv4hi3): Likewise.
18988 (ssse3_phsubwv4hi3): Likewise.
18989 (ssse3_phsubdv2si3): Likewise.
18990 (ssse3_phsubswv4hi3): Likewise.
18991 (ssse3_pmaddubswv4hi3): Likewise.
18992 (ssse3_pmulhrswv4hi3): Likewise.
18993 (ssse3_pshufbv8qi3): Likewise.
18994 (ssse3_psign<mode>3): Likewise.
18995 (ssse3_palignrdi): Likewise.
18996 (abs<mode>2): Likewise.
18997 (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
18998 (*vec_dupv2df): Set mode to V2DF instead of V4SF.
18999 (sse2_pmovmskb): Set mode to SI instead of V2DF.
19000
19001 2007-04-23 Nick Clifton <nickc@redhat.com>
19002
19003 * params.def: Fix formatting of emacs local variables.
19004
19005 2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
19006
19007 * config/i386/sse.md (sse2_stored): Don't split to inter-unit
19008 move if inter-unit move isn't allowed.
19009 Don't split moving the first element of V2DI to DI to inter-unit
19010 move if inter-unit move isn't allowed.
19011
19012 2007-04-23 Richard Guenther <rguenther@suse.de>
19013
19014 * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
19015 and CDI_POST_DOMINATORS separately.
19016
19017 2007-04-23 Nick Clifton <nickc@redhat.com>
19018
19019 * c.opt (Wformat-contains-nul): Add warning attribute.
19020
19021 2007-04-23 Jan Hubicka <jh@suse.cz>
19022
19023 * function.c (init_function_start): Don't init line number info.
19024 (expand_function_end): Update.
19025 (reset_block_changes, record_block_change, finalize_block_changes,
19026 check_block_change, free_block_changes): Kill.
19027 * function.h (reset_block_changes, record_block_change,
19028 finalize_block_changes, check_block_change, free_block_changes):
19029 Remove prototypes.
19030 (struct function): Remove ib_boundaries_block.
19031 * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
19032 Use curr_insn_locator to initialize locator.
19033 (emit_line_note): Remove.
19034 * cfgexpand.c (expand_gimple_cond_expr): Update.
19035 (construct_exit_block): Likewise.
19036 (tree_expand_cfg): Initialize/finalize locators.
19037 * expr.c (expand_expr_real): Update.
19038 * cfglayout.c (line_locators_locs, line_locators_lines,
19039 file_locators_locs, file_locators_files): Remove.
19040 (set_block_levels): Move to cfgexpand.c.
19041 (insn_locators_initialize): Remove.
19042 (pass_insn_locators_initialize): Remove.
19043 (locations_locators_locs, locations_locators_vals): New static vars.
19044 (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
19045 Likewise.
19046 (insn_locators_alloc, insn_locators_finalize,
19047 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
19048 New functions.
19049 (locator_location): New.
19050 (locator_line, locator_file): Rewrite.
19051 * rtl.h (emit_line_note): Kill.
19052 (insn_locators_alloc, insn_locators_finalize,
19053 set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
19054 Declare.
19055 * tree-inline.c (initialize_cfun): Do not initialize
19056 ib_boundaries_block.
19057 * passes.c (pass_insn_locators_initialize): Remove.
19058
19059 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
19060
19061 PR middle-end/31448
19062 * expr.c (reduce_to_bit_field_precision): Handle
19063 CONST_INT rtx's.
19064
19065 2007-04-22 Uros Bizjak <ubizjak@gmail.com>
19066
19067 PR tree-optimization/24659
19068 * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
19069 OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
19070 (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
19071 * genopinit.c (optabs): Rename vec_pack_mod_optab
19072 to vec_pack_trunc_optab.
19073 * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
19074 early for scalar floating point operands for NOP_EXPR.
19075 (vectorizable_type_promotion): Ditto.
19076 * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
19077 vec_pack_trunc_optab.
19078 (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
19079
19080 * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
19081 * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
19082 Rename from VEC_PACK_MOD_EXPR.
19083 (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
19084 * expr.c (expand_expr_real_1): Ditto.
19085 * tree-inline.c (estimate_num_insns_1): Ditto.
19086 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
19087
19088 * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
19089 (vec_unpacks_lo_v4sf): Ditto.
19090 (vec_pack_trunc_v2df): Ditto.
19091 (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
19092 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
19093 (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
19094
19095 * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
19096 vec_pack_mod_v8hi.
19097 (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
19098
19099 * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
19100 Rename from VEC_PACK_MOD_EXPR. This expression also represent
19101 packing of floating point operands.
19102 [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
19103 represent unpacking of floating point operands.
19104 * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
19105 [vec_unpacks_hi]: Ditto.
19106 [vec_unpacks_lo]: Ditto.
19107
19108 2007-04-22 Jan Hubicka <jh@suse.cz>
19109
19110 * final.c (rest_of_handle_final): Call
19111 targetm.asm_out.constructor/targetm.asm_out.destructor
19112 * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
19113 proper priority via decl_*_priority_insert.
19114 * c-common.c (c_expand_body): Likewise.
19115
19116 2007-04-22 Richard Guenther <rguenther@suse.de>
19117
19118 PR tree-optimization/29789
19119 * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
19120 (rewrite_reciprocal): New helper split out from
19121 determine_invariantness_stmt.
19122 (rewrite_bittest): Likewise.
19123 (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
19124 A & (1 << B) if (1 << B) is loop invariant but (A >> B)
19125 is not.
19126
19127 2007-04-22 Revital Eres <eres@il.ibm.com>
19128
19129 * loop-unroll.c (var_to_expand): New field to support also
19130 insns of the form x = something + x.
19131 (analyze_insn_to_expand_var): Use it.
19132 (expand_var_during_unrolling): Likewise.
19133
19134 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
19135
19136 * predict.c: Include pointer-set.h.
19137 (bb_predictions): New variable.
19138 (tree_predicted_by_p, tree_predict_edge,
19139 remove_predictions_associated_with_edge): Use bb_predictions map
19140 instead of bb->predictions.
19141 (clear_bb_predictions, assert_is_empty): New functions.
19142 (combine_predictions_for_bb): Use bb_predictions map. Call
19143 clear_bb_predictions.
19144 (tree_estimate_probability): Create and free bb_predictions map.
19145 * Makefile.in (predict.o): Add pointer-set.h dependency.
19146 * basic-block.h (struct basic_block_def): Remove predictions
19147 field.
19148 * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
19149
19150 2007-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
19151
19152 PR target/31480
19153 * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
19154 is null.
19155
19156 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
19157
19158 * timevar.c (timevar_print): Change reference of --disable-checking to
19159 --enable-checking=release. Also warn if assert checking is disabled.
19160
19161 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
19162
19163 PR C/30265
19164 * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
19165 decl as addressable if the compound literal was marked as
19166 addressable.
19167 Mark the decl as a gimple register if it is a complex or
19168 vector decl and does not live in memory.
19169
19170 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
19171
19172 * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
19173 (GENERIC_NEXT): New function macro.
19174 (PHI_CHAIN): Use phi_node's new chain variable.
19175 (tree_phi_node): Change tree_common to tree_base
19176 and add the chain field.
19177 * tree-phinodes.c (make_phi_node): Don't set
19178 TREE_TYPE on the new node.
19179 * c-decl.c (lang_tree_node): Use GENERIC_NEXT
19180 instead of checking GIMPLE_TUPLE_P in chain_next.
19181 * tree-vect-transform.c
19182 (get_initial_def_for_induction): Look at
19183 PHI_RESULT_TREE for the type of the phi node.
19184 (update_vuses_to_preheader): Use PHI_CHAIN
19185 instead of TREE_CHAIN on the phi node.
19186 * tree-ssa-structalias.c (compute_points_to_sets):
19187 Likewise.
19188 (ipa_pta_execute): Likewise.
19189
19190 2007-04-21 Richard Guenther <rguenther@suse.de>
19191
19192 PR middle-end/31136
19193 * fold-const.c (fold_unary): Call fold_convert_const on the
19194 original tree.
19195
19196 2007-04-21 Alexandre Oliva <aoliva@redhat.com>
19197
19198 * gcse.c (store_killed_in_insn): Handle PARALLELs.
19199 (store_killed_in_pat): New.
19200
19201 2007-04-20 Richard Henderson <rth@redhat.com>
19202
19203 PR target/31628
19204 * config/i386/i386.c (type_has_variadic_args_p): Look for any
19205 TREE_LIST with a void_type_node value, not void_list_node exactly.
19206
19207 2007-04-21 Douglas Gregor <doug.gregor@gmail.com>
19208
19209 * doc/standards.texi: Re-arrange into language-specific
19210 subsections. Add a C++ section, documenting which standards we
19211 support.
19212
19213 2007-04-21 Zdenek Dvorak <dvorakz@suse.cz>
19214
19215 * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
19216 * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
19217
19218 2007-04-20 Daniel Jacobowitz <dan@codesourcery.com>
19219
19220 * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
19221 ecrti.o and crtbegin.o.
19222 (LIB_DEFAULT_SPEC): Include -lc.
19223 (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
19224
19225 2007-04-20 Richard Henderson <rth@redhat.com>
19226
19227 PR target/28623
19228 * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
19229 argument; update all callers.
19230 (get_unaligned_offset): New.
19231 * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
19232 get_unaligned_address, just pass on the address directly.
19233 (unaligned_extendqidi): Use gen_lowpart instead of open-coding
19234 the subreg in the helper patterns.
19235 (unaligned_extendqidi_le): Use get_unaligned_offset.
19236 (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
19237 (unaligned_extendhidi_be): Likewise.
19238 (unaligned_extendhidi): Tidy.
19239 * config/alpha/alpha-protos.h: Update.
19240
19241 2007-04-20 Richard Henderson <rth@redhat.com>
19242
19243 * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
19244 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
19245 * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
19246 * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
19247 * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
19248 (CPP_SPEC): Don't include %(cpp_subtarget).
19249 * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
19250 (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
19251 * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
19252
19253 2007-04-20 Jakub Jelinek <jakub@redhat.com>
19254
19255 * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
19256 for __builtin_ia32_cmpordss.
19257
19258 PR tree-optimization/31632
19259 * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
19260 and arg1 for optimizations of comparison against min/max values.
19261 Fold arg0 to arg1's type for optimizations of comparison against
19262 min+1 and max-1 values.
19263
19264 2007-04-19 Bernd Schmidt <bernd.schmidt@analog.com>
19265
19266 * reload.c (combine_reloads): When trying to use a dying register,
19267 check whether it's uninitialized and don't use if so.
19268
19269 2007-04-19 Brooks Moses <brooks.moses@codesourcery.com>
19270
19271 * fold-const.c: Remove prototypes for native_encode_expr and
19272 native_interpret_expr.
19273 (native_encode_expr): Make non-static.
19274 (native_interpret_expr): Likewise.
19275 * tree.h: Add prototypes for the above.
19276
19277 2007-04-19 Joseph Myers <joseph@codesourcery.com>
19278
19279 * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
19280 *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
19281 *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
19282 spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
19283 tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
19284 Add length attributes.
19285
19286 2007-04-19 Janis Johnson <janis187@us.ibm.com>
19287
19288 * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
19289 not that it is 1.
19290
19291 * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
19292 __STDC_WANT_DEC_FP__.
19293
19294 2007-04-19 Joseph Myers <joseph@codesourcery.com>
19295
19296 * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
19297 for long double compatibility.
19298 * configure: Regenerate.
19299
19300 2007-04-19 Eric Botcazou <ebotcazou@libertysurf.fr>
19301
19302 PR rtl-optimization/29841
19303 * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
19304 trap instructions.
19305 * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
19306 that may cause control flow transfer from being moved.
19307
19308 2007-04-18 Jan Hubicka <jh@suse.cz>
19309
19310 * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
19311 types.
19312
19313 2007-04-18 Eric Christopher <echristo@apple.com>
19314
19315 * config/rs6000/darwin.md (load_macho_picbase): Use link register
19316 only. Update operands.
19317 * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
19318 * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
19319 link register to pic register.
19320
19321 2007-04-18 Dirk Mueller <dmueller@suse.de>
19322
19323 PR diagnostic/31227
19324 * tree-vrp.c (search_for_addr_array): New.
19325 (check_array_bounds): Suppress warning about
19326 address taken of array refs if its not de-referenced.
19327
19328 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
19329
19330 * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
19331 * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
19332
19333 * tree-vectorizer.h (NITERS_KNOWN_P): New.
19334 * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
19335 instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
19336
19337 * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
19338 dump print.
19339 (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a
19340 print message.
19341 (vect_analyze_scalar_cycles): Fix indentation.
19342 (vect_enhance_data_refs_alignment): Fix check in case of peeling.
19343 (vect_mark_relevant): Include phis in relevance analysis.
19344
19345 * tree-vect-transform.c (vect_transform_loop): Add an assert.
19346
19347 2007-04-18 Anatoly Sokolov <aesok@post.ru>
19348
19349 * config/avr/avr.c (ptrreg_to_str): Replace error() with
19350 output_operand_lossage().
19351
19352 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
19353
19354 * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
19355 the unused code for reduction without adjust-in-epilog to simplify the
19356 function.
19357
19358 2007-04-18 Wolfgang Gellerich <gellerich@de.ibm.com>
19359
19360 * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
19361 (S390_TDC_NEGATIVE_ZERO): New constant.
19362 (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
19363 (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
19364 (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
19365 (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
19366 (S390_TDC_POSITIVE_INFINITY): New constant.
19367 (S390_TDC_NEGATIVE_INFINITY): New constant.
19368 (S390_TDC_POSITIVE_QUIET_NAN): New constant.
19369 (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
19370 (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
19371 (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
19372 (S390_TDC_INFINITY): New constant.
19373 * config/s390/s390.c (s390_canonicalize_comparison): Renamed
19374 UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
19375 optimization for UNSPEC_CCZ_TO_INT.
19376 * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
19377 ("*ccz_to_int"): New insn.
19378 ("isinf<mode>2"): New insn.
19379 (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
19380 (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
19381 (UNSPEC_CCZ_TO_INT): New constant.
19382
19383 2007-04-18 Richard Guenther <rguenther@suse.de>
19384
19385 PR tree-optimization/19431
19386 PR tree-optimization/21463
19387 * tree-pass.h (pass_phiprop): Declare.
19388 * passes.c (init_optimization_passes): New phiprop pass.
19389 * tree-ssa-forwprop.c (struct phiprop_d): New structure.
19390 (phivn_valid_p): New helper function.
19391 (phiprop_insert_phi): Likewise.
19392 (propagate_with_phi): Likewise.
19393 (tree_ssa_phiprop): New propagator propagating loads
19394 through phi nodes if profitable.
19395
19396 2007-04-18 Dorit Nuzman <dorit@il.ibm.com>
19397
19398 * tree-vect-analyze.c (process_use): New function.
19399 (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
19400 Check phis in all bbs.
19401 * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
19402 assert.
19403
19404 2007-04-18 Bernd Schmidt <bernd.schmidt@analog.com>
19405
19406 * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
19407 we use REG_EQUAL.
19408
19409 2007-04-17 Anatoly Sokolov <aesok@post.ru>
19410
19411 PR target/30483
19412 * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
19413 error().
19414
19415 2007-04-17 H.J. Lu <hongjiu.lu@intel.com>
19416
19417 * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
19418 on "0".
19419 (sse_vmmulv4sf3): Likewise.
19420 (sse2_vmaddv2df3): Likewise.
19421 (sse2_vmmulv2df3): Likewise.
19422
19423 2007-04-17 Zdenek Dvorak <dvorakz@suse.cz>
19424
19425 PR rtl-optimization/31360
19426 * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
19427 (target_reg_cost): New.
19428 (init_set_costs): Initialize target_reg_cost. Add comments
19429 regarding the rationale of the costs.
19430 (global_cost_for_size): Renamed to...
19431 (estimate_reg_pressure_cost): ... and simplify. Decrease importance
19432 of register pressure.
19433 * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
19434 estimate_reg_pressure_cost. Add number of ivs.
19435 (determine_set_costs): Dump target_reg_cost.
19436 * loop-invariant.c (gain_for_invariant): Use
19437 estimate_reg_pressure_cost. Removed n_inv_uses argument.
19438 (best_gain_for_invariant, find_invariants_to_move): Remove
19439 n_inv_uses.
19440 * cfgloop.h (target_small_cost, target_pres_cost): Removed.
19441 (target_reg_cost): Declare.
19442 (global_cost_for_size): Declaration removed.
19443 (estimate_reg_pressure_cost): Declare.
19444
19445 2007-04-17 Peter Bergner <bergner@vnet.ibm.com>
19446
19447 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
19448 regnos into even/odd register pairs.
19449 * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
19450 TDmode similar to the other floating point modes.
19451 [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
19452 * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
19453 define_expand's.
19454 (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
19455 nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
19456 (movdd_hardfloat64): Use TARGET_MFPGPR.
19457
19458 2007-04-17 Bernd Schmidt <bernd.schmidt@analog.com>
19459
19460 * reload1.c (delete_output_reload): Don't count output in n_inherited.
19461
19462 Revert
19463 2005-01-05 Richard Henderson <rth@redhat.com>
19464 PR rtl-opt/10692
19465 * reload1.c (do_input_reload): Restrict the optimization deleteing
19466 a previous output reload to RELOAD_FOR_INPUT.
19467
19468 2007-04-17 Dorit Nuzman <dorit@il.ibm.com>
19469
19470 * tree-vectorizer.h (stmt_vec_info_type): Add enum value
19471 induc_vec_info_type.
19472 (vectorizable_induction): New function declaration.
19473 * tree-vect-transform.c (get_initial_def_for_induction): No need to
19474 check if already vectorized. Find first place in BB where new stmts
19475 can be inserted. Takes only one argument.
19476 (vectorizable_induction): New function.
19477 (vect_transform_stmt): Add case for induc_vec_info_type to call
19478 vectorizable_induction.
19479 (vect_transform_loop): Consider phis for vectorization.
19480 * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
19481 condition.
19482 (analyze_operations): Call vectorizable_induction when analyzing phis.
19483 Fix comment.
19484 (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
19485 (vect_mark_relevant): Include phis in relevance analysis.
19486 (vect_mark_stmts_to_be_vectorize): Likewise.
19487 * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
19488
19489 2007-04-16 Lawrence Crowl <crowl@google.com>
19490
19491 * doc/invoke.texi (Debugging Options): Add documentation for the
19492 -femit-struct-debug options -femit-struct-debug-baseonly,
19493 -femit-struct-debug-reduced, and
19494 -femit-struct-debug-detailed[=...].
19495
19496 * c-opts.c (c_common_handle_option): Add
19497 OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
19498 and OPT_femit_struct_debug_detailed_.
19499 * c.opt: Add specifications for
19500 -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
19501 and -femit-struct-debug-detailed[=...].
19502 * opts.c (set_struct_debug_option): Parse the
19503 -femit-struct-debug-... options.
19504 * opts.c (matches_main_base, main_input_basename,
19505 main_input_baselength, base_of_path, matches_main_base): Add
19506 variables and functions to compare header base name to compilation
19507 unit base name.
19508 * opts.c (should_emit_struct_debug): Add to determine to emit a
19509 structure based on the option.
19510 (dump_struct_debug) Also disabled function to debug this
19511 function.
19512 * opts.c (handle_options): Save the base name of the
19513 compilation unit.
19514
19515 * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
19516 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
19517 This hook indicates if a type is generic. Set it by default
19518 to "never generic".
19519 * langhooks.h (struct lang_hooks_for_types): Add a new hook
19520 to determine if a struct type is generic or not.
19521 * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
19522 * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
19523 * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
19524 with live C++ hook.
19525
19526 * flags.h (enum debug_info_usage): Add an enumeration to describe
19527 a program's use of a structure type.
19528 * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
19529 to indicate the program's usage of the type. Filter structs based
19530 on the -femit-struct-debug-... specification.
19531 (gen_type_die): Split into two routines, gen_type_die and
19532 gen_type_die_with_usage. gen_type_die is now a wrapper
19533 that assumes direct usage.
19534 (gen_type_die_with_usage): Replace calls to gen_type_die
19535 with gen_type_die_with_usage adding the program usage of
19536 the referenced type.
19537 (dwarf2out_imported_module_or_decl): Suppress struct debug
19538 information using should_emit_struct_debug when appropriate.
19539
19540 2007-04-16 Ian Lance Taylor <iant@google.com>
19541
19542 PR tree-optimization/31522
19543 * tree-vrp.c (vr_phi_edge_counts): New static variable.
19544 (vrp_initialize): Allocate vr_phi_edge_counts.
19545 (vrp_visit_phi_node): Don't push to infinity if we saw a new
19546 executable edge. Drop test for all constants.
19547 (vrp_finalize): Free vrp_phi_edge_counts.
19548
19549 * doc/cpp.texi (Common Predefined Macros): Clarify description of
19550 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
19551
19552 * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
19553 predecessors at head rather than tail.
19554
19555 2007-04-16 Matthias Klose <doko@debian.org>
19556
19557 * config/alpha/linux.h (CPP_SPEC): Define.
19558 * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
19559
19560 2007-04-16 Aldy Hernandez <aldyh@redhat.com>
19561
19562 * function.h: Remove sequence_stack extern declaration.
19563
19564 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
19565
19566 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
19567 TARGET_FIDOA.
19568 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
19569 defined.
19570
19571 2007-04-16 Anatoly Sokolov <aesok@post.ru>
19572
19573 * config/avr/avr.c (avr_arch_types): Rearranging array.
19574 (enum avr_arch): Add.
19575 (avr_mcu_types): Use avr_arch enumeration constants instead of
19576 numbers.
19577 * config/avr/avr.h (LINK_SPEC): Simplify.
19578
19579 2007-04-16 Kazu Hirata <kazu@codesourcery.com>
19580
19581 * config/m68k/m68k.c (m68k_libcall_value,
19582 m68k_function_value): Use macros for register names more.
19583
19584 * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
19585 instead.
19586 (M68K_REGNAME): Use A6_REG.
19587 * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
19588
19589 2007-04-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
19590
19591 PR middle-end/28071
19592 * sched-int.h (struct deps): Split field 'pending_lists_length' into
19593 'pending_read_list_length' and 'pending_write_list_length'. Update
19594 comment.
19595 * sched-deps.c (add_insn_mem_dependence): Change signature. Update
19596 to handle two length counters instead of one. Update all uses.
19597 (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
19598 two length counters instead of one.
19599 * sched-rgn.c (propagate_deps): Update to handle two length counters
19600 instead of one.
19601
19602 2007-04-16 H.J. Lu <hongjiu.lu@intel.com>
19603
19604 PR target/31582
19605 * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
19606 copy of source, pass it to ix86_expand_vector_set and return
19607 it as target.
19608
19609 2007-04-16 David Ung <davidu@mips.com>
19610 Joseph Myers <joseph@codesourcery.com>
19611
19612 * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
19613 PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
19614 * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
19615 Add 74K processor information.
19616 * config/mips/mips.md: Include 74k.md.
19617 (cpu): Add 74kc,74kf,74kx.
19618 (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
19619 * config/mips/74k.md: New.
19620 * doc/invoke.texi (MIPS Options): Document 74K support.
19621
19622 2007-04-16 Dorit Nuzman <dorit@il.ibm.com>
19623
19624 * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
19625 vectorizable_* functions.
19626 * tree-vect-transform.c (vectorizable_call): Add check for
19627 STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
19628 (vectorizable_store): likewise.
19629 (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
19630 Add comments.
19631 (vectorizable_operation, vectorizable_type_demotion): Likewise.
19632 (vectorizable_type_promotion, vectorizable_load): Likewise.
19633 (vectorizable_live_operation, vectorizable_condition): Likewise.
19634 (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
19635 STMT_VINFO_LIVE_P.
19636 (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
19637
19638 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
19639
19640 * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
19641 register numbers more.
19642 * config/m68k/m68k.h (STACK_POINTER_REGNUM,
19643 FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
19644 M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
19645 FUNCTION_VALUE_REGNO_P): Likewise.
19646 * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
19647 STATIC_CHAIN_REGNUM): Likewise.
19648 * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
19649 * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
19650 STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
19651 * config/m68k/m68k.md (FP_REG): New.
19652
19653 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
19654
19655 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
19656 alignment on fido.
19657
19658 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
19659
19660 * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
19661 tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
19662 comment typos.
19663
19664 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
19665
19666 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
19667 cold loops.
19668
19669 2007-04-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
19670
19671 PR c/31520
19672 * c-decl.c (finish_decl): Grab the type of the decl after the call
19673 to store_init_value.
19674
19675 2007-04-14 Steven Bosscher <steven@gcc.gnu.org>
19676
19677 * common.opt (fforward-propagate): Fix "Optimization" annotation.
19678
19679 2007-04-14 Jakub Jelinek <jakub@redhat.com>
19680
19681 PR c++/25874
19682 * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
19683 dominators, post dominators and cleanup cfg before returning.
19684
19685 2007-04-14 Bernd Schmidt <bernd.schmidt@analog.com>
19686
19687 * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
19688 * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
19689
19690 2007-04-14 Kazu Hirata <kazu@codesourcery.com>
19691
19692 * config.gcc: Recognize fido.
19693 * config/m68k/m68k-devices.def (fidoa): New.
19694 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
19695 __mfido__.
19696 (FL_FIDOA, TARGET_FIDOA): New.
19697 * config/m68k/m68k.opt (mfidoa): New.
19698
19699 2007-04-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19700
19701 PR middle-end/31322
19702 * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
19703 when a personality function is used.
19704
19705 2007-04-13 Bob Wilson <bob.wilson@acm.org>
19706
19707 * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
19708
19709 2007-04-13 Mike Stump <mrs@apple.com>
19710
19711 * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
19712 we can...
19713 * config/darwin.opt (fapple-kext): Make C++ only.
19714 * config/darwin.c (darwin_override_options): Remove code to ensure
19715 -fapple-kext is given for C++ only.
19716
19717 2007-04-13 Richard Sandiford <richard@codesourcery.com>
19718
19719 * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
19720 * config/mips/mips.c (override_options): Call
19721 SUBTARGET_OVERRIDE_OPTIONS, if defined.
19722
19723 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
19724
19725 * config/i386/i386.opt (msvr3-shlib): Removed.
19726
19727 * doc/invoke.texi: Remove -msvr3-shlib.
19728
19729 2007-04-13 H.J. Lu <hongjiu.lu@intel.com>
19730
19731 * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
19732 with "popcnt" instruction.
19733
19734 2007-04-13 Richard Guenther <rguenther@suse.de>
19735
19736 PR tree-optimization/21258
19737 * tree-vrp.c (compare_case_labels): New helper.
19738 (find_switch_asserts): New function.
19739 (find_assert_locations): Call it for SWITCH_EXPRs.
19740
19741 2007-04-13 Uros Bizjak <ubizjak@gmail.com>
19742
19743 * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
19744 * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
19745 check is now implied in X87_FLOAT_MODE_P.
19746 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
19747 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
19748 (fix_trunc<mode>_i386_fisttp): Ditto.
19749 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
19750 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
19751 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
19752 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
19753 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
19754 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
19755 (unnamed_splitters): Ditto.
19756 * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
19757 for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with
19758 FIRST_SSE_REG for local functions when SSE math is enabled or
19759 for functions with sseregparm attribute.
19760 (standard_80387_constant_p): Return -1 if mode is not
19761 X87_FLOAT_MODE_P.
19762 (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
19763 (ix86_expand_compare): Ditto.
19764 (ix86_expand_carry_flag_compare): Ditto.
19765 (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
19766 of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
19767 DECIMAL_FLOAT_MODE_P.
19768 (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
19769 of SCALAR_FLOAT_MODE_P.
19770 (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
19771 [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
19772 checks before FLOAT_MODE_P.
19773 [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
19774 before FLOAT_MODE_P.
19775 [DIV]: Ditto.
19776 [NEG]: Ditto.
19777 [ABS]: Ditto.
19778 [SQRT]: Ditto.
19779 [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
19780
19781 2007-04-12 Paolo Bonzini <bonzini@gnu.org>
19782 Charles Wilson <libtool@cwilson.fastmail.fm>
19783
19784 * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
19785 (libgcc.mvars): Don't depend on them.
19786 * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
19787 * exec-tool.in: New.
19788
19789 2007-04-12 Brooks Moses <brooks.moses@codesourcery.com>
19790
19791 * doc/invoke.text (--help): Document --help=common.
19792
19793 2007-04-12 Thomas Neumann <tneumann@users.sourceforge.net>
19794
19795 * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
19796
19797 2007-04-12 Richard Sandiford <richard@codesourcery.com>
19798
19799 * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
19800 * genemit.c (main): Emit #include "integrate.h".
19801 * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
19802 (LOADGP_RTP): New mips_loadgp_style.
19803 * config/mips/mips.h: Include config/vxworks-dummy.h.
19804 (TARGET_RTP_PIC): New macro.
19805 (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
19806 (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
19807 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
19808 for TARGET_RTP_PIC.
19809 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down
19810 -mvxworks-pic when using -mrtp and a PIC option.
19811 * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
19812 for RTP PIC.
19813 (mips_symbolic_constant_p, mips_symbolic_address_p)
19814 (mips_symbol_insns): Handle SYMBOL_HALF.
19815 (override_options): Warn about -G and -mrtp being used together.
19816 Initialize mips_lo_relocs[SYMBOL_HALF].
19817 (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
19818 (mips_emit_loadgp): Handle LOADGP_RTP.
19819 (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
19820 * config/mips/mips.md (loadgp_rtp): New insn and splitter.
19821 (tablejump): Handle function-relative case table entries if
19822 TARGET_RTP_PIC.
19823 * config/mips/predicates.md (symbol_ref_operand): New predicate.
19824
19825 2007-04-12 Richard Sandiford <richard@codesourcery.com>
19826
19827 * config/mips/mips.md (load_call<mode>): Allow any general register.
19828 destination.
19829 (sibcall_value_internal, sibcall_value_multiple_internal)
19830 (call_value_internal, call_value_split, call_value_multiple_internal)
19831 (call_value_multiple_split): Remove constraints from operand 0.
19832
19833 2007-04-12 Richard Sandiford <richard@codesourcery.com>
19834
19835 * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
19836 rather than loadgp_noshared.
19837 * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
19838 instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of
19839 gen_loadgp.
19840 * config/mips/mips.md (loadgp): Rename to...
19841 (loadgp_newabi): ...this.
19842 (loadgp_noshared): Rename to...
19843 (loadgp_absolute): ...this.
19844
19845 2007-04-12 Richard Sandiford <richard@codesourcery.com>
19846
19847 * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
19848 false for locally-binding symbols.
19849 (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
19850
19851 2007-04-12 Richard Sandiford <richard@codesourcery.com>
19852
19853 * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
19854 (SYMBOL_GOT_PAGE_OFST): ...this.
19855 (SYMBOL_GOT_GLOBAL): Rename to...
19856 (SYMBOL_GOT_DISP): ...this.
19857 (SYMBOL_GOTOFF_GLOBAL): Rename to...
19858 (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly.
19859 * config/mips/mips.c (mips_global_symbol_p): New function.
19860 (mips_symbol_binds_local_p): Likewise.
19861 (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
19862 and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use
19863 mips_global_symbol_p and mips_symbol_binds_local_p.
19864 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
19865 (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
19866 SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
19867 SYMBOL_GOTOFF_DISP.
19868 (mips_ok_for_lazy_binding_p): New function.
19869 (mips_load_call_address, mips_expand_call): Use it.
19870 (mips_dangerous_for_la25_p): Likewise.
19871 * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
19872 (*got_disp<mode>): Use got_disp_operand instead of
19873 global_got_operand. Use SYMBOL_GOTOFF_DISP instead of
19874 SYMBOL_GOTOFF_GLOBAL.
19875 (*got_page<mode>): Use got_page_ofst_operand instead of
19876 local_got_operand.
19877 * config/mips/predicates.md (const_call_insn_operand): Use
19878 SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
19879 (global_got_operand): Rename to...
19880 (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
19881 SYMBOL_GOT_GLOBAL.
19882 (local_got_operand): Rename to...
19883 (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
19884 of SYMBOL_GOT_LOCAL.
19885
19886 2007-04-12 Richard Sandiford <richard@codesourcery.com>
19887
19888 * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
19889 TARGET_CALL_CLOBBERED_GP.
19890 (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
19891 (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
19892 (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
19893 (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
19894 of TARGET_ABICALLS && !TARGET_NEWABI.
19895 (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
19896 * config/mips/mips.c (mips_load_call_address): Check
19897 TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
19898 (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
19899 Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
19900 (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
19901 TARGET_ABICALLS && TARGET_NEWABI.
19902 (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
19903 TARGET_ABICALLS.
19904 (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
19905 (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
19906 TARGET_ABICALLS && TARGET_NEWABI.
19907 (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
19908 TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of
19909 TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide
19910 whether indirect calls must use $25.
19911 (mips_extra_live_on_entry): Check TARGET_GOT instead of
19912 TARGET_ABICALLS.
19913 * config/mips/mips.md (jal_macro): Check flag_pic and
19914 TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
19915 (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
19916 instead of TARGET_ABICALLS.
19917 (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
19918 TARGET_ABICALLS && TARGET_OLDABI.
19919 (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
19920 (sibcall): In the comment above the define_insn, mention
19921 TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
19922 * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
19923 instead of TARGET_ABICALLS.
19924
19925 2007-04-12 Bernd Schmidt <bernd.schmidt@analog.com>
19926
19927 * doc/md.texi (Blackfin family constraints): Document PA and PB.
19928 * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
19929 (MACFLAGS_MATCH_P): New macro.
19930 * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
19931 (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
19932 * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of
19933 the other MACFLAG constants.
19934 (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
19935 (flag_machi): Tighten constraints. Renumber some of the operands.
19936 (flag_machi_acconly): Tighten constraints. Correct operand numbers in
19937 output template.
19938 (flag_machi_parts_acconly): New pattern.
19939 (flag_macinithi): Tighten constraints. Allow any accumulator to be
19940 used.
19941 (flag_macinit1hi): Tighten constraints.
19942 (flag_mul_macv2hi_parts_acconly): New pattern.
19943
19944 * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
19945 Use a more efficient implementation.
19946 * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
19947 inline sequences when not optimizing for size.
19948
19949 * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
19950 movhi_high2low): Delete, merge functionality into...
19951 (packv2hi): ... this pattern.
19952
19953 2007-02-11 Jie Zhang <jie.zhang@analog.com>
19954 * config/bfin/bfin.opt (msim): New option.
19955 (mcpu=): New option.
19956 * config/bfin/bfin-protos.h (enum bfin_cpu): New.
19957 (bfin_cpu_t): Typedef of enum bfin_cpu.
19958 (bfin_cpu_type): New declaration.
19959 * config/bfin/elf.h (STARTFILE_SPEC): Add support for
19960 -msim and -mcpu= options.
19961 (LIB_SPEC): Likewise.
19962 * config/bfin/bfin.c (bfin_cpu_type): Define.
19963 (bfin_handle_option): Handle -mcpu= option.
19964 * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
19965 (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
19966 __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
19967
19968 2007-04-12 Richard Sandiford <richard@codesourcery.com>
19969
19970 * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
19971 (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
19972 (powerpc-wrs-vxworksae): Use ${tm_file}.
19973 (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
19974 after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h.
19975 * config/i386/vx-common.h: New file.
19976
19977 2007-04-12 Richard Sandiford <richard@codesourcery.com>
19978
19979 * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
19980 of crt0.o%s.
19981
19982 2007-04-12 Andreas Krebbel <krebbel1@de.ibm.com>
19983
19984 * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
19985 ldxtr.
19986
19987 2007-04-12 Douglas Gregor <doug.gregor@gmail.com>
19988
19989 PR c++/31078
19990 PR c++/31103
19991 * c-common.c (c_build_qualified_type): Set canonical type
19992 appropriately.
19993
19994 2007-04-12 Richard Guenther <rguenther@suse.de>
19995
19996 * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
19997 lower bound and element size if lower bound is not zero
19998 or either of the ARRAY_REF operands is set.
19999
20000 2007-04-12 Richard Guenther <rguenther@suse.de>
20001
20002 PR tree-optimization/24689
20003 PR tree-optimization/31307
20004 * fold-const.c (operand_equal_p): Compare INTEGER_CST array
20005 indices by value.
20006 * gimplify.c (canonicalize_addr_expr): To be consistent with
20007 gimplify_compound_lval only set operands two and three of
20008 ARRAY_REFs if they are not gimple_min_invariant. This makes
20009 it never at this place.
20010 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
20011
20012 2007-04-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20013
20014 * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
20015 null before emitting a .nsubspa directive.
20016
20017 2007-04-11 Diego Novillo <dnovillo@redhat.com>
20018
20019 * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
20020 need_to_partition_p if there are no memory statements in the
20021 function.
20022
20023 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
20024
20025 * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
20026 (gcd_of_steps_may_divide_p): New function.
20027 (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
20028
20029 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
20030
20031 * reload.c (find_reloads_toplev, find_reloads_address,
20032 find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
20033 not a pointer equality test, to decide if we need to call
20034 push_reg_equiv_alt_mem.
20035
20036 2007-04-11 Sebastian Pop <sebastian.pop@inria.fr>
20037
20038 * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
20039 insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
20040 New.
20041 (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
20042
20043 2007-04-11 Zdenek Dvorak <dvorakz@suse.cz>
20044
20045 * tree-data-ref.c (add_multivariate_self_dist): Force the distance
20046 vector to be positive.
20047
20048 2007-04-11 Diego Novillo <dnovillo@redhat.com>
20049
20050 PR 30735
20051 PR 31090
20052 * doc/invoke.texi: Document --params max-aliased-vops and
20053 avg-aliased-vops.
20054 * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
20055 debug_memory_partitions): Move to tree-flow.h
20056 * params.h (AVG_ALIASED_VOPS): Define.
20057 * tree-ssa-alias.c (struct mp_info_def): Remove. Update all
20058 users.
20059 (mp_info_t): Likewise.
20060 (get_mem_sym_stats_for): New.
20061 (set_memory_partition): Move from tree-flow-inline.h.
20062 (mark_non_addressable): Only clear the set of symbols for the
20063 partition if it exists.
20064 (dump_memory_partitions): Move from tree-ssa-operands.c
20065 (debug_memory_partitions): Likewise.
20066 (need_to_partition_p): New.
20067 (dump_mem_ref_stats): New.
20068 (debug_mem_ref_stats): New.
20069 (dump_mem_sym_stats): New.
20070 (debug_mem_sym_stats): New.
20071 (update_mem_sym_stats_from_stmt): New.
20072 (compare_mp_info_entries): New.
20073 (mp_info_cmp): Call it.
20074 (sort_mp_info): Change argument to a list of mem_sym_stats_t
20075 objects.
20076 (get_mpt_for): Move from tree-ssa-operands.c.
20077 (find_partition_for): New.
20078 (create_partition_for): Remove.
20079 (estimate_vop_reduction): New.
20080 (update_reference_counts): New.
20081 (build_mp_info): New.
20082 (compute_memory_partitions): Refactor.
20083 Document new heuristic.
20084 Call build_mp_info, update_reference_counts,
20085 find_partition_for and estimate_vop_reduction.
20086 (compute_may_aliases): Populate virtual operands before
20087 calling debugging dumps.
20088 (delete_mem_sym_stats): New.
20089 (delete_mem_ref_stats): New.
20090 (init_mem_ref_stats): New.
20091 (init_alias_info): Call it.
20092 (maybe_create_global_var): Remove alias_info argument.
20093 Get number of call sites and number of pure/const call sites
20094 from gimple_mem_ref_stats().
20095 (dump_alias_info): Call dump_memory_partitions first.
20096 (dump_points_to_info_for): Show how many times a pointer has
20097 been dereferenced.
20098 * opts.c (decode_options): For -O2 set --param
20099 max-aliased-vops to 500.
20100 For -O3 set --param max-aliased-vops to 1000 and --param
20101 avg-aliased-vops to 3.
20102 * fortran/options.c (gfc_init_options): Remove assignment to
20103 MAX_ALIASED_VOPS.
20104 * tree-flow-inline.h (gimple_mem_ref_stats): New.
20105 * tree-dfa.c (dump_variable): Dump memory reference
20106 statistics.
20107 Dump NO_ALIAS* settings.
20108 (referenced_var_lookup): Tidy.
20109 (mem_sym_stats): New.
20110 * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
20111 and ORIG are different SSA names for a memory partition.
20112 * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
20113 * tree-flow.h (struct mem_sym_stats_d): Define.
20114 (mem_sym_stats_t): Define.
20115 (struct mem_ref_stats_d): Define.
20116 (struct gimple_df): Add field mem_ref_stats.
20117 (enum noalias_state): Define.
20118 (struct var_ann_d): Add bitfield noalias_state.
20119 (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
20120 debug_mem_ref_stats, debug_memory_partitions,
20121 debug_mem_sym_stats): Declare.
20122 * tree-ssa-structalias.c (update_alias_info): Update call
20123 sites, pure/const call sites and asm sites in structure
20124 returned by gimple_mem_ref_stats.
20125 Remove local variable IS_POTENTIAL_DEREF.
20126 Increase NUM_DEREFS if the memory expression is a potential
20127 dereference.
20128 Call update_mem_sym_stats_from_stmt.
20129 If the memory references memory, call
20130 update_mem_sym_stats_from_stmt for all the direct memory
20131 symbol references found.
20132 (intra_create_variable_infos): Set noalias_state field for
20133 pointer arguments according to the value of
20134 flag_argument_noalias.
20135 * tree-ssa-structalias.h (struct alias_info): Remove fields
20136 num_calls_found and num_pure_const_calls_found.
20137 (update_mem_sym_stats_from_stmt): Declare.
20138 * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
20139 Set default value to 100.
20140 (PARAM_AVG_ALIASED_VOPS): Define.
20141
20142 2007-04-11 Richard Guenther <rguenther@suse.de>
20143
20144 PR middle-end/31530
20145 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
20146 a * -b + c as c - a * b if we honor sign dependent rounding.
20147
20148 2007-04-11 Bernd Schmidt <bernd.schmidt@analog.com>
20149
20150 * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
20151 bfin_expand_strmov.
20152 * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
20153 bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
20154 variables.
20155 (initialize_trampoline): Don't use old-style function definition.
20156 (bfin_secondary_reload): Mark IN_P argument as unused.
20157
20158 2007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
20159
20160 PR tree-optimization/31343
20161 * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
20162 (build_polynomial_chrec): Return a scalar when the evolution is zero.
20163 * testsuite/gcc.dg/vect/pr31343.c: New.
20164
20165 2007-04-10 Eric Christopher <echristo@apple.com>
20166
20167 * config/i386/i386.h (X87_FLOAT_MODE_P): New.
20168 * config/i386/i386.md (*cmpfp0): Use.
20169 (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
20170 (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
20171 (fix_trunc<mode>_i386_fisttp): Ditto.
20172 (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
20173 (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
20174 (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
20175 (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
20176 (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
20177 (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
20178 (unnamed_splitters): Ditto.
20179 * config/i386/i386.c (output_fix_trunc): Assert that
20180 we're not being passed a TFmode operand.
20181
20182 2007-04-10 Zdenek Dvorak <dvorakz@suse.cz>
20183
20184 PR tree-optimization/31526
20185 * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
20186 n_basic_blocks to find newly added blocks.
20187
20188 2007-04-10 Uros Bizjak <ubizjak@gmail.com>
20189
20190 * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
20191 alternative.
20192 (fix_trunc<mode>si_sse): Ditto.
20193 (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
20194 (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
20195 (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
20196 (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
20197 (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
20198 expander using SSEMODEF mode macro.
20199 (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
20200 expander using SSEMODEF mode macro.
20201 (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
20202 *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
20203 (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
20204 *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
20205 (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
20206 *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
20207 (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
20208 Macroize insn using X87MODEF mode macro.
20209
20210 2007-04-09 H.J. Lu <hongjiu.lu@intel.com>
20211
20212 * config/i386/sse.md (sse2_pinsrw): Removed.
20213 (sse2_pextrw): Renamed to ...
20214 (*sse2_pextrw): This.
20215
20216 2007-04-09 Jan Hubicka <jh@suse.cz>
20217
20218 PR target/27869
20219 * config/i386/sse.md
20220 (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
20221 (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
20222 (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
20223 (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
20224
20225 2007-04-09 Jan Hubicka <jh@suse.cz>
20226
20227 * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
20228 multiple fields of union.
20229
20230 2007-04-09 Zdenek Dvorak <dvorakz@suse.cz>
20231
20232 * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
20233 (create_preheaders): Check that loops are available.
20234 (fix_loop_structure): Clean up, improve comments.
20235 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
20236 Check that loops are available. Set LOOP_CLOSED_SSA to the loops
20237 state flags.
20238 * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
20239 * predict.c (tree_estimate_probability): Do not call
20240 calculate_dominance_info. Call create_preheaders.
20241 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
20242 rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
20243 flags.
20244 * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
20245 * cfgloop.h (LOOP_CLOSED_SSA): New constant.
20246 * tree-cfg.c (tree_split_edge): Make an assert more precise.
20247 * tree-ssa-threadedge.c (thread_across_edge): Comment the function
20248 arguments.
20249
20250 2007-04-08 Jan Hubicka <jh@suse.cz>
20251
20252 * tree.h (maybe_fold_offset_to_component_ref): Declare.
20253 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
20254 * fold-const.c (fold_unary): Use it.
20255
20256 2007-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
20257
20258 * varasm.c (assemble_variable): Remove call to
20259 lang_hooks.decls.prepare_assemble_variable.
20260 * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
20261 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
20262 * langhooks.h (lang_hooks_for_decls): Remove
20263 prepare_assemble_variable.
20264
20265 2007-04-08 Mike Stump <mrs@apple.com>
20266
20267 * config/i386/i386.c: Use inc/dec on Core2.
20268
20269 2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
20270
20271 * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
20272 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
20273 lhd_tree_inlining_end_inlining): Remove.
20274 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
20275 add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
20276 end_inlining hooks.
20277 * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
20278 lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
20279 lhd_tree_inlining_end_inlining): Remove prototypes.
20280 (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
20281 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
20282 LANG_HOOKS_TREE_INLINING_START_INLINING,
20283 LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
20284
20285 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
20286 not set it.
20287
20288 2007-04-08 Anatoly Sokolov <aesok@post.ru>
20289
20290 PR target/29932
20291 * config/avr/predicates.md (io_address_operand): Delete predicate.
20292 (low_io_address_operand): Don't use 'mode' argument.
20293 (higth_io_address_operand): Rename ...
20294 (high_io_address_operand): ... to this. Don't use 'mode' argument.
20295 * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
20296 for above change.
20297
20298 2007-04-07 Daniel Berlin <dberlin@dberlin.org>
20299
20300 Revert change removing staticp.
20301
20302 2007-04-07 Anatoly Sokolov <aesok@post.ru>
20303
20304 PR target/30289
20305 * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
20306 earlyclobber.
20307
20308 2007-04-07 Bruce Korb <bkorb@gnu.org>
20309
20310 * c.opt: Add -Wformat-contains-nul.
20311 * c-format.c (set_Wformat): Set warn_format_contains_nul to the
20312 -Wformat setting.
20313 (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
20314 the NUL byte warning.
20315
20316 2007-04-07 H.J. Lu <hongjiu.lu@intel.com>
20317
20318 * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
20319
20320 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
20321
20322 * tree.c (staticp): No longer use staticp langhook.
20323 * langhooks.c (lhd_staticp): Removed.
20324 * langhooks.h (struct lang_hooks): Remove staticp.
20325 * c-common.c (c_staticp): Remove.
20326 * c-common.h (c_staticp): Ditto.
20327 * langhooks-defs.h (lhd_staticp): Ditto.
20328 (LHD_HOOKS_STATICP): Ditto
20329 * tree.h (gcc_assert_lowered): New macro.
20330
20331 2007-04-06 Zdenek Dvorak <dvorakz@suse.cz>
20332
20333 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
20334 argument "reliable".
20335 (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
20336 Add argument "reliable". Propagate it through calls.
20337 (infer_loop_bounds_from_undefined): Derive number of iterations
20338 estimates from references in blocks that do not dominate loop latch.
20339 (gcov_type_to_double_int): New function.
20340 (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
20341 and expected_loop_iterations_unbounded.
20342 * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
20343 (expected_loop_iterations): Use expected_loop_iterations_unbounded.
20344 * tree-data-ref.c (estimated_loop_iterations): Export.
20345 (get_references_in_stmt): Fix -- do not return addresses of local
20346 objects.
20347 * cfgloop.h (expected_loop_iterations_unbounded,
20348 estimated_loop_iterations): Declare.
20349
20350 2007-04-06 Andreas Tobler <a.tobler@schweiz.org>
20351
20352 * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
20353
20354 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
20355
20356 * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
20357 and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
20358 (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
20359 Use output_387_reg_move().
20360 (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
20361 expander using X87MODEF12 mode macro.
20362 (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
20363 choosing register preferences. Use output_387_reg_move().
20364 (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
20365 instead of "x". Use output_387_reg_move().
20366 (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
20367 *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro.
20368 (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
20369 *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro.
20370 Use output_387_reg_move().
20371 (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
20372 mode macro.
20373 (*truncxf?f_i387 splitter): Ditto.
20374
20375 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
20376
20377 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
20378 LANG_HOOKS_SAFE_FROM_P.
20379 * expr.c (safe_from_p): Remove langhook call.
20380 * langhooks.h (lang_hooks): Remove safe_from_p.
20381 (lhd_safe_from_p): Remove prototype.
20382 * langhooks.c (lhd_safe_from_p): Remove.
20383
20384 2007-04-06 Jan Hubicka <jh@suse.cz>
20385
20386 * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
20387 functions.
20388
20389 2007-04-06 Uros Bizjak <ubizjak@gmail.com>
20390
20391 * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
20392 * config/i386/i386.md (*movsf_1, *movdf_nointeger,
20393 *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
20394 *movxf_integer): Use output_387_reg_move() for x87 reg->mem
20395 alternative.
20396 (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
20397 *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
20398
20399 2007-04-05 Richard Henderson <rth@redhat.com>
20400
20401 * config/alpha/alpha.c (print_operand) [+]: Remove.
20402 (alpha_end_function): Print nop if call at end of function.
20403 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
20404 * config/alpha/alpha.md (UNSPEC_LDGP1): New.
20405 (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
20406 (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
20407 (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
20408 the call pattern. Update peepholes to match.
20409
20410 2007-04-05 Janis Johnson <janis187@us.ibm.com>
20411
20412 * doc/extend.texi (Other Builtins): Add decimal float variants
20413 of signbit.
20414 * builtins.def: Ditto.
20415 * builtins.c (expand_builtin): Ditto.
20416
20417 2007-04-05 Uros Bizjak <ubizjak@gmail.com>
20418 H.J. Lu <hongjiu.lu@intel.com>
20419
20420 PR target/31478
20421 * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
20422 of V8HImode when calling ix86_binary_operator_ok.
20423 (sse2_pmaddwd): Call ix86_binary_operator_ok.
20424 (sdot_prodv8hi): Operands 1 and 2 must be register.
20425
20426 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
20427
20428 * tree-sra.c (try_instantiate_multiple_fields): Needlessly
20429 initialize align to silence bogus warning.
20430
20431 2007-04-05 Alexandre Oliva <aoliva@redhat.com>
20432
20433 PR middle-end/22156
20434 * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove
20435 all_no_warning.
20436 (struct sra_walk_fns): Remove use_all parameter from use.
20437 (sra_hash_tree): Handle BIT_FIELD_REFs.
20438 (sra_elt_hash): Don't hash bitfld blocks.
20439 (sra_elt_eq): Skip them in parent compares as well. Handle
20440 BIT_FIELD_REFs.
20441 (sra_walk_expr): Don't maintain or pass down use_all_p.
20442 (scan_use): Remove use_all parameter.
20443 (scalarize_use): Likewise. Re-expand assignment to
20444 BIT_FIELD_REF of gimple_reg. De-scalarize before input or
20445 output, and re-scalarize after output. Don't mark anything
20446 for no warning.
20447 (scalarize_ldst): Adjust.
20448 (scalarize_walk_gimple_modify_statement): Likewise.
20449 (build_element_name_1): Handle BIT_FIELD_REFs.
20450 (instantiate_element): Don't warn for any element whose parent
20451 is used as a whole.
20452 (instantiate_missing_elements_1): Return the sra_elt.
20453 (canon_type_for_field): New.
20454 (try_instantiate_multiple_fields): New.
20455 (instantiate_missing_elemnts): Use them.
20456 (mark_no_warning): Removed.
20457 (generate_one_element_ref): Handle BIT_FIELD_REFs.
20458 (REPLDUP, sra_build_elt_assignment): New.
20459 (generate_copy_inout): Use them.
20460 (generate_element_copy): Likewise. Handle bitfld differences.
20461 (generate_element_zero): Don't recurse for blocks. Use
20462 sra_build_elt_assignment.
20463 (generate_one_element_int): Take elt instead of var. Use
20464 sra_build_elt_assignment.
20465 (generate_element_init_1): Adjust.
20466 (scalarize_use, scalarize_copy): Use REPLDUP.
20467 (scalarize_ldst): Move assert before dereference.
20468 (dump_sra_elt_name): Handle BIT_FIELD_REFs.
20469
20470 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
20471
20472 * regmove.c: Fix unused variable warnings due to previous commit.
20473
20474 2007-04-05 Steven Bosscher <steven@gcc.gnu.org>
20475
20476 * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
20477 (regmove_bb_head): Remove.
20478 (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
20479 (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
20480 problems with fixup_match_1.
20481 Don't initialize/free regmove_bb_head.
20482
20483 (reg_is_remote_constant_p): If an insn is in the same basic block
20484 but not before INSN, consider it remote, too.
20485
20486 2007-04-05 Anatoly Sokolov <aesok@post.ru>
20487
20488 PR target/25448
20489 * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
20490 DECL_ASSEMBLER_NAME, not the DECL_NAME.
20491
20492 2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
20493
20494 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
20495 (CONDITIONAL_REGISTER_USAGE): Likewise.
20496
20497 2007-04-04 Richard Henderson <rth@redhat.com>
20498
20499 * config/alpha/lib1funcs.asm: Remove unused file.
20500
20501 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
20502
20503 PR other/31356
20504 * opts.c (print_specific_help): Fix --help=<language>
20505 header line.
20506 (common_handle_option): Support --help=common.
20507
20508 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
20509
20510 PR other/31353
20511 * gcc.c (main): Do not run the linker if
20512 print_subprocess_help indicates that it shouldn't be
20513 run.
20514
20515 2007-04-04 Brooks Moses <brooks.moses@codesourcery.com>
20516
20517 PR doc/31355
20518 * doc/invoke.texi (--help=): Document <languages> value, fix
20519 formatting in tables of values.
20520
20521 2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
20522
20523 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
20524 dllimport attribute of virtual methods.
20525
20526 2007-04-04 Chen Liqin <liqin@sunnorth.com.cn>
20527
20528 * config/score/crti.asm: Change _bss_start to __bss_start.
20529 * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
20530 (OUTGOING_REG_PARM_STACK_SPACE) update.
20531 * config/score/score.opt: add options to make backend support
20532 score5, score5u, score7 and score7d.
20533 * config/score/score.md: Likewise.
20534 * config/score/misc.md: Likewise.
20535 * config/score/mac.md: Likewise.
20536 * doc/invoke.texi: Likewise.
20537 * doc/md.texi: update constraints define.
20538
20539 2007-04-03 Richard Henderson <rth@redhat.com>
20540
20541 * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
20542 an appropriate type, use the mode instead.
20543
20544 2007-04-03 Richard Sandiford <richard@codesourcery.com>
20545
20546 * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
20547 Set the default --with-arch setting to mips2.
20548 * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
20549 (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
20550 (MULTILIB_OSDIRNAMES): Delete.
20551 (MULTILIB_DIRNAMES): Define.
20552 * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
20553 (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
20554 (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
20555 definitions, except for _WRS_R3K_EXC_SUPPORT. Call
20556 VXWORKS_OS_CPP_BUILTINS.
20557 (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
20558 (MIPS_DEBUGGING_INFO): Undefine.
20559 (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
20560
20561 2007-04-03 Jakub Jelinek <jakub@redhat.com>
20562
20563 PR middle-end/30704
20564 * fold-const.c (native_encode_real): Encode real.c provided longs
20565 as a series of 32-bit native integers.
20566 (native_interpret_real): Interpret buffer as a series of 32-bit
20567 native integers.
20568
20569 2007-04-03 Richard Guenther <rguenther@suse.de>
20570
20571 * genpreds.c (write_insn_constraint_len): Write function
20572 optimized for CONSTRAINT_LEN implementation.
20573 (write_tm_preds_h): Output insn_constraint_len inline and
20574 use it for CONSTRAINT_LEN.
20575 (write_insn_preds_c): Don't output insn_constraint_len.
20576 * doc/md.texi (define_register_constraint): Document multi-letter
20577 constraints shall have the same length if they start with the same
20578 letter.
20579
20580 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
20581
20582 PR target/31175
20583 * config/i386/i386.md (isinf<mode>2): Expand only when
20584 TARGET_C99_FUNCTIONS is set.
20585
20586 2007-04-03 Uros Bizjak <ubizjak@gmail.com>
20587
20588 * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
20589 (x86_64-*-linux*): Ditto.
20590 * config/i386/i386.opt (mpc): New option.
20591 * config/i386/i386.c (overrride_options): Handle
20592 ix87_precision_string.
20593 * config/i386/crtprec.c: New file.
20594 * config/i386/t-crtpc: Ditto.
20595 * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
20596 and -mpc80 options.
20597 * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
20598 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
20599 crtprec32.o, crtprec64.o and crtprec80.o.
20600
20601 * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
20602 and -mpc80 options.
20603 (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
20604
20605 2007-04-02 Eric Christopher <echristo@apple.com>
20606
20607 * doc/invoke.texi (i386 and x86-64 Options): Document -m64
20608 limitations on darwin.
20609
20610 2007-04-02 Anatoly Sokolov <aesok@post.ru>
20611
20612 PR target/31137
20613 * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
20614
20615 2007-04-02 Dave Korn <dave.korn@artimi.com>
20616
20617 * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
20618
20619 2007-04-02 Dave Korn <dave.korn@artimi.com>
20620
20621 * libgcc2.h (exception_descriptor): Don't forward-declare.
20622 (__get_eh_table_language, __get_eh_table_version): Delete
20623 prototypes of long-dead functions.
20624
20625 2007-04-01 Daniel Berlin <dberlin@dberlin.org>
20626
20627 * ebitmap.h: New file
20628 * ebitmap.c: New file
20629 * Makefile.in (ebitmap.o): New target.
20630
20631 2007-04-01 Jan Hubicka <jh@suse.cz>
20632
20633 * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
20634 before very first instruction.
20635
20636 2007-04-01 Jan Hubicka <jh@suse.cz>
20637
20638 * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
20639 waring on 64bit hosts.
20640 * bitmap.h: Fix typo in bitmap_head_def.
20641
20642 2007-04-01 Steven Bosscher <steven@gcc.gnu.org>
20643
20644 PR rtl-optimization/31391
20645 * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
20646 into a DELETED_LABEL note, and the label is in an empty basic
20647 block, update BB_END as well as BB_HEAD.
20648
20649 2007-04-01 Richard Henderson <rth@redhat.com>
20650
20651 PR tree-optimization/31169
20652 * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
20653 to varying if the range is outside [0, prec-1].
20654
20655 2007-04-01 Richard Sandiford <richard@codesourcery.com>
20656
20657 PR target/31388
20658 * config/mips/mips.md (load_const_gp): New insn.
20659 * config/mips/mips.c (mips_split_symbol): Avoid using or creating
20660 the MIPS16 GP pseudo register if no_new_pseudos.
20661 (mips16_gp_pseudo_reg): Use gen_load_const_gp.
20662
20663 2007-03-31 Andrew Pinski <andrew_pinski@playstation.sony.com>
20664
20665 PR target/31364
20666 * config/rs6000/rs6000.md (call): Convert to LR hard reg for
20667 secureplt.
20668 (call_value): Likewise.
20669
20670 2007-03-31 Wolfgang Bangerth <bangerth@dealii.org>
20671 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20672
20673 PR 14737
20674 * doc/invoke.texi: (optimization options): Reword description
20675 of -ffast-math. Document its primary purpose.
20676
20677 2007-03-31 Richard Guenther <rguenther@suse.de>
20678
20679 * omp-low.c (splay-tree.h): Include.
20680 (lookup_decl): Replace splay-tree usage by pointer-map.
20681 (maybe_lookup_decl): Likewise.
20682 (new_omp_context): Likewise.
20683 (delete_omp_context): Likewise.
20684 * gimplify.c (splay-tree.h): Include.
20685 * tree-inline.c (insert_decl_map): Replace splay-tree usage by
20686 pointer-map.
20687 (remap_ssa_name): Likewise.
20688 (remap_decl): Likewise.
20689 (remap_type_1): Likewise.
20690 (remap_type): Likewise.
20691 (copy_body_r): Likewise.
20692 (expand_call_inline): Likewise.
20693 (clone_body): Likewise.
20694 (copy_tree_r): Likewise.
20695 (remap_save_expr): Likewise.
20696 (unsave_r): Likewise.
20697 (unsave_expr_now): Likewise.
20698 (tree_function_versioning): Likewise.
20699 (build_duplicate_type): Likewise.
20700 * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
20701 (struct copy_body_data): Replace splay-tree by pointer-map.
20702 * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
20703 not $(SPLAY_TREE_H).
20704 (gimplify.o): Depend on $(SPLAY_TREE_H).
20705 (omp-low.p): Likewise.
20706
20707 2007-03-31 Anatoly Sokolov <aesok@post.ru>
20708
20709 * config/avr/predicates.md (even_register_operand,
20710 odd_register_operand): New predicates.
20711 * config/avr/avr.md (movw peephole2): New.
20712 (movw_r peephole2): New.
20713
20714 2007-03-30 Rafael Avila de Espindola <espindola@google.com>
20715
20716 * tree.h (get_signed_or_unsigned_type): New.
20717 * fold-const.c (operand_equal_for_comparison_p): Use
20718 get_signed_or_unsigned_type instead of
20719 lang_hooks.types.signed_or_unsigned_type.
20720 * expr.c (store_expr): Ditto.
20721 * langhooks.c (get_signed_or_unsigned_type): New.
20722 (lhd_signed_or_unsigned_type): New.
20723 * langhooks.h (lhd_signed_or_unsigned_type): New.
20724 * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
20725
20726 2007-03-30 Richard Henderson <rth@redhat.com>
20727
20728 * tree-ssa-loop-ivopts.c: Include target.h.
20729 (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
20730 (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
20731 (force_expr_to_var_cost): Use produce_memory_decl_rtl.
20732 * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
20733
20734 2007-03-30 Richard Henderson <rth@redhat.com>
20735 Kai Tietz <kai.tietz@onevision.com>
20736
20737 * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
20738 default for 64-bit.
20739 (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
20740 (TARGET_64BIT_MS_ABI): New.
20741 (DBX_REGISTER_NUMBER): Handle 64-bit.
20742 (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
20743 (LONG_TYPE_SIZE): Force to 32.
20744 (REG_PARM_STACK_SPACE): New.
20745 (OUTGOING_REG_PARM_STACK_SPACE): New.
20746 (REGPARM_MAX, SSE_REGPARM_MAX): New.
20747 (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
20748 (STACK_BOUNDARY): Use 128 for 64-bit.
20749 * config/i386/cygwin.asm: Use push/ret to preserve call stack.
20750 Add 64-bit implementation.
20751 * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
20752 argument unused.
20753 * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
20754 (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
20755 Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
20756 for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
20757 (ix86_handle_cconv_attribute): Don't warn when ignoring if
20758 TARGET_64BIT_MS_ABI.
20759 (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
20760 (ix86_pass_by_reference): Likewise.
20761 (ix86_function_value_regno_p): Likewise.
20762 (ix86_build_builtin_va_list): Likewise.
20763 (ix86_va_start, ix86_gimplify_va_arg): Likewise.
20764 (function_arg_advance_ms_64): New.
20765 (function_arg_advance): Call it.
20766 (function_arg_ms_64): New.
20767 (function_arg): Call it.
20768 (function_value_ms_64): New.
20769 (ix86_function_value_1): Call it.
20770 (return_in_memory_ms_64): New.
20771 (ix86_return_in_memory): Call it.
20772 (setup_incoming_varargs_ms_64): New.
20773 (ix86_setup_incoming_varargs): Call it.
20774 (ix86_expand_prologue): Handle 64-bit stack probing.
20775 (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
20776 (output_pic_addr_const): Likewise.
20777 (x86_this_parameter): Likewise.
20778 (x86_output_mi_thunk): Likewise.
20779 (x86_function_profiler): Likewise.
20780 (TARGET_STRICT_ARGUMENT_NAMING): New.
20781 * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
20782 (TARGET_64BIT_MS_ABI): New.
20783 (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
20784 * config/i386/i386.md (allocate_stack_worker): Remove.
20785 (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
20786 describe the clobber of eax without a match_scratch.
20787 (allocate_stack_worker_postreload): Remove.
20788 (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
20789 describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
20790 (allocate_stack_worker_rex64_postreload): Remove.
20791 (allocate_stack): Handle 64-bit.
20792 * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
20793 * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
20794 (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
20795 (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
20796 (STANDARD_STARTFILE_PREFIX_1): Likewise.
20797 * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
20798 * config.build (x86_64-*-mingw*): New host.
20799 * config.host (x86_64-*-mingw*): New host.
20800 * config.gcc (x86_64-*-mingw*): New target.
20801 * gthr-win32.h (__gthread_key_create): Mark dtor unused.
20802
20803 2007-03-30 Richard Henderson <rth@redhat.com>
20804 Kai Tietz <kai.tietz@onevision.com>
20805
20806 * c-pragma.c (struct def_pragma_macro_value): New.
20807 (struct def_pragma_macro): New.
20808 (pushed_macro_table): New.
20809 (dpm_hash, dpm_eq): New.
20810 (handle_pragma_push_macro, handle_pragma_pop_macro): New.
20811 (init_pragma): Install them.
20812 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
20813
20814 2007-03-30 Anatoly Sokolov <aesok@post.ru>
20815
20816 * config/avr/avr.c (avr_override_options): Clear
20817 'flag_delete_null_pointer_checks'.
20818
20819 2007-03-30 Paolo Carlini <pcarlini@suse.de>
20820
20821 PR c++/26099
20822 * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
20823 RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
20824 RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
20825 RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
20826 RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
20827 RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
20828 RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
20829 C++ extensions.
20830 * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
20831
20832 2007-03-30 Steven Bosscher <steven@gcc.gnu.org>
20833
20834 * regmove.c: Move all of pass_stack_adjustments from here...
20835 * combine-stack-adj.c: ...to this new file.
20836 * Makefile.in: Add rules for combine-stack-adj.o.
20837
20838 2007-03-30 Zdenek Dvorak <dvorakz@suse.cz>
20839
20840 PR tree-optimization/31383
20841 * tree-data-ref.c (affine_function_equal_p): Do not require the
20842 vectors to have the same length.
20843
20844 2007-03-30 Jan Hubicka <jh@suse.cz>
20845
20846 PR middle-end/30700
20847 * dwarf2out.c (reference_to_unused): Ask cgraph for functions
20848 availablility; add more sanity checking; ask varpool only about
20849 VAR_DECL.
20850
20851 2007-03-29 Richard Henderson <rth@redhat.com>
20852
20853 * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
20854 to decide, but __SIZEOF_LONG_LONG__.
20855
20856 2007-03-29 Richard Henderson <rth@redhat.com>
20857
20858 * emutls.c (struct __emutls_array): New.
20859 (emutls_destroy): Use it instead of casting element 0 from void*.
20860 (__emutls_get_address): Likewise.
20861
20862 2007-03-29 Richard Henderson <rth@redhat.com>
20863
20864 * varasm.c (initializer_constant_valid_p): Don't deny
20865 DECL_DLLIMPORT_P on functions.
20866
20867 * config/i386/cygming.h: Remove function declarations.
20868 (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
20869 (ASM_OUTPUT_LABELREF): Remove.
20870 (COMMON_ASM_OP): Remove.
20871 (ASM_OUTPUT_COMMON): Remove.
20872 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20873 (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
20874 (ASM_DECLARE_FUNCTION_NAME): Likewise.
20875 * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
20876 Rename from TARGET_ENCODE_SECTION_INFO.
20877 * config/i386/netware.h: Likewise.
20878 * config/i386/i386-protos.h: Update.
20879 * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
20880 of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
20881 (legitimate_constant_p): Reject dllimports.
20882 (dllimport_map, get_dllimport_decl): New.
20883 (legitimize_dllimport_symbol): New.
20884 (legitimize_address, ix86_expand_move): Use it.
20885 (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
20886 * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
20887 (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
20888 (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
20889 * config/i386/predicates.md (constant_call_address_operand): Only
20890 accept symbols; reject dllimport_p symbols.
20891 * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
20892 i386_pe_maybe_record_exported_symbol.
20893 * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
20894 (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
20895 (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
20896 trust the setting of DECL_DLLIMPORT_P.
20897 (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
20898 (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
20899 (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
20900 tidy the argument scanning loop.
20901 (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
20902 SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
20903 (i386_pe_strip_name_encoding): Remove.
20904 (i386_pe_binds_local_p): New.
20905 (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
20906 (i386_pe_output_labelref): Remove.
20907 (i386_pe_asm_output_aligned_decl_common): New.
20908 (i386_pe_maybe_record_exported_symbol): Rename from
20909 i386_pe_record_exported_symbol; check for dllexported symbols.
20910
20911 2007-03-29 Zack Weinberg <zack@mrtock.ucsd.edu>
20912
20913 * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
20914 add comment explaining why vsnprintf cannot be used.
20915
20916 2007-03-29 Douglas Gregor <doug.gregor@gmail.com>
20917
20918 PR tree-optimization/30666
20919 * tree.c (build_complex_type): When creating type names for DWARF2
20920 debug info, create TYPE_DECLs for TYPE_NAME instead of
20921 IDENTIFIER_NODEs.
20922 (build_common_tree_nodes_2): Use build_complex_type when building
20923 predefined complex types, to preserve canonical types.
20924
20925 2007-03-29 Steven Bosscher <steven@gcc.gnu.org>
20926
20927 * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
20928 (noce_get_alt_condition): Look at it to determine whether to
20929 reverse the condition or not.
20930 (noce_get_condition): Substitute the truth for lies.
20931 (noce_find_if_block): Set the then_else_reversed field.
20932
20933 2007-03-29 Lars Poeschel <larsi@wh2.tu-dresden.de>
20934
20935 * config/fr30/fr30.md (movdi): Do not accept immediates as the
20936 destination of this insn.
20937 * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
20938 than calling gen_rtx_SET directly. Use r0 to hold the value of
20939 'address + 4' rather than a stack based temporary which can be
20940 mis-optimized away.
20941
20942 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
20943
20944 * config/s390/s390.c (s390_secondary_input_reload_class,
20945 s390_secondary_output_reload_class): Functions removed.
20946 (s390_secondary_reload): New function.
20947 (TARGET_SECONDARY_RELOAD): Target macro defined.
20948 * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
20949 SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
20950 * config/s390/s390.md ("reload_outti", "reload_outdi",
20951 "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
20952 "reload_out<mode>"): Expanders removed.
20953 ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
20954 "reload<mode>_nonoffmem_out"): Expanders added.
20955
20956 2007-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
20957
20958 * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
20959 action if SRC->DEST replacement failed anyway.
20960
20961 2007-03-28 Mike Stump <mrs@apple.com>
20962
20963 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
20964 * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
20965 * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
20966
20967 2007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
20968
20969 * config.gcc: Accept barcelona as a variant of amdfam10.
20970 * config/i386/i386.c (override_options): Likewise.
20971 * doc/invoke.texi: Likewise.
20972
20973 2007-03-28 Eric Botcazou <ebotcazou@adacore.com>
20974
20975 * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
20976 offsets for BIT_FIELD_REF and COMPONENT_REF.
20977
20978 2007-03-28 Richard Guenther <rguenther@suse.de>
20979
20980 * tree.c (is_global_var): Move ...
20981 * tree-flow-inline.h (is_global_var): ... here.
20982 * tree.h (is_global_var): Remove declaration.
20983
20984 2007-03-28 Uros Bizjak <ubizjak@gmail.com>
20985
20986 * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
20987 option.
20988 (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
20989 * config/i386/i386.c (ix86_tune_features): Initialize new
20990 tuning option.
20991 * config/i386/predicates.md (promotable_binary_operator): Use
20992 TARGET_TUNE_PROMOTE_HIMODE_IMUL.
20993
20994 2007-03-28 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
20995
20996 PR target/31380
20997 * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
20998
20999 2007-03-28 Lars Poeschel <larsi@wh2.tu-dresden.de>
21000
21001 * config/fr30/fr30.md (movsi_internal): Change destination
21002 constraint from m to V and add m to the end.
21003
21004 2007-03-28 Christian Bruel <christian.bruel@st.com>
21005
21006 * config/sh/sh.md (movsi_i): Fix type attribute.
21007
21008 2007-03-28 Christian Bruel <christian.bruel@st.com>
21009
21010 * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
21011 (movsf_ie): Likewise.
21012
21013 2007-03-28 Christian Bruel <christian.bruel@st.com>
21014
21015 * config.gcc: Add sh4-300 to multilib.
21016 * config/sh/t-mlib-sh4-300: New file.
21017
21018 2007-03-28 Andreas Krebbel <krebbel1@de.ibm.com>
21019
21020 * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
21021 ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
21022 fix_trunc<mode>di2.
21023 ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
21024 fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
21025 ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
21026 "fixuns_trunctddi2"): Whitespace fix.
21027
21028 2007-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
21029
21030 * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
21031 the definition of struct sh_args.
21032 (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
21033 CALL_COOKIE_INT_REG_GET): Likewise.
21034
21035 2007-03-28 Steven Bosscher <steven@gcc.gnu.org>
21036
21037 * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
21038 transformations are applied successfully.
21039
21040 2007-03-27 Douglas Gregor <doug.gregor@gmail.com>
21041
21042 * tree.c (tree_contains_struct): Permit 512 tree codes.
21043 * tree.h (tree_contains_struct): Ditto.
21044 (MAX_TREE_CODES): Ditto.
21045 (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
21046 SPARE member to store remaining padding bits.
21047
21048 2007-03-27 Anatoly Sokolov <aesok@post.ru>
21049
21050 * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
21051 architecture.
21052
21053 2007-03-27 Janis Johnson <janis187@us.ibm.com>
21054
21055 * configure.ac: Fix assembler test for powerpc*-linux decimal float.
21056 * configure: Regenerate.
21057
21058 * configure: Regenerate using the correct version of autoconf.
21059
21060 2007-03-27 Anatoly Sokolov <aesok@post.ru>
21061
21062 * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
21063 pointer regs.
21064 * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
21065 regs to "__SP_L__" and "__SP_H__".
21066
21067 2007-03-27 Richard Guenther <rguenther@suse.de>
21068
21069 * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
21070 computations with it with a HOST_WIDE_INT variable.
21071
21072 2007-03-26 Mike Stump <mrs@apple.com>
21073
21074 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
21075 objective-c-header, objective-c++-header and objc++-cpp-output
21076 support.
21077 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
21078
21079 2007-03-26 Richard Henderson <rth@redhat.com>
21080
21081 PR target/31361
21082 * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
21083 IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
21084 IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
21085 IX86_BUILTIN_PSRLQ128): New.
21086 (ix86_init_mmx_sse_builtins): Add them.
21087 (ix86_expand_builtin): Expand them.
21088 * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
21089 operand 2 be TImode.
21090 * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
21091 _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
21092 _mm_srli_epi64): Mark __B const.
21093 (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
21094 (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
21095 _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
21096 new two-vector shift builtins.
21097
21098 2007-03-26 Ian Lance Taylor <iant@google.com>
21099
21100 PR tree-optimization/31345
21101 * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
21102 [+INF, +INF(OVF)] into VARYING.
21103
21104 2007-03-26 Zack Weinberg <zackw@panix.com>
21105
21106 * gengtype-parse.c: New file.
21107 * gengtype-yacc.y: Delete.
21108 * gengtype-lex.l: Don't include gengtype-yacc.h.
21109 Define YY_DECL and yyterminate appropriately for recursive
21110 descent parser. yylval is now a string out-parameter to yylex.
21111 (HWS, EOID): New shorthand.
21112 (IWORD): Add a couple more types.
21113 (yylex): Add a setup stanza. Remove the complex rules for
21114 detecting GTY'ed types and typedefs; replace with simple
21115 keyword detectors. Adjust everything for the changed
21116 definition of yylval. Ignore all pp-directives, not just #define.
21117 (yyerror): Delete.
21118 (parse_file): Rename yybegin; do not call yyparse.
21119 (yyend): New.
21120 * gengtype.c (xasprintf): Export again.
21121 (this_file): New. Use everywhere __FILE__ was being used.
21122 (get_lang_bitmap): Special case types defined in gengtype.c.
21123 (do_typedef, new_structure): Suppress definition of certain types.
21124 (new_structure): Improve diagnostics of duplicate definitions.
21125 Make sure location_s is associated with input.h.
21126 (nreverse_pairs, define_location_structures): New functions.
21127 (main): Improve tagging of kludge types. Remove old kludges
21128 for input.h types; use define_location_structures.
21129 * gengtype.h: Update prototypes. Define token codes here.
21130 * Makefile.in: Remove all references to gengtype-yacc.
21131 Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o
21132 and gengtype.
21133 * bitmap.h (struct bitmap_head_def): Coalesce definitions,
21134 add GTY((skip)) to the field that's only conditionally there.
21135 * doc/install.texi: Document that Bison is no longer required
21136 unless building treelang.
21137
21138 * gengtype.c: Don't include gtyp-gen.h.
21139 (srcdir): Declare here.
21140 (base_files, lang_dir_names): Allocate dynamically.
21141 (gt_files, num_gt_files, num_lang_dirs): New globals.
21142 (measure_input_list, read_input_line, read_input_list)
21143 (set_lang_bitmap): New functions.
21144 (get_base_file_bitmap): Rename get_lang_bitmap and drastically
21145 simplify, relying on read_input_list to set up the bitmaps.
21146 (main): Arguments are no longer unused. Check for correct number
21147 of command line arguments, set srcdir and srcdir_len, then call
21148 read_input_list, before doing anything else. No need to worry
21149 about duplicates in main loop.
21150 * configure.ac: Simplify the calculation of all_gtfiles.
21151 Put language tags in there. Don't set or substitute
21152 all_gtfiles_files_langs or all_gtfiles_files_frags.
21153 * Makefile.in: Revamp the way gengtype is invoked, now that it
21154 takes a file on its command line with a much simpler format.
21155 Remove or replace with gtyp-input.list all references to gtyp-gen.h.
21156 (GTFILES): Remove duplicates and C source files.
21157 * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
21158 * objcp/config-lang.in: Add c-pragma.h to gtfiles.
21159 * configure: Regenerate.
21160
21161 * gengtype.h: Remove all type definitions to gengtype.c; leave
21162 only definitions of options_p, type_p, and pair_p as opaque
21163 pointers. Update prototypes.
21164 * gengtype.c: Many type definitions moved here from gengtype.h.
21165 Consolidate type definitions at the top of the file.
21166 (xvasprintf): Delete.
21167 (xasprintf): Make static.
21168 (create_nested_pointer_option): Add 'next' parameter.
21169 (create_field_all, create_field_at): New functions.
21170 (create_field): Now a thin wrapper around create_field_all.
21171 (create_optional_field): Rename create_optional_field_ and add
21172 line argument. Original name is now a macro which supplies
21173 __LINE__.
21174 (oprintf): Use vsnprintf directly.
21175 (close_output_files): Use fatal rather than perror/exit.
21176 (note_def_vec, note_def_vec_alloc): Use create_field_at.
21177 (main): Set progname. Don't use exit.
21178 * gengtype-yacc.y (struct_fields): Use create_field_at.
21179 (option, optionseqopt): Delete.
21180 (optionseq): Consolidate productions from option here so we
21181 can use the first argument to create_option.
21182
21183 * gengtype-lex.l: Distinguish unions from structures in the
21184 token type. Don't call find_structure; return the tag as a string.
21185 * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
21186 ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
21187 string. Reorganize typedef_struct production accordingly.
21188 Use create_nested_ptr_option.
21189 * gengtype.c (create_nested_ptr_option): New function.
21190 * gengtype.h: Declare it.
21191
21192 * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
21193 (string_type): Don't declare.
21194 (do_scalar_typedef): Declare.
21195 (create_scalar_type): Update prototype.
21196 * gengtype.c (string_type): Make static.
21197 (scalar_nonchar, scalar_char): New.
21198 (do_scalar_typedef): Export. Always use scalar_nonchar for the type.
21199 (resolve_typedef): Use scalar_nonchar for error recovery.
21200 (create_scalar_type): Remove name_len field. Return scalar_char
21201 or scalar_nonchar as appropriate.
21202 (adjust_field_type): Look at scalar_is_char boolean to decide whether
21203 to use string_type.
21204 (throughout): Use scalar_nonchar instead of calling
21205 create_scalar_type, whenever possible.
21206 (main): Initialize scalar_char and scalar_nonchar before calling
21207 gen_rtx_next.
21208 * gengtype-lex.l: Adjust for removal of second argument to
21209 create_scalar_type. Use yylval.s instead of yylval.t when
21210 returning SCALAR.
21211 * gengtype-yacc.y: Type of SCALAR is string. Call
21212 create_scalar_type from type:SCALAR rule. Adjust for removal of
21213 second argument to create_scalar_type.
21214
21215 * vec.h: Remove all #if IN_GENGTYPE blocks.
21216 Add comment saying that changes may require adjustments to gengtype.
21217 * gengtype.c: Don't include coretypes.h or tm.h.
21218 Add comment to inclusion of errors.h.
21219 (note_def_vec, note_def_vec_alloc): New functions.
21220 * gengtype.h: Declare new functions.
21221 * gengtype-lex.l: Don't include coretypes.h.
21222 (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
21223 Delete.
21224 (update_lineno): Remove unnecessary prototype.
21225 (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
21226 (VEC rule): Just return VEC_TOKEN.
21227 * gengtype-yacc.y (VEC_TOKEN): New token type.
21228 (type): Add a production for VEC(a,b).
21229 * Makefile.in: Update dependencies.
21230
21231 * gengtype-lex.l: Remove rules for parsing pointer-to-function
21232 typedefs that use the old PARAMS macro.
21233
21234 * gengtype-lex.l: Remove all rules and states relating to yacc
21235 input files.
21236 * gengtype-yacc.y: Similarly.
21237 * gengtype.c (note_yacc_type): Delete function.
21238 * gengtype.h: Update prototypes.
21239
21240 2007-03-26 Joseph Myers <joseph@codesourcery.com>
21241
21242 * tree-pretty-print.c (dump_generic_node): Report precision of
21243 unnamed integer types.
21244
21245 2007-03-26 Steven Bosscher <steven@gcc.gnu.org>
21246
21247 * ifcvt.c (noce_try_store_flag_constants): Don't check
21248 no_new_pseudos here.
21249 (noce_try_store_flag_constants): Don't check no_new_pseudos.
21250 (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
21251 noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
21252 noce_try_sign_mask): Likewise.
21253 (if_convert): Check no_new_pseudos here.
21254
21255 (cond_exec_process_if_block, noce_process_if_block, find_if_block):
21256 Remove prototypes.
21257 (struct noce_if_info): Add then_bb, else_bb, join_bb members.
21258 (noce_get_condition): Handle new then_else_reversed argument.
21259 (noce_init_if_info): Remove, fold into noce_find_if_block.
21260 (noce_process_if_block): Take a struct noce_if_info as the
21261 argument. Don't set up one based on ce_if_info. Update pointer
21262 references accordingly.
21263 (cond_move_process_if_block): Likewise.
21264 (process_if_block): Removed.
21265 (find_if_block): Removed. Move functionality two new functions,
21266 noce_find_if_block and cond_exec_find_if_block.
21267 (noce_find_if_block): New function. Be aware of IF-THEN-JOIN
21268 blocks and the symmetric IF-ELSE-JOIN case.
21269 (cond_exec_find_if_block): Also new function mostly based on old
21270 find_if_block and process_if_block.
21271 (find_if_header): Replace find_if_block call with separately
21272 guarded calls to noce_find_if_block and cond_exec_find_if_block.
21273 (find_cond_trap): Update noce_get_condition call.
21274 (dead_or_predicable): Likewise.
21275
21276 2007-03-26 Jakub Jelinek <jakub@redhat.com>
21277
21278 * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
21279 Remove.
21280 (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
21281 IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
21282 IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
21283 (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
21284 v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128,
21285 __builtin_ia32_pslld128, __builtin_ia32_psllq128,
21286 __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
21287 __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
21288 __builtin_ia32_psrad128 builtins.
21289
21290 2007-03-26 Uros Bizjak <ubizjak@gmail.com>
21291
21292 * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
21293 * config/i386/constraints.md
21294 (define_constraint "I"): Use IN_RANGE macro.
21295 (define_constraint "J"): Ditto.
21296 (define_constraint "K"): Ditto.
21297 (define_constraint "M"): Ditto.
21298 (define_constraint "N"): Ditto.
21299 (define_constraint "O"): Ditto.
21300 * config/i386/predicates.md
21301 (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
21302 (define_predicate "const_0_to_3_operand"): Ditto.
21303 (define_predicate "const_0_to_7_operand"): Ditto.
21304 (define_predicate "const_0_to_15_operand"): Ditto.
21305 (define_predicate "const_0_to_63_operand"): Ditto.
21306 (define_predicate "const_0_to_255_operand"): Ditto.
21307 (define_predicate "const_1_to_31_operand"): Ditto.
21308 (define_predicate "const_2_to_3_operand"): Ditto.
21309 (define_predicate "const_4_to_7_operand"): Ditto.
21310
21311 2007-03-25 David Edelsohn <edelsohn@gnu.org>
21312
21313 * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
21314 in SImode for save_world.
21315 * config/rs6000/altivec.md (save_world, restore_world): Convert to
21316 LR hard reg.
21317
21318 2007-03-25 Dorit Nuzman <dorit@il.ibm.com>
21319
21320 PR tree-optimization/30784
21321 * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
21322 BIT_FIELD_REF.
21323
21324 2007-03-25 Revital Eres <eres@il.ibm.com>
21325
21326 * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
21327 Fold movement_possibility function into it.
21328
21329 2007-03-25 David Edelsohn <edelsohn@gnu.org>
21330
21331 * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
21332 (load_macho_picbase_{si,di}): Convert to LR hard reg.
21333 (call_indirect_nonlocal_darwin64): Same.
21334 (call_nonlocal_darwin64): Same.
21335 (call_value_indirect_nonlocal_darwin64): Same.
21336 (call_value_nonlocal_darwin64): Same.
21337 (sibcall_nonlocal_darwin64): Same.
21338 (sibcall_value_nonlocal_darwin64): Same.
21339 (sibcall_symbolic_64): Same.
21340 (sibcall_value_symbolic_64): Same.
21341 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
21342 LR pseudo.
21343 (rs6000_emit_load_toc_table): Same.
21344 * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
21345 * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
21346 (mull_call): Same.
21347 (divss_call): Same.
21348 (divus_call): Same.
21349 (quoss_call): Same.
21350 (quous_call): Same.
21351 (load_toc_v4_pic_si): Same
21352 (load_toc_v4_PIC_1): Same.
21353 (load_toc_v4_PIC_1b): Same.
21354 (call_indirect_aix{32,64}): Same.
21355 (call_value_indirect_aix{32,64}): Same.
21356 (call): Same.
21357 (call_value): Same.
21358 (call_local{32,64}): Same.
21359 (call_value_local{32,64}): Same.
21360 (call_indirect_nonlocal_aix{32,64}): Same.
21361 (call_nonlocal_aix{32,64}): Same.
21362 (call_value_indirect_nonlocal_aix{32,64}): Same.
21363 (call_value_nonlocal_aix{32,64}): Same.
21364 (call_indirect_nonlocal_sysv<mode>): Same.
21365 (call_nonlocal_sysv<mode>): Same.
21366 (call_value_indirect_nonlocal_sysv<mode>): Same.
21367 (call_value_nonlocal_sysv<mode>): Same.
21368 (sibcall): Same.
21369 (sibcall_local{32,64}): Same.
21370 (sibcall_value_local{32,64}): Same.
21371 (sibcall_nonlocal_aix{32,64}): Same.
21372 (sibcall_value_nonlocal_aix{32,64}): Same.
21373 (sibcall_nonlocal_sysv<mode>): Same.
21374 (sibcall_value): Same.
21375 (sibcall_value_nonlocal_sysv<mode>): Same.
21376
21377 2007-03-24 Paul Brook <paul@codesourcery.com>
21378
21379 * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
21380 * config/arm/linux-eabi.h: Remove legacy syscall hack.
21381
21382 2007-03-24 Richard Henderson <rth@redhat.com>
21383
21384 * config/ia64/constraints.md: New file.
21385 * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
21386 satisfies_constraint_?.
21387 * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
21388 ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
21389 ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
21390 ia64_output_mi_thunk): Likewise.
21391 (ia64_const_ok_for_letter_p): Remove.
21392 (ia64_const_double_ok_for_letter_p): Remove.
21393 (ia64_extra_constraint): Remove.
21394 * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
21395 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
21396 CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
21397 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
21398 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
21399 EXTRA_MEMORY_CONSTRAINT): Remove.
21400 * config/ia64/ia64.md: Include constriants.md. Replace
21401 CONST_OK_FOR_? with satisfies_constraint_?.
21402
21403 2007-03-23 Michael Meissner <michael.meissner@amd.com>
21404 H.J. Lu <hongjiu.lu@intel.com>
21405
21406 * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
21407 DPD or BID name.
21408 (name macros): Use DPD_BID_NAME to convert names properly.
21409
21410 * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
21411 decimal floating point format.
21412 (init_floating_libfuncs): Change decimal functions so that they
21413 have a "bid_" prefix if the decimal system uses the BID format,
21414 and "dpd_" prefix if the decimal system uses the DPD format.
21415 (init_interclass_conv_libfuncs): Ditto.
21416 (init_intraclass_conv_libfuncs): Ditto.
21417
21418 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
21419 using the BID format.
21420
21421 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
21422 whether we are using the BID decimal format.
21423 * configure: Regenerate.
21424
21425 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
21426 the compiler has decimal floating point enabled. Define
21427 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
21428 instead of DPD.
21429
21430 * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
21431 using the BID format.
21432
21433 * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
21434 whether we are using the BID decimal format.
21435 * configure: Regenerate.
21436
21437 * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
21438 the compiler has decimal floating point enabled. Define
21439 __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
21440 instead of DPD.
21441
21442 * doc/install.texi (--enable-decimal-float): Document BID and DPD
21443 options, and that it is enabled for i386/x86_64 systems.
21444
21445 * Makefile.in (enable_decimal_float): New.
21446 (DECNUMFMT): New.
21447 (DECNUMINC): Add -I$(DECNUMFMT).
21448 (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
21449 to $(DECNUMFMT) from $(DECNUM).
21450
21451 * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
21452 Substitute enable_decimal_float.
21453 * configure: Regenerated.
21454
21455 PR other/30529
21456 * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
21457 unsigned long.
21458
21459 * configure.ac: Enable decimal float for x86_64-*-linux*.
21460 * configure: Regenerated.
21461
21462 PR other/30530
21463 * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
21464 decimal128ClearSign to flip and clear the sign bit in decimal128.
21465 (decimal_real_maxval): Set decimal128SetSign to set the sign
21466 bit in decimal128.
21467
21468 2007-03-23 Ian Lance Taylor <iant@google.com>
21469
21470 * fold-const.c (fold_binary): Correct warning for X - c >= X.
21471
21472 2007-03-23 Ian Lance Taylor <iant@google.com>
21473
21474 * tree-dump.c (dump_files): Correct comment.
21475
21476 2007-03-23 Ian Lance Taylor <iant@google.com>
21477
21478 * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
21479
21480 2007-03-23 Steven Bosscher <steven@gcc.gnu.org>
21481
21482 * tracer.c (tracer): Don't take FLAGS argument. Assert we are
21483 in cfglayout mode. Don't go into and out of cfglayout mode.
21484 Link the blocks in the order of the constructed traces.
21485 (rest_of_handle_tracer): Adjust call to tracer.
21486 * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
21487 Don't go into cfglayout mode.
21488 (rtl_loop_done): Don't go out of cfglayout mode.
21489 * cfglayout.c (relink_block_chain): New function, split out from...
21490 (fixup_reorder_chain): ...here. Remove redundant checking.
21491 (cfg_layout_finalize): Don't clear the header, footer, and aux
21492 fields here, move the code to do so to relink_block_chain. Likewise
21493 for free_original_copy_tables.
21494 * rtl.h (tracer): Update prototype.
21495 * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
21496 Assert we are in cfglayout mode. Don't go into and out of cfglayout
21497 mode. Use relink_block_chain to serialize the CFG according to the
21498 new basic block order. Move targetm.cannot_modify_jumps_p check from
21499 here...
21500 (gate_handle_reorder_blocks): ...to here.
21501 (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
21502 from here...
21503 (gate_duplicate_computed_gotos): ...to here.
21504 (rest_of_handle_reorder_blocks): Don't see if anything has changed,
21505 something always changes when going into and out of cfglayout mode.
21506 Perform an expensive cfg cleanup while going into cfglayout mode.
21507 Always update liveness information on HAVE_conditional_execution
21508 targets. Reserialize the basic blocks and go out of cfglayout mode.
21509 * reg-stack.c: Include cfglayout.h.
21510 (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
21511 the call to reorder_basic_blocks.
21512 * basic-block.h (reorder_basic_blocks): Update prototype.
21513 (relink_block_chain): New prototype.
21514 * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
21515
21516 2007-03-23 Joseph Myers <joseph@codesourcery.com>
21517
21518 * config/mips/mips.md (type, hazard, *movdi_32bit,
21519 *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
21520 *movhi_internal, *movqi_internal, *movsf_hardfloat,
21521 *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
21522 movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
21523 mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
21524 applicable.
21525 (movcc): Change first xfer to multi.
21526 * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
21527 config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
21528 config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
21529 config/mips/generic.md: Change reservations using "xfer" to use
21530 "mfc,mtc".
21531 * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
21532 using match_operand.
21533 (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
21534 * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
21535 examining mode.
21536 (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
21537
21538 2007-03-22 Richard Henderson <rth@redhat.com>
21539
21540 * config/i386/i386.c: Remove unnecessary function declarations.
21541 Move targetm definition, and all related macros, to the end of
21542 the file. Resort some functions to put definitions before uses.
21543 (ix86_attribute_table): Make static. Move to end of file.
21544 (ix86_gimplify_va_arg): Make static.
21545
21546 2007-03-22 Richard Henderson <rth@redhat.com>
21547
21548 * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
21549 don't increase local_regparm with force_align_arg_pointer check.
21550 (ix86_function_sseregparm): Assert 32-bit.
21551 (type_has_variadic_args_p): New.
21552 (ix86_return_pops_args): Early exit for 64-bit. Reindent; use
21553 type_has_variadic_args_p.
21554 (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
21555 (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum;
21556 use memset instead. Do maybe_vaarg check first; skip attribute
21557 tests if true; skip attribute tests for 64-bit.
21558 (construct_container): Remove TARGET_DEBUG_ARG.
21559 (function_arg_advance_32, function_arg_advance_64): Split out ...
21560 (function_arg_advance): ... from here.
21561 (function_arg_32, function_arg_64): Split out ...
21562 (function_arg): ... from here.
21563 (ix86_pass_by_reference): Tidy.
21564 (ix86_function_value_regno_p): Rearrange w/ switch on regno.
21565 (function_value_32): New, from parts of ix86_function_value
21566 and ix86_value_regno.
21567 (function_value_64): New, from parts of ix86_function_value
21568 and ix86_libcall_value.
21569 (ix86_function_value_1): New.
21570 (ix86_function_value, ix86_libcall_value): Use it.
21571 (return_in_memory_32, return_in_memory_64): Split out ...
21572 (ix86_return_in_memory): ... from here.
21573 (ix86_struct_value_rtx): Skip for 64-bit.
21574 (ix86_libcall_value, ix86_value_regno): Remove.
21575 (setup_incoming_varargs_64): Split out ...
21576 (ix86_setup_incoming_varargs): ... from here.
21577 (ix86_va_start): Remove TARGET_DEBUG_ARG.
21578 (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
21579 * config/i386/i386-protos.h (ix86_function_value): Remove.
21580 * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
21581
21582 2007-03-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21583
21584 PR other/23572
21585 * c-lex.c (interpret_float): On overflow, emit pedantic warning if
21586 infinities not supported, otherwise emit warning if -Woverflow. On
21587 underflow, emit warning if -Woverflow.
21588 * real.c (real_from_string): Return -1 if underflow, +1 if overflow
21589 and 0 otherwise.
21590 * real.h (real_from_string): Update declaration
21591
21592 2007-03-22 Kai Tietz <kai.tietz@onevision.com>
21593 Richard Henderson <rth@redhat.com>
21594
21595 * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
21596 * calls.c (compute_argument_block_size, expand_call,
21597 emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
21598 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
21599 * function.c (STACK_DYNAMIC_OFFSET): Likewise.
21600 * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
21601 * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
21602 config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
21603 config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
21604 config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
21605 Set to 1.
21606
21607 2007-03-22 Joseph Myers <joseph@codesourcery.com>
21608
21609 * c-incpath.c (add_sysroot_to_chain): New.
21610 (merge_include_chains): Add sysroot argument. Call
21611 add_sysroot_to_chain if sysrooted.
21612 (register_include_chains): Update call to merge_include_chains.
21613 * doc/cppopts.texi: Document use of '=' in include directory
21614 arguments.
21615
21616 2007-03-22 Uros Bizjak <ubizjak@gmail.com>
21617
21618 * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
21619 Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P.
21620 (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
21621 insn pattern using X87MODEF12 mode macro.
21622
21623 2007-03-21 Seongbae Park <seongbae.park@gmail.com>
21624
21625 * regmove.c (regmove_optimize): Use reg_mentioned_p
21626 instead of reg_overlap_mentioned_p for DST.
21627
21628 2007-03-21 Mike Stump <mrs@apple.com>
21629
21630 * c.opt: Fixup for Objective-C/C++.
21631
21632 2007-03-21 Steve Ellcey <sje@cup.hp.com>
21633
21634 * explow.c (convert_memory_address): Fold memory reference when
21635 POINTERS_EXTEND_UNSIGNED < 0
21636
21637 2007-03-21 Richard Henderson <rth@redhat.com>
21638
21639 PR target/31245
21640 * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
21641 * config/i386/mmintrin.h (__m64): Likewise.
21642 * config/i386/xmmintrin.h (__m128): Likewise.
21643
21644 2007-03-21 Richard Sandiford <richard@codesourcery.com>
21645
21646 * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
21647 (VXWORKS_OS_CPP_BUILTINS): Define.
21648 * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
21649 (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS.
21650
21651 2007-03-21 Richard Sandiford <richard@codesourcery.com>
21652
21653 * rtl.h (constant_pool_reference_p): Delete.
21654 (find_constant_src): Declare.
21655 * rtlanal.c (find_constant_src): New function.
21656 * simplify-rtx.c (constant_pool_reference_p): Delete.
21657 * config/i386/i386.md: Use find_constant_src instead of
21658 constant_pool_reference_p/avoid_constant_pool_reference pairs.
21659
21660 2007-03-21 Richard Sandiford <richard@codesourcery.com>
21661
21662 * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
21663 * c-cppbuiltin.c (c_cpp_builtins): Define them.
21664
21665 2007-03-20 Mark Mitchell <mark@codesourcery.com>
21666
21667 * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
21668 * config/arm/arm.c (arm_elf_asm_cdtor): New function.
21669 (arm_elf_asm_constructor): Use it.
21670 (arm_elf_asm_destructor): New function.
21671
21672 2007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
21673
21674 * jump.c (mark_jump_label): Treat SEQUENCE specially.
21675
21676 2007-03-20 Nathan Sidwell <nathan@codesourcery.com>
21677
21678 * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
21679
21680 2007-03-19 Andrew Haley <aph@redhat.com>
21681
21682 PR tree-optimization/31264
21683 * tree-vrp.c (register_edge_assert_for_1): Don't look though
21684 VIEW_CONVERT_EXPRs.
21685
21686 2007-03-19 Paolo Bonzini <bonzini@gnu.org>
21687
21688 PR rtl-optimization/30907
21689 * fwprop.c (forward_propagate_into): Never propagate inside a loop.
21690 (fwprop_init): Always call loop_optimizer_initialize.
21691 (fwprop_done): Always call loop_optimizer_finalize.
21692 (fwprop): We always have loop info now.
21693 (gate_fwprop_addr): Remove.
21694 (pass_fwprop_addr): Use gate_fwprop as gate.
21695
21696 PR rtl-optimization/30841
21697 * df-problems.c (df_ru_local_compute, df_rd_local_compute,
21698 df_chain_alloc): Call df_reorganize_refs unconditionally.
21699 * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
21700 refs_organized to refs_organized_size.
21701 (df_ref_create_structure): Use refs_organized_size instead of
21702 bitmap_size if refs had been organized, and keep refs_organized_size
21703 up-to-date.
21704 * df.h (struct df_ref_info): Change refs_organized to
21705 refs_organized_size.
21706 (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
21707 bitmap_size.
21708
21709 2007-03-19 Mark Mitchell <mark@codesourcery.com>
21710
21711 * except.c (output_function_exception_table): Do not reference the
21712 EH personality routine for functions that do not require an
21713 exception table.
21714
21715 2007-03-20 Jakub Jelinek <jakub@redhat.com>
21716
21717 PR c/30762
21718 * c-typeck.c (convert_for_assignment): Call comptypes for
21719 RECORD_TYPE or UNION_TYPE.
21720
21721 PR inline-asm/30505
21722 * reload1.c (reload): Do invalid ASM checking after
21723 cleanup_subreg_operands.
21724
21725 2007-03-19 Jeff Law <law@redhat.com>
21726
21727 * tree-cfg.c (find_taken_edge): Tighten conditions for
21728 optimizing computed gotos.
21729
21730 2007-03-19 Michael Matz <matz@suse.de>
21731
21732 * builtins.c (expand_builtin_sync_operation,
21733 expand_builtin_compare_and_swap,
21734 expand_builtin_lock_test_and_set): Care for extending CONST_INTs
21735 correctly.
21736
21737 * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
21738 sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
21739 for operand 3.
21740
21741 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
21742
21743 * doc/tm.texi: Add brackets around the return type of
21744 TARGET_SECONDARY_RELOAD.
21745
21746 2007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
21747 Richard Guenther <rguenther@suse.de>
21748
21749 PR tree-optimization/31254
21750 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
21751 Use handled_component_p () where appropriate. Continue
21752 propagating into the rhs if we propagated into an INDIRECT_REF
21753 on the lhs.
21754
21755 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
21756
21757 * config/s390/s390.md (op_type attribute): RRR instruction type added.
21758 (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
21759 (xde, xdee): Mode attributes adjusted to support DFP modes.
21760 (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
21761 ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
21762 DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
21763 "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
21764 "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
21765 "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
21766 "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
21767 numbers.
21768 ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
21769 "movsf"): Insn definitions removed.
21770 ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
21771 "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
21772 "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
21773 definitions added.
21774 ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
21775 "reload_in<mode>", "reload_out<mode>"): Expander added.
21776 ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
21777 Expander removed.
21778
21779 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
21780
21781 * config/s390/s390.md: Only non-functional changes. Renamed
21782 FPR mode macro to BFP all over the file.
21783
21784 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
21785
21786 * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
21787 (op_type attribute): RRF instruction type added.
21788 (fT0): New mode attribute.
21789 ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
21790 "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
21791 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
21792 instruction no secondary memory is needed when moving DFmode values
21793 between GPRs and FPRs.
21794
21795 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
21796
21797 * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
21798 inverted and documentation adjusted.
21799 ("mhard-dfp", "msoft-dfp"): New options.
21800 * config/s390/s390.c (s390_handle_arch_option): New architecture
21801 switch: z9-ec.
21802 (override_options): Sanity checks for the new options added.
21803 * config.gcc: New architecture switch: z9-ec.
21804 * config/s390/s390.h (processor_flags): PF_DFP added.
21805 (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
21806 (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
21807 when the bit is NOT set so remove it from the defaults.
21808
21809 2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
21810
21811 * genemit.c (main): Print include statement for dfp.h.
21812 * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
21813 is not available.
21814
21815 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
21816
21817 * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
21818
21819 2007-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
21820
21821 PR target/31022
21822 * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
21823 instead of PATTERN.
21824
21825 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21826
21827 * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
21828 attr_length_call, output_call, output_indirect_call): Cleanup
21829 formatting of targetm calls.
21830
21831 2007-03-19 Hans-Peter Nilsson <hp@axis.com>
21832
21833 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
21834
21835 2007-03-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21836
21837 * pa.md: Add fpstore_load and store_fpload instruction types. Provide
21838 reservation, bypass and anti-bypass descriptions for these
21839 instructions. Update move patterns.
21840 * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
21841 TYPE_FPSTORE.
21842
21843 2007-03-18 Dorit Nuzman <dorit@il.ibm.com>
21844
21845 * tree-vect-transform.c (get_initial_def_for_induction): Replace
21846 GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
21847 (get_initial_def_for_reduction): Likewise.
21848
21849 2007-03-16 Daniel Berlin <dberlin@dberlin.org>
21850
21851 Fix PR tree-optimization/29922
21852 * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
21853 (get_representative): Removed.
21854 (value_dies_in_block_x): Update for rvuse removal.
21855 (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
21856 (compute_antic_aux): Handle when PHI nodes appear in
21857 non-single-successors.
21858 (dump_bitmap_of_names): Removed.
21859 (compute_antic_safe): Renamed and removed rvuse calculation.
21860 Calculate only antic safe.
21861 (insert_into_preds_of_block): Remove assert.
21862 (execute_pre): Update for renamed functions.
21863 (defer_or_phi_translate_block): New function.
21864
21865 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
21866
21867 * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
21868 config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
21869 typos.
21870 * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
21871 Follow spelling conventions.
21872
21873 * tree-data-ref.h: Remove the prototype for analyze_array.
21874
21875 2007-03-17 Dorit Nuzman <dorit@il.ibm.com>
21876
21877 PR tree-optimization/31041
21878 * tree-vect-transform.c (get_initial_def_for_induction): Call
21879 force_gimple_operand.
21880
21881 2007-03-17 Olga Golovanevsky <olga@il.ibm.com>
21882
21883 * ipa-type-escape.c (look_for_casts) : Revert code to use
21884 handled_component_p due to ada test a-numaux.adb.
21885
21886 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
21887
21888 * final.c (final_scan_insn): Alter the condition of a
21889 conditional trap if we have nonstandard CC.
21890
21891 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
21892
21893 * configure.ac: Remove excess quoting from asm line 0 test.
21894 * configure: Rebuilt.
21895
21896 2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21897
21898 * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
21899 * c-common.c (convert_and_check): Move warning logic to...
21900 (warnings_for_convert_and_check): ...here. Define.
21901 * c-common.h (warnings_for_convert_and_check): Declare.
21902
21903 2007-03-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21904
21905 * pa.c (attr_length_call): Partially revert change of 2007-03-09.
21906 (output_call): Likewise.
21907
21908 2007-03-16 Richard Sandiford <richard@codesourcery.com>
21909
21910 * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
21911
21912 2007-03-16 Richard Sandiford <richard@codesourcery.com>
21913
21914 * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
21915
21916 2007-03-16 Uros Bizjak <ubizjak@gmail.com>
21917
21918 * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
21919 opteron, athlon-64 and athlon-fx processor_alias_table entries.
21920
21921 2007-03-16 Sebastian Pop <sebastian.pop@inria.fr>
21922
21923 PR tree-optimization/31183
21924 * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
21925 Use double_int instead of unsigned int for representing access_strides.
21926 * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
21927
21928 2007-03-16 Richard Guenther <rguenther@suse.de>
21929
21930 PR tree-optimization/31146
21931 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
21932 to allow recursion of forward_propagate_addr_expr.
21933 (forward_propagate_addr_into_variable_array_index): Likewise.
21934 (forward_propagate_addr_expr): Likewise.
21935 (tree_ssa_forward_propagate_single_use_vars): Likewise.
21936 (forward_propagate_addr_expr_1): Recurse on simple copies
21937 instead of propagating into them. Do so for useless conversions
21938 as well.
21939 (forward_propagate_addr_expr): Clean up unused statements after
21940 recursion.
21941
21942 2007-03-16 Richard Guenther <rguenther@suse.de>
21943
21944 * builtins.c (expand_builtin_cexpi): Use the right argument
21945 for the expansion via cexp.
21946
21947 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
21948
21949 * configure.ac: Don't require ELF binutils to tolerate # 0 "".
21950 * configure: Rebuilt.
21951
21952 2007-03-16 Alexandre Oliva <aoliva@redhat.com>
21953
21954 PR debug/29906
21955 * dwarf2out.c (force_type_die): Adjust comment.
21956 (dwarf2out_imported_module_or_decl): Handle base AT_import types.
21957
21958 2007-03-15 DJ Delorie <dj@redhat.com>
21959
21960 * config/frv/predicates.md (minmax_operator): Don't check operands
21961 here.
21962
21963 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
21964
21965 * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
21966 Update constant estimates of number of iterations.
21967 (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p"
21968 argument renamed to "realistic".
21969 (compute_estimated_nb_iterations): Removed.
21970 (record_niter_bound): New function.
21971 (idx_infer_loop_bounds): For possible but unlikely tail arrays,
21972 call record_nonwrapping_iv with upper = false.
21973 (infer_loop_bounds_from_signedness): Pass upper argument to
21974 record_nonwrapping_iv.
21975 (estimate_numbers_of_iterations_loop): Do not call
21976 compute_estimated_nb_iterations. Record estimate based on profile
21977 information. Initialize the constant estimates of number of
21978 iterations.
21979 * tree-data-ref.c (estimated_loop_iterations): Return the recorded
21980 estimates.
21981 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
21982 number of iterations is too small.
21983 * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
21984 (EST_NOT_AVAILABLE): Removed.
21985 (struct loop): Replace estimated_nb_iterations by any_upper_bound,
21986 nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
21987 fields.
21988
21989 2007-03-15 Zdenek Dvorak <dvorakz@suse.cz>
21990
21991 * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
21992 Handle NE_EXPR guards.
21993
21994 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
21995
21996 PR c++/24924
21997 * c-opts.c (c_common_post_options): Handle C++ post-processing here.
21998 Set also -pedantic-errors by default for the preprocessor unless
21999 -fpermissive is given.
22000
22001 2007-03-15 Richard Guenther <rguenther@suse.de>
22002
22003 PR middle-end/29719
22004 PR middle-end/31161
22005 * builtins.c (expand_builtin_cexpi): As a fallback if we
22006 don't have builtins for sincos or cexp create a function
22007 declaration for cexp and expand to a call to that.
22008 (expand_builtin_int_roundingfn): Always fall
22009 back to floor/ceil and its variants even if they may be
22010 not available.
22011
22012 2007-03-15 Steven Bosscher <steven@gcc.gnu.org>
22013
22014 PR middle-end/31159
22015 * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
22016 jump tables, move the call to delete_dead_jumptables from here...
22017 (cfg_layout_finalize): ...to here. But rebuild jump labels first.
22018 * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
22019 don't allow merging of blocks that try_redirect_by_replacing_jump
22020 also does not handle when not optimizing.
22021
22022 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
22023 Francois-Xavier Coudert <coudert@clipper.ens.fr>
22024
22025 * config/i386/i386.md (x86_sahf_1): Correctly handle
22026 HAVE_AS_IX86_SAHF.
22027
22028 2007-03-15 Uros Bizjak <ubizjak@gmail.com>
22029
22030 PR target/31167
22031 * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
22032 x86_64_general_operand as operand[2] predicate. Remove "iF"
22033 from operand constraints and use "e" constraint instead.
22034 (*subti3_1, *subti3_1 splitter): Ditto.
22035 (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
22036 operand[1] predicate.
22037
22038 2007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
22039
22040 * tree-loop-linear.c (gather_interchange_stats): For multidimensional
22041 arrays, multiply the access strides by the size of the sub-array.
22042 * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
22043
22044 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
22045
22046 * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
22047 the configured assembler supports the sahf mnemonic.
22048 * configure: Regenerate.
22049 * config.in: Regenerate.
22050
22051 * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
22052 emit "sahf" or ".byte\t0x9e" as asm template.
22053
22054 2007-03-14 Michael Meissner <michael.meissner@amd.com>
22055
22056 PR 31018
22057 * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
22058 option to replace hard coded TARGET_xxx in md file.
22059 (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
22060 (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
22061 (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
22062 (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
22063 (X86_TUNE_NOT_UNPAIRABLE): Ditto.
22064 (X86_TUNE_NOT_VECTORMODE): Ditto.
22065 (TUNE_SHORTEN_X87_SSE): Use new tuning option.
22066 (TUNE_AVOID_VECTOR_DECODE): Ditto.
22067 (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
22068 (TUNE_SLOW_IMUL_IMM8): Ditto.
22069 (TUNE_MOVE_M1_VIA_OR): Ditto.
22070 (TUNE_NOT_UNPAIRABLE): Ditto.
22071 (TUNE_NOT_VECTORMODE): Ditto.
22072
22073 * config/i386/i386.c (ix86_tune_features): Fill in new tuning
22074 options.
22075
22076 * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
22077 tuning options instead of hard coded TARGET_xxx.
22078 (fix ssemode peephole2's): Ditto.
22079 (imul peephole2's): Ditto.
22080 (movsi_or): Ditto.
22081 (movdi_or_rex64): Ditto.
22082 (move peephole2): Ditto.
22083 (not peephole2's): Ditto.
22084
22085 2007-03-14 Dirk Mueller <dmueller@suse.de>
22086
22087 * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
22088 * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
22089 * c-parser.c (c_parser_if_body): Always add an empty statement in case
22090 of empty body.
22091 * c-parser.c (c_parser_do_statement): Warn about empty body in
22092 do/while statement.
22093 * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
22094 * doc/invoke.texi (-Wempty-body): Update documentation.
22095
22096 2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
22097
22098 PR c/21438
22099 * c-common.h (warn_for_div_by_zero): Declare.
22100 * c-common.c (warn_for_div_by_zero): Define.
22101 * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
22102 warning.
22103
22104 2007-03-14 Richard Sandiford <richard@codesourcery.com>
22105
22106 * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
22107 to PREFIX and STANDARD_PREFIX.
22108
22109 2007-03-14 Richard Sandiford <richard@codesourcery.com>
22110 Phil Edwards <phil@codesourcery.com>
22111
22112 * gthr-vxworks.h: Add an extern "C" wrapper for C++.
22113 (__gthread_once_t): Remove busy field for RTPs.
22114 (__GTHREAD_ONCE_INIT): Update accordingly.
22115
22116 2007-03-14 Richard Sandiford <richard@codesourcery.com>
22117
22118 * doc/invoke.texi: Document VxWorks options.
22119
22120 2007-03-14 Uros Bizjak <ubizjak@gmail.com>
22121
22122 * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
22123
22124 2007-03-13 Seongbae Park <seongbae.park@gmail.com>
22125
22126 PR tree-optimization/30590
22127 * tree-nrv.c (tree_nrv): Check for the partial update of the
22128 return value.
22129
22130 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
22131
22132 * flags.h (flag_random_seed): Remove declaration, in favor of...
22133 * toplev.h (get_random_seed, set_random_seed): ... these.
22134 * tree.c (get_file_function_name): Use the former.
22135 * opts.c (common_handle_option): Use the latter.
22136 * toplev.c
22137
22138 2007-03-13 Steven Bosscher <steven@gcc.gnu.org>
22139
22140 PR middle-end/31127
22141 * cse.c (cse_find_path): Do not bail out if a basic block that
22142 we already visited now becomes part of a path that starts at a
22143 different basic block. Just disallow this, to make sure we
22144 visit each basic block at most once.
22145
22146 2007-03-13 Jan Hubicka <jh@suse.cz>
22147
22148 * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
22149 attributes, when profile esitmate is present, calls with very low
22150 frequency are cold.
22151
22152 2007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
22153
22154 PR tree-optimization/30730
22155 PR tree-optimization/26900
22156 * tree-ssa-loop-niter.c: Include gmp.h.
22157 (bounds): New type.
22158 (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
22159 split_to_var_and_offset, determine_value_range,
22160 bound_difference_of_offsetted_base, refine_bounds_using_guard,
22161 bound_difference, bounds_add, bounds_negate,
22162 number_of_iterations_ne_max, dump_affine_iv): New functions.
22163 (number_of_iterations_ne, number_of_iterations_lt_to_ne,
22164 assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
22165 difference of initial and final value of control iv to validate
22166 results.
22167 (number_of_iterations_cond): Add loop parameter. Determine bounds
22168 on the difference of the extremes of the control iv. Add dumps.
22169 (expand_simple_operations): Handle phi nodes.
22170 (simplify_using_initial_conditions): Do not record used conditions.
22171 (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
22172 Do not set additional_info.
22173 (implies_nonnegative_p, implies_ge_p): Removed.
22174 (derive_constant_upper_bound): Do not use parameter `additional'.
22175 (record_estimate): Parameter `additional' removed. Parameter
22176 `i_bound' added. Do not call derive_constant_upper_bound.
22177 (record_nonwrapping_iv): Use derive_constant_upper_bound to
22178 bound the number of iterations estimate.
22179 (estimate_numbers_of_iterations_loop): Pass the estimate from
22180 the number of iterations analysis to record_estimate.
22181 * tree.h (multiple_of_p): Declare.
22182 * tree-scalar-evolution.c (expression_expensive_p): Removed.
22183 (scev_const_prop): Do not check expression_expensive_p.
22184 * fold-const.c (multiple_of_p): Exported.
22185 * double-int.c (double_int_mask): Exported.
22186 * double-int.h (double_int_mask): Declare.
22187 * tree-flow.h (struct tree_niter_desc): Removed additional_info
22188 field. Added max field.
22189
22190 2007-03-13 David Taylor <taylor@candd.org>
22191
22192 PR driver/12448:
22193 * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
22194 default -MQ.
22195
22196 2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22197
22198 PR target/31123
22199 * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
22200 two unamed patterns.
22201
22202 2007-03-13 Uros Bizjak <ubizjak@gmail.com>
22203
22204 * config/i386/i386.opt (mcx16, msahf): New options.
22205 * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
22206 (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
22207
22208 * config/i386/driver-i386.c (bit_LAHF_LM): New define.
22209 (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
22210 Output -mcx16 and -msahf options when corresponding bit is set.
22211
22212 * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
22213 and -msahf options.
22214
22215 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
22216
22217 * configure.ac: Test for assembler tolerance to # 0 "".
22218 * configure, config.in: Rebuilt.
22219 * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
22220
22221 2007-03-13 Geoffrey Keating <geoffk@apple.com>
22222
22223 * doc/invoke.texi (Spec Files): Update for '%{,' spec.
22224
22225 * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
22226 (handle_syscall): Handle direct system calls.
22227 * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
22228
22229 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
22230
22231 * doc/invoke.texi: Fix cpp.info cross-reference.
22232 * doc/passes.texi: Fix gcc.info cross-reference.
22233
22234 2007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
22235
22236 PR tree-optimization/30835
22237 * lambda-code.c (can_convert_to_perfect_nest): Check whether
22238 bb_for_stmt is not NULL before accessing it.
22239
22240 2007-03-12 Joseph Myers <joseph@codesourcery.com>
22241
22242 * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
22243 some multilibs.
22244
22245 2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
22246
22247 PR 30635
22248 * doc/install.texi: Document --enable-stage1-languages
22249
22250 2007-03-12 Steven Bosscher <steven@gcc.gnu.org>
22251
22252 * tree-pass.h (pass_into_cfg_layout_mode,
22253 pass_outof_cfg_layout_mode): Declare.
22254 * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
22255 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
22256 * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
22257 (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
22258
22259 2007-03-12 Seongbae Park <seongbae.park@gmail.com>
22260
22261 * c-decl.c (warn_variable_length_array): New function.
22262 Refactored from grokdeclarator to handle warn_vla
22263 and handle unnamed array case.
22264 (grokdeclarator): Refactored VLA warning case.
22265 * c.opt (Wvla): New flag.
22266 * doc/invoke.texi (Wvla): New warning.
22267
22268 2007-03-12 Richard Henderson <rth@redhat.com>
22269
22270 * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
22271 (TARGET_SECTION_TYPE_FLAGS): New.
22272
22273 2007-03-12 Richard Henderson <rth@redhat.com>
22274
22275 * config/darwin.c (machopic_reloc_rw_mask): New.
22276 * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
22277 * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
22278
22279 2007-03-12 Mark Mitchell <mark@codesourcery.com>
22280
22281 * cppdefault.c (cpp_EXEC_PREFIX): New variable.
22282 * cppdefault.h (cpp_PREFIX): Document.
22283 (cpp_PREFIX_len): Likewise.
22284 (cpp_EXEC_PREFIX): New variable.
22285 * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
22286 * c-incpath.c (add_standard_paths): Correct logic for relocating
22287 paths within prefix.
22288
22289 2007-03-12 Uros Bizjak <ubizjak@gmail.com>
22290
22291 * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
22292 fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
22293 mode macro.
22294 (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
22295 fix_truncdfdi_sse using SSEMODEF mode macro.
22296 (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
22297 fix_truncdfsi_sse using SSEMODEF mode macro.
22298 (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
22299 (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
22300
22301 2007-03-12 Richard Sandiford <richard@codesourcery.com>
22302
22303 * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
22304 elfos.h to tm_file.
22305
22306 2007-03-12 Olga Golovanevsky <olga@il.ibm.com>
22307
22308 * tree.h : Add multiple_of_p declaration.
22309 * fold-const.c (multiple_of_p): Make multiple_of_p public.
22310 * ipa-type-escape.c (results_of_malloc): Redundant.
22311 (visited_stmts): New. Visited stmt for walk_use_def_chains.
22312 (cast_type): Extended with new members.
22313 (check_cast): Returns cast_type.
22314 (cast): New structure for data of walk_use_def_chains.
22315 (is_malloc_result, is_cast_from_non_pointer_1,
22316 is_cast_from_non_pointer,
22317 is_array_access_through_pointer_and_index): New functions.
22318 (look_for_casts): Returns cast types.
22319 (check_call): Returns void.
22320 (okay_pointer_operation): Use support of pointer plus index,
22321 pointer plus constant and allow all multiplications.
22322
22323 2007-03-11 Richard Guenther <rguenther@suse.de>
22324
22325 PR tree-optimization/31115
22326 * tree-vrp.c (extract_range_from_binary_expr): Make sure
22327 the shift count is positive and non-anti-range for RSHIFT_EXPR.
22328 A shift count of zero is not special as with *_DIV_EXPR.
22329 (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
22330 direction.
22331
22332 2007-03-11 Ian Lance Taylor <iant@google.com>
22333
22334 * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
22335 the *_DIV_EXPR codes correctly with overflow infinities.
22336
22337 2007-03-11 Ira Rosen <irar@il.ibm.com>
22338
22339 * tree-data-ref.c (analyze_offset): Add a return value (bool) to
22340 indicate success/failure of the analysis. Add negation to subtrahend
22341 in case of subtraction. Fail if both operands contain constants.
22342 (create_data_ref): Fail if analyze_offset fails.
22343
22344 2007-03-11 Uros Bizjak <ubizjak@gmail.com>
22345
22346 * config/i386/i386.md (frndintxf2): Rename to ...
22347 (rintxf2): ... this. Remove expander having same name.
22348 (rintsf2, rintdf2): Implement using SSEMODEF macro.
22349 (roundsf2, rounddf2): Ditto.
22350 (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
22351 (lround<mode>di2, lround<mode>si2): Ditto.
22352
22353 2007-03-11 Steven Bosscher <steven@gcc.gnu.org>
22354
22355 * lower-subreg.c: Include except.h.
22356 (decompose_multiword_subregs): Verify that the only control flow
22357 insns we can split are loads to multi-words pseudos.
22358 Handle breaking such blocks after splitting, instead of calling
22359 find_many_sub_basic_blocks.
22360
22361 * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
22362 on the new basic block. Add a lengthy comment explaining why we
22363 thought this was necessary.
22364 * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
22365
22366 2007-03-10 Mark Mitchell <mark@codesourcery.com>
22367
22368 PR c++/30924
22369 * tree.c (walk_type_fields): Recurse into the element type of
22370 ARRAY_TYPEs if there is a pointer set.
22371
22372 2007-03-10 Dirk Mueller <dmueller@suse.de>
22373
22374 * c-common.c (warn_logical_operator): Fix condition.
22375
22376 2007-03-10 Tobias Schl�ter <tobi@gcc.gnu.org>
22377
22378 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
22379 quotation mark.
22380 * config/darwin.c (machopic_select_section): Remove superfluous
22381 argument in call to categorize_decl_for_section. Remove unused
22382 variable shlib.
22383
22384 2007-03-10 Joseph Myers <joseph@codesourcery.com>
22385
22386 * configure.ac (glibc_header_dir): Set using with_build_sysroot if
22387 defined.
22388 * configure: Regenerate.
22389
22390 2007-03-10 Uros Bizjak <ubizjak@gmail.com>
22391
22392 PR target/31101
22393 * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
22394 (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
22395 (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
22396 Add LABEL_NUSES to emitted label.
22397 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
22398 branch probability value to emitted jump insn.
22399 * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
22400 Do not check life information and do not re-arrange input operands
22401 for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
22402
22403 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
22404
22405 * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
22406 the change of decode_asm_operands.
22407
22408 2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
22409
22410 * mode-switching.c (create_pre_exit): Skip blockage insn.
22411
22412 2007-03-09 Diego Novillo <dnovillo@redhat.com>
22413
22414 * tree-pass.h (TODO_update_smt_usage): Remove.
22415 Update all users.
22416 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
22417 argument SOME.
22418 Update all users.
22419
22420 2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22421
22422 * pa.c (attr_length_call): Revise condition for long
22423 pc-relative branch.
22424 (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
22425 local calls on the SOM target. Don't use "LONG_PIC_PCREL" call
22426 sequence on SOM target.
22427
22428 2007-03-09 Geoffrey Keating <geoffk@apple.com>
22429
22430 * gcc.c: Document %{, in big comment at top.
22431 (input_suffix_matches): Remove special handling for .s and
22432 .S.
22433 (input_spec_matches): New.
22434 (handle_braces): Handle %{,.
22435 (validate_switches): ',' indicates a value which is not a switch.
22436 * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
22437 to detect assembler input.
22438 * config/i386/sol2.h (CPP_SPEC): Likewise.
22439 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
22440 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
22441 * config/rs6000/lynx.h (ASM_SPEC): Likewise.
22442 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
22443 * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
22444 -m64 causes deployment target to default to 10.5.
22445 * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
22446
22447 2007-03-09 Richard Henderson <rth@redhat.com>
22448
22449 PR target/26090
22450 * target.h (targetm.asm.out.reloc_rw_mask): New.
22451 * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
22452 (TARGET_ASM_OUT): Use it.
22453 * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
22454 * varasm.c (categorize_decl_for_section): Remove shlib argument;
22455 use the new reloc_rw_mask target hook instead.
22456 (default_section_type_flags_1): Merge into...
22457 (default_section_type_flags): ... here.
22458 (decl_readonly_section_1): Merge into...
22459 (decl_readonly_section): ... here.
22460 (default_elf_select_section_1): Merge into...
22461 (default_elf_select_section): ... here.
22462 (default_unique_section_1): Merge into...
22463 (default_unique_section): ... here.
22464 (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
22465 (default_select_rtx_section): Use it.
22466 (default_elf_select_rtx_section): Likewise.
22467 * output.h: Update to match.
22468 * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
22469 * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
22470 (TARGET_ASM_RELOC_RW_MASK): New.
22471 * config/i386/i386.c (x86_64_elf_select_section): Adjust call
22472 to categorize_decl_for_section.
22473 (x86_64_elf_unique_section): Likewise.
22474 * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
22475 TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
22476 (TARGET_ASM_RELOC_RW_MASK): New.
22477 * config/ia64/ia64.c (ia64_rwreloc_select_section,
22478 ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
22479 (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
22480 (TARGET_RWRELOC): Remove.
22481 (ia64_section_type_flags): Adjust call to default_section_type_flags.
22482 * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
22483 * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
22484 (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
22485 (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
22486 (rs6000_xcoff_select_section): Use decl_readonly_section.
22487 (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
22488 * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
22489 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
22490 (TARGET_SECTION_TYPE_FLAGS): Remove.
22491 * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
22492
22493 2007-03-09 Roger Sayle <roger@eyesopen.com>
22494
22495 * fold-const.c (fold_comparison): Remove compile-time evaluation of
22496 complex constant equality/inequality comparisons for here.
22497 (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
22498 known at compile-time or can be simplified to a scalar comparison.
22499 (fold_relational_const): Move compile-time evaluation of complex
22500 constant equality/inequality comparisons to here.
22501
22502 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
22503
22504 PR rtl-optimization/30643
22505 * cse.c (cse_insn): Recompute dest_hash after insert_regs for
22506 dest_addr_elt.
22507 (fold_rtx): Recurse, like before 2006-11-03.
22508
22509 2007-03-09 DJ Delorie <dj@redhat.com>
22510
22511 * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
22512 m32c-pragma.o.
22513
22514 2007-03-09 Aldy Hernandez <aldyh@redhat.com>
22515
22516 PR tree-optimization/30375
22517 * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
22518 LHS of statements is not the same.
22519 * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
22520
22521 2007-03-09 Chao-ying Fu <fu@mips.com>
22522
22523 * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
22524 REV 2.
22525 * doc/invoke.texi (-mdspr2): Document new option.
22526 * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
22527 New unspec for DSP REV 2.
22528 (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
22529 these instructions are extended in DSP REV 2.
22530 (mips-dspr2.md): Include.
22531 * config/mips/mips.opt (mdspr2): New option.
22532 * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
22533 MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
22534 MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
22535 (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
22536 (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
22537 (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins.
22538 (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
22539 and 2 builtins.
22540 (bdesc_map): Add one field of unsupported_target_flags.
22541 (bdesc_arrays): Update entries to have extra fields. Add
22542 dsp_32only_bdesc.
22543 (mips_init_builtins): Initialize new function types.
22544 Check unsupported_target_fileds to filter out builtins.
22545 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
22546 TARGET_DSPR2.
22547 (ASM_SPEC): Pass mdspr2 to the assembler.
22548 * config/mips/mips-dspr2.md: New file.
22549
22550 2007-03-09 Sa Liu <saliu@de.ibm.com>
22551
22552 * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
22553
22554 2007-03-09 Ian Lance Taylor <iant@google.com>
22555
22556 * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
22557 argument) like -Wstrict-overflow=2.
22558 * doc/invoke.texi (Warning Options): Update documentation.
22559
22560 2007-03-09 Dirk Mueller <dmueller@suse.de>
22561
22562 PR c++/17946
22563 * doc/invoke.texi (-Wlogical-op): Document.
22564 * common.opt (-Wlogical-op): New.
22565 * c-common.h (warn_logical_operator): Declare.
22566 * c-common.c (warn_logical_operator): Define.
22567 * c-typeck.c (parser_build_binary_op): Call
22568 warn_logical_operator.
22569
22570 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
22571
22572 * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
22573 * final.c (final_scan_insn): Test for non-"" file name.
22574
22575 2007-03-09 Sebastian Pop <sebastian.pop@inria.fr>
22576
22577 * doc/loop.texi: Document the Omega linear constraints solver.
22578 * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
22579 omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
22580 omega-hash-table-size, omega-max-keys, and
22581 omega-eliminate-redundant-constraints.
22582 * tree-pass.h (pass_check_data_deps): Declared.
22583 * omega.c: New.
22584 * omega.h: New.
22585 * timevar.def (TV_CHECK_DATA_DEPS): Declared.
22586 * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
22587 pass_check_data_deps): New.
22588 * tree-data-ref.c (init_data_ref): Remove declaration.
22589 (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
22590 (analyze_array): Renamed init_array_ref, move up initializations.
22591 (init_data_ref): Renamed init_pointer_ref. Moved before its call.
22592 Removed arguments that are set to NULL.
22593 (analyze_indirect_ref): Correct indentation, correct call to
22594 init_pointer_ref.
22595 (object_analysis): Call init_array_ref instead of analyze_array.
22596 (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
22597 (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
22598 of DR_ACCESS_FNS_ADDR.
22599 (init_omega_eq_with_af, omega_extract_distance_vectors,
22600 omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
22601 ddr_consistent_p): New.
22602 (compute_affine_dependence): Check consistency of ddrs when
22603 flag_check_data_deps is passed.
22604 (analyze_all_data_dependences): Uncomment.
22605 (tree_check_data_deps): New.
22606 * tree-data-ref.h: Include omega.h.
22607 (DR_ACCESS_FNS_ADDR): Removed.
22608 (data_dependence_relation): Add inner_loop.
22609 (DDR_INNER_LOOP): New.
22610 * common.opt (fcheck-data-deps): New.
22611 * tree-flow.h (tree_check_data_deps): Declare.
22612 * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
22613 (OBJS-common): Depend on omega.o.
22614 (omega.o): Define.
22615 * passes.c (pass_check_data_deps): Scheduled.
22616 * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
22617 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
22618 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
22619 PARAM_VECT_MAX_VERSION_CHECKS,
22620 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
22621
22622 2007-03-09 Richard Guenther <rguenther@suse.de>
22623
22624 PR tree-optimization/30904
22625 PR middle-end/31058
22626 * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
22627 the same way as *_DIV_EXPR.
22628
22629 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
22630
22631 * recog.c (decode_asm_operands): No mixed declarations and code.
22632
22633 2007-03-09 Alexandre Oliva <aoliva@redhat.com>
22634
22635 * rtl.def (ASM_INPUT): Add location.
22636 * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
22637 (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
22638 (decode_asm_operands): Add loc operand.
22639 (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
22640 * stmt.c (expand_asm): Rename to...
22641 (expand_asm_loc): ... this. Add locus argument. Pass it on to
22642 gen_rtx_ASM_INPUT_loc.
22643 (expand_asm_expr): Adjust.
22644 * recog.c (decode_asm_operands): Add loc operand.
22645 (check_asm_operands, extract_insn): Adjust.
22646 * reload1.c (maybe_fix_stack_asms): Likewise.
22647 * final.c (asm_insn_count): Likewise.
22648 (final_scan_insn): Output # line before and after asm.
22649
22650 2007-03-09 Daniel Berlin <dberlin@dberlin.org>
22651
22652 * tree-ssa-structalias.c (variable_info): Remove
22653 finished_solution.
22654 (new_var_info): Ditto.
22655 (shared_bitmap_info_t): New structure.
22656 (shared_bitmap_table): New variable.
22657 (shared_bitmap_hash): New function.
22658 (shared_bitmap_eq): Ditto
22659 (shared_bitmap_lookup): Ditto.
22660 (shared_bitmap_add): Ditto.
22661 (merge_smts_into): Change to take bitmap directly.
22662 (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
22663 (init_alias_vars): Init shared bitmap hashtable.
22664 (delete_points_to_sets): Delete shared bitmap hashtable.
22665 * tree-ssa-operands.c (add_virtual_operand): Partially revert the
22666 is_aliased removal as a change that was still necessary was
22667 deleted.
22668
22669 2007-03-09 Uros Bizjak <ubizjak@gmail.com>
22670
22671 * config/i386/i386.h (override_options): Conditionally disable
22672 x86_sahf for 64bit targets only.
22673
22674 2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
22675
22676 PR C/31072
22677 * c-decl.c (merge_decls): Don't call make_var_volatile.
22678 * varasm.c (make_var_volatile): Remove.
22679 * output.h (make_var_volatile): Remove.
22680
22681 2007-03-08 Zdenek Dvorak <dvorakz@suse.cz>
22682
22683 PR tree-optimization/31085
22684 * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
22685
22686 2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22687
22688 * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
22689 llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
22690 ATTR_CONST_NOTHROW_LIST.
22691
22692 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
22693 FIX_TRUNC_EXPR.
22694
22695 2007-03-08 Diego Novillo <dnovillo@redhat.com>
22696
22697 * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
22698
22699 2007-03-08 Geoffrey Keating <geoffk@apple.com>
22700
22701 PR 31013
22702 * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
22703 is declared.
22704 * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
22705 passed, use shared libgcc.
22706
22707 2007-03-08 Roger Sayle <roger@eyesopen.com>
22708
22709 * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
22710 instead of calling build2 with a GIMPLE_MODIFY_STMT.
22711 (honor_protect_cleanup_actions, lower_try_finally_switch):
22712 Likewise.
22713 * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
22714 ifc_temp_var): Likewise.
22715 * tree-inline.c (setup_one_parameter): Likewise.
22716 * tree-mudflap.c (mf_decl_cache_locals,
22717 mf_build_check_statement_for): Likewise.
22718 * tree-nested.c (init_tmp_var, save_tmp_var,
22719 finalize_nesting_tree_1): Likewise.
22720 * tree-outof-ssa.c (insert_copy_on_edge,
22721 insert_backedge_copies): Likewise.
22722 * tree-profile.c (tree_gen_edge_profiler,
22723 tree_gen_ic_profiler): Likewise.
22724 * tree-scalar-evolution.c (scev_const_prop): Likewise.
22725 * tree-sra.c (sra_build_assignment): Likewise.
22726 * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
22727 * tree-ssa-math-opts.c (insert_reciprocals,
22728 execute_cse_sincos_1): Likewise.
22729 * tree-tailcall.c (adjust_accumulator_values,
22730 adjust_return_value): Likewise.
22731 * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
22732 * tree-vect-transform.c (vect_create_data_ref_ptr,
22733 bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
22734 vect_create_epilog_for_reduction, vectorizable_reduction,
22735 vectorizable_call, vectorizable_conversion,
22736 vectorizable_assignment, vectorizable_operation,
22737 vectorizable_type_demotion, vect_gen_widened_results_half,
22738 vect_permute_store_chain, vectorizable_store,
22739 vect_setup_realignment, vect_permute_load_chain,
22740 vectorizable_load, vectorizable_condition,
22741 vect_create_cond_for_align_checks): Likewise.
22742 * tree-vrp.c (build_assert_expr_for): Likewise.
22743
22744 2007-03-08 Ian Lance Taylor <iant@google.com>
22745
22746 * tree-vrp.c: Include "intl.h".
22747 (usable_range_p): New static function.
22748 (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
22749 overflowed values, juts set *strict_overflow_p.
22750 (compare_values): Only return -2 if one of the operands is not a
22751 constant.
22752 (compare_ranges): Call usable_range_p.
22753 (compare_range_with_value): Likewise.
22754 (vrp_evaluate_conditional_warnv): Rename from
22755 vrp_evaluate_conditional. Make static. Change all callers.
22756 (vrp_evaluate_conditional): New function.
22757 (simplify_div_or_mod_using_ranges): Issue warning about reliance
22758 on signed overflow.
22759 (simplify_abs_using_ranges): Likewise.
22760 (simplify_stmt_for_jump_threading): Add within_stmt parameter.
22761 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
22762 within_stmt parameter.
22763 * tree-ssa-propagate.c (fold_predicate_in): Update call to
22764 vrp_evaluate_conditional.
22765 * tree-ssa-threadedge.c
22766 (record_temporary_equivalences_from_stmts_at_dest): Change
22767 simplify parameter to take a second tree parameter.
22768 (simplify_control_stmt_condition): Likewise.
22769 (thread_across_edge): Likewise.
22770 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
22771 (thread_across_edge): Likewise.
22772 * Makefile.in (tree-vrp.o): Depend upon intl.h.
22773
22774 2007-03-08 Uros Bizjak <ubizjak@gmail.com>
22775
22776 * config/i386/i386.h (TARGET_SAHF): New define.
22777 * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
22778 Also enable for m_K8, m_AMDFAM10 and m_CORE2.
22779 (x86_sahf): New global variable.
22780 (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode
22781 pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and
22782 nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set
22783 in processor flags. Do not unconditionally disable TARGET_USE_SAHF
22784 for 64-bit.
22785 (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
22786 (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
22787 when expanding fcomi/sahf based tests.
22788 (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
22789 expanding sahf based alternative. Emit sahf based sequence when
22790 optimizing for code size.
22791 * config/i386/i386.md (x86_sahf_1): Do not disable for
22792 TARGET_64BIT, enable for TARGET_SAHF.
22793
22794 2007-03-08 Martin Michlmayr <tbm@cyrius.com>
22795
22796 * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
22797 spurious whitespace from error message.
22798
22799 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
22800
22801 PR c++/30852
22802 * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
22803
22804 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
22805
22806 * c-decl.c (grokdeclarator): Disable warnings for anonymous
22807 bitfields.
22808 * tree-sra.c (instantiate_element): Propagate disabled warnings
22809 from the element itself to the created variable.
22810
22811 2007-03-07 Richard Henderson <rth@redhat.com>
22812
22813 PR target/30848
22814 * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
22815 silently fix up the stack in the case of a missing register.
22816
22817 2007-03-07 Paul Brook <paul@codesourcery.com>
22818
22819 * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
22820
22821 2007-03-07 Joseph Myers <joseph@codesourcery.com>
22822
22823 * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
22824 New.
22825 (phase1_vrs): Use them.
22826 (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
22827 (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
22828 __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
22829 (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
22830 __gnu_Unwind_Restore_WMMXC if required.
22831 (_Unwind_VRS_Pop): Implement iWMMXt support.
22832 * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
22833 gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
22834 gnu_Unwind_Save_WMMXC): Define.
22835
22836 2007-03-07 Richard Sandiford <richard@codesourcery.com>
22837
22838 * config/vxworks.h (vxworks_override_options): Declare.
22839 (VXWORKS_OVERRIDE_OPTIONS): Use it.
22840 * config/vxworks.c: Include target.h and toplev.h.
22841 (vxworks_override_options): New function.
22842 * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
22843
22844 2007-03-07 Andreas Krebbel <krebbel1@de.ibm.com>
22845
22846 * config/s390/s390.c (override_options): Don't emit an error when
22847 -mstack-size is used without providing -mstack-guard.
22848 (s390_emit_prologue): Choose stack_guard value automatically if not
22849 provided via command line.
22850 * doc/invoke.texi: Adjust description of -mstack-guard and
22851 -mstack-size.
22852
22853 2007-03-07 Richard Sandiford <richard@codesourcery.com>
22854
22855 * config/i386/i386.c (output_set_got): Add a GOT initialization
22856 sequence for VxWorks PIC.
22857 (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
22858 around labels as well as symbols. Use gotoff_operand instead
22859 of local_symbolic_operand.
22860 (legitimize_pic_address): Use gotoff_operand instead of
22861 local_symbolic_operand. Use @GOT accesses for labels as
22862 well as symbols.
22863 (ix86_output_addr_diff_elt): Use PC-relative rather than
22864 GP-relative offsets for VxWorks PIC.
22865 (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
22866 no_new_pseudos. Check whether the returned register is op0.
22867 * config/i386/i386.md (tablejump): Use PC-relative rather than
22868 GP-relative offsets for VxWorks PIC.
22869 * config/i386/predicates.md (gotoff_operand): New predicate.
22870
22871 2007-03-06 Richard Sandiford <richard@codesourcery.com>
22872
22873 * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
22874 before defining.
22875 * config/vxworks-dummy.h: New file.
22876 * config/i386/i386.h: Include it.
22877
22878 2007-03-07 Alexandre Oliva <aoliva@redhat.com>
22879
22880 * dwarf2out.c (is_inlined_entry_point): New
22881 (add_high_low_attributes): Emit DW_AT_entry_pc along with
22882 DW_AT_ranges if the first subblock is the entry point.
22883
22884 2007-03-06 David Daney <ddaney@avtrex.com>
22885
22886 * doc/install.texi (mips-*-*): Change recommended binutils
22887 version.
22888
22889 2007-03-06 Anatoly Sokolov <aesok@post.ru>
22890
22891 * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
22892 ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
22893 devices.
22894 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
22895 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
22896
22897 2007-03-06 Jan Hubicka <jh@suse.cz>
22898
22899 * errors.h (warning, error, fatal, internal_error): Mark as cold.
22900 * predict.c (maybe_hot_bb): Cold functions are never hot; hot
22901 functions are hot.
22902 (probably_cold_bb_p): Cold functions are cold.
22903 (probably_never_executed_bb_p): Cold functions are cold.
22904 (tree_bb_level_predictions): Predict calls to cold functions as not
22905 taken.
22906 (compute_function_frequency): Check hot/cold attributes.
22907 * function.h (function_frequency): Update comments.
22908 * predict.def (PRED_COLD_FUNCTION): Predict cold function.
22909 * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
22910 (c_common_att): Add cold and hot.
22911
22912 * doc/extend.texi (hot,cold attributes): Document.
22913
22914 2007-03-06 Andrew Haley <aph@redhat.com>
22915
22916 * function.c (expand_function_end): Move blockage to just after we
22917 emit the label for the naked return from the function.
22918
22919 2007-03-06 Richard Sandiford <richard@codesourcery.com>
22920
22921 * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
22922 before redefining.
22923
22924 2007-03-06 Jan Hubicka <jh@suse.cz>
22925
22926 * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
22927 loaded for constant large models. Non-large 64bit PIC can do.
22928 * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
22929 * cmodel.h: Add LARGE PIC.
22930 * i386.md (UNSPEC_PLTOFF): New.
22931 (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
22932 unspecs as needed.
22933 (*call_1_rex64): Disable for large models.
22934 (*call_1_rex64_large): New.
22935 (*call_value_1_rex64): Disable for large models.
22936 (*call_value_1_rex64_large): New.
22937 (set_rip_rex4): New.
22938 (set_got_offset_rex64): New.
22939 * predicates.md (constant_call_address_operand): For large model
22940 constant calls are not possible.
22941 * i386-protos.h (construct_plt_address): Declare.
22942 * i386.c (override_options): Accept large models.
22943 (ix86_expand_prologue): Expand large PIC GOT pointer load.
22944 (legitimate_constant_p): Add new UNSPECs.
22945 (legitimate_pic_operand_p): Likewise.
22946 (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
22947 (legitimize_pic_address): Do easy RIP relative way for TLS only for
22948 non-large model.
22949 (output_pic_addr_const): Add PLTOFF.
22950 (ix86_output_addr_diff_elt): Output 64bit tables when needed.
22951 (ix86_expand_move): Legitimize pic address when in PIC mode.
22952 (construct_plt_address): New function.
22953 (ix86_expand_call): Offload the address to register and use GOT
22954 pointer for large model.
22955 * invoke.texi (mcmodel=large): Update documentation.
22956
22957 2007-03-06 Richard Henderson <rth@redhat.com>
22958
22959 * config/i386/i386.c (x86_use_leave, x86_push_memory,
22960 x86_zero_extend_with_and, x86_movx, x86_double_with_add,
22961 x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
22962 x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
22963 x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
22964 x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
22965 x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
22966 x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
22967 x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
22968 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
22969 x86_partial_reg_dependency, x86_memory_mismatch_stall,
22970 x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
22971 x86_sse_partial_reg_dependency, x86_sse_split_regs,
22972 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
22973 x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
22974 x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
22975 x86_schedule, x86_use_bt, x86_pad_returns,
22976 x86_use_xchgb): Merge into ...
22977 (ix86_tune_features): ... here. New array.
22978 (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
22979 x86_bswap): Merge into ...
22980 (ix86_arch_features): ... here. New array.
22981 (x86_3dnow_a): Remove.
22982 (x86_accumulate_outgoing_args): Make static.
22983 (x86_arch_always_fancy_math_387): Make static.
22984 (ix86_tune_mask, ix86_arch_mask): Move ...
22985 (override_options): ... to local variables here. Apply the
22986 appropriate mask to each element of ix86_arch_features and
22987 ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF
22988 as were done in the old macros.
22989 (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
22990 * config/i386/i386.h (x86_use_leave, x86_push_memory,
22991 x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
22992 x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
22993 x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
22994 x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
22995 x86_read_modify_write, x86_read_modify, x86_split_long_moves,
22996 x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
22997 x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
22998 x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
22999 x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
23000 x86_partial_reg_dependency, x86_memory_mismatch_stall,
23001 x86_accumulate_outgoing_args, x86_prologue_using_move,
23002 x86_epilogue_using_move, x86_decompose_lea,
23003 x86_arch_always_fancy_math_387, x86_shift1,
23004 x86_sse_partial_reg_dependency, x86_sse_split_regs,
23005 x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
23006 x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
23007 x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
23008 x86_use_incdec, x86_pad_returns, x86_bswap,
23009 x86_partial_flag_reg_stall): Remove.
23010 (enum ix86_tune_indices): New.
23011 (ix86_tune_features): New.
23012 (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
23013 TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
23014 TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
23015 TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
23016 TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
23017 TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
23018 TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
23019 TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
23020 TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
23021 TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
23022 TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
23023 TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
23024 TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
23025 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
23026 TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
23027 TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
23028 TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
23029 TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
23030 TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
23031 TARGET_EXT_80387_CONSTANTS): Use it.
23032 (enum ix86_arch_indices): New.
23033 (ix86_arch_features): New.
23034 (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
23035 TARGET_BSWAP): Use it.
23036 (ix86_tune_mask, ix86_arch_mask): Remove.
23037
23038 2007-03-06 Joseph Myers <joseph@codesourcery.com>
23039
23040 PR bootstrap/31020
23041 * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
23042 Define using $${sysroot_headers_suffix}.
23043 * configure: Regenerate.
23044 * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
23045 multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
23046 defined.
23047 * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
23048 * gcc.c (print_sysroot_headers_suffix): New.
23049 (option_map): Include --print-sysroot-headers-suffix.
23050 (display_help): Mention -print-sysroot-headers-suffix.
23051 (process_command): Handle -print-sysroot-headers-suffix.
23052 (do_spec_1): Append multilib directory to include-fixed path if
23053 sysroot suffixes in use.
23054 (main): Handle -print-sysroot-headers-suffix.
23055 * Makefile.in (start.encap): Don't depend on xlimits.h
23056 (xlimits.h): Remove.
23057 (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of
23058 limits.h for each multilib in fixinc_list.
23059 (fixinc_list, s-fixinc_list): New.
23060 (stmp-fixinc): Depend on fixinc_list. If not copying headers,
23061 generate them for each multilib in fixinc_list.
23062 (stmp-fixproto): Use include-fixed. Run fixproto for each
23063 multilib in fixinc_list.
23064 (mostlyclean): Don't remove xlimits.h.
23065 (clean): Remove include-fixed.
23066 (real-install-headers-tar, real-install-headers-cpio,
23067 real-install-headers-cp): Don't copy include, only include-fixed.
23068 (install-mkheaders): Depend on fixinc_list. Don't depend on
23069 xlimits.h. Save limits.h files for each multilib in fixinc_list.
23070 Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in
23071 SYSTEM_HEADER_DIR setting in mkheaders.conf.
23072
23073 2007-03-06 Jan Hubicka <jh@suse.cz>
23074
23075 * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
23076 NANs easilly.
23077
23078 2007-03-06 Richard Sandiford <richard@codesourcery.com>
23079
23080 * configure.ac: Allow tm_file to contain build-directory files.
23081 * configure: Regenerate.
23082 * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
23083 * config/m68k/t-uclinux (sysroot-suffix.h): New target.
23084 * config/m68k/print-sysroot-suffix.sh: New file.
23085
23086 2007-03-06 Richard Sandiford <richard@codesourcery.com>
23087
23088 * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
23089 of pic_offset_table_rtx if reload_completed.
23090 (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
23091 PIC_OFFSET_TABLE_REGNUM.
23092 * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
23093 return true.
23094 (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
23095 (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
23096
23097 2007-03-06 Richard Sandiford <richard@codesourcery.com>
23098
23099 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
23100 functions that call eh_return.
23101
23102 2007-03-06 Richard Sandiford <richard@codesourcery.com>
23103
23104 * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
23105 functions that need a constant pool.
23106
23107 2007-03-06 Richard Sandiford <richard@codesourcery.com>
23108
23109 PR target/28181
23110 * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
23111 (m68k_preferred_reload_class): Likewise.
23112 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
23113 (SECONDARY_RELOAD_CLASS): Define.
23114 (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
23115 (LIMIT_RELOAD_CLASS): Delete.
23116 * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
23117 registers from storing bytes.
23118 (m68k_secondary_reload_class): New function.
23119 (m68k_preferred_reload_class): Likewise.
23120
23121 2007-03-06 Richard Sandiford <richard@codesourcery.com>
23122
23123 * config/m68k/m68k.c (m68k_save_reg): Remove special case for
23124 leaf functions.
23125 (m68k_expand_prologue): Likewise.
23126
23127 2007-03-06 Richard Sandiford <richard@codesourcery.com>
23128
23129 * config/m68k/m68k-protos.h (output_sibcall): Declare.
23130 (mips_expand_epilogue): Add a bool parameter.
23131 (m68k_legitimize_sibcall_address): Declare.
23132 * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
23133 (m68k_expand_epilogue): Add a parameter to select between sibling
23134 and normal epilogues. Only generate a return for the latter.
23135 (m68k_ok_for_sibcall_p): New function.
23136 (m68k_legitimize_sibcall_address, output_sibcall): New functions.
23137 * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
23138 (sibcall_value, *sibcall_value): Likewise.
23139 (*call, *call_value): Require !SIBLING_CALL_P.
23140 (epilogue): Update call to m68k_expand_epilogue.
23141 (sibcall_epilogue): New pattern.
23142 * config/m68k/predicates.md (const_call_operand): Say that this
23143 predicate applies to sibling calls too.
23144 (sibcall_operand): New predicate.
23145
23146 2007-03-06 Richard Sandiford <richard@codesourcery.com>
23147
23148 * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
23149 alternatives as movsi_cf.
23150 (movsf_cf_hard): Add commentary.
23151
23152 2007-03-06 Kazu Hirata <kazu@codesourcery.com>
23153 Richard Sandiford <richard@codesourcery.com>
23154
23155 * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
23156 (m68k_movem_pattern_p, m68k_output_movem): Likewise.
23157 (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
23158 * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
23159 as being live on exit from an interrupt function.
23160 (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
23161 * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
23162 (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
23163 (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
23164 (m68k_interrupt_function_p): Globalize.
23165 (m68k_compute_frame_layout): Remove reverse mask code.
23166 (m68k_emit_movem, m68k_set_frame_related): New functions.
23167 (m68k_output_function_prologue): Delete in favor of...
23168 (m68k_expand_prologue): ...this new function.
23169 (m68k_output_function_epilogue): Delete in favor of...
23170 (m68k_expand_epilogue): ...this new function.
23171 (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
23172 functions.
23173 (print_operand): Handle %?.
23174 * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
23175 (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
23176 (prologue, epilogue): New patterns.
23177 (return): Turn into a define_expand.
23178 (*return): New pattern, derived from old "return" pattern. Use rte
23179 rather than rts for interrupt functions. Only use rtd if the pop
23180 count is nonzero.
23181 (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
23182 (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
23183 (link, *link, unlink, *unlink, load_got): Likewise.
23184
23185 2007-03-06 Richard Sandiford <richard@codesourcery.com>
23186
23187 PR target/23482
23188 PR target/17114
23189 * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
23190 (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
23191 (m68k_matches_q_p, m68k_matches_u_p): Likewise.
23192 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
23193 and m68k_matches_u_p.
23194 (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
23195 (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
23196 (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
23197 (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
23198 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
23199 (REG_STRICT_P): New macro.
23200 (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
23201 PCREL_GENERAL_OPERAND_OK.
23202 (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and
23203 m68k_legitimate_base_reg_p.
23204 (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
23205 (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
23206 (PIC_CASE_VECTOR_ADDRESS): Update comment.
23207 * config/m68k/m68k.c (m68k_address): New structure.
23208 (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
23209 (m68k_decompose_index, m68k_legitimate_constant_address_p)
23210 (m68k_jump_table_ref_p, m68k_decompose_address)
23211 (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
23212 (m68k_matches_u_p): New functions.
23213 (print_operand_address): Rewrite to use m68k_decompose_index.
23214
23215 2007-03-05 David Taylor <dtaylor@emc.com>
23216
23217 * gcc.c: Correct copyright date in --version output.
23218
23219 2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23220
23221 * pa.md: In unamed move patterns, disparge copies between general
23222 and floating point registers using '?' modifier. Don't include 'f'
23223 constraint for register preferences in DImode, SImode, HImode and
23224 QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
23225 Remove constraints for copies between general and floating registers
23226 in soft-float DFmode pattern.
23227 (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
23228 floating register.
23229 (movsf): Likewise.
23230
23231 2007-03-05 Mike Stump <mrs@apple.com>
23232
23233 * c-common.c (targetcm): Add.
23234 * c-opts.c (c_common_handle_option): Handle language specific
23235 target options.
23236 * opts.c (handle_option): Verify language for target options, if
23237 any are given.
23238 * opth-gen.awk: Add CL_LANG_ALL.
23239 * target-def.h (TARGET_HANDLE_C_OPTION): Add.
23240 (TARGETCM_INITIALIZER): Add.
23241 * target.h (struct gcc_targetcm): Add.
23242 (targetcm): Add.
23243 * targhooks.c (default_handle_c_option): Add.
23244 * targhooks.h (default_handle_c_option): Add.
23245 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
23246
23247 * config/darwin.opt (iframework): Add.
23248 * config/darwin.h (TARGET_HAS_TARGETCM): Add.
23249 * config/darwin-c.c (handle_c_option): Add.
23250 (TARGET_HANDLE_C_OPTION): Add.
23251 (targetcm): Add.
23252 * doc/invoke.texi (Darwin Options): Add -iframework.
23253
23254 2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23255
23256 * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
23257 conversion.
23258
23259 2007-03-05 Ian Lance Taylor <iant@google.com>
23260
23261 * c.opt (fgnu89-inline): New option.
23262 * c-opts.c (c_common_post_options): Set default value for
23263 flag_gnu89_inline.
23264 * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
23265 (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
23266 inline functions.
23267 (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
23268 (grokdeclarator, start_function): Likewise.
23269 * c-cppbuiltin.c (c_cpp_builtins): Define either
23270 __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
23271 * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
23272 (C Dialect Options): Document -fgnu89-inline.
23273 * doc/extend.texi (Function Attributes): Explain what the
23274 gnu_inline attribute does.
23275 * doc/cpp.texi (Common Predefined Macros): Document
23276 __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
23277
23278 2007-03-05 Ian Lance Taylor <iant@google.com>
23279
23280 PR tree-optimization/31034
23281 * tree-vrp.c (extract_range_from_assert): Don't try to handle a
23282 half-range if the other side is an overflow infinity.
23283
23284 2007-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
23285
23286 * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
23287 (bfin*-linux-uclibc*): New configuration.
23288 * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
23289 defining.
23290 * config/bfin/linux.h: New file.
23291 * config/bfin/libgcc-bfin.ver: New file.
23292 * config/bfin/t-bfin-uclinux: New file.
23293 * config/bfin/t-bfin-linux: New file.
23294 * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
23295 (TARGET_OS_CPP_BUILTINS): New macro.
23296
23297 2007-03-05 Richard Guenther <rguenther@suse.de>
23298
23299 * fold-const.c (fold_binary): Remove duplicate folding
23300 of comparison of non-null ADDR_EXPR against null.
23301
23302 2007-03-05 Richard Guenther <rguenther@suse.de>
23303 Dorit Nuzman <dorit@il.ibm.com>
23304
23305 PR tree-optimization/26420
23306 * tree-vectorizer.c (vectorize_loops): Bail out early if there
23307 are no loops in the function. Only print the number of
23308 vectorized loops if it is greater than zero or we are supposed
23309 to print information about unvectorized loops.
23310
23311 2007-03-05 Revital Eres <eres@il.ibm.com>
23312
23313 * gcc.dg/var-expand1.c: New test.
23314 * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
23315 when an accumulator is expanded.
23316
23317 2007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
23318
23319 PR other/30465
23320 * c-common.c (convert_and_check): Don't give warnings for
23321 conversion if 'expr' already overflowed.
23322
23323 2007-03-04 Roger Sayle <roger@eyesopen.com>
23324
23325 PR middle-end/30744
23326 * fold-const.c (fold_comparison): Enforce type consistency when
23327 transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
23328
23329 2007-03-04 Zdenek Dvorak <dvorakz@suse.cz>
23330
23331 * tree-ssa-address.c (create_mem_ref): Do not put an expression
23332 containing a cast to the base of TARGET_MEM_REF.
23333
23334 2007-03-04 Martin Michlmayr <tbm@cyrius.com>
23335
23336 * tree.c (tree_contains_struct_check_failed): Remove spurious
23337 whitespace from error message.
23338
23339 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
23340
23341 PR target/30406
23342 * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
23343 instead of precision.
23344
23345 2007-03-04 Roman Zippel <zippel@linux-m68k.org>
23346 Nathan Sidwell <nathan@codesourcery.com>
23347
23348 * emit-rtl.c (find_auto_inc): New.
23349 (try_split): recreate REG_INC notes,
23350 Use regular for loops rather than whiles.
23351
23352 2007-03-03 Andreas Schwab <schwab@suse.de>
23353
23354 * configure.ac (HAVE_AS_REL16): Move test back to correct place.
23355 * configure: Regenerate.
23356
23357 2007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23358
23359 * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
23360 flag_rounding_math, not flag_unsafe_math_optimizations.
23361
23362 * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
23363 fold_build2.
23364 * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
23365 alpha_fold_vector_minmax): Likewise.
23366 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
23367 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
23368
23369 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
23370
23371 * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
23372 (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
23373 if the lhs has side-effects.
23374 <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
23375
23376 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
23377
23378 * config/i386/i386.h (TUNEMASK): Remove define.
23379 (ARCHMASK): Remove define.
23380 (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
23381 Use ix86_arch_mask variable instead of ARCHMASK.
23382 * config/i386/i386.c (override_options): Ditto.
23383 (standard_80387_constant_p): Ditto.
23384
23385 2007-03-02 Ian Lance Taylor <iant@google.com>
23386
23387 Used signed infinities in VRP.
23388 * tree-vrp.c (uses_overflow_infinity): New static function.
23389 (supports_overflow_infinity): New static function.
23390 (make_overflow_infinity): New static function.
23391 (negative_overflow_infinity): New static function.
23392 (positive_overflow_infinity): New static function.
23393 (is_negative_overflow_infinity): New static function.
23394 (is_positive_overflow_infinity): New static function.
23395 (is_overflow_infinity): New static function.
23396 (overflow_infinity_range_p): New static function.
23397 (compare_values_warnv): New function split out of compare_values.
23398 (compare_value): Call it.
23399 (set_value_range_to_nonnegative): Add overflow_infinity
23400 parameter. Change caller.
23401 (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
23402 Change callers.
23403 (vrp_expr_computes_nonzero): Likewise.
23404 (compare_ranges, compare_range_with_value): Likewise.
23405 (compare_name_with_value, compare_names): Likewise.
23406 (vrp_evaluate_conditional): Likewise.
23407 (set_value_range): Handle infinity
23408 (vrp_operand_equal_p, operand_less_p): Likewise.
23409 (extract_range_from_assert): Likewise.
23410 (vrp_int_const_binop): Likewise.
23411 (extract_range_from_binary_expr): Likewise.
23412 (extract_range_from_unary_expr): Likewise.
23413 (extract_range_from_comparison): Likewise.
23414 (extract_range_from_expr): Likewise.
23415 (dump_value_range): Likewise.
23416 (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
23417 (test_for_singularity): Likewise.
23418 (vrp_int_const_binop): Remove inline qualifier.
23419 (adjust_range_with_scev): Add comment.
23420 * tree-flow.h (vrp_evaluate_conditional): Update declaration.
23421
23422 2007-03-02 Diego Novillo <dnovillo@redhat.com>
23423
23424 * tree-ssa-structalias.c (could_have_pointers): Tidy.
23425 (get_constraint_for): Likewise.
23426 (do_structure_copy): Likewise.
23427 (find_func_aliases): Fix references to MODIFY_EXPR.
23428 (intra_create_variable_infos): Tidy.
23429 * tree-ssa-operands.c (add_virtual_operand): Add argument
23430 IS_CALL_SITE.
23431 When adding members of alias sets, if IS_CALL_SITE is true and
23432 the symbol is not call-clobbered, skip it.
23433 Adjust all callers.
23434
23435 2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
23436
23437 * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
23438 entry by means of emit_insn_at_entry.
23439
23440 2007-03-02 Richard Henderson <rth@redhat.com>
23441
23442 * expr.h (promoted_input_arg): Remove decl.
23443 * function.c (promoted_input_arg): Merge into ...
23444 * combine.c (setup_incoming_promotions): ... only caller.
23445 Rearrange to avoid double loop.
23446
23447 2007-03-02 Ben Elliston <bje@au.ibm.com>
23448 Peter Bergner <bergner@vnet.ibm.com>
23449 Janis Johnson <janis187@us.ibm.com>
23450
23451 * config/rs6000/dfp.md: New file.
23452 * config/rs6000/rs6000.md: Include dfp.md.
23453 (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
23454 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
23455 and TDmode decimal float modes in FP registers.
23456 (num_insns_constant): Likewise.
23457 (rs6000_legitimate_offset_address_p): Likewise.
23458 (rs6000_legitimize_address): Likewise.
23459 (rs6000_legitimize_reload_address): Likewise.
23460 (rs6000_legitimate_address): Likewise.
23461 (rs6000_emit_move): Likewise.
23462 (function_arg_boundary): Likewise.
23463 (function_arg_advance): Likewise.
23464 (rs6000_darwin64_record_arg_recurse): Likewise.
23465 (function_arg): Likewise.
23466 (rs6000_gimplify_va_arg): Likewise.
23467 (rs6000_split_multireg_move): Likewise.
23468 (rs6000_output_function_epilogue): Likewise.
23469 (rs6000_output_function_epilogue): Likewise.
23470 (rs6000_register_move_cost): Likewise.
23471 (rs6000_function_value): Likewise.
23472 (rs6000_libcall_value): Likewise.
23473
23474 2007-03-02 Richard Sandiford <richard@codesourcery.com>
23475
23476 * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
23477
23478 2007-03-02 Richard Sandiford <richard@codesourcery.com>
23479
23480 * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
23481 Use $MULTIDIR to choose between the kernel and RTP headers,
23482 and use $WIND_BASE and $WIND_USR to locate them.
23483
23484 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
23485
23486 * config/i386/i386.c (override_options): Put initialization of
23487 ix86_tune_mask and ix86_arch_mask to the correct place.
23488
23489 2007-03-02 Uros Bizjak <ubizjak@gmail.com>
23490 Michael Meissner <michael.meissner@amd.com>
23491
23492 PR target/31019
23493 * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
23494 (ARCHMASK): Define.
23495 (TARGET_CMOVE): Use ARCHMASK.
23496 (TARGET_CMPXCHG): Ditto.
23497 (TARGET_CMPXCHG8B): Ditto.
23498 (TARGET_XADD): Ditto.
23499 (TARGET_BSWAP): Ditto.
23500 * config/i386/i386.c (ix86_tune_mask): New global variable.
23501 (ix86_arch_mask): Ditto.
23502 (override_options): Initialize ix86_tune_mask and
23503 ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
23504 target_flags.
23505
23506 2007-03-02 Ben Elliston <bje@au.ibm.com>
23507
23508 PR 30992
23509 * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
23510
23511 2007-03-02 Joseph Myers <joseph@codesourcery.com>
23512
23513 * target.h (init_dwarf_reg_sizes_extra): New target hook.
23514 * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
23515 * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
23516 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
23517 hook.
23518 * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
23519 rs6000_init_dwarf_reg_sizes_extra): New.
23520 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
23521 SPE register high parts.
23522
23523 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
23524
23525 * Makefile.in: Add install-pdf target as
23526 copied from automake v1.10 rules.
23527 * configure.ac: Add install-pdf to target list.
23528 * configure: Regenerate.
23529
23530 2007-03-01 Paul Brook <paul@codesourcery.com>
23531
23532 * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
23533 modes to LDRD for DImode.
23534 (output_move_double): Fixup out of range ldrd/strd.
23535 (vfp_secondary_reload_class): Rename...
23536 (coproc_secondary_reload_class): ... to this. Add wb argument.
23537 * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
23538 coproc_secondary_reload_class for CLASS_IWMMXT.
23539 (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
23540 * arm-protos.h (coproc_secondary_reload_class): Update prototype.
23541
23542 2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
23543
23544 * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the
23545 unroll factor by the estimated number of iterations.
23546 (loop_prefetch_arrays): Do not prefetch in loops that iterate less
23547 than prefetch latency.
23548
23549 * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
23550 decode_caches_intel, detect_caches_intel): New functions.
23551 (host_detect_local_cpu): Use detect_caches_amd and
23552 detect_caches_intel.
23553
23554 2007-03-01 Richard Henderson <rth@redhat.com>
23555
23556 * expr.c (emit_move_complex_push): Export.
23557 (emit_move_complex_parts): Split out from ...
23558 (emit_move_complex): ... here.
23559 * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
23560 * config/i386/i386.md (movcdi): New.
23561
23562 2007-03-01 Uros Bizjak <ubizjak@gmail.com>
23563
23564 * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
23565 size of mode1 to check for tieable modes in MMX case.
23566
23567 2007-03-01 Richard Sandiford <richard@codesourcery.com>
23568
23569 * Makefile.in (rtlanal.o): Depend on tree.h.
23570 * rtl.h (offset_within_section_p, split_const): Declare.
23571 * rtlanal.c: Include tree.h.
23572 (offset_within_block_p): New function, taken from
23573 mips_offset_within_object_p.
23574 (split_const): New function, taken from mips_split_const.
23575 * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
23576 Declare.
23577 * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
23578 (CONSTANT_ADDRESS_P): Only accept legitimate constants.
23579 (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
23580 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
23581 (m68k_illegitimate_symbolic_constant_p): New function.
23582 * config/m68k/m68k.md (movsi): Remove misleading predicates.
23583 If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
23584 symbolic constant that might be outside the symbol's section,
23585 move the symbol first and then add the offset.
23586 * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
23587 Override.
23588 * config/mips/mips.c (mips_split_const): Delete.
23589 (mips_offset_within_object_p): Delete.
23590 (mips_symbolic_constant_p): Use offset_within_section_p and
23591 split_const instead of mips_offset_within_object_p and
23592 mips_split_const.
23593 (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
23594 (mips_legitimize_const_move, print_operand_reloc)
23595 (mips_dangerous_for_la25_p): Use split_const instead of
23596 mips_split_const.
23597
23598 2007-02-28 Eric Christopher <echristo@apple.com>
23599
23600 * Makefile.in (install-include-dir): Don't rm -rf include.
23601
23602 2007-02-28 Richard Guenther <rguenther@suse.de>
23603
23604 PR middle-end/30364
23605 * fold-const.c (fold_binary): Do not associate expressions
23606 with more than one variable for integer types that do not wrap.
23607
23608 2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
23609
23610 * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
23611 Delete, and replace with...
23612 (fold_builtin_call_array): This. Update callers to use it.
23613 * fold-const.c (fold_build_call_list): Delete, and replace with...
23614 (fold_build_call_array): This.
23615 (fold_build_call_list_initializer): Delete, and replace with...
23616 (fold_build_call_array_initializer): This.
23617 * tree.h: Update declarations to reflect above changes.
23618
23619 * c-typeck.c (build_function_call): Store converted arguments
23620 in a stack-allocated array instead of building a list.
23621 (convert_arguments): Store arguments in the array passed in as an
23622 argument, and return the actual number of arguments.
23623 * c-format.c: (check_function_format): Pass arguments in an
23624 array instead of a list.
23625 * c-common.c (check_function_nonnull): Likewise.
23626 (check_function_sentinel): Likewise.
23627 (check_function_arguments): Likewise.
23628 * c-common.h: Update declarations to reflect above changes.
23629
23630 2007-02-28 Jan Hubicka <jh@suse.cz>
23631
23632 * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
23633 PRED_NEGATIVE_RETURN): Update outcomes.
23634
23635 2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
23636
23637 * calls.c (emit_library_call_value_1): Handle partial registers
23638 correctly when building up CALL_INSN_FUNCTION_USAGE.
23639
23640 2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23641
23642 * pa/predicates.md (move_src_operand): Allow zero for mode.
23643 * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
23644 move pattern.
23645
23646 2007-02-27 Uros Bizjak <ubizjak@gmail.com>
23647
23648 PR target/30970
23649 * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
23650 *movv2df_internal): Enable pattern only for valid operand
23651 combinations.
23652 * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
23653 tie only 128bit modes. For MMX registers, tie only 64bit modes.
23654
23655 2007-02-27 Mike Stump <mrs@apple.com>
23656
23657 * config/darwin-crt3.c: Avoid compilation when compiling for a
23658 kext multilib.
23659
23660 2007-02-27 Joseph Myers <joseph@codesourcery.com>
23661
23662 * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
23663 FIXED_INCLUDE_DIR.
23664 (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
23665 for fixed headers and limits.h.
23666 (install-include-dir, install-headers-tar, install-headers-cpio,
23667 install-headers-cp, real-install-headers-tar,
23668 real-install-headers-cpio, real-install-headers-cp): Handle
23669 include-fixed as well as include.
23670 (install-mkheaders): Don't install files that go only in include
23671 not include-fixed.
23672 * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
23673 from GCC_INCLUDE_DIR.
23674 * gcc.c (process_command): Remove special -BstageN/ handling.
23675 (do_spec_1): Add include-fixed directories.
23676
23677 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
23678
23679 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
23680 _smulsi3_highpart.
23681 * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
23682 New functions.
23683 * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
23684 patterns.
23685
23686 2007-02-27 Mark Mitchell <mark@codesourcery.com>
23687
23688 * c-common.c (get_priority): Add check for
23689 SUPPORTS_INIT_PRIORITY.
23690
23691 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
23692
23693 * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
23694
23695 * config/bfin/bfin.c: Include "cfglayout.h".
23696 (MAX_LSETUP_DISTANCE): New macro.
23697 (struct loop_info): New members incoming, incoming_src and
23698 incoming_dest. Delete member predecessor.
23699 (length_for_loop): New function.
23700 (bfin_optimize_loop): Handle more different loop structures.
23701 (bfin_discover_loop): Rework detection of predecessor blocks by
23702 examining incoming edges.
23703 (bfin_discover_loops, bfin_free_loops): New functions, broken out of
23704 bfin_reorg_loops.
23705 (bfin_reorder_loops): New function.
23706 (bfin_reorg_loops): Use these three new functions.
23707
23708 * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
23709 REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
23710 (CONSTRAINT_LEN): Add entry for 'q'.
23711 (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
23712 Add 'q' constraints.
23713 (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
23714 (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
23715
23716 * config/bfin/bfin.md (add_with_carry): New pattern.
23717 (s_or_u, su_optab, su_modifier): New code macros/attrs.
23718 (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
23719 <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
23720 support unsigned multiplies too. Removed incorrect commutativity from
23721 operand 1 constraint where appropriate.
23722 (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
23723 patterns.
23724 (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
23725 <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
23726 New patterns.
23727 (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
23728 usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
23729 usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
23730 usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
23731 usmulhisi_hh_huh): New patterns.
23732
23733 * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
23734 lshifthi3): Fix output template to use half reg for operand 2.
23735
23736 * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
23737 instead of R2.
23738
23739 * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
23740
23741 2007-02-27 Andreas Schwab <schwab@suse.de>
23742
23743 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
23744
23745 2007-02-27 Jan Hubicka <jh@suse.cz>
23746
23747 * predict.c (last_basic_block_p): Remove.
23748 (tree_estimate_probability): Update return heuristic for commonized
23749 return blocks.
23750
23751 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
23752
23753 * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
23754
23755 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
23756
23757 * doc/include/gcc-common.texi (versionsubtitle): New macro.
23758 * doc/cpp.texi: Standardize title page.
23759 * doc/cppinternals.texi: Likewise.
23760 * doc/gcc.texi: Standardize title page, remove version number
23761 from copyright page.
23762 * doc/gccint.texi: Likewise.
23763 * doc/install.texi: Standardize title page, add table of
23764 contents.
23765
23766 2007-02-26 Jan Hubicka <jh@suse.cz>
23767
23768 * predict.def: Set outcomes according to more recent results.
23769 (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
23770 Remove dead predictors.
23771 * predict.c (return_prediction): Fix pasto.
23772
23773 2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
23774
23775 * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
23776 change; avoid a memory leak when returning early.
23777
23778 2007-02-26 Mark Mitchell <mark@codesourcery.com>
23779
23780 * c-decl.c (static_ctors): Move to c-common.c.
23781 (static_dtors): Likewise.
23782 (finish_function): Use c_record_cdtor_fn.
23783 (build_cdtor): Move to c-common.c.
23784 (c_write_global_declarations): Use c_build_cdtor_fns.
23785 * c-common.h (static_ctors): Declare.
23786 (static_dtors): Likewise.
23787 (c_record_cdtor_fn): Likewise.
23788 (c_build_cdtor_fns): Likewise.
23789 * c-common.c (static_ctors): New variable.
23790 (static_dtors): Likewise.
23791 (c_record_cdtor_fn): New function.
23792 (build_cdtor): Move from c-decl.c
23793 (c_build_cdtor_fns): New function.
23794
23795 * output.h (assemble_addr_to_section): Declare.
23796 (get_cdtor_priority_section): Likewise.
23797 * varasm.c (assemble_addr_to_section): New function.
23798 (get_cdtor_priority_section): Likewise.
23799 (default_named_section_asm_out_destructor): Use them.
23800 (destor_dtor_section_asm_out_destructor): Likewise.
23801 (default_named_section_asm_out_constructor): Likewise.
23802 (default_ctor_section_asm_out_constructor): Likewise.
23803 * config.gcc (*-*-vxworks*): Include vxworks.o.
23804 * config/t-vxworks (vxworks.o): New target.
23805 * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
23806 (TARGET_ASM_CONSTRUCTOR): Define.
23807 (TARGET_ASM_DESTRUCTOR): Likewise.
23808 (vxworks_asm_out_constructor): Declare.
23809 (vxworks_asm_out_destructor): Likewise.
23810
23811 * c-common.c (get_priority): Check that we have not just an
23812 INTEGER_CST, but an integer constant with integeral type.
23813
23814 2007-02-25 Uros Bizjak <ubizjak@gmail.com>
23815
23816 PR tree-optimization/30938
23817 * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
23818 use &dt[nargs-1] instead of &dt[nargs] in the call to
23819 vect_is_simple_use().
23820
23821 2007-02-25 Ulrich Weigand <uweigand@de.ibm.com>
23822
23823 * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
23824 from register elimination as PRE_MODIFY / POST_MODIFY increments.
23825 Do not attempt to handle MEM inside auto-inc expressions.
23826 * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
23827 of a register modified by an auto-inc expression. However, do handle
23828 elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
23829 (elimination_effects): Prohibit elimination of a register modified
23830 by an auto-inc expression. Disable register elimination rules whose
23831 target register is modified by an auto-inc expression with variable
23832 increment.
23833
23834 2007-02-25 Zdenek Dvorak <dvorakz@suse.cz>
23835
23836 * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
23837 off-by-one error.
23838 (array_at_struct_end_p): New function.
23839 (idx_infer_loop_bounds): Use it.
23840 (estimate_numbers_of_iterations_loop): Export.
23841 * predict.c (predict_loops): Use estimated_loop_iterations_int.
23842 Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
23843 (tree_estimate_probability): Call record_loop_exits.
23844 * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
23845 (estimated_loop_iterations, estimated_loop_iterations_int,
23846 estimated_loop_iterations_tree): New functions.
23847 (analyze_siv_subscript_cst_affine,
23848 compute_overlap_steps_for_affine_1_2,
23849 analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
23850 (analyze_miv_subscript): Use estimated_loop_iterations_tree.
23851 * predict.def (PRED_LOOP_ITERATIONS): Update comment.
23852 (PRED_LOOP_ITERATIONS_GUESSED): New.
23853 * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
23854 * cfgloop.h (estimate_numbers_of_iterations_loop,
23855 estimated_loop_iterations_int): Declare.
23856
23857 2007-02-25 Mark Mitchell <mark@codesourcery.com>
23858
23859 * doc/extend.texi: Document optional priority argument to
23860 constructors and destructors.
23861 * tree.c (init_priority_for_decl): Adjust GTY markers.
23862 (init_ttree): Use priority-info hash functions for
23863 init_priority_for_decl.
23864 (tree_map_eq): Rename to ...
23865 (tree_map_base_eq): ... this.
23866 (tree_map_marked_p): Rename to ...
23867 (tree_map_base_marked_p): ... this.
23868 (tree_map_base_hash): New function.
23869 (decl_init_priority_lookup): Rework.
23870 (decl_fini_priority_lookup): New function.
23871 (decl_priority_info): New function.
23872 (decl_init_priority_insert): Use it.
23873 (decl_fini_priority_insert): Likewise.
23874 (decl_restrict_base_lookup): Adjust for refactoring of tree_map
23875 hierarchy.
23876 (decl_restrict_base_insert): Likewise.
23877 (decl_debug_expr_insert): Likewise.
23878 (decl_value_expr_lookup): Likewise.
23879 (decl_value_expr_insert): Likewise.
23880 * tree.h (priority_type): New type.
23881 (decl_init_priority_lookup): Use priority_type.
23882 (decl_fini_priority_lookup): New function.
23883 (decl_init_priority_insert): Use priority_type.
23884 (decl_fini_priority_insert): New function.
23885 (DECL_HAS_INIT_PRIORITY): Tweak comments.
23886 (DECL_INIT_PRIORITY): Likewise.
23887 (SET_DECL_INIT_PRIORITY): Add comment.
23888 (DECL_FINI_PRIORITY): New macro.
23889 (SET_DECL_FINI_PRIORITY): Likewise.
23890 (DEFAULT_INIT_PRIORITY): Document.
23891 (MAX_INIT_PRIORITY): Likewise.
23892 (MAX_RESERVED_INIT_PRIORITY): Likewise.
23893 (tree_map_base): New type.
23894 (tree_map_base_eq): New function.
23895 (tree_map_base_hash): Likewise.
23896 (tree_map_base_marked_p): Likewise.
23897 (tree_map): Inherit from tree_map_base.
23898 (tree_map_eq): Make it a macro.
23899 (tree_map_marked_p): Likewise.
23900 (tree_int_map): Inherit from tree_map_base.
23901 (tree_int_map_eq): Make it a macro.
23902 (tree_int_map_hash): Likewise.
23903 (tree_int_map_marked_p): Likewise.
23904 (tree_priority_map): New type.
23905 (tree_priority_map_eq): New macro.
23906 (tree_priority_map_hash): Likewise.
23907 (tree_priority_map_marked_p): Likewise.
23908 * varasm.c (emults_decl): Adjust for refactoring of tree_map
23909 hierarchy.
23910 (emutls_common_1): Likewise.
23911 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
23912 * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
23913 of tree_map hierarchy.
23914 * tree-cfg.c (move_stmt_r): Likewise.
23915 (new_label_mapper): Likewise.
23916 * c-tree.h (c_expand_body): Move to ...
23917 * c-common.h (c_expand_body): ... here.
23918 * c-decl.c (c_expand_body): Move to ...
23919 * c-common.c (c_expand_body): ... here.
23920 (c_common_attribute_table): Allow 1 argument for the constructor
23921 and destructor attributes.
23922 (get_priority): New function.
23923 (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
23924 (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
23925
23926 2007-02-24 Jan Hubicka <jh@suse.cz>
23927
23928 PR middle-end/30509
23929 * tree-inline.c (copy_bb): Produce exact copy of EH info when
23930 copying for inlining.
23931
23932 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
23933 Jan Hubicka <jh@suse.cz>
23934
23935 PR target/30778
23936 * i386.c (counter_mode): New function.
23937 (expand_set_or_movmem_via_loop): Use it.
23938 (expand_movmem_epilogue): Likewise; fix pasto.
23939 (ix86_expand_movmem): Do emit guard even for constant counts.
23940 (ix86_expand_setmem): Likewise.
23941
23942 2007-02-25 Nick Clifton <nickc@redhat.com>
23943
23944 * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
23945 (JUMP_TABLES_IN_TEXT_SECTION): Define.
23946
23947 2007-02-24 Uros Bizjak <ubizjak@gmail.com>
23948
23949 PR target/30770
23950 * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
23951 count argument with 0x10, not with 0x16.
23952 (expand_setmem_epilogue): Ditto.
23953
23954 2007-02-24 Mike Stump <mrs@apple.com>
23955
23956 * config/i386/i386.c (output_pic_addr_const): Stubify optimized
23957 symbols.
23958
23959 2007-02-24 Richard Guenther <rguenther@suse.de>
23960
23961 PR middle-end/30951
23962 * fold-const.c (fold_binary): Fold x +- CST op x for
23963 EQ_EXPR and NE_EXPR.
23964
23965 2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23966
23967 * pa.md (muldi3): Force subregs to registers in 64-bit expander.
23968
23969 2007-02-24 Jan Hubicka <jh@suse.cz>
23970
23971 * cgraphunit.c (decide_is_function_needed): Honor
23972 -fkeep-inline-functions.
23973
23974 2007-02-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
23975
23976 * builtins.c (fold_builtin_modf): New.
23977 (fold_builtin_2): Use it.
23978
23979 2007-02-24 Bernd Schmidt <bernd.schmidt@analog.com>
23980
23981 * loop-iv.c (implies_p): Detect additional cases where A implies B.
23982 (determine_max_iter): Take additional LOOP arg; all callers changed.
23983 Lose broken logic dealing with PLUS. Try to limit the upper bound by
23984 one using simplifications.
23985 (simplify_using_initial_values): Return if the expression becomes
23986 invalid due to altered regs.
23987
23988 2007-02-23 DJ Delorie <dj@redhat.com>
23989
23990 * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
23991
23992 2007-02-23 Mike Stump <mrs@apple.com>
23993
23994 * tlink.c (scan_linker_output): Parse linker messages from
23995 darwin9's linker better.
23996
23997 2007-02-23 Steve Ellcey <sje@cup.hp.com>
23998
23999 PR debug/29614
24000 * varpool.c (varpool_assemble_pending_decls): Set
24001 varpool_last_needed_node to null.
24002
24003 2007-02-23 DJ Delorie <dj@redhat.com>
24004
24005 * config/i386/i386.c (ix86_data_alignment): Don't specify an
24006 alignment bigger than the object file can handle.
24007
24008 2007-02-23 Uros Bizjak <ubizjak@gmail.com>
24009
24010 PR target/30825
24011 * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
24012 zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
24013 (*movsf_1): Penalize MMX moves.
24014
24015 2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
24016
24017 * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
24018 2^32-1 or more times unless flag_unsafe_loop_optimizations.
24019
24020 * loop-iv.c (determine_max_iter): Moved in front of its sole user.
24021
24022 2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24023
24024 * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
24025 (fold_builtin_1): Use them.
24026 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
24027 BUILT_IN_SIGNIFICAND.
24028
24029 2007-02-23 H.J. Lu <hongjiu.lu@intel.com>
24030
24031 * config/i386/i386.c (bdesc_1arg): Initialize
24032 IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
24033 "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
24034 (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
24035 and IX86_BUILTIN_MOVSLDUP.
24036
24037 2007-02-22 Paolo Bonzini <bonzini@gnu.org>
24038
24039 PR rtl-optimization/30841
24040 * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
24041
24042 2007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24043
24044 * builtins.c (fold_builtin_frexp): New.
24045 (fold_builtin_2): Use it.
24046
24047 2007-02-22 Mark Mitchell <mark@codesourcery.com>
24048
24049 * doc/invoke.texi (Spec Files): Document getenv spec function.
24050
24051 * gcc.c (getenv_spec_function): New function.
24052 (static_spec_functions): Add it.
24053 * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
24054 (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
24055 header files.
24056
24057 2007-02-22 Michael Matz <matz@suse.de
24058
24059 PR c++/29433
24060 * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
24061 (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
24062
24063 2007-02-22 Ian Lance Taylor <iant@google.com>
24064
24065 PR debug/30898
24066 * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
24067 (mem_loc_descriptor): Call it.
24068
24069 2007-02-22 Zdenek Dvorak <dvorakz@suse.cz>
24070 Ira Rosen <irar@il.ibm.com>
24071
24072 * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
24073
24074 2007-02-22 Ira Rosen <irar@il.ibm.com>
24075
24076 PR tree-optimization/30843
24077 * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
24078 stores only after all the group is vectorized.
24079
24080 2007-02-22 Dorit Nuzman <dorit@il.ibm.com>
24081
24082 PR tree-optimization/30858
24083 * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
24084 in the reduction cycle have a single use in the loop.
24085 * tree-vectorizer.h (relevant): Add documentation.
24086
24087 2007-02-20 Mike Stump <mrs@apple.com>
24088
24089 * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
24090 * configure: Regenerate.
24091
24092 2007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
24093
24094 Change the defaults of some parameters and options.
24095 * config/spu/spu-protos.h (spu_optimization_options): Declare.
24096 * config/spu/spu.c (spu_optimization_options): Add.
24097 (spu_override_options): Change params in spu_optimization_options.
24098 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
24099
24100 Register 127 is only 16 byte aligned when used as a frame pointer.
24101 * config/spu/spu-protos.h (spu_init_expanders): Declare.
24102 * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
24103 HARD_FRAME_POINTER_REGNUM.
24104 (spu_legitimate_address): Use regno_aligned_for_reload.
24105 (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
24106 aligned when frame_pointer_needed is true.
24107 (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
24108 to 8 bits.
24109 * config/spu/spu.h (INIT_EXPANDERS): Define.
24110
24111 Make sure shift and rotate instructions have valid immediate operands.
24112 * config/spu/predicates.md (spu_shift_operand): Remove.
24113 * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
24114 * config/spu/constraints.md (W, O): Extend range.
24115 * config/spu/spu.md (umask, nmask): Define.
24116 (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
24117 lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
24118 rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
24119 rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
24120 spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
24121 (lshr<mode>3_reg): Fix rtl description.
24122
24123 Make sure mulhisi immediate operands are valid.
24124 * config/spu/predicates.md (imm_K_operand): Add.
24125 * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
24126
24127 Generate constants using fsmbi and andi.
24128 * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
24129 (print_operand, spu_split_immediate, classify_immediate,
24130 fsmbi_const_p): Handle IC_FSMBI2.
24131
24132 Correctly handle a CONST_VECTOR containing symbols.
24133 * config/spu/spu.c (print_operand): Handle HIGH correctly.
24134 (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
24135 (immediate_load_p): Allow symbols that use 2 instructions to create.
24136 (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
24137 with symbols when flag_pic is set.
24138 (const_vector_immediate_p): New.
24139 (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
24140 accept a CONST_VECTOR with symbols.
24141 (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
24142 accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
24143 correctly.
24144 * config/spu/spu.md (high, low): Delete.
24145 (low_<mode>): Define.
24146
24147 Remove INTRmode and INTR_REGNUM, which didn't work.
24148 * config/spu/spu.c (spu_conditional_register_usage): Remove reference
24149 of INTR_REGNUM.
24150 * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
24151 set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
24152 peephole2 pattern): Don't use INTR or 131.
24153 (movintrcc): Delete.
24154 * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
24155 CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
24156 * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
24157 (UNSPEC_SET_INTR): Add.
24158 * config/spu/spu-modes.def (INTR): Remove.
24159
24160 More accurate warnings about run-time relocations.
24161 * config/spu/spu.c (reloc_diagnostic): Test in_section.
24162
24163 Correctly warn about immediate arguments to specific intrinsics.
24164 * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
24165 (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
24166 the instruction predicate.
24167
24168 Fix tree check errors with latest update.
24169 * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
24170 CALL_EXPR_ARG.
24171 (spu_expand_builtin): Use CALL_EXPR_FN.
24172
24173 Add missing specific intrinsics.
24174 * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
24175 si_bislede.
24176 * config/spu/spu_internals.h: Ditto.
24177
24178 Fix incorrect operand modifiers.
24179 * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
24180 * config/spu/spu.md (xor<mode>3): Change %S to %J.
24181
24182 Optimize one case of zero_extend of a vec_select.
24183 * config/spu/spu.md (_vec_extractv8hi_ze): Add.
24184
24185 Accept any immediate for hbr.
24186 * config/spu/spu.md (hbr): Change s constraints to i.
24187
24188 2007-02-21 Paul Brook <paul@codesourcery.com>
24189
24190 * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
24191 condexec_count when skipping USE and CLOBBER.
24192
24193 2007-02-21 Nick Clifton <nickc@redhat.com>
24194
24195 * common.opt (Warray-bounds): Add Warning attribute.
24196 (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
24197 Likewise.
24198 (fsized-zeroes): Add Optimization attribute.
24199 (fsplit-wide-types, ftree-scev-cprop): Likewise.
24200 * c.opt (Wc++0x-compat): Add Warning attribute.
24201
24202 2007-02-21 Ulrich Weigand <uweigand@de.ibm.com>
24203
24204 PR middle-end/30761
24205 * reload1.c (eliminate_regs_in_insn): In the single_set special
24206 case, attempt to re-recognize the insn before falling back to
24207 having reload fix it up.
24208
24209 2007-02-20 Eric Christopher <echristo@gmail.com>
24210
24211 * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
24212 Rewrite accordingly.
24213 (frv_read_iacc_argument): Ditto.
24214 (frv_expand_set_builtin): Take a call instead of arglist, update for
24215 above changes.
24216 (frv_expand_unop_builtin): Ditto.
24217 (frv_expand_binop_builtin): Ditto.
24218 (frv_expand_cut_builtin): Ditto.
24219 (frv_expand_binopimm_builtin): Ditto.
24220 (frv_expand_voidbinop_builtin): Ditto.
24221 (frv_expand_int_void2arg): Ditto.
24222 (frv_expand_prefetches): Ditto.
24223 (frv_expand_voidtriop_builtin): Ditto.
24224 (frv_expand_voidaccop_builtin): Ditto.
24225 (frv_expand_load_builtin): Ditto.
24226 (frv_expand_store_builtin): Ditto.
24227 (frv_expand_mdpackh_builtin): Ditto.
24228 (frv_expand_mclracc_builtin): Ditto.
24229 (frv_expand_mrdacc_builtin): Ditto.
24230 (frv_expand_mwtacc_builtin): Ditto.
24231 (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
24232 calls for above.
24233
24234 2007-02-20 Janis Johnson <janis187@us.ibm.com>
24235
24236 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
24237 * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
24238 cmpb instruction.
24239 (HAVE_GAS_DFP): Check for assembler support of decimal floating
24240 point instructions.
24241 * configure: Regenerate.
24242 * config.in: Regenerate.
24243 * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
24244 * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
24245 masks to power6 and power6x and to POWERPC_MASKS.
24246 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
24247 _ARCH_PWR6.
24248 * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
24249 * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
24250 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
24251 Access PROTOTYPE as variable, not mask.
24252
24253 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
24254
24255 * rtl.h (remove_reg_equal_equiv_notes): New prototype.
24256 * rtlanal.c (remove_reg_equal_equiv_notes): New function.
24257 * combine.c (adjust_for_new_dest): Use it.
24258 * postreload.c (reload_combine): Likewise.
24259
24260 2007-02-20 Steven Bosscher <steven@gcc.gnu.org>
24261
24262 * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
24263 notes on an insn with multiple sets, even if single_set returns
24264 non-NULL for that insn.
24265
24266 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24267
24268 * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
24269 scalbn and scalbln.
24270
24271 2007-02-20 Geoffrey Keating <geoffk@apple.com>
24272
24273 * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
24274 if user didn't pass it.
24275 * config/i386/darwin.h (CC1_SPEC): Likewise.
24276 * config/rs6000/darwin.h (CC1_SPEC): Likewise.
24277 (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
24278 -mmacosx-version-min.
24279
24280 2007-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24281 Uros Bizjak <ubizjak@gmail.com>
24282
24283 * optabs.h (enum optab_index): Add new OTI_scalb.
24284 (scalb_optab): Define corresponding macro.
24285 * optabs.c (init_optabs): Initialize scalb_optab.
24286 * genopinit.c (optabs): Implement scalb_optab using scalb?f3
24287 patterns.
24288 * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
24289 BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
24290 (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
24291 and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
24292 flag_unsafe_math_optimizations is set.
24293
24294 * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
24295 to implement scalbf, scalb and scalbl built-ins as inline x87
24296 intrinsics.
24297
24298 2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24299 DJ Delorie <dj@redhat.com>
24300
24301 PR other/30824
24302 * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
24303 (diagnostic_report_diagnostic): ... here, and turn them into real
24304 errors. If warnings are inhibited, no need to do anything.
24305
24306 2007-02-20 Uros Bizjak <ubizjak@gmail.com>
24307
24308 * config/i386/i386.md (expm1xf2): Reorder insn sequence for
24309 better code generation.
24310
24311 2007-02-20 Ben Elliston <bje@au.ibm.com>
24312
24313 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
24314
24315 2007-02-20 Kazu Hirata <kazu@codesourcery.com>
24316
24317 * config/alpha/alpha.c, config/alpha/alpha.md,
24318 config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
24319 config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
24320 config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
24321 config/arm/lib1funcs.asm: Follow spelling conventions.
24322
24323 * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
24324 config/fr30/fr30.md, config/i386/i386.h,
24325 config/iq2000/iq2000.h, config/iq2000/predicates.md,
24326 config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
24327 config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
24328 config/pdp11/pdp11.c, config/pdp11/pdp11.h,
24329 config/rs6000/altivec.md, config/rs6000/rs6000.c,
24330 config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
24331 config/sparc/sparc.c, config/sparc/sparc.h,
24332 config/sparc/sparc.md, config/spu/constraints.md,
24333 config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
24334 conventions.
24335
24336 2007-02-20 Alan Modra <amodra@bigpond.net.au>
24337
24338 PR target/29943
24339 * varasm.c (use_blocks_for_decl_p): Return false for decls with
24340 alias attribute.
24341
24342 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
24343
24344 * doc/invoke.texi (-ftree-lrs): Remove.
24345
24346 2007-02-19 Diego Novillo <dnovillo@redhat.com>
24347
24348 * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
24349 NULL.
24350
24351 2007-02-19 Lee Millward <lee.millward@codesourcery.com>
24352
24353 * config/ia64/ia64.c (ia64_expand_builtin): Use the
24354 new CALL_EXPR_FN macro for retrieving the function
24355 declaration of the input expression.
24356
24357 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24358
24359 * c.opt (Waddress): New.
24360 * common.opt (Walways-true): Delete.
24361 (Wstring-literal-comparison): Delete.
24362 * doc/invoke.texi (Warning Options): Delete -Walways-true and
24363 -Wstring-literal-comparison. Add -Waddress.
24364 (Waddress): New.
24365 (Walways-true): Delete.
24366 (Wstring-literal-comparison): Delete.
24367 * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
24368 consistently instead of -Walways-true in example.
24369 * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
24370 * c-typeck.c (parser_build_binary_op): Replace
24371 -Wstring-literal-comparison and -Walways-true with -Waddress.
24372 * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
24373 with -Waddress.
24374
24375 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
24376
24377 * tree-cfg.c (dump_function_to_file): Be prepared for functions
24378 without DECL_STRUCT_FUNCTION initialized.
24379
24380 2007-02-19 Eric Botcazou <ebotcazou@adacore.com>
24381
24382 * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
24383 due to calls to functions taking pointers as parameters.
24384
24385 2007-02-19 Richard Henderson <rth@redhat.com>
24386
24387 PR debug/29558
24388 * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
24389 in memory.
24390
24391 2007-02-19 Andreas Krebbel <krebbel1@de.ibm.com>
24392
24393 * config/s390/s390.c (s390_call_saved_register_used,
24394 s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
24395 accessed to the new scheme.
24396
24397 2007-02-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24398
24399 * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
24400 (cris_print_index, cris_print_operand, cris_print_operand_address)
24401 (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
24402 (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
24403 (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
24404 GET_CODE () == xxx.
24405 * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
24406 EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
24407 GO_IF_LEGITIMATE_ADDRESS): Ditto.
24408 * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
24409 (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
24410 (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
24411 (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
24412 (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
24413 (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
24414 (uminsi3, call, call_value): Ditto.
24415 (define_split: indir_to_reg_split, unnamed): Ditto.
24416
24417 2007-02-19 Dorit Nuzman <dorit@il.ibm.com>
24418
24419 PR tree-optimization/30975
24420 * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
24421 wrong assert.
24422
24423 2007-02-18 Eric Christopher <echristo@gmail.com>
24424
24425 * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
24426 Remove use of arglist.
24427 (mips_expand_builtin): Remove use of arglist, pass in expr.
24428 (mips_expand_builtin_direct): Rewrite handling for arglist removal.
24429 (mips_expand_builtin_movtf): Ditto.
24430 (mips_expand_builtin_compare): Ditto.
24431
24432 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
24433
24434 * tree-sra.c (sra_build_assignment): Replace assertion
24435 checking with a comment explaining why it can't be done.
24436
24437 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
24438
24439 PR middle-end/30833
24440 * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
24441 during CALL_EXPR representation conversion.
24442 * tree-ssa-propagate.c (set_rhs): Likewise.
24443
24444 2007-02-19 Alexandre Oliva <aoliva@redhat.com>
24445
24446 * tree-sra.c (sra_build_assignment): Disable assertion checking
24447 for now.
24448
24449 2007-02-18 Roger Sayle <roger@eyesopen.com>
24450
24451 * function.c (gimplify_parameters): Call build_gimple_modify_stmt
24452 instead of calling build2 with a GIMPLE_MODIFY_STMT.
24453 * gimple-low.c (lower_function_body, lower_builtin_setjmp):
24454 Likewise.
24455 * gimplify.c (build_stack_save_restore, gimplify_return_expr,
24456 gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr,
24457 gimplify_init_ctor_eval_range, gimple_push_cleanup,
24458 gimplify_omp_for, gimplify_omp_atomic_pipeline,
24459 gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
24460 force_gimple_operand): Likewise.
24461 * ipa-cp.c (constant_val_insert): Likewise.
24462 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
24463 lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
24464 perfect_nestify): Likewise.
24465 * langhooks.c (lhd_omp_assignment): Likewise.
24466 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
24467 lower_copyprivate_clauses, lower_send_clauses,
24468 lower_send_shared_vars, expand_parallel_call,
24469 expand_omp_for_generic, expand_omp_for_static_nochunk,
24470 expand_omp_for_static_chunk, expand_omp_sections,
24471 lower_omp_single_copy, lower_omp_for_lastprivate,
24472 lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
24473 * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
24474 tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
24475 Likewise.
24476
24477 2007-02-19 Kazu Hirata <kazu@codesourcery.com>
24478
24479 * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
24480 config/sh/sh.md: Follow spelling conventions.
24481
24482 * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
24483 config/frv/predicates.md: Follow spelling conventions.
24484
24485 * config/m68k/linux-unwind.h: Fix a comment typo.
24486 * target.h: Follow spelling conventions.
24487
24488 2007-02-18 Roger Sayle <roger@eyesopen.com>
24489
24490 PR rtl-optimization/28173
24491 * simplify-rtx.c (simplify_binary_operation_1) <IOR>: Optimize
24492 (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
24493 Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
24494 Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
24495 <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
24496
24497 2007-02-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24498
24499 * builtins.c (fold_builtin_load_exponent): New.
24500 (fold_builtin_2): Use it.
24501
24502 2007-02-18 Steven Bosscher <steven@gcc.gnu.org>
24503
24504 PR rtl-optimization/30773
24505 * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
24506 if we fail to attach a REG_EQUIV note.
24507
24508 2007-02-18 David Edelsohn <edelsohn@gnu.org>
24509 Roger Sayle <roger@eyesopen.com>
24510
24511 * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
24512
24513 2007-02-18 Sandra Loosemore <sandra@codesourcery.com>
24514
24515 * calls.c (initialize_argument_information): Pass original EXP
24516 and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move
24517 code to split complex arguments here, as part of initializing the
24518 ARGS array.
24519 (expand_call): Remove code that builds a list of arguments and
24520 inserts implicit arguments into it. Instead, just count how many
24521 implicit arguments there will be so we can determine the size of
24522 the ARGS array, and let initialize_argument_information do the work.
24523 (split_complex_values): Delete unused function.
24524
24525 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
24526
24527 * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
24528
24529 2007-02-18 Eric Botcazou <ebotcazou@adacore.com>
24530
24531 * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
24532 for arg pointer based indexed addressing.
24533
24534 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
24535
24536 * config/ia64/ia64.h, config/ia64/ia64.md,
24537 config/ia64/predicates.md, config/ia64/sysv4.h: Follow
24538 spelling conventions.
24539
24540 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
24541
24542 * config/m68k/m68k.c (split_di): New.
24543 * config/m68k/m68k-protos.h: Declare split_di.
24544 * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
24545 Improve predicate handling and split constant shifts.
24546
24547 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
24548
24549 * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
24550 parameter for register bitfield operations, general predicates
24551 cleanup
24552
24553 2007-02-18 Roman Zippel <zippel@linux-m68k.org>
24554
24555 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
24556 * config/m68k/linux-unwind.h: New file.
24557
24558 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
24559
24560 * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
24561 config/i386/athlon.md, config/ia64/ia64.md,
24562 config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
24563 df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
24564 ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
24565 tree-ssa-loop-niter.c, tree-vect-analyze.c,
24566 tree-vect-transform.c: Fix comment typos.
24567
24568 2007-02-17 Kazu Hirata <kazu@codesourcery.com>
24569
24570 * sched-deps.c (find_insn_list): Remove.
24571 * sched-int.h: Remove the prototype for find_insn_list.
24572
24573 2007-02-16 Geoffrey Keating <geoffk@apple.com>
24574
24575 * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
24576 to linker.
24577 (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
24578 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
24579 darwin_rs6000_override_options.
24580 (C_COMMON_OVERRIDE_OPTIONS): Expect
24581 darwin_macosx_version_min to be non-NULL always.
24582 (TARGET_C99_FUNCTIONS): Likewise.
24583 (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
24584 (DARWIN_MINVERSION_SPEC): New.
24585 * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
24586 * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
24587 to cc1*.
24588 (DARWIN_MINVERSION_SPEC): New.
24589 * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
24590 value.
24591 * config/darwin-c.c (darwin_cpp_builtins): Expect
24592 darwin_macosx_version_min to be non-NULL always.
24593
24594 * config/rs6000/rs6000.c: Clean up trailing whitespace.
24595
24596 2007-02-16 Uros Bizjak <ubizjak@gmail.com>
24597
24598 * config/i386/i386.h (x86_use_xchgb): New.
24599 (TARGET_USE_XCHGB): New macro.
24600 * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
24601 * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
24602 Split after reload into bswaphi for shifts of 8.
24603 (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
24604 (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
24605 or when optimizing for size.
24606
24607 2007-02-16 Richard Guenther <rguenther@suse.de>
24608 Christian Bruel <christian.bruel@st.com>
24609
24610 * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
24611 DECLs but prefer SSA_NAMEs over DECLs.
24612
24613 2007-02-16 Richard Guenther <rguenther@suse.de>
24614
24615 * tree-flow-inline.h (single_imm_use_p): Remove.
24616 (zero_imm_uses_p): Likewise.
24617 * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
24618 instead of single_imm_use_p.
24619 * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
24620 zero_imm_uses_p.
24621
24622 2007-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24623
24624 PR other/27843
24625 * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
24626 nested double- and backquotes.
24627
24628 2007-02-15 Roger Sayle <roger@eyesopen.com>
24629
24630 PR middle-end/30391
24631 * tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT
24632 should be unreachable.
24633 (build2_stat): Allow construction of MODIFY_EXPR at any time.
24634 For the time being redirect GIMPLE_MODIFY_STMT to the new
24635 (renamed) build_gimple_modify_stmt_stat.
24636 (build2_gimple_stat): Rename to...
24637 (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
24638 Always build a GIMPLE_MODIFY_STMT node.
24639 * tree.h (build2_gimple, build2_gimple_stat): Delete.
24640 (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
24641 declarations.
24642
24643 * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
24644 gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
24645 * tree-complex.c (set_component_ssa_name, expand_complex_move,
24646 expand_complex_div_wide): Likewise.
24647 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
24648 * tree-ssa-loop-im.c (schedule_sm): Likewise.
24649 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
24650 * tree-ssa-loop-manip.c (create_iv): Likewise.
24651 * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
24652 abs_replacement): Likewise.
24653 * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
24654 realify_fake_stores): Likewise.
24655
24656 * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
24657 node rather than a GIMPLE_MODIFY_STMT node.
24658 (std_gimpify_va_arg_expr, expand_builtin_va_copy,
24659 fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
24660 Likewise.
24661 (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
24662 * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
24663 GIMPLE_MODIFY_STMT.
24664
24665 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
24666
24667 PR middle-end/30433
24668 * fold-const.c (fold_comparison): Add back the
24669 folding of constant complex comparisions.
24670
24671 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
24672
24673 PR middle-end/30729
24674 * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
24675 effects unknown to this function, return early.
24676
24677 2007-02-15 Ian Lance Taylor <iant@google.com>
24678
24679 * lower-subreg.c (move_eh_region_note): New static function.
24680 (resolve_simple_move): Call it.
24681 (decompose_multiword_subregs): Track blocks for which we resolve a
24682 simple move which is also a control flow insn. Pass them to
24683 find_many_sub_basic_blocks.
24684 (pass_lower_subreg): Add TODO_verify_flow.
24685 (pass_lower_subreg2): Likewise.
24686
24687 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
24688 Brooks Moses <brooks.moses@codesourcery.com>
24689 Lee Millward <lee.millward@codesourcery.com>
24690
24691 * tree.h (enum tree_code_class): Add tcc_vl_exp.
24692 (VL_EXP_CLASS_P): New.
24693 (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
24694 TREE_CODE_LENGTH.
24695 (TREE_OPERAND_CHECK_CODE): Likewise.
24696 (GIMPLE_STMT_OPERAND_CHECK): Likewise.
24697 (TREE_RTL_OPERAND_CHECK): Likewise.
24698 (tree_operand_check_failed): Make second parameter the whole tree
24699 instead of its code. Fixed callers.
24700 (VL_EXP_CHECK): New.
24701 (TREE_OPERAND_LENGTH): New.
24702 (VL_EXP_OPERAND_LENGTH): New.
24703 (CALL_EXPR_FN): New.
24704 (CALL_EXPR_STATIC_CHAIN): New.
24705 (CALL_EXPR_ARGS): New.
24706 (CALL_EXPR_ARG): New.
24707 (call_expr_nargs): New.
24708 (CALL_EXPR_ARGP): New.
24709 (build_nt_call_list): Declare.
24710 (build_vl_exp_stat): Declare.
24711 (build_vl_exp): New.
24712 (build_call_list): Declare.
24713 (build_call_nary): Declare.
24714 (build_call_valist): Declare.
24715 (build_call_array): Declare.
24716 (call_expr_arg): Declare.
24717 (call_expr_argp): Declare.
24718 (call_expr_arglist): Declare.
24719 (fold_build_call_list): Declare.
24720 (fold_build_call_list_initializer): Declare.
24721 (fold_call_expr): Declare to replace fold_builtin.
24722 (fold_builtin_fputs): Update to agree with modified definition.
24723 (fold_builtin_strcpy): Likewise.
24724 (fold_builtin_strncpy): Likewise.
24725 (fold_builtin_memory_chk): Likewise.
24726 (fold_builtin_stxcpy_chk): Likewise.
24727 (fold_builtin_strncpy_chk): Likewise.
24728 (fold_builtin_next_arg): Likewise.
24729 (fold_build_call_expr): Declare.
24730 (fold_builtin_call_list): Declare.
24731 (fold_builtin_call_valist): Declare.
24732 (build_call_expr): Declare.
24733 (validate_arglist): Update to agree with modified definition.
24734 (tree_operand_length): New.
24735 (call_expr_arg_iterator): New.
24736 (init_call_expr_arg_iterator): New.
24737 (next_call_expr_arg): New.
24738 (first_call_expr_arg): New.
24739 (more_call_expr_args_p): New.
24740 (FOR_EACH_CALL_EXPR_ARG): New.
24741
24742 * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
24743 and tcc_gimple_stmt.
24744 (tree_code_size): Update documentation. Use sizeof (tree) rather
24745 than sizeof (char *).
24746 (tree_size): Likewise. Add case for tcc_vl_exp.
24747 (tree_node_structure): Add case for tcc_vl_exp.
24748 (contains_placeholder_p): Likewise.
24749 (substitute_in_expr): Likewise.
24750 (substitute_placeholder_in_expr): Likewise.
24751 (stabilize_reference_1): Likewise.
24752 (build3_stat): Remove logic for CALL_EXPRs. Replace with assertion
24753 to diagnose breakage of this interface for constructing CALL_EXPRs.
24754 (build_nt): Add similar assertion here.
24755 (build_nt_call_list): New.
24756 (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
24757 (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
24758 TREE_CODE_LENGTH.
24759 (get_callee_fndecl): Use new CALL_EXPR accessors.
24760 (tree_operand_check_failed): Change parameters to pass entire node
24761 instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
24762 (process_call_operands): New.
24763 (build_vl_exp_stat): New.
24764 (build_call_list): New.
24765 (build_call_nary): New.
24766 (build_call_valist): New.
24767 (build_call_array): New.
24768 (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
24769 (call_expr_arglist): New.
24770
24771 * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
24772 tcc_vl_exp instead of a fixed-size tcc_expression.
24773
24774 * doc/c-tree.texi (CALL_EXPR): Document new representation and
24775 accessors for CALL_EXPRs.
24776 (AGGR_INIT_EXPR): Likewise.
24777
24778 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
24779 Brooks Moses <brooks.moses@codesourcery.com>
24780 Lee Millward <lee.millward@codesourcery.com>
24781
24782 * builtins.c (c_strlen): Return NULL_TREE instead of 0.
24783 (expand_builtin_nonlocal_goto): Change parameter to be entire
24784 CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors.
24785 (expand_builtin_prefetch): Likewise.
24786 (expand_builtin_classify_type): Likewise.
24787 (mathfn_built_in): Return NULL_TREE instead of 0.
24788 (expand_errno_check): Use new CALL_EXPR accessors.
24789 (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
24790 Return NULL_RTX instead of 0.
24791 (expand_builtin_mathfn_2): Likewise.
24792 (expand_builtin_mathfn_3): Likewise.
24793 (expand_builtin_interclass_mathfn): Likewise.
24794 (expand_builtin_sincos): Likewise.
24795 (expand_builtin_cexpi): Likewise.
24796 (expand_builtin_int_roundingfn): Likewise.
24797 (expand_builtin_int_roundingfn_2): Likewise.
24798 (expand_builtin_pow): Likewise.
24799 (expand_builtin_powi): Likewise.
24800 (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
24801 of arglist, fixing callers appropriately. Use new CALL_EXPR
24802 accessors and constructors. Return NULL_RTX instead of 0.
24803 (expand_builtin_strstr): Likewise.
24804 (expand_builtin_strchr): Likewise.
24805 (expand_builtin_strrchr): Likewise.
24806 (expand_builtin_strpbrk): Likewise.
24807 (expand_builtin_memcpy): Likewise.
24808 (expand_builtin_mempcpy): Likewise.
24809 (expand_builtin_mempcpy_args): New.
24810 (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
24811 (expand_builtin_memmove_args): New.
24812 (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
24813 (expand_movstr): Likewise.
24814 (expand_builtin_strcpy): Likewise.
24815 (expand_builtin_strcpy_args): New.
24816 (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
24817 (expand_builtin_strncpy): Likewise.
24818 (expand_builtin_memset): Likewise.
24819 (expand_builtin_memset_args): New.
24820 (expand_builtin_bzero): Similarly to expand_builtin_memset.
24821 (expand_builtin_memcmp): Likewise.
24822 (expand_builtin_strcmp): Likewise.
24823 (expand_builtin_strncmp): Likewise.
24824 (expand_builtin_strcat): Likewise.
24825 (expand_builtin_strncat): Likewise.
24826 (expand_builtin_strspn): Likewise.
24827 (expand_builtin_strcspn): Likewise.
24828 (expand_builtin_args_info): Likewise.
24829 (expand_builtin_va_start): Likewise.
24830 (gimplify_va_arg_expr): Likewise.
24831 (expand_builtin_va_end): Likewise.
24832 (expand_builtin_va_copy): Likewise.
24833 (expand_builtin_frame_address): Likewise.
24834 (expand_builtin_alloca): Likewise.
24835 (expand_builtin_bswap): Likewise.
24836 (expand_builtin_unop): Likewise.
24837 (expand_builtin_fputs): Likewise.
24838 (expand_builtin_expect): Likewise.
24839 (expand_builtin_fabs): Likewise.
24840 (expand_builtin_copysign): Likewise.
24841 (expand_builtin_printf): Likewise.
24842 (expand_builtin_fprintf): Likewise.
24843 (expand_builtin_sprintf): Likewise.
24844 (expand_builtin_init_trampoline): Likewise.
24845 (expand_builtin_signbit): Likewise.
24846 (expand_builtin_fork_or_exec): Likewise.
24847 (expand_builtin_sync_operation): Likewise.
24848 (expand_builtin_compare_and_swap): Likewise.
24849 (expand_builtin_lock_test_and_set): Likewise.
24850 (expand_builtin_lock_release): Likewise.
24851 (expand_builtin): Likewise.
24852 (builtin_mathfn_code): Likewise.
24853
24854 (fold_builtin_constant_p): Pass call arguments individually instead
24855 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
24856 accessors and constructors. Return NULL_TREE instead of 0.
24857 (fold_builtin_expect): Likewise.
24858 (fold_builtin_classify_type): Likewise.
24859 (fold_builtin_strlen): Likewise.
24860 (fold_builtin_nan): Likewise.
24861 (integer_valued_real_p): Likewise.
24862 (fold_trunc_transparent_mathfn): Likewise.
24863 (fold_fixed_mathfn): Likewise.
24864 (fold_builtin_cabs): Likewise.
24865 (fold_builtin_sqrt): Likewise.
24866 (fold_builtin_cbrt): Likewise.
24867 (fold_builtin_cos): Likewise.
24868 (fold_builtin_cosh): Likewise.
24869 (fold_builtin_tan): Likewise.
24870 (fold_builtin_sincos): Likewise.
24871 (fold_builtin_cexp): Likewise.
24872 (fold_builtin_trunc): Likewise.
24873 (fold_builtin_floor): Likewise.
24874 (fold_builtin_ceil): Likewise.
24875 (fold_builtin_round): Likewise.
24876 (fold_builtin_int_roundingfn): Likewise.
24877 (fold_builtin_bitop): Likewise.
24878 (fold_builtin_bswap): Likewise.
24879 (fold_builtin_logarithm): Likewise.
24880 (fold_builtin_hypot): Likewise.
24881 (fold_builtin_pow): Likewise.
24882 (fold_builtin_powi): Likewise.
24883 (fold_builtin_exponent): Likewise.
24884 (fold_builtin_memset): Likewise.
24885 (fold_builtin_bzero): Likewise.
24886 (fold_builtin_memory_op): Likewise.
24887 (fold_builtin_bcopy): Deleted; call site changed to invoke
24888 fold_builtin_memory_op directly.
24889 (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
24890 (fold_builtin_strncpy): Likewise.
24891 (fold_builtin_memcmp): Likewise.
24892 (fold_builtin_strcmp): Likewise.
24893 (fold_builtin_strncmp): Likewise.
24894 (fold_builtin_signbit): Likewise.
24895 (fold_builtin_copysign): Likewise.
24896 (fold_builtin_isascii): Likewise.
24897 (fold_builtin_toascii): Likewise.
24898 (fold_builtin_isdigit): Likewise.
24899 (fold_builtin_fabs): Likewise.
24900 (fold_builtin_abs): Likewise.
24901 (fold_builtin_fmin_fmax): Likewise.
24902 (fold_builtin_carg): Likewise.
24903 (fold_builtin_classify): Likewise.
24904 (fold_builtin_unordered_cmp): Likewise.
24905
24906 (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
24907 New functions split out from fold_builtin_1.
24908 (fold_builtin_n): New.
24909 (fold_builtin_varargs): New.
24910 (fold_builtin): Deleted. Most callers changed to use fold_call_expr
24911 instead.
24912 (fold_call_expr): New.
24913 (build_function_call_expr): Rewrite to use new helper function.
24914 (fold_builtin_call_list): New.
24915 (build_call_expr): New.
24916 (fold_builtin_call_valist): New.
24917 (rewrite_call_expr): New.
24918 (validate_arg): New.
24919 (validate_arglist): Change parameter to be entire CALL_EXPR instead
24920 of an arglist. Change return type to bool. Use new CALL_EXPR
24921 accessors.
24922
24923 (fold_builtin_strstr): Pass call arguments individually instead
24924 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
24925 accessors and constructors. Return NULL_TREE instead of 0.
24926 (fold_builtin_strchr): Likewise.
24927 (fold_builtin_strrchr): Likewise.
24928 (fold_builtin_strpbrk): Likewise.
24929 (fold_builtin_strcat): Likewise.
24930 (fold_builtin_strncat): Likewise.
24931 (fold_builtin_strspn): Likewise.
24932 (fold_builtin_strcspn): Likewise.
24933 (fold_builtin_fputs): Likewise.
24934 (fold_builtin_next_arg): Likewise.
24935 (fold_builtin_sprintf): Likewise.
24936
24937 (expand_builtin_object_size): Use new CALL_EXPR accessors. Use
24938 NULL_RTX instead of 0.
24939 (expand_builtin_memory_chk): Likewise.
24940 (maybe_emit_chk_warning): Likewise.
24941 (maybe_emit_sprintf_chk_warning): Likewise.
24942
24943 (fold_builtin_object_size): Pass call arguments individually instead
24944 of as an arglist, fixing callers appropriately. Use new CALL_EXPR
24945 accessors and constructors. Return NULL_TREE instead of 0.
24946 (fold_builtin_memory_chk): Likewise.
24947 (fold_builtin_stxcpy_chk): Likewise.
24948 (fold_builtin_strncpy_chk): Likewise.
24949 (fold_builtin_strcat_chk): Likewise.
24950 (fold_builtin_strcat_chk): Likewise.
24951 (fold_builtin_strncat_chk): Likewise.
24952 (fold_builtin_sprintf_chk): Likewise.
24953 (fold_builtin_snprintf_chk): Likewise.
24954 (fold_builtin_printf): Likewise.
24955 (fold_builtin_vprintf): Likewise.
24956
24957 * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
24958 constructors.
24959 (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
24960 (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
24961 (extract_muldiv_1): Add VL_EXP_CLASS_P case.
24962 (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
24963 (fold_unary): Likewise.
24964 (fold_binary): Likewise.
24965 (fold_ternary): Remove CALL_EXPR case, since they are no longer
24966 ternary expressions.
24967 (fold): Add logic for tcc_vl_exp.
24968 (fold_checksum_tree): Make it know about tcc_vl_exp. Use
24969 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
24970 (fold_build3_stat): Add assertion to flag broken interface for
24971 constructing CALL_EXPRs.
24972 (fold_build_call_list): New.
24973 (fold_build_call_list_initializer): New.
24974 (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
24975 constructors.
24976 (fold_strip_sign_ops): Likewise.
24977
24978 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
24979 Brooks Moses <brooks.moses@codesourcery.com>
24980 Lee Millward <lee.millward@codesourcery.com>
24981
24982 * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
24983 accessors and dump arguments explicitly.
24984
24985 * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
24986 TREE_CODE_LENGTH.
24987 (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
24988 explicitly.
24989 (print_call_name): Use new CALL_EXPR accessors.
24990
24991 * print-tree.c (print_node): Add case tcc_vl_exp. Print
24992 CALL_EXPR arguments explicitly instead of as a list. Use
24993 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
24994
24995 * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
24996 (vrp_visit_stmt): Likewise.
24997
24998 * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
24999 know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of
25000 TREE_CODE_LENGTH.
25001 (force_move_till_expr): Likewise.
25002
25003 * targhooks.c (default_external_stack_protect_fail): Use
25004 build_call_expr instead of build_function_call_expr.
25005 (default_hidden_stack_protect_fail): Likewise.
25006
25007 * tree-complex.c (expand_complex_libcall): Use build_call_expr to
25008 build the call.
25009
25010 * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
25011 and walk arguments explicitly.
25012
25013 * tree-ssa-loop-niter.c (simplify_replace_tree): Use
25014 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
25015 (expand_simple_operations): Likewise.
25016 (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
25017
25018 * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
25019 of TREE_CODE_LENGTH.
25020 (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
25021
25022 * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
25023 instead of TREE_CODE_LENGTH.
25024
25025 * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
25026 (tree_ic_transform): Likewise.
25027 (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
25028 parameter instead of arglist. Fix callers.
25029 (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
25030 (tree_stringops_transform): Likewise.
25031 (tree_indirect_call_to_profile): Likewise.
25032 (tree_stringops_values_to_profile): Likewise.
25033
25034 * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
25035 (eliminate_tail_call): Likewise.
25036
25037 * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
25038
25039 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
25040 Use TREE_OPERAND_LENGTH and generalize to handle any number of
25041 operands.
25042 (instantiate_parameters_1): Can't handle tcc_vl_exp here.
25043
25044 * omp-low.c (build_omp_barrier): Use build_call_expr.
25045 (lower_rec_input_clauses): Likewise.
25046 (lower_reduction_clauses): Likewise.
25047 (expand_parallel_call): Likewise.
25048 (maybe_catch_exception): Likewise.
25049 (expand_omp_for_generic): Likewise.
25050 (expand_omp_for_static_nochunk): Likewise.
25051 (expand_omp_sections): Likewise.
25052 (lower_omp_single_simple): Likewise.
25053 (lower_omp_single_copy): Likewise.
25054 (lower_omp_master): Likewise.
25055 (lower_omp_ordered): Likewise.
25056 (lower_omp_critical): Likewise.
25057
25058 * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
25059 (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
25060
25061 * tree-gimple.c (is_gimple_call_addr): Fix doc.
25062 (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
25063 TREE_CODE_LENGTH. Add tcc_vl_exp case.
25064
25065 * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
25066 and generalize to handle any number of operands.
25067 (chrec_contains_undetermined): Likewise.
25068 (tree_contains_chrecs): Likewise.
25069 (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
25070
25071 * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
25072
25073 * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use
25074 fold_call_expr instead of fold_builtin.
25075 (ccp_fold_builtin): Likewise. Update calls into builtins.c to
25076 match declarations there.
25077 (fold_stmt): Use new CALL_EXPR constructor and accessors. Doc
25078 updates.
25079
25080 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
25081 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
25082
25083 * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
25084 (scan_function): Add case tcc_vl_exp for CALL_EXPR.
25085
25086 * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
25087 accessors.
25088
25089 * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
25090 (execute_cse_sincos): Use new CALL_EXPR accessors.
25091
25092 * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
25093
25094 * gimple-low.c (lower_function_body): Use build_call_expr.
25095 (lower_builtin_setjmp): Likewise.
25096
25097 * expr.c (emit_block_move_via_libcall): Use build_call_expr.
25098 (set_storage_via_libcall): Likewise.
25099 (safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH
25100 instead of TREE_CODE_LENGTH.
25101 (expand_expr_real_1): Use new CALL_EXPR accessors.
25102
25103 * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
25104 generalize to handle any number of operands.
25105 (TB_parent_eq): Likewise.
25106
25107 * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
25108 (strip_builtin_expect): Likewise.
25109
25110 * function.c (gimplify_parameters): Use build_call_expr.
25111
25112 * tree-vectorizer.c (vect_is_simple_reduction): Use
25113 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
25114
25115 * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
25116 (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
25117
25118 * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
25119 iterators.
25120
25121 * gimplify.c (build_stack_save_restore): Use build_call_expr.
25122 (gimplify_decl_expr): Likewise.
25123 (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
25124 Use new CALL_EXPR iterators.
25125 (gimplify_modify_expr_to_memcpy): Use build_call_expr.
25126 (gimplify_modify_expr_to_memset): Likewise.
25127 (gimplify_variable_sized_compare): Likewise.
25128 (gimplify_omp_atomic_fetch_op): Likewise.
25129 (gimplify_omp_atomic_pipeline): Likewise.
25130 (gimplify_omp_atomic_mutex): Likewise.
25131 (gimplify_function_tree): Likewise.
25132
25133 * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
25134 (call_expr_flags): Likewise.
25135 (expand_call): Likewise.
25136
25137 * except.c (expand_builtin_eh_return_data_regno): Pass entire
25138 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
25139 accessors.
25140
25141 * coverage.c (create_coverage): Use build_call_expr.
25142
25143 * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
25144 (temp_call_expr_obstack): New.
25145 (pool_copy_list): Delete.
25146 (temp_copy_call_expr): New.
25147 (phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new
25148 CALL_EXPR accessors. Get rid of special goo for copying argument
25149 lists and use temp_copy_call_expr instead.
25150 (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new
25151 CALL_EXPR accessors.
25152 (create_expression_by_pieces): Likewise. Use build_call_array
25153 to construct the result instead of fold_build3.
25154 (create_value_expr_from): Add tcc_vl_exp. Delete special goo for
25155 dealing with argument lists.
25156 (init_pre): Remove references to expression_node_pool and
25157 list_node_pool. Init temp_call_expr_obstack instead.
25158 (fini_pre): Remove references to expression_node_pool and
25159 list_node_pool.
25160
25161 * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
25162 and walk arguments explicitly instead of as a list.
25163
25164 * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
25165 (mx_register_decls): Likewise.
25166 (mudflap_register_call): Likewise.
25167 (mudflap_finish_file): Likewise.
25168
25169 * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
25170 (ipa_callsite_compute_param): Likewise.
25171
25172 * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
25173 accessors and constructor.
25174
25175 * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
25176 accessors and constructor.
25177 (convert_tramp_reference): Likewise.
25178 (convert_call_expr): Likewise.
25179 (finalize_nesting_tree_1): Likewise.
25180
25181 * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
25182 accessors.
25183
25184 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
25185
25186 * tree-inline.c (initialize_inlined_parameters): Pass entire
25187 CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
25188 accessors.
25189 (estimate_num_insns_1): Use new CALL_EXPR accessors.
25190 (expand_call_inline): Tidy up call to initialize_inlined_parameters.
25191
25192 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use
25193 TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
25194 (vectorizable_reduction): Likewise.
25195 (vectorizable_call): Use new CALL_EXPR iterators.
25196 (vectorizable_conversion): Use build_call_expr.
25197 (vectorizable_operation): Use TREE_OPERAND_LENGTH.
25198 (vect_gen_widened_results_half): Use build_call_expr.
25199 (vect_setup_realignment): Likewise.
25200 (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
25201
25202 * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
25203 (pass_through_call): Likewise.
25204 (compute_object_sizes): Likewise. Use fold_call_expr instead of
25205 fold_builtin.
25206
25207 * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
25208 (tree_gen_pow2_profiler): Likewise.
25209 (tree_gen_one_value_profiler): Likewise.
25210 (tree_gen_ic_func_profiler): Likewise.
25211 (tree_gen_average_profiler): Likewise.
25212 (tree_gen_ior_profiler): Likewise.
25213
25214 * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
25215 (find_func_aliases): Use new CALL_EXPR accessors. Add case
25216 tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
25217
25218 * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
25219 of TREE_CODE_LENGTH.
25220
25221 * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
25222 of TREE_CODE_LENGTH.
25223
25224 * convert.c (convert_to_real): Use new CALL_EXPR accessors and
25225 constructor.
25226 (convert_to_integer): Likewise.
25227
25228 * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
25229 accessors.
25230
25231 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
25232 Brooks Moses <brooks.moses@codesourcery.com>
25233 Lee Millward <lee.millward@codesourcery.com>
25234
25235 * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
25236 accessors.
25237 * config/frv/frv.c (frv_expand_builtin): Likewise.
25238 * config/s390/s390.c (s390_expand_builtin): Likewise.
25239
25240 * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
25241 (sparc_expand_builtin): Use new CALL_EXPR accessors.
25242
25243 * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
25244 (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
25245 instead of arglist. Use new CALL_EXPR accessors on it. Fix callers.
25246 (ix86_expand_store_builtin): Likewise.
25247 (ix86_expand_unop_builtin): Likewise.
25248 (ix86_expand_unop1_builtin): Likewise.
25249 (ix86_expand_sse_compare): Likewise.
25250 (ix86_expand_sse_comi): Likewise.
25251 (ix86_expand_vec_init_builtin): Likewise.
25252 (ix86_expand_vec_ext_builtin): Likewise.
25253 (ix86_expand_vec_set_builtin): Likewise.
25254 (ix86_expand_builtin): Use new CALL_EXPR accessors.
25255
25256 * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
25257 * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
25258
25259 * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
25260 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
25261 (iq2000_expand_builtin): Use new CALL_EXPR accessors.
25262
25263 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
25264 build_call_expr.
25265 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
25266 (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
25267 arglist. Use new CALL_EXPR accessors. Fix callers.
25268 (altivec_expand_abs_builtin): Likewise.
25269 (rs6000_expand_binop_builtin): Likewise.
25270 (altivec_expand_predicate_builtin): Likewise.
25271 (altivec_expand_lv_builtin): Likewise.
25272 (spe_expand_stv_builtin): Likewise.
25273 (altivec_expand_stv_builtin): Likewise.
25274 (rs6000_expand_ternop_builtin): Likewise.
25275 (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
25276 (altivec_expand_st_builtin): Likewise.
25277 (altivec_expand_dst_builtin): Likewise.
25278 (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
25279 arglist. Use new CALL_EXPR accessors. Fix callers.
25280 (altivec_expand_vec_set_builtin): Likewise.
25281 (altivec_expand_vec_ext_builtin): Likewise.
25282 (altivec_expand_builtin): Use new CALL_EXPR accessors.
25283 (spe_expand_builtin): Likewise.
25284 (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
25285 arglist. Use new CALL_EXPR accessors. Fix callers.
25286 (spe_expand_evsel_builtin): Likewise.
25287 (rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and
25288 FCFSX cases must construct whole new CALL_EXPR, not just arglist.
25289
25290 * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
25291 instead of arglist. Use new CALL_EXPR accessors. Fix callers.
25292 (arm_expand_unop_builtin): Likewise.
25293 (arm_expand_builtin): Use new CALL_EXPR accessors.
25294
25295 * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
25296 accessors.
25297
25298 * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
25299 CALL_EXPR instead of arglist. Use new CALL_EXPR accessors.
25300 Fix callers.
25301 (bfin_expand_unop_builtin): Likewise.
25302 (bfin_expand_builtin): Use new CALL_EXPR accessors.
25303
25304 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
25305 Brooks Moses <brooks.moses@codesourcery.com>
25306 Lee Millward <lee.millward@codesourcery.com>
25307
25308 * c-semantics.c (build_stmt): Add internal diagnostic check.
25309
25310 * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
25311 accessors. Print arguments explicitly instead of as a list.
25312
25313 * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
25314
25315 * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
25316 (c_finish_omp_flish): Likewise.
25317
25318 * c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse
25319 arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH
25320 instead of TREE_CODE_LENGTH.
25321 (check_function_arguments_recurse): Use new CALL_EXPR accessors.
25322 (c_warn_unused_result): Likewise.
25323
25324 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25325
25326 PR c/26494
25327 * doc/invoke.texi (Warning Options): Remove
25328 -Werror-implicit-function-declaration.
25329 (Wimplicit-function-declaration): Update description.
25330 * opts.c (common_handle_option): Move handling of -Werror=* to...
25331 (enable_warning_as_error): ...here.
25332 * opts.h (enable_warning_as_error): Declare.
25333 * c-decl.c (implicit_decl_warning): Unless
25334 -Wno-implicit-function-declaration is given, emit a pedwarn if
25335 -std=c99 or emit a warning if -Wimplicit-function-declaration.
25336 * c.opt (Wimplicit-function-declaration): Replace
25337 mesg_implicit_function_declaration with
25338 warn_implicit_function_declaration.
25339 * c-opts.c (c_common_handle_option):
25340 -Werror-implicit-function-declaration is exactly equal as
25341 -Werror=implicit-function-declaration.
25342 (set_Wimplicit): Replace mesg_implicit_function_declaration with
25343 warn_implicit_function_declaration.
25344 (c_common_post_options): -Wimplict-function-declaration is enabled
25345 by default by -std=c99, otherwise is disabled by default.
25346 * c-objc-common.c (c_objc_common_init): Remove flawed logic.
25347
25348 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
25349
25350 * gimplify.c (gimplify_modify_expr): During gimplification, attach a
25351 DECL on the rhs to a DECL on the lhs for debug info purposes if the
25352 former is ignored but not the latter.
25353
25354 2007-02-15 Eric Botcazou <ebotcazou@adacore.com>
25355
25356 * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
25357 is made and the reference doesn't use the alias set of its type,
25358 do not create the temporary using that type.
25359
25360 2007-02-15 Aldy Hernandez <aldyh@redhat.com>
25361
25362 * jump.c: Remove prototypes for delete_computation and
25363 delete_prior_computation.
25364
25365 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
25366
25367 * jump.c (get_label_after): Delete.
25368 (get_label_before, delete_computation, delete_jump,
25369 delete_prior_computation, follow_jumps): Move...
25370 * reorg.c (delete_computation, delete_prior_computation): ... here...
25371 (get_label_before, delete_jump): ... making these static ...
25372 (follow_jumps): ... and simplifying this since it only runs after
25373 reload.
25374 * rtl.h (get_label_after, get_label_before, delete_jump,
25375 follow_jumps): Delete prototypes.
25376
25377 2007-02-15 Paolo Bonzini <bonzini@gnu.org>
25378
25379 * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
25380
25381 2007-02-15 Nick Clifton <nickc@redhat.com>
25382
25383 * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
25384 order to prevent it from being munged by the target.
25385
25386 2007-02-15 Uros Bizjak <ubizjak@gmail.com>
25387
25388 * config/i386/i386.md: Remove misleading comment.
25389
25390 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
25391
25392 * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
25393 reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
25394 invalid patterns.
25395
25396 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
25397
25398 * tree-sra.c (instantiate_missing_elements): Canonicalize
25399 bit-field types.
25400 (sra_build_assignment): New.
25401 (generate_copy_inout, generate_element_copy,
25402 generate_element_zero, generate_one_element_init): Use it.
25403
25404 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
25405
25406 * tree-sra.c (instantiate_missing_elements): Canonicalize
25407 bit-field types.
25408 (sra_build_assignment): New.
25409 (generate_copy_inout, generate_element_copy,
25410 generate_element_zero, generate_one_element_init): Use it.
25411
25412 2007-02-15 Alexandre Oliva <aoliva@redhat.com>
25413
25414 * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
25415 limbo die nodes.
25416
25417 2007-02-14 Joseph Myers <joseph@codesourcery.com>
25418
25419 * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
25420 types as aggregates not scalars.
25421 * function.c (assign_stack_temp_for_type): Likewise.
25422
25423 2007-02-14 Roger Sayle <roger@eyesopen.com>
25424 Zdenek Dvorak <dvorakz@suse.cz>
25425
25426 * tree-dump.c (dump_switch_p_1): Require exact match of the option
25427 name.
25428
25429 2007-02-14 Zdenek Dvorak <dvorakz@suse.cz>
25430
25431 * passes.c (next_pass_1): Clear the next field of the copied
25432 pass structure.
25433
25434 2007-02-14 Richard Henderson <rth@redhat.com>
25435
25436 * tree-sra.c (early_sra): New.
25437 (decl_can_be_decomposed_p): Deny va_list if early_sra.
25438 (tree_sra_early, pass_sra_early): New.
25439 * tree-pass.h (pass_sra_early): Declare.
25440 * passes.c (init_optimization_passes): Use it.
25441
25442 2007-02-14 Richard Guenther <rguenther@suse.de>
25443
25444 * flags.h (issue_strict_overflow_warning): Convert to a macro.
25445
25446 2007-02-14 Dorit Nuzman <dorit@il.ibm.com>
25447
25448 PR tree-optimization/30771
25449 * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
25450 also phi nodes.
25451 (vect_analyze_operations): Induction phis can now be marked as
25452 used_in_loop.
25453 (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
25454 Update documentation accordingly.
25455
25456 2007-02-14 Nick Clifton <nickc@redhat.com>
25457
25458 * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
25459 most 3 arguments are supported.
25460 (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
25461
25462 2007-02-13 Seongbae Park <seongbae.park@gmail.com>
25463
25464 * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
25465 Ensure dst->current is valid.
25466
25467 2007-02-13 Paul Brook <paul@codesourcery.com>
25468
25469 * config.gcc: Add arm*-*-uclinux-*eabi.
25470 * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
25471 (SUBTARGET_EXTRA_LINK_SPEC): Define.
25472 (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
25473 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
25474 (LINK_SPEC): Define.
25475 (LIB_SPEC): Define.
25476 * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
25477 register.
25478 * config/arm/uclinux-eabi.h: New file.
25479 * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
25480 * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
25481 based targets.
25482
25483 2007-02-13 Ian Lance Taylor <iant@google.com>
25484
25485 * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
25486 * flags.h (warn_strict_overflow): Declare.
25487 (enum warn_strict_overflow_code): Define.
25488 (issue_strict_overflow_warning): New static inline function.
25489 * opts.c (warn_strict_overflow): New variable.
25490 (common_handle_option): Handle OPT_Wstrict_overflow and
25491 OPT_Wstrict_overflow_.
25492 * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
25493 OPT_Wall.
25494 * fold-const.c: Include intl.h.
25495 (fold_deferring_overflow_warnings): New static variable.
25496 (fold_deferred_overflow_warning): New static variable.
25497 (fold_deferred_overflow_code): New static variable.
25498 (fold_defer_overflow_warnings): New function.
25499 (fold_undefer_overflow_warnings): New function.
25500 (fold_undefer_and_ignore_overflow_warnings): New function.
25501 (fold_deferring_overflow_warnings_p): New function.
25502 (fold_overflow_warning): New static function.
25503 (make_range): Add strict_overflow_p parameter. Change all
25504 callers.
25505 (extract_muldiv, extract_muldiv_1): Likewise.
25506 (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
25507 tree_expr_nonnegative_p.
25508 (fold_negate_expr): Call fold_overflow_warning.
25509 (fold_range_test): Likewise.
25510 (fold_comparison): Likewise.
25511 (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p
25512 instead of tree_expr_nonnegative_p.
25513 (tree_expr_nonnegative_warnv_p): Rename from
25514 tree_expr_nonnegative_p, add strict_overflow_p parameter.
25515 (tree_expr_nonnegative_p): New function.
25516 (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
25517 strict_overflow_p parameter.
25518 (tree_expr_nonzero_p): New function.
25519 * passes.c (verify_interpass_invariants): New static function.
25520 (execute_one_pass): Call it.
25521 * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
25522 warnings.
25523 (number_of_iterations_exit, loop_niter_by_eval): Likewise.
25524 (estimate_numbers_of_iterations): Likewise.
25525 (scev_probably_wraps_p): Likewise.
25526 * tree-ssa-ccp.c: Include "toplev.h".
25527 (evaluate_stmt): Defer fold overflow warnings until we know we are
25528 going to optimize.
25529 (struct fold_stmt_r_data): Add stmt field.
25530 (fold_stmt_r): Defer fold overflow warnings until we know we
25531 optimized.
25532 (fold_stmt): Initialize stmt field of fold_stmt_r_data.
25533 (fold_stmt_inplace): Likewise.
25534 * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
25535 (cleanup_control_expr_graph): Defer fold overflow warnings until
25536 we know we are going to optimize.
25537 * tree-cfg.c (fold_cond_expr_cond): Likewise.
25538 * tree-ssa-threadedge.c (simplify_control_stmt_condition):
25539 Likewise.
25540 * tree-vrp.c (vrp_expr_computes_nonnegative): Call
25541 tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
25542 * tree-ssa-loop-manip.c (create_iv): Likewise.
25543 * c-typeck.c (build_conditional_expr): Likewise.
25544 (build_binary_op): Likewise.
25545 * tree-vrp.c (vrp_expr_computes_nonzero): Call
25546 tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
25547 (extract_range_from_unary_expr): Likewise.
25548 * simplify-rtx.c (simplify_const_relational_operation): Warn when
25549 assuming that signed overflow does not occur.
25550 * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
25551 * tree.h (tree_expr_nonnegative_warnv_p): Declare.
25552 (fold_defer_overflow_warnings): Declare.
25553 (fold_undefer_overflow_warnings): Declare.
25554 (fold_undefer_and_ignore_overflow_warnings): Declare.
25555 (fold_deferring_overflow_warnings_p): Declare.
25556 (tree_expr_nonzero_warnv_p): Declare.
25557 * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
25558 of warning options.
25559 (Warning Options): Document -Wstrict-overflow.
25560 * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
25561 (tree-ssa-ccp.o): Likewise.
25562 (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
25563 (fold-const.o): Depend on intl.h.
25564
25565 2007-02-13 Ian Lance Taylor <iant@google.com>
25566
25567 PR middle-end/30751
25568 * lower-subreg.c (resolve_simple_move): Decompose subregs in
25569 addresses.
25570
25571 2007-02-13 Stuart Hastings <stuart@apple.com>
25572
25573 * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
25574
25575 2007-02-13 Richard Henderson <rth@redhat.com>
25576
25577 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
25578 handled_component_p before looking for the indirect_ref.
25579
25580 2007-02-13 Richard Henderson <rth@redhat.com>
25581
25582 * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
25583 remove flags clobber.
25584 (bswapsi2): New expander, emit code for !TARGET_BSWAP.
25585 (bswaphi_lowpart): New.
25586 (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
25587 remove TARGET_BSWAP test. Delete expander of the same name.
25588
25589 * optabs.c (widen_bswap, expand_doubleword_bswap): New.
25590 (expand_unop): Use them.
25591
25592 2007-02-13 Uros Bizjak <ubizjak@gmail.com>
25593
25594 * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
25595 *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
25596 *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
25597 *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
25598 *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
25599 *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
25600 *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
25601 assembler dialect choice from asm templates.
25602
25603 2007-02-12 Richard Henderson <rth@redhat.com>
25604
25605 * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
25606 (fixuns_trunc<SSEMODEF>si2): Use it.
25607 * config/i386/sse.md (vec_setv4sf_0): Export.
25608 * config/i386/i386.c (ix86_build_const_vector): Export.
25609 (ix86_split_convert_uns_si_sse): Rename from
25610 ix86_expand_convert_uns_si_sse and rewrite as a splitter.
25611 * config/i386/i386-protos.h: Update.
25612
25613 2007-02-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25614
25615 PR c/29521
25616 * c-typeck.c (c_finish_return): Improve warning message.
25617
25618 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25619
25620 * alias.c (find_symbolic_term): Delete unused function.
25621
25622 2007-02-12 Uros Bizjak <ubizjak@gmail.com>
25623
25624 * config/i386/i386.md (paritydi2, paritysi2): New expanders.
25625 (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
25626 (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
25627
25628 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
25629
25630 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
25631 * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
25632 the function, temporarily point the debug interface to the null one.
25633
25634 2007-02-12 Eric Botcazou <ebotcazou@adacore.com>
25635
25636 * dwarf2out.c (round_up_to_align): New static function.
25637 (field_byte_offset): Use it to round the offset.
25638
25639 2007-02-12 Richard Henderson <rth@redhat.com>
25640
25641 * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
25642 (inswl_const): Export.
25643
25644 2007-02-12 Richard Henderson <rth@redhat.com>
25645
25646 * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
25647 result mode of the libcall, convert back to outmode.
25648
25649 2007-02-12 Roger Sayle <roger@eyesopen.com>
25650
25651 * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
25652 (bswapdi2): New define_expand to implement 32-bit implementation.
25653
25654 2007-02-12 Nick Clifton <nickc@redhat.com>
25655
25656 * doc/invoke.texi (Overall Options): Document --help=.
25657 * gcc.c (target_help_flag): Rename to print_subprocess_flag.
25658 (cc1_options): Pass --help= on to cc1.
25659 (display_help): Add description of --help=.
25660 (process_command): Add code to handle --help=. Allow translated
25661 --help and --target-help switches to be passed on to compiler
25662 sub-process.
25663 (main): Remove unused if statement.
25664 * opts.c (columns): Remove.
25665 (LEFT_COLUMN): Define.
25666 (wrap_help): Add columns argument.
25667 (print_filtered_help): Change parameters to be an include bitmask,
25668 an exclude bitmask, an any bitmask and the column width. Move the
25669 code to display the params list here. Add code to display the
25670 status of options rather than their descriptions if the quiet flag
25671 is not active.
25672 (print_specific_help): Change parameters to be an include bitmask,
25673 an exclude bitmask and an any bitmask. Move code to look up the
25674 column width here. Decide upon the title for an options listing.
25675 (common_handle_options): Add code to handle --help=. Adapt code
25676 for --help and --target-help to use the revised form of the
25677 print_specific_help function.
25678 (print_help): Delete.
25679 (print_param_help): Delete.
25680 (print_switch): Delete.
25681 * opts.h (cl_lang_count): Add prototype.
25682 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
25683 CL_MAX_OPTION_CLASS): New defines.
25684 * optc-gen.awk: Add construction of cl_lang_count.
25685 * c.opt: Add Warning attribute to warning options and Optimization
25686 attribute to optimization options.
25687 * common.opt: Likewise.
25688 Add --help=.
25689 Add -fhelp and -ftarget-help as aliases for the transformed --help
25690 and --target-help options.
25691 * opt-functions.awk: Add code to handle Warning and Optimization
25692 attributes.
25693
25694 2007-02-12 Richard Henderson <rth@redhat.com>
25695
25696 * config/alpha/constraints.md: New file.
25697 * config/alpha/alpha.c: Include tm-constrs.h.
25698 (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
25699 alpha_extra_constraint): Remove.
25700 (alpha_emit_conditional_branch): Use satisfies_constraint_*.
25701 * config/alpha/alpha-protos.h: Update.
25702 * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
25703 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
25704 (EXTRA_CONSTRAINT): Remove.
25705 * config/alpha/alpha.md: Include constraints.md.
25706 (adddi splitter): Use satisfies_constraint_*.
25707 * config/alpha/predicates.md (add_operand): Likewise.
25708 (sext_add_operand, addition_operation): Likewise.
25709
25710 2007-02-12 Dorit Nuzman <dorit@il.ibm.com>
25711
25712 PR tree-optimization/29145
25713 * tree-data-ref.c (base_addr_differ_p): Make us more conservative
25714 in our handling of restrict qualified pointers.
25715
25716 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25717
25718 PR middle-end/7651
25719 * doc/invoke.texi (Wunused-value): Update description.
25720 (Wextra): Delete item.
25721 * opts.c (set_Wextra): Don't use the value of Wextra to set the
25722 value of Wunused-value.
25723 * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
25724 (c_finish_stmt_expr): Don't check extra_warnings.
25725 (emit_side_effect_warnings): The caller is responsible to check
25726 warn_unused_value.
25727
25728 2007-02-11 Roger Sayle <roger@eyesopen.com>
25729 Matt Thomas <matt@3am-software.com>
25730
25731 * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
25732
25733 2007-02-11 Roger Sayle <roger@eyesopen.com>
25734
25735 * simplify-rtx.c (simplify_relational_operation_1): Optimize
25736 comparisons of POPCOUNT against zero.
25737 (simplify_const_relational_operation): Likewise.
25738
25739 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25740
25741 * doc/invoke.texi (Wextra): Delete outdated paragraph.
25742
25743 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25744
25745 * dwarf2out.c (root_type): Delete unused function.
25746
25747 2007-02-11 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25748
25749 * genattrtab.c (contained_in_p): Delete unused function.
25750 (write_expr_attr_cache): Likewise.
25751
25752 2007-02-11 Jan Hubicka <jh@suse.cz>
25753
25754 * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
25755 previous patch.
25756
25757 2007-02-11 Steven Bosscher <steven@gcc.gnu.org>
25758
25759 * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
25760 to add the REG_EQ* note.
25761 * see.c (see_merge_one_use_extension): Likewise.
25762 * local-alloc.c (update_equiv_regs): Likewise. Also don't
25763 turn REG_EQUAL notes into REG_EQUIV notes if the target
25764 register may have more than one set.
25765 * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
25766 * gcse.c (try_replace_reg): Likewise.
25767 * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
25768 * calls.c (fixup_tail_calls): Likewise. Abort if there is
25769 more than one REG_EQUIV note.
25770 * reload1.c (gen_reload): Use set_unique_reg_note.
25771
25772 2007-02-11 Uros Bizjak <ubizjak@gmail.com>
25773
25774 * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
25775 (ix86_builtin_conversion): New function.
25776
25777 2007-02-06 Mark Mitchell <mark@codesourcery.com>
25778
25779 PR target/29487
25780 * tree.h (DECL_REPLACEABLE_P): New macro.
25781 * except.c (set_nothrow_function_flags): Likewise.
25782
25783 2007-02-11 Tehila Meyzels <tehila@il.ibm.com>
25784 Ira Rosen <irar@il.ibm.com>
25785 Dorit Nuzman <dorit@il.ibm.com>
25786
25787 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
25788 * targhooks.c (default_builtin_vectorized_conversion): New.
25789 * targhooks.h (default_builtin_vectorized_function): New declaration.
25790 * target.h (struct vectorize): Add builtin_conversion field.
25791 * tree-vectorizer.h (type_conversion_vec_info_type): New enum
25792 stmt_vec_info_type value.
25793 (vectorizable_conversion): New declaration.
25794 * tree-vect-analyze.c (vect_analyze_operations): Add
25795 vectorizable_conversion call.
25796 * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
25797 * tree-vect-transform.c (vectorizable_conversion): New function.
25798 (vect_transform_stmt): Add case for type_conversion_vec_info_type.
25799 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
25800 mode.
25801 * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
25802 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
25803 (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
25804 or ALTIVEC_BUILTIN_VCFSX.
25805
25806 2007-02-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25807
25808 PR target/30634
25809 * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
25810 CONST_DOUBLE and operand 0 is a hard register.
25811 (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
25812 memory. Fail if operand 1 is a non-zero CONST_INT and operand 0
25813 is a hard floating-point register.
25814
25815 2007-02-10 Richard Henderson <rth@redhat.com>
25816 Jakub Jelinek <jakub@redhat.com>
25817 Alexandre Oliva <aoliva@redhat.com>
25818
25819 * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
25820 * builtin-types.def (BT_WORD): Make unsigned.
25821 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
25822 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
25823 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
25824 * c-decl.c (grokdeclarator): Don't error if !have_tls.
25825 * c-parser.c (c_parser_omp_threadprivate): Likewise.
25826 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
25827 emulated tls.
25828 * expr.c (emutls_var_address): New.
25829 (expand_expr_real_1): Expand emulated tls.
25830 (expand_expr_addr_expr_1): Likewise.
25831 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
25832 * output.h (emutls_finish): Declare.
25833 * toplev.c (compile_file): Call it.
25834 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
25835 address before wrapping in CONST.
25836 * varasm.c (emutls_htab, emutls_object_type): New.
25837 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
25838 (get_emutls_object_name, get_emutls_object_type): New.
25839 (get_emutls_init_templ_addr, emutls_decl): New.
25840 (emutls_common_1, emutls_finish): New.
25841 (assemble_variable): When emulating tls, swap decls; generate
25842 constructor for the emutls objects.
25843 (do_assemble_alias): When emulating tls, swap decl and target name.
25844 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
25845 for emulated tls.
25846 * varpool.c (decide_is_variable_needed): Look at force_output.
25847 Recurse for emulated tls.
25848 (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
25849 with decide_is_variable_needed.
25850 * emutls.c: New file.
25851 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
25852 tls_object for real tls.
25853
25854 2007-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
25855
25856 PR rtl-optimization/29599
25857 * reload1.c (eliminate_regs_in_insn): Take the destination
25858 mode into account when computing the offset.
25859
25860 2007-02-09 Stuart Hastings <stuart@apple.com>
25861 Richard Henderson <rth@redhat.com>
25862
25863 * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
25864 * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
25865 * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
25866 fixuns_truncdfhi2): New.
25867 (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
25868 (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
25869 (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
25870 (floatunssidf2): Allow nonimmediate source.
25871 * config/i386/sse.md (movdi_to_sse): New.
25872 (vec_concatv2di): Drop '*'.
25873 * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
25874 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
25875 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
25876 New.
25877 * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
25878 ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
25879 ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
25880 ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
25881 (ix86_build_signbit_mask): Fix decl of v, refactor to call
25882 ix86_build_const_vector.
25883 (x86_emit_floatuns): Rewrite.
25884
25885 2007-02-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25886
25887 * genautomata.c (longest_path_length): Delete unused function.
25888 (struct state): Delete unused longest_path_length.
25889 (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
25890 (get_free_state): Delete unused.
25891
25892 2007-02-09 Jan Hubicka <jh@suse.cz>
25893
25894 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
25895 * doc/invoke.texi (inline-unit-growth): Update default value.
25896
25897 * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
25898 * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
25899 (rebuild_cgraph_edges): Likewise.
25900 * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
25901 (dump_cgraph_node): Dump frequencies.
25902 (cgraph_clone_edge): Add frequency scales.
25903 (cgraph_clone_node): Add freuqnecy.
25904 * cgraph.h (cgraph_edge): Add freuqnecy argument.
25905 (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
25906 (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
25907 * tree-pass.h (TODO_rebuild_frequencies): New constant.
25908 * cgraphunit.c (verify_cgraph_node): Verify frequencies.
25909 (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
25910 (save_inline_function_body): Likewise.
25911 * ipa-inline.c: inluce rtl.h
25912 (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
25913 (cgraph_edge_badness): Use frequencies.
25914 (cgraph_decide_recursive_inlining): Update clonning.
25915 (cgraph_decide_inlining_of_small_function): Dump frequency.
25916 * predict.c (estimate_bb_frequencies): Export.
25917 * predict.h (estimate_bb_frequencies): Declare.
25918 * tree-inline.c (copy_bb): Watch overflows.
25919 (expand_call_inline): Update call of cgraph_create_edge.
25920 (optimize_inline_calls): Use TODO flags to update frequnecies.
25921 * passes.h: Include predict.h
25922 (init_optimization_passes): Move profile ahead.
25923 (execute_function_todo): Handle TODO_rebuild_frequencies.
25924
25925 2007-02-09 Roger Sayle <roger@eyesopen.com>
25926
25927 * config/alpha/alpha.c (emit_insxl): Force the first operand of
25928 the insbl or inswl pattern into a register.
25929
25930 2007-02-09 Roger Sayle <roger@eyesopen.com>
25931
25932 * config/ia64/ia64.md (bswapdi2): New define_insn.
25933
25934 2007-02-09 Richard Henderson <rth@redhat.com>
25935
25936 * config/i386/constraints.md (Ym): New constraint.
25937 * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
25938 (movdi_1_rex64): Split sse and xmm general register moves from
25939 memory move alternatives. Use conditional register constraints.
25940 (movsf_1, movdf_integer): Likewise.
25941 (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
25942 (movdf_integer_rex64): New.
25943 (pushsf_rex64): Fix output constraints.
25944 * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
25945 (sse2_stored): Likewise.
25946 (sse2_storeq_rex64): New.
25947 * config/i386/i386.c (x86_inter_unit_moves): Enable for not
25948 amd and not generic.
25949 (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
25950 for optimize_size. Remove SF/DFmode hack.
25951
25952 2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
25953
25954 * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
25955 (bit_SSE4a): New.
25956
25957 2007-02-09 Nathan Sidwell <nathan@codesourcery.com>
25958 Richard Sandiford <richard@codesourcery.com>
25959
25960 * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
25961 (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
25962 (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
25963 m68k/t-mlib to tmake_file.
25964 (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well.
25965 (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
25966 (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
25967 Allow it to be cf or m68k. Set m68k_arch_family. If that
25968 variable is not empty, add t-$m68k_arch_family to tmake_file.
25969 Add t-mlibs to tmake_file.
25970 * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
25971 * config/m68k/t-cf: New file.
25972 * config/m68k/t-m68k: Likewise.
25973 * config/m68k/t-mlibs: Likewise.
25974 * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
25975 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
25976 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
25977 * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
25978 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
25979 Delete.
25980 * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
25981 (INSTALL_LIBGCC): Delete.
25982 (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
25983 * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
25984 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
25985 (M68K_MLIB_CPU): Define.
25986 * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
25987 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
25988 (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
25989
25990 2007-02-09 Zdenek Dvorak <dvorakz@suse.cz>
25991 Richard Guenther <rguenther@suse.de>
25992
25993 PR middle-end/23361
25994 * fold-const.c (fold_comparison): Handle obfuscated comparisons
25995 against INT_MIN/INT_MAX.
25996 * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
25997 file if a loop is removed.
25998
25999 2007-02-09 Joseph Myers <joseph@codesourcery.com>
26000
26001 * calls.c (store_one_arg): Pass correct alignment to
26002 emit_push_insn for non-BLKmode values.
26003 * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
26004 unaligned stack slot via a suitably aligned slot.
26005
26006 2007-02-08 DJ Delorie <dj@redhat.com>
26007
26008 * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
26009 warnings.
26010 (legal_subregs): Use unsigned char, make const.
26011 (m32c_illegal_subreg_p): Use ARRAY_SIZE. Delete unused variables.
26012
26013 2007-02-08 Paul Brook <paul@codesourcery.com>
26014
26015 * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
26016 special interworking needed.
26017
26018 2007-02-08 Harsha Jagasia <harsha.jagasia@amd.com>
26019
26020 * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
26021 conditional to __SSE2__.
26022 (Entries below should have been added to first ChangeLog
26023 entry for amdfam10 dated 2007-02-05)
26024 * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
26025 defined.
26026 * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
26027 defined.
26028 * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
26029 defined.
26030
26031 2007-02-08 DJ Delorie <dj@redhat.com>
26032
26033 * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
26034 * config/m32c/m32c.c (legal_subregs): New.
26035 (m32c_illegal_subreg_p): New.
26036 * config/m32c/predicates.md (m32c_any_operand): Use it to reject
26037 unsupported subregs of hard regs.
26038
26039 2007-02-08 Jan Hubicka <jh@suse.cz>
26040
26041 * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
26042 the same one; always update histograms.
26043
26044 2007-02-08 Diego Novillo <dnovillo@redhat.com>
26045
26046 * passes.c (init_optimization_passes): Tidy comment.
26047
26048 2007-02-08 Roger Sayle <roger@eyesopen.com>
26049
26050 * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
26051 strip zero_extend, bswap and rotates from POCOUNT's argument.
26052 <PARITY>: Likewise, we can strip not, bswap, sign_extend,
26053 zero_extend and rotates from PARITY's argument.
26054 <BSWAP>: A byte-swap followed by a byte-swap is an identity.
26055 (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
26056 of an integer constant at compile-time.
26057
26058 2007-02-08 Diego Novillo <dnovillo@redhat.com>
26059
26060 PR 30562
26061 * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
26062 Update all users.
26063 * tree-ssa-alias.c (compute_is_aliased): Remove. Update all
26064 users.
26065 (init_alias_info):
26066 * tree-ssa-live.c (remove_unused_locals): Do not remove
26067 TREE_ADDRESSABLE variables.
26068 * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
26069 * tree-ssa-operands.c (add_virtual_operand): Remove argument
26070 FOR_CLOBBER. Update all users.
26071 If VAR has an associated alias set, add a virtual operand for
26072 it if no alias is found to conflict with the memory reference.
26073
26074 2007-02-07 Jan Hubicka <jh@suse.cz>
26075 Robert Kidd <rkidd@crhc.uiuc.edu>
26076
26077 * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
26078
26079 2007-02-07 Ian Lance Taylor <iant@google.com>
26080
26081 * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
26082
26083 2007-02-07 Roger Sayle <roger@eyesopen.com>
26084
26085 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
26086 parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
26087 tablejumpdi, movsi_to_cr_one): Remove constraints from
26088 define_expand's match_operands.
26089
26090 2007-02-07 Roger Sayle <roger@eyesopen.com>
26091
26092 * global.c (compute_regsets): Move declatation of "i" inside of
26093 #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
26094
26095 2007-02-07 Jakub Jelinek <jakub@redhat.com>
26096
26097 PR c++/30703
26098 * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
26099 of INDIRECT_REF <RESULT_DECL>.
26100
26101 * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
26102
26103 2007-02-06 J"orn Rennecke <joern.rennecke@arc.com>
26104 Kaz Kojima <kkojima@gcc.gnu.org>
26105
26106 PR target/29746
26107 * config/sh/sh.c (expand_cbranchdi4): Use scratch register
26108 properly.
26109 (sh_initialize_trampoline): Add parentheses to avoid a warning.
26110
26111 2007-02-06 Zdenek Dvorak <dvorakz@suse.cz>
26112
26113 * doc/loop.texi: Document possibility not to perform disambiguation
26114 of loops with multiple latches.
26115 * cfgloopmanip.c (alp_enum_p): Removed.
26116 (add_loop): Handle subloops. Use get_loop_body_with_size.
26117 (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
26118 * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
26119 the new forwarder block.
26120 (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
26121 Handle the case latch is NULL.
26122 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
26123 modifications when marking loop exits.
26124 * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot
26125 be modified.
26126 * loop-init.c (loop_optimizer_init): Do not modify cfg. Call
26127 disambiguate_loops_with_multiple_latches.
26128 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
26129 before fix_loop_structure.
26130 * cfgloop.c: Include pointer-set.h and output.h.
26131 (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
26132 update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
26133 (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
26134 find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
26135 mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
26136 disambiguate_multiple_latches, get_loop_body_with_size,
26137 disambiguate_loops_with_multiple_latches): New functions.
26138 (flow_loop_dump): Dump multiple latch edges.
26139 (flow_loop_nodes_find): Handle loops with multiple latches.
26140 (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
26141 (glb_enum_p): Modified.
26142 (get_loop_body): Use get_loop_body_with_size.
26143 * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
26144 (AVOID_CFG_MODIFICATIONS): New constant.
26145 (disambiguate_loops_with_multiple_latches, add_loop,
26146 get_loop_body_with_size): Declare.
26147 * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
26148
26149 2007-02-06 Seongbae Park <seongbae.park@gmail.com>
26150
26151 PR inline-asm/28686
26152 * global.c (compute_regsets): New function.
26153 (global_alloc): Refactored ELIMINABLE_REGSET
26154 and NO_GLOBAL_ALLOC_REGS computation out.
26155 (rest_of_handle_global_alloc): Call compute_regsets()
26156 for non-optimizing case.
26157
26158 2007-02-06 Richard Henderson <rth@redhat.com>
26159
26160 * config/i386/constraints.md (Y2): Rename from Y.
26161 (Yi): New constraint.
26162 * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
26163 pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
26164 zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
26165 (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
26166 truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
26167 fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
26168 floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
26169 absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
26170 fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
26171 * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
26172 mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
26173 vec_extractv2si_1): Change Y constraints to Y2.
26174 * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
26175 vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
26176 Change Y constraints to Y2.
26177 (sse2_loadld): Change Y constraints to x.
26178
26179 2007-02-06 Roger Sayle <roger@eyesopen.com>
26180
26181 * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
26182 (parity<mode>2): New define_expand using rs6000_emit_parity.
26183 * config/rs6000/rs6000.c (rs6000_emit_popcount,
26184 rs6000_emit_parity): New functions.
26185 * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
26186 rs6000_emit_parity): Prototype here.
26187
26188 2007-02-06 Ian Lance Taylor <iant@google.com>
26189
26190 * lower-subreg.c (simple_move_operand): Reject CONST.
26191 (resolve_clobber): Call validate_change rather than directly
26192 assigning to XEXP (pat, 0).
26193
26194 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
26195
26196 * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
26197 (tree-ssa-reassoc.o): Add pointer-set.h dependency.
26198 (tree-cfg.o): Remove hashtab.h dependency.
26199
26200 * tree-ssa-loop-ivopts.c: Include pointer-set.h.
26201 (struct ivopts_data): Change niters to pointer_map_t.
26202 (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
26203 (niter_for_exit): Create pointer_map on demand. Change for
26204 pointer_map API.
26205 (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
26206 (free_loop_data): Destroy data->niters if created and reset field.
26207 (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
26208 (tree_ssa_iv_optimize_loop): Check for presence of stale data.
26209
26210 * tree-ssa-reassoc.c: Include pointer-set.h.
26211 (bb_rank): Change to long *.
26212 (operand_rank): Change to pointer_map_t.
26213 (find_operand_rank): Return long, -1 if not found. Declare as inline.
26214 (insert_operand_rank): Accept long.
26215 (operand_entry_hash, operand_entry_eq): Remove.
26216 (get_rank): Return long. Adjust for changes above.
26217 (init_reassoc): Change rank type to long. Adjust creation of bb_rank
26218 and operand_rank.
26219 (fini_reassoc): Delete operand_rank with pointer_map_destroy.
26220
26221 * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
26222 (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
26223 (insert_vi_for_tree): Rewrite for pointer_map API. Assert argument
26224 is not NULL.
26225 (lookup_vi_for_tree): Rewrite for pointer_map API. Return varinfo_t
26226 directly since it cannot be NULL.
26227 (get_vi_for_tree): Rewrite for pointer_map API.
26228 (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
26229 (init_alias_vars): Create vi_for_tree as pointer_map.
26230 (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
26231
26232 * tree-cfg.c: Don't include hashtab.h.
26233 (edge_to_cases): Declare as pointer_map.
26234 (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
26235 Delete.
26236 (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
26237 (start_recording_case_labels): Create edge_to_cases as pointer_map.
26238 (end_recoding_case_labels): Cleanup edge_to_cases manually before
26239 destroying it.
26240 (record_switch_edge): Delete.
26241 (get_cases_for_edge): Adjust for pointer_map API, inline
26242 record_switch_edge (rewritten for new API), remove goto.
26243
26244 2006-02-06 Paolo Bonzini <bonzini@gnu.org>
26245
26246 * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
26247 * tree-nested.c: Include pointer-set.h.
26248 (var_map_elt, var_map_eq, var_map_hash): Delete.
26249 (struct nesting_info): Remove GTY marker. Change the two htab_t's
26250 to pointer_map_t's.
26251 (nesting_info_bitmap_obstack): New.
26252 (lookup_field_for_decl): Adjust for pointer_map API.
26253 (lookup_tramp_for_decl): Adjust for pointer_map API.
26254 (get_nonlocal_debug_decl): Adjust for pointer_map API.
26255 (get_local_debug_decl): Adjust for pointer_map API.
26256 (convert_nl_goto_reference): Adjust for pointer_map API.
26257 (convert_nl_goto_receiver): Adjust for pointer_map API.
26258 (create_nesting_tree): Create outside GGC space. Create bitmap on
26259 the new obstack. Create field_map and var_map as pointer_maps.
26260 (free_nesting_tree): Adjust for changes to create_nesting_tree.
26261 (root): Delete.
26262 (lower_nested_functions): Move root here, no need to NULL it.
26263 Initialize and release the obstack.
26264
26265 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
26266
26267 * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
26268 Remove prototypes and make them non-static.
26269 (struct tree_int_map): Remove.
26270 * tree.h (struct tree_int_map): Move here, turning TO into an
26271 unsigned int.
26272 (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
26273
26274 * tree.h (TREE_COMPLEXITY): Remove.
26275 (struct tree_exp): Remove complexity field.
26276 * tree.c (build1_stat): Don't set it.
26277
26278 2007-02-06 Dorit Nuzman <dorit@il.ibm.com>
26279 Victor Kaplansky <victork@il.ibm.com>
26280
26281 * tree-vectorizer.c (vect_is_simple_use): Support induction.
26282 (vect_is_simple_reduction): Support reduction with induction as
26283 one of the operands.
26284 (vect_is_simple_iv_evolution): Fix formatting.
26285 * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
26286 formatting. Don't mark induction phis for vectorization.
26287 (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
26288 * tree-vect-transform.c (get_initial_def_for_induction): New function.
26289 (vect_get_vec_def_for_operand): Support induction.
26290 (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
26291 induction case.
26292 (vectorizable_reduction): Support reduction with induction as one of
26293 the operands.
26294 (vectorizable_type_demotion): Use def-type of stmt argument rather
26295 than dummy def-type.
26296
26297 * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
26298 flag_tree_scev_cprop.
26299 * common.opt (tree-scev-cprop): New flag.
26300
26301 * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
26302 call to vect_get_new_vect_var.
26303
26304 2007-02-06 Ira Rosen <irar@il.ibm.com>
26305
26306 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
26307 vectype is not NULL.
26308 (vect_pattern_recog_1): Likewise.
26309
26310 2007-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26311
26312 * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
26313 (fold_negate_expr): Likewise.
26314
26315 2007-02-05 Alexandre Oliva <aoliva@redhat.com>
26316
26317 PR debug/30189
26318 * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
26319 even if cv-qualification is the same.
26320
26321 2007-02-05 Geoffrey Keating <geoffk@apple.com>
26322
26323 * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
26324 __enable_execute_stack on completion.
26325
26326 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26327
26328 * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
26329 athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
26330 athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
26331 athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
26332 athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
26333 athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
26334 athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
26335 athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
26336
26337 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26338
26339 * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
26340 cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
26341 swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
26342 fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
26343 x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
26344 floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
26345 floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
26346 mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
26347 umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
26348 umuldi3_highpart_rex64, umulsi3_highpart_insn,
26349 umulsi3_highpart_zext, smuldi3_highpart_rex64,
26350 smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
26351 x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
26352 sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
26353 sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
26354 sqrtextenddfxf2_i387): Added amdfam10_decode.
26355
26356 * config/i386/athlon.md (athlon_idirect_amdfam10,
26357 athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
26358 athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
26359 athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
26360 athlon_ivector_store_amdfam10): New define_insn_reservation.
26361 (athlon_idirect_loadmov, athlon_idirect_movstore): Added
26362 amdfam10.
26363
26364 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26365
26366 * config/i386/athlon.md (athlon_call_amdfam10,
26367 athlon_pop_amdfam10, athlon_lea_amdfam10): New
26368 define_insn_reservation.
26369 (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
26370 athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
26371 athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
26372
26373 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26374
26375 * config/i386/athlon.md (athlon_sseld_amdfam10,
26376 athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
26377 athlon_mmxssest_short_amdfam10): New define_insn_reservation.
26378
26379 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26380
26381 * config/i386/athlon.md (athlon_sseins_amdfam10): New
26382 define_insn_reservation.
26383 * config/i386/i386.md (sseins): Added sseins to define_attr type
26384 and define_attr unit.
26385 * config/i386/sse.md: Set type attribute to sseins for insertq
26386 and insertqi.
26387
26388 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26389
26390 * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
26391 ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
26392 ssecomi_load_amdfam10, ssecomi_amdfam10,
26393 sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
26394 define_insn_reservation.
26395 (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
26396
26397 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26398
26399 * config/i386/athlon.md (cvtss2sd_load_amdfam10,
26400 cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
26401 cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
26402 cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
26403 cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
26404 cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
26405 define_insn_reservation.
26406
26407 * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
26408 cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
26409 cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
26410 cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
26411 cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
26412
26413 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26414
26415 * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
26416 athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
26417 athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
26418 (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
26419 athlon_ssemul_load_k8): Added amdfam10.
26420
26421 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26422
26423 * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
26424 (x86_sse_unaligned_move_optimal): New variable.
26425
26426 * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
26427 m_AMDFAM10.
26428 (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
26429 for unaligned vector SSE double/single precision loads for AMDFAM10.
26430
26431 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26432
26433 * config/i386/i386.h (TARGET_AMDFAM10): New macro.
26434 (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
26435 Define TARGET_CPU_DEFAULT_amdfam10.
26436 (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
26437 (processor_type): Add PROCESSOR_AMDFAM10.
26438
26439 * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
26440 processor_type in config/i386/i386.h.
26441 Enable imul peepholes for TARGET_AMDFAM10.
26442
26443 * config.gcc: Add support for --with-cpu option for amdfam10.
26444
26445 * config/i386/i386.c (amdfam10_cost): New variable.
26446 (m_AMDFAM10): New macro.
26447 (m_ATHLON_K8_AMDFAM10): New macro.
26448 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
26449 x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
26450 x86_promote_QImode, x86_integer_DFmode_moves,
26451 x86_partial_reg_dependency, x86_memory_mismatch_stall,
26452 x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
26453 x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
26454 x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
26455 x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
26456 Enable/disable for amdfam10.
26457 (override_options): Add amdfam10_cost to processor_target_table.
26458 Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
26459 processor_alias_table.
26460 (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
26461 (ix86_adjust_cost): Add code for amdfam10.
26462
26463 2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com>
26464
26465 * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
26466 instruction set feature flag. Add new (-mpopcnt) flag for popcnt
26467 instruction. Add new SSE4A (-msse4a) instruction set feature flag.
26468 * config/i386/i386.h: Add builtin definition for SSE4A.
26469 * config/i386/i386.md: Add support for ABM instructions
26470 (popcnt and lzcnt).
26471 * config/i386/sse.md: Add support for SSE4A instructions
26472 (movntss, movntsd, extrq, insertq).
26473 * config/i386/i386.c: Add support for ABM and SSE4A builtins.
26474 Add -march=amdfam10 flag.
26475 * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
26476 * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
26477 and amdfam10.
26478 * doc/extend.texi: Add documentation for SSE4A builtins.
26479
26480 2007-02-05 Bob Wilson <bob.wilson@acm.org>
26481
26482 * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
26483
26484 2007-02-05 Richard Guenther <rguenther@suse.de>
26485
26486 * tree-vectorizer.h (vectorizable_function): Add argument type
26487 argument, change return type.
26488 * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
26489 * tree-vect-transform.c (vectorizable_function): Handle extra
26490 argument, return vectorized function decl.
26491 (build_vectorized_function_call): Remove.
26492 (vectorizable_call): Handle calls with result and argument types
26493 differing. Handle loop vectorization factor correctly.
26494 * targhooks.c (default_builtin_vectorized_function): Adjust for
26495 extra argument.
26496 * targhooks.h (default_builtin_vectorized_function): Likewise.
26497 * target.h (builtin_vectorized_function): Add argument type
26498 argument.
26499 * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
26500 extra argument, allow vectorizing of lrintf.
26501 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
26502 documentation of target hook.
26503
26504 2007-02-05 Hans-Peter Nilsson <hp@axis.com>
26505
26506 PR target/30665
26507 * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
26508 ("*andhi_clear", andu (casesi+45)): For size-changed operand where
26509 memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
26510
26511 2007-02-05 Roger Sayle <roger@eyesopen.com>
26512
26513 * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
26514 BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
26515 <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
26516 * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
26517 before canonicalizing sincos to cexpi.
26518 (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
26519
26520 2007-02-05 Roger Sayle <roger@eyesopen.com>
26521
26522 * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
26523 Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
26524 (alpha_init_builtins): Use alpha_add_builtins to process tables.
26525
26526 2007-02-05 Roger Sayle <roger@eyesopen.com>
26527
26528 * mips-tfile.c (initialize_init_file): Correct endianness test.
26529
26530 2007-02-05 Kazu Hirata <kazu@codesourcery.com>
26531
26532 * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
26533 the 'y' constraint.
26534
26535 2007-02-05 Richard Sandiford <richard@codesourcery.com>
26536
26537 * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
26538 saves in a PARALLEL before the register assignments.
26539
26540 2007-02-05 Richard Sandiford <richard@codesourcery.com>
26541
26542 * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
26543 DWARF_FRAME_RETURN_COLUMN to be a general register.
26544 * dwarf2out.c (init_return_column_size): New function, split from...
26545 (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both
26546 DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
26547 to be nongeneral registers.
26548 * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
26549 integer registers.
26550 (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
26551 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
26552
26553 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
26554
26555 * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
26556
26557 2007-02-04 Zdenek Dvorak <dvorakz@suse.cz>
26558
26559 * cfgloopmanip.c (loop_delete_branch_edge): Removed.
26560 (remove_path): Use can_remove_branch_p and remove_branch instead
26561 of loop_delete_branch_edge.
26562 * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
26563 (tree_transform_and_unroll_loop): Remove dead branches immediately.
26564 Update profile using scale_dominated_blocks_in_loop.
26565 * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
26566 * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
26567 (can_remove_branch_p, remove_branch): Declare.
26568 * tree-cfg.c (tree_can_remove_branch_p): New function.
26569 (tree_cfg_hooks): Add tree_can_remove_branch_p.
26570 * cfgrtl.c (rtl_can_remove_branch_p): New function.
26571 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
26572
26573 2007-02-05 Jan Hubicka <jh@suse.cz>
26574
26575 PR middle-end/30696
26576 * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
26577 nodes in cgraph, don't remove offline copy of the function.
26578
26579 2007-02-04 Jan Hubicka <jh@suse.cz>
26580
26581 * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
26582 vectors might cause maybe_lookup_element_for_expr to be called
26583 on non-sra-candidate.
26584
26585 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
26586
26587 * config/bfin/bfin-modes.def, config/bfin/bfin.c,
26588 config/bfin/bfin.md, config/bfin/predicates.md: Follow
26589 spelling conventions.
26590
26591 2007-02-04 Richard Guenther <rguenther@suse.de>
26592
26593 PR middle-end/30636
26594 * fold-const.c (try_move_mult_to_index): Make sure to not
26595 overflow one dimension of a multi-dimensional array access.
26596
26597 2007-02-04 Jan Hubicka <jh@suse.cz>
26598
26599 * passes.c (init_optimization_passes): Reindent.
26600
26601 2007-02-04 Jan Hubicka <jh@suse.cz>
26602 Eric Botcazou <ebotcazou@adacore.com>
26603
26604 * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
26605 (execute_fixup_cfg): Break out the abnormal goto code.
26606 * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
26607 (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
26608 (optimize_inline_calls): Call make_nonlocal_label_edges.
26609
26610 2007-02-04 Jan Hubicka <jh@suse.cz>
26611
26612 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
26613 true when something was changed.
26614 (rename_ssa_copies): When something was changed, do
26615 TODO_remove_unused_locals.
26616 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
26617 add TODO_remove_unused_locals when instruction was removed.
26618
26619 2007-02-04 Jan Hubicka <jh@suse.cz>
26620
26621 * ipa-inline.c (try_inline): Improve debug output; work on already
26622 inline edges too.
26623 (cgraph_decide_inlining_incrementally): Indent; improve debug output;
26624 call try_inline for already inlined edges too when flattening;
26625 inline also functions that make callee growth but overall unit size
26626 reduce.
26627
26628 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
26629
26630 * config/m32c/bitops.md, config/m32c/jump.md,
26631 config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
26632 config/m32r/m32r.h, config/m32r/m32r.md,
26633 config/m32r/predicates.md, config/m68hc11/larith.asm,
26634 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
26635 config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
26636 config/mips/mips-protos.h, config/mips/mips.c,
26637 config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
26638 config/mn10300/mn10300.h, config/mn10300/predicates.md,
26639 config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
26640 spelling conventions.
26641
26642 * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
26643 Follow spelling conventions.
26644
26645 2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
26646
26647 * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
26648 warn about C++0x compatibility.
26649
26650 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
26651
26652 * config/h8300/h8300.c, config/h8300/h8300.h,
26653 config/h8300/h8300.md: Follow spelling conventions.
26654
26655 2007-02-03 Uros Bizjak <ubizjak@gmail.com>
26656
26657 PR middle-end/30667
26658 * combine.c (try_combine): Do not substitute source operand
26659 with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
26660
26661 2007-02-03 Jan Hubicka <jh@suse.cz>
26662
26663 PR gcov-profile/30650
26664 * value-prof.c (stringop_block_profile): Fix handling of size counter;
26665 do not divide by zero for never executed counters.
26666 (tree_find_values_to_profile): Fix counters.
26667 * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
26668
26669 2007-02-03 Ian Lance Taylor <iant@google.com>
26670
26671 * lower-subreg.c (simple_move_operand): New static function,
26672 broken out of simple_move. Reject LABEL_REF, SYMBOL_REF, and HIGH
26673 operands.
26674 (simple_move): Call simple_move_operand.
26675 (find_decomposable_subregs): Add special handling of MEMs.
26676 (can_decompose_p): Rename from cannot_decompose_p. Reverse
26677 meaning of return value. If we see a hard register, test whether
26678 it can store a word_mode value. Change all callers.
26679
26680 2007-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26681
26682 * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
26683 ftrapv insns and expanders.
26684 (subdi3): Change define_expand operand 1 to arith11_operand, and
26685 operand 2 to reg_or_0_operand. Change constraints of 64-bit insn
26686 pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to
26687 handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
26688 respectively.
26689
26690 PR middle-end/30174
26691 * varasm.c (notice_global_symbol): Treat global objects as weak when
26692 flag_shlib is true.
26693
26694 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26695
26696 * emit-rtl.c (dconstpi): Delete.
26697 (dconstsqrt2): New.
26698 (init_emit_once): Delete dconstpi and init dconstsqrt2.
26699 * real.h (dconstpi): Delete.
26700 (dconstsqrt2): New.
26701 * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
26702 (fold_builtin_hypot): Likewise.
26703
26704 2007-02-03 Tom Tromey <tromey@redhat.com>
26705
26706 PR driver/30246
26707 * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
26708 -gcoff3, -gxcoff3, -gvms3 implies -dD.
26709
26710 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
26711
26712 * c-decl.c, config/avr/avr.c, config/avr/avr.h,
26713 config/m68k/m68k.c, config/m68k/netbsd-elf.h,
26714 config/mn10300/mn10300.c, config/pdp11/pdp11.h,
26715 config/rs6000/cell.md, config/rs6000/darwin.h,
26716 config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
26717 config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
26718 jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
26719 tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
26720 typos. Follow spelling conventions.
26721 * doc/invoke.texi: Follow spelling conventions.
26722
26723 2007-02-03 Roger Sayle <roger@eyesopen.com>
26724
26725 * simplify-rtx.c (simplify_relational_operation_1): Implement some
26726 canonicalization transformations that attempt to simplify integer
26727 constant comparisons to become comparisons against zero.
26728
26729 2007-02-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26730
26731 * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
26732 fabs(x)*sqrt(2).
26733 * fold-const.c (fold_binary): Fix comment typos. Fold complex
26734 (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y).
26735
26736 2007-02-02 Mike Stump <mrs@apple.com>
26737
26738 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
26739 * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
26740 (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
26741 generate a branch island.
26742
26743 2007-02-02 Bob Wilson <bob.wilson@acm.org>
26744
26745 * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
26746 (xtensa_legitimate_address_p): New.
26747 (xtensa_legitimize_address): New.
26748 (xtensa_output_addr_const_extra): New.
26749 * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
26750 (BASE_REG_P): New.
26751 (REG_OK_FOR_BASE_P): Use BASE_REG_P.
26752 (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
26753 (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
26754 (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
26755 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
26756 (xtensa_legitimize_address): New.
26757 (xtensa_output_addr_const_extra): New.
26758
26759 2007-02-02 Steve Ellcey <sje@cup.hp.com>
26760
26761 * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
26762
26763 2007-02-02 Ian Lance Taylor <iant@google.com>
26764
26765 * expmed.c (expand_divmod): Add comment.
26766
26767 2007-02-02 Kazu Hirata <kazu@codesourcery.com>
26768
26769 * emit-rtl.c (renumber_insns): Remove.
26770 * flags.h: Remove the extern for flag_renumber_insns.
26771 * rtl.h: Remove the prototype for renumber_insns.
26772 * toplev.c (flag_renumber_insns): Remove.
26773
26774 2007-02-02 Hui-May Chang <hm.chang@apple.com>
26775
26776 Revert for x86 darwin:
26777 2005-06-19 Uros Bizjak <uros@kss-loka.si>
26778
26779 * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
26780 code before the following patch under TARGET_MACHO.
26781 (ix86_function_value_regno_p): Likewise.
26782
26783 2007-02-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
26784
26785 * fold-const.c (negate_expr_p, fold_negate_expr): Handle
26786 COMPLEX_EXPR.
26787
26788 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
26789
26790 PR target/29682
26791 * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
26792 loads to general or fp registers. Add comments.
26793 * config/ia64/ia64.md (reg_pred_prefix): Add comment.
26794
26795 2007-02-02 Paolo Bonzini <bonzini@gnu.org>
26796
26797 * pointer-set.c (insert_aux): Only return insertion slot.
26798 (pointer_set_insert): Adjust.
26799 (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
26800 pointer_map_destroy, pointer_map_insert, pointer_map_contains,
26801 pointer_map_traverse): New.
26802 * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
26803 pointer_map_create, pointer_map_destroy, pointer_map_insert,
26804 pointer_map_contains, pointer_map_traverse): Declare.
26805
26806 2007-02-02 Jakub Jelinek <jakub@redhat.com>
26807
26808 PR middle-end/30473
26809 * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
26810 sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++).
26811
26812 2007-02-02 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
26813
26814 * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
26815
26816 (struct _dep): New type.
26817 (dep_t): New typedef.
26818 (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
26819 (DEP_STATUS): New access macro. The macro with the same name was
26820 renamed to DEP_LINK_STATUS.
26821 (dep_init): Declare function
26822
26823 (struct _dep_link): New type.
26824 (dep_link_t): New typedef.
26825 (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
26826 (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
26827 (DEP_LINK_STATUS): New macro.
26828 (debug_dep_links): New debug function.
26829
26830 (struct _deps_list): New type.
26831 (deps_list_t): New typedef.
26832 (DEPS_LIST_FIRST): New access macro.
26833 (FOR_EACH_DEP_LINK): New cycle macro.
26834 (create_deps_list, free_deps_list, delete_deps_list): Declare
26835 functions.
26836 (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
26837 (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
26838 (copy_deps_list_change_con): Ditto.
26839
26840 (move_dep_link): Declare function.
26841
26842 (struct _dep_node): New type.
26843 (dep_node_t): New typedef.
26844 (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
26845
26846 (struct haifa_insn_data.back_deps): New field to hold backward
26847 dependencies of the insn.
26848 (struct haifa_insn_data.depend): Rename to forw_deps. Change its type
26849 to deps_list_t.
26850 (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
26851 Change its type to deps_list_t.
26852 (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
26853 (INSN_DEPEND): Rename to INSN_FORW_DEPS.
26854 (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
26855
26856 (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead.
26857
26858 (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment.
26859
26860 (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
26861 and all callers.
26862 (dep_cost): Declare.
26863
26864 * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
26865 (ds_to_dk, dk_to_ds): New functions.
26866
26867 (init_dep_1): New static function.
26868 (init_dep): New function.
26869 (copy_dep): New static function.
26870
26871 (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
26872 functions.
26873 (detach_dep_link): New static function.
26874 (move_dep_link): New function.
26875
26876 (dep_links_consistent_p, dump_dep_links): New static functions.
26877 (debug_dep_links): New debugging function.
26878
26879 (deps_obstack, dl_obstack, dn_obstack): New static variables.
26880
26881 (alloc_deps_list, init_deps_list): New static functions.
26882 (create_deps_list): New function.
26883 (clear_deps_list): New static function.
26884 (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
26885 (deps_list_consistent_p, dump_deps_list): New static functions.
26886 (debug_deps_list): New function.
26887 (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
26888 functions.
26889 (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
26890
26891 (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
26892 use new scheduler dependencies lists.
26893 (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
26894 (sched_analyze): Ditto. Initialize dependencies lists.
26895 (add_forw_dep, compute_forward_dependences): Update to use new
26896 scheduler dependencies lists.
26897
26898 (init_dependency_caches): Init deps_obstack.
26899 (free_dependency_caches): Free deps_obstack.
26900
26901 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
26902 new scheduler dependencies lists.
26903 (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
26904 (add_back_forw_dep, delete_back_forw_dep): Ditto.
26905
26906 * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
26907 Update to use new scheduler dependencies lists.
26908 (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
26909 (debug_dependencies): Ditto.
26910 (schedule_region): Update comments.
26911
26912 * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
26913 scheduler dependencies lists.
26914 (schedule_ebb): Update comments.
26915
26916 * rtl.def (DEPS_LIST): Remove.
26917
26918 * lists.c (unused_deps_list): Remove.
26919 (free_list): Update assertions.
26920
26921 (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
26922 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
26923
26924 * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
26925 (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
26926
26927 * haifa-sched.c (comments): Update.
26928 (insn_cost1): Remove. Inline the code into insn_cost ().
26929 (insn_cost): Update to use new scheduler dependencies lists. Move
26930 processing of the dependency cost to dep_cost ().
26931 (dep_cost): New function. Use it instead of insn_cost () when
26932 evaluating cost of the dependency. Use compatible interface to
26933 interact with the target.
26934 (priority): Update to use new scheduler dependencies lists.
26935 (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn
26936 with greater number of insns that depend on the insn.
26937 (schedule_insn): Update to use new scheduler dependencies lists. Add
26938 code to free backward dependencies lists. Inline and optimize code
26939 from resolve_dep () - see PR28071.
26940 (ok_for_early_queue_removal): Update to use new scheduler dependencies
26941 lists. Update call to targetm.sched.is_costly_dependence hook.
26942
26943 (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
26944 scheduler dependencies lists.
26945
26946 (resolve_dep): Remove. Move the logic to schedule_insn ().
26947 (init_h_i_d): Initialize dependencies lists.
26948
26949 (process_insn_depend_be_in_spec): Rename to
26950 process_insn_forw_deps_be_in_spec. Update to use new scheduler
26951 dependencies lists.
26952 (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
26953 Update to use new scheduler dependencies lists.
26954 (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
26955
26956 * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
26957 new scheduler dependencies lists.
26958 (build_intra_loop_deps): Ditto.
26959
26960 * target.h (struct _dep): Declare to use in
26961 gcc_target.sched.is_costly_dependence.
26962 (struct gcc_target.sched.adjust_cost): Fix typo.
26963 (struct gcc_target.sched.is_costly_dependence): Change signature to
26964 use single dep_t parameter instead of an equivalent triad.
26965 (struct gcc_target.sched.adjust_cost_2): Remove.
26966
26967 * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
26968
26969 * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
26970
26971 * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
26972 documentation.
26973 (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
26974
26975 * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
26976 (REG_DEP_TRUE): Document.
26977
26978 * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
26979 Change signature to correspond to the targetm.sched.adjust_cost hook.
26980 Update use in TARGET_SCHED_ADJUST_COST_2.
26981 (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
26982 (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
26983 new scheduler dependencies lists.
26984 (ia64_gen_check): Ditto.
26985
26986 * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
26987 scheduler dependencies lists.
26988
26989 * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
26990 signature to correspond to the targetm.sched.is_costly_dependence hook.
26991 (is_costly_group): Update to use new scheduler dependencies lists.
26992
26993 * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
26994 instead of INSN_COST () macro.
26995
26996 2007-02-01 Ian Lance Taylor <iant@google.com>
26997
26998 * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
26999
27000 2007-02-01 Guy Martin <gmsoft@gentoo.org>
27001
27002 * pa.md (tp_load): Correct mfctl instruction syntax.
27003
27004 2007-02-01 Geoffrey Keating <geoffk@apple.com>
27005
27006 * config/rs6000/rs6000.c (rs6000_stack_info): Correct
27007 altivec_padding_size calculation on AIX. Improve comment, add
27008 assert to verify that it's right.
27009
27010 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
27011 64-bit.
27012
27013 2007-2-01 Seongbae Park <seongbae.park@gmail.com>
27014
27015 PR inline-asm/28686
27016 * global.c (global_alloc): Add mising initialization of
27017 ELIMINABLE_REGSET.
27018
27019 2007-02-01 Roger Sayle <roger@eyesopen.com>
27020
27021 * alias.c (init_alias_analysis): Correct whitespace.
27022 * bb-reorder.c (fix_edges_for_rarely_executed_code,
27023 partition_hot_cold_basic_blocks): Likewise.
27024 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
27025 expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
27026 maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
27027 fold_builtin_snprintf_chk, fold_builtin_printf,
27028 fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
27029 do_mpfr_arg3, do_mpfr_sincos): Likewise.
27030 * cfgcleanup.c (cleanup_cfg): Likewise.
27031 * cfgexpand.c (tree_expand_cfg): Likewise.
27032 * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
27033 * function.c (get_next_funcdef_no): Likewise.
27034 * gengtype.c (main): Likewise.
27035 * genmodes.c (main): Likewise.
27036 * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
27037 * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
27038 * ifcvt.c (noce_emit_move_insn): Likewise.
27039 * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
27040 Likewise.
27041 * stor-layout.c (get_best_mode): Likewise.
27042 * tree-ssa-loop-niter.c (get_val_for): Likewise.
27043 * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
27044 scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
27045 perform_var_substitution, solve_graph): Likewise.
27046 * tree-vrp.c (vrp_finalize): Likewise.
27047
27048 2007-02-01 Ian Lance Taylor <iant@google.com>
27049
27050 * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
27051 high part of a paradoxical subreg, return a constant zero.
27052
27053 2007-02-01 Zdenek Dvorak <dvorakz@suse.cz>
27054
27055 * toplev.c (lang_dependent_init): Call init_set_costs.
27056 * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
27057
27058 2007-02-01 Richard Guenther <rguenther@suse.de>
27059
27060 PR middle-end/30656
27061 * fold-const.c (fold_negate_expr): Allow negating a
27062 constant if overflow does not change.
27063
27064 2007-02-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27065
27066 * doc/c-tree.texi (Expression trees): Improve markup.
27067 * doc/tm.texi (Register Classes, Addressing Modes)
27068 (Floating Point): Fix spacing after abbreviations. Fix some
27069 typos.
27070
27071 2007-02-01 Ben Elliston <bje@au.ibm.com>
27072
27073 * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
27074 * doc/contrib.texi: Likewise.
27075 * doc/install.texi: Likewise.
27076
27077 2007-01-31 Richard Henderson <rth@redhat.com>
27078 Ian Lance Taylor <iant@google.com>
27079
27080 * lower-subreg.c: New file.
27081 * rtl.def (CONCATN): Define.
27082 * passes.c (init_optimization_passes): Add pass_lower_subreg and
27083 pass_lower_subreg2.
27084 * emit-rtl.c (update_reg_offset): New static function, broken out
27085 of gen_rtx_REG_offset.
27086 (gen_rtx_REG_offset): Call update_reg_offset.
27087 (gen_reg_rtx_offset): New function.
27088 * regclass.c: Revert patch of 2006-03-05, restoring
27089 reg_scan_update.
27090 (clear_reg_info_regno): New function.
27091 * dwarf2out.c (concatn_loc_descriptor): New static function.
27092 (loc_descriptor): Handle CONCATN.
27093 * common.opt (fsplit_wide_types): New option.
27094 * opts.c (decode_options): Set flag_split_wide_types when
27095 optimizing.
27096 * timevar.def (TV_LOWER_SUBREG): Define.
27097 * rtl.h (gen_reg_rtx_offset): Declare.
27098 (reg_scan_update): Declare.
27099 * regs.h (clear_reg_info_regno): Declare.
27100 * tree-pass.h (pass_lower_subreg): Declare.
27101 (pass_lower_subreg2): Declare.
27102 * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
27103 (Optimize Options): Add -fsplit-wide-types to -O1 list. Document
27104 -fsplit-wide-types.
27105 * doc/rtl.texi (Regs and Memory): Document concat and concatn.
27106 * Makefile.in (OBJS-common): Add lower-subreg.o.
27107 (lower-subreg.o): New target.
27108
27109 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
27110
27111 * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
27112
27113 2007-01-31 Anatoly Sokolov <aesok@post.ru>
27114
27115 PR target/19087
27116 * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
27117
27118 2007-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27119
27120 PR middle-end/29335
27121 * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
27122
27123 2007-01-31 Zdenek Dvorak <dvorakz@suse.cz>
27124
27125 * cfgloop.h: Include vec-prim.h.
27126 (enum li_flags): Remove LI_ONLY_OLD.
27127 (loop_iterator): Changed.
27128 (fel_next, fel_init): Iterate over loop tree.
27129 (FOR_EACH_LOOP_BREAK): New macro.
27130 * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
27131 FOR_EACH_LOOP.
27132 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
27133 * modulo-sched.c (sms_schedule): Ditto.
27134 * tree-vectorizer.c (vectorize_loops): Ditto.
27135 * doc/loop.texi: Update information on loop numbering and behavior of
27136 FOR_EACH_LOOP wrto new loops.
27137 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
27138 add_to_evolution_1): Test nestedness of loops instead of comparing
27139 their numbers.
27140 * tree-chrec.c (chrec_fold_plus_poly_poly,
27141 chrec_fold_multiply_poly_poly, chrec_evaluate,
27142 hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
27143 reset_evolution_in_loop): Ditto.
27144 * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
27145
27146 2007-01-31 Dirk Mueller <dmueller@suse.de>
27147
27148 * c-common.c (warn_about_parentheses): Separate warning about
27149 un-parenthized sequence of comparison operators from the one
27150 which is supposed to warn about x <= y <= z.
27151
27152 2007-01-31 Uros Bizjak <ubizjak@gmail.com>
27153
27154 * optabs.h (enum optab_index): Add new OTI_isinf.
27155 (isinf_optab): Define corresponding macro.
27156 * optabs.c (init_optabs): Initialize isinf_optab.
27157 * genopinit.c (optabs): Implement isinf_optab using isinf?f2
27158 patterns.
27159 * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
27160 (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
27161 using isinf_optab.
27162 (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
27163 expand_builtin_interclass_mathfn.
27164 * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
27165 * config/i386/i386.md (UNSPEC_FXAM): New constant.
27166 (fxam<mode>2_i387): New insn pattern.
27167 (isinf<mode>2) New expander to implement isinf, isinff and isinfl
27168 built-in functions as x87 inline asm.
27169
27170 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
27171
27172 * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
27173
27174 2007-01-30 Eric Christopher <echristo@apple.com>
27175
27176 * config.gcc: Add geode.
27177
27178 2007-01-31 Kazu Hirata <kazu@codesourcery.com>
27179
27180 * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
27181 ipa-inline.c, tree-profile.c, tree-ssa-live.c,
27182 tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
27183 value-prof.c: Fix comment typos.
27184
27185 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
27186
27187 PR c++/24745
27188 * doc/invoke.texi (Wpointer-arith): Document warning.
27189
27190 2007-01-30 Janis Johnson <janis187@us.ibm.com>
27191
27192 * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
27193 the list of discrepancies from the draft TR.
27194
27195 2007-01-30 Dirk Mueller <dmueller@suse.de>
27196
27197 PR c++/30601
27198 * doc/invoke.texi (-Wreturn-type): Update description to
27199 match new behavior.
27200
27201 2007-01-30 Richard Sandiford <richard@codesourcery.com>
27202
27203 * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
27204
27205 2007-01-30 Uros Bizjak <ubizjak@gmail.com>
27206
27207 * builtins.c (expand_builtin_int_interclass_roundingfn): New function
27208 to handle optabs that operate on floating point input argument and
27209 output to integer output.
27210 (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
27211 (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
27212 (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
27213 expand_builtin_interclass_mathfn ().
27214 * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
27215 (ilogbsi2): Remove.
27216 (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
27217 ilogbl built-in functions as x87 intrinsics.
27218
27219 2007-01-30 Richard Guenther <rguenther@suse.de>
27220
27221 PR middle-end/27657
27222 * dwarf2out.c (reference_to_unused): Query varpool if the
27223 variable was output.
27224
27225 2007-01-30 Richard Guenther <rguenther@suse.de>
27226
27227 PR middle-end/30313
27228 * passes.c (execute_one_pass): Reset in_gimple_form to not
27229 confuse non-unit-at-a-time mode.
27230
27231 2007-01-29 Roger Sayle <roger@eyesopen.com>
27232 Richard Guenther <rguenther@suse.de>
27233
27234 * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
27235 avoid undefined behaviour on overflow. Use force_fit_type_double
27236 to construct the constant with the specified TREE_OVERFLOW.
27237
27238 2007-01-29 Janis Johnson <janis187@us.ibm.com>
27239
27240 * config/dfp-bit.c: Add parameterized support for fp exceptions.
27241 * config/dfp-bit.h: Ditto.
27242
27243 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
27244
27245 * c-decl.c (pop_scope): Replace warnings with call to
27246 warn_for_unused_label.
27247 * c-common.h (warn_for_unused_label): Declare.
27248 * c-common.c (warn_for_unused_label): Define.
27249
27250 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
27251
27252 * tree-optimize.c (update_inlined_to_pointers): Delete unused
27253 function.
27254
27255 2007-01-29 Janis Johnson <janis187@us.ibm.com>
27256
27257 * Makefile.in (USER_H): Remove decfloat.h.
27258 * ginclude/decfloat.h: Delete, moving contents to ...
27259 * ginclude/float.h: Add support for decimal floating point,
27260 guarded by __STDC_WANT_DEC_FP__.
27261
27262 2007-01-29 Mike Stump <mrs@apple.com>
27263
27264 * doc/gccint.texi (Top): Rename Loop Representation to Loop
27265 Analysis and Representation to resolve case insensitive conflict.
27266 * doc/loop.texi (Loop Analysis and Representation): Likewise.
27267
27268 2007-01-28 Daniel Berlin <dberlin@dberlin.org>
27269
27270 * tree.h (struct tree_memory_tag): Add aliases member.
27271 (MTAG_ALIASES): New macro.
27272 * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
27273 (add_may_alias): Remove pointer-set. Update for may_aliases being
27274 a bitmap.
27275 (mark_aliases_call_clobbered): Update for may_aliases being a
27276 bitmap.
27277 (compute_tag_properties): Ditto.
27278 (create_partition_for): Ditto.
27279 (compute_memory_partitions): Ditto.
27280 (dump_may_aliases_for): Ditto.
27281 (is_aliased_with): Ditto.
27282 (add_may_alias_for_new_tag): Ditto.
27283 (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
27284 (compute_is_aliased): New function.
27285 (compute_may_aliases): Call compute_is_aliased).
27286 (init_alias_info): Initialize alias_bitmap_obstack.
27287 (union_alias_set_into): New function.
27288 (compute_flow_sensitive_aliasing): Use union_aliases_into.
27289 (have_common_aliases_p): Rewrite to take two bitmaps and use
27290 intersection.
27291 (compute_flow_insensitive_aliasing): Stop using pointer-sets.
27292 Update for bitmaps.
27293 (finalize_ref_all_pointers): Update for add_may_alias changes.
27294 (new_type_alias): Ditto.
27295 * tree-flow-inline.h (may_aliases): Return a bitmap.
27296 * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
27297 * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
27298 may_aliases being a bitmap.
27299 * tree-flow.h (struct var_ann_d): Remove may_aliases member.
27300 may_aliases now returns a bitmap.
27301 * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
27302 being a bitmap.
27303 * tree-ssa-operands.c (add_virtual_operand): Update for
27304 may_aliases being a bitmap.
27305
27306 2007-01-29 Daniel Berlin <dberlin@dberlin.org>
27307
27308 PR tree-optimization/30630
27309 * tree-ssa-structalias.c (do_complex_constraint): Mark correct
27310 variable as changed.
27311
27312 2007-01-29 Simon Martin <simartin@users.sourceforge.net>
27313
27314 PR c++/28266
27315 * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
27316 expanded only once even if an error occurs.
27317
27318 2007-01-29 Ben Elliston <bje@au.ibm.com>
27319
27320 * gcov-io.h (__gcov_indirect_call_profiler): Declare.
27321 (__gcov_average_profiler): Likewise.
27322 (__gcov_ior_profiler): Likewise.
27323 (__gcov_merge_ior): Likewise.
27324
27325 2007-01-28 Jan Hubicka <jh@suse.cz>
27326
27327 * builtins.c (expand_builtin_memset): Fix typo in my last patch.
27328 * value-prof.c (stringop_block_profile): Likewise.
27329
27330 2007-01-28 Jan Hubicka <jh@suse.cz>
27331
27332 * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
27333 Add variant handling histograms; add wrapper.
27334 (clear_storage_via_libcall): Export.
27335 (emit_block_move_hints): Break out from ...; add histograms.
27336 (emit_block_move): ... this one.
27337 (clear_storage_hints): Break out from ...; add histograms.
27338 (clear_storage): ... this one.
27339 (set_storage_via_memset): Handle histogram.
27340 * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
27341 (clear_storage_hints, clear_storage_via_libcall): Declare.
27342 (set_storage_via_setmem): Update prototype.
27343 * doc/md.texi (movmem, setmem): Document new arguments.
27344
27345 * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
27346 Add new histograms.
27347 (stringop_block_profile): New global function.
27348 (tree_stringops_values_to_profile): Profile block size and alignment.
27349 * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
27350 HIST_TYPE_IOR.
27351 (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
27352 (stringop_block_profile): Declare.
27353 * builtins.c: Include value-prof.h.
27354 (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
27355 * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
27356 (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
27357 (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
27358 * profile.c (instrument_values): Add new counters.
27359 * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
27360 calls.
27361 * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
27362 (tree_init_edge_profiler): Build new profilers.
27363 (tree_gen_average_profiler, tree_gen_ior_profiler): New.
27364 (pass_tree_profile): Add dump.
27365 (tree_profile_hooks): Update.
27366 * Makefile.in (LIBGCOV): Add new constants.
27367 * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
27368 __gcov_ior_profiler): New.
27369 * i386.md (movmem/setmem expanders): Add new optional arguments.
27370
27371 2007-01-28 David Edelsohn <edelsohn@gnu.org>
27372
27373 * doc/md.texi (Standard Pattern Names): Document blockage pattern.
27374
27375 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
27376
27377 * tree-ssa-loop-unswitch.c: Include tree-inline.h.
27378 (tree_unswitch_single_loop): Pass eni_size_weights to
27379 tree_num_loop_insns.
27380 * tree-ssa-loop-manip.c: Include tree-inline.h.
27381 (can_unroll_loop_p): Pass eni_size_weights to
27382 tree_num_loop_insns.
27383 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
27384 Pass eni_size_weights to estimate_num_insns.
27385 * tree.h (init_inline_once): Export.
27386 * toplev.c (backend_init): Call init_inline_once.
27387 * cgraphunit.c (cgraph_process_new_functions,
27388 cgraph_analyze_function): Pass eni_inlining_weights to
27389 estimate_num_insns.
27390 * ipa-inline.c (compute_inline_parameters): Ditto.
27391 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
27392 to estimate_num_insns.
27393 (try_unroll_loop_completely): Pass eni_size_weights to
27394 tree_num_loop_insns.
27395 * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
27396 ot estimate_num_insns.
27397 * tree-ssa-loop-prefetch.c: Include tree-inline.h.
27398 (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
27399 * tree-inline.c (eni_inlining_weights, eni_size_weights,
27400 eni_time_weights): New variables.
27401 (init_inline_once): Initialize them.
27402 (struct eni_data): Mew.
27403 (estimate_num_insns_1, estimate_num_insns): Use weights.
27404 * tree-inline.h (struct eni_weights_d): New.
27405 (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
27406 (estimate_num_insns): Declaration changed.
27407 * cfgloop.h (tree_num_loop_insns): Declaration changed.
27408 * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
27409 tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
27410
27411 2007-01-28 Zdenek Dvorak <dvorakz@suse.cz>
27412
27413 * tree-data-ref.c (conflict_fn): Assert that the number of affine
27414 relations in the conflict function is valid.
27415
27416 2007-01-27 Ian Lance Taylor <iant@google.com>
27417
27418 * common.opt: Add fstrict-overflow.
27419 * opts.c (decode_options): Set flag_strict_overflow if -O2.
27420 * flags.h (TYPE_OVERFLOW_WRAPS): Define.
27421 (TYPE_OVERFLOW_UNDEFINED): Define.
27422 (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED.
27423 Replace all uses.
27424 * tree.h (TYPE_TRAP_SIGNED): Don't define.
27425 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
27426 (fold_negate_expr): Likewise.
27427 (make_range): Likewise.
27428 (extract_muldiv_1): Likewise.
27429 (maybe_canonicalize_comparison): Likewise.
27430 (fold_comparison): Likewise.
27431 (fold_binary): Likewise.
27432 (tree_expr_nonnegative_p): Likewise.
27433 (tree_expr_nonzero_p): Likewise.
27434 * tree-vrp.c (compare_values): Likewise.
27435 (extract_range_from_binary_expr): Likewise.
27436 (extract_range_from_unary_expr): Likewise.
27437 * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
27438 Likewise.
27439 (nowrap_type_p): Likewise.
27440 * tree-scalar-evolution.c (simple_iv): Likewise.
27441 * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
27442 (build_range_check): Likewise.
27443 (extract_muldiv_1): Likewise.
27444 (fold_comparison): Likewise.
27445 * tree-vrp.c (vrp_int_const_binop): Likewise.
27446 (extract_range_from_unary_expr): Likewise.
27447 * convert.c (convert_to_integer): Likewise.
27448 * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
27449 (fold_comparison): Likewise.
27450 (fold_binary): Likewise.
27451 * optabs.c (optab_for_tree_code): Likewise.
27452 * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
27453 * simplify-rtx.c (simplify_const_relational_operation): Check
27454 flag_strict_overflow and flag_trapv.
27455 (simplify_const_relational_operation): Likewise.
27456 * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
27457 (Optimize Options): Add -fstrict-overflow to -O2 list. Document
27458 -fstrict-overflow.
27459
27460 2007-01-27 Roger Sayle <roger@eyesopen.com>
27461
27462 * tree.c (tree_fold_gcd): Delete.
27463 * tree.h (tree_fold_gcd): Remove prototype.
27464 * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
27465 test whether one constant integer is a multiple of another. Instead
27466 call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
27467 * fold-const.c (multiple_of_p): We've determined both TOP and
27468 BOTTOM are integer constants so we can call int_const_binop directly
27469 instead of the more generic const_binop.
27470
27471 2007-01-27 Roger Sayle <roger@eyesopen.com>
27472
27473 * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
27474 1*X check that the constant hasn't overflowed, to preserve the
27475 TREE_OVERFLOW bit.
27476 (round_up): Provide an efficient implementation when rouding-up an
27477 INTEGER_CST to a power-of-two.
27478
27479 2007-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27480
27481 * doc/sourcebuild.texi: Add comma for clarity.
27482 * doc/extend.texi: Fix some typos.
27483 * doc/passes.texi: Likewise.
27484 * doc/cppinternals.texi: Likewise.
27485 * doc/c-tree.texi: Likewise.
27486 * doc/tree-ssa.texi: Likewise.
27487 * doc/install.texi: Likewise.
27488
27489 2007-01-27 Jan Hubicka <jh@suse.cz>
27490
27491 * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
27492 (pass_sra): Do not require alias information.
27493 * passes.c (init_optimization_passes): Add SRA
27494
27495 2007-01-27 Steven Bosscher <steven@gcc.gnu.org>
27496
27497 * tracer.c (rest_of_handle_tracer): We already cleaned
27498 up the CFG in tracer() so don't do it here again.
27499 * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
27500 cleanup_cfg here, either. And don't call renumber_insns.
27501
27502 * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
27503 and BB_HEAD are in the insn stream here. Instead make sure
27504 that BB_INSN is valid on all insns. Also, do check here that
27505 there are no pending branch predictions...
27506 (rtl_verify_flow_info): ...instead of doing it here. Checks
27507 for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
27508 here.
27509
27510 2007-01-26 Roger Sayle <roger@eyesopen.com>
27511
27512 * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
27513 function to simplify/factorize operand order canonicalization.
27514 (ix86_fixup_binary_operands): Reorganize using the above function.
27515 (ix86_binary_operator_ok): Likewise.
27516
27517 2007-01-27 Jakub Jelinek <jakub@redhat.com>
27518
27519 * genattrtab.c (struct attr_value_list, insn_code_values): Move to
27520 file scope from optimize_attrs.
27521 (simplify_test_exp): If insn_code_values is not NULL, use it to speed
27522 up search.
27523 (optimize_attrs): Clear insn_code_values after freeing it.
27524
27525 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
27526
27527 * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
27528 a parts.base assignment.
27529
27530 2007-01-26 Zdenek Dvorak <dvorakz@suse.cz>
27531
27532 * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
27533 (compute_subscript_distance, initialize_data_dependence_relation,
27534 finalize_ddr_dependent, analyze_ziv_subscript,
27535 analyze_siv_subscript_cst_affine,
27536 compute_overlap_steps_for_affine_univar,
27537 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
27538 analyze_siv_subscript, analyze_miv_subscript,
27539 analyze_overlapping_iterations, subscript_dependence_tester_1,
27540 compute_self_dependence, free_dependence_relation): Work
27541 with affine_fn instead of chrecs.
27542 (dump_affine_function, dump_conflict_function, affine_function_equal_p,
27543 common_affine_function, affine_function_base,
27544 affine_function_constant_p, affine_fn_op, affine_fn_plus,
27545 affine_fn_minus, affine_fn_free, conflict_fn_not_known,
27546 conflict_fn_no_dependence, free_conflict_function, free_subscripts,
27547 conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
27548 (all_chrecs_equal_p): Removed.
27549 * tree-data-ref.h (affine_fn, conflict_function): New types.
27550 (struct subscript): Change type of conflicting_iterations_in_a
27551 and conflicting_iterations_in_b.
27552
27553 2007-01-26 Steve Ellcey <sje@cup.hp.com>
27554
27555 PR other/30182
27556 * config/pa/pa.h (TARGET_HPUX_11): New.
27557 * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
27558 * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
27559
27560 2007-01-26 Daniel Berlin <dberlin@dberlin.org>
27561 Richard Guenther <rguenther@suse.de>
27562
27563 * tree-ssa-structalias.c (solve_graph): Handle case
27564 we merged the variable to another.
27565
27566 2007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27567
27568 * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
27569 functions.
27570
27571 * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
27572 catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
27573
27574 2007-01-25 DJ Delorie <dj@redhat.com>
27575
27576 * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
27577 allow changes to modes which don't fit in those registers.
27578
27579 * reload1.c (choose_reload_regs): Check for invalid subregs before
27580 computing their locations, not after.
27581
27582 2007-01-25 Geoffrey Keating <geoffk@apple.com>
27583
27584 PR 25127
27585 * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
27586 save Altivec registers in an eh_return function.
27587 (compute_vrsave_mask): Likewise.
27588 (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
27589 for saving Altivec registers.
27590 (rs6000_emit_prologue): Don't allocate stack twice in
27591 eh_return function. Correct expected value of altivec_save_offset
27592 when using save_world. Describe save of R0 to stack when using
27593 save_world. Describe stack pointer adjustment when using
27594 save_world. Remove duplicated eh_return parameter register saving.
27595 Update sp_offset variable after save_world.
27596 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
27597 darwin-world.asm.
27598 (LIB2FUNCS_EXTRA): Add darwin-world.asm.
27599 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
27600 implies Altivec.
27601
27602 2007-01-25 Steve Ellcey <sje@cup.hp.com>
27603
27604 * config.gcc (ia64*-*-hpux*): Make posix threads the default.
27605
27606 2007-01-25 Steve Ellcey <sje@cup.hp.com>
27607
27608 PR other/30182
27609 * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
27610 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
27611
27612 2007-01-25 Richard Guenther <rguenther@suse.de>
27613
27614 * doc/invoke.texi (-Wcoverage-mismatch): Document.
27615 * common.opt (-Wcoverage-mismatch): New warning option.
27616 * coverage.c (get_coverage_counts): Ignore coverage mismatch
27617 if -Wcoverage-mismatch is given.
27618
27619 2007-01-25 Razya Ladelsky <razya@il.ibm.com>
27620
27621 * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
27622 (ipcp_driver): Change to static definition.
27623 Add dumping of the ifunctions.
27624 (constant_val_insert): Remove unused parameter. Support for SSA.
27625 (ipcp_propagate_const): Support for SSA.
27626 (ipcp_profile_bb_print): Print only analyzed nodes.
27627 (ipcp_replace_map_create): Remove support for Fortran constant
27628 for now.
27629 * ipa-prop.c (ipa_method_modify_stmt,
27630 ipa_callsite_compute_param): Support for SSA.
27631 * ipa-prop.h (ipcp_driver): Remove declaration.
27632 (IS_VALID_TREE_MAP_INDEX): Add define.
27633
27634 2007-01-24 Geoffrey Keating <geoffk@apple.com>
27635
27636 * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
27637
27638 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27639
27640 PR middle-end/30447
27641 * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
27642 constant argument to cabs and do it without checking for
27643 -funsafe-math-optimizations.
27644
27645 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
27646
27647 * c-common.h (RID_FIRST_CXX0X): New.
27648 (RID_LAST_CXX0X): New.
27649 * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
27650 by -Wall.
27651 * c.opt (Wc++0x-compat): New.
27652 * doc/invoke.texi (-Wc++0x-compat): Document.
27653
27654 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27655
27656 * builtins.c (fold_builtin_carg): New.
27657 (fold_builtin_1): Use it.
27658
27659 2007-01-24 Jan Hubicka <jh@suse.cz>
27660
27661 * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
27662
27663 * ipa-inline.c (initial_insns, max_insns): Delete.
27664 (compute_max_insns): New function.
27665 (cgraph_decide_inlining_of_small_function): Use it; take minimal
27666 amount of insns as base for code growth.
27667 (cgraph_decide_inlining): Make initial_insns local; do not compute
27668 max_insns.
27669 * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
27670 * doc/invoke.texi (inline-unit-growth): Update docs.
27671
27672 2007-01-24 Jakub Jelinek <jakub@redhat.com>
27673
27674 * config/i386/i386.h (x86_cmpxchg16b): Remove const.
27675 (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
27676 * config/i386/i386.c (x86_cmpxchg16b): Remove const.
27677 (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b
27678 for CPUs that have PTA_CX16 set.
27679
27680 PR middle-end/27416
27681 * gimplify.c (omp_check_private): New function.
27682 (gimplify_scan_omp_clauses): Use it for
27683 firstprivate/lastprivate/reduction.
27684
27685 PR middle-end/30494
27686 * gimplify.c (omp_add_variable): Don't call omp_notice_variable
27687 on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
27688
27689 PR middle-end/30421
27690 * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
27691 If lower_lastprivate_clauses emits some statements, append them
27692 to dlist rather than body_p and to body_p append an initializer.
27693 (lower_omp_for): Adjust caller.
27694
27695 2007-01-24 Steve Ellcey <sje@cup.hp.com>
27696
27697 * target.h (globalize_decl_name): New.
27698 * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
27699 * output.h (default_globalize_decl_name): New.
27700 * varasm.c (asm_output_bss): Use globalize_decl_name instead of
27701 globalize_label.
27702 (globalize_decl): Ditto.
27703 (default_globalize_decl_name): New.
27704 * config/ia64/ia64.c (ia64_globalize_decl_name): New.
27705 (ia64_handle_version_id_attribute): New.
27706 (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
27707 (ia64_asm_output_external): Use globalize_decl_name instead
27708 of globalize_label.
27709 * doc/extend.texi (version_id): New pragma.
27710 * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
27711
27712 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
27713
27714 * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
27715 _uleb128_t and _Unwind_SWord with _sleb128_t.
27716 * unwind-dw2.c (extract_cie_info, execute_stack_op,
27717 execute_cfa_program, uw_frame_state_for, uw_update_context_1):
27718 Likewise.
27719 * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
27720 * unwind-pe.h (read_uleb128, read_sleb128,
27721 read_encoded_value_with_base): Likewise.
27722 * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
27723
27724 2007-01-24 Richard Guenther <rguenther@suse.de>
27725
27726 * builtins.c (expand_builtin_cexpi): Get the fndecl
27727 for cexp in the correct way.
27728
27729 2007-01-24 Jan Hubicka <jh@suse.cz>
27730
27731 * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
27732 of calls.
27733
27734 2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com>
27735
27736 * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
27737 (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
27738 __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
27739 __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
27740 __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
27741 __SIZEOF_PTRDIFF_T__.
27742 * doc/cpp.texi: Documentation for the new builtin macros added.
27743
27744 2007-01-24 Uros Bizjak <ubizjak@gmail.com>
27745
27746 * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
27747 log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
27748 instead of operands[2] to avoid access past the end of array.
27749
27750 2007-01-24 Richard Sandiford <richard@codesourcery.com>
27751
27752 * reload1.c (emit_reload_insns): Pass the reload register
27753 for a non-spill output reload through forget_old_reloads_1.
27754
27755 2007-01-23 Joseph Myers <joseph@codesourcery.com>
27756
27757 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
27758 _SOFT_DOUBLE if doubles use software floating-point.
27759 * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
27760 double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
27761 * config/rs6000/darwin-ldouble.c: Also compile functions for
27762 hard-float without FPRs. Use fmsub function for all __NO_FPRS__
27763 cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
27764 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
27765 commented-out long double override.
27766 (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
27767 * config/rs6000/eabispe.h: Likewise.
27768 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
27769 long double for non-SPE.
27770 (rs6000_handle_option): Likewise.
27771 (invalid_e500_subreg): Disallow more subregs involding DImode,
27772 DFmode, TImode or TFmode.
27773 (rs6000_legitimate_offset_address_p): Check TFmode offsets for
27774 E500 double.
27775 (legitimate_lo_sum_address_p): Also check for TFmode for E500
27776 double.
27777 (rs6000_legitimize_address): Also handle TFmode for E500 double.
27778 (rs6000_legitimize_reload_address): Also handle TFmode for E500
27779 double.
27780 (rs6000_legitimate_address): Also check for TFmode for E500
27781 double.
27782 (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
27783 (spe_build_register_parallel): Handle TFmode and TCmode.
27784 (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
27785 double.
27786 (function_arg): Handle TFmode and TCmode for E500 double.
27787 (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
27788 in general.
27789 (print_operand): Handle TFmode and TImode for %y.
27790 (rs6000_generate_compare): Handle TFmode comparisons for E500
27791 double.
27792 (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
27793 (rs6000_function_value): Handle TFmode and TCmode for E500 double.
27794 (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
27795 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
27796 TFmode for E500 double.
27797 * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
27798 (floatsidf2): Enable for E500 double.
27799 (movtf_softfloat): Use rs6000_nonimmediate_operand.
27800 (extenddftf2): Change to extenddftf2_fprs.
27801 (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
27802 depending on TARGET_E500_DOUBLE.
27803 (extendsftf2): Enable for E500 double.
27804 (trunctfdf2): Enable for E500 double.
27805 (trunctfsf2): Change to trunctfsf2_fprs.
27806 (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
27807 depending on TARGET_E500_DOUBLE.
27808 (floatsitf2): Enable for E500 double.
27809 (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
27810 (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
27811 gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
27812 (negtf2): Change to negtf2_internal.
27813 (negtf2): New expander.
27814 (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst,
27815 gen_spe_abstf2_cmp or gen_abstf2_internal depending on
27816 TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
27817 (movdi_internal32): Use rs6000_nonimmediate_operand.
27818 (unnamed splitter): Likewise.
27819 * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
27820 TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
27821 (SPE64TF, DITI): New mode macros.
27822 (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
27823 modes.
27824 (frob_tf_ti): New.
27825 (frob_<mode>_di_2): New.
27826 (frob_tf_di_8_2): New.
27827 (frob_di_df): Change to frob_di_<mode>; allow more modes.
27828 (frob_ti_tf): New.
27829 (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
27830 more modes.
27831 (frob_ti_<mode>_8_2): New.
27832 (frob_ti_tf_2): New.
27833 (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
27834 mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
27835 TFmode.
27836 (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
27837 mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
27838 (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
27839 spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
27840 spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
27841 (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
27842 tsttflt_gp): New.
27843
27844 2007-01-23 Ian Lance Taylor <iant@google.com>
27845
27846 * Makefile.in (OBJS-common): Reformat, alphabetize, but put
27847 insn-*.o first.
27848 (OBJS-archive): Reformat, alphabetize.
27849 (OBJS): Change out_object_file to OBJS-md.
27850
27851 2007-01-23 Uros Bizjak <ubizjak@gmail.com>
27852
27853 * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
27854 JUMP_P and CALL_P predicates where applicable.
27855 * config/i386/i386.c: Ditto.
27856 * config/i386/i386.md: Ditto.
27857 * config/i386/mmx.md: Ditto.
27858 * config/i386/predicates.md: Ditto.
27859
27860 2007-01-22 Andreas Schwab <schwab@suse.de>
27861
27862 * config/m68k/m68k.h: Fix comment.
27863
27864 2007-01-22 Jan Hubicka <jh@suse.cz>
27865
27866 * passes.c (init_optimization_passes): Do not rerun
27867 pass_early_warn_uninitialized.
27868
27869 2007-01-22 Richard Guenther <rguenther@suse.de>
27870
27871 PR tree-optimization/30038
27872 * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
27873 function.
27874 (execute_cse_sincos_1): Likewise.
27875 (execute_cse_sincos): Likewise.
27876 (gate_cse_sincos): Likewise.
27877 (pass_cse_sincos): New pass CSEing sin() and cos() calls using
27878 the cexpi() canonicalization of sincos().
27879 * tree-pass.h (pass_cse_sincos): Declare.
27880 * passes.c (init_optimization_passes): New pass pas_cse_sincos.
27881
27882 2007-01-21 Eric Botcazou <ebotcazou@libertysurf.fr>
27883
27884 PR rtl-optimization/29329
27885 * combine.c (replaced_rhs_insn): Rename to i2mod.
27886 (replaced_rhs_value): Rename to i2mod_new_rhs.
27887 (i2mod_old_rhs): New global variable.
27888 (combine_instructions): Adjust for above change. Save a copy of
27889 the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
27890 note are substituted in the second instruction.
27891 (distribute_notes) <REG_DEAD>: Adjust for above change. Do not
27892 ditch the note if it pertains to the second eliminated register
27893 and this register is mentioned in i2mod_old_rhs.
27894
27895 Revert:
27896 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
27897
27898 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
27899 the insn to which the note was originally attached.
27900
27901 2007-01-21 Jan Hubicka <jh@suse.cz>
27902
27903 * ipa-inline.c (inlining_mode): Comment, move up.
27904 (cgraph_decide_inlining_incrementally): Do not perform inlining
27905 itself; fix handling of flattening of self recursive functions.
27906 (cgraph_find_cycles): Remove.
27907 (cgraph_flatten_node): Remove.
27908 (cgraph_decide_inlining): Use incremental inliner to handle flattening.
27909 (try_inline): New function.
27910 (cgraph_early_inlining): Update call of
27911 cgraph_decide_inlining_incrementally. Apply inlining here.
27912 (apply_inline): Update call of cgraph_decide_inlining_incrementally.
27913
27914 2007-01-21 Dirk Mueller <dmueller@suse.de>
27915
27916 PR bootstrap/30511
27917 * tree-vrp.c (check_array_bounds): do not warn
27918 about ADDR_EXPR's of ARRAY_REF's which are immediately
27919 used in binary expressions.
27920
27921 2007-01-21 Ira Rosen <irar@il.ibm.com>
27922
27923 * tree-vectorizer.h (struct _stmt_vec_info): Add new field
27924 read_write_dep and macros for its access.
27925 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
27926 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
27927 argument, call vect_check_interleaving for every independent pair of
27928 data-refs. Mark loads that access the same memory location as a store
27929 in the loop.
27930 (vect_check_dependences): Remove.
27931 (vect_analyze_data_ref_dependences): Remove vect_check_dependences
27932 call, fix the call to vect_analyze_data_ref_dependence.
27933 (vect_analyze_data_ref_access): For statements that access the same
27934 data-ref, check that they are not stores; for loads, check that there
27935 is no store that access the same location.
27936
27937 2007-01-20 Roger Sayle <roger@eyesopen.com>
27938 Joseph Myers <joseph@codesourcery.com>
27939
27940 * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
27941 (-fdump-rtl-stack): Likewise.
27942 (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo.
27943 (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
27944 (-mpt-fixed): Use @minus{} for minus sign.
27945 (Using Precompiled Headers): Fix under/overfull hbox.
27946
27947 2007-01-20 Jan Hubicka <jh@suse.cz>
27948
27949 * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
27950 place within annotation.
27951
27952 2007-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27953
27954 * pa.c (output_move_double): Change array size of xoperands to 4.
27955
27956 2007-01-20 Jan Hubicka <jh@suse.cz>
27957
27958 * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
27959 as temporary.
27960
27961 2007-01-19 Ian Lance Taylor <iant@google.com>
27962
27963 * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
27964 constant to unsigned HOST_WIDE_INT before negating.
27965
27966 2007-01-19 Ian Lance Taylor <iant@google.com>
27967
27968 * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
27969 to unsigned.
27970 (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
27971 (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
27972 (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
27973 (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
27974 (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
27975 (realloc_vdef, realloc_vuse): Change second parameter to
27976 unsigned.
27977 (ssa_operand_iterator_d): Change vuse_index and mayuse_index
27978 fields to unsigned.
27979 * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
27980 unsigned. Change x and lim locals to unsigned.
27981 (realloc_vdef, realloc_vuse): Change num_elem parameter to
27982 unsigned.
27983 (finalize_ssa_vuse_ops): Change old_i local to unsigned.
27984 (copy_virtual_operands): Change i and n locals to unsigned.
27985
27986 2007-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27987
27988 PR middle-end/29335
27989 * builtins.c (fold_builtin_1): Handle builtin fdim.
27990
27991 2007-01-20 Jan Hubicka <jh@suse.cz>
27992
27993 * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
27994 * tree-ssa-structalias.c (compute_points_to_sets): Do call
27995 init_alias_heapvars.
27996 (init_alias_heapvars): Initialize only when not already initialized.
27997 (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
27998
27999 2007-01-19 Roger Sayle <roger@eyesopen.com>
28000
28001 * common.opt (fsigned-zeros): New command line option.
28002 * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
28003 of flag_unsafe_math_optimizations.
28004 * opts.c (set_fast_math_flags): The -ffast-math command line option
28005 implies -fno-signed-zeros.
28006 (fast_math_flags_set_p): Likewise.
28007
28008 * doc/invoke.texi: Document new -fno-signed-zeros option, and update
28009 the documentation of -ffast-math appropriately. Wrap long lines.
28010
28011 2007-01-19 Steve Ellcey <sje@cup.hp.com>
28012
28013 * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
28014 * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
28015
28016 2007-01-19 Tomas Bily <tbily@suse.cz>
28017
28018 * cgraphunit.c (cgraph_finalize_function): Updating of pid
28019 * tree-profile.c:
28020 (tree_init_ic_make_global_vars): New function
28021 (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
28022 (tree_gen_ic_profiler): New function
28023 (tree_gen_ic_func_profiler): New function
28024 (tree_profiling): Added calling of tree_gen_ic_func_profiler
28025 (tree_profile_hooks): Added hook for indirec/virtual calls
28026 * value-prof.c (tree_find_values_to_profile): New case for
28027 indirect calls
28028 (tree_values_to_profile): Call for determining indirect/virtual
28029 counters
28030 (tree_indirect_call_to_profile): New function
28031 (tree_ic_transform): New function
28032 (tree_ic): New function
28033 (find_func_by_pid): New function
28034 (init_pid_map): New function
28035 (tree_value_profile_transformations): Added check for
28036 indirect/virtual call transformation
28037 * value-prof.h (enum hist_type): New counter type for
28038 indirect/virtual calls
28039 (profile_hooks): Added new hook for profiling indirect/virtual
28040 calls
28041 * profile.c (instrument_values): New case for indirect/virtual
28042 call added
28043 * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
28044 (GCOV_COUNTER_V_INDIR): New counter type
28045 (GCOV_COUNTER_NAMES): New name of counter "indirect" added
28046 (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
28047 call added
28048 * cgraph.c: Definition of cgraph_max_pid
28049 (cgraph_create_node): Default init of pid attribute
28050 * cgraph.h: Declaration of cgraph_max_pid
28051 (struct cgraph_node): Added pid attribute
28052 * libgcov.c (__gcov_indirect_call_profiler): New function
28053 (__gcov_one_value_profiler_body): New function
28054 (__gcov_one_value_profiler): Body was moved to
28055 __gcov_one_value_profiler_body and calls it
28056
28057 2007-01-19 Basile Starynkevitch <basile@starynkevitch.net>
28058
28059 * doc/gty.texi (Options): Document the mark_hook option to GTY.
28060 * gengtype.c (write_types_data, write_func_for_structure,
28061 write_types, ggc_wtd, pch_wtd): Add skip_hooks to
28062 write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
28063 (walk_type, write_func_for_structure): Generate the mark_hook if
28064 needed.
28065
28066 2007-01-19 Jan Hubicka <jh@suse.cz>
28067
28068 * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
28069 'early' argument take inlining mode argument specifying whether to
28070 inline for size/speeed or all functions; add support for flattening;
28071 improve dumpting.
28072 (cgraph_early_inlining): Update call of decide_inlining_incrementally.
28073
28074 2007-01-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
28075
28076 PR c++/17947
28077 * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
28078 the name of the declared identifier.
28079
28080 2007-01-19 Dirk Mueller <dmueller@suse.de>
28081
28082 * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
28083 result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
28084 duplicate evaluation.
28085
28086 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
28087
28088 * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
28089 Macroize expander using X87MODEF12 mode macro. Extend operand 1
28090 to XFMode, use acosxf2 and truncate result to requested mode.
28091 Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
28092 (asin<mode>2): Similarly, with asin expanders.
28093 (*fscalexf4_i387): Rename from *fscalexf4.
28094 (expNcorexf3): New expander.
28095 (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
28096 (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
28097 X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and
28098 truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
28099 patterns for SSE math.
28100 (exp10<mode>2): Similarly, with exp10 expanders.
28101 (exp2<mode>2): Similarly, with exp2 expanders.
28102 (expm1<mode>2): Similarly, with expm1 expanders.
28103 (ldexp<mode>3): Similarly, with ldexp expanders.
28104 (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
28105 Use gen_truncxf<mode>2_i387_noop to truncate result.
28106
28107 2007-01-19 Richard Sandiford <richard@codesourcery.com>
28108
28109 * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
28110 for ColdFire targets.
28111
28112 2007-01-19 Nathan Sidwell <nathan@codesourcery.com>
28113 Richard Sandiford <richard@codesourcery.com>
28114
28115 * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
28116 (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
28117 (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
28118 * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
28119 (M68K_STATIC_CHAIN_REG_NAME): Likewise.
28120 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
28121
28122 2007-01-19 Richard Sandiford <richard@codesourcery.com>
28123
28124 * config/m68k/m68k.md (adddi_dilshr32): Rename to...
28125 (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
28126 non-canonical pattern. Restrict to !TARGET_COLDFIRE.
28127 (*adddi_dilshr32_cf): New pattern.
28128 (adddi3, subdi3): Remove first alternatives.
28129
28130 2007-01-19 Richard Sandiford <richard@codesourcery.com>
28131
28132 * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
28133 implemented using move.l, do not use its cc result for floating-point
28134 comparisons.
28135
28136 2007-01-19 Richard Sandiford <richard@codesourcery.com>
28137
28138 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
28139 from accepting 's' constraints if flag_pic.
28140
28141 2007-01-19 Richard Sandiford <richard@codesourcery.com>
28142
28143 * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
28144 (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
28145 (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
28146 condition from TARGET_68881 to TARGET_HARD_FLOAT.
28147
28148 2007-01-19 Sandra Loosemore <sandra@codesourcery.com>
28149
28150 * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
28151 ColdFire alternatives.
28152 * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
28153 * config/m68k/m68k.md (clzsi2): Define for ColdFire
28154 architectures that support ff1 instruction.
28155
28156 2007-01-19 Richard Sandiford <richard@codesourcery.com>
28157 Julian Brown <julian@codesourcery.com>
28158
28159 * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
28160 * config/m68k/m68k.md (*movsi_cfv4): Fold into...
28161 (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'.
28162 Add commentary.
28163
28164 2007-01-19 Richard Sandiford <richard@codesourcery.com>
28165
28166 * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
28167 and return a bool.
28168 (output_move_const_into_data_reg, output_move_simode_const): Delete.
28169 * config/m68k/m68k.c (const_method, const_int_cost): Take a
28170 HOST_WIDE_INT instead of an rtx.
28171 (m68k_rtx_costs): Update call accordingly.
28172 (output_move_const_into_data_reg): Likewise. Fix formatting.
28173 (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
28174 Return a bool.
28175 (output_move_simode_const): Update calls after above changes.
28176 Rework to use automatic variables and predicates like MEM_P.
28177 * config/m68k/m68k.md (pushexthisi_const): Update call to
28178 valid_mov3q_const.
28179
28180 2007-01-19 Dirk Mueller <dmueller@suse.de>
28181
28182 * tree-ssa-alias.c (perform_var_substitution): Fix typo
28183 in dump_flags test.
28184
28185 2007-01-19 Richard Guenther <rguenther@suse.de>
28186
28187 * builtins.c (expand_builtin_cexpi): Fall back to expanding
28188 via cexp in case sincos is not available.
28189
28190 2007-01-19 Richard Guenther <rguenther@suse.de>
28191
28192 * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
28193 * defaults.h (TARGET_HAS_SINCOS): Default to off.
28194 * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
28195 * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
28196 * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
28197 * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
28198 * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
28199 * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
28200
28201 2007-01-19 Uros Bizjak <ubizjak@gmail.com>
28202
28203 * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
28204 New insn patterns.
28205 (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
28206 (atan2xf3): Directly generate RTL pattern.
28207 (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
28208 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
28209 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
28210 disable patterns for SSE math.
28211 (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
28212 patterns using X87MODEF12 mode macro. Use fpatan_extend<mode>xf3_i387
28213 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
28214 disable patterns for SSE math.
28215
28216 2007-01-19 Alexandre Oliva <aoliva@redhat.com>
28217
28218 * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
28219
28220 2007-01-18 Roger Sayle <roger@eyesopen.com>
28221
28222 * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
28223 VIEW_CONVERT_EXPR to the same type as it's operand.
28224
28225 2007-01-18 David Edelsohn <edelsohn@gnu.org>
28226
28227 * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
28228 configured for long double 128.
28229
28230 2007-01-18 Mike Stump <mrs@apple.com>
28231
28232 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
28233 error.
28234
28235 2007-01-18 Michael Meissner <michael.meissner@amd.com>
28236
28237 * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
28238 type correct.
28239
28240 2007-01-18 Jan Hubicka <jh@suse.cz>
28241
28242 * tree-ssa-operands.c (vop_free_bucket_size): Never return value
28243 greater than NUM_VOP_FREE_BUCKETS.
28244
28245 2007-01-18 Daniel Berlin <dberlin@dberlin.org>
28246
28247 * tree-ssa-structalias.c: Update comments.
28248 (ptabitmap_obstack): Removed.
28249 (pta_obstack): New.
28250 (oldpta_obstack): Ditto.
28251 (stats): Add a few members.
28252 (struct variable_info): Remove node, complex, address_taken, and
28253 indirect_target members. Add oldsolution member.
28254 (new_var_info): Do not initialize removed members.
28255 (constraint_expr_type): Remove INCLUDES.
28256 (constraint_graph): Add size, implicit_preds, rep,
28257 indirect_cycles, eq_rep, label, direct_nodes, and complex members.
28258 (FIRST_REF_NODE): New macro.
28259 (LAST_REF_NODE): Ditto.
28260 (FIRST_ADDR_NODE): Ditto.
28261 (find): New function.
28262 (unite): Ditto.
28263 (dump_constraint): Do not handle INCLUDES.
28264 (insert_into_complex): Do not insert duplicate constraints.
28265 (condense_varmap_nodes): Renamed and rewritten into ...
28266 (merge_node_constraints): This. Also fix bug in handling of
28267 offseted copy constraints.
28268 (clear_edges_for_node): No longer need to deal with preds at all,
28269 or removing associated preds/succs.
28270 (merge_graph_nodes): Deal with indirect_cycles.
28271 Don't deal with predecessors.
28272 (add_implicit_graph_edge): New function.
28273 (add_pred_graph_edge): Ditto.
28274 (add_graph_edge): Don't deal with predecessors.
28275 (build_constraint_graph): Removed.
28276 (build_pred_graph): New function.
28277 (build_succ_graph): Ditto.
28278 (struct scc_info): Removed in_component. Added roots, dfs, and
28279 node_mapping. Remove visited_index, unification_queue.
28280 (scc_visit): Deal with union-find we do now.
28281 Deal with cycles with REF nodes.
28282 (collapse_nodes): Renamed and rewritten to ...
28283 (unify_nodes): This.
28284 (process_unification_queue): Removed.
28285 (topo_visit): Cleanup
28286 (do_da_constraint): Use find.
28287 (do_sd_constraint): Ditto.
28288 (do_ds_constraint): Ditto.
28289 (do_complex_constraint): Ditto.
28290 (init_scc_info): Update for removed and added members.
28291 (find_and_collapse_graph_cycles): Renamed and rewritten into ...
28292 (find_indirect_cycles): This.
28293 (equivalence_class): New variable.
28294 (label_visit): New function.
28295 (perform_variable_substitution): Rewritten.
28296 (free_var_substitution_info): New function.
28297 (find_equivalent_node): Ditto.
28298 (move_complex_constraints): Ditto.
28299 (eliminate_indirect_cycles): Ditto.
28300 (solve_graph): Only propagate changed bits.
28301 Use indirect cycle elimination.
28302 Use find.
28303 (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
28304 (tree_id_eq): Renamed to ...
28305 (tree_vi_eq): This. Update for member change
28306 (insert_id_for_tree): Renamed and rewritten to ...
28307 (insert_vi_for_tree): This.
28308 (lookup_id_for_tree): Renamed and rewritten to ...
28309 (lookup_vi_for_tree): This.
28310 (get_id_for_tree): Renamed and rewritten to ...
28311 (get_vi_for_tree): Ditto.
28312 (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
28313 (process_constraint): Don't handle INCLUDES.
28314 Remove special ADDRESSOF case.
28315 (find_func_aliases): Rewrite to use vi functions instead of id
28316 ones.
28317 (create_function_info_for): Ditto.
28318 (create_variable_info_for): Ditto.
28319 (intra_create_variable_infos): Ditto.
28320 (merge_smts_into): Ditto.
28321 (find_what_p_points_to): Ditto.
28322 (init_base_vars): Ditto.
28323 (init_alias_vars): Ditto.
28324 (remove_preds_and_fake_succs): New function.
28325 (dump_sa_points_to_info): Dump new stats.
28326 (dump_solution_for_var): Use find.
28327 (set_used_smts): Fix formatting.
28328 (compute_points_to_sets): Updated for new functions.
28329 (ipa_pta_execute): Ditto.
28330
28331 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
28332 Richard Sandiford <richard@codesourcery.com>
28333
28334 * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
28335 parallels.
28336 * calls.c (expand_call): If the return value is a PARALLEL,
28337 extract its first member.
28338 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
28339 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
28340 use FUNCTION_EXTRA_EPILOGUE.
28341 (m68k_function_value): Return a PARALLEL if the return value
28342 is of a pointer type.
28343 * config/m68k/netbsd-elf.h (current_function_returns_pointer)
28344 (FUNCTION_EXTRA_EPILOGUE): Remove.
28345 * config/m68k/m68k.md (D0_REG): New constant.
28346
28347 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
28348
28349 * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
28350 output a NOP for empty epilogues.
28351
28352 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28353
28354 * config/m68k/m68k.c (m68k_use_return_insn): Update comments
28355 before function. Extend register save check to include all
28356 registers, not just integer ones.
28357
28358 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
28359
28360 * config/m68k/m68k-protos.h (use_return_insn): Rename to...
28361 (m68k_use_return_insn): ...this.
28362 * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
28363 * config/m68k/m68k.c (use_return_insn): Rename to...
28364 (m68k_use_return_insn): ...this.
28365 * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
28366 of USE_RETURN_INSN.
28367
28368 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
28369
28370 * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
28371 nearest even, fix denormal rounding overflow.
28372
28373 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28374
28375 * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
28376 f%$smove and f%$move.
28377 (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
28378 (extendsfdf2_cf): Use fdmove instead of f%&move.
28379 (truncdfsf2_cf): Use fsmove instead of f%$smove.
28380 (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
28381
28382 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28383
28384 * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
28385 GPR<-GPR moves.
28386
28387 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28388
28389 * real.h (real_format): Add a canonical_nan_lsbs_set field.
28390 (coldfire_single_format): Declare.
28391 (coldfire_double_format): Likewise.
28392 * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
28393 of qnan_msb_set to determine the lower bits of a canonical
28394 NaN significand.
28395 (encode_ieee_double): Likewise.
28396 (encode_ieee_quad): Likewise.
28397 (ieee_single_format): Initialize canonical_nan_lsbs_set.
28398 (mips_single_format): Likewise.
28399 (ieee_double_format): Likewise.
28400 (mips_double_format): Likewise.
28401 (ieee_extended_motorola_format): Likewise.
28402 (ieee_extended_intel_96_format): Likewise.
28403 (ieee_extended_intel_128_format): Likewise.
28404 (ieee_extended_intel_96_round_53_format): Likewise.
28405 (ibm_extended_format): Likewise.
28406 (mips_extended_format): Likewise.
28407 (ieee_quad_format): Likewise.
28408 (mips_quad_format): Likewise.
28409 (vax_f_format): Likewise.
28410 (vax_d_format): Likewise.
28411 (vax_g_format): Likewise.
28412 (i370_single_format): Likewise.
28413 (i370_double_format): Likewise.
28414 (decimal_single_format): Likewise.
28415 (decimal_double_format): Likewise.
28416 (decimal_quad_format): Likewise.
28417 (c4x_single_format): Likewise.
28418 (c4x_extended_format): Likewise.
28419 (real_internal_format): Likewise.
28420 (coldfire_single_format): New real_format.
28421 (coldfire_double_format): Likewise.
28422 * config/pdp11/pdp11.c (pdp11_f_format): Initialize
28423 canonical_nan_lsbs_set.
28424 (pdp11_d_format): Likewise.
28425 * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
28426 if TARGET_COLDFIRE_CPU.
28427
28428 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28429
28430 * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
28431 (output_call, m68k_legitimize_call_address): Declare.
28432 * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
28433 parenthesees. Add support for a 'W' constraint.
28434 (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
28435 (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
28436 (m68k_symbolic_call, m68k_symbolic_jump): Declare.
28437 * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
28438 variables.
28439 (override_options): Initialize them. Do not set flag_no_function_cse
28440 for TARGET_ID_SHARED_LIBRARY.
28441 (m68k_output_pic_call): Delete.
28442 (m68k_legitimize_call_address): New function.
28443 (print_operand): Remove the %o prefix. Handle the %p prefix.
28444 (output_call): New function.
28445 (m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the
28446 target address from the GOT if symbolic jumps are not allowed.
28447 * config/m68k/m68k.md (call, general_operand): Do not set
28448 SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead.
28449 Merge separate flag_pic and !flag_pic define_insns into...
28450 (*call, *call_value): ...these new patterns. Match the address
28451 rather than the containing MEM and require it to be a call_operand.
28452 Use output_call to generate the asm template.
28453 * config/m68k/predicates.md (const_call_operand): New predicate.
28454 (call_operand): Likewise.
28455
28456 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
28457
28458 * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
28459 (STACK_GROWS_DOWNWARD): Define to 1.
28460 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
28461 comments, emphasizing that these values are only defaults.
28462 * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
28463 * config/m68k/m68k.c (const_method): Remove trailing whitespace.
28464
28465 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28466
28467 * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
28468
28469 2007-01-18 Kazu Hirata <kazu@codesourcery.com>
28470 Richard Sandiford <richard@codesourcery.com>
28471
28472 * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
28473 (FP_REGNO_P): New macros.
28474 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
28475 (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
28476 (EH_RETURN_STACKADJ_RTX): Use A0_REG.
28477 * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
28478
28479 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
28480
28481 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
28482 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
28483 to $tmake_file.
28484 * config/m68k/t-floatlib: New file, extracting common code from...
28485 * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
28486 * config/m68k/t-uclinux: Here.
28487 * config/m68k/fpgnulib.c: Do not compile extendeed precision
28488 routines on ColdFire targets.
28489
28490 2007-01-18 Nathan Sidwell <nathan@codesourcery.com>
28491
28492 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
28493 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
28494 (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
28495 (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
28496 explicitly set MOTOROLA to 1.
28497 * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
28498
28499 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28500 Nathan Sidwell <nathan@codesourcery.com>
28501
28502 * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
28503 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
28504 * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
28505 * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
28506 * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
28507 * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
28508 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
28509 (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
28510 (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
28511 * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
28512 * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
28513 (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
28514 (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
28515 (DBX_REGISTER_NUMBER): Delete.
28516 * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
28517 (PCC_STATIC_STRUCT_RETURN): Don't undefine.
28518 * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
28519
28520 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28521
28522 * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
28523 * config/flat.h: New file.
28524 * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
28525 OBJECT_FORMAT_FLAT.
28526 * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
28527 indirect references for -msep-data or -mid-shared-library.
28528 Do not use PC-relative code addresses either.
28529 * config/m68k/m68k.c (override_options): Restrict -fPIC error
28530 to -mpcrel.
28531 * config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o
28532 for shared libraries and crt1.o for executables. Use crti.o and
28533 crtbegin.o.
28534 (ENDFILE_SPEC): Use crtend.o and crtn.o.
28535 (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
28536 Do not add -elf2flt or -shared-lib-id options here.
28537 (LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given.
28538 Pass -shared-lib-id if -mid-shared-library, taking the library
28539 identifier from -mshared-library-id if given, otherwise
28540 defaulting to 0.
28541 (EH_FRAME_IN_DATA_SECTION): Do not undefine.
28542 (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
28543 (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
28544 and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
28545 (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
28546 * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
28547 and crtend.o.
28548 * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
28549 jump sequence for ISA A and ISA A+.
28550 (PICJUMP): Likewise.
28551
28552 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28553
28554 * config.gcc (m68k-*-uclinux*): Base the port on the common
28555 and m68k GNU/Linux files rather than on the generic ELF ones.
28556 * config/m68k/uclinux.h (TARGET_VERSION): Override.
28557 (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
28558
28559 2007-01-18 Julian Brown <julian@codesourcery.com>
28560 Richard Sandiford <richard@codesourcery.com>
28561
28562 * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
28563 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
28564 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
28565 before redefining.
28566 * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
28567 80 unconditionally.
28568 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
28569
28570 2007-01-18 Richard Sandiford <richard@codesourcery.com>
28571
28572 * doc/install.texi: Document m68k-uclinuxoldabi.
28573 * config.gcc (m68k-*-uclinuxoldabi): New configuration.
28574 * config/m68k/uclinux-oldabi.h: New file, copied from
28575 config/m68k/uclinux.h.
28576
28577 2007-01-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
28578
28579 * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
28580 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
28581 (m32r_compute_frame_size): Use unsigned for regno.
28582 (m32r_reload_lr): Use gen_frame_mem.
28583 (pop): New.
28584 (m32r_output_function_epilogue): Don't output the function epilogue
28585 textually here.
28586 (m32r_expand_epilogue): New.
28587 (direct_return): Return false if the function has the interrupt
28588 attribute.
28589 (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
28590 * config/m32r/m32r.md (epilogue): New expander.
28591 (return_lr, return_rte): New insns.
28592 (return): Make it expander.
28593 (return_normal): New expander.
28594
28595 2007-01-18 Josh Conner <jconner@apple.com>
28596
28597 PR target/30485
28598 * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
28599 support for UNLE, UNLT, UNGE, and UNGT.
28600
28601 2007-01-18 Jan Hubicka <jh@suse.cz>
28602
28603 * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
28604 * tree-tailcall (add_virtual_phis): Likewise.
28605 (optimize_tail_call): Return TODOs.
28606 (execute_tail_calls): Return TODOs.
28607 * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
28608 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
28609 changed.
28610 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
28611 Cleanup cfg using TODO.
28612 * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
28613 * passes.c (execute_function_todo): When cleanup did something, remove
28614 unused locals.
28615 * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
28616 (make_edges): Don't cleanup_cfg.
28617
28618 2007-01-18 Uros Bizjak <ubizjak@gmail.com>
28619
28620 * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
28621 UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
28622 operate on the top of stack.
28623 [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
28624 register handling of instructions that output to the second
28625 stack slot.
28626 [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
28627 (move_for_stack_reg): Special-case check for dead destination
28628 stack slot for constant load of 1.0 inside UNSPEC_TAN.
28629
28630 * config/i386/i386.md (UNSPEC_TAN): New constant.
28631 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
28632 (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
28633 to correctly model move of constant 1.0 to top stack slot.
28634 (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
28635 (unnamed peephole2 pattern): Remove corresponding peephole2
28636 pattern that optimizes tan insn and loading of constant 1.0.
28637 (tanxf2): Use fptanxf4_i387.
28638 (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
28639 patterns using X87MODEF12 mode macro. Use fptan_extend<mode>xf4_i387
28640 and truncate result to requested mode. Use SSE_FLOAT_MODE_P to
28641 disable patterns for SSE math.
28642 (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
28643 (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
28644
28645 2007-01-18 Dirk Mueller <dmueller@suse.de>
28646 Richard Guenther <rguenther@suse.de>
28647
28648 PR diagnostic/8268
28649 * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
28650 * common.opt (Warray-bounds): Add new warning option.
28651 * c-opts.c (c_common_handle_option): Define -Warray-bounds
28652 if -Wall is given.
28653 * Makefile.in: make tree-vrp.o depend on toplev.h
28654 * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
28655 is enabled.
28656 (check_array_refs, check_array_bounds, check_array_ref): New.
28657
28658 2007-01-18 Jan Hubicka <jh@suse.cz>
28659
28660 * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
28661 (execute_ssa_ccp): Return flags conditionally.
28662 * tree-ssa-propagate.c (substitue_and_fold): Return if something was
28663 changed.
28664 * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
28665
28666 2007-01-18 Steven Bosscher <steven@gcc.gnu.org>
28667
28668 * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
28669 the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
28670
28671 * Makefile.c (GTFILES): Add cfglayout.h.
28672 * gengtype.c (open_base_files): Likewise.
28673 * cfglayout.c (cfg_layout_function_footer,
28674 cfg_layout_function_header) Reindent to make gengtype happy.
28675 * cfglayout.h (cfg_layout_function_footer,
28676 cfg_layout_function_header): Add GTY(()) marker.
28677
28678 * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
28679
28680 2007-01-18 Ben Elliston <bje@au.ibm.com>
28681
28682 * genautomata.c (write_automata): Include xstrerror output in the
28683 error message if writing the DFA description file fails.
28684
28685 2007-01-17 H.J. Lu <hongjiu.lu@intel.com>
28686
28687 * config/mips/mips-protos.h (mips_output_external): Make it
28688 return void.
28689 * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
28690 * config/mips/mips.c (irix_output_external_libcall): Likewise.
28691 (extern_list): Likewise.
28692 (extern_head): Likewise.
28693 (TARGET_ASM_FILE_END): Likewise.
28694 (mips_file_end): Likewise.
28695 (mips_output_external): Rewritten.
28696
28697 2007-01-18 Ben Elliston <bje@au.ibm.com>
28698
28699 * genpreds.c (write_insn_preds_c): Only write out the function
28700 body for regclass_for_constraint if we have register constraints.
28701
28702 2007-01-17 Tom Tromey <tromey@redhat.com>
28703
28704 * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
28705 * doc/install.texi (Testing): Use sourceware.org.
28706 (Binaries): Likewise.
28707 (Specific): Likewise.
28708 * doc/contrib.texi (Contributors): Use sourceware.org.
28709
28710 2007-01-17 Anatoly Sokolov <aesok@post.ru>
28711
28712 * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
28713 (AVR_ENHANCED): Rename to ...
28714 (AVR_HAVE_MUL): ... new.
28715 (avr_enhanced_p): Rename to ...
28716 (avr_have_mul_p): ... new.
28717 (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
28718 'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
28719 * config/avr/avr.c (avr_enhanced_p): Rename to ...
28720 (avr_have_mul_p): ... new.
28721 (base_arch_s): Rename 'enhanced' to 'have_mul'.
28722 (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
28723 'avr_enhanced_p' and 'enhanced'.
28724 (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
28725 AVR_HAVE_MUL instead of AVR_ENHANCED.
28726 * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
28727 (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
28728 *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
28729 instead of AVR_ENHANCED.
28730 (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
28731 * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
28732 (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
28733
28734 2007-01-17 Ian Lance Taylor <iant@google.com>
28735
28736 * vec.h (VEC_reserve_exact): Define.
28737 (vec_gc_p_reserve_exact): Declare.
28738 (vec_gc_o_reserve_exact): Declare.
28739 (vec_heap_p_reserve_exact): Declare.
28740 (vec_heap_o_reserve_exact): Declare.
28741 (VEC_OP (T,A,reserve_exact)): New static inline function, three
28742 versions.
28743 (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
28744 negative parameter.
28745 (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
28746 (VEC_OP (T,A,copy)) [all versions]: Likewise.
28747 (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
28748 * vec.c (calculate_allocation): Add exact parameter. Change all
28749 callers.
28750 (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
28751 (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
28752 (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
28753 (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
28754 (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
28755 (vec_heap_p_reserve_exact): New function.
28756 (vec_heap_o_reserve_exact): New function.
28757
28758 2007-01-17 Jan Hubicka <jh@suse.cz>
28759
28760 * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
28761
28762 2007-01-17 Eric Christopher <echristo@apple.com>
28763
28764 * config.gcc: Support core2 processor.
28765
28766 2007-01-16 Jan Hubicka <jh@suse.cz>
28767
28768 * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
28769 the names, just unlink the chain so we don't crash on dangling
28770 pointers
28771 to dead SSA names.
28772
28773 2007-01-16 Jan Hubicka <jh@suse.cz>
28774
28775 * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
28776 * tree-pass.h: Reorder to make IPA passes appear toegher.
28777 (pass_early_inline, pass_inline_parameters, pass_apply_inline):
28778 Declare.
28779 * cgraphunit.c (cgraph_finalize_function): Do not compute inling
28780 parameters, do not call early inliner.
28781 * ipa-inline.c: Update comments. Include tree-flow.h
28782 (cgraph_decide_inlining): Do not compute inlining parameters.
28783 (cgraph_decide_inlining_incrementally): Return TODOs; assume to
28784 be called with function context set up.
28785 (pass_ipa_inline): Remove unreachable functions before pass.
28786 (cgraph_early_inlining): Simplify assuming to be called from the
28787 PM as local pass.
28788 (pass_early_inline): New pass.
28789 (cgraph_gate_ipa_early_inlining): New gate.
28790 (pass_ipa_early_inline): Turn into simple wrapper.
28791 (compute_inline_parameters): New function.
28792 (gate_inline_passes): New gate.
28793 (pass_inline_parameters): New pass.
28794 (apply_inline): Move here from tree-optimize.c
28795 (pass_apply_inline): New pass.
28796 * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
28797 transforming.
28798 * tree-inline.c (optimize_inline_calls): Return TODOs rather than
28799 doing them by hand.
28800 (tree_function_versioning): Do not allocate dummy struct function.
28801 * tree-inline.h (optimize_inline_calls): Update prototype.
28802 * tree-optimize.c (execute_fixup_cfg): Export.
28803 (pass_fixup_cfg): Remove
28804 (tree_rest_of_compilation): Do not apply inlines.
28805 * tree-flow.h (execute_fixup_cfg): Declare.
28806 * Makefile.in (gt-passes.c): New.
28807 * passes.c: Include gt-passes.h
28808 (init_optimization_passes): New passes.
28809 (nnodes, order): New static vars.
28810 (do_per_function_toporder): New function.
28811 (execute_one_pass): Dump current pass here.
28812 (execute_ipa_pass_list): Don't dump current pass here.
28813
28814 2007-01-16 Janis Johnson <janis187@us.ibm.com>
28815
28816 * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
28817 (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
28818
28819 2007-01-16 David Edelsohn <edelsohn@gnu.org>
28820
28821 * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
28822 (strong_alias): Define.
28823 (__gcc_qmul): Provide non-FMA for soft-float.
28824 (__gcc_qdiv): Same.
28825 (__gcc_qneg): New.
28826 (__gcc_qeq): New.
28827 (__gcc_qle): New.
28828 (__gcc_qge): New.
28829 (__gcc_qunord): New.
28830 (__gcc_stoq): New.
28831 (__gcc_dtoq): New.
28832 (__gcc_qtos): New.
28833 (__gcc_qtod): New.
28834 (__gcc_qtoi): New.
28835 (__gcc_qtou): New.
28836 (__gcc_itoq): New.
28837 (__gcc_utoq): New.
28838 (fmsub): New.
28839 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
28840 soft-float functions.
28841 * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
28842 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
28843 about long double soft float.
28844
28845 2007-01-16 Dorit Nuzman <dorit@il.ibm.com>
28846 Tehila Meyzels <tehila@il.ibm.com>
28847
28848 * tree-vectorizer.h (is_pattern_stmt_p): New.
28849 * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
28850 formatting (tabs instead of spaces). Cleanup and clarify setting
28851 of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
28852 * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
28853 (vectorizable_type_demotion): Check that types are integral.
28854 (vectorizable_type_promotion): Likewise.
28855 (vectorizable_store): Fix typo. Eliminate new-line at end of
28856 comments.
28857
28858 2007-01-16 Jan Hubicka <jh@suse.cz>
28859
28860 * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
28861 cgraph edges too.
28862
28863 2007-01-15 Eric Christopher <echristo@apple.com>
28864
28865 * ifcvt.c: Include vec.h, vecprim.h.
28866 (check_cond_move_block): New argument regs.
28867 Reorganize. Add registers used to regs.
28868 (cond_move_process_if_block): Use regs set above as
28869 loop bounds.
28870
28871 2007-01-15 Eric Christopher <echristo@apple.com>
28872
28873 * config/darwin.h: Update copyright.
28874 (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
28875 (LINK_COMMAND_SPEC): Add -u.
28876 (LINK_SPEC): Fix umbrella for above.
28877
28878 2007-01-15 Joseph S. Myers <joseph@codesourcery.com>
28879
28880 * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
28881 glibc CVS.
28882
28883 2007-01-15 Tom Tromey <tromey@redhat.com>
28884
28885 * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
28886 * doc/install.texi (Testing): Don't mention jacks.
28887 (Configuration): Document --enable-java-maintainer-mode. Move
28888 --with-java-home to libgcj-specific section. Document
28889 --with-ecj-jar.
28890 (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
28891
28892 2007-01-15 Jan Hubicka <jh@suse.cz>
28893
28894 * tree-ssa-dce.c (DCE_TODOs): New.
28895 (propagate_necessity): Return if something changed.
28896 (eliminate_unnecessary_stmts): Likewise.
28897 (perform_tree_ssa_dce): Return TODO flags when needed.
28898 (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
28899
28900 2007-01-15 Uros Bizjak <ubizjak@gmail.com>
28901
28902 * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
28903 (fyl2x_extend<mode>xf3_i387): New insn pattern.
28904 (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
28905 patterns using X87MODEF12 mode macro. Extend operand 1
28906 to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
28907 (log10<mode>2): Ditto.
28908 (log2<mode>2): Ditto.
28909 (log1p<mode>2): Ditto.
28910 (logb<mode>2): Ditto.
28911 (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
28912 (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
28913 (*fxtractxf3_i387): Rename from *fxtractxf3.
28914 (fxtract_extend<mode>xf3_i387): New insn pattern.
28915 (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
28916 * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
28917 and gen_fyl2xxf3_i387().
28918
28919 2007-01-14 Zdenek Dvorak <dvorakz@suse.cz>
28920
28921 * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
28922 * cfgloopmanip.c (fix_loop_placement): Made static. Use
28923 get_loop_exit_edges. Changed return type to bool.
28924 * cfgloop.h (fix_loop_placement): Declaration removed.
28925
28926 2007-01-14 Dorit Nuzman <dorit@il.ibm.com>
28927
28928 * param.h (MIN_VECT_LOOP_BOUND): New.
28929 * params.def (MIN_VECT_LOOP_BOUND): New.
28930 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
28931 argument - minimum threshold for number of iterations.
28932 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
28933 argument to declaration.
28934 * tree-vect-analyze.c (vect_analyze_operations): Check value of
28935 MIN_VECT_LOOP_BOUND.
28936 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
28937 slpeel_tree_peel_loop_to_edge with additional argument.
28938 (vect_do_peeling_for_alignment): Likewise.
28939 * doc/invoke.texi (min-vect-loop-bound): Document new param option.
28940
28941 2007-01-14 Uros Bizjak <ubizjak@gmail.com>
28942
28943 PR target/30413
28944 * config/i386/i386.c (print_operand) ['z']: Output 'b' for
28945 operands of size 1.
28946
28947 2007-01-14 Jan Hubicka <jh@suse.cz>
28948
28949 * tree-dfa.c (remove_referenced_var): New function.
28950 * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
28951 prune referenced vars list too.
28952 * tree-flow.h (remove_referenced_var): Declare.
28953
28954 2007-01-14 Jan Hubicka <jh@suse.cz>
28955
28956 * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
28957 separately.
28958 (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
28959 (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
28960 * except.h (verify_eh_throw_table_statements): Kill prototype.
28961 * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
28962 into call exrepssions.
28963 * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
28964 eh trhow verifier.
28965 * tree-cfg.c: Include pointer-set.h.
28966 (verify_node_sharing): Work on pointer set.
28967 (verify_eh_throw_stmt_node): New.
28968 (verify_stmts): Use pointers sets, verify throw_stmt.
28969
28970 2007-01-13 Zdenek Dvorak <dvorakz@suse.cz>
28971
28972 * ipa-reference.c (analyze_function): Consider also addresses taken
28973 in phi nodes.
28974
28975 2007-01-12 Roger Sayle <roger@eyesopen.com>
28976
28977 * c-typeck.c (null_pointer_constant_p): Replace use of
28978 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
28979 (build_c_cast): Likewise.
28980
28981 2007-01-12 Roger Sayle <roger@eyesopen.com>
28982
28983 * tree.h (force_fit_type_double): Remove unused final argument.
28984 * c-common.c (constant_expression_warning): Replace use of
28985 TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
28986 (convert_and_check): Likewise.
28987 (shorten_compare): Update call to force_fit_type_double.
28988 (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
28989 * convert.c (convert_to_pointer): Update call to
28990 force_fit_type_double.
28991 * fold-const.c (force_fit_type_double): Remove overflowed_const
28992 argument.
28993 (int_const_binop, fold_convert_const_int_from_int,
28994 fold_convert_const_int_from_real, fold_div_compare,
28995 fold_sign_changed_comparison, fold_unary, fold_negate_const,
28996 fold_abs_const, fold_not_const): Remove the final argument from
28997 calls to force_fit_type_double.
28998
28999 2007-01-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
29000
29001 * configure.ac: Set insn to "nop" for spu-*-* also.
29002 * configure: Regenerate.
29003
29004 2007-01-12 Olga Golovanevsky <olga@il.ibm.com>
29005
29006 * builtins.def : Add BUILT_IN_FREE.
29007
29008 2007-01-12 Jan Hubicka <jh@suse.cz>
29009
29010 PR tree-optimization/30443
29011 * tree-inline.c (tree_function_versioning): Do not optimize when
29012 cloning for inlining.
29013
29014 2007-01-12 Zdenek Dvorak <dvorakz@suse.cz>
29015
29016 * doc/loop.texi: Document recording of loop exits.
29017 * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
29018 (update_single_exits_after_duplication,
29019 update_single_exit_for_duplicated_loop,
29020 update_single_exit_for_duplicated_loops): Removed.
29021 (duplicate_loop_to_header_edge): Do not call
29022 update_single_exits_after_duplication and
29023 update_single_exit_for_duplicated_loops.
29024 (loop_version): Do not update single_exit information.
29025 (fix_loop_structure): Use record_loop_exits instead of
29026 mark_single_exit_loops.
29027 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
29028 the lists of loop exits.
29029 * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
29030 split_edge, merge_blocks): Update the lists of loop exits.
29031 * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
29032 loop_optimizer_init.
29033 * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
29034 of mark_single_exit_loops.
29035 (loop_optimizer_finalize): Call release_recorded_exits.
29036 * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
29037 LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
29038 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
29039 update single exit information.
29040 * lambda-code.c (perfect_nestify): Ditto.
29041 * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
29042 (mark_single_exit_loops): Removed.
29043 (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
29044 get_exit_descriptions, rescan_loop_exit, record_loop_exits,
29045 dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
29046 functions.
29047 (get_loop_exit_edges, single_exit): Use recorded exit lists.
29048 (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
29049 (verify_loop_structure): Verify consistency of the exit lists.
29050 (flow_loops_find): Use alloc_loop. Initialize exits hash.
29051 (set_single_exit): Removed.
29052 * cfgloop.h (struct loop_exit): New function.
29053 (struct loop): single_exit_ field replaced by exits field.
29054 (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
29055 LOOPS_HAVE_RECORDED_EXITS.
29056 (struct loops): Added exits hash.
29057 (mark_single_exit_loops, set_single_exit): Declaration removed.
29058 (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
29059
29060 2007-01-12 Richard Sandiford <richard@codesourcery.com>
29061
29062 * doc/invoke.texi: Avoid use of @headitem.
29063
29064 2007-01-12 Richard Sandiford <richard@codesourcery.com>
29065
29066 * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
29067
29068 2007-01-12 Richard Sandiford <richard@codesourcery.com>
29069
29070 * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
29071 list of targets.
29072
29073 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
29074 Richard Sandiford <richard@codesourcery.com>
29075
29076 * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
29077 * config/m68k/m68k.opt: Resort options.
29078 (mbitfield, mrtd, mshort): Remove RejectNegative properties.
29079
29080 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
29081 Richard Sandiford <richard@codesourcery.com>
29082
29083 * doc/invoke.texi: Document the macros that are defined by
29084 m68k's -mtune and -mhard-float options.
29085 * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
29086 (m68k_cpp_cpu_family): Likewise.
29087 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
29088 of __ucfv*__ macros. Define __mcffpu__ if generating code for
29089 ColdFire FPUs. Define __mcf_cpu_* and __mcf_family_* macros.
29090 * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
29091 (m68k_cpp_cpu_family): Likewise.
29092
29093 2007-01-12 Richard Sandiford <richard@codesourcery.com>
29094
29095 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
29096 macros besides mc68000 as tuning macros. Use a switch statement
29097 to set them and mcpu32.
29098
29099 2007-01-12 Julian Brown <julian@codesourcery.com>
29100
29101 * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
29102 (TARGET_68040_ONLY): Rename to...
29103 (TARGET_68040): ...this.
29104 * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
29105 * config/m68k/m68k.md: Likewise.
29106
29107 2007-01-12 Julian Brown <julian@codesourcery.com>
29108 Nathan Sidwell <nathan@codesourcery.com>
29109 Richard Sandiford <richard@codesourcery.com>
29110
29111 * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
29112 the -mcpu= argument associated with the --with-cpu setting.
29113 Define M68K_DEFAULT_TUNE to the default -mtune= option,
29114 if different from the one implied by the -mcpu setting.
29115 Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
29116 using mcpu=FOO as the default CPU option. Set target_cpu_default2.
29117 * doc/invoke.texi: Mention ColdFire in the introduction to the
29118 m68k options. Document the new -march, -mcpu, -mtune, -mdiv,
29119 -mno-div and -mhard-float options. Make -m68881 a synonym for
29120 -mhard-float. Document the previously-undocumented -m5206e,
29121 -m528x, -m5307 and -m5407 options. Tweak the existing option
29122 documentation for consistency.
29123 * doc/install.texi: Mention new --with-cpu arguments.
29124 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
29125 default CPU if neither -mcpu nor -march are specified.
29126 (ASM_CPU_SPEC): Pass down -mcpu and -march options.
29127 (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
29128 TARGET_ISA*. Set the legacy __mcf*__ cpu macros in the same way,
29129 using m68k_tune to decide between families that implement the
29130 same ISA. Use m68k_tune to set __mcfv4e__.
29131 (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
29132 (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
29133 (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
29134 (FL_ISA_C, FL_ISA_MMU): New macros.
29135 (MASK_COLDFIRE): Delete.
29136 (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
29137 (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
29138 (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
29139 (TARGET_HARD_FLOAT): Do not define here.
29140 (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
29141 (TUNE_68000): New macro.
29142 (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
29143 (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
29144 (TUNE_CFV2): Redefine in terms of m68k_tune.
29145 (uarch_type, target_device, fpu_type): New enums.
29146 (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
29147 * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
29148 (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
29149 (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
29150 (FL_FOR_isa_c): New macros.
29151 (m68k_isa): New enum.
29152 (m68k_target_selection): New structure.
29153 (all_devices, all_isas, all_microarchs): New tables.
29154 (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
29155 (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
29156 (MASK_ALL_CPU_BITS): Delete.
29157 (m68k_find_selection): New function.
29158 (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
29159 Map the legacy target options to a combination of the new ones.
29160 (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
29161 m68k_cpu_flags. Handle M68K_DEFAULT_TUNE. Use m68k_cpu_flags
29162 to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
29163 settings.
29164 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
29165 (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
29166 properties.
29167 (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
29168 (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
29169 * config/m68k/m68k-devices.def: New file.
29170
29171 2007-01-12 Richard Sandiford <richard@codesourcery.com>
29172 Nathan Sidwell <nathan@codesourcery.com>
29173
29174 * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
29175 (SUBTARGET_EXTRA_SPECS): New macros.
29176 * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
29177 use %(asm_cpu_spec) instead.
29178 * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
29179 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
29180 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
29181 (EXTRA_SPECS): Rename to...
29182 (SUBTARGET_EXTRA_SPECS): ...this.
29183
29184 2007-01-12 Nathan Sidwell <nathan@codesourcery.com>
29185 Richard Sandiford <richard@codesourcery.com>
29186 Julian Brown <julian@codesourcery.com>
29187
29188 * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
29189 (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
29190 to the configuration's default CPU.
29191 (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
29192 Remove default masks.
29193 (m680[012]0-*-*): Set the default with_cpu to the first part of
29194 the target name.
29195 (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
29196 (m68k*-*-linux): Extend the --with-cpu handling to...
29197 (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000
29198 and m68010. Don't set target_cpu_default2.
29199 * doc/install.texi: Document --with-cpu for m68k.
29200 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
29201 * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
29202 (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
29203 (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
29204 (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
29205 (ASM_SPEC): Remove use of %(asm_cpu_default).
29206 (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
29207 * config/m68k/linux.h (TARGET_DEFAULT): Delete.
29208 (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here.
29209 * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
29210 __HAVE_FPU__ if TARGET_HARD_FLOAT.
29211 (TARGET_DEFAULT): Delete.
29212 (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
29213 cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
29214 (CPP_CPU_SPEC): Delete.
29215 (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
29216 the appropriate string.
29217 (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
29218 (CPP_SPEC): Define to NETBSD_CPP_SPEC.
29219 (ASM_SPEC): Don't use %(asm_default_spec).
29220 * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
29221 TARGET_DEFAULT and add MASK_68881.
29222 * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
29223
29224 2007-01-12 Richard Sandiford <richard@codesourcery.com>
29225
29226 * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
29227 (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
29228 MASK_68010 alongside MASK_68020.
29229 * doc/invoke.texi: Document -m68010.
29230 * config/m68k/m68k.opt (m68010): New.
29231 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
29232 if TUNE_68010.
29233 (TUNE_68010): New macro.
29234 * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
29235 (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
29236 (M68K_CPU_m68332): Add MASK_68010.
29237 * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
29238 fallback definition.
29239 * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
29240 defines.
29241 * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
29242 (m68k_handle_option): Handle OPT_m68010. Add MASK_68010
29243 to all entries that use MASK_68020.
29244 (output_move_simode_const, output_move_himode, output_move_qimode)
29245 (output_move_stricthi, output_move_strictqi): Use TARGET_68010
29246 instead of TARGET_68020 to select clr behavior. Remove comment
29247 about there being no TARGET_68010.
29248 * config/m68k/m68k.md: Likewise throughout.
29249
29250 2007-01-12 Julian Brown <julian@codesourcery.com>
29251
29252 * config/m68k/m68k.h (TARGET_ISAB): New macro.
29253 * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
29254 * config/m68k/m68k.md: Likewise.
29255
29256 2007-01-12 Julian Brown <julian@codesourcery.com>
29257
29258 * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
29259 TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
29260
29261 2007-01-12 Julian Brown <julian@codesourcery.com>
29262
29263 * config/m68k/m68k.h (TUNE_68040_60): New macro.
29264 * config/m68k/m68k.c (standard_68881_constant_p): Use it.
29265 * config/m68k/m68k.md: Likewise.
29266
29267 2007-01-12 Julian Brown <julian@codesourcery.com>
29268 Richard Sandiford <richard@codesourcery.com>
29269
29270 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
29271 instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
29272 TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
29273 TARGET_CPU32.
29274 (TARGET_CPU32): Rename to...
29275 (TUNE_CPU32): ...this.
29276 (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
29277 (TUNE_CFV2): New macros.
29278 * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
29279 remove conditions that are implied by TARGET_68020.
29280 * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
29281 instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
29282 (m68k_output_function_epilogue): Likewise.
29283 (m68k_rtx_costs): Likewise. Use TUNE_68060 instead of TARGET_68060
29284 and TUNE_CFV2 instead of TARGET_5200. Use TUNE_68000_10 instead of
29285 "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
29286 non-68000 timings. Refactor multiplication and division costs.
29287 (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
29288 TUNE_CPU32 instead of TARGET_CPU32.
29289 (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
29290 and TUNE_68060 instead of TARGET_68060.
29291 * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
29292 TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
29293 TARGET_CPU32.
29294 (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
29295 && !TARGET_COLDFIRE" to choose between moveq and clr.
29296 Likewise in the unnamed movsf pattern.
29297 (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
29298 "!TARGET_68020 && !TARGET_COLDFIRE". Likewise the unnamed
29299 ashiftrt pattern.
29300
29301 2007-01-12 Richard Sandiford <richard@codesourcery.com>
29302
29303 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
29304 of tabbing before backslashes.
29305
29306 2007-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29307
29308 * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
29309 * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
29310 (ASM_OUTPUT_INTERNAL_LABEL): Define.
29311
29312 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
29313
29314 * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
29315 find_interesting_uses_cond.
29316 (find_interesting_uses_cond): Use extract_cond_operands.
29317 (rewrite_use_compare): Use extract_cond_operands and
29318 force_gimple_operand_bsi. Do not call update_stmt.
29319 (determine_use_iv_cost_condition): Use extract_cond_operands.
29320 Return cheaper of using original bound and changing the exit bound.
29321
29322 2007-01-11 Zdenek Dvorak <dvorakz@suse.cz>
29323
29324 PR tree-optimization/29516
29325 * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
29326 most_expensive_mult_to_index, addr_to_parts,
29327 create_mem_ref, maybe_fold_tmr): Make the type of
29328 fields of TARGET_MEM_REF sizetype.
29329 (move_fixed_address_to_symbol, move_pointer_to_base):
29330 New functions.
29331 * tree.def (TARGET_MEM_REF): Add comment on types of
29332 the operands.
29333
29334 2007-01-11 Joseph Myers <joseph@codesourcery.com>
29335
29336 * c-common.c (vector_types_convertible_p): Treat opaque types as
29337 always convertible if they have the same size, but not otherwise.
29338
29339 2007-01-11 Steven Bosscher <steven@gcc.gnu.org>
29340
29341 * ifcvt.c (struct noce_if_info): Add comments to the fields.
29342 Remove the b_unconditional field.
29343 (noce_try_sign_mask): Do not look at b_unconditional.
29344 (noce_process_if_block): Do not use merge_if_blocks. Update
29345 the CFG here. Do not set b_unconditional.
29346 (cond_move_process_if_block): Likewise.
29347 (find_cond_trap): Likewise.
29348 (check_cond_move_block): Require simple jump insns at the end
29349 of the basic block.
29350
29351 2007-01-11 Jan Hubicka <jh@suse.cz>
29352
29353 PR tree-optimization/1046
29354 * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
29355 when alias info is not ready.
29356 (pass_tail_recursion): Do not require aliasing.
29357 * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
29358 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
29359 * tree-ssa-copy.c (pass_copy_prop): Likewise.
29360 * tree-ssa-forwprop.c (pass_forwprop): Likewise.
29361 * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
29362 * passes.c (init_optimization_passes): Execute rename_ssa_copies,
29363 ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
29364 before inlining.
29365 * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
29366 When aliasing is not build, mark statement as volatile.
29367
29368 2007-01-11 Tom Tromey <tromey@redhat.com>
29369
29370 PR preprocessor/15185, PR preprocessor/20989:
29371 * doc/cppopts.texi <-MT>: Update description of algorithm for
29372 computing default target.
29373 <-M, -MD>: Reword "basename" text.
29374
29375 2007-01-11 Roger Sayle <roger@eyesopen.com>
29376
29377 * builtins.c (expand_builtin_pow, expand_builtin_powi,
29378 fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
29379 fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
29380 fold_builtin_int_int_roundingfn, fold_builtin_bitop,
29381 fold_builtin_bswap, real_constp, fold_builtin_pow,
29382 fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
29383 do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
29384 uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
29385 * convert.c (convert_to_pointer): Likewise.
29386 * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
29387 * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
29388 const_binop, fold_convert_const_int_from_int,
29389 fold_convert_const_int_from_real,
29390 fold_convert_const_real_from_real, sign_bit_p,
29391 optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
29392 fold_sign_changed_comparison, fold_unary, fold_comparison,
29393 fold_binary, multiple_of_p, tree_Expr_non_zero_p,
29394 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
29395 * print-tree.c (print_node_brief, print_node): Likewise.
29396 * stor-layout.c (place_field, layout_type): Likewise.
29397 * tree-chrec.c (keep_cast): Likewise.
29398 * tree.c (build_vector, build_real, build_real_from_int_cst,
29399 build_complex): Likewise.
29400
29401 2007-01-11 Roger Sayle <roger@eyesopen.com>
29402
29403 * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete. For the time being,
29404 treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
29405
29406 2007-01-11 Paolo Bonzini <bonzini@gnu.org>
29407
29408 * configure.ac (strict1_warn): Rename to strict_warn.
29409 (WERROR, --enable-werror, symlink hacks, stage1_cflags,
29410 cc_set_by_configure, quoted_cc_set_by_configure,
29411 stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
29412 all_boot_languages, all_stagestuff): Remove.
29413 (target_list): Remove bootstrap targets.
29414 * Makefile.in (quickstrap): Unconditionally make a synonym of all.
29415 (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
29416 REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
29417 SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
29418 VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
29419 STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
29420 stage1_copy, stage2_build, stage2_copy, stageprofile_build,
29421 stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
29422 stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
29423 bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
29424 bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
29425 unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
29426 restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
29427 cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
29428 *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
29429 stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
29430 stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
29431 risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
29432 (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
29433 (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
29434 (mostlyclean): Adjust.
29435 (clean, distclean): Don't mention bootstrap stuff.
29436 * configure: Regenerate.
29437 * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
29438 java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
29439 treelang/config-lang.in (stagestuff): Remove.
29440 * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
29441 stageprofile, stagefeedback, stagestuff): Remove mention.
29442
29443 2007-01-11 Nick Clifton <nickc@redhat.com>
29444
29445 * config/mcore/predicates.md (mcore_general_movesrc_operand):
29446 Accept CONSTs.
29447 (mcore_general_movdst_operand): Do not accept CONST_INTs.
29448 (mcore_arith_K_S_operand): Run the test for the S constraint not
29449 the test for the M constraint.
29450 (mcore_addsub_operand): Do not accept integer values that are
29451 larger than 32 bits.
29452 * config/mcore/mcore.md: Remove unused constraints from split.
29453 (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
29454 (addsi3): Likewise.
29455 (allocate_stack): Likewise.
29456 * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
29457 operands to 32 bits.
29458 (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
29459 INTVAL.
29460 (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
29461 mcore_const_ok_for_inline, mcore_const_trick_uses_not,
29462 try_constant_tricks, mcore_num_ones, mcore_num_zeros,
29463 mcore_output_bclri, mcore_output_andn, output_inline_const,
29464 mcore_output_move, mcore_output_movedouble): Likewise.
29465 (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
29466 (output_inline_const): Likewise.
29467 (output_inline_const): Fix format strings used in sprintf
29468 statements.
29469 * config/mcore/mcore-protos.h: Update prototypes for changed
29470 functions in mcore.c.
29471 * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
29472 HOST_WIDE_INT and not int.
29473 (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
29474 CONST_OK_FOR_N): Likewise.
29475 (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
29476 (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
29477 an INTVAL.
29478
29479 2007-01-10 Jan Hubicka <jh@suse.cz>
29480
29481 * tree-vrp.c (remove_range_assertions): Release defs.
29482 * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
29483 * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
29484
29485 2007-01-10 Paul Brook <paul@codesourcery.com>
29486
29487 * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
29488 * config/arm/arm.md (mulsi3subsi): New insn.
29489
29490 2007-01-10 Zdenek Dvorak <dvorakz@suse.cz>
29491
29492 * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
29493 (tree_transform_and_unroll_loop): New.
29494 * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
29495 Declare.
29496
29497 2007-01-10 Robert Kennedy <jimbob@google.com>
29498
29499 * fold-const.c (fold_comparison): Fold comparisons like (x *
29500 1000 < 0) to (x < 0).
29501
29502 2007-01-10 Ian Lance Taylor <iant@google.com>
29503
29504 * tree-pretty-print.c (dump_generic_node): Print parentheses when
29505 operands have the same priority.
29506
29507 2007-01-10 Tom Tromey <tromey@redhat.com>
29508
29509 * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
29510 (fold_binary): Likewise.
29511 * langhooks.c (lhd_can_use_bit_fields_p): Removed.
29512 * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
29513 (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
29514 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
29515 * langhooks.h (struct lang_hooks): Removed field
29516 'can_use_bit_fields_p'.
29517
29518 2007-01-10 Ralf Corsépius <ralf.corsepius@rtems.org>
29519
29520 * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
29521
29522 2007-01-10 Razya Ladelsky <razya@il.ibm.com>
29523
29524 * function.c (get_last_funcdef_no): New function.
29525 * function.h (get_last_funcdef_no): Declare.
29526 * tree-inline.c (initialize_cfun): Add initialization.
29527 (tree_function_versioning): Cleanup.
29528
29529 2007-01-10 Jan Hubicka <jh@suse.cz>
29530
29531 * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
29532 PHIs.
29533
29534 2007-01-10 Sa Liu <saliu@de.ibm.com>
29535 Ben Elliston <bje@au.ibm.com>
29536
29537 * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
29538 for SAVE_NONLOCAL and Pmode for any other save level.
29539 * spu-protos.h (spu_restore_stack_block): Declare.
29540 * spu.md (save_stack_block): Remove.
29541 (restore_stack_block): Call spu_restore_stack_block.
29542 * spu.c (spu_restore_stack_block): New function.
29543 (spu_expand_epilogue): Remove old comment.
29544
29545 2007-01-09 Zdenek Dvorak <dvorakz@suse.cz>
29546
29547 PR tree-optimization/30322
29548 * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
29549 (cand_value_at): Return the value as aff_tree.
29550 (may_eliminate_iv): Convert the bound from aff_tree to tree.
29551 * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
29552 aff_combination_mult): New functions.
29553 (aff_combination_add): Use aff_combination_add_cst.
29554 (aff_combination_convert): Allow conversions to a wider type.
29555 (tree_to_aff_combination): Handle BIT_NOT_EXPR.
29556 * tree-affine.h (aff_combination_mult): Declare.
29557
29558 2007-01-09 Carlos O'Donell <carlos@codesourcery.com>
29559
29560 * doc/tm.texi: Update documentation to reflect reality of exec
29561 and start file search behaviours. Update copyright year.
29562 * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
29563 header file directories.
29564
29565 2007-01-09 Uros Bizjak <ubizjak@gmail.com>
29566
29567 * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
29568 (*cosxf2): Rename to cosxf2_i387.
29569 (*sindf2, *sinsf2): Extend operand 1 to XFmode. Macroize patterns
29570 using X87MODEF12 mode macro. Rename patterns to
29571 *sin_extend<mode>xf2_i387. Use SSE_FLOAT_MODE_P to disable patterns
29572 for SSE math.
29573 (*cosdf2, *cossf2): Ditto.
29574 (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters
29575 to match extended input operands.
29576 (sincos<mode>3): New expander.
29577 (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
29578 insn patterns and corresponding splitters.
29579
29580 2007-01-09 Kaz Kojima <kkojima@gcc.gnu.org>
29581
29582 * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
29583 (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
29584
29585 2007-01-09 Nicolas Pitre <nico@cam.org>
29586
29587 PR target/30173
29588 * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
29589
29590 2007-01-08 Geoffrey Keating <geoffk@apple.com>
29591
29592 * target.h (struct gcc_target): New field library_rtti_comdat.
29593 * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
29594 (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
29595 * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
29596 * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
29597
29598 2007-01-08 Geoffrey Keating <geoffk@apple.com>
29599
29600 * doc/invoke.texi (Optimize Options): Correct description of -O0.
29601
29602 2007-01-08 Richard Guenther <rguenther@suse.de>
29603
29604 * tree.h (force_fit_type_double): Export.
29605 (force_fit_type): Remove.
29606 * fold-const.c (force_fit_type_double): New function.
29607 (force_fit_type): Remove.
29608 (int_const_binop): Use it.
29609 (fold_convert_const_int_from_int): Likewise.
29610 (fold_convert_const_int_from_real): Likewise.
29611 (fold_div_compare): Likewise.
29612 (fold_sign_changed_comparison): Likewise.
29613 (fold_unary): Likewise.
29614 (fold_negate_const): Likewise.
29615 (fold_abs_const): Likewise.
29616 (fold_not_const): Likewise.
29617 * c-common.c (shorten_compare): Use force_fit_type_double.
29618 * convert.c (convert_to_pointer): Likewise.
29619
29620 2007-01-08 Richard Guenther <rguenther@suse.de>
29621
29622 * tree.h (build_int_cst_wide_type): Export.
29623 * tree.c (build_int_cst_wide_type): New function.
29624 (build_int_cst_wide): Fix comment.
29625 * builtins.c (fold_builtin_object_size): Use build_int_cst
29626 to build -1 or 0 of the correct type. Use fit_double_type
29627 to check for overflow.
29628 * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
29629 to build the mask.
29630 (decode_field_reference): Likewise.
29631 (all_ones_mask_p): Likewise.
29632 (native_interpret_int): Use build_int_cst_wide_type.
29633 (fold_binary): Use build_int_cst_type to build an all-ones
29634 value.
29635 * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
29636
29637 2007-01-08 Daniel Jacobowitz <dan@codesourcery.com>
29638
29639 * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
29640
29641 2007-01-09 Ben Elliston <bje@au.ibm.com>
29642
29643 * genautomata.c (STATS_OPTION): New option.
29644 (stats_flag): New flag.
29645 (gen_automata_option): Handle it.
29646 (initiate_automaton_gen): Ditto.
29647 (write_automata): Output statistics only if stats_flag is
29648 set. Likewise, output time statistics only if time_flag is set.
29649 * doc/md.texi (Processor pipeline description): Document new flag.
29650
29651 2007-01-08 Richard Guenther <rguenther@suse.de>
29652
29653 * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
29654 * tree.c (build_int_cst_type): Likewise.
29655 (size_in_bytes): Don't call force_fit_type on the result.
29656 (int_fits_type_p): Use fit_double_type.
29657 * fold-const.c (fit_double_type): New function.
29658 (force_fit_type): Use it.
29659 * tree.h (fit_double_type): Export.
29660
29661 2007-01-08 Jan Hubicka <jh@suse.cz>
29662
29663 * tree-vectorizer.c (gate_increase_alignment): Fix return type.
29664 * ipa.c (function_and_variable_visibility): Fix return type.
29665
29666 2007-01-08 Richard Guenther <rguenther@suse.de>
29667
29668 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
29669 of offset to build the index.
29670 * tree-pretty-print.c (dump_generic_node): Don't build negated
29671 const just for printing.
29672 * c-pretty-print.c (pp_c_integer_constant): Likewise.
29673 * builtins.c (fold_builtin_int_roundingfn): Check if result
29674 fits the type by using force_fit_type and comparing the result.
29675 * predict.c (predict_loops): Use compare_tree_int for comparison.
29676 * tree.c (build_int_cst): Fall back to integer_type_node for
29677 NULL_TREE type.
29678 (build_int_cst_wide): Assert type is non-null.
29679
29680 2007-01-08 Roberto Costa <roberto.costa@st.com>
29681
29682 * tree-vrp.c (extract_range_from_cond_expr): New.
29683 (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
29684 * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
29685 as expressions.
29686 (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
29687 * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
29688 tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
29689 used as expressions.
29690 * tree-object-size.c (cond_expr_object_size): New.
29691 (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
29692
29693 2007-01-08 Jan Hubicka <jh@suse.cz>
29694
29695 * tree-ssa-forwprop.c (forward_propagate_into_cond,
29696 tree_ssa_forward_propagate_single_use_va): Release defs of propagated
29697 statement.
29698
29699 2007-01-08 Richard Guenther <rguenther@suse.de>
29700
29701 PR tree-optimization/23603
29702 * tree-vrp.c (set_value_range_to_truthvalue): New function.
29703 (extract_range_from_binary): Fall back to truthvalue instead of
29704 varying for TRUTH_*_EXPR.
29705 (extract_range_from_comparison): Fall back to truthvalue instead of
29706 varying.
29707 (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
29708 if all visited PHI values were constant.
29709
29710 2007-01-08 Jan Hubicka <jh@suse.cz>
29711
29712 * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
29713 (cgraph_analyze_function): break out from ...
29714 (cgraph_finalize_compilation_unit): ... here.
29715 (cgraph_expand_function): Remove forgoten commented out line.
29716 (cgraph_optimize): Analyze functions.
29717
29718 2007-01-08 Jan Hubicka <jh@suse.cz>
29719
29720 * tree-pas.h (TODO_remove_function): New flag.
29721 (TODO_update*): Renumber.
29722 (pass_ipa_increase_alignment,
29723 pass_ipa_function_and_variable_visibility): New passes.
29724 * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
29725 (cgraph_function_and_variable_visibility): Move to ipa.c
29726 (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
29727 cgraph_increase_alignment.
29728 * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
29729 (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
29730 calling tree-inline.
29731 (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
29732 (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
29733 * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
29734 (gate_increase_alignment): New function.
29735 (pass_ipa_increase_alignment): New pass.
29736 * ipa.c: Inline tree-pass.h and timevar.h
29737 (function_and_variable_visibility): Move here from cgraphunit.c
29738 * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
29739 * passes.c (init_optimization_passes): Add the two new passes.
29740 (execute_todo): Handle cgraph_remove_functions.
29741
29742 2007-01-08 Nick Clifton <nickc@redhat.com>
29743
29744 * config/frv/predicates.md (reg_or_0_operand): Accept
29745 CONST_DOUBLEs.
29746
29747 2007-01-08 Ralf Corsépius <ralf.corsepius@rtems.org>
29748
29749 * config/bfin/rtems.h, config/bfin/t-rtems: New.
29750 * config.gcc: Add bfin*-rtems*.
29751
29752 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
29753
29754 * c.opt: Add -flax-vector-conversions.
29755 * c-typeck.c (convert_for_assignment): Pass flag to
29756 vector_types_convertible_p to allow emission of note.
29757 (digest_init): Likewise.
29758 * c-opts.c: Handle -flax-vector-conversions.
29759 * c-common.c (flag_lax_vector_conversions): New.
29760 (vector_types_convertible_p): Unless -flax-vector conversions
29761 has been passed, disallow conversions between vectors with
29762 differing numbers of subparts and/or element types. If such
29763 a conversion is disallowed, possibly emit a note on the first
29764 occasion only to inform the user of -flax-vector-conversions.
29765 The new last argument specifies this.
29766 * c-common.h (flag_lax_vector_conversions): New.
29767 (vector_types_convertible_p): Add extra argument.
29768 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
29769 char_type_node for V*QI type vectors.
29770 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
29771 Update to satisfy new typechecking rules.
29772 * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
29773 C and C++ variants.
29774 * doc/invoke.texi (C Dialect Options): Document
29775 -flax-vector-conversions.
29776
29777 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
29778
29779 PR tree-optimization/29877
29780 * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
29781 a register variable on the RHS to not be replaceable.
29782
29783 2007-01-08 Chen Liqin <liqin@sunnorth.com.cn>
29784 * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
29785 * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
29786 const_simm15, const_pow2, const_npow2): Added.
29787 * config/score/misc.md (insv, extv, extzv, movmemsi,
29788 move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
29789 * config/score/score.c (score_address_cost, score_select_cc_mode):
29790 Added.
29791 Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
29792 Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
29793 Update score_print_operand.
29794 * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
29795 Adjust register allocate order and update some macro define.
29796 * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
29797 mdx_block_move_straight, mdx_block_move_loop_head,
29798 mdx_block_move_loop_body, mdx_block_move_loop_foot,
29799 mdx_block_move_loop, mdx_block_move): Added.
29800 (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
29801 mdp_limm): Updated and fix some bug and typo.
29802 * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
29803 (movsf, movdf, doloop_end): Added.
29804
29805 2007-01-08 Kazu Hirata <kazu@codesourcery.com>
29806
29807 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
29808 config/arm/thumb2.md: Fix comment typos.
29809 * doc/extend.texi: Fix a typo.
29810
29811 2007-01-07 Eric Christopher <echristo@apple.com>
29812
29813 * configure.ac: Check for __stack_chk_fail for darwin.
29814 * configure: Regenerate.
29815
29816 2007-01-07 Richard Guenther <rguenther@suse.de>
29817
29818 * tree-vrp.c (extract_range_from_assert): CSE calls to
29819 compare_values where possible.
29820 (extract_range_from_unary_expr): Likewise.
29821
29822 2007-01-07 Anatoly Sokolov <aesok@post.ru>
29823
29824 * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
29825 * config/avr/avr.c (call_insn_operand): Delete function.
29826 * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
29827 instead of register number. Use predicates.
29828 * config/avr/predicates.md (const0_operand, reg_or_0_operand,
29829 call_insn_operand): Add.
29830
29831 2007-01-06 Jan Hubicka <jh@suse.cz>
29832
29833 * tree-pass.h (pass_build_cgraph_edges): Declare.
29834 * cgraphunit.c (record_refernece): Move to cgraphbuild.c
29835 (visited_nodes): Remove.
29836 (cgraph_create_edges): Move to cgraphbuild.c; rename to
29837 build_cgrpah_edges; make visited_nodes local.
29838 (cgraph_process_new_functions): DO not call initialize_inline_failed.
29839 (record_references_in_initializer): Move to cgraphbuild.c
29840 (initialize_inline_failed, rebuild_cgraph_edges,
29841 pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
29842 (verify_cgraph_node): Make visited_nodes local.
29843 (cgraph_analyze_function): Do not call cgraph_create_edges and
29844 initialize_inline_failed.
29845 (cgraph_expand_function): Do not call cgraph_lower_function;
29846 assert that function is already lowered.
29847 * Makefile.in (cgraphbuild.o): New.
29848 * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
29849 at the end of lowering passes.
29850
29851 2007-01-06 Steven Bosscher <steven@gcc.gnu.org>
29852
29853 * ifcvt.c (cond_move_convert_if_block): New function, code
29854 factored out from...
29855 (cond_move_process_if_block): ...here. Call the new function
29856 on the THEN and ELSE blocks.
29857 (merge_if_block): Do not copy global_live_at_end, merge_blocks
29858 already takes care of this.
29859
29860 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
29861
29862 PR c/19978
29863 * tree.h (TREE_OVERFLOW_P): New.
29864 * c-typeck.c (parser_build_unary_op): Warn only if result
29865 overflowed and operands did not.
29866 (parser_build_binary_op): Likewise.
29867 (convert_for_assignment): Remove redundant overflow_warning.
29868 * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
29869
29870 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
29871
29872 * c-typeck.c (store_init_value): Split over two lines to follow
29873 the GNU coding style.
29874
29875 2007-01-05 Benjamin Kosnik <bkoz@redhat.com>
29876
29877 * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
29878 __GXX_EXPERIMENTAL_CXX0X__.
29879 * doc/cpp.texi: Same.
29880
29881 2007-01-05 Richard Guenther <rguenther@suse.de>
29882
29883 PR middle-end/27826
29884 * tree.c (get_narrower): Do not construct COMPONENT_REFs
29885 with mismatched types. Instead explicitly build a
29886 conversion NOP_EXPR.
29887
29888 2007-01-05 Ian Lance Taylor <iant@google.com>
29889
29890 * c-common.c (decl_with_nonnull_addr_p): New function.
29891 (c_common_truthvalue_conversion): Call it.
29892 * c-typeck.c (build_binary_op): Likewise.
29893 * c-common.h (decl_with_nonnull_addr_p): Declare.
29894
29895 2007-01-05 Jakub Jelinek <jakub@redhat.com>
29896
29897 PR c/30360
29898 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
29899 denom against 0.0.
29900
29901 2007-01-05 Joel Brobecker <brobecker@adacore.com>
29902
29903 * doc/install.texi (Final install): Document the fact that
29904 the GNAT runtime should not be stripped.
29905
29906 2007-01-04 Jan Hubicka <jh@suse.cz>
29907
29908 * tree-inline.c (fold_marked_statements): Update operand caches
29909 and EH after folding
29910
29911 2007-01-04 Ian Lance Taylor <iant@google.com>
29912
29913 * c-common.c (check_function_nonnull): Whitespace fix.
29914
29915 2007-01-04 Jan Hubicka <jh@suse.cz>
29916
29917 * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
29918 comitted older version of patch.
29919 (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
29920 function, celanup cfg and collect garbage.
29921
29922 2007-01-04 Mike Stump <mrs@apple.com>
29923
29924 * Makefile.in (mostlyclean): Don't remove libgcc anymore.
29925 (clean): Likewise.
29926
29927 2007-01-04 Eric Christopher <echristo@apple.com>
29928
29929 * libgcc2.c (__bswapsi2): Use SItype.
29930 (__bswapdi2): Use DItype.
29931 * libgcc2.h: Update for above.
29932
29933 2007-01-04 Paul Brook <paul@codesourcery.com>
29934
29935 * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
29936 mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
29937 mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
29938 umulsidi3, umulsidi3adddi, smulsi3_highpart,
29939 umulsi3_highpart): Make conditional on !arm_arch6.
29940 (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
29941 mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
29942 mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
29943 umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
29944 umulsi3_highpart_v6): New insns.
29945
29946 2007-01-04 Roger Sayle <roger@eyesopen.com>
29947
29948 * fold-const.c (fold_convert): When casting an expression to void,
29949 fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
29950 have a type. Instead of attempting to build a NOP_EXPR, return
29951 these "special" trees directly.
29952
29953 2007-01-04 Joseph Myers <joseph@codesourcery.com>
29954
29955 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
29956 MULT inside MINUS as either argument. Use rs6000_cost->dmul -
29957 rs6000_cost->fp not 0 as adjustment for outer NEG.
29958
29959 2007-01-04 Jan Hubicka <jh@suse.cz>
29960
29961 * cgraph.c (cgraph_release_function_body): New function.
29962 (cgraph_remove_node): Use it.
29963 * cgraph.h (cgraph_release_function_body): Declare.
29964 * cgraphunit.c (cgraph_expand_function): Use it.
29965 * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
29966 * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
29967 is initialized and while compilation of other function is running.
29968 * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
29969 statement CFG annotations from here to ...
29970 * tree-cfg.c (delete_tree_cfg_annotations): ... here.
29971
29972 2007-01-04 Zdenek Dvorak <dvorakz@suse.cz>
29973
29974 * cfgloop.h (enum li_flags): Make the constants powers of two.
29975
29976 2007-01-04 Jan Hubicka <jh@suse.cz>
29977
29978 * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
29979 set.
29980 (fold_marked_statements): New function.
29981 (optimize_inline_calls, tree_function_versioning): Fold new statements.
29982 * tree-inline.h (copy_body_data): Add statements_to_fold.
29983
29984 2007-01-03 Daniel Jacobowitz <dan@codesourcery.com>
29985
29986 * config.gcc: Mention libgcc/config.host.
29987 * Makefile.in: Update comments mentioning libgcc.
29988 (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
29989 (all.cross, start.encap, rest.encap, rest.cross): Update
29990 dependencies for libgcc move.
29991 (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
29992 (clean-target, clean-target-libgcc): Delete.
29993 (srcdirify, GCC_EXTRA_PARTS): New macros.
29994 (libgcc-support, libgcc.mvars): New rules.
29995 (distclean): Remove mention of mklibgcc.
29996 (install): Don't reference INSTALL_LIBGCC.
29997 (install-common): Don't reference EXTRA_PARTS.
29998 (install-libgcc, install-multilib): Delete rules.
29999 * mklibgcc.in: Delete file.
30000 * doc/configfiles.texi: Don't mention mklibgcc.
30001
30002 * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
30003 * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
30004 * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
30005 * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
30006 (mklibgcc, ldblspecs): Likewise.
30007
30008 * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
30009 (posixpre.def): Use $(T).
30010 (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
30011 (SHLIB_SRC, SHLIB_INSTALL): Delete.
30012 (SHLIB_LINK): Make dummy.
30013 * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
30014
30015 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
30016
30017 * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
30018 * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
30019 config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
30020 config/rs6000/t-newas, config/sparc/t-elf: Likewise.
30021
30022 * configure.ac (all_outputs): Remove mklibgcc.
30023 * configure: Regenerated.
30024
30025 2007-01-03 Josh Conner <jconner@apple.com>
30026
30027 PR middle-end/29683
30028 * calls.c (compute_argument_addresses): Set stack and stack_slot
30029 for partial args, too.
30030 (store_one_arg): Use locate.size.constant for the size when
30031 generating a save_area.
30032
30033 2007-01-03 Robert Kennedy <jimbob@google.com>
30034
30035 * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
30036 whose definitions are deleted due to basic block merging.
30037
30038 2007-01-03 Paul Brook <paul@codesourcery.com>
30039
30040 PR target/16634
30041 * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
30042 functions.
30043 (use_return_insn): Return 0 for Thumb interrupt functions.
30044 (print_multi_reg): Add rfe argument for IRQ returns.
30045 (arm_output_epilogue): Pop interrupt return address directly into PC.
30046 (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
30047
30048 2007-01-03 Paul Brook <paul@codesourcery.com>
30049
30050 Merge from sourcerygxx-4_1.
30051 * config/arm/thumb2.md: New file.
30052 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
30053 Thumb-2.
30054 * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
30055 * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
30056 (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
30057 * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
30058 tables.
30059 (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
30060 * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
30061 comptibility.
30062 * config/arm/ieee754-sf.S: Ditto.
30063 * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
30064 (thumb1_base_register_rtx_p): ... to this.
30065 (thumb_index_register_rtx_p): Rename...
30066 (thumb1_index_register_rtx_p): ... to this.
30067 (thumb_output_function_prologue): Rename...
30068 (thumb1_output_function_prologue): ... to this.
30069 (thumb_legitimate_address_p): Rename...
30070 (thumb1_legitimate_address_p): ... to this.
30071 (thumb_rtx_costs): Rename...
30072 (thumb1_rtx_costs): ... to this.
30073 (thumb_compute_save_reg_mask): Rename...
30074 (thumb1_compute_save_reg_mask): ... to this.
30075 (thumb_final_prescan_insn): Rename...
30076 (thumb1_final_prescan_insn): ... to this.
30077 (thumb_expand_epilogue): Rename...
30078 (thumb1_expand_epilogue): ... to this.
30079 (arm_unwind_emit_stm): Rename...
30080 (arm_unwind_emit_sequence): ... to this.
30081 (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
30082 thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
30083 thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
30084 arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
30085 thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
30086 thumb2_output_casesi): New functions.
30087 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
30088 (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
30089 FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
30090 THUMB2_WORK_REGS): Define.
30091 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
30092 arm_condexec_mask, arm_condexec_masklen)): New variables.
30093 (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
30094 (arm_override_options): Check new CPU capabilities.
30095 Set new architecture flag variables.
30096 (arm_isr_value): Handle v7m interrupt functions.
30097 (user_return_insn): Return 0 for v7m interrupt functions. Handle
30098 Thumb-2.
30099 (const_ok_for_arm): Handle Thumb-2 constants.
30100 (arm_gen_constant): Ditto. Use movw when available.
30101 (arm_function_ok_for_sibcall): Return false for v7m interrupt
30102 functions.
30103 (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
30104 (thumb_find_work_register, arm_load_pic_register,
30105 legitimize_tls_address, arm_address_cost, load_multiple_sequence,
30106 emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
30107 print_multi_reg, output_mov_long_double_fpa_from_arm,
30108 output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
30109 output_mov_double_fpa_from_arm, output_move_double,
30110 arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
30111 output_return_instruction, arm_output_function_prologue,
30112 arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
30113 arm_output_mi_thunk, thumb_set_return_address): Ditto.
30114 (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs.
30115 (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
30116 (arithmetic_instr, shift_op): Use arm_shift_nmem.
30117 (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.',
30118 '!' and 'L'.
30119 (arm_final_prescan_insn): Use extract_constrain_insn_cached.
30120 (thumb_expand_prologue): Use thumb_set_frame_pointer.
30121 (arm_file_start): Output directive for unified syntax.
30122 (arm_unwind_emit_set): Handle stack alignment instruction.
30123 * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
30124 Add v6t2, v7, v7a, v7r and v7m.
30125 (RETLDM): Add Thumb-2 code.
30126 (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
30127 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
30128 (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
30129 TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
30130 THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
30131 ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
30132 THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
30133 CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
30134 ADJUST_INSN_LENGTH): Define.
30135 (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
30136 STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
30137 BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
30138 PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
30139 SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
30140 TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
30141 HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
30142 HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
30143 REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
30144 REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
30145 LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
30146 GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
30147 ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
30148 FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
30149 PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
30150 (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
30151 * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
30152 cortex-m3.
30153 * config/arm/arm-tune.md: Regenerate.
30154 * config/arm/arm-protos.h: Update prototypes.
30155 * config/arm/vfp.md: Enable patterns for Thumb-2.
30156 (arm_movsi_vfp): Add movw alternative. Use output_move_vfp.
30157 (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
30158 (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
30159 thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
30160 * config/arm/libunwind.S: Add Thumb-2 code.
30161 * config/arm/constraints.md: Update include Thumb-2.
30162 * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
30163 * config/arm/ieee754-df.S: Ditto.
30164 * config/arm/bpabi.S: Ditto.
30165 * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
30166 * config/arm/predicates.md (low_register_operand,
30167 low_reg_or_int_operand, thumb_16bit_operator): New.
30168 (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
30169 (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
30170 * config/arm/t-arm-elf: Add armv7 multilib.
30171 * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
30172 Include thumb2.md.
30173 (UNSPEC_STACK_ALIGN, ce_count): New.
30174 (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
30175 arm_zero_extendsidi2, arm_zero_extendqidi2): New
30176 insns/expanders.
30177 * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
30178 (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
30179 thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
30180 * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
30181 (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
30182 thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
30183 insns.
30184 * doc/extend.texi: Document ARMv7-M interrupt functions.
30185 * doc/invoke.texi: Document Thumb-2 new cores+architectures.
30186
30187 2007-01-03 Jakub Jelinek <jakub@redhat.com>
30188
30189 * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
30190 (struct _Unwind_Context): Rename args_size to flags, remove
30191 signal_frame field, add a new args_size field and version field.
30192 (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
30193 _Unwind_IsExtendedContext): New inline functions.
30194 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
30195 Assume by_value array is only present if _Unwind_IsExtendedContext.
30196 (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
30197 _Unwind_IsSignalFrame.
30198 (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
30199 (uw_update_context_1): Use _Unwind_SetSignalFrame.
30200 (uw_init_context_1): Initialize context->flags to
30201 EXTENDED_CONTEXT_BIT.
30202 * config/rs6000/linux-unwind.h (frob_update_context): Use
30203 _Unwind_SetSignalFrame.
30204
30205 2007-01-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
30206
30207 PR middle-end/30353
30208 * gimplify.c (gimplify_modify_expr_complex_part): Move below
30209 tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need
30210 the value.
30211
30212 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
30213
30214 * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
30215 REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
30216 RET, AT_SP): Remove.
30217 * config/i386/i386.md (*sse_prologue_save_insn): Use return
30218 instead of RET.
30219
30220 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
30221 * cfgbuild.c (find_basic_blocks): Likewise.
30222 * cfgrtl.c (rtl_create_basic_block): Likewise.
30223 * function.c (temp_slots_at_level): Likewise.
30224 * reg-stack.c (stack_regs_mentioned): Likewise.
30225 * regclass.c (allocate_reg_info): Likewise.
30226 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
30227 set_bb_for_stmt, move_block_to_fn): Likewise.
30228 * tree-complex.c (tree_lower_complex): Likewise.
30229 * vec.h (VEC_safe_grow_cleared): New.
30230
30231 * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
30232
30233 2007-01-03 Zdenek Dvorak <dvorakz@suse.cz>
30234
30235 * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
30236 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
30237 to loop_version.
30238 * cfgloopmanip.c (scale_loop_frequencies): Export.
30239 (loopify): Scale the frequencies by prescribed coefficients.
30240 (set_zero_probability): New function.
30241 (duplicate_loop_to_header_edge): Improve updating of frequencies.
30242 (lv_adjust_loop_entry_edge, loop_version): Set probabilities
30243 and frequencies according to arguments.
30244 * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
30245 correctly.
30246 * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
30247 * modulo-sched.c (sms_schedule): Set probabilities for entering
30248 versioned loop correctly.
30249 * tree-vect-transform.c (vect_transform_loop): Ditto.
30250 * cfgloop.h (loopify, loop_version): Declaration changed.
30251 (scale_loop_frequencies): Declared.
30252
30253 2007-01-02 Jan Hubicka <jh@suse.cz>
30254
30255 * cgraph.c: Include tree-flow.h
30256 (cgraph_add_new-function): Handle IPA_SSA mode; execute
30257 early_local_passes.
30258 * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
30259 * tree-pass.h (pass_all_early_optimizations): Declare.
30260 * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
30261 early_local_passes.
30262 (cgraph_analyze_function): Do early_local_passes.
30263 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
30264 Do not add referenced vars.
30265 * tree-optimize.c (gate_all_optimizations): Do not execute when not in
30266 SSA form.
30267 (gate_all_early_local_passes): New gate.
30268 (pass_early_local_passes): Use new gate.
30269 (execute_early_local_optimizations): New functions.
30270 (gate_all_early_optimizations): New gate.
30271 (pass_all_early_optimizations): New pass.
30272 (execute_free_datastructures): Free SSA only when initialized.
30273 (gate_init_datastructures): Init only when optimizing.
30274 (tree_lowering_passes): Do early local passes when called late.
30275 * tree-profile.c (do_tree_profiling): Don't profile functions added
30276 late.
30277 (do_early_tree_profiling, pass_early_tree_profile): Kill.
30278 * tree-cfg.c (update_modified_stmts): Do not update when operands are
30279 not active.
30280 * passes.c (init_optimizations_passes): Reorder so we go into SSA
30281 during early_local_passes.
30282 * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
30283
30284
30285 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
30286
30287 * Makefile.in: Update copyright year.
30288
30289 2007-01-02 Carlos O'Donell <carlos@codesourcery.com>
30290
30291 * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
30292 in $(lang_checks) and check-consistency targets.
30293
30294 2007-01-02 Jan Hubicka <jh@suse.cz>
30295
30296 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
30297 Do not add referenced vars.
30298 * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
30299 are not active.
30300 * passes.c (init_optimization_passes): Put mudflap_2 after
30301 free_datastructures.
30302
30303 2007-01-02 Jan Hubicka <jh@suse.cz>
30304
30305 * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
30306 Set NOTHROW flag on call statements proved to be nothrow.
30307 Update statement of local calls so new pure/const functions are
30308 updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
30309 goto receivers.
30310 (tree_rest_of_compilation): Register hooks and initialize bitmap
30311 early. Do not set after_inlining flag.
30312
30313 2007-01-02 Steve Ellcey <sje@cup.hp.com>
30314
30315 * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to
30316 HOST_BITS_PER_LONGLONG
30317
30318 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
30319
30320 PR c/19977
30321 * c-typeck.c (store_init_value): Don't emit pedantic overflow
30322 warning for non-static initializers.
30323
30324 2007-01-02 Steven Bosscher <steven@gcc.gnu.org>
30325
30326 * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
30327 m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
30328 rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
30329 Always use set_unique_reg_note to add REG_EQUAL notes.
30330
30331 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
30332
30333 Revert:
30334 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
30335
30336 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
30337 * cfgbuild.c (find_basic_blocks): Likewise.
30338 * cfgrtl.c (rtl_create_basic_block): Likewise.
30339 * function.c (temp_slots_at_level): Likewise.
30340 * reg-stack.c (stack_regs_mentioned): Likewise.
30341 * regclass.c (allocate_reg_info): Likewise.
30342 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
30343 set_bb_for_stmt, move_block_to_fn): Likewise.
30344 * tree-complex.c (tree_lower_complex): Likewise.
30345 * vec.h (VEC_safe_grow_cleared): New.
30346
30347 2007-01-02 Ian Lance Taylor <iant@google.com>
30348
30349 * c-common.c (c_common_truthvalue_conversion): When warning about
30350 using an assignment as a truth value, set TREE_NO_WARNING.
30351
30352 2007-01-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
30353
30354 PR middle-end/7651
30355 * c.opt (Wold-style-declaration): New.
30356 * doc/invoke.texi (C-only Warning Options): New.
30357 (Wold-style-declaration): Document it.
30358 (Wextra): Enabled by -Wextra.
30359 * c-opts.c (c_common_post_options): Enabled by -Wextra.
30360 * c-decl.c (declspecs_add_scspec): Replace -Wextra with
30361 -Wold-style-declaration.
30362
30363 2007-01-02 Kazu Hirata <kazu@codesourcery.com>
30364
30365 * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
30366 * cfgbuild.c (find_basic_blocks): Likewise.
30367 * cfgrtl.c (rtl_create_basic_block): Likewise.
30368 * function.c (temp_slots_at_level): Likewise.
30369 * reg-stack.c (stack_regs_mentioned): Likewise.
30370 * regclass.c (allocate_reg_info): Likewise.
30371 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
30372 set_bb_for_stmt, move_block_to_fn): Likewise.
30373 * tree-complex.c (tree_lower_complex): Likewise.
30374 * vec.h (VEC_safe_grow_cleared): New.
30375
30376 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
30377
30378 * c-common.c (c_common_nodes_and_builtins): Since variants of
30379 void_type_node get built before it is given a name, we need to
30380 give those variants the name, too.
30381 (complete_array_type): We need to work with the canonical main
30382 type of the array, from which we will build the qualified version.
30383 * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
30384 * print-tree.c (print_node): Display canonical type information
30385 for each type.
30386 * stor-layout.c (layout_type): When we don't know the
30387 alignment of a type for which we're building an array, we end up
30388 guessing wrong, so make the type require structural equality.
30389 * tree.c (make_node_stat): When we build a new type, it is its
30390 own canonical type.
30391 (build_type_attribute_qual_variant): When building an attribute
30392 variant, its canonical type is the non-attribute variant. However,
30393 if the attributes are target-dependent and they differ, we need to
30394 use structural equality checks for this type.
30395 (build_qualified_type): A qualified type is not equivalent to its
30396 unqualified variant; set the canonical type appropriately.
30397 (build_distinct_type_copy): When building a distinct type from
30398 another type, the new type is its own canonical type.
30399 (build_variant_type_copy): When building a new type variant, we
30400 assume that it is equivalent to the original type.
30401 (build_pointer_type_for_mode): When building a pointer type, also
30402 build a canonical type pointer.
30403 (build_reference_type_for_mode): When building a reference type,
30404 also build a canonical type reference.
30405 (build_index_type): When we can't hash an index type (e.g.,
30406 because its maximum value is negative), the index type requires
30407 structural equality tests.
30408 (build_array_type): Build the canonical form of an array type.
30409 (build_function_type): Function types require structural equality,
30410 because they contain default arguments, attributes, etc.
30411 (build_method_type_directly): Ditto for method types.
30412 (build_offset_type): Build the canonical offset type.
30413 (build_complex_type): Build the canonical vector type.
30414 (make_vector_type): Build the canonical vector type.
30415 * tree.h (TYPE_CANONICAL): New.
30416 (TYPE_STRUCTURAL_EQUALITY_P): New.
30417 (SET_TYPE_STRUCTURAL_EQUALITY): New.
30418 (struct tree_type): Added "canonical" field.
30419 * params.h (VERIFY_CANONICAL_TYPES): New.
30420 * doc/c-tree.texi (TYPE_CANONICAL): Document.
30421 (TYPE_STRUCTURAL_EQUALITY_P): Document.
30422 (SET_TYPE_STRUCTURAL_EQUALITY): Document.
30423 * doc/invoke.texi (verify-canonical-types): Document --param
30424 parameter for verifying canonical types.
30425
30426 2007-01-02 Joseph Myers <joseph@codesourcery.com>
30427
30428 * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
30429 powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
30430 powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
30431 powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
30432 tm_file.
30433 * config/rs6000/e500.h: New.
30434 * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
30435 TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
30436 Remove.
30437 * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
30438 TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
30439 TARGET_E500_DOUBLE): Remove.
30440 * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
30441 TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
30442 * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
30443 * config/rs6000/rs6000.c (rs6000_override_options): Use
30444 CHECK_E500_OPTIONS.
30445
30446 2007-01-02 Joseph Myers <joseph@codesourcery.com>
30447
30448 * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
30449 TARGET_E500_DOUBLE), not TARGET_E500, for %y.
30450 (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
30451 rs6000_emit_cmove): Don't check TARGET_E500.
30452 * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
30453 sordered): Don't check TARGET_E500.
30454
30455 2007-01-01 Eric Christopher <echristo@apple.com>
30456
30457 * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
30458 HARD_REGISTER_NUM_P.
30459
30460 2007-01-01 Roger Sayle <roger@eyesopen.com>
30461
30462 * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
30463 "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
30464 has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
30465 eq/ne Y".
30466
30467 2007-01-01 Mike Stump <mrs@apple.com>
30468
30469 * configure.ac: Remove support for building with Apple's gcc-3.1.
30470
30471 2007-01-02 Joseph Myers <joseph@codesourcery.com>
30472
30473 PR middle-end/30311
30474 * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
30475 REG is a hard register. Do not modify REG before calling
30476 subreg_nregs.
30477 * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
30478 multiple of the size of YMODE for certain lowpart cases.
30479
30480 2007-01-01 Andrew Pinski <pinskia@gmail.com>
30481
30482 PR middle-end/30253
30483 * gimplify (voidify_wrapper_expr): Update for
30484 GIMPLE_MODIFY_STMT.
30485
30486 2007-01-01 Andreas Schwab <schwab@suse.de>
30487
30488 PR target/29166
30489 * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
30490 save of BR0 in extra_spill_size instead of spill_size.
30491 (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
30492 area.
30493 (ia64_expand_epilogue): Restore BR0 from its new location.
30494
30495 2007-01-01 Andrew Pinski <pinskia@gmail.com>
30496
30497 * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
30498 Use a temporary variable if the left hand side is not a gimple
30499 register.
30500
30501 2007-01-01 Andrew Pinski <pinskia@gmail.com>
30502
30503 * gimplify.c (gimplify_return_expr): Make the temporary variable
30504 for the return expression, a gimple register variable.
30505
30506 2007-01-01 Jan Hubicka <jh@suse.cz>
30507
30508 * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
30509 INSN_LIST.
30510
30511 2007-01-01 Mike Stump <mrs@apple.com>
30512
30513 * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
30514 .literal16.
30515 * config/darwin.c (machopic_select_rtx_section): Use
30516 HAVE_GAS_LITERAL16.
30517 (darwin_mergeable_constant_section): Likewise.
30518 * configure: Regenerate.
30519 * config.in: Regenerate.
30520
30521 2007-01-01 Jan Hubicka <jh@suse.cz>
30522 Andrew Pinski <pinskia@gmail.com>
30523
30524 * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
30525 before starting IPA passes.